pkgsrc-WIP-changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
chromium: update to 127.0.6533.72
Module Name: pkgsrc-wip
Committed By: kikadf <kikadf.01%gmail.com@localhost>
Pushed By: kikadf
Date: Sun Aug 11 10:14:12 2024 +0200
Changeset: 02fe40119f38f9ba2a49f378e53bb1b2409d9803
Modified Files:
chromium/Makefile
chromium/PLIST
chromium/TODO
chromium/distinfo
chromium/options.mk
chromium/patches/patch-BUILD.gn
chromium/patches/patch-apps_ui_views_app__window__frame__view.cc
chromium/patches/patch-base_BUILD.gn
chromium/patches/patch-base_base__paths__posix.cc
chromium/patches/patch-base_debug_debugger__posix.cc
chromium/patches/patch-base_debug_elf__reader.cc
chromium/patches/patch-base_debug_stack__trace__posix.cc
chromium/patches/patch-base_files_file__path__watcher__kqueue.cc
chromium/patches/patch-base_files_file__path__watcher__unittest.cc
chromium/patches/patch-base_files_file__util__posix.cc
chromium/patches/patch-base_files_file__util__unittest.cc
chromium/patches/patch-base_files_scoped__file.cc
chromium/patches/patch-base_i18n_icu__util.cc
chromium/patches/patch-base_linux__util.cc
chromium/patches/patch-base_logging__unittest.cc
chromium/patches/patch-base_memory_discardable__memory.cc
chromium/patches/patch-base_memory_discardable__memory__internal.h
chromium/patches/patch-base_memory_madv__free__discardable__memory__posix.cc
chromium/patches/patch-base_memory_platform__shared__memory__region.h
chromium/patches/patch-base_memory_platform__shared__memory__region__posix.cc
chromium/patches/patch-base_native__library__posix.cc
chromium/patches/patch-base_native__library__unittest.cc
chromium/patches/patch-base_posix_can__lower__nice__to.cc
chromium/patches/patch-base_posix_unix__domain__socket.cc
chromium/patches/patch-base_process_internal__linux.h
chromium/patches/patch-base_process_kill.h
chromium/patches/patch-base_process_kill__posix.cc
chromium/patches/patch-base_process_launch.h
chromium/patches/patch-base_process_launch__posix.cc
chromium/patches/patch-base_process_process__handle.cc
chromium/patches/patch-base_process_process__handle.h
chromium/patches/patch-base_process_process__handle__netbsd.cc
chromium/patches/patch-base_process_process__iterator.h
chromium/patches/patch-base_process_process__iterator__netbsd.cc
chromium/patches/patch-base_process_process__metrics.cc
chromium/patches/patch-base_process_process__metrics.h
chromium/patches/patch-base_process_process__metrics__netbsd.cc
chromium/patches/patch-base_process_process__metrics__posix.cc
chromium/patches/patch-base_process_process__unittest.cc
chromium/patches/patch-base_profiler_sampling__profiler__thread__token.cc
chromium/patches/patch-base_profiler_sampling__profiler__thread__token.h
chromium/patches/patch-base_profiler_stack__sampling__profiler__unittest.cc
chromium/patches/patch-base_synchronization_lock__impl.h
chromium/patches/patch-base_syslog__logging.cc
chromium/patches/patch-base_system_sys__info.cc
chromium/patches/patch-base_system_sys__info.h
chromium/patches/patch-base_system_sys__info__netbsd.cc
chromium/patches/patch-base_system_sys__info__posix.cc
chromium/patches/patch-base_task_thread__pool_environment__config__unittest.cc
chromium/patches/patch-base_test_launcher_test__launcher.cc
chromium/patches/patch-base_test_test__file__util__posix.cc
chromium/patches/patch-base_threading_platform__thread.h
chromium/patches/patch-base_threading_platform__thread__posix.cc
chromium/patches/patch-base_threading_platform__thread__unittest.cc
chromium/patches/patch-base_trace__event_process__memory__dump.cc
chromium/patches/patch-build_config_BUILD.gn
chromium/patches/patch-build_config_BUILDCONFIG.gn
chromium/patches/patch-build_config_compiler_BUILD.gn
chromium/patches/patch-build_config_linux_pkg-config.py
chromium/patches/patch-build_gn__run__binary.py
chromium/patches/patch-build_toolchain_gcc__toolchain.gni
chromium/patches/patch-build_toolchain_netbsd_BUILD.gn
chromium/patches/patch-chrome_app_chrome__command__ids.h
chromium/patches/patch-chrome_app_chrome__main.cc
chromium/patches/patch-chrome_app_chrome__main__delegate.cc
chromium/patches/patch-chrome_browser_BUILD.gn
chromium/patches/patch-chrome_browser_about__flags.cc
chromium/patches/patch-chrome_browser_after__startup__task__utils.cc
chromium/patches/patch-chrome_browser_autocomplete_chrome__autocomplete__scheme__classifier.cc
chromium/patches/patch-chrome_browser_background_background__mode__manager.cc
chromium/patches/patch-chrome_browser_background_background__mode__optimizer.cc
chromium/patches/patch-chrome_browser_chrome__browser__interface__binders.cc
chromium/patches/patch-chrome_browser_chrome__browser__main.cc
chromium/patches/patch-chrome_browser_chrome__browser__main__linux.cc
chromium/patches/patch-chrome_browser_chrome__browser__main__posix.cc
chromium/patches/patch-chrome_browser_chrome__content__browser__client.cc
chromium/patches/patch-chrome_browser_chrome__content__browser__client.h
chromium/patches/patch-chrome_browser_defaults.cc
chromium/patches/patch-chrome_browser_device__identity_device__oauth2__token__service__factory.cc
chromium/patches/patch-chrome_browser_diagnostics_diagnostics__writer.h
chromium/patches/patch-chrome_browser_download_chrome__download__manager__delegate.cc
chromium/patches/patch-chrome_browser_download_download__commands.cc
chromium/patches/patch-chrome_browser_download_download__commands.h
chromium/patches/patch-chrome_browser_download_download__item__model.cc
chromium/patches/patch-chrome_browser_download_download__prefs.cc
chromium/patches/patch-chrome_browser_download_download__prefs.h
chromium/patches/patch-chrome_browser_extensions_BUILD.gn
chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_chrome__desktop__report__request__helper.cc
chromium/patches/patch-chrome_browser_extensions_api_image__writer__private_removable__storage__provider.cc
chromium/patches/patch-chrome_browser_extensions_api_runtime_chrome__runtime__api__delegate.cc
chromium/patches/patch-chrome_browser_extensions_api_settings__private_prefs__util.cc
chromium/patches/patch-chrome_browser_extensions_api_webrtc__logging__private_webrtc__logging__private__api.cc
chromium/patches/patch-chrome_browser_extensions_external__provider__impl.cc
chromium/patches/patch-chrome_browser_first__run_first__run__dialog.h
chromium/patches/patch-chrome_browser_first__run_first__run__internal.h
chromium/patches/patch-chrome_browser_flag__descriptions.cc
chromium/patches/patch-chrome_browser_flag__descriptions.h
chromium/patches/patch-chrome_browser_media__galleries_fileapi_mtp__device__map__service.cc
chromium/patches/patch-chrome_browser_media__galleries_media__file__system__registry.cc
chromium/patches/patch-chrome_browser_media_router_discovery_discovery__network__list__posix.cc
chromium/patches/patch-chrome_browser_media_router_discovery_discovery__network__list__wifi__linux.cc
chromium/patches/patch-chrome_browser_media_webrtc_webrtc__log__uploader.cc
chromium/patches/patch-chrome_browser_media_webrtc_webrtc__logging__controller.cc
chromium/patches/patch-chrome_browser_media_webrtc_webrtc__logging__controller.h
chromium/patches/patch-chrome_browser_memory__details.cc
chromium/patches/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc
chromium/patches/patch-chrome_browser_metrics_chrome__metrics__service__client.cc
chromium/patches/patch-chrome_browser_net_system__network__context__manager.cc
chromium/patches/patch-chrome_browser_notifications_notification__display__service__impl.cc
chromium/patches/patch-chrome_browser_password__manager_chrome__password__manager__client.cc
chromium/patches/patch-chrome_browser_policy_browser__signin__policy__handler.cc
chromium/patches/patch-chrome_browser_prefs_browser__prefs.cc
chromium/patches/patch-chrome_browser_prefs_pref__service__incognito__allowlist.cc
chromium/patches/patch-chrome_browser_process__singleton__posix.cc
chromium/patches/patch-chrome_browser_profiles_chrome__browser__main__extra__parts__profiles.cc
chromium/patches/patch-chrome_browser_renderer__preferences__util.cc
chromium/patches/patch-chrome_browser_safe__browsing_incident__reporting_incident__reporting__service.cc
chromium/patches/patch-chrome_browser_send__tab__to__self_receiving__ui__handler__registry.cc
chromium/patches/patch-chrome_browser_send__tab__to__self_send__tab__to__self__client__service.cc
chromium/patches/patch-chrome_browser_sharing_sharing__device__registration.cc
chromium/patches/patch-chrome_browser_sharing_sharing__handler__registry__impl.cc
chromium/patches/patch-chrome_browser_signin_signin__util.cc
chromium/patches/patch-chrome_browser_sync_chrome__sync__client.cc
chromium/patches/patch-chrome_browser_task__manager_sampling_task__group.cc
chromium/patches/patch-chrome_browser_task__manager_sampling_task__group.h
chromium/patches/patch-chrome_browser_task__manager_sampling_task__group__sampler.cc
chromium/patches/patch-chrome_browser_task__manager_sampling_task__group__sampler.h
chromium/patches/patch-chrome_browser_task__manager_sampling_task__manager__impl.cc
chromium/patches/patch-chrome_browser_task__manager_task__manager__observer.h
chromium/patches/patch-chrome_browser_themes_theme__service__factory.cc
chromium/patches/patch-chrome_browser_ui_browser__command__controller.cc
chromium/patches/patch-chrome_browser_ui_browser__view__prefs.cc
chromium/patches/patch-chrome_browser_ui_sad__tab.cc
chromium/patches/patch-chrome_browser_ui_startup_bad__flags__prompt.cc
chromium/patches/patch-chrome_browser_ui_startup_startup__browser__creator.cc
chromium/patches/patch-chrome_browser_ui_tab__helpers.cc
chromium/patches/patch-chrome_browser_ui_task__manager_task__manager__columns.cc
chromium/patches/patch-chrome_browser_ui_task__manager_task__manager__table__model.cc
chromium/patches/patch-chrome_browser_ui_views_accelerator__table.cc
chromium/patches/patch-chrome_browser_ui_views_chrome__browser__main__extra__parts__views.cc
chromium/patches/patch-chrome_browser_ui_views_chrome__views__delegate.h
chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame.cc
chromium/patches/patch-chrome_browser_ui_views_frame_browser__view.cc
chromium/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.cc
chromium/patches/patch-chrome_browser_ui_views_frame_system__menu__model__builder.cc
chromium/patches/patch-chrome_browser_ui_views_frame_system__menu__model__delegate.cc
chromium/patches/patch-chrome_browser_ui_views_hung__renderer__view.cc
chromium/patches/patch-chrome_browser_ui_views_tabs_tab.cc
chromium/patches/patch-chrome_browser_ui_views_tabs_tab__drag__controller.cc
chromium/patches/patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc
chromium/patches/patch-chrome_browser_ui_webui_settings_appearance__handler.cc
chromium/patches/patch-chrome_browser_ui_webui_settings_settings__localized__strings__provider.cc
chromium/patches/patch-chrome_common_channel__info.h
chromium/patches/patch-chrome_common_channel__info__posix.cc
chromium/patches/patch-chrome_common_chrome__features.cc
chromium/patches/patch-chrome_common_chrome__features.h
chromium/patches/patch-chrome_common_chrome__paths.cc
chromium/patches/patch-chrome_common_chrome__paths.h
chromium/patches/patch-chrome_common_chrome__paths__internal.h
chromium/patches/patch-chrome_common_chrome__switches.cc
chromium/patches/patch-chrome_common_chrome__switches.h
chromium/patches/patch-chrome_common_media_cdm__host__file__path.cc
chromium/patches/patch-chrome_common_pref__names.h
chromium/patches/patch-chrome_common_webui__url__constants.cc
chromium/patches/patch-chrome_common_webui__url__constants.h
chromium/patches/patch-chrome_test_chromedriver_chrome__launcher.cc
chromium/patches/patch-chrome_test_chromedriver_chrome_chrome__finder.cc
chromium/patches/patch-chrome_test_chromedriver_key__converter__unittest.cc
chromium/patches/patch-chromecast_browser_cast__browser__main__parts.cc
chromium/patches/patch-chromecast_browser_cast__content__browser__client.cc
chromium/patches/patch-components_autofill_core_common_autofill__payments__features.cc
chromium/patches/patch-components_autofill_core_common_autofill__util.cc
chromium/patches/patch-components_content__settings_core_browser_website__settings__registry.cc
chromium/patches/patch-components_cookie__config_cookie__store__util.cc
chromium/patches/patch-components_crash_core_common_BUILD.gn
chromium/patches/patch-components_discardable__memory_service_discardable__shared__memory__manager.cc
chromium/patches/patch-components_feature__engagement_public_event__constants.cc
chromium/patches/patch-components_feature__engagement_public_event__constants.h
chromium/patches/patch-components_feature__engagement_public_feature__constants.cc
chromium/patches/patch-components_feature__engagement_public_feature__constants.h
chromium/patches/patch-components_feature__engagement_public_feature__list.cc
chromium/patches/patch-components_feature__engagement_public_feature__list.h
chromium/patches/patch-components_flags__ui_flags__state.cc
chromium/patches/patch-components_gwp__asan_BUILD.gn
chromium/patches/patch-components_metrics_drive__metrics__provider__linux.cc
chromium/patches/patch-components_metrics_metrics__log.cc
chromium/patches/patch-components_neterror_resources_neterror.js
chromium/patches/patch-components_network__session__configurator_browser_network__session__configurator.cc
chromium/patches/patch-components_policy_core_common_cloud_cloud__policy__util.cc
chromium/patches/patch-components_policy_tools_generate__policy__source.py
chromium/patches/patch-components_security__interstitials_content_utils.cc
chromium/patches/patch-components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.cc
chromium/patches/patch-components_storage__monitor_BUILD.gn
chromium/patches/patch-components_storage__monitor_removable__device__constants.cc
chromium/patches/patch-components_storage__monitor_removable__device__constants.h
chromium/patches/patch-components_sync__device__info_local__device__info__util.cc
chromium/patches/patch-components_sync__device__info_local__device__info__util__linux.cc
chromium/patches/patch-components_update__client_update__query__params.cc
chromium/patches/patch-components_url__formatter_spoof__checks_idn__spoof__checker.cc
chromium/patches/patch-components_viz_common_features.cc
chromium/patches/patch-components_viz_host_host__display__client.cc
chromium/patches/patch-components_viz_host_host__display__client.h
chromium/patches/patch-components_viz_service_display__embedder_software__output__surface.cc
chromium/patches/patch-components_viz_service_display__embedder_software__output__surface.h
chromium/patches/patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.cc
chromium/patches/patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.h
chromium/patches/patch-components_viz_test_mock__display__client.h
chromium/patches/patch-content_app_content__main__runner__impl.cc
chromium/patches/patch-content_browser_BUILD.gn
chromium/patches/patch-content_browser_browser__main__loop.cc
chromium/patches/patch-content_browser_child__process__launcher__helper__linux.cc
chromium/patches/patch-content_browser_compositor_viz__process__transport__factory.cc
chromium/patches/patch-content_browser_devtools_protocol_system__info__handler.cc
chromium/patches/patch-content_browser_gpu_gpu__process__host.cc
chromium/patches/patch-content_browser_ppapi__plugin__process__host__receiver__bindings.cc
chromium/patches/patch-content_browser_renderer__host_input_input__device__change__observer.cc
chromium/patches/patch-content_browser_renderer__host_pepper_pepper__file__io__host.cc
chromium/patches/patch-content_browser_renderer__host_render__process__host__impl.cc
chromium/patches/patch-content_browser_renderer__host_render__process__host__impl.h
chromium/patches/patch-content_browser_renderer__host_render__view__host__impl.cc
chromium/patches/patch-content_browser_renderer__host_render__widget__host__view__aura.cc
chromium/patches/patch-content_browser_renderer__host_render__widget__host__view__event__handler.cc
chromium/patches/patch-content_browser_scheduler_responsiveness_native__event__observer.cc
chromium/patches/patch-content_browser_scheduler_responsiveness_native__event__observer.h
chromium/patches/patch-content_browser_utility__process__host.cc
chromium/patches/patch-content_browser_utility__process__host__receiver__bindings.cc
chromium/patches/patch-content_browser_v8__snapshot__files.cc
chromium/patches/patch-content_child_BUILD.gn
chromium/patches/patch-content_common_BUILD.gn
chromium/patches/patch-content_gpu_gpu__main.cc
chromium/patches/patch-content_ppapi__plugin_ppapi__blink__platform__impl.cc
chromium/patches/patch-content_ppapi__plugin_ppapi__blink__platform__impl.h
chromium/patches/patch-content_public_common_content__features.cc
chromium/patches/patch-content_public_common_content__switches.cc
chromium/patches/patch-content_public_common_content__switches.h
chromium/patches/patch-content_renderer_render__thread__impl.cc
chromium/patches/patch-content_renderer_renderer__blink__platform__impl.cc
chromium/patches/patch-content_renderer_renderer__blink__platform__impl.h
chromium/patches/patch-content_renderer_renderer__main__platform__delegate__linux.cc
chromium/patches/patch-content_shell_BUILD.gn
chromium/patches/patch-content_shell_app_shell__main__delegate.cc
chromium/patches/patch-content_shell_browser_shell__browser__main__parts.cc
chromium/patches/patch-content_test_BUILD.gn
chromium/patches/patch-content_utility_utility__blink__platform__with__sandbox__support__impl.cc
chromium/patches/patch-content_utility_utility__blink__platform__with__sandbox__support__impl.h
chromium/patches/patch-content_zygote_BUILD.gn
chromium/patches/patch-content_zygote_zygote__main__linux.cc
chromium/patches/patch-device_gamepad_BUILD.gn
chromium/patches/patch-device_gamepad_gamepad__provider.cc
chromium/patches/patch-device_gamepad_hid__writer__linux.cc
chromium/patches/patch-extensions_browser_api_messaging_message__service.cc
chromium/patches/patch-extensions_browser_api_networking__private_networking__private__delegate__factory.cc
chromium/patches/patch-extensions_common_api___permission__features.json
chromium/patches/patch-extensions_common_api_runtime.json
chromium/patches/patch-extensions_common_features_feature.cc
chromium/patches/patch-extensions_renderer_bindings_api__binding__util.cc
chromium/patches/patch-extensions_shell_app_shell__main__delegate.cc
chromium/patches/patch-extensions_shell_browser_api_runtime_shell__runtime__api__delegate.cc
chromium/patches/patch-extensions_shell_browser_shell__extensions__api__client.cc
chromium/patches/patch-extensions_shell_browser_shell__extensions__api__client.h
chromium/patches/patch-google__apis_gcm_engine_heartbeat__manager.cc
chromium/patches/patch-gpu_command__buffer_common_gpu__memory__buffer__support.cc
chromium/patches/patch-gpu_config_gpu__control__list.cc
chromium/patches/patch-gpu_config_gpu__test__config.cc
chromium/patches/patch-gpu_ipc_common_gpu__memory__buffer__support.cc
chromium/patches/patch-gpu_ipc_common_gpu__memory__buffer__support.h
chromium/patches/patch-gpu_ipc_service_gpu__init.cc
chromium/patches/patch-gpu_ipc_service_gpu__memory__buffer__factory.cc
chromium/patches/patch-gpu_vulkan_vulkan__function__pointers.cc
chromium/patches/patch-gpu_vulkan_vulkan__function__pointers.h
chromium/patches/patch-headless_lib_browser_headless__content__browser__client.h
chromium/patches/patch-headless_lib_browser_headless__request__context__manager.cc
chromium/patches/patch-headless_lib_headless__content__main__delegate.cc
chromium/patches/patch-ipc_ipc__channel.h
chromium/patches/patch-ipc_ipc__channel__common.cc
chromium/patches/patch-ipc_ipc__channel__mojo.cc
chromium/patches/patch-ipc_ipc__message__utils.cc
chromium/patches/patch-ipc_ipc__message__utils.h
chromium/patches/patch-media_audio_BUILD.gn
chromium/patches/patch-media_audio_alsa_audio__manager__alsa.cc
chromium/patches/patch-media_audio_audio__input__device.cc
chromium/patches/patch-media_base_audio__latency.cc
chromium/patches/patch-media_base_media__switches.cc
chromium/patches/patch-media_base_media__switches.h
chromium/patches/patch-media_base_video__frame.cc
chromium/patches/patch-media_base_video__frame.h
chromium/patches/patch-media_capture_video_create__video__capture__device__factory.cc
chromium/patches/patch-media_capture_video_fake__video__capture__device__factory.cc
chromium/patches/patch-media_capture_video_file__video__capture__device__factory.cc
chromium/patches/patch-media_capture_video_linux_v4l2__capture__delegate.cc
chromium/patches/patch-media_capture_video_linux_v4l2__capture__delegate.h
chromium/patches/patch-media_capture_video_video__capture__device__client.cc
chromium/patches/patch-media_cdm_library__cdm_cdm__paths.gni
chromium/patches/patch-media_gpu_buffer__validation.cc
chromium/patches/patch-media_media__options.gni
chromium/patches/patch-media_mojo_mojom_video__frame__mojom__traits.cc
chromium/patches/patch-media_video_fake__gpu__memory__buffer.cc
chromium/patches/patch-media_video_gpu__memory__buffer__video__frame__pool.cc
chromium/patches/patch-mojo_core_BUILD.gn
chromium/patches/patch-mojo_public_c_system_thunks.cc
chromium/patches/patch-mojo_public_cpp_platform_socket__utils__posix.cc
chromium/patches/patch-mojo_public_tools_bindings_mojom.gni
chromium/patches/patch-net_BUILD.gn
chromium/patches/patch-net_base_network__change__notifier.cc
chromium/patches/patch-net_base_network__change__notifier.h
chromium/patches/patch-net_base_network__interfaces__posix.h
chromium/patches/patch-net_dns_address__sorter__posix.cc
chromium/patches/patch-net_dns_dns__reloader.cc
chromium/patches/patch-net_dns_dns__util.cc
chromium/patches/patch-net_dns_host__resolver__proc.cc
chromium/patches/patch-net_http_http__auth__gssapi__posix.cc
chromium/patches/patch-net_http_http__auth__gssapi__posix.h
chromium/patches/patch-net_proxy__resolution_proxy__config__service__linux.cc
chromium/patches/patch-net_socket_socket__posix.cc
chromium/patches/patch-net_socket_socks5__client__socket.cc
chromium/patches/patch-net_socket_tcp__socket__posix.cc
chromium/patches/patch-net_socket_udp__socket__posix.cc
chromium/patches/patch-net_third__party_quiche_BUILD.gn
chromium/patches/patch-net_tools_cert__verify__tool_cert__verify__tool.cc
chromium/patches/patch-net_traffic__annotation_network__traffic__annotation.h
chromium/patches/patch-net_url__request_url__request__context.cc
chromium/patches/patch-net_url__request_url__request__context.h
chromium/patches/patch-net_url__request_url__request__context__builder.cc
chromium/patches/patch-pdf_pdfium_pdfium__engine.cc
chromium/patches/patch-printing_print__settings.h
chromium/patches/patch-printing_print__settings__conversion.cc
chromium/patches/patch-remoting_base_chromoting__event.cc
chromium/patches/patch-remoting_client_display_sys__opengl.h
chromium/patches/patch-remoting_host_evaluate__capability.cc
chromium/patches/patch-remoting_host_host__attributes.cc
chromium/patches/patch-remoting_host_host__details.cc
chromium/patches/patch-remoting_host_host__main.cc
chromium/patches/patch-remoting_host_it2me_it2me__native__messaging__host__main.cc
chromium/patches/patch-remoting_host_me2me__desktop__environment.cc
chromium/patches/patch-remoting_host_remoting__me2me__host.cc
chromium/patches/patch-sandbox_linux_BUILD.gn
chromium/patches/patch-sandbox_linux_services_init__process__reaper.cc
chromium/patches/patch-sandbox_linux_services_libc__interceptor.cc
chromium/patches/patch-services_device_BUILD.gn
chromium/patches/patch-services_device_hid_BUILD.gn
chromium/patches/patch-services_device_hid_hid__connection__netbsd.h
chromium/patches/patch-services_device_hid_hid__service__netbsd.cc
chromium/patches/patch-services_device_hid_hid__service__netbsd.h
chromium/patches/patch-services_device_serial_BUILD.gn
chromium/patches/patch-services_device_serial_serial__device__enumerator.cc
chromium/patches/patch-services_device_serial_serial__io__handler__posix.cc
chromium/patches/patch-services_device_time__zone__monitor_time__zone__monitor__linux.cc
chromium/patches/patch-services_network_BUILD.gn
chromium/patches/patch-services_network_network__context.cc
chromium/patches/patch-services_network_network__sandbox__hook__linux.cc
chromium/patches/patch-services_network_network__service.cc
chromium/patches/patch-services_network_network__service.h
chromium/patches/patch-services_network_public_mojom_BUILD.gn
chromium/patches/patch-services_resource__coordinator_memory__instrumentation_queued__request__dispatcher.cc
chromium/patches/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics.h
chromium/patches/patch-services_service__manager_public_cpp_service__executable_BUILD.gn
chromium/patches/patch-services_tracing_public_cpp_stack__sampling_tracing__sampler__profiler.cc
chromium/patches/patch-skia_ext_SkMemory__new__handler.cpp
chromium/patches/patch-skia_ext_platform__canvas.h
chromium/patches/patch-third__party_angle_BUILD.gn
chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__internal.h
chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__libpci.cpp
chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__linux.cpp
chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__x11.cpp
chromium/patches/patch-third__party_angle_src_libANGLE_Display.cpp
chromium/patches/patch-third__party_angle_src_libANGLE_renderer_vulkan_DisplayVk__api.h
chromium/patches/patch-third__party_angle_util_BUILD.gn
chromium/patches/patch-third__party_blink_renderer_bindings_scripts_bind__gen_style__format.py
chromium/patches/patch-third__party_blink_renderer_controller_blink__initializer.cc
chromium/patches/patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.cc
chromium/patches/patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.h
chromium/patches/patch-third__party_blink_renderer_core_editing_editing__behavior.cc
chromium/patches/patch-third__party_blink_renderer_core_html_canvas_canvas__async__blob__creator.cc
chromium/patches/patch-third__party_blink_renderer_core_inspector_inspector__memory__agent.cc
chromium/patches/patch-third__party_blink_renderer_core_layout_layout__view.cc
chromium/patches/patch-third__party_blink_renderer_core_paint_paint__layer.cc
chromium/patches/patch-third__party_blink_renderer_core_scroll_scrollbar__theme__aura.cc
chromium/patches/patch-third__party_blink_renderer_platform_BUILD.gn
chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__cache.cc
chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__cache.h
chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__description.cc
chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__metrics.cc
chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__unique__name__lookup.cc
chromium/patches/patch-third__party_blink_renderer_platform_fonts_skia_font__cache__skia.cc
chromium/patches/patch-third__party_blink_renderer_platform_graphics_video__frame__submitter.cc
chromium/patches/patch-third__party_blink_renderer_platform_wtf_container__annotations.h
chromium/patches/patch-third__party_blink_renderer_platform_wtf_stack__util.cc
chromium/patches/patch-third__party_crashpad_crashpad_build_crashpad__buildconfig.gni
chromium/patches/patch-third__party_crashpad_crashpad_client_BUILD.gn
chromium/patches/patch-third__party_crashpad_crashpad_client_crashpad__client__posix.cc
chromium/patches/patch-third__party_crashpad_crashpad_util_misc_address__types.h
chromium/patches/patch-third__party_crashpad_crashpad_util_misc_capture__context.h
chromium/patches/patch-third__party_crashpad_crashpad_util_misc_metrics.cc
chromium/patches/patch-third__party_crashpad_crashpad_util_misc_uuid.cc
chromium/patches/patch-third__party_crashpad_crashpad_util_posix_close__multiple.cc
chromium/patches/patch-third__party_crashpad_crashpad_util_posix_drop__privileges.cc
chromium/patches/patch-third__party_crashpad_crashpad_util_posix_signals.cc
chromium/patches/patch-third__party_crashpad_crashpad_util_posix_symbolic__constants__posix.cc
chromium/patches/patch-third__party_crc32c_BUILD.gn
chromium/patches/patch-third__party_ffmpeg_libavutil_mem.c
chromium/patches/patch-third__party_leveldatabase_env__chromium.cc
chromium/patches/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_memory_singleton.h
chromium/patches/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_synchronization_lock.h
chromium/patches/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_thread__checker.h
chromium/patches/patch-third__party_nasm_config_config-linux.h
chromium/patches/patch-third__party_node_node.py
chromium/patches/patch-third__party_perfetto_include_perfetto_base_build__config.h
chromium/patches/patch-third__party_perfetto_include_perfetto_base_thread__utils.h
chromium/patches/patch-third__party_perfetto_include_perfetto_base_time.h
chromium/patches/patch-third__party_protobuf_src_google_protobuf_stubs_platform__macros.h
chromium/patches/patch-third__party_sqlite_BUILD.gn
chromium/patches/patch-third__party_swiftshader_src_Reactor_Debug.cpp
chromium/patches/patch-third__party_swiftshader_third__party_marl_src_memory.cpp
chromium/patches/patch-third__party_swiftshader_third__party_marl_src_thread.cpp
chromium/patches/patch-third__party_webrtc_BUILD.gn
chromium/patches/patch-third__party_webrtc_modules_audio__device_BUILD.gn
chromium/patches/patch-third__party_webrtc_rtc__base_ip__address.cc
chromium/patches/patch-third__party_webrtc_rtc__base_network.cc
chromium/patches/patch-third__party_webrtc_rtc__base_physical__socket__server.cc
chromium/patches/patch-third__party_webrtc_rtc__base_physical__socket__server.h
chromium/patches/patch-third__party_webrtc_rtc__base_platform__thread__types.cc
chromium/patches/patch-third__party_webrtc_system__wrappers_BUILD.gn
chromium/patches/patch-third__party_zlib_BUILD.gn
chromium/patches/patch-third__party_zlib_cpu__features.c
chromium/patches/patch-tools_gn_build_gen.py
chromium/patches/patch-tools_gn_src_gn_version.h
chromium/patches/patch-tools_gn_src_util_exe__path.cc
chromium/patches/patch-tools_json__schema__compiler_feature__compiler.py
chromium/patches/patch-tools_perf_chrome__telemetry__build_BUILD.gn
chromium/patches/patch-tools_variations_fieldtrial__to__struct.py
chromium/patches/patch-ui_base_dragdrop_os__exchange__data__provider__factory.cc
chromium/patches/patch-ui_base_ime_init_input__method__initializer.cc
chromium/patches/patch-ui_base_resource_resource__bundle.cc
chromium/patches/patch-ui_base_ui__base__features.cc
chromium/patches/patch-ui_base_webui_web__ui__util.cc
chromium/patches/patch-ui_base_x_x11__shm__image__pool.cc
chromium/patches/patch-ui_compositor_compositor.cc
chromium/patches/patch-ui_compositor_compositor.h
chromium/patches/patch-ui_compositor_compositor__observer.h
chromium/patches/patch-ui_events_devices_x11_device__data__manager__x11.cc
chromium/patches/patch-ui_events_event__switches.cc
chromium/patches/patch-ui_events_event__switches.h
chromium/patches/patch-ui_events_keycodes_dom_keycode__converter.cc
chromium/patches/patch-ui_gfx_BUILD.gn
chromium/patches/patch-ui_gfx_canvas__skia.cc
chromium/patches/patch-ui_gfx_font__fallback__linux.cc
chromium/patches/patch-ui_gfx_font__render__params.h
chromium/patches/patch-ui_gfx_font__util.cc
chromium/patches/patch-ui_gfx_gpu__memory__buffer.cc
chromium/patches/patch-ui_gfx_gpu__memory__buffer.h
chromium/patches/patch-ui_gfx_mojom_buffer__types__mojom__traits.cc
chromium/patches/patch-ui_gfx_mojom_native__handle__types__mojom__traits.cc
chromium/patches/patch-ui_gfx_mojom_native__handle__types__mojom__traits.h
chromium/patches/patch-ui_gfx_native__pixmap__handle.cc
chromium/patches/patch-ui_gfx_native__pixmap__handle.h
chromium/patches/patch-ui_gfx_native__widget__types.h
chromium/patches/patch-ui_gl_BUILD.gn
chromium/patches/patch-ui_gl_gl__fence.cc
chromium/patches/patch-ui_gl_sync__control__vsync__provider.cc
chromium/patches/patch-ui_gl_sync__control__vsync__provider.h
chromium/patches/patch-ui_gtk_printing_print__dialog__gtk.cc
chromium/patches/patch-ui_message__center_views_message__popup__view.cc
chromium/patches/patch-ui_native__theme_native__theme.h
chromium/patches/patch-ui_native__theme_native__theme__base.cc
chromium/patches/patch-ui_platform__window_platform__window__init__properties.h
chromium/patches/patch-ui_views_controls_textfield_textfield.cc
chromium/patches/patch-ui_views_corewm_tooltip__aura.cc
chromium/patches/patch-ui_views_examples_widget__example.cc
chromium/patches/patch-ui_views_style_platform__style.cc
chromium/patches/patch-ui_views_views__delegate.cc
chromium/patches/patch-ui_views_views__delegate.h
chromium/patches/patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform.cc
chromium/patches/patch-ui_views_window_custom__frame__view.cc
chromium/patches/patch-ui_views_window_dialog__delegate.cc
chromium/patches/patch-ui_views_window_frame__background.cc
chromium/patches/patch-v8_BUILD.gn
chromium/patches/patch-v8_src_api_api.cc
chromium/patches/patch-v8_src_base_platform_platform-posix.cc
chromium/patches/patch-v8_src_trap-handler_handler-inside-posix.cc
chromium/patches/patch-v8_src_trap-handler_handler-inside-posix.h
Added Files:
chromium/files/chrome
chromium/files/chromium-browser.desktop
chromium/files/nb-delta.patch
chromium/patches/patch-ash_display_mirror__window__controller.cc
chromium/patches/patch-base_allocator_dispatcher_tls.h
chromium/patches/patch-base_allocator_partition__allocator_partition__alloc.gni
chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_BUILD.gn
chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_address__space__randomization.h
chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator.h
chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator__constants.h
chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator__internals__posix.h
chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_debug_stack__trace__posix.cc
chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_rand__util__posix.cc
chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread.h
chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread__internal__posix.h
chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread__posix.cc
chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__config.h
chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__constants.h
chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__forward.h
chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__root.cc
chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_spinning__mutex.cc
chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_stack_stack.cc
chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_thread__isolation_pkey.cc
chromium/patches/patch-base_atomicops.h
chromium/patches/patch-base_compiler__specific.h
chromium/patches/patch-base_debug_proc__maps__linux.cc
chromium/patches/patch-base_debug_stack__trace.cc
chromium/patches/patch-base_features.cc
chromium/patches/patch-base_files_dir__reader__linux.h
chromium/patches/patch-base_files_dir__reader__posix.h
chromium/patches/patch-base_files_file__path__watcher.h
chromium/patches/patch-base_files_file__path__watcher__bsd.cc
chromium/patches/patch-base_files_file__path__watcher__kqueue.h
chromium/patches/patch-base_files_important__file__writer__cleaner.cc
chromium/patches/patch-base_functional_unretained__traits.h
chromium/patches/patch-base_message__loop_message__pump__glib.cc
chromium/patches/patch-base_posix_sysctl.cc
chromium/patches/patch-base_posix_unix__domain__socket__unittest.cc
chromium/patches/patch-base_process_memory__linux.cc
chromium/patches/patch-base_process_process__handle__freebsd.cc
chromium/patches/patch-base_process_process__handle__openbsd.cc
chromium/patches/patch-base_process_process__iterator__freebsd.cc
chromium/patches/patch-base_process_process__iterator__openbsd.cc
chromium/patches/patch-base_process_process__metrics__freebsd.cc
chromium/patches/patch-base_process_process__metrics__openbsd.cc
chromium/patches/patch-base_process_process__metrics__unittest.cc
chromium/patches/patch-base_process_process__posix.cc
chromium/patches/patch-base_profiler_module__cache.cc
chromium/patches/patch-base_profiler_stack__base__address__posix.cc
chromium/patches/patch-base_profiler_stack__sampling__profiler__test__util.cc
chromium/patches/patch-base_profiler_thread__delegate__posix.cc
chromium/patches/patch-base_rand__util.h
chromium/patches/patch-base_rand__util__posix.cc
chromium/patches/patch-base_strings_safe__sprintf__unittest.cc
chromium/patches/patch-base_system_sys__info__freebsd.cc
chromium/patches/patch-base_system_sys__info__openbsd.cc
chromium/patches/patch-base_system_sys__info__unittest.cc
chromium/patches/patch-base_test_test__file__util__linux.cc
chromium/patches/patch-base_threading_hang__watcher.cc
chromium/patches/patch-base_threading_platform__thread__bsd.cc
chromium/patches/patch-base_threading_platform__thread__internal__posix.cc
chromium/patches/patch-base_trace__event_malloc__dump__provider.cc
chromium/patches/patch-base_trace__event_memory__dump__manager.cc
chromium/patches/patch-base_tracing_trace__time.cc
chromium/patches/patch-base_tracing_trace__time.h
chromium/patches/patch-build_config_clang_BUILD.gn
chromium/patches/patch-build_config_linux_BUILD.gn
chromium/patches/patch-build_config_ozone.gni
chromium/patches/patch-build_config_rust.gni
chromium/patches/patch-build_config_v8__target__cpu.gni
chromium/patches/patch-build_detect__host__arch.py
chromium/patches/patch-build_linux_chrome.map
chromium/patches/patch-build_linux_strip__binary.py
chromium/patches/patch-build_linux_unbundle_dav1d.gn
chromium/patches/patch-build_linux_unbundle_icu.gn
chromium/patches/patch-build_linux_unbundle_libevent.gn
chromium/patches/patch-build_linux_unbundle_libusb.gn
chromium/patches/patch-build_rust_rust__bindgen.gni
chromium/patches/patch-build_rust_std_BUILD.gn
chromium/patches/patch-build_toolchain_freebsd_BUILD.gn
chromium/patches/patch-build_toolchain_gcc__solink__wrapper.py
chromium/patches/patch-build_toolchain_openbsd_BUILD.gn
chromium/patches/patch-build_toolchain_toolchain.gni
chromium/patches/patch-cc_BUILD.gn
chromium/patches/patch-cc_base_features.cc
chromium/patches/patch-chrome_browser_apps_app__service_publishers_extension__apps.cc
chromium/patches/patch-chrome_browser_apps_platform__apps_platform__app__launch.cc
chromium/patches/patch-chrome_browser_apps_platform__apps_platform__app__launch.h
chromium/patches/patch-chrome_browser_browser__features.cc
chromium/patches/patch-chrome_browser_browser__process__impl.cc
chromium/patches/patch-chrome_browser_browser__process__impl.h
chromium/patches/patch-chrome_browser_chrome__browser__main__extra__parts__linux.cc
chromium/patches/patch-chrome_browser_chrome__browser__main__extra__parts__ozone.cc
chromium/patches/patch-chrome_browser_chrome__browser__main__linux.h
chromium/patches/patch-chrome_browser_component__updater_widevine__cdm__component__installer.cc
chromium/patches/patch-chrome_browser_custom__handlers_chrome__protocol__handler__registry__delegate.cc
chromium/patches/patch-chrome_browser_download_download__file__picker.cc
chromium/patches/patch-chrome_browser_enterprise_browser__management_browser__management__service.cc
chromium/patches/patch-chrome_browser_enterprise_browser__management_browser__management__service.h
chromium/patches/patch-chrome_browser_enterprise_connectors_analysis_analysis__service__settings.cc
chromium/patches/patch-chrome_browser_enterprise_connectors_connectors__service.cc
chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_device__trust__connector__service__factory.cc
chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_device__trust__service__factory.cc
chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_key__management_browser_commands_key__rotation__command__factory.cc
chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_key__management_core_persistence_key__persistence__delegate__factory.cc
chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_signals_signals__service__factory.cc
chromium/patches/patch-chrome_browser_enterprise_connectors_reporting_browser__crash__event__router.cc
chromium/patches/patch-chrome_browser_enterprise_connectors_reporting_crash__reporting__context.cc
chromium/patches/patch-chrome_browser_enterprise_connectors_reporting_realtime__reporting__client.cc
chromium/patches/patch-chrome_browser_enterprise_connectors_reporting_realtime__reporting__client.h
chromium/patches/patch-chrome_browser_enterprise_identifiers_profile__id__delegate__impl.cc
chromium/patches/patch-chrome_browser_enterprise_profile__management_profile__management__navigation__throttle.cc
chromium/patches/patch-chrome_browser_enterprise_remote__commands_cbcm__remote__commands__factory.cc
chromium/patches/patch-chrome_browser_enterprise_signals_device__info__fetcher.cc
chromium/patches/patch-chrome_browser_enterprise_signals_device__info__fetcher__linux.cc
chromium/patches/patch-chrome_browser_extensions_api_api__browser__context__keyed__service__factories.cc
chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_conversion__utils.cc
chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_conversion__utils.h
chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.cc
chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.h
chromium/patches/patch-chrome_browser_extensions_api_management_chrome__management__api__delegate.cc
chromium/patches/patch-chrome_browser_extensions_api_messaging_native__process__launcher__posix.cc
chromium/patches/patch-chrome_browser_extensions_api_passwords__private_passwords__private__delegate__impl.cc
chromium/patches/patch-chrome_browser_extensions_api_tabs_tabs__api.cc
chromium/patches/patch-chrome_browser_extensions_api_webstore__private_webstore__private__api.cc
chromium/patches/patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.cc
chromium/patches/patch-chrome_browser_gcm_gcm__profile__service__factory.cc
chromium/patches/patch-chrome_browser_gcm_instance__id_instance__id__profile__service__factory.cc
chromium/patches/patch-chrome_browser_headless_headless__mode__util.cc
chromium/patches/patch-chrome_browser_intranet__redirect__detector.h
chromium/patches/patch-chrome_browser_media_audio__service__util.cc
chromium/patches/patch-chrome_browser_media_router_discovery_BUILD.gn
chromium/patches/patch-chrome_browser_media_webrtc_chrome__screen__enumerator.cc
chromium/patches/patch-chrome_browser_media_webrtc_chrome__screen__enumerator.h
chromium/patches/patch-chrome_browser_media_webrtc_desktop__media__picker__controller.cc
chromium/patches/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.h
chromium/patches/patch-chrome_browser_metrics_perf_cpu__identity.cc
chromium/patches/patch-chrome_browser_metrics_power_process__metrics__recorder__util.cc
chromium/patches/patch-chrome_browser_metrics_power_process__monitor.cc
chromium/patches/patch-chrome_browser_metrics_power_process__monitor.h
chromium/patches/patch-chrome_browser_net_system__network__context__manager.h
chromium/patches/patch-chrome_browser_new__tab__page_modules_file__suggestion_drive__service.cc
chromium/patches/patch-chrome_browser_new__tab__page_new__tab__page__util.cc
chromium/patches/patch-chrome_browser_notifications_notification__platform__bridge__delegator.cc
chromium/patches/patch-chrome_browser_password__manager_password__reuse__manager__factory.cc
chromium/patches/patch-chrome_browser_platform__util__linux.cc
chromium/patches/patch-chrome_browser_policy_chrome__browser__cloud__management__controller__desktop.cc
chromium/patches/patch-chrome_browser_policy_configuration__policy__handler__list__factory.cc
chromium/patches/patch-chrome_browser_policy_device__management__service__configuration.cc
chromium/patches/patch-chrome_browser_policy_policy__value__and__status__aggregator.cc
chromium/patches/patch-chrome_browser_printing_print__backend__service__manager.cc
chromium/patches/patch-chrome_browser_printing_printer__query.cc
chromium/patches/patch-chrome_browser_profiles_profile__impl.cc
chromium/patches/patch-chrome_browser_profiles_profiles__state.cc
chromium/patches/patch-chrome_browser_resources_settings_autofill__page_passwords__shared.css
chromium/patches/patch-chrome_browser_resources_signin_signin__shared.css
chromium/patches/patch-chrome_browser_safe__browsing_cloud__content__scanning_binary__upload__service.cc
chromium/patches/patch-chrome_browser_safe__browsing_cloud__content__scanning_deep__scanning__utils.cc
chromium/patches/patch-chrome_browser_screen__ai_screen__ai__install__state.cc
chromium/patches/patch-chrome_browser_screen__ai_screen__ai__service__router.cc
chromium/patches/patch-chrome_browser_sessions_session__restore.cc
chromium/patches/patch-chrome_browser_shortcuts_icon__badging.cc
chromium/patches/patch-chrome_browser_supervised__user_supervised__user__extensions__delegate__impl.cc
chromium/patches/patch-chrome_browser_supervised__user_supervised__user__extensions__manager.cc
chromium/patches/patch-chrome_browser_supervised__user_supervised__user__extensions__manager.h
chromium/patches/patch-chrome_browser_supervised__user_supervised__user__metrics__service__factory.cc
chromium/patches/patch-chrome_browser_supervised__user_supervised__user__navigation__observer.cc
chromium/patches/patch-chrome_browser_sync_device__info__sync__client__impl.cc
chromium/patches/patch-chrome_browser_sync_sync__service__factory.cc
chromium/patches/patch-chrome_browser_sync_sync__service__util.cc
chromium/patches/patch-chrome_browser_themes_theme__helper.cc
chromium/patches/patch-chrome_browser_themes_theme__service.cc
chromium/patches/patch-chrome_browser_themes_theme__service__aura__linux.cc
chromium/patches/patch-chrome_browser_ui_actions_chrome__action__id.h
chromium/patches/patch-chrome_browser_ui_autofill_payments_desktop__payments__window__manager.cc
chromium/patches/patch-chrome_browser_ui_autofill_payments_desktop__payments__window__manager.h
chromium/patches/patch-chrome_browser_ui_browser.h
chromium/patches/patch-chrome_browser_ui_browser__commands.cc
chromium/patches/patch-chrome_browser_ui_browser__ui__prefs.cc
chromium/patches/patch-chrome_browser_ui_chrome__pages.cc
chromium/patches/patch-chrome_browser_ui_chrome__pages.h
chromium/patches/patch-chrome_browser_ui_color_native__chrome__color__mixer.cc
chromium/patches/patch-chrome_browser_ui_omnibox_omnibox__pedal__implementations.cc
chromium/patches/patch-chrome_browser_ui_passwords_bubble__controllers_relaunch__chrome__bubble__controller.cc
chromium/patches/patch-chrome_browser_ui_passwords_manage__passwords__ui__controller.cc
chromium/patches/patch-chrome_browser_ui_sharing__hub_sharing__hub__bubble__controller.h
chromium/patches/patch-chrome_browser_ui_signin_signin__view__controller.cc
chromium/patches/patch-chrome_browser_ui_signin_signin__view__controller__delegate.h
chromium/patches/patch-chrome_browser_ui_startup_startup__browser__creator__impl.cc
chromium/patches/patch-chrome_browser_ui_startup_startup__tab__provider.cc
chromium/patches/patch-chrome_browser_ui_tabs_features.cc
chromium/patches/patch-chrome_browser_ui_tabs_tab__strip__prefs.cc
chromium/patches/patch-chrome_browser_ui_test_popup__browsertest.cc
chromium/patches/patch-chrome_browser_ui_test_test__browser__ui.cc
chromium/patches/patch-chrome_browser_ui_ui__features.cc
chromium/patches/patch-chrome_browser_ui_ui__features.h
chromium/patches/patch-chrome_browser_ui_views_apps_chrome__native__app__window__views__aura.cc
chromium/patches/patch-chrome_browser_ui_views_chrome__views__delegate__linux.cc
chromium/patches/patch-chrome_browser_ui_views_compose_compose__dialog__view.cc
chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame.h
chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame__view__layout__linux.cc
chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame__view__layout__linux__native.cc
chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame__view__linux.cc
chromium/patches/patch-chrome_browser_ui_views_frame_browser__non__client__frame__view__factory__views.cc
chromium/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.h
chromium/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view__layout__delegate.h
chromium/patches/patch-chrome_browser_ui_views_frame_picture__in__picture__browser__frame__view.cc
chromium/patches/patch-chrome_browser_ui_views_frame_picture__in__picture__browser__frame__view.h
chromium/patches/patch-chrome_browser_ui_views_frame_tab__strip__region__view.cc
chromium/patches/patch-chrome_browser_ui_views_omnibox_omnibox__view__views.cc
chromium/patches/patch-chrome_browser_ui_views_passwords_password__bubble__view__base.cc
chromium/patches/patch-chrome_browser_ui_views_profiles_profile__menu__view.cc
chromium/patches/patch-chrome_browser_ui_views_profiles_profile__menu__view__base.cc
chromium/patches/patch-chrome_browser_ui_views_profiles_signin__view__controller__delegate__views.cc
chromium/patches/patch-chrome_browser_ui_views_profiles_signin__view__controller__delegate__views.h
chromium/patches/patch-chrome_browser_ui_views_side__panel_BUILD.gn
chromium/patches/patch-chrome_browser_ui_views_tabs_tab__hover__card__bubble__view.cc
chromium/patches/patch-chrome_browser_ui_views_tabs_tab__style__views.cc
chromium/patches/patch-chrome_browser_ui_views_user__education_browser__user__education__service.cc
chromium/patches/patch-chrome_browser_ui_views_web__apps_web__app__integration__test__driver.cc
chromium/patches/patch-chrome_browser_ui_web__applications_web__app__dialogs.h
chromium/patches/patch-chrome_browser_ui_web__applications_web__app__ui__manager__impl.cc
chromium/patches/patch-chrome_browser_ui_web__applications_web__app__ui__manager__impl.h
chromium/patches/patch-chrome_browser_ui_webui_about_about__ui.cc
chromium/patches/patch-chrome_browser_ui_webui_app__home_app__home__page__handler.cc
chromium/patches/patch-chrome_browser_ui_webui_app__home_app__home__page__handler.h
chromium/patches/patch-chrome_browser_ui_webui_connectors__internals_device__trust__utils.cc
chromium/patches/patch-chrome_browser_ui_webui_management_management__ui.cc
chromium/patches/patch-chrome_browser_ui_webui_management_management__ui__constants.cc
chromium/patches/patch-chrome_browser_ui_webui_management_management__ui__constants.h
chromium/patches/patch-chrome_browser_ui_webui_management_management__ui__handler.cc
chromium/patches/patch-chrome_browser_ui_webui_management_management__ui__handler.h
chromium/patches/patch-chrome_browser_ui_webui_password__manager_promo__cards__handler.cc
chromium/patches/patch-chrome_browser_ui_webui_password__manager_promo__cards_relaunch__chrome__promo.cc
chromium/patches/patch-chrome_browser_ui_webui_searchbox_searchbox__handler.cc
chromium/patches/patch-chrome_browser_ui_webui_settings_accessibility__main__handler.cc
chromium/patches/patch-chrome_browser_ui_webui_settings_accessibility__main__handler.h
chromium/patches/patch-chrome_browser_ui_window__sizer_window__sizer.cc
chromium/patches/patch-chrome_browser_visited__url__ranking_visited__url__ranking__service__factory.cc
chromium/patches/patch-chrome_browser_web__applications_extension__status__utils.h
chromium/patches/patch-chrome_browser_web__applications_extensions_extension__status__utils.cc
chromium/patches/patch-chrome_browser_web__applications_os__integration_os__integration__manager.cc
chromium/patches/patch-chrome_browser_web__applications_os__integration_os__integration__test__override.h
chromium/patches/patch-chrome_browser_web__applications_os__integration_run__on__os__login__sub__manager.cc
chromium/patches/patch-chrome_browser_web__applications_os__integration_shortcut__sub__manager.cc
chromium/patches/patch-chrome_browser_web__applications_os__integration_web__app__file__handler__registration.h
chromium/patches/patch-chrome_browser_web__applications_os__integration_web__app__shortcut.cc
chromium/patches/patch-chrome_browser_web__applications_os__integration_web__app__shortcut.h
chromium/patches/patch-chrome_browser_web__applications_policy_web__app__policy__manager.cc
chromium/patches/patch-chrome_browser_web__applications_test_os__integration__test__override__impl.cc
chromium/patches/patch-chrome_browser_web__applications_test_os__integration__test__override__impl.h
chromium/patches/patch-chrome_browser_web__applications_web__app__helpers.cc
chromium/patches/patch-chrome_browser_web__applications_web__app__install__info.h
chromium/patches/patch-chrome_browser_webauthn_chrome__authenticator__request__delegate.cc
chromium/patches/patch-chrome_browser_webauthn_enclave__manager.cc
chromium/patches/patch-chrome_common_extensions_permissions_chrome__permission__message__rules.cc
chromium/patches/patch-chrome_common_media_cdm__registration.cc
chromium/patches/patch-chrome_common_media_cdm__registration.h
chromium/patches/patch-chrome_common_media_component__widevine__cdm__hint__file__linux.h
chromium/patches/patch-chrome_common_url__constants.h
chromium/patches/patch-chrome_enterprise__companion_enterprise__companion__client.cc
chromium/patches/patch-chrome_enterprise__companion_lock.cc
chromium/patches/patch-chrome_services_printing_print__backend__service__impl.cc
chromium/patches/patch-chrome_services_speech_audio__source__fetcher__impl.cc
chromium/patches/patch-chrome_test_base_scoped__channel__override__posix.cc
chromium/patches/patch-chrome_test_chromedriver_keycode__text__conversion__unittest.cc
chromium/patches/patch-chrome_updater_configurator.cc
chromium/patches/patch-chrome_updater_lock.cc
chromium/patches/patch-chrome_updater_util_posix__util.cc
chromium/patches/patch-chrome_utility_services.cc
chromium/patches/patch-chromecast_cast__core_runtime_browser_runtime__application__service__impl.cc
chromium/patches/patch-chromecast_media_base_default__monotonic__clock.cc
chromium/patches/patch-components_autofill_core_browser_payments__data__manager.cc
chromium/patches/patch-components_autofill_core_common_autofill__features.cc
chromium/patches/patch-components_commerce_core_commerce__feature__list.cc
chromium/patches/patch-components_constrained__window_constrained__window__views.cc
chromium/patches/patch-components_crash_core_app_BUILD.gn
chromium/patches/patch-components_crash_core_app_chrome__crashpad__handler.cc
chromium/patches/patch-components_crash_core_app_crashpad__handler__main.cc
chromium/patches/patch-components_crash_core_browser_crash__upload__list__crashpad.cc
chromium/patches/patch-components_device__signals_core_browser_mock__signals__aggregator.h
chromium/patches/patch-components_device__signals_core_browser_signals__aggregator.h
chromium/patches/patch-components_device__signals_core_browser_signals__aggregator__impl.cc
chromium/patches/patch-components_device__signals_core_browser_signals__aggregator__impl.h
chromium/patches/patch-components_device__signals_core_browser_user__permission__service.h
chromium/patches/patch-components_device__signals_core_browser_user__permission__service__impl.cc
chromium/patches/patch-components_device__signals_core_browser_user__permission__service__impl.h
chromium/patches/patch-components_device__signals_core_common_signals__features.cc
chromium/patches/patch-components_device__signals_core_common_signals__features.h
chromium/patches/patch-components_device__signals_core_system__signals_platform__delegate.cc
chromium/patches/patch-components_device__signals_test_signals__contract.cc
chromium/patches/patch-components_embedder__support_user__agent__utils.cc
chromium/patches/patch-components_embedder__support_user__agent__utils__unittest.cc
chromium/patches/patch-components_enterprise_watermarking_watermark.cc
chromium/patches/patch-components_eye__dropper_eye__dropper__view.cc
chromium/patches/patch-components_feature__engagement_public_feature__configurations.cc
chromium/patches/patch-components_feed_core_proto_v2_wire_version.proto
chromium/patches/patch-components_feed_core_v2_feed__network__impl__unittest.cc
chromium/patches/patch-components_feed_core_v2_proto__util.cc
chromium/patches/patch-components_feed_core_v2_proto__util__unittest.cc
chromium/patches/patch-components_feed_core_v2_test_proto__printer.cc
chromium/patches/patch-components_gwp__asan_client_guarded__page__allocator__posix.cc
chromium/patches/patch-components_gwp__asan_client_gwp__asan.cc
chromium/patches/patch-components_gwp__asan_client_gwp__asan__features.cc
chromium/patches/patch-components_gwp__asan_crash__handler_crash__analyzer.cc
chromium/patches/patch-components_live__caption_caption__util.cc
chromium/patches/patch-components_live__caption_caption__util.h
chromium/patches/patch-components_media__router_common_media__source.cc
chromium/patches/patch-components_media__router_common_providers_cast_channel_cast__message__util.cc
chromium/patches/patch-components_metrics_motherboard.cc
chromium/patches/patch-components_named__mojo__ipc__server_connection__info.h
chromium/patches/patch-components_named__mojo__ipc__server_named__mojo__ipc__server__client__util.cc
chromium/patches/patch-components_named__system__lock_lock.h
chromium/patches/patch-components_network__session__configurator_browser_network__session__configurator__unittest.cc
chromium/patches/patch-components_optimization__guide_core_optimization__guide__util.cc
chromium/patches/patch-components_os__crypt_sync_libsecret__util__linux.cc
chromium/patches/patch-components_os__crypt_sync_os__crypt.h
chromium/patches/patch-components_paint__preview_browser_paint__preview__client.cc
chromium/patches/patch-components_paint__preview_browser_paint__preview__client__unittest.cc
chromium/patches/patch-components_paint__preview_common_proto_paint__preview.proto
chromium/patches/patch-components_paint__preview_player_player__compositor__delegate.cc
chromium/patches/patch-components_password__manager_core_browser_features_password__features.cc
chromium/patches/patch-components_password__manager_core_browser_features_password__features.h
chromium/patches/patch-components_password__manager_core_browser_password__form__manager.cc
chromium/patches/patch-components_password__manager_core_browser_password__manager.cc
chromium/patches/patch-components_password__manager_core_browser_password__manager__client.h
chromium/patches/patch-components_password__manager_core_browser_password__manager__switches.cc
chromium/patches/patch-components_password__manager_core_browser_password__manager__switches.h
chromium/patches/patch-components_password__manager_core_browser_password__manual__fallback__flow.cc
chromium/patches/patch-components_password__manager_core_browser_password__manual__fallback__flow.h
chromium/patches/patch-components_password__manager_core_browser_password__store_login__database.cc
chromium/patches/patch-components_password__manager_core_browser_password__store_login__database__async__helper.cc
chromium/patches/patch-components_password__manager_core_browser_password__store_login__database__unittest.cc
chromium/patches/patch-components_password__manager_core_browser_stub__password__manager__client.cc
chromium/patches/patch-components_password__manager_core_browser_stub__password__manager__client.h
chromium/patches/patch-components_password__manager_core_common_password__manager__pref__names.h
chromium/patches/patch-components_performance__manager_public_features.h
chromium/patches/patch-components_permissions_prediction__service_prediction__common.cc
chromium/patches/patch-components_policy_core_browser_policy__pref__mapping__test.cc
chromium/patches/patch-components_policy_core_common_cloud_cloud__policy__client.cc
chromium/patches/patch-components_policy_core_common_policy__loader__common.cc
chromium/patches/patch-components_policy_core_common_policy__paths.cc
chromium/patches/patch-components_policy_core_common_policy__utils.cc
chromium/patches/patch-components_power__metrics_BUILD.gn
chromium/patches/patch-components_power__metrics_energy__metrics__provider.cc
chromium/patches/patch-components_safe__browsing_content_common_file__type__policies__unittest.cc
chromium/patches/patch-components_safe__browsing_content_resources_gen__file__type__proto.py
chromium/patches/patch-components_safe__browsing_core_browser_db_v4__protocol__manager__util.cc
chromium/patches/patch-components_safe__browsing_core_browser_realtime_url__lookup__service__base.cc
chromium/patches/patch-components_safe__browsing_core_common_features.cc
chromium/patches/patch-components_search__engines_search__engine__choice_search__engine__choice__service.cc
chromium/patches/patch-components_search__engines_template__url__service.cc
chromium/patches/patch-components_segmentation__platform_embedder_default__model_cross__device__user__segment.cc
chromium/patches/patch-components_signin_public_base_signin__switches.cc
chromium/patches/patch-components_signin_public_base_signin__switches.h
chromium/patches/patch-components_soda_soda__util.cc
chromium/patches/patch-components_startup__metric__utils_common_startup__metric__utils.cc
chromium/patches/patch-components_supervised__user_core_browser_supervised__user__metrics__service.cc
chromium/patches/patch-components_supervised__user_core_browser_supervised__user__preferences.cc
chromium/patches/patch-components_supervised__user_core_browser_supervised__user__service.cc
chromium/patches/patch-components_supervised__user_core_common_features.cc
chromium/patches/patch-components_supervised__user_core_common_features.h
chromium/patches/patch-components_supervised__user_core_common_pref__names.h
chromium/patches/patch-components_sync_base_sync__util.cc
chromium/patches/patch-components_system__cpu_cpu__probe.cc
chromium/patches/patch-components_translate_core_common_translate__util.cc
chromium/patches/patch-components_user__education_views_help__bubble__view.cc
chromium/patches/patch-components_variations_service_variations__service.cc
chromium/patches/patch-components_visited__url__ranking_public_url__visit__util.cc
chromium/patches/patch-components_viz_common_features.h
chromium/patches/patch-components_viz_service_display__embedder_skia__output__device__buffer__queue.cc
chromium/patches/patch-components_viz_service_display__embedder_skia__output__surface__impl.cc
chromium/patches/patch-components_viz_service_display_skia__renderer.cc
chromium/patches/patch-components_viz_test_fake__display__client.cc
chromium/patches/patch-components_viz_test_fake__display__client.h
chromium/patches/patch-content_app_BUILD.gn
chromium/patches/patch-content_app_content__main.cc
chromium/patches/patch-content_browser_audio_audio__service.cc
chromium/patches/patch-content_browser_browser__child__process__host__impl.cc
chromium/patches/patch-content_browser_browser__child__process__host__impl.h
chromium/patches/patch-content_browser_browser__child__process__host__impl__receiver__bindings.cc
chromium/patches/patch-content_browser_child__process__launcher__helper.h
chromium/patches/patch-content_browser_child__thread__type__switcher__linux.cc
chromium/patches/patch-content_browser_devtools_devtools__frontend__host__impl.cc
chromium/patches/patch-content_browser_devtools_devtools__frontend__host__impl.h
chromium/patches/patch-content_browser_file__system__access_file__path__watcher_file__path__watcher.h
chromium/patches/patch-content_browser_file__system__access_file__path__watcher_file__path__watcher__bsd.cc
chromium/patches/patch-content_browser_file__system__access_file__path__watcher_file__path__watcher__kqueue.h
chromium/patches/patch-content_browser_file__system__access_file__system__access__local__path__watcher.cc
chromium/patches/patch-content_browser_font__access_font__enumeration__data__source.cc
chromium/patches/patch-content_browser_gpu_compositor__util.cc
chromium/patches/patch-content_browser_gpu_gpu__data__manager__impl.cc
chromium/patches/patch-content_browser_gpu_gpu__data__manager__impl.h
chromium/patches/patch-content_browser_gpu_gpu__data__manager__impl__private.cc
chromium/patches/patch-content_browser_gpu_gpu__data__manager__impl__private.h
chromium/patches/patch-content_browser_gpu_gpu__memory__buffer__manager__singleton.cc
chromium/patches/patch-content_browser_media_frameless__media__interface__proxy.h
chromium/patches/patch-content_browser_media_media__keys__listener__manager__impl.cc
chromium/patches/patch-content_browser_network__service__instance__impl.cc
chromium/patches/patch-content_browser_renderer__host_delegated__frame__host.cc
chromium/patches/patch-content_browser_renderer__host_media_service__video__capture__device__launcher.cc
chromium/patches/patch-content_browser_renderer__host_render__widget__host__view__aura.h
chromium/patches/patch-content_browser_sandbox__host__linux.cc
chromium/patches/patch-content_browser_scheduler_responsiveness_jank__monitor__impl.cc
chromium/patches/patch-content_browser_utility__process__host.h
chromium/patches/patch-content_browser_utility__sandbox__delegate.cc
chromium/patches/patch-content_browser_web__contents_web__contents__view__aura.cc
chromium/patches/patch-content_browser_web__contents_web__contents__view__aura__unittest.cc
chromium/patches/patch-content_browser_webui_web__ui__main__frame__observer.cc
chromium/patches/patch-content_browser_webui_web__ui__main__frame__observer.h
chromium/patches/patch-content_browser_zygote__host_zygote__host__impl__linux.cc
chromium/patches/patch-content_browser_zygote__host_zygote__host__impl__linux.h
chromium/patches/patch-content_child_child__process.cc
chromium/patches/patch-content_child_child__process.h
chromium/patches/patch-content_common_features.cc
chromium/patches/patch-content_common_features.h
chromium/patches/patch-content_common_font__list__unittest.cc
chromium/patches/patch-content_common_gpu__pre__sandbox__hook__bsd.cc
chromium/patches/patch-content_common_gpu__pre__sandbox__hook__bsd.h
chromium/patches/patch-content_common_gpu__pre__sandbox__hook__linux.h
chromium/patches/patch-content_common_mojo__core__library__support.cc
chromium/patches/patch-content_common_user__agent.cc
chromium/patches/patch-content_gpu_gpu__child__thread.cc
chromium/patches/patch-content_ppapi__plugin_ppapi__plugin__main.cc
chromium/patches/patch-content_public_browser_content__browser__client.cc
chromium/patches/patch-content_public_browser_service__process__host.cc
chromium/patches/patch-content_public_browser_zygote__host_zygote__host__linux.h
chromium/patches/patch-content_public_common_zygote_features.gni
chromium/patches/patch-content_renderer_media_gpu_gpu__video__accelerator__factories__impl.cc
chromium/patches/patch-content_shell_browser_shell__paths.cc
chromium/patches/patch-content_shell_renderer_shell__content__renderer__client.cc
chromium/patches/patch-content_shell_utility_shell__content__utility__client.cc
chromium/patches/patch-content_utility_services.cc
chromium/patches/patch-content_utility_speech_speech__recognition__sandbox__hook__linux.cc
chromium/patches/patch-content_utility_speech_speech__recognition__sandbox__hook__linux.h
chromium/patches/patch-content_utility_utility__main.cc
chromium/patches/patch-content_utility_utility__thread__impl.cc
chromium/patches/patch-content_zygote_zygote__linux.cc
chromium/patches/patch-device_bluetooth_bluetooth__adapter.cc
chromium/patches/patch-device_bluetooth_cast__bluetooth.gni
chromium/patches/patch-device_fido_fido__discovery__factory.cc
chromium/patches/patch-extensions_browser_api_api__browser__context__keyed__service__factories.cc
chromium/patches/patch-extensions_browser_api_management_management__api.cc
chromium/patches/patch-extensions_common_command.cc
chromium/patches/patch-extensions_renderer_bindings_argument__spec.cc
chromium/patches/patch-extensions_shell_browser_shell__browser__main__parts.cc
chromium/patches/patch-gpu_command__buffer_service_dawn__context__provider.cc
chromium/patches/patch-gpu_command__buffer_service_gles2__cmd__decoder.cc
chromium/patches/patch-gpu_command__buffer_service_shared__image_angle__vulkan__image__backing__factory.cc
chromium/patches/patch-gpu_command__buffer_service_shared__image_external__vk__image__backing.cc
chromium/patches/patch-gpu_command__buffer_service_shared__image_external__vk__image__backing__factory.cc
chromium/patches/patch-gpu_command__buffer_service_shared__image_shared__image__factory.cc
chromium/patches/patch-gpu_command__buffer_service_shared__image_shared__image__manager.cc
chromium/patches/patch-gpu_command__buffer_service_shared__image_wrapped__sk__image__backing.cc
chromium/patches/patch-gpu_command__buffer_service_webgpu__decoder__impl.cc
chromium/patches/patch-gpu_command__buffer_tests_gl__gpu__memory__buffer__unittest.cc
chromium/patches/patch-gpu_config_gpu__finch__features.cc
chromium/patches/patch-gpu_config_gpu__info__collector.cc
chromium/patches/patch-gpu_ipc_service_x__util.h
chromium/patches/patch-gpu_vulkan_generate__bindings.py
chromium/patches/patch-gpu_vulkan_semaphore__handle.cc
chromium/patches/patch-gpu_vulkan_vulkan__device__queue.cc
chromium/patches/patch-gpu_vulkan_vulkan__device__queue.h
chromium/patches/patch-gpu_vulkan_vulkan__image.h
chromium/patches/patch-gpu_vulkan_vulkan__util.cc
chromium/patches/patch-headless_lib_browser_headless__browser__main__parts__posix.cc
chromium/patches/patch-headless_lib_browser_headless__web__contents__impl.cc
chromium/patches/patch-media_BUILD.gn
chromium/patches/patch-media_audio_audio__output__proxy__unittest.cc
chromium/patches/patch-media_audio_pulse_pulse__util.cc
chromium/patches/patch-media_audio_sndio_audio__manager__sndio.cc
chromium/patches/patch-media_audio_sndio_audio__manager__sndio.h
chromium/patches/patch-media_audio_sndio_sndio__input.cc
chromium/patches/patch-media_audio_sndio_sndio__input.h
chromium/patches/patch-media_audio_sndio_sndio__output.cc
chromium/patches/patch-media_audio_sndio_sndio__output.h
chromium/patches/patch-media_base_libaom__thread__wrapper.cc
chromium/patches/patch-media_base_libvpx__thread__wrapper.cc
chromium/patches/patch-media_base_user__input__monitor__unittest.cc
chromium/patches/patch-media_capture_video_linux_fake__v4l2__impl.cc
chromium/patches/patch-media_capture_video_linux_fake__v4l2__impl.h
chromium/patches/patch-media_capture_video_linux_v4l2__capture__device.h
chromium/patches/patch-media_capture_video_linux_v4l2__capture__device__impl.cc
chromium/patches/patch-media_capture_video_linux_v4l2__capture__device__impl.h
chromium/patches/patch-media_capture_video_linux_video__capture__device__factory__v4l2.cc
chromium/patches/patch-media_capture_video_linux_video__capture__device__factory__v4l2.h
chromium/patches/patch-media_capture_video_linux_video__capture__device__linux.cc
chromium/patches/patch-media_capture_video_video__capture__buffer__tracker__factory__impl.cc
chromium/patches/patch-media_cdm_cdm__paths__unittest.cc
chromium/patches/patch-media_ffmpeg_scripts_build__ffmpeg.py
chromium/patches/patch-media_ffmpeg_scripts_robo__lib_config.py
chromium/patches/patch-media_gpu_chromeos_gl__image__processor__backend.cc
chromium/patches/patch-media_gpu_chromeos_libyuv__image__processor__backend.cc
chromium/patches/patch-media_gpu_chromeos_mailbox__video__frame__converter.cc
chromium/patches/patch-media_gpu_chromeos_native__pixmap__frame__resource.cc
chromium/patches/patch-media_gpu_chromeos_platform__video__frame__utils.cc
chromium/patches/patch-media_gpu_chromeos_video__decoder__pipeline.cc
chromium/patches/patch-media_gpu_gpu__video__encode__accelerator__factory.cc
chromium/patches/patch-media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.cc
chromium/patches/patch-media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.h
chromium/patches/patch-media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.cc
chromium/patches/patch-media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.h
chromium/patches/patch-media_gpu_vaapi_vaapi__video__decoder.cc
chromium/patches/patch-media_gpu_vaapi_vaapi__wrapper.cc
chromium/patches/patch-media_mojo_mojom_stable_BUILD.gn
chromium/patches/patch-media_mojo_mojom_stable_stable__video__decoder__types__mojom__traits.cc
chromium/patches/patch-media_mojo_mojom_stable_stable__video__decoder__types__mojom__traits.h
chromium/patches/patch-media_video_video__encode__accelerator__adapter.cc
chromium/patches/patch-media_video_video__encode__accelerator__adapter__test.cc
chromium/patches/patch-media_webrtc_audio__processor.cc
chromium/patches/patch-media_webrtc_helpers.cc
chromium/patches/patch-media_webrtc_helpers__unittests.cc
chromium/patches/patch-mojo_core_channel.cc
chromium/patches/patch-mojo_core_embedder_features.h
chromium/patches/patch-net_base_features.cc
chromium/patches/patch-net_base_mock__network__change__notifier.cc
chromium/patches/patch-net_base_mock__network__change__notifier.h
chromium/patches/patch-net_base_network__change__notifier__passive.cc
chromium/patches/patch-net_base_sockaddr__util__posix.cc
chromium/patches/patch-net_base_sockaddr__util__posix__unittest.cc
chromium/patches/patch-net_cert_cert__verify__proc.h
chromium/patches/patch-net_disk__cache_simple_simple__file__tracker.cc
chromium/patches/patch-net_dns_BUILD.gn
chromium/patches/patch-net_dns_address__info.cc
chromium/patches/patch-net_dns_dns__config__service__posix.cc
chromium/patches/patch-net_dns_public_BUILD.gn
chromium/patches/patch-net_dns_public_resolv__reader.cc
chromium/patches/patch-net_dns_public_resolv__reader.h
chromium/patches/patch-net_dns_public_scoped__res__state.cc
chromium/patches/patch-net_dns_public_scoped__res__state.h
chromium/patches/patch-net_filter_zstd__source__stream.cc
chromium/patches/patch-net_http_http__auth__handler__negotiate.cc
chromium/patches/patch-net_http_http__auth__preferences.cc
chromium/patches/patch-net_http_http__auth__preferences.h
chromium/patches/patch-net_http_http__network__session.cc
chromium/patches/patch-net_proxy__resolution_proxy__config__service.cc
chromium/patches/patch-net_socket_udp__socket__unittest.cc
chromium/patches/patch-net_tools_cert__verify__tool_cert__verify__comparision__tool.cc
chromium/patches/patch-net_tools_net__watcher_net__watcher.cc
chromium/patches/patch-ppapi_tests_test__utils.h
chromium/patches/patch-printing_backend_cups__ipp__helper.cc
chromium/patches/patch-printing_backend_print__backend__cups.cc
chromium/patches/patch-printing_mojom_printing__context__mojom__traits.cc
chromium/patches/patch-printing_mojom_printing__context__mojom__traits.h
chromium/patches/patch-printing_print__settings.cc
chromium/patches/patch-printing_printing__context__linux.cc
chromium/patches/patch-printing_printing__features.cc
chromium/patches/patch-printing_printing__features.h
chromium/patches/patch-printing_sandbox_print__backend__sandbox__hook__linux.cc
chromium/patches/patch-printing_sandbox_print__backend__sandbox__hook__linux.h
chromium/patches/patch-remoting_base_host__settings.cc
chromium/patches/patch-remoting_codec_webrtc__video__encoder__vpx.cc
chromium/patches/patch-remoting_host_base_desktop__environment__options.cc
chromium/patches/patch-remoting_host_base_switches.cc
chromium/patches/patch-remoting_host_base_switches.h
chromium/patches/patch-remoting_host_basic__desktop__environment.cc
chromium/patches/patch-remoting_host_chromoting__host.cc
chromium/patches/patch-remoting_host_chromoting__host.h
chromium/patches/patch-remoting_host_chromoting__host__context.cc
chromium/patches/patch-remoting_host_chromoting__host__services__client.cc
chromium/patches/patch-remoting_host_client__session.cc
chromium/patches/patch-remoting_host_crash_crash__file__uploader.cc
chromium/patches/patch-remoting_host_desktop__and__cursor__conditional__composer.cc
chromium/patches/patch-remoting_host_desktop__capturer__proxy.cc
chromium/patches/patch-remoting_host_desktop__capturer__wrapper.cc
chromium/patches/patch-remoting_host_ipc__constants.cc
chromium/patches/patch-remoting_host_it2me_it2me__host.cc
chromium/patches/patch-remoting_host_mouse__cursor__monitor__proxy.cc
chromium/patches/patch-remoting_host_policy__watcher.cc
chromium/patches/patch-remoting_host_remote__open__url_remote__open__url__client.cc
chromium/patches/patch-remoting_host_remote__open__url_remote__open__url__util.cc
chromium/patches/patch-remoting_host_remote__open__url_url__forwarder__configurator.cc
chromium/patches/patch-remoting_host_setup_start__host__main.cc
chromium/patches/patch-remoting_host_webauthn_remote__webauthn__caller__security__utils.cc
chromium/patches/patch-remoting_host_webauthn_remote__webauthn__extension__notifier.cc
chromium/patches/patch-remoting_protocol_webrtc__video__stream.cc
chromium/patches/patch-sandbox_BUILD.gn
chromium/patches/patch-sandbox_features.gni
chromium/patches/patch-sandbox_policy_BUILD.gn
chromium/patches/patch-sandbox_policy_features.cc
chromium/patches/patch-sandbox_policy_features.h
chromium/patches/patch-sandbox_policy_freebsd_sandbox__freebsd.cc
chromium/patches/patch-sandbox_policy_freebsd_sandbox__freebsd.h
chromium/patches/patch-sandbox_policy_mojom_sandbox.mojom
chromium/patches/patch-sandbox_policy_netbsd_sandbox__netbsd.cc
chromium/patches/patch-sandbox_policy_netbsd_sandbox__netbsd.h
chromium/patches/patch-sandbox_policy_openbsd_sandbox__openbsd.cc
chromium/patches/patch-sandbox_policy_openbsd_sandbox__openbsd.h
chromium/patches/patch-sandbox_policy_sandbox.cc
chromium/patches/patch-sandbox_policy_sandbox.h
chromium/patches/patch-sandbox_policy_sandbox__type.cc
chromium/patches/patch-sandbox_policy_switches.cc
chromium/patches/patch-sandbox_policy_switches.h
chromium/patches/patch-services_audio_audio__sandbox__hook__linux.cc
chromium/patches/patch-services_audio_audio__sandbox__hook__linux.h
chromium/patches/patch-services_device_hid_hid__connection__fido.cc
chromium/patches/patch-services_device_hid_hid__connection__fido.h
chromium/patches/patch-services_device_hid_hid__connection__freebsd.cc
chromium/patches/patch-services_device_hid_hid__connection__freebsd.h
chromium/patches/patch-services_device_hid_hid__connection__netbsd.cc
chromium/patches/patch-services_device_hid_hid__service.cc
chromium/patches/patch-services_device_hid_hid__service__fido.cc
chromium/patches/patch-services_device_hid_hid__service__fido.h
chromium/patches/patch-services_device_hid_hid__service__freebsd.cc
chromium/patches/patch-services_device_hid_hid__service__freebsd.h
chromium/patches/patch-services_device_public_cpp_generic__sensor_sensor__reading.h
chromium/patches/patch-services_device_public_mojom_BUILD.gn
chromium/patches/patch-services_device_usb_BUILD.gn
chromium/patches/patch-services_device_usb_usb__service.cc
chromium/patches/patch-services_device_usb_usb__service__fake.cc
chromium/patches/patch-services_device_usb_usb__service__fake.h
chromium/patches/patch-services_network_network__context.h
chromium/patches/patch-services_network_network__sandbox__hook__linux.h
chromium/patches/patch-services_network_public_cpp_BUILD.gn
chromium/patches/patch-services_network_public_cpp_features.cc
chromium/patches/patch-services_network_shared__dictionary_shared__dictionary__writer__in__memory.h
chromium/patches/patch-services_on__device__model_on__device__model__service.h
chromium/patches/patch-services_on__device__model_pre__sandbox__init.cc
chromium/patches/patch-services_resource__coordinator_public_cpp_memory__instrumentation_BUILD.gn
chromium/patches/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics__bsd.cc
chromium/patches/patch-services_screen__ai_public_cpp_utilities.cc
chromium/patches/patch-services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.cc
chromium/patches/patch-services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.h
chromium/patches/patch-services_service__manager_BUILD.gn
chromium/patches/patch-services_video__capture_public_mojom_video__capture__service.mojom
chromium/patches/patch-services_video__capture_video__capture__service__impl.cc
chromium/patches/patch-services_video__capture_video__capture__service__impl.h
chromium/patches/patch-skia_ext_font__utils.cc
chromium/patches/patch-skia_ext_skcolorspace__trfn.cc
chromium/patches/patch-third__party_abseil-cpp_absl_base_config.h
chromium/patches/patch-third__party_abseil-cpp_absl_base_internal_raw__logging.cc
chromium/patches/patch-third__party_abseil-cpp_absl_base_internal_sysinfo.cc
chromium/patches/patch-third__party_abseil-cpp_absl_debugging_internal_elf__mem__image.h
chromium/patches/patch-third__party_abseil-cpp_absl_time_internal_cctz_src_time__zone__format.cc
chromium/patches/patch-third__party_afl_src_afl-fuzz.c
chromium/patches/patch-third__party_angle_src_common_platform.h
chromium/patches/patch-third__party_angle_src_common_platform__helpers.h
chromium/patches/patch-third__party_angle_src_common_system__utils.cpp
chromium/patches/patch-third__party_angle_src_common_system__utils__linux.cpp
chromium/patches/patch-third__party_angle_src_libANGLE_formatutils.cpp
chromium/patches/patch-third__party_angle_src_libANGLE_renderer_gl_glx_FunctionsGLX.cpp
chromium/patches/patch-third__party_blink_common_renderer__preferences_renderer__preferences__mojom__traits.cc
chromium/patches/patch-third__party_blink_public_common_renderer__preferences_renderer__preferences.h
chromium/patches/patch-third__party_blink_public_common_renderer__preferences_renderer__preferences__mojom__traits.h
chromium/patches/patch-third__party_blink_public_platform_platform.h
chromium/patches/patch-third__party_blink_public_platform_web__vector.h
chromium/patches/patch-third__party_blink_renderer_build_scripts_run__with__pythonpath.py
chromium/patches/patch-third__party_blink_renderer_core_execution__context_navigator__base.cc
chromium/patches/patch-third__party_blink_renderer_core_exported_web__view__impl.cc
chromium/patches/patch-third__party_blink_renderer_core_frame_web__frame__test.cc
chromium/patches/patch-third__party_blink_renderer_core_xml_xslt__processor.h
chromium/patches/patch-third__party_blink_renderer_core_xml_xslt__processor__libxslt.cc
chromium/patches/patch-third__party_blink_renderer_modules_media_audio_audio__device__factory.cc
chromium/patches/patch-third__party_blink_renderer_modules_media_audio_audio__renderer__mixer__manager__test.cc
chromium/patches/patch-third__party_blink_renderer_modules_peerconnection_webrtc__audio__renderer__test.cc
chromium/patches/patch-third__party_blink_renderer_modules_webaudio_audio__worklet__thread__test.cc
chromium/patches/patch-third__party_blink_renderer_modules_webgl_webgl__rendering__context__base.cc
chromium/patches/patch-third__party_blink_renderer_modules_webgpu_gpu__queue.cc
chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__platform__data.cc
chromium/patches/patch-third__party_blink_renderer_platform_graphics_begin__frame__provider.cc
chromium/patches/patch-third__party_blink_renderer_platform_instrumentation_partition__alloc__memory__dump__provider.cc
chromium/patches/patch-third__party_blink_renderer_platform_peerconnection_rtc__video__encoder__factory.cc
chromium/patches/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5
chromium/patches/patch-third__party_blink_renderer_platform_scheduler_common_thread.cc
chromium/patches/patch-third__party_blink_renderer_platform_video__capture_video__capture__impl.cc
chromium/patches/patch-third__party_blink_renderer_platform_widget_compositing_blink__categorized__worker__pool__delegate.cc
chromium/patches/patch-third__party_blink_renderer_platform_wtf_math__extras.h
chromium/patches/patch-third__party_blink_renderer_platform_wtf_text_text__codec__icu.cc
chromium/patches/patch-third__party_blink_renderer_platform_wtf_thread__specific.h
chromium/patches/patch-third__party_brotli_common_platform.h
chromium/patches/patch-third__party_cpuinfo_cpuinfo.gni
chromium/patches/patch-third__party_crashpad_crashpad_minidump_minidump__misc__info__writer.cc
chromium/patches/patch-third__party_dawn_include_dawn_native_VulkanBackend.h
chromium/patches/patch-third__party_dawn_src_dawn_common_Platform.h
chromium/patches/patch-third__party_dawn_src_dawn_native_vulkan_BackendVk.cpp
chromium/patches/patch-third__party_ffmpeg_BUILD.gn
chromium/patches/patch-third__party_ffmpeg_libavcodec_x86_cabac.h
chromium/patches/patch-third__party_ffmpeg_libavutil_cpu.c
chromium/patches/patch-third__party_ffmpeg_libavutil_random__seed.c
chromium/patches/patch-third__party_ffmpeg_libavutil_x86_x86inc.asm
chromium/patches/patch-third__party_fontconfig_include_config.h
chromium/patches/patch-third__party_fontconfig_src_src_fccompat.c
chromium/patches/patch-third__party_ipcz_src_reference__drivers_random.cc
chromium/patches/patch-third__party_ipcz_src_standalone_base_logging.cc
chromium/patches/patch-third__party_libaom_source_libaom_aom__ports_aarch64__cpudetect.c
chromium/patches/patch-third__party_libc++_src_src_chrono.cpp
chromium/patches/patch-third__party_libc++_src_src_filesystem_filesystem__clock.cpp
chromium/patches/patch-third__party_libc++abi_src_src_cxa__guard__impl.h
chromium/patches/patch-third__party_libdrm_src_xf86drmMode.c
chromium/patches/patch-third__party_libsync_src_include_sync_sync.h
chromium/patches/patch-third__party_libsync_src_sync.c
chromium/patches/patch-third__party_libusb_BUILD.gn
chromium/patches/patch-third__party_libusb_src_libusb_core.c
chromium/patches/patch-third__party_libusb_src_libusb_os_threads__posix.c
chromium/patches/patch-third__party_libvpx_source_libvpx_vpx__ports_aarch64__cpudetect.c
chromium/patches/patch-third__party_lzma__sdk_C_CpuArch.c
chromium/patches/patch-third__party_material__color__utilities_src_cpp_palettes_tones.cc
chromium/patches/patch-third__party_nasm_BUILD.gn
chromium/patches/patch-third__party_node_node.gni
chromium/patches/patch-third__party_pdfium_core_fxge_cfx__fontmapper.cpp
chromium/patches/patch-third__party_pdfium_core_fxge_linux_fx__linux__impl.cpp
chromium/patches/patch-third__party_pdfium_fxjs_fx__date__helpers.cpp
chromium/patches/patch-third__party_pdfium_pdfium.gni
chromium/patches/patch-third__party_pdfium_xfa_fxfa_parser_cxfa__timezoneprovider.cpp
chromium/patches/patch-third__party_perfetto_include_perfetto_ext_base_event__fd.h
chromium/patches/patch-third__party_perfetto_include_perfetto_ext_base_thread__utils.h
chromium/patches/patch-third__party_perfetto_include_perfetto_tracing_internal_track__event__legacy.h
chromium/patches/patch-third__party_perfetto_protos_perfetto_trace_ftrace_v4l2.proto
chromium/patches/patch-third__party_perfetto_src_base_event__fd.cc
chromium/patches/patch-third__party_perfetto_src_base_periodic__task.cc
chromium/patches/patch-third__party_perfetto_src_base_string__utils.cc
chromium/patches/patch-third__party_perfetto_src_base_subprocess__posix.cc
chromium/patches/patch-third__party_perfetto_src_base_test_vm__test__utils.cc
chromium/patches/patch-third__party_perfetto_src_base_thread__task__runner.cc
chromium/patches/patch-third__party_perfetto_src_base_unix__socket.cc
chromium/patches/patch-third__party_perfetto_src_trace__processor_importers_ftrace_v4l2__tracker.cc
chromium/patches/patch-third__party_perfetto_src_tracing_core_clock__snapshots.cc
chromium/patches/patch-third__party_perfetto_src_tracing_ipc_memfd.cc
chromium/patches/patch-third__party_perfetto_src_tracing_track.cc
chromium/patches/patch-third__party_skia_src_gpu_ganesh_GrAutoLocaleSetter.h
chromium/patches/patch-third__party_skia_src_ports_SkMemory__malloc.cpp
chromium/patches/patch-third__party_skia_src_ports_SkOSFile__posix.cpp
chromium/patches/patch-third__party_speech-dispatcher_libspeechd__version.h
chromium/patches/patch-third__party_speech-dispatcher_speechd__types.h
chromium/patches/patch-third__party_sqlite_src_amalgamation__dev_sqlite3.c
chromium/patches/patch-third__party_sqlite_src_amalgamation_sqlite3.c
chromium/patches/patch-third__party_swiftshader_src_System_Configurator.cpp
chromium/patches/patch-third__party_swiftshader_src_System_Linux_MemFd.cpp
chromium/patches/patch-third__party_swiftshader_src_Vulkan_VkSemaphoreExternalLinux.hpp
chromium/patches/patch-third__party_swiftshader_src_WSI_libXCB.cpp
chromium/patches/patch-third__party_swiftshader_third__party_llvm-10.0_configs_linux_include_llvm_Config_config.h
chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_Linux_include_llvm_Config_config.h
chromium/patches/patch-third__party_test__fonts_fontconfig_BUILD.gn
chromium/patches/patch-third__party_test__fonts_fontconfig_fontconfig__util__linux.cc
chromium/patches/patch-third__party_test__fonts_fontconfig_generate__fontconfig__caches.cc
chromium/patches/patch-third__party_tflite_features.gni
chromium/patches/patch-third__party_unrar_src_crypt.cpp
chromium/patches/patch-third__party_vulkan-validation-layers_src_layers_external_vma_vk__mem__alloc.h
chromium/patches/patch-third__party_vulkan-validation-layers_src_layers_vulkan_generated_vk__function__pointers.cpp
chromium/patches/patch-third__party_vulkan__memory__allocator_include_vk__mem__alloc.h
chromium/patches/patch-third__party_wayland_BUILD.gn
chromium/patches/patch-third__party_wayland_include_config.h
chromium/patches/patch-third__party_webrtc_modules_desktop__capture_linux_wayland_egl__dmabuf.cc
chromium/patches/patch-third__party_webrtc_modules_desktop__capture_linux_x11_x__server__pixel__buffer.cc
chromium/patches/patch-third__party_webrtc_rtc__base_byte__order.h
chromium/patches/patch-third__party_webrtc_rtc__base_net__test__helpers.cc
chromium/patches/patch-third__party_webrtc_rtc__base_third__party_sigslot_sigslot.h
chromium/patches/patch-third__party_widevine_cdm_widevine.gni
chromium/patches/patch-tools_generate__shim__headers_generate__shim__headers.py
chromium/patches/patch-tools_generate__stubs_rules.gni
chromium/patches/patch-tools_gn_build_build__linux.ninja.template
chromium/patches/patch-tools_gn_src_base_files_file__posix.cc
chromium/patches/patch-tools_grit_grit_node_base.py
chromium/patches/patch-tools_json__schema__compiler_cpp__bundle__generator.py
chromium/patches/patch-tools_memory_partition__allocator_inspect__utils.h
chromium/patches/patch-tools_protoc__wrapper_protoc__wrapper.py
chromium/patches/patch-tools_v8__context__snapshot_BUILD.gn
chromium/patches/patch-ui_aura_client_drag__drop__client.h
chromium/patches/patch-ui_aura_screen__ozone.cc
chromium/patches/patch-ui_aura_screen__ozone.h
chromium/patches/patch-ui_base_clipboard_clipboard__constants.cc
chromium/patches/patch-ui_base_clipboard_clipboard__constants.h
chromium/patches/patch-ui_base_clipboard_clipboard__non__backed.cc
chromium/patches/patch-ui_base_cursor_cursor__factory.cc
chromium/patches/patch-ui_base_cursor_cursor__factory.h
chromium/patches/patch-ui_base_dragdrop_os__exchange__data__provider__non__backed.cc
chromium/patches/patch-ui_base_ime_dummy__text__input__client.cc
chromium/patches/patch-ui_base_ime_dummy__text__input__client.h
chromium/patches/patch-ui_base_ime_fake__text__input__client.cc
chromium/patches/patch-ui_base_ime_fake__text__input__client.h
chromium/patches/patch-ui_base_ime_linux_linux__input__method__context__factory.cc
chromium/patches/patch-ui_base_ime_text__input__client.h
chromium/patches/patch-ui_base_test_skia__gold__pixel__diff.cc
chromium/patches/patch-ui_base_test_ui__controls.h
chromium/patches/patch-ui_base_ui__base__switches.cc
chromium/patches/patch-ui_base_ui__base__switches.h
chromium/patches/patch-ui_base_x_x11__cursor__factory.cc
chromium/patches/patch-ui_base_x_x11__cursor__factory.h
chromium/patches/patch-ui_base_x_x11__cursor__loader.cc
chromium/patches/patch-ui_base_x_x11__display__manager.cc
chromium/patches/patch-ui_base_x_x11__display__util.cc
chromium/patches/patch-ui_base_x_x11__util.cc
chromium/patches/patch-ui_base_x_x11__util.h
chromium/patches/patch-ui_color_color__id.h
chromium/patches/patch-ui_color_color__provider__utils.cc
chromium/patches/patch-ui_color_system__theme.h
chromium/patches/patch-ui_display_screen.cc
chromium/patches/patch-ui_display_screen.h
chromium/patches/patch-ui_events_event.cc
chromium/patches/patch-ui_events_keycodes_dom_keycode__converter.h
chromium/patches/patch-ui_gfx_font__render__params__linux.cc
chromium/patches/patch-ui_gfx_linux_dmabuf__uapi.h
chromium/patches/patch-ui_gfx_linux_gbm__wrapper.cc
chromium/patches/patch-ui_gfx_platform__font__skia.cc
chromium/patches/patch-ui_gfx_render__text__api__fuzzer.cc
chromium/patches/patch-ui_gfx_render__text__fuzzer.cc
chromium/patches/patch-ui_gfx_switches.cc
chromium/patches/patch-ui_gfx_switches.h
chromium/patches/patch-ui_gfx_x_generated__protos_dri3.cc
chromium/patches/patch-ui_gfx_x_generated__protos_shm.cc
chromium/patches/patch-ui_gfx_x_xlib__support.cc
chromium/patches/patch-ui_gl_gl__bindings.h
chromium/patches/patch-ui_gl_gl__context.cc
chromium/patches/patch-ui_gl_gl__implementation.cc
chromium/patches/patch-ui_gl_gl__switches.cc
chromium/patches/patch-ui_gtk_gtk__compat.cc
chromium/patches/patch-ui_native__theme_native__theme__features.cc
chromium/patches/patch-ui_ozone_common_egl__util.cc
chromium/patches/patch-ui_ozone_common_features.cc
chromium/patches/patch-ui_ozone_platform_headless_headless__surface__factory.cc
chromium/patches/patch-ui_ozone_platform_headless_ozone__platform__headless.cc
chromium/patches/patch-ui_ozone_platform_headless_vulkan__implementation__headless.cc
chromium/patches/patch-ui_ozone_platform_wayland_common_wayland__util.cc
chromium/patches/patch-ui_ozone_platform_wayland_emulate_wayland__input__emulate.cc
chromium/patches/patch-ui_ozone_platform_wayland_emulate_wayland__input__emulate.h
chromium/patches/patch-ui_ozone_platform_wayland_gpu_vulkan__implementation__wayland.cc
chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__connection.cc
chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__input__method__context.cc
chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__popup.cc
chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__toplevel__window.cc
chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__toplevel__window.h
chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__window.cc
chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__window.h
chromium/patches/patch-ui_ozone_platform_wayland_host_xdg__toplevel__wrapper__impl.cc
chromium/patches/patch-ui_ozone_platform_wayland_host_zwp__text__input__wrapper__v1.cc
chromium/patches/patch-ui_ozone_platform_wayland_ozone__platform__wayland.cc
chromium/patches/patch-ui_ozone_platform_x11_vulkan__implementation__x11.cc
chromium/patches/patch-ui_ozone_platform_x11_x11__screen__ozone.cc
chromium/patches/patch-ui_ozone_platform_x11_x11__screen__ozone.h
chromium/patches/patch-ui_ozone_platform_x11_x11__window.cc
chromium/patches/patch-ui_ozone_test_mock__platform__window__delegate.h
chromium/patches/patch-ui_platform__window_platform__window__delegate.cc
chromium/patches/patch-ui_platform__window_platform__window__delegate.h
chromium/patches/patch-ui_qt_BUILD.gn
chromium/patches/patch-ui_qt_qt.gni
chromium/patches/patch-ui_strings_translations_app__locale__settings__bn.xtb
chromium/patches/patch-ui_strings_translations_app__locale__settings__ja.xtb
chromium/patches/patch-ui_strings_translations_app__locale__settings__ko.xtb
chromium/patches/patch-ui_strings_translations_app__locale__settings__ml.xtb
chromium/patches/patch-ui_strings_translations_app__locale__settings__th.xtb
chromium/patches/patch-ui_strings_translations_app__locale__settings__zh-CN.xtb
chromium/patches/patch-ui_strings_translations_app__locale__settings__zh-TW.xtb
chromium/patches/patch-ui_views_controls_prefix__selector.cc
chromium/patches/patch-ui_views_controls_prefix__selector.h
chromium/patches/patch-ui_views_controls_textfield_textfield.h
chromium/patches/patch-ui_views_focus_focus__manager.cc
chromium/patches/patch-ui_views_test_ui__controls__factory__desktop__aura__ozone.cc
chromium/patches/patch-ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.cc
chromium/patches/patch-ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.h
chromium/patches/patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform__impl__interactive__uitest.cc
chromium/patches/patch-ui_views_widget_root__view.cc
chromium/patches/patch-ui_views_widget_widget.cc
chromium/patches/patch-v8_include_v8-internal.h
chromium/patches/patch-v8_include_v8config.h
chromium/patches/patch-v8_src_base_atomicops.h
chromium/patches/patch-v8_src_base_platform_memory.h
chromium/patches/patch-v8_src_base_platform_platform-freebsd.cc
chromium/patches/patch-v8_src_base_platform_platform-openbsd.cc
chromium/patches/patch-v8_src_base_small-vector.h
chromium/patches/patch-v8_src_base_strings.h
chromium/patches/patch-v8_src_base_sys-info.cc
chromium/patches/patch-v8_src_base_utils_random-number-generator.cc
chromium/patches/patch-v8_src_diagnostics_perf-jit.cc
chromium/patches/patch-v8_src_diagnostics_perf-jit.h
chromium/patches/patch-v8_src_execution_isolate.cc
chromium/patches/patch-v8_src_flags_flags.cc
chromium/patches/patch-v8_src_sandbox_sandbox.cc
chromium/patches/patch-v8_src_snapshot_embedded_platform-embedded-file-writer-base.cc
chromium/patches/patch-v8_src_snapshot_embedded_platform-embedded-file-writer-base.h
chromium/patches/patch-v8_src_snapshot_embedded_platform-embedded-file-writer-generic.cc
chromium/patches/patch-v8_src_trap-handler_trap-handler.h
chromium/patches/patch-v8_src_wasm_baseline_ia32_liftoff-assembler-ia32-inl.h
chromium/patches/patch-v8_tools_run-paxctl.py
chromium/patches/patch-v8_tools_run.py
chromium/tests.mk
Removed Files:
chromium/patches/patch-apps_app__restore__service__browsertest.cc
chromium/patches/patch-base_allocator_BUILD.gn
chromium/patches/patch-base_allocator_allocator__shim__unittest.cc
chromium/patches/patch-base_allocator_partition__allocator_page__allocator__internals__posix.h
chromium/patches/patch-base_allocator_partition__allocator_partition__alloc__unittest.cc
chromium/patches/patch-base_base__switches.cc
chromium/patches/patch-base_base__switches.h
chromium/patches/patch-base_cpu.cc
chromium/patches/patch-base_debug_proc_maps_linux.cc
chromium/patches/patch-base_debug_stack__trace__unittest.cc
chromium/patches/patch-base_files_file__path__unittest.cc
chromium/patches/patch-base_files_file__path__watcher__stub.cc
chromium/patches/patch-base_files_file__util.h
chromium/patches/patch-base_location__unittest.cc
chromium/patches/patch-base_memory_shared__memory__region__unittest.cc
chromium/patches/patch-base_path__service__unittest.cc
chromium/patches/patch-base_process_launch.cc
chromium/patches/patch-base_process_memory.cc
chromium/patches/patch-base_process_memory.h
chromium/patches/patch-base_process_memory__unittest.cc
chromium/patches/patch-base_process_process__linux.cc
chromium/patches/patch-base_process_process__util__unittest.cc
chromium/patches/patch-base_profiler_register__context.h
chromium/patches/patch-base_profiler_stack__copier__signal.cc
chromium/patches/patch-base_sampling__heap__profiler_sampling__heap__profiler.cc
chromium/patches/patch-base_security__unittest.cc
chromium/patches/patch-base_test_BUILD.gn
chromium/patches/patch-base_test_test__suite.cc
chromium/patches/patch-base_third__party_libevent_BUILD.gn
chromium/patches/patch-base_third__party_libevent_event-config.h
chromium/patches/patch-base_third__party_libevent_netbsd_config.h
chromium/patches/patch-base_third__party_libevent_netbsd_event-config.h
chromium/patches/patch-base_threading_platform__thread__linux.cc
chromium/patches/patch-base_trace__event_malloc__dump__dump__provider.cc
chromium/patches/patch-base_trace__event_process__memory__dump.h
chromium/patches/patch-build_config_compiler_compiler.gni
chromium/patches/patch-build_config_crypto.gni
chromium/patches/patch-build_config_features.gni
chromium/patches/patch-build_config_linux_dri_BUILD.gn
chromium/patches/patch-build_config_linux_gtk_BUILD.gn
chromium/patches/patch-build_config_linux_libdrm_BUILD.gn
chromium/patches/patch-build_config_linux_nss_BUILD.gn
chromium/patches/patch-build_config_linux_pangocairo_pangocairo.gni
chromium/patches/patch-build_config_ui.gni
chromium/patches/patch-build_linux_libpci_BUILD.gn
chromium/patches/patch-build_linux_unbundle_fontconfig.gn
chromium/patches/patch-chrome_BUILD.gn
chromium/patches/patch-chrome_app_BUILD.gn
chromium/patches/patch-chrome_app_chromium__strings.grd
chromium/patches/patch-chrome_app_generated__resources.grd
chromium/patches/patch-chrome_app_google__chrome__strings.grd
chromium/patches/patch-chrome_app_settings__strings.grdp
chromium/patches/patch-chrome_app_shutdown__signal__handlers__posix.cc
chromium/patches/patch-chrome_app_theme_chrome__unscaled__resources.grd
chromium/patches/patch-chrome_app_theme_theme__resources.grd
chromium/patches/patch-chrome_browser_apps_platform_apps_api_music__manager__private_device__id__linux.cc
chromium/patches/patch-chrome_browser_browser__resources.grd
chromium/patches/patch-chrome_browser_crash__upload__list_crash__upload__list.cc
chromium/patches/patch-chrome_browser_crash__upload__list_crash__upload__list__crashpad.cc
chromium/patches/patch-chrome_browser_custom__handlers_protocol__handler__registry.cc
chromium/patches/patch-chrome_browser_dev__ui__browser__resources.grd
chromium/patches/patch-chrome_browser_devtools_devtools__eye__dropper.cc
chromium/patches/patch-chrome_browser_download_download__query.cc
chromium/patches/patch-chrome_browser_download_download__shelf__context__menu.cc
chromium/patches/patch-chrome_browser_extensions_activity__log_activity__log.cc
chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_device__info__fetcher.cc
chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_device__info__fetcher__linux.cc
chromium/patches/patch-chrome_browser_extensions_browser__context__keyed__service__factories.cc
chromium/patches/patch-chrome_browser_first__run_first__run__internal__posix.cc
chromium/patches/patch-chrome_browser_media_router_providers_wired__display_wired__display__media__route__provider.cc
chromium/patches/patch-chrome_browser_media_webrtc_webrtc__event__log__uploader.cc
chromium/patches/patch-chrome_browser_memory__details__linux.cc
chromium/patches/patch-chrome_browser_metrics_process__memory__metrics__emitter.cc
chromium/patches/patch-chrome_browser_native__file__system_chrome__native__file__system__permission__context.cc
chromium/patches/patch-chrome_browser_password__manager_password__store__factory.cc
chromium/patches/patch-chrome_browser_performance__monitor_process__metrics__history.cc
chromium/patches/patch-chrome_browser_performance__monitor_process__metrics__history.h
chromium/patches/patch-chrome_browser_plugins_plugin__info__host__impl.cc
chromium/patches/patch-chrome_browser_plugins_plugins__resource__service.cc
chromium/patches/patch-chrome_browser_policy_chrome__browser__cloud__management__controller.cc
chromium/patches/patch-chrome_browser_profiles_profile__attributes__entry.cc
chromium/patches/patch-chrome_browser_renderer__context__menu_render__view__context__menu.cc
chromium/patches/patch-chrome_browser_resources_settings_appearance__page_appearance__browser__proxy.js
chromium/patches/patch-chrome_browser_resources_settings_appearance__page_appearance__page.html
chromium/patches/patch-chrome_browser_resources_settings_appearance__page_appearance__page.js
chromium/patches/patch-chrome_browser_search_search__suggest_search__suggest__service.cc
chromium/patches/patch-chrome_browser_sharing_shared__clipboard_feature__flags.cc
chromium/patches/patch-chrome_browser_sharing_shared__clipboard_feature__flags.h
chromium/patches/patch-chrome_browser_sharing_sharing__service.cc
chromium/patches/patch-chrome_browser_sharing_webrtc_webrtc__flags.cc
chromium/patches/patch-chrome_browser_sharing_webrtc_webrtc__flags.h
chromium/patches/patch-chrome_browser_tracing_crash__service__uploader.cc
chromium/patches/patch-chrome_browser_ui_BUILD.gn
chromium/patches/patch-chrome_browser_ui_exclusive__access_exclusive__access__bubble.cc
chromium/patches/patch-chrome_browser_ui_views_download_download__item__view.cc
chromium/patches/patch-chrome_browser_ui_views_first__run__dialog.cc
chromium/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view__platform__specific.cc
chromium/patches/patch-chrome_browser_ui_views_tabs_new__tab__button.cc
chromium/patches/patch-chrome_browser_ui_webui_about__ui.cc
chromium/patches/patch-chrome_browser_ui_webui_settings_appearance__handler.h
chromium/patches/patch-chrome_browser_web__applications_components_web__app__file__handler__registration.h
chromium/patches/patch-chrome_browser_web__applications_components_web__app__shortcut.cc
chromium/patches/patch-chrome_browser_web__applications_extensions_bookmark__app__finalizer__utils.cc
chromium/patches/patch-chrome_common_BUILD.gn
chromium/patches/patch-chrome_common_chrome__content__client.cc
chromium/patches/patch-chrome_common_component__flash__hint__file__linux.h
chromium/patches/patch-chrome_common_extensions_api_api__sources.gni
chromium/patches/patch-chrome_common_extensions_command.cc
chromium/patches/patch-chrome_common_features.gni
chromium/patches/patch-chrome_common_pref__names.cc
chromium/patches/patch-chrome_renderer_BUILD.gn
chromium/patches/patch-chrome_renderer_pepper_pepper__flash__font__file__host.cc
chromium/patches/patch-chrome_renderer_pepper_pepper__flash__font__file__host.h
chromium/patches/patch-chrome_service_cloud__print_print__system.cc
chromium/patches/patch-chrome_test_BUILD.gn
chromium/patches/patch-chrome_test_base_chrome__test__launcher.cc
chromium/patches/patch-chrome_test_base_in__process__browser__test.cc
chromium/patches/patch-chrome_test_base_interactive__ui__tests__main.cc
chromium/patches/patch-chrome_test_base_test__browser__window.h
chromium/patches/patch-chrome_test_base_testing__browser__process.h
chromium/patches/patch-chromecast_BUILD.gn
chromium/patches/patch-chromecast_bindings_BUILD.gn
chromium/patches/patch-chromecast_browser_BUILD.gn
chromium/patches/patch-chromecast_browser_metrics_BUILD.gn
chromium/patches/patch-chromecast_browser_tts_tts__controller__impl.cc
chromium/patches/patch-chromecast_chromecast.gni
chromium/patches/patch-chromecast_external__mojo_public_cpp_external__mojo__broker.cc
chromium/patches/patch-chromecast_net_BUILD.gn
chromium/patches/patch-chromecast_renderer_cast__content__renderer__client.cc
chromium/patches/patch-components_BUILD.gn
chromium/patches/patch-components_autofill__payments__strings.grdp
chromium/patches/patch-components_autofill_content_renderer_password__form__conversion__utils.cc
chromium/patches/patch-components_autofill_core_browser_autofill__external__delegate.cc
chromium/patches/patch-components_autofill_core_browser_personal__data__manager.cc
chromium/patches/patch-components_crash_content_browser_BUILD.gn
chromium/patches/patch-components_cronet_BUILD.gn
chromium/patches/patch-components_download_internal_common_base__file.cc
chromium/patches/patch-components_exo_BUILD.gn
chromium/patches/patch-components_feedback_anonymizer__tool.cc
chromium/patches/patch-components_gcm__driver_gcm__client.h
chromium/patches/patch-components_gcm__driver_gcm__client__impl.cc
chromium/patches/patch-components_keyed__service_core_dependency__graph__unittest.cc
chromium/patches/patch-components_metrics_BUILD.gn
chromium/patches/patch-components_metrics_system__memory__stats__recorder__linux.cc
chromium/patches/patch-components_new__or__sad__tab__strings.grdp
chromium/patches/patch-components_os__crypt_os__crypt.h
chromium/patches/patch-components_os__crypt_os__crypt__unittest.cc
chromium/patches/patch-components_password__manager_core_browser_BUILD.gn
chromium/patches/patch-components_plugins_renderer_plugin__placeholder.cc
chromium/patches/patch-components_policy_BUILD.gn
chromium/patches/patch-components_policy_core_common_BUILD.gn
chromium/patches/patch-components_policy_core_common_schema.cc
chromium/patches/patch-components_previews_core_previews__features.cc
chromium/patches/patch-components_safe__browsing_core_resources_BUILD.gn
chromium/patches/patch-components_safe__browsing_core_resources_gen__file__type__proto.py
chromium/patches/patch-components_security__interstitials_content_captive__portal__blocking__page.cc
chromium/patches/patch-components_services_font_BUILD.gn
chromium/patches/patch-components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.h
chromium/patches/patch-components_signin_features.gni
chromium/patches/patch-components_storage__monitor_storage__monitor__netbsd.cc
chromium/patches/patch-components_storage__monitor_storage__monitor__netbsd.h
chromium/patches/patch-components_url__matcher_regex__set__matcher.cc
chromium/patches/patch-components_url__matcher_url__matcher__factory.cc
chromium/patches/patch-components_viz_common_gpu_dawn__context__provider.cc
chromium/patches/patch-components_viz_test_fake__output__surface.cc
chromium/patches/patch-components_viz_test_fake__output__surface.h
chromium/patches/patch-components_webcrypto_algorithms_test__helpers.cc
chromium/patches/patch-content_browser_memory_swap__metrics__driver__impl__linux.cc
chromium/patches/patch-content_browser_ppapi__plugin__process__host.cc
chromium/patches/patch-content_browser_renderer__host_render__message__filter.cc
chromium/patches/patch-content_browser_renderer__host_render__message__filter.h
chromium/patches/patch-content_browser_scheduler_responsiveness_jank__monitor.cc
chromium/patches/patch-content_browser_webui_shared__resources__data__source.cc
chromium/patches/patch-content_common_common__sandbox__support__linux.cc
chromium/patches/patch-content_common_features.gni
chromium/patches/patch-content_gpu_BUILD.gn
chromium/patches/patch-content_gpu_gpu__sandbox__hook__linux.cc
chromium/patches/patch-content_ppapi__plugin_BUILD.gn
chromium/patches/patch-content_public_app_content__main__delegate.cc
chromium/patches/patch-content_public_app_content__main__delegate.h
chromium/patches/patch-content_public_common_child__process__host.h
chromium/patches/patch-content_public_common_common__param__traits__macros.h
chromium/patches/patch-content_public_common_content__constants.cc
chromium/patches/patch-content_public_common_content__constants.h
chromium/patches/patch-content_public_common_use__zoom__for__dsf__policy.cc
chromium/patches/patch-content_public_test_browser__test__base.cc
chromium/patches/patch-content_public_test_content__browser__test.cc
chromium/patches/patch-content_public_test_mock__render__thread.cc
chromium/patches/patch-content_renderer_BUILD.gn
chromium/patches/patch-content_renderer_media_audio_audio__device__factory.cc
chromium/patches/patch-content_renderer_render__process__impl.cc
chromium/patches/patch-content_shell_browser_shell__browser__context.cc
chromium/patches/patch-content_shell_browser_web__test_web__test__browser__context.cc
chromium/patches/patch-content_shell_browser_web__test_web__test__browser__main__parts.cc
chromium/patches/patch-content_shell_renderer_web__test_test__runner.cc
chromium/patches/patch-content_test_content__test__suite.cc
chromium/patches/patch-content_utility_BUILD.gn
chromium/patches/patch-extensions_browser_api_declarative__webrequest_webrequest__action.cc
chromium/patches/patch-extensions_browser_api_web__request_form__data__parser.cc
chromium/patches/patch-extensions_browser_browser__context__keyed__service__factories.cc
chromium/patches/patch-extensions_common_feature__switch.cc
chromium/patches/patch-extensions_common_image__util.cc
chromium/patches/patch-extensions_common_stack__frame.cc
chromium/patches/patch-extensions_shell_BUILD.gn
chromium/patches/patch-gpu_BUILD.gn
chromium/patches/patch-gpu_command__buffer_service_BUILD.gn
chromium/patches/patch-gpu_command__buffer_service_external__vk__image__backing.cc
chromium/patches/patch-gpu_command__buffer_service_external__vk__image__backing.h
chromium/patches/patch-gpu_command__buffer_service_external__vk__image__gl__representation.cc
chromium/patches/patch-gpu_command__buffer_service_program__manager.cc
chromium/patches/patch-gpu_command__buffer_tests_gl__copy__texture__CHROMIUM__unittest.cc
chromium/patches/patch-gpu_command__buffer_tests_gl__test__utils.cc
chromium/patches/patch-gpu_command__buffer_tests_gl__test__utils.h
chromium/patches/patch-gpu_config_BUILD.gn
chromium/patches/patch-gpu_gles2__conform__support_BUILD.gn
chromium/patches/patch-gpu_gles2__conform__support_native_BUILD.gn
chromium/patches/patch-gpu_ipc_common_BUILD.gn
chromium/patches/patch-gpu_ipc_service_BUILD.gn
chromium/patches/patch-gpu_ipc_service_gpu__watchdog__thread.cc
chromium/patches/patch-gpu_ipc_service_gpu__watchdog__thread.h
chromium/patches/patch-gpu_khronos__glcts__support_BUILD.gn
chromium/patches/patch-gpu_tools_compositor__model__bench_BUILD.gn
chromium/patches/patch-gpu_vulkan_features.gni
chromium/patches/patch-headless_BUILD.gn
chromium/patches/patch-headless_lib_browser_headless__browser__main__parts.h
chromium/patches/patch-headless_lib_browser_headless__browser__main__parts__linux.cc
chromium/patches/patch-headless_lib_browser_headless__content__browser__client.cc
chromium/patches/patch-headless_lib_headless__content__main__delegate.h
chromium/patches/patch-headless_lib_headless__macros.h
chromium/patches/patch-media_audio_audio__features.cc
chromium/patches/patch-media_audio_audio__manager.cc
chromium/patches/patch-media_audio_audio__manager.h
chromium/patches/patch-media_base_BUILD.gn
chromium/patches/patch-media_base_scopedfd__helper.h
chromium/patches/patch-media_base_status.cc
chromium/patches/patch-media_capture_BUILD.gn
chromium/patches/patch-media_capture_video_linux_v4l2__capture__device__factory__linux.cc
chromium/patches/patch-media_capture_video_linux_v4l2__capture__device__linux.cc
chromium/patches/patch-media_capture_video_video__capture__buffer__pool__impl.cc
chromium/patches/patch-media_cast_BUILD.gn
chromium/patches/patch-media_filters_vp9__parser.h
chromium/patches/patch-media_gpu_chromeos_BUILD.gn
chromium/patches/patch-media_gpu_vaapi_BUILD.gn
chromium/patches/patch-media_mojo_clients_mojo__video__encode__accelerator.cc
chromium/patches/patch-media_mojo_services_gpu__mojo__media__client.cc
chromium/patches/patch-mojo_core_test_BUILD.gn
chromium/patches/patch-mojo_public_js_mojo__bindings__resources.grd
chromium/patches/patch-net_base_address__tracker__linux.cc
chromium/patches/patch-net_base_address__tracker__linux.h
chromium/patches/patch-net_base_address__tracker__linux__unittest.cc
chromium/patches/patch-net_cert_cert__verify__proc.cc
chromium/patches/patch-net_cert_test__root__certs.h
chromium/patches/patch-net_disk__cache_blockfile_disk__format.h
chromium/patches/patch-net_dns_dns__config__service__posix__unittest.cc
chromium/patches/patch-net_features.gni
chromium/patches/patch-net_nqe_network__quality__estimator__unittest.cc
chromium/patches/patch-net_proxy__resolution_configured__proxy__resolution__service.cc
chromium/patches/patch-net_socket_udp__socket__posix.h
chromium/patches/patch-net_socket_unix__domain__client__socket__posix.cc
chromium/patches/patch-net_tools_quic_quic__http__proxy__backend.cc
chromium/patches/patch-net_url__request_url__fetcher.cc
chromium/patches/patch-net_url__request_url__fetcher.h
chromium/patches/patch-pdf_BUILD.gn
chromium/patches/patch-ppapi_proxy_flash__resource.cc
chromium/patches/patch-printing_BUILD.gn
chromium/patches/patch-printing_buildflags_buildflags.gni
chromium/patches/patch-printing_cups__config__helper.py
chromium/patches/patch-remoting_BUILD.gn
chromium/patches/patch-remoting_client_display_BUILD.gn
chromium/patches/patch-remoting_host_BUILD.gn
chromium/patches/patch-remoting_host_switches.cc
chromium/patches/patch-remoting_host_switches.h
chromium/patches/patch-remoting_protocol_BUILD.gn
chromium/patches/patch-remoting_remoting__options.gni
chromium/patches/patch-remoting_resources_remoting__strings.grd
chromium/patches/patch-services_audio_BUILD.gn
chromium/patches/patch-services_device_battery_BUILD.gn
chromium/patches/patch-services_device_geolocation_BUILD.gn
chromium/patches/patch-services_device_geolocation_location__arbitrator.cc
chromium/patches/patch-services_device_hid_hid__connection__netbsd.c
chromium/patches/patch-services_device_wake__lock_power__save__blocker_BUILD.gn
chromium/patches/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics__linux.cc
chromium/patches/patch-services_resource__coordinator_public_mojom_BUILD.gn
chromium/patches/patch-services_service__manager_embedder_BUILD.gn
chromium/patches/patch-services_service__manager_embedder_main.cc
chromium/patches/patch-services_service__manager_embedder_set__process__title__linux.h
chromium/patches/patch-services_service__manager_sandbox_switches.cc
chromium/patches/patch-services_service__manager_sandbox_switches.h
chromium/patches/patch-services_tracing_public_cpp_perfetto_trace__time.cc
chromium/patches/patch-services_tracing_public_cpp_perfetto_trace__time.h
chromium/patches/patch-services_video__capture_broadcasting__receiver.cc
chromium/patches/patch-services_viz_privileged_mojom_compositing_display__private.mojom
chromium/patches/patch-skia_BUILD.gn
chromium/patches/patch-third__party_angle_gni_angle.gni
chromium/patches/patch-third__party_angle_src_compiler_translator_InfoSink.h
chromium/patches/patch-third__party_angle_src_libANGLE_renderer_driver__utils.cpp
chromium/patches/patch-third__party_angle_src_libANGLE_renderer_driver__utils.h
chromium/patches/patch-third__party_angle_src_libGLESv2.gni
chromium/patches/patch-third__party_angle_src_tests_BUILD.gn
chromium/patches/patch-third__party_angle_third__party_glmark2_BUILD.gn
chromium/patches/patch-third__party_angle_third__party_vulkan-loader_src_loader_loader.c
chromium/patches/patch-third__party_angle_third__party_vulkan-loader_src_loader_vk__loader__platform.h
chromium/patches/patch-third__party_angle_third__party_vulkan-validation-layers_src_layers_vk__loader__platform.h
chromium/patches/patch-third__party_blink_public_mojom_BUILD.gn
chromium/patches/patch-third__party_blink_renderer_BUILD.gn
chromium/patches/patch-third__party_blink_renderer_controller_BUILD.gn
chromium/patches/patch-third__party_blink_renderer_core_html_forms_internal__popup__menu.cc
chromium/patches/patch-third__party_blink_renderer_core_layout_BUILD.gn
chromium/patches/patch-third__party_blink_renderer_modules_mediastream_processed__local__audio__source.cc
chromium/patches/patch-third__party_blink_renderer_platform_scheduler_BUILD.gn
chromium/patches/patch-third__party_boringssl_BUILD.gn
chromium/patches/patch-third__party_boringssl_src_crypto_bio_socket__helper.c
chromium/patches/patch-third__party_boringssl_src_crypto_ex__data.c
chromium/patches/patch-third__party_boringssl_src_include_openssl_thread.h
chromium/patches/patch-third__party_breakpad_BUILD.gn
chromium/patches/patch-third__party_breakpad_breakpad_src_common_simple__string__dictionary.h
chromium/patches/patch-third__party_brotli_common_transform.c
chromium/patches/patch-third__party_cacheinvalidation_src_google_cacheinvalidation_include_types.h
chromium/patches/patch-third__party_closure__compiler_compile__js.gni
chromium/patches/patch-third__party_dav1d_BUILD.gn
chromium/patches/patch-third__party_dawn_scripts_dawn__component.gni
chromium/patches/patch-third__party_dawn_scripts_dawn__features.gni
chromium/patches/patch-third__party_dawn_src_common_BUILD.gn
chromium/patches/patch-third__party_dawn_third__party_gn_glfw_BUILD.gn
chromium/patches/patch-third__party_devtools-frontend_src_BUILD.gn
chromium/patches/patch-third__party_expat_BUILD.gn
chromium/patches/patch-third__party_ffmpeg_ffmpeg__generated.gni
chromium/patches/patch-third__party_ffmpeg_ffmpeg__options.gni
chromium/patches/patch-third__party_flatbuffers_src_src_util.cpp
chromium/patches/patch-third__party_fontconfig_BUILD.gn
chromium/patches/patch-third__party_fontconfig_fontconfig.gni
chromium/patches/patch-third__party_freetype_BUILD.gn
chromium/patches/patch-third__party_icu_BUILD.gn
chromium/patches/patch-third__party_icu_source_common_putil.cpp
chromium/patches/patch-third__party_icu_source_common_umapfile.cpp
chromium/patches/patch-third__party_ijar_BUILD.gn
chromium/patches/patch-third__party_libXNVCtrl_NVCtrl.c
chromium/patches/patch-third__party_libdrm_BUILD.gn
chromium/patches/patch-third__party_libjpeg__turbo_BUILD.gn
chromium/patches/patch-third__party_libpng_pnglibconf.h
chromium/patches/patch-third__party_libxml_BUILD.gn
chromium/patches/patch-third__party_libxslt_BUILD.gn
chromium/patches/patch-third__party_libyuv_BUILD.gn
chromium/patches/patch-third__party_minigbm_BUILD.gn
chromium/patches/patch-third__party_openh264_BUILD.gn
chromium/patches/patch-third__party_openscreen_src_build_config_BUILD.gn
chromium/patches/patch-third__party_openscreen_src_build_config_BUILDCONFIG.gn
chromium/patches/patch-third__party_openscreen_src_platform_BUILD.gn
chromium/patches/patch-third__party_openscreen_src_third__party_boringssl_BUILD.gn
chromium/patches/patch-third__party_openscreen_src_third__party_chromium__quic_build_base_BUILD.gn
chromium/patches/patch-third__party_pdfium_BUILD.gn
chromium/patches/patch-third__party_pdfium_core_fxcrt_cfx__datetime.cpp
chromium/patches/patch-third__party_pdfium_core_fxcrt_fx__system.h
chromium/patches/patch-third__party_pdfium_core_fxge_BUILD.gn
chromium/patches/patch-third__party_pdfium_core_fxge_fx__ge__linux.cpp
chromium/patches/patch-third__party_pdfium_fxjs_cjs__publicmethods.cpp
chromium/patches/patch-third__party_pdfium_fxjs_cjs__runtime.cpp
chromium/patches/patch-third__party_pdfium_skia_BUILD.gn
chromium/patches/patch-third__party_pdfium_xfa_fgas_font_cfx__fontsourceenum__file.cpp
chromium/patches/patch-third__party_perfetto_buildtools_BUILD.gn
chromium/patches/patch-third__party_perfetto_gn_BUILD.gn
chromium/patches/patch-third__party_perfetto_gn_perfetto.gni
chromium/patches/patch-third__party_perfetto_gn_perfetto__unittests.gni
chromium/patches/patch-third__party_perfetto_gn_standalone_BUILD.gn
chromium/patches/patch-third__party_perfetto_include_perfetto_base_unix__socket.cc
chromium/patches/patch-third__party_perfetto_include_perfetto_ext_base_unix__socket.h
chromium/patches/patch-third__party_perfetto_src_base_BUILD.gn
chromium/patches/patch-third__party_perfetto_src_tracing_core_tracing__service__impl.cc
chromium/patches/patch-third__party_perfetto_tools_BUILD.gn
chromium/patches/patch-third__party_skia_BUILD.gn
chromium/patches/patch-third__party_skia_gn_BUILD.gn
chromium/patches/patch-third__party_skia_gn_skia.gni
chromium/patches/patch-third__party_skia_src_gpu_GrAutoLocaleSetter.h
chromium/patches/patch-third__party_skia_src_images_SkJpegEncoder.cpp
chromium/patches/patch-third__party_skia_src_sksl_SkSLString.h
chromium/patches/patch-third__party_skia_third__party_angle2_BUILD.gn
chromium/patches/patch-third__party_skia_third__party_libsdl_BUILD.gn
chromium/patches/patch-third__party_skia_third__party_opencl_BUILD.gn
chromium/patches/patch-third__party_swiftshader_BUILD.gn
chromium/patches/patch-third__party_swiftshader_src_Common_Configurator.cpp
chromium/patches/patch-third__party_swiftshader_src_Common_MutexLock.hpp
chromium/patches/patch-third__party_swiftshader_src_Common_SharedLibrary.hpp
chromium/patches/patch-third__party_swiftshader_src_Main_BUILD.gn
chromium/patches/patch-third__party_swiftshader_src_Main_SwiftConfig.cpp
chromium/patches/patch-third__party_swiftshader_src_OpenGL_compiler_BUILD.gn
chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_BUILD.gn
chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_Display.cpp
chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_Surface.cpp
chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_libEGL.cpp
chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_libEGL.hpp
chromium/patches/patch-third__party_swiftshader_src_OpenGL_libGLES__CM_libGLES__CM.hpp
chromium/patches/patch-third__party_swiftshader_src_OpenGL_libGLESv2_BUILD.gn
chromium/patches/patch-third__party_swiftshader_src_OpenGL_libGLESv2_libGLESv2.hpp
chromium/patches/patch-third__party_swiftshader_src_Reactor_BUILD.gn
chromium/patches/patch-third__party_swiftshader_src_System_BUILD.gn
chromium/patches/patch-third__party_swiftshader_src_System_Debug.cpp
chromium/patches/patch-third__party_swiftshader_src_WSI_BUILD.gn
chromium/patches/patch-third__party_swiftshader_src_vulkan_BUILD.gn
chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_BUILD.gn
chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_AsmParsers.def
chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_AsmPrinters.def
chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_Disassemblers.def
chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_Targets.def
chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_abi-breaking.h
chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_config.h
chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_llvm-config.h
chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_CMakeFiles_CMakeDirectoryInformation.cmake
chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_CMakeFiles_progress.marks
chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_AsmParsers.def
chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_AsmPrinters.def
chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_Disassemblers.def
chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_Targets.def
chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_abi-breaking.h
chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_config.h
chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_llvm-config.h
chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_Attributes.gen
chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_CMakeDirectoryInformation.cmake
chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_DependInfo.cmake
chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_build.make
chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_cmake__clean.cmake
chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_progress.make
chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_progress.marks
chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_Intrinsics.gen
chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_Makefile
chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_cmake__install.cmake
chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Makefile
chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_CMakeDirectoryInformation.cmake
chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_DependInfo.cmake
chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_build.make
chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_cmake__clean.cmake
chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_progress.make
chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_progress.marks
chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_Makefile
chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_VCSRevision.h
chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_cmake__install.cmake
chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_cmake__install.cmake
chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_module.modulemap
chromium/patches/patch-third__party_usrsctp_BUILD.gn
chromium/patches/patch-third__party_webrtc_audio_BUILD.gn
chromium/patches/patch-third__party_webrtc_examples_BUILD.gn
chromium/patches/patch-third__party_webrtc_modules_audio__coding_BUILD.gn
chromium/patches/patch-third__party_webrtc_modules_desktop__capture_BUILD.gn
chromium/patches/patch-third__party_webrtc_modules_rtp__rtcp_source_forward__error__correction.cc
chromium/patches/patch-third__party_webrtc_modules_video__capture_BUILD.gn
chromium/patches/patch-third__party_webrtc_rtc__base_BUILD.gn
chromium/patches/patch-third__party_webrtc_rtc__base_ifaddrs__converter.h
chromium/patches/patch-third__party_webrtc_rtc__base_ip__address.h
chromium/patches/patch-third__party_webrtc_rtc__base_network.h
chromium/patches/patch-third__party_webrtc_test_BUILD.gn
chromium/patches/patch-third__party_webrtc_webrtc.gni
chromium/patches/patch-tools_binary__size_BUILD.gn
chromium/patches/patch-tools_binary__size_libsupersize_caspian_BUILD.gn
chromium/patches/patch-tools_gn_src_base_files_file__util.h
chromium/patches/patch-tools_gn_src_base_files_file__util__posix.cc
chromium/patches/patch-tools_gn_src_base_files_scoped__file.cc
chromium/patches/patch-tools_gn_src_gn_args.cc
chromium/patches/patch-tools_grit_grit__rule.gni
chromium/patches/patch-tools_ipc__fuzzer_ipc__fuzzer.gni
chromium/patches/patch-tools_json__schema__compiler_model.py
chromium/patches/patch-ui_aura_BUILD.gn
chromium/patches/patch-ui_base_BUILD.gn
chromium/patches/patch-ui_base_idle_BUILD.gn
chromium/patches/patch-ui_base_ime_linux_BUILD.gn
chromium/patches/patch-ui_base_resource_resource__bundle__netbsd.cc
chromium/patches/patch-ui_base_ui__base__features.h
chromium/patches/patch-ui_base_ui__features.gni
chromium/patches/patch-ui_color_BUILD.gn
chromium/patches/patch-ui_compositor_BUILD.gn
chromium/patches/patch-ui_events_devices_BUILD.gn
chromium/patches/patch-ui_events_ozone_BUILD.gn
chromium/patches/patch-ui_gfx_codec_jpeg__codec.cc
chromium/patches/patch-ui_gfx_font__list.cc
chromium/patches/patch-ui_gfx_font__names__testing.cc
chromium/patches/patch-ui_gfx_ipc_gfx__param__traits__macros.h
chromium/patches/patch-ui_gfx_linux_client__native__pixmap__dmabuf.cc
chromium/patches/patch-ui_gfx_mojom_BUILD.gn
chromium/patches/patch-ui_gfx_mojom_native__handle__types.mojom
chromium/patches/patch-ui_gl_features.gni
chromium/patches/patch-ui_gtk_BUILD.gn
chromium/patches/patch-ui_ozone_platform_wayland_BUILD.gn
chromium/patches/patch-ui_platform__window_common_BUILD.gn
chromium/patches/patch-ui_platform__window_extensions_BUILD.gn
chromium/patches/patch-ui_shell__dialogs_BUILD.gn
chromium/patches/patch-ui_strings_app__locale__settings.grd
chromium/patches/patch-ui_views_BUILD.gn
chromium/patches/patch-ui_views_bubble_bubble__dialog__delegate__view.cc
chromium/patches/patch-ui_views_controls_label.cc
chromium/patches/patch-ui_views_controls_webview_BUILD.gn
chromium/patches/patch-ui_views_examples_BUILD.gn
chromium/patches/patch-ui_views_selection__controller.cc
chromium/patches/patch-ui_views_widget_native__widget__aura.cc
chromium/patches/patch-ui_webui_resources_js_cr.js
chromium/patches/patch-ui_webui_resources_js_icon.js
chromium/patches/patch-ui_webui_webui__features.gni
chromium/patches/patch-v8_gni_v8.gni
chromium/patches/patch-v8_src_base_cpu.cc
chromium/patches/patch-weblayer_BUILD.gn
chromium/patches/patch-weblayer_app_content__main__delegate__impl.cc
chromium/patches/patch-weblayer_browser_browser__main__parts__impl.cc
chromium/patches/patch-weblayer_browser_content__browser__client__impl.cc
chromium/patches/patch-weblayer_browser_content__browser__client__impl.h
chromium/patches/patch-weblayer_browser_system__network__context__manager.cc
chromium/patches/patch-weblayer_common_weblayer__paths.cc
chromium/patches/patch-weblayer_shell_BUILD.gn
Log Message:
chromium: update to 127.0.6533.72
ok from @ryoon
To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=02fe40119f38f9ba2a49f378e53bb1b2409d9803
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
diffstat:
chromium/Makefile | 492 +-
chromium/PLIST | 227 +-
chromium/TODO | 15 +-
chromium/distinfo | 2350 +-
chromium/files/chrome | 72 +
chromium/files/chromium-browser.desktop | 220 +
chromium/files/nb-delta.patch | 4858 +++
chromium/options.mk | 13 +-
chromium/patches/patch-BUILD.gn | 267 +-
...atch-apps_app__restore__service__browsertest.cc | 13 -
...patch-apps_ui_views_app__window__frame__view.cc | 16 +-
...patch-ash_display_mirror__window__controller.cc | 20 +
chromium/patches/patch-base_BUILD.gn | 256 +-
chromium/patches/patch-base_allocator_BUILD.gn | 22 -
...tch-base_allocator_allocator__shim__unittest.cc | 13 -
.../patches/patch-base_allocator_dispatcher_tls.h | 17 +
...__allocator_page__allocator__internals__posix.h | 13 -
...cator_partition__allocator_partition__alloc.gni | 26 +
...tition__allocator_partition__alloc__unittest.cc | 19 -
...tition__allocator_src_partition__alloc_BUILD.gn | 17 +
...artition__alloc_address__space__randomization.h | 26 +
...llocator_src_partition__alloc_page__allocator.h | 17 +
...c_partition__alloc_page__allocator__constants.h | 17 +
...tion__alloc_page__allocator__internals__posix.h | 22 +
...ition__alloc__base_debug_stack__trace__posix.cc | 40 +
...loc_partition__alloc__base_rand__util__posix.cc | 19 +
...ition__alloc__base_threading_platform__thread.h | 17 +
...e_threading_platform__thread__internal__posix.h | 17 +
...lloc__base_threading_platform__thread__posix.cc | 17 +
...src_partition__alloc_partition__alloc__config.h | 26 +
..._partition__alloc_partition__alloc__constants.h | 17 +
...rc_partition__alloc_partition__alloc__forward.h | 22 +
...locator_src_partition__alloc_partition__root.cc | 35 +
...locator_src_partition__alloc_spinning__mutex.cc | 65 +
...__allocator_src_partition__alloc_stack_stack.cc | 56 +
..._src_partition__alloc_thread__isolation_pkey.cc | 17 +
chromium/patches/patch-base_atomicops.h | 20 +
chromium/patches/patch-base_base__paths__posix.cc | 129 +-
chromium/patches/patch-base_base__switches.cc | 22 -
chromium/patches/patch-base_base__switches.h | 22 -
chromium/patches/patch-base_compiler__specific.h | 18 +
chromium/patches/patch-base_cpu.cc | 31 -
.../patches/patch-base_debug_debugger__posix.cc | 83 +-
chromium/patches/patch-base_debug_elf__reader.cc | 35 +-
.../patches/patch-base_debug_proc__maps__linux.cc | 17 +
.../patches/patch-base_debug_proc_maps_linux.cc | 71 -
chromium/patches/patch-base_debug_stack__trace.cc | 35 +
.../patch-base_debug_stack__trace__posix.cc | 104 +-
.../patch-base_debug_stack__trace__unittest.cc | 24 -
chromium/patches/patch-base_features.cc | 34 +
.../patches/patch-base_files_dir__reader__linux.h | 45 +
.../patches/patch-base_files_dir__reader__posix.h | 26 +
.../patch-base_files_file__path__unittest.cc | 13 -
.../patches/patch-base_files_file__path__watcher.h | 17 +
.../patch-base_files_file__path__watcher__bsd.cc | 63 +
...patch-base_files_file__path__watcher__kqueue.cc | 19 +-
.../patch-base_files_file__path__watcher__kqueue.h | 16 +
.../patch-base_files_file__path__watcher__stub.cc | 49 -
...tch-base_files_file__path__watcher__unittest.cc | 35 +-
chromium/patches/patch-base_files_file__util.h | 13 -
.../patches/patch-base_files_file__util__posix.cc | 66 +-
.../patch-base_files_file__util__unittest.cc | 23 +-
...-base_files_important__file__writer__cleaner.cc | 18 +
chromium/patches/patch-base_files_scoped__file.cc | 14 +-
.../patch-base_functional_unretained__traits.h | 17 +
chromium/patches/patch-base_i18n_icu__util.cc | 24 +-
chromium/patches/patch-base_linux__util.cc | 29 +-
chromium/patches/patch-base_location__unittest.cc | 13 -
chromium/patches/patch-base_logging__unittest.cc | 34 +-
.../patch-base_memory_discardable__memory.cc | 40 +-
...tch-base_memory_discardable__memory__internal.h | 10 +-
...emory_madv__free__discardable__memory__posix.cc | 24 +-
...-base_memory_platform__shared__memory__region.h | 28 +-
...mory_platform__shared__memory__region__posix.cc | 31 +-
...base_memory_shared__memory__region__unittest.cc | 17 -
...patch-base_message__loop_message__pump__glib.cc | 34 +
.../patches/patch-base_native__library__posix.cc | 12 +-
.../patch-base_native__library__unittest.cc | 12 +-
.../patches/patch-base_path__service__unittest.cc | 13 -
.../patch-base_posix_can__lower__nice__to.cc | 32 +-
chromium/patches/patch-base_posix_sysctl.cc | 38 +
.../patch-base_posix_unix__domain__socket.cc | 79 +-
...ch-base_posix_unix__domain__socket__unittest.cc | 17 +
.../patches/patch-base_process_internal__linux.h | 41 +-
chromium/patches/patch-base_process_kill.h | 12 +-
chromium/patches/patch-base_process_kill__posix.cc | 14 +-
chromium/patches/patch-base_process_launch.cc | 13 -
chromium/patches/patch-base_process_launch.h | 14 +-
.../patches/patch-base_process_launch__posix.cc | 24 +-
chromium/patches/patch-base_process_memory.cc | 22 -
chromium/patches/patch-base_process_memory.h | 13 -
.../patches/patch-base_process_memory__linux.cc | 50 +
.../patches/patch-base_process_memory__unittest.cc | 13 -
.../patches/patch-base_process_process__handle.cc | 10 +-
.../patches/patch-base_process_process__handle.h | 12 +-
.../patch-base_process_process__handle__freebsd.cc | 33 +
.../patch-base_process_process__handle__netbsd.cc | 59 +-
.../patch-base_process_process__handle__openbsd.cc | 140 +
.../patches/patch-base_process_process__iterator.h | 36 +-
...atch-base_process_process__iterator__freebsd.cc | 57 +
...patch-base_process_process__iterator__netbsd.cc | 60 +-
...atch-base_process_process__iterator__openbsd.cc | 51 +
.../patches/patch-base_process_process__linux.cc | 34 -
.../patches/patch-base_process_process__metrics.cc | 57 +-
.../patches/patch-base_process_process__metrics.h | 118 +-
...patch-base_process_process__metrics__freebsd.cc | 309 +
.../patch-base_process_process__metrics__netbsd.cc | 178 +-
...patch-base_process_process__metrics__openbsd.cc | 240 +
.../patch-base_process_process__metrics__posix.cc | 25 +-
...atch-base_process_process__metrics__unittest.cc | 18 +
.../patches/patch-base_process_process__posix.cc | 100 +
.../patch-base_process_process__unittest.cc | 12 +-
.../patch-base_process_process__util__unittest.cc | 31 -
.../patches/patch-base_profiler_module__cache.cc | 17 +
.../patch-base_profiler_register__context.h | 13 -
...e_profiler_sampling__profiler__thread__token.cc | 31 +-
...se_profiler_sampling__profiler__thread__token.h | 30 +-
...ch-base_profiler_stack__base__address__posix.cc | 69 +
.../patch-base_profiler_stack__copier__signal.cc | 20 -
...ofiler_stack__sampling__profiler__test__util.cc | 17 +
...profiler_stack__sampling__profiler__unittest.cc | 12 +-
.../patch-base_profiler_thread__delegate__posix.cc | 26 +
chromium/patches/patch-base_rand__util.h | 17 +
chromium/patches/patch-base_rand__util__posix.cc | 68 +
...ing__heap__profiler_sampling__heap__profiler.cc | 28 -
chromium/patches/patch-base_security__unittest.cc | 13 -
.../patch-base_strings_safe__sprintf__unittest.cc | 24 +
.../patch-base_synchronization_lock__impl.h | 32 +-
chromium/patches/patch-base_syslog__logging.cc | 20 +-
chromium/patches/patch-base_system_sys__info.cc | 24 +-
chromium/patches/patch-base_system_sys__info.h | 24 +-
.../patch-base_system_sys__info__freebsd.cc | 121 +
.../patches/patch-base_system_sys__info__netbsd.cc | 59 +-
.../patch-base_system_sys__info__openbsd.cc | 97 +
.../patches/patch-base_system_sys__info__posix.cc | 34 +-
.../patch-base_system_sys__info__unittest.cc | 26 +
...k_thread__pool_environment__config__unittest.cc | 27 +-
chromium/patches/patch-base_test_BUILD.gn | 22 -
.../patch-base_test_launcher_test__launcher.cc | 25 +-
.../patch-base_test_test__file__util__linux.cc | 19 +
.../patch-base_test_test__file__util__posix.cc | 14 +-
chromium/patches/patch-base_test_test__suite.cc | 31 -
.../patch-base_third__party_libevent_BUILD.gn | 31 -
...patch-base_third__party_libevent_event-config.h | 13 -
...atch-base_third__party_libevent_netbsd_config.h | 271 -
...ase_third__party_libevent_netbsd_event-config.h | 289 -
.../patches/patch-base_threading_hang__watcher.cc | 17 +
.../patch-base_threading_platform__thread.h | 24 +-
.../patch-base_threading_platform__thread__bsd.cc | 40 +
..._threading_platform__thread__internal__posix.cc | 17 +
...patch-base_threading_platform__thread__linux.cc | 32 -
...patch-base_threading_platform__thread__posix.cc | 62 +-
...ch-base_threading_platform__thread__unittest.cc | 54 +-
...se_trace__event_malloc__dump__dump__provider.cc | 23 -
...tch-base_trace__event_malloc__dump__provider.cc | 36 +
...atch-base_trace__event_memory__dump__manager.cc | 17 +
...atch-base_trace__event_process__memory__dump.cc | 25 +-
...patch-base_trace__event_process__memory__dump.h | 13 -
chromium/patches/patch-base_tracing_trace__time.cc | 36 +
chromium/patches/patch-base_tracing_trace__time.h | 17 +
chromium/patches/patch-build_config_BUILD.gn | 48 +-
chromium/patches/patch-build_config_BUILDCONFIG.gn | 87 +-
chromium/patches/patch-build_config_clang_BUILD.gn | 17 +
.../patches/patch-build_config_compiler_BUILD.gn | 222 +-
.../patch-build_config_compiler_compiler.gni | 31 -
chromium/patches/patch-build_config_crypto.gni | 10 -
chromium/patches/patch-build_config_features.gni | 16 -
chromium/patches/patch-build_config_linux_BUILD.gn | 17 +
.../patches/patch-build_config_linux_dri_BUILD.gn | 13 -
.../patches/patch-build_config_linux_gtk_BUILD.gn | 13 -
.../patch-build_config_linux_libdrm_BUILD.gn | 13 -
.../patches/patch-build_config_linux_nss_BUILD.gn | 13 -
...ch-build_config_linux_pangocairo_pangocairo.gni | 11 -
.../patches/patch-build_config_linux_pkg-config.py | 28 +-
chromium/patches/patch-build_config_ozone.gni | 29 +
chromium/patches/patch-build_config_rust.gni | 19 +
chromium/patches/patch-build_config_ui.gni | 32 -
.../patches/patch-build_config_v8__target__cpu.gni | 19 +
chromium/patches/patch-build_detect__host__arch.py | 17 +
chromium/patches/patch-build_gn__run__binary.py | 10 +-
chromium/patches/patch-build_linux_chrome.map | 19 +
chromium/patches/patch-build_linux_libpci_BUILD.gn | 28 -
.../patches/patch-build_linux_strip__binary.py | 16 +
.../patches/patch-build_linux_unbundle_dav1d.gn | 31 +
.../patch-build_linux_unbundle_fontconfig.gn | 13 -
chromium/patches/patch-build_linux_unbundle_icu.gn | 35 +
.../patches/patch-build_linux_unbundle_libevent.gn | 21 +
.../patches/patch-build_linux_unbundle_libusb.gn | 36 +
.../patches/patch-build_rust_rust__bindgen.gni | 25 +
chromium/patches/patch-build_rust_std_BUILD.gn | 16 +
.../patches/patch-build_toolchain_freebsd_BUILD.gn | 75 +
.../patch-build_toolchain_gcc__solink__wrapper.py | 17 +
.../patch-build_toolchain_gcc__toolchain.gni | 70 +-
.../patches/patch-build_toolchain_netbsd_BUILD.gn | 254 +-
.../patches/patch-build_toolchain_openbsd_BUILD.gn | 75 +
.../patches/patch-build_toolchain_toolchain.gni | 17 +
chromium/patches/patch-cc_BUILD.gn | 25 +
chromium/patches/patch-cc_base_features.cc | 17 +
chromium/patches/patch-chrome_BUILD.gn | 40 -
chromium/patches/patch-chrome_app_BUILD.gn | 13 -
.../patch-chrome_app_chrome__command__ids.h | 22 +-
chromium/patches/patch-chrome_app_chrome__main.cc | 56 +-
.../patch-chrome_app_chrome__main__delegate.cc | 186 +-
.../patches/patch-chrome_app_chromium__strings.grd | 31 -
.../patch-chrome_app_generated__resources.grd | 31 -
.../patch-chrome_app_google__chrome__strings.grd | 31 -
.../patch-chrome_app_settings__strings.grdp | 22 -
...chrome_app_shutdown__signal__handlers__posix.cc | 24 -
...hrome_app_theme_chrome__unscaled__resources.grd | 13 -
.../patch-chrome_app_theme_theme__resources.grd | 13 -
chromium/patches/patch-chrome_browser_BUILD.gn | 76 +-
.../patches/patch-chrome_browser_about__flags.cc | 344 +-
...h-chrome_browser_after__startup__task__utils.cc | 36 +-
...apps_app__service_publishers_extension__apps.cc | 17 +
...er_apps_platform__apps_platform__app__launch.cc | 71 +
...ser_apps_platform__apps_platform__app__launch.h | 17 +
...pi_music__manager__private_device__id__linux.cc | 72 -
...ete_chrome__autocomplete__scheme__classifier.cc | 14 +-
...browser_background_background__mode__manager.cc | 14 +-
...owser_background_background__mode__optimizer.cc | 18 +-
.../patch-chrome_browser_browser__features.cc | 26 +
.../patch-chrome_browser_browser__process__impl.cc | 35 +
.../patch-chrome_browser_browser__process__impl.h | 17 +
.../patch-chrome_browser_browser__resources.grd | 13 -
..._browser_chrome__browser__interface__binders.cc | 95 +-
.../patch-chrome_browser_chrome__browser__main.cc | 142 +-
...r_chrome__browser__main__extra__parts__linux.cc | 17 +
...r_chrome__browser__main__extra__parts__ozone.cc | 17 +
...-chrome_browser_chrome__browser__main__linux.cc | 57 +-
...h-chrome_browser_chrome__browser__main__linux.h | 17 +
...-chrome_browser_chrome__browser__main__posix.cc | 25 +-
...ome_browser_chrome__content__browser__client.cc | 230 +-
...rome_browser_chrome__content__browser__client.h | 18 +-
..._updater_widevine__cdm__component__installer.cc | 44 +
...wser_crash__upload__list_crash__upload__list.cc | 13 -
...__upload__list_crash__upload__list__crashpad.cc | 33 -
...hrome__protocol__handler__registry__delegate.cc | 17 +
...custom__handlers_protocol__handler__registry.cc | 13 -
chromium/patches/patch-chrome_browser_defaults.cc | 14 +-
...-chrome_browser_dev__ui__browser__resources.grd | 13 -
...tity_device__oauth2__token__service__factory.cc | 16 +-
...rome_browser_devtools_devtools__eye__dropper.cc | 13 -
...hrome_browser_diagnostics_diagnostics__writer.h | 10 +-
...download_chrome__download__manager__delegate.cc | 43 +-
...h-chrome_browser_download_download__commands.cc | 33 +-
...ch-chrome_browser_download_download__commands.h | 14 +-
...rome_browser_download_download__file__picker.cc | 26 +
...hrome_browser_download_download__item__model.cc | 31 +-
...atch-chrome_browser_download_download__prefs.cc | 109 +-
...patch-chrome_browser_download_download__prefs.h | 24 +-
...atch-chrome_browser_download_download__query.cc | 13 -
...wser_download_download__shelf__context__menu.cc | 13 -
...ser__management_browser__management__service.cc | 35 +
...wser__management_browser__management__service.h | 17 +
...nectors_analysis_analysis__service__settings.cc | 17 +
...er_enterprise_connectors_connectors__service.cc | 17 +
...t_device__trust__connector__service__factory.cc | 35 +
...evice__trust_device__trust__service__factory.cc | 35 +
...ser_commands_key__rotation__command__factory.cc | 26 +
...sistence_key__persistence__delegate__factory.cc | 26 +
...ice__trust_signals_signals__service__factory.cc | 26 +
...tors_reporting_browser__crash__event__router.cc | 26 +
...nnectors_reporting_crash__reporting__context.cc | 17 +
...ectors_reporting_realtime__reporting__client.cc | 53 +
...nectors_reporting_realtime__reporting__client.h | 26 +
...rise_identifiers_profile__id__delegate__impl.cc | 26 +
...nt_profile__management__navigation__throttle.cc | 19 +
...te__commands_cbcm__remote__commands__factory.cc | 26 +
...ser_enterprise_signals_device__info__fetcher.cc | 26 +
...erprise_signals_device__info__fetcher__linux.cc | 83 +
.../patch-chrome_browser_extensions_BUILD.gn | 26 +-
...owser_extensions_activity__log_activity__log.cc | 13 -
..._browser__context__keyed__service__factories.cc | 26 +
...ate_chrome__desktop__report__request__helper.cc | 34 +-
...rprise__reporting__private_conversion__utils.cc | 17 +
...erprise__reporting__private_conversion__utils.h | 17 +
...se__reporting__private_device__info__fetcher.cc | 22 -
...orting__private_device__info__fetcher__linux.cc | 42 -
..._private_enterprise__reporting__private__api.cc | 44 +
...__private_enterprise__reporting__private__api.h | 35 +
...writer__private_removable__storage__provider.cc | 14 +-
...management_chrome__management__api__delegate.cc | 17 +
...i_messaging_native__process__launcher__posix.cc | 17 +
...__private_passwords__private__delegate__impl.cc | 17 +
...s_api_runtime_chrome__runtime__api__delegate.cc | 20 +-
...extensions_api_settings__private_prefs__util.cc | 34 +-
...chrome_browser_extensions_api_tabs_tabs__api.cc | 17 +
...gging__private_webrtc__logging__private__api.cc | 24 +-
...api_webstore__private_webstore__private__api.cc | 17 +
..._browser__context__keyed__service__factories.cc | 22 -
..._browser_extensions_external__provider__impl.cc | 32 +-
...e__file__system__access__permission__context.cc | 17 +
...-chrome_browser_first__run_first__run__dialog.h | 18 +-
...hrome_browser_first__run_first__run__internal.h | 12 +-
...owser_first__run_first__run__internal__posix.cc | 22 -
.../patch-chrome_browser_flag__descriptions.cc | 126 +-
.../patch-chrome_browser_flag__descriptions.h | 122 +-
...e_browser_gcm_gcm__profile__service__factory.cc | 26 +
...__id_instance__id__profile__service__factory.cc | 26 +
...chrome_browser_headless_headless__mode__util.cc | 26 +
...h-chrome_browser_intranet__redirect__detector.h | 17 +
..._galleries_fileapi_mtp__device__map__service.cc | 12 +-
...dia__galleries_media__file__system__registry.cc | 14 +-
...ch-chrome_browser_media_audio__service__util.cc | 26 +
...-chrome_browser_media_router_discovery_BUILD.gn | 17 +
...er_discovery_discovery__network__list__posix.cc | 42 +-
...covery_discovery__network__list__wifi__linux.cc | 18 +-
...splay_wired__display__media__route__provider.cc | 25 -
...wser_media_webrtc_chrome__screen__enumerator.cc | 53 +
...owser_media_webrtc_chrome__screen__enumerator.h | 26 +
...ia_webrtc_desktop__media__picker__controller.cc | 17 +
...er_media_webrtc_webrtc__event__log__uploader.cc | 13 -
...e_browser_media_webrtc_webrtc__log__uploader.cc | 22 +-
...ser_media_webrtc_webrtc__logging__controller.cc | 39 +-
...wser_media_webrtc_webrtc__logging__controller.h | 22 +-
.../patch-chrome_browser_memory__details.cc | 18 +-
.../patch-chrome_browser_memory__details__linux.cc | 15 -
...chrome__browser__main__extra__parts__metrics.cc | 57 +-
..._chrome__browser__main__extra__parts__metrics.h | 26 +
...ser_metrics_chrome__metrics__service__client.cc | 96 +-
...ch-chrome_browser_metrics_perf_cpu__identity.cc | 17 +
...trics_power_process__metrics__recorder__util.cc | 17 +
...hrome_browser_metrics_power_process__monitor.cc | 35 +
...chrome_browser_metrics_power_process__monitor.h | 17 +
...er_metrics_process__memory__metrics__emitter.cc | 22 -
...e__native__file__system__permission__context.cc | 19 -
...rowser_net_system__network__context__manager.cc | 195 +-
...browser_net_system__network__context__manager.h | 35 +
...page_modules_file__suggestion_drive__service.cc | 17 +
..._browser_new__tab__page_new__tab__page__util.cc | 17 +
...cations_notification__display__service__impl.cc | 50 +-
...ns_notification__platform__bridge__delegator.cc | 17 +
...d__manager_chrome__password__manager__client.cc | 31 +-
...d__manager_password__reuse__manager__factory.cc | 17 +
...r_password__manager_password__store__factory.cc | 13 -
...rformance__monitor_process__metrics__history.cc | 40 -
...erformance__monitor_process__metrics__history.h | 13 -
.../patch-chrome_browser_platform__util__linux.cc | 18 +
...ome_browser_plugins_plugin__info__host__impl.cc | 13 -
...e_browser_plugins_plugins__resource__service.cc | 13 -
...wser_policy_browser__signin__policy__handler.cc | 22 +-
...rome__browser__cloud__management__controller.cc | 13 -
...wser__cloud__management__controller__desktop.cc | 44 +
...onfiguration__policy__handler__list__factory.cc | 260 +
...y_device__management__service__configuration.cc | 26 +
...olicy_policy__value__and__status__aggregator.cc | 17 +
.../patch-chrome_browser_prefs_browser__prefs.cc | 61 +-
...er_prefs_pref__service__incognito__allowlist.cc | 12 +-
...er_printing_print__backend__service__manager.cc | 35 +
...patch-chrome_browser_printing_printer__query.cc | 17 +
...tch-chrome_browser_process__singleton__posix.cc | 38 +-
...hrome__browser__main__extra__parts__profiles.cc | 124 +-
..._browser_profiles_profile__attributes__entry.cc | 13 -
.../patch-chrome_browser_profiles_profile__impl.cc | 46 +
...atch-chrome_browser_profiles_profiles__state.cc | 35 +
...r__context__menu_render__view__context__menu.cc | 31 -
...h-chrome_browser_renderer__preferences__util.cc | 36 +-
..._appearance__page_appearance__browser__proxy.js | 22 -
...settings_appearance__page_appearance__page.html | 31 -
...s_settings_appearance__page_appearance__page.js | 35 -
...s_settings_autofill__page_passwords__shared.css | 17 +
...ome_browser_resources_signin_signin__shared.css | 17 +
...d__content__scanning_binary__upload__service.cc | 26 +
...oud__content__scanning_deep__scanning__utils.cc | 26 +
...dent__reporting_incident__reporting__service.cc | 14 +-
...rowser_screen__ai_screen__ai__install__state.cc | 26 +
...owser_screen__ai_screen__ai__service__router.cc | 26 +
...rch_search__suggest_search__suggest__service.cc | 13 -
...b__to__self_receiving__ui__handler__registry.cc | 34 +-
...o__self_send__tab__to__self__client__service.cc | 23 +-
...tch-chrome_browser_sessions_session__restore.cc | 26 +
...ser_sharing_shared__clipboard_feature__flags.cc | 13 -
...wser_sharing_shared__clipboard_feature__flags.h | 13 -
...rowser_sharing_sharing__device__registration.cc | 25 +-
...ser_sharing_sharing__handler__registry__impl.cc | 28 +-
...atch-chrome_browser_sharing_sharing__service.cc | 13 -
...-chrome_browser_sharing_webrtc_webrtc__flags.cc | 13 -
...h-chrome_browser_sharing_webrtc_webrtc__flags.h | 13 -
...patch-chrome_browser_shortcuts_icon__badging.cc | 17 +
.../patch-chrome_browser_signin_signin__util.cc | 22 +-
...supervised__user__extensions__delegate__impl.cc | 17 +
...__user_supervised__user__extensions__manager.cc | 26 +
...d__user_supervised__user__extensions__manager.h | 17 +
..._supervised__user__metrics__service__factory.cc | 26 +
..._user_supervised__user__navigation__observer.cc | 26 +
...tch-chrome_browser_sync_chrome__sync__client.cc | 45 +-
...rowser_sync_device__info__sync__client__impl.cc | 17 +
...h-chrome_browser_sync_sync__service__factory.cc | 35 +
...atch-chrome_browser_sync_sync__service__util.cc | 26 +
...e_browser_task__manager_sampling_task__group.cc | 50 +-
...me_browser_task__manager_sampling_task__group.h | 40 +-
..._task__manager_sampling_task__group__sampler.cc | 48 +-
...r_task__manager_sampling_task__group__sampler.h | 48 +-
...r_task__manager_sampling_task__manager__impl.cc | 12 +-
...browser_task__manager_task__manager__observer.h | 12 +-
.../patch-chrome_browser_themes_theme__helper.cc | 17 +
.../patch-chrome_browser_themes_theme__service.cc | 26 +
...e_browser_themes_theme__service__aura__linux.cc | 17 +
...hrome_browser_themes_theme__service__factory.cc | 48 +-
...ome_browser_tracing_crash__service__uploader.cc | 13 -
chromium/patches/patch-chrome_browser_ui_BUILD.gn | 60 -
...-chrome_browser_ui_actions_chrome__action__id.h | 17 +
..._payments_desktop__payments__window__manager.cc | 26 +
...l_payments_desktop__payments__window__manager.h | 44 +
chromium/patches/patch-chrome_browser_ui_browser.h | 17 +
...rome_browser_ui_browser__command__controller.cc | 86 +-
.../patch-chrome_browser_ui_browser__commands.cc | 17 +
.../patch-chrome_browser_ui_browser__ui__prefs.cc | 17 +
...patch-chrome_browser_ui_browser__view__prefs.cc | 28 +-
.../patch-chrome_browser_ui_chrome__pages.cc | 35 +
.../patch-chrome_browser_ui_chrome__pages.h | 26 +
...rowser_ui_color_native__chrome__color__mixer.cc | 17 +
..._exclusive__access_exclusive__access__bubble.cc | 13 -
...r_ui_omnibox_omnibox__pedal__implementations.cc | 17 +
...rollers_relaunch__chrome__bubble__controller.cc | 26 +
..._passwords_manage__passwords__ui__controller.cc | 26 +
.../patches/patch-chrome_browser_ui_sad__tab.cc | 12 +-
...sharing__hub_sharing__hub__bubble__controller.h | 17 +
...e_browser_ui_signin_signin__view__controller.cc | 17 +
..._ui_signin_signin__view__controller__delegate.h | 17 +
...chrome_browser_ui_startup_bad__flags__prompt.cc | 16 +-
...browser_ui_startup_startup__browser__creator.cc | 54 +-
...r_ui_startup_startup__browser__creator__impl.cc | 35 +
...me_browser_ui_startup_startup__tab__provider.cc | 26 +
.../patch-chrome_browser_ui_tab__helpers.cc | 37 +-
.../patch-chrome_browser_ui_tabs_features.cc | 17 +
...tch-chrome_browser_ui_tabs_tab__strip__prefs.cc | 17 +
...wser_ui_task__manager_task__manager__columns.cc | 16 +-
...ui_task__manager_task__manager__table__model.cc | 24 +-
...ch-chrome_browser_ui_test_popup__browsertest.cc | 26 +
...tch-chrome_browser_ui_test_test__browser__ui.cc | 26 +
.../patch-chrome_browser_ui_ui__features.cc | 26 +
.../patches/patch-chrome_browser_ui_ui__features.h | 26 +
...h-chrome_browser_ui_views_accelerator__table.cc | 40 +-
...pps_chrome__native__app__window__views__aura.cc | 26 +
...s_chrome__browser__main__extra__parts__views.cc | 22 +-
...rome_browser_ui_views_chrome__views__delegate.h | 23 +-
...wser_ui_views_chrome__views__delegate__linux.cc | 26 +
...owser_ui_views_compose_compose__dialog__view.cc | 17 +
...owser_ui_views_download_download__item__view.cc | 22 -
...h-chrome_browser_ui_views_first__run__dialog.cc | 15 -
...chrome_browser_ui_views_frame_browser__frame.cc | 58 +-
...-chrome_browser_ui_views_frame_browser__frame.h | 26 +
...ws_frame_browser__frame__view__layout__linux.cc | 17 +
..._browser__frame__view__layout__linux__native.cc | 17 +
...r_ui_views_frame_browser__frame__view__linux.cc | 26 +
...er__non__client__frame__view__factory__views.cc | 26 +
...-chrome_browser_ui_views_frame_browser__view.cc | 24 +-
..._ui_views_frame_opaque__browser__frame__view.cc | 49 +-
...r_ui_views_frame_opaque__browser__frame__view.h | 26 +
...paque__browser__frame__view__layout__delegate.h | 26 +
...ue__browser__frame__view__platform__specific.cc | 13 -
...e_picture__in__picture__browser__frame__view.cc | 98 +
...me_picture__in__picture__browser__frame__view.h | 53 +
..._ui_views_frame_system__menu__model__builder.cc | 36 +-
...ui_views_frame_system__menu__model__delegate.cc | 32 +-
...wser_ui_views_frame_tab__strip__region__view.cc | 17 +
...chrome_browser_ui_views_hung__renderer__view.cc | 12 +-
...rowser_ui_views_omnibox_omnibox__view__views.cc | 17 +
...views_passwords_password__bubble__view__base.cc | 26 +
...rowser_ui_views_profiles_profile__menu__view.cc | 26 +
..._ui_views_profiles_profile__menu__view__base.cc | 17 +
...es_signin__view__controller__delegate__views.cc | 53 +
...les_signin__view__controller__delegate__views.h | 26 +
...ch-chrome_browser_ui_views_side__panel_BUILD.gn | 46 +
...hrome_browser_ui_views_tabs_new__tab__button.cc | 13 -
.../patch-chrome_browser_ui_views_tabs_tab.cc | 16 +-
..._browser_ui_views_tabs_tab__drag__controller.cc | 65 +-
...ui_views_tabs_tab__hover__card__bubble__view.cc | 17 +
...rome_browser_ui_views_tabs_tab__style__views.cc | 17 +
..._education_browser__user__education__service.cc | 17 +
...eb__apps_web__app__integration__test__driver.cc | 89 +
...rowser_ui_web__applications_web__app__dialogs.h | 17 +
...eb__applications_web__app__ui__manager__impl.cc | 26 +
...web__applications_web__app__ui__manager__impl.h | 17 +
.../patch-chrome_browser_ui_webui_about__ui.cc | 22 -
...atch-chrome_browser_ui_webui_about_about__ui.cc | 26 +
..._ui_webui_app__home_app__home__page__handler.cc | 17 +
...r_ui_webui_app__home_app__home__page__handler.h | 17 +
...i_webui_chrome__web__ui__controller__factory.cc | 115 +-
...i_connectors__internals_device__trust__utils.cc | 35 +
...e_browser_ui_webui_management_management__ui.cc | 22 +
...i_webui_management_management__ui__constants.cc | 23 +
...ui_webui_management_management__ui__constants.h | 25 +
..._ui_webui_management_management__ui__handler.cc | 35 +
...r_ui_webui_management_management__ui__handler.h | 26 +
...ebui_password__manager_promo__cards__handler.cc | 26 +
...manager_promo__cards_relaunch__chrome__promo.cc | 26 +
...rowser_ui_webui_searchbox_searchbox__handler.cc | 35 +
..._webui_settings_accessibility__main__handler.cc | 52 +
...i_webui_settings_accessibility__main__handler.h | 53 +
...rowser_ui_webui_settings_appearance__handler.cc | 29 +-
...browser_ui_webui_settings_appearance__handler.h | 13 -
...tings_settings__localized__strings__provider.cc | 78 +-
...hrome_browser_ui_window__sizer_window__sizer.cc | 17 +
...king_visited__url__ranking__service__factory.cc | 26 +
...ponents_web__app__file__handler__registration.h | 13 -
...__applications_components_web__app__shortcut.cc | 13 -
...er_web__applications_extension__status__utils.h | 17 +
...s_extensions_bookmark__app__finalizer__utils.cc | 13 -
...ications_extensions_extension__status__utils.cc | 26 +
...ons_os__integration_os__integration__manager.cc | 17 +
...__integration_os__integration__test__override.h | 17 +
...integration_run__on__os__login__sub__manager.cc | 17 +
...tions_os__integration_shortcut__sub__manager.cc | 17 +
...gration_web__app__file__handler__registration.h | 17 +
...lications_os__integration_web__app__shortcut.cc | 26 +
...plications_os__integration_web__app__shortcut.h | 26 +
...pplications_policy_web__app__policy__manager.cc | 17 +
...s_test_os__integration__test__override__impl.cc | 125 +
...ns_test_os__integration__test__override__impl.h | 44 +
..._browser_web__applications_web__app__helpers.cc | 17 +
...ser_web__applications_web__app__install__info.h | 17 +
...thn_chrome__authenticator__request__delegate.cc | 17 +
...tch-chrome_browser_webauthn_enclave__manager.cc | 26 +
chromium/patches/patch-chrome_common_BUILD.gn | 16 -
.../patches/patch-chrome_common_channel__info.h | 25 +-
.../patch-chrome_common_channel__info__posix.cc | 21 +-
.../patch-chrome_common_chrome__content__client.cc | 31 -
.../patch-chrome_common_chrome__features.cc | 59 +-
.../patches/patch-chrome_common_chrome__features.h | 52 +-
.../patches/patch-chrome_common_chrome__paths.cc | 90 +-
.../patches/patch-chrome_common_chrome__paths.h | 54 +-
.../patch-chrome_common_chrome__paths__internal.h | 12 +-
.../patch-chrome_common_chrome__switches.cc | 22 +-
.../patches/patch-chrome_common_chrome__switches.h | 20 +-
...me_common_component__flash__hint__file__linux.h | 13 -
...h-chrome_common_extensions_api_api__sources.gni | 13 -
.../patch-chrome_common_extensions_command.cc | 13 -
...rmissions_chrome__permission__message__rules.cc | 17 +
chromium/patches/patch-chrome_common_features.gni | 13 -
...ch-chrome_common_media_cdm__host__file__path.cc | 12 +-
.../patch-chrome_common_media_cdm__registration.cc | 62 +
.../patch-chrome_common_media_cdm__registration.h | 17 +
...a_component__widevine__cdm__hint__file__linux.h | 17 +
.../patches/patch-chrome_common_pref__names.cc | 49 -
chromium/patches/patch-chrome_common_pref__names.h | 124 +-
.../patches/patch-chrome_common_url__constants.h | 17 +
.../patch-chrome_common_webui__url__constants.cc | 107 +-
.../patch-chrome_common_webui__url__constants.h | 62 +-
...ise__companion_enterprise__companion__client.cc | 17 +
.../patch-chrome_enterprise__companion_lock.cc | 26 +
chromium/patches/patch-chrome_renderer_BUILD.gn | 13 -
...derer_pepper_pepper__flash__font__file__host.cc | 31 -
...nderer_pepper_pepper__flash__font__file__host.h | 22 -
...ch-chrome_service_cloud__print_print__system.cc | 13 -
...vices_printing_print__backend__service__impl.cc | 53 +
...services_speech_audio__source__fetcher__impl.cc | 17 +
chromium/patches/patch-chrome_test_BUILD.gn | 220 -
...atch-chrome_test_base_chrome__test__launcher.cc | 49 -
...-chrome_test_base_in__process__browser__test.cc | 42 -
...hrome_test_base_interactive__ui__tests__main.cc | 22 -
...e_test_base_scoped__channel__override__posix.cc | 17 +
.../patch-chrome_test_base_test__browser__window.h | 13 -
...ch-chrome_test_base_testing__browser__process.h | 16 -
...ch-chrome_test_chromedriver_chrome__launcher.cc | 23 +-
...rome_test_chromedriver_chrome_chrome__finder.cc | 37 +-
...e_test_chromedriver_key__converter__unittest.cc | 38 +-
...medriver_keycode__text__conversion__unittest.cc | 26 +
.../patches/patch-chrome_updater_configurator.cc | 17 +
chromium/patches/patch-chrome_updater_lock.cc | 17 +
.../patch-chrome_updater_util_posix__util.cc | 17 +
chromium/patches/patch-chrome_utility_services.cc | 35 +
chromium/patches/patch-chromecast_BUILD.gn | 13 -
.../patches/patch-chromecast_bindings_BUILD.gn | 22 -
chromium/patches/patch-chromecast_browser_BUILD.gn | 31 -
...hromecast_browser_cast__browser__main__parts.cc | 40 +-
...ecast_browser_cast__content__browser__client.cc | 12 +-
.../patch-chromecast_browser_metrics_BUILD.gn | 13 -
...chromecast_browser_tts_tts__controller__impl.cc | 16 -
..._browser_runtime__application__service__impl.cc | 17 +
chromium/patches/patch-chromecast_chromecast.gni | 22 -
...rnal__mojo_public_cpp_external__mojo__broker.cc | 22 -
...omecast_media_base_default__monotonic__clock.cc | 26 +
chromium/patches/patch-chromecast_net_BUILD.gn | 13 -
...ast_renderer_cast__content__renderer__client.cc | 13 -
chromium/patches/patch-components_BUILD.gn | 47 -
...tch-components_autofill__payments__strings.grdp | 13 -
...t_renderer_password__form__conversion__utils.cc | 13 -
...ll_core_browser_autofill__external__delegate.cc | 13 -
...utofill_core_browser_payments__data__manager.cc | 17 +
...utofill_core_browser_personal__data__manager.cc | 22 -
...ents_autofill_core_common_autofill__features.cc | 17 +
...ill_core_common_autofill__payments__features.cc | 18 +-
...mponents_autofill_core_common_autofill__util.cc | 14 +-
...onents_commerce_core_commerce__feature__list.cc | 26 +
...nstrained__window_constrained__window__views.cc | 17 +
...ngs_core_browser_website__settings__registry.cc | 16 +-
...omponents_cookie__config_cookie__store__util.cc | 14 +-
...patch-components_crash_content_browser_BUILD.gn | 20 -
.../patch-components_crash_core_app_BUILD.gn | 49 +
...nts_crash_core_app_chrome__crashpad__handler.cc | 18 +
...nents_crash_core_app_crashpad__handler__main.cc | 26 +
...h_core_browser_crash__upload__list__crashpad.cc | 32 +
.../patch-components_crash_core_common_BUILD.gn | 28 +-
chromium/patches/patch-components_cronet_BUILD.gn | 22 -
...ignals_core_browser_mock__signals__aggregator.h | 17 +
...ice__signals_core_browser_signals__aggregator.h | 17 +
...gnals_core_browser_signals__aggregator__impl.cc | 17 +
...ignals_core_browser_signals__aggregator__impl.h | 17 +
...ignals_core_browser_user__permission__service.h | 17 +
...core_browser_user__permission__service__impl.cc | 17 +
..._core_browser_user__permission__service__impl.h | 17 +
...evice__signals_core_common_signals__features.cc | 17 +
...device__signals_core_common_signals__features.h | 17 +
...nals_core_system__signals_platform__delegate.cc | 17 +
...nents_device__signals_test_signals__contract.cc | 17 +
...service_discardable__shared__memory__manager.cc | 29 +-
...mponents_download_internal_common_base__file.cc | 13 -
...ponents_embedder__support_user__agent__utils.cc | 18 +
...bedder__support_user__agent__utils__unittest.cc | 35 +
...components_enterprise_watermarking_watermark.cc | 26 +
chromium/patches/patch-components_exo_BUILD.gn | 13 -
...h-components_eye__dropper_eye__dropper__view.cc | 17 +
..._feature__engagement_public_event__constants.cc | 21 +-
...s_feature__engagement_public_event__constants.h | 23 +-
...e__engagement_public_feature__configurations.cc | 35 +
...eature__engagement_public_feature__constants.cc | 41 +-
...feature__engagement_public_feature__constants.h | 43 +-
...nts_feature__engagement_public_feature__list.cc | 43 +-
...ents_feature__engagement_public_feature__list.h | 78 +-
...omponents_feed_core_proto_v2_wire_version.proto | 19 +
...s_feed_core_v2_feed__network__impl__unittest.cc | 19 +
.../patch-components_feed_core_v2_proto__util.cc | 30 +
...omponents_feed_core_v2_proto__util__unittest.cc | 19 +
...-components_feed_core_v2_test_proto__printer.cc | 19 +
.../patch-components_feedback_anonymizer__tool.cc | 13 -
.../patch-components_flags__ui_flags__state.cc | 18 +-
.../patch-components_gcm__driver_gcm__client.h | 12 -
...tch-components_gcm__driver_gcm__client__impl.cc | 14 -
.../patches/patch-components_gwp__asan_BUILD.gn | 14 +-
..._asan_client_guarded__page__allocator__posix.cc | 19 +
.../patch-components_gwp__asan_client_gwp__asan.cc | 17 +
...ponents_gwp__asan_client_gwp__asan__features.cc | 17 +
...nts_gwp__asan_crash__handler_crash__analyzer.cc | 26 +
...ed__service_core_dependency__graph__unittest.cc | 13 -
...patch-components_live__caption_caption__util.cc | 17 +
.../patch-components_live__caption_caption__util.h | 17 +
...omponents_media__router_common_media__source.cc | 17 +
...n_providers_cast_channel_cast__message__util.cc | 17 +
chromium/patches/patch-components_metrics_BUILD.gn | 22 -
...ents_metrics_drive__metrics__provider__linux.cc | 8 +-
.../patch-components_metrics_metrics__log.cc | 41 +-
.../patch-components_metrics_motherboard.cc | 16 +
...trics_system__memory__stats__recorder__linux.cc | 20 -
...nts_named__mojo__ipc__server_connection__info.h | 33 +
...erver_named__mojo__ipc__server__client__util.cc | 17 +
.../patch-components_named__system__lock_lock.h | 17 +
...patch-components_neterror_resources_neterror.js | 16 +-
...rator_browser_network__session__configurator.cc | 18 +-
...ser_network__session__configurator__unittest.cc | 17 +
...atch-components_new__or__sad__tab__strings.grdp | 49 -
...zation__guide_core_optimization__guide__util.cc | 17 +
.../patches/patch-components_os__crypt_os__crypt.h | 38 -
...tch-components_os__crypt_os__crypt__unittest.cc | 13 -
...onents_os__crypt_sync_libsecret__util__linux.cc | 33 +
.../patch-components_os__crypt_sync_os__crypt.h | 78 +
...aint__preview_browser_paint__preview__client.cc | 19 +
...iew_browser_paint__preview__client__unittest.cc | 19 +
...aint__preview_common_proto_paint__preview.proto | 19 +
..._preview_player_player__compositor__delegate.cc | 19 +
...ponents_password__manager_core_browser_BUILD.gn | 13 -
...ger_core_browser_features_password__features.cc | 35 +
...ager_core_browser_features_password__features.h | 17 +
...manager_core_browser_password__form__manager.cc | 35 +
...word__manager_core_browser_password__manager.cc | 17 +
...anager_core_browser_password__manager__client.h | 26 +
...ger_core_browser_password__manager__switches.cc | 17 +
...ager_core_browser_password__manager__switches.h | 17 +
...ore_browser_password__manual__fallback__flow.cc | 17 +
...core_browser_password__manual__fallback__flow.h | 26 +
...core_browser_password__store_login__database.cc | 26 +
...ssword__store_login__database__async__helper.cc | 17 +
...er_password__store_login__database__unittest.cc | 17 +
...core_browser_stub__password__manager__client.cc | 17 +
..._core_browser_stub__password__manager__client.h | 17 +
...er_core_common_password__manager__pref__names.h | 17 +
...mponents_performance__manager_public_features.h | 17 +
...sions_prediction__service_prediction__common.cc | 26 +
...ponents_plugins_renderer_plugin__placeholder.cc | 13 -
chromium/patches/patch-components_policy_BUILD.gn | 13 -
...icy_core_browser_policy__pref__mapping__test.cc | 17 +
.../patch-components_policy_core_common_BUILD.gn | 40 -
...licy_core_common_cloud_cloud__policy__client.cc | 17 +
...policy_core_common_cloud_cloud__policy__util.cc | 67 +-
...ts_policy_core_common_policy__loader__common.cc | 26 +
...-components_policy_core_common_policy__paths.cc | 19 +
...-components_policy_core_common_policy__utils.cc | 17 +
.../patch-components_policy_core_common_schema.cc | 13 -
...onents_policy_tools_generate__policy__source.py | 27 +-
.../patch-components_power__metrics_BUILD.gn | 17 +
...nts_power__metrics_energy__metrics__provider.cc | 27 +
...-components_previews_core_previews__features.cc | 13 -
...ontent_common_file__type__policies__unittest.cc | 17 +
...ing_content_resources_gen__file__type__proto.py | 27 +
..._core_browser_db_v4__protocol__manager__util.cc | 17 +
..._browser_realtime_url__lookup__service__base.cc | 17 +
...mponents_safe__browsing_core_common_features.cc | 26 +
...mponents_safe__browsing_core_resources_BUILD.gn | 13 -
...owsing_core_resources_gen__file__type__proto.py | 21 -
...gine__choice_search__engine__choice__service.cc | 17 +
...nents_search__engines_template__url__service.cc | 17 +
...ials_content_captive__portal__blocking__page.cc | 20 -
...onents_security__interstitials_content_utils.cc | 14 +-
..._default__model_cross__device__user__segment.cc | 17 +
.../patch-components_services_font_BUILD.gn | 19 -
...paint__preview__compositor__collection__impl.cc | 30 +-
..._paint__preview__compositor__collection__impl.h | 22 -
.../patches/patch-components_signin_features.gni | 13 -
...mponents_signin_public_base_signin__switches.cc | 31 +
...omponents_signin_public_base_signin__switches.h | 17 +
.../patches/patch-components_soda_soda__util.cc | 35 +
..._metric__utils_common_startup__metric__utils.cc | 17 +
.../patch-components_storage__monitor_BUILD.gn | 35 +-
...torage__monitor_removable__device__constants.cc | 10 +-
...storage__monitor_removable__device__constants.h | 12 +-
...ts_storage__monitor_storage__monitor__netbsd.cc | 59 -
...nts_storage__monitor_storage__monitor__netbsd.h | 50 -
...e_browser_supervised__user__metrics__service.cc | 17 +
...r_core_browser_supervised__user__preferences.cc | 17 +
..._user_core_browser_supervised__user__service.cc | 17 +
...onents_supervised__user_core_common_features.cc | 35 +
...ponents_supervised__user_core_common_features.h | 26 +
...ents_supervised__user_core_common_pref__names.h | 17 +
...sync__device__info_local__device__info__util.cc | 34 +-
...evice__info_local__device__info__util__linux.cc | 29 +-
.../patch-components_sync_base_sync__util.cc | 17 +
.../patch-components_system__cpu_cpu__probe.cc | 18 +
...onents_translate_core_common_translate__util.cc | 17 +
...ponents_update__client_update__query__params.cc | 10 +-
..._formatter_spoof__checks_idn__spoof__checker.cc | 12 +-
...-components_url__matcher_regex__set__matcher.cc | 15 -
...omponents_url__matcher_url__matcher__factory.cc | 13 -
...nts_user__education_views_help__bubble__view.cc | 17 +
...nents_variations_service_variations__service.cc | 17 +
...isited__url__ranking_public_url__visit__util.cc | 17 +
.../patch-components_viz_common_features.cc | 31 +-
.../patches/patch-components_viz_common_features.h | 26 +
...nents_viz_common_gpu_dawn__context__provider.cc | 13 -
...ch-components_viz_host_host__display__client.cc | 12 +-
...tch-components_viz_host_host__display__client.h | 16 +-
...embedder_skia__output__device__buffer__queue.cc | 17 +
...isplay__embedder_skia__output__surface__impl.cc | 17 +
..._display__embedder_software__output__surface.cc | 26 +-
...e_display__embedder_software__output__surface.h | 26 +-
...omponents_viz_service_display_skia__renderer.cc | 17 +
...e__sinks_root__compositor__frame__sink__impl.cc | 22 +-
...me__sinks_root__compositor__frame__sink__impl.h | 18 +-
...ch-components_viz_test_fake__display__client.cc | 17 +
...tch-components_viz_test_fake__display__client.h | 17 +
...ch-components_viz_test_fake__output__surface.cc | 13 -
...tch-components_viz_test_fake__output__surface.h | 13 -
...tch-components_viz_test_mock__display__client.h | 14 +-
...omponents_webcrypto_algorithms_test__helpers.cc | 13 -
chromium/patches/patch-content_app_BUILD.gn | 21 +
.../patches/patch-content_app_content__main.cc | 17 +
...atch-content_app_content__main__runner__impl.cc | 141 +-
chromium/patches/patch-content_browser_BUILD.gn | 94 +-
.../patch-content_browser_audio_audio__service.cc | 26 +
..._browser_browser__child__process__host__impl.cc | 25 +
...t_browser_browser__child__process__host__impl.h | 26 +
...ild__process__host__impl__receiver__bindings.cc | 17 +
.../patch-content_browser_browser__main__loop.cc | 39 +-
...tent_browser_child__process__launcher__helper.h | 17 +
...wser_child__process__launcher__helper__linux.cc | 122 +-
...browser_child__thread__type__switcher__linux.cc | 26 +
..._compositor_viz__process__transport__factory.cc | 12 +-
...wser_devtools_devtools__frontend__host__impl.cc | 44 +
...owser_devtools_devtools__frontend__host__impl.h | 17 +
...wser_devtools_protocol_system__info__handler.cc | 20 +-
...ccess_file__path__watcher_file__path__watcher.h | 17 +
...file__path__watcher_file__path__watcher__bsd.cc | 64 +
...le__path__watcher_file__path__watcher__kqueue.h | 16 +
...s_file__system__access__local__path__watcher.cc | 17 +
...font__access_font__enumeration__data__source.cc | 35 +
.../patch-content_browser_gpu_compositor__util.cc | 26 +
...content_browser_gpu_gpu__data__manager__impl.cc | 17 +
...-content_browser_gpu_gpu__data__manager__impl.h | 17 +
...rowser_gpu_gpu__data__manager__impl__private.cc | 17 +
...browser_gpu_gpu__data__manager__impl__private.h | 26 +
..._gpu_gpu__memory__buffer__manager__singleton.cc | 26 +
...patch-content_browser_gpu_gpu__process__host.cc | 32 +-
...wser_media_frameless__media__interface__proxy.h | 26 +
...r_media_media__keys__listener__manager__impl.cc | 17 +
...er_memory_swap__metrics__driver__impl__linux.cc | 22 -
...ent_browser_network__service__instance__impl.cc | 35 +
...content_browser_ppapi__plugin__process__host.cc | 13 -
...i__plugin__process__host__receiver__bindings.cc | 14 +-
...rowser_renderer__host_delegated__frame__host.cc | 17 +
...__host_input_input__device__change__observer.cc | 36 +-
...ia_service__video__capture__device__launcher.cc | 26 +
...renderer__host_pepper_pepper__file__io__host.cc | 18 +-
...owser_renderer__host_render__message__filter.cc | 31 -
...rowser_renderer__host_render__message__filter.h | 21 -
...r_renderer__host_render__process__host__impl.cc | 104 +-
...er_renderer__host_render__process__host__impl.h | 22 +-
...wser_renderer__host_render__view__host__impl.cc | 18 +-
...derer__host_render__widget__host__view__aura.cc | 58 +-
...nderer__host_render__widget__host__view__aura.h | 17 +
...t_render__widget__host__view__event__handler.cc | 12 +-
.../patch-content_browser_sandbox__host__linux.cc | 24 +
...owser_scheduler_responsiveness_jank__monitor.cc | 13 -
...scheduler_responsiveness_jank__monitor__impl.cc | 17 +
...duler_responsiveness_native__event__observer.cc | 14 +-
...eduler_responsiveness_native__event__observer.h | 48 +-
...patch-content_browser_utility__process__host.cc | 91 +-
.../patch-content_browser_utility__process__host.h | 26 +
...r_utility__process__host__receiver__bindings.cc | 31 +-
...h-content_browser_utility__sandbox__delegate.cc | 34 +
.../patch-content_browser_v8__snapshot__files.cc | 24 +-
...wser_web__contents_web__contents__view__aura.cc | 35 +
...contents_web__contents__view__aura__unittest.cc | 17 +
...rowser_webui_shared__resources__data__source.cc | 13 -
...browser_webui_web__ui__main__frame__observer.cc | 44 +
..._browser_webui_web__ui__main__frame__observer.h | 26 +
...owser_zygote__host_zygote__host__impl__linux.cc | 87 +
...rowser_zygote__host_zygote__host__impl__linux.h | 35 +
chromium/patches/patch-content_child_BUILD.gn | 31 +-
.../patches/patch-content_child_child__process.cc | 35 +
.../patches/patch-content_child_child__process.h | 17 +
chromium/patches/patch-content_common_BUILD.gn | 56 +-
...ntent_common_common__sandbox__support__linux.cc | 12 -
chromium/patches/patch-content_common_features.cc | 26 +
chromium/patches/patch-content_common_features.gni | 10 -
chromium/patches/patch-content_common_features.h | 26 +
.../patch-content_common_font__list__unittest.cc | 17 +
...-content_common_gpu__pre__sandbox__hook__bsd.cc | 77 +
...h-content_common_gpu__pre__sandbox__hook__bsd.h | 29 +
...content_common_gpu__pre__sandbox__hook__linux.h | 22 +
...-content_common_mojo__core__library__support.cc | 17 +
.../patches/patch-content_common_user__agent.cc | 43 +
chromium/patches/patch-content_gpu_BUILD.gn | 22 -
.../patch-content_gpu_gpu__child__thread.cc | 27 +
chromium/patches/patch-content_gpu_gpu__main.cc | 76 +-
.../patch-content_gpu_gpu__sandbox__hook__linux.cc | 79 -
.../patches/patch-content_ppapi__plugin_BUILD.gn | 13 -
...t_ppapi__plugin_ppapi__blink__platform__impl.cc | 26 +-
...nt_ppapi__plugin_ppapi__blink__platform__impl.h | 30 +-
...ch-content_ppapi__plugin_ppapi__plugin__main.cc | 29 +
...h-content_public_app_content__main__delegate.cc | 13 -
...ch-content_public_app_content__main__delegate.h | 13 -
...tent_public_browser_content__browser__client.cc | 17 +
...ontent_public_browser_service__process__host.cc | 17 +
...blic_browser_zygote__host_zygote__host__linux.h | 22 +
...ch-content_public_common_child__process__host.h | 13 -
...t_public_common_common__param__traits__macros.h | 13 -
...tch-content_public_common_content__constants.cc | 13 -
...atch-content_public_common_content__constants.h | 13 -
...atch-content_public_common_content__features.cc | 62 +-
...atch-content_public_common_content__switches.cc | 25 +-
...patch-content_public_common_content__switches.h | 26 +-
...nt_public_common_use__zoom__for__dsf__policy.cc | 13 -
...patch-content_public_common_zygote_features.gni | 14 +
...atch-content_public_test_browser__test__base.cc | 22 -
...h-content_public_test_content__browser__test.cc | 31 -
...tch-content_public_test_mock__render__thread.cc | 13 -
chromium/patches/patch-content_renderer_BUILD.gn | 22 -
..._renderer_media_audio_audio__device__factory.cc | 13 -
...gpu_gpu__video__accelerator__factories__impl.cc | 17 +
...patch-content_renderer_render__process__impl.cc | 22 -
.../patch-content_renderer_render__thread__impl.cc | 57 +-
...ent_renderer_renderer__blink__platform__impl.cc | 54 +-
...tent_renderer_renderer__blink__platform__impl.h | 34 +-
...er_renderer__main__platform__delegate__linux.cc | 28 +-
chromium/patches/patch-content_shell_BUILD.gn | 48 +-
...atch-content_shell_app_shell__main__delegate.cc | 23 +-
...ontent_shell_browser_shell__browser__context.cc | 22 -
...nt_shell_browser_shell__browser__main__parts.cc | 57 +-
.../patch-content_shell_browser_shell__paths.cc | 26 +
...rowser_web__test_web__test__browser__context.cc | 13 -
...er_web__test_web__test__browser__main__parts.cc | 13 -
...ll_renderer_shell__content__renderer__client.cc | 17 +
...ontent_shell_renderer_web__test_test__runner.cc | 31 -
...hell_utility_shell__content__utility__client.cc | 26 +
chromium/patches/patch-content_test_BUILD.gn | 99 +-
.../patch-content_test_content__test__suite.cc | 20 -
chromium/patches/patch-content_utility_BUILD.gn | 13 -
chromium/patches/patch-content_utility_services.cc | 105 +
...ch_speech__recognition__sandbox__hook__linux.cc | 43 +
...ech_speech__recognition__sandbox__hook__linux.h | 22 +
...link__platform__with__sandbox__support__impl.cc | 22 +-
...blink__platform__with__sandbox__support__impl.h | 27 +-
.../patches/patch-content_utility_utility__main.cc | 134 +
.../patch-content_utility_utility__thread__impl.cc | 27 +
chromium/patches/patch-content_zygote_BUILD.gn | 23 +-
.../patches/patch-content_zygote_zygote__linux.cc | 21 +
.../patch-content_zygote_zygote__main__linux.cc | 62 +-
.../patch-device_bluetooth_bluetooth__adapter.cc | 17 +
.../patch-device_bluetooth_cast__bluetooth.gni | 15 +
.../patch-device_fido_fido__discovery__factory.cc | 17 +
chromium/patches/patch-device_gamepad_BUILD.gn | 24 +-
.../patch-device_gamepad_gamepad__provider.cc | 14 +-
.../patch-device_gamepad_hid__writer__linux.cc | 16 +-
..._browser__context__keyed__service__factories.cc | 17 +
...i_declarative__webrequest_webrequest__action.cc | 13 -
...sions_browser_api_management_management__api.cc | 17 +
...sions_browser_api_messaging_message__service.cc | 33 +-
...ivate_networking__private__delegate__factory.cc | 34 +-
..._browser_api_web__request_form__data__parser.cc | 13 -
..._browser__context__keyed__service__factories.cc | 13 -
...tensions_common_api___permission__features.json | 30 +-
.../patch-extensions_common_api_runtime.json | 22 +-
.../patches/patch-extensions_common_command.cc | 17 +
.../patch-extensions_common_feature__switch.cc | 13 -
.../patch-extensions_common_features_feature.cc | 24 +-
.../patches/patch-extensions_common_image__util.cc | 13 -
.../patch-extensions_common_stack__frame.cc | 13 -
...ensions_renderer_bindings_api__binding__util.cc | 22 +-
...-extensions_renderer_bindings_argument__spec.cc | 17 +
chromium/patches/patch-extensions_shell_BUILD.gn | 22 -
...h-extensions_shell_app_shell__main__delegate.cc | 26 +-
...er_api_runtime_shell__runtime__api__delegate.cc | 18 +-
...ns_shell_browser_shell__browser__main__parts.cc | 17 +
...shell_browser_shell__extensions__api__client.cc | 25 +-
..._shell_browser_shell__extensions__api__client.h | 25 +-
...h-google__apis_gcm_engine_heartbeat__manager.cc | 22 +-
chromium/patches/patch-gpu_BUILD.gn | 47 -
...__buffer_common_gpu__memory__buffer__support.cc | 30 +-
.../patch-gpu_command__buffer_service_BUILD.gn | 22 -
...mand__buffer_service_dawn__context__provider.cc | 17 +
..._buffer_service_external__vk__image__backing.cc | 31 -
...__buffer_service_external__vk__image__backing.h | 13 -
...vice_external__vk__image__gl__representation.cc | 13 -
..._command__buffer_service_gles2__cmd__decoder.cc | 17 +
...gpu_command__buffer_service_program__manager.cc | 13 -
...image_angle__vulkan__image__backing__factory.cc | 17 +
...e_shared__image_external__vk__image__backing.cc | 26 +
..._image_external__vk__image__backing__factory.cc | 17 +
...service_shared__image_shared__image__factory.cc | 17 +
...service_shared__image_shared__image__manager.cc | 17 +
...ce_shared__image_wrapped__sk__image__backing.cc | 17 +
...ommand__buffer_service_webgpu__decoder__impl.cc | 26 +
..._tests_gl__copy__texture__CHROMIUM__unittest.cc | 13 -
...ffer_tests_gl__gpu__memory__buffer__unittest.cc | 26 +
...ch-gpu_command__buffer_tests_gl__test__utils.cc | 22 -
...tch-gpu_command__buffer_tests_gl__test__utils.h | 13 -
chromium/patches/patch-gpu_config_BUILD.gn | 13 -
.../patches/patch-gpu_config_gpu__control__list.cc | 35 +-
.../patch-gpu_config_gpu__finch__features.cc | 26 +
.../patch-gpu_config_gpu__info__collector.cc | 17 +
.../patches/patch-gpu_config_gpu__test__config.cc | 18 +-
.../patch-gpu_gles2__conform__support_BUILD.gn | 13 -
...tch-gpu_gles2__conform__support_native_BUILD.gn | 13 -
chromium/patches/patch-gpu_ipc_common_BUILD.gn | 13 -
...-gpu_ipc_common_gpu__memory__buffer__support.cc | 49 +-
...h-gpu_ipc_common_gpu__memory__buffer__support.h | 32 +-
chromium/patches/patch-gpu_ipc_service_BUILD.gn | 17 -
.../patches/patch-gpu_ipc_service_gpu__init.cc | 101 +-
...gpu_ipc_service_gpu__memory__buffer__factory.cc | 22 +-
.../patch-gpu_ipc_service_gpu__watchdog__thread.cc | 58 -
.../patch-gpu_ipc_service_gpu__watchdog__thread.h | 22 -
chromium/patches/patch-gpu_ipc_service_x__util.h | 17 +
.../patch-gpu_khronos__glcts__support_BUILD.gn | 76 -
...tch-gpu_tools_compositor__model__bench_BUILD.gn | 13 -
chromium/patches/patch-gpu_vulkan_features.gni | 13 -
.../patches/patch-gpu_vulkan_generate__bindings.py | 17 +
.../patches/patch-gpu_vulkan_semaphore__handle.cc | 26 +
.../patch-gpu_vulkan_vulkan__device__queue.cc | 26 +
.../patch-gpu_vulkan_vulkan__device__queue.h | 17 +
.../patch-gpu_vulkan_vulkan__function__pointers.cc | 34 +-
.../patch-gpu_vulkan_vulkan__function__pointers.h | 58 +-
chromium/patches/patch-gpu_vulkan_vulkan__image.h | 26 +
chromium/patches/patch-gpu_vulkan_vulkan__util.cc | 17 +
chromium/patches/patch-headless_BUILD.gn | 40 -
...ss_lib_browser_headless__browser__main__parts.h | 13 -
...rowser_headless__browser__main__parts__linux.cc | 13 -
...rowser_headless__browser__main__parts__posix.cc | 45 +
...b_browser_headless__content__browser__client.cc | 22 -
...ib_browser_headless__content__browser__client.h | 14 +-
..._browser_headless__request__context__manager.cc | 40 +-
...ss_lib_browser_headless__web__contents__impl.cc | 17 +
...adless_lib_headless__content__main__delegate.cc | 33 +-
...eadless_lib_headless__content__main__delegate.h | 13 -
.../patches/patch-headless_lib_headless__macros.h | 13 -
chromium/patches/patch-ipc_ipc__channel.h | 12 +-
chromium/patches/patch-ipc_ipc__channel__common.cc | 10 +-
chromium/patches/patch-ipc_ipc__channel__mojo.cc | 14 +-
chromium/patches/patch-ipc_ipc__message__utils.cc | 16 +-
chromium/patches/patch-ipc_ipc__message__utils.h | 16 +-
chromium/patches/patch-media_BUILD.gn | 18 +
chromium/patches/patch-media_audio_BUILD.gn | 28 +-
.../patch-media_audio_alsa_audio__manager__alsa.cc | 36 +-
.../patches/patch-media_audio_audio__features.cc | 13 -
.../patch-media_audio_audio__input__device.cc | 16 +-
.../patches/patch-media_audio_audio__manager.cc | 31 -
.../patches/patch-media_audio_audio__manager.h | 13 -
...h-media_audio_audio__output__proxy__unittest.cc | 20 +
.../patches/patch-media_audio_pulse_pulse__util.cc | 21 +
...atch-media_audio_sndio_audio__manager__sndio.cc | 222 +
...patch-media_audio_sndio_audio__manager__sndio.h | 75 +
.../patch-media_audio_sndio_sndio__input.cc | 209 +
.../patches/patch-media_audio_sndio_sndio__input.h | 100 +
.../patch-media_audio_sndio_sndio__output.cc | 196 +
.../patch-media_audio_sndio_sndio__output.h | 97 +
chromium/patches/patch-media_base_BUILD.gn | 31 -
.../patches/patch-media_base_audio__latency.cc | 14 +-
.../patch-media_base_libaom__thread__wrapper.cc | 30 +
.../patch-media_base_libvpx__thread__wrapper.cc | 31 +
.../patches/patch-media_base_media__switches.cc | 159 +-
.../patches/patch-media_base_media__switches.h | 69 +-
.../patches/patch-media_base_scopedfd__helper.h | 13 -
chromium/patches/patch-media_base_status.cc | 14 -
...ch-media_base_user__input__monitor__unittest.cc | 35 +
chromium/patches/patch-media_base_video__frame.cc | 81 +-
chromium/patches/patch-media_base_video__frame.h | 62 +-
chromium/patches/patch-media_capture_BUILD.gn | 13 -
...ideo_create__video__capture__device__factory.cc | 26 +-
..._video_fake__video__capture__device__factory.cc | 22 +-
..._video_file__video__capture__device__factory.cc | 22 +-
...h-media_capture_video_linux_fake__v4l2__impl.cc | 17 +
...ch-media_capture_video_linux_fake__v4l2__impl.h | 31 +
..._capture_video_linux_v4l2__capture__delegate.cc | 236 +-
...a_capture_video_linux_v4l2__capture__delegate.h | 61 +-
...dia_capture_video_linux_v4l2__capture__device.h | 17 +
..._linux_v4l2__capture__device__factory__linux.cc | 47 -
...ture_video_linux_v4l2__capture__device__impl.cc | 17 +
...pture_video_linux_v4l2__capture__device__impl.h | 17 +
...ure_video_linux_v4l2__capture__device__linux.cc | 45 -
..._linux_video__capture__device__factory__v4l2.cc | 86 +
...o_linux_video__capture__device__factory__v4l2.h | 17 +
...re_video_linux_video__capture__device__linux.cc | 17 +
...ure_video_video__capture__buffer__pool__impl.cc | 13 -
...deo__capture__buffer__tracker__factory__impl.cc | 26 +
...capture_video_video__capture__device__client.cc | 24 +-
chromium/patches/patch-media_cast_BUILD.gn | 22 -
.../patch-media_cdm_cdm__paths__unittest.cc | 17 +
.../patch-media_cdm_library__cdm_cdm__paths.gni | 8 +-
.../patch-media_ffmpeg_scripts_build__ffmpeg.py | 82 +
.../patch-media_ffmpeg_scripts_robo__lib_config.py | 64 +
chromium/patches/patch-media_filters_vp9__parser.h | 12 -
.../patches/patch-media_gpu_buffer__validation.cc | 53 +-
chromium/patches/patch-media_gpu_chromeos_BUILD.gn | 13 -
...a_gpu_chromeos_gl__image__processor__backend.cc | 19 +
...u_chromeos_libyuv__image__processor__backend.cc | 35 +
...pu_chromeos_mailbox__video__frame__converter.cc | 17 +
...gpu_chromeos_native__pixmap__frame__resource.cc | 17 +
...a_gpu_chromeos_platform__video__frame__utils.cc | 35 +
...-media_gpu_chromeos_video__decoder__pipeline.cc | 35 +
...gpu_gpu__video__encode__accelerator__factory.cc | 17 +
...dware__video__decoding__sandbox__hook__linux.cc | 50 +
...rdware__video__decoding__sandbox__hook__linux.h | 22 +
...dware__video__encoding__sandbox__hook__linux.cc | 32 +
...rdware__video__encoding__sandbox__hook__linux.h | 29 +
chromium/patches/patch-media_gpu_vaapi_BUILD.gn | 13 -
.../patch-media_gpu_vaapi_vaapi__video__decoder.cc | 17 +
.../patch-media_gpu_vaapi_vaapi__wrapper.cc | 17 +
chromium/patches/patch-media_media__options.gni | 30 +-
...ojo_clients_mojo__video__encode__accelerator.cc | 13 -
.../patches/patch-media_mojo_mojom_stable_BUILD.gn | 17 +
...stable__video__decoder__types__mojom__traits.cc | 26 +
..._stable__video__decoder__types__mojom__traits.h | 17 +
...media_mojo_mojom_video__frame__mojom__traits.cc | 34 +-
...media_mojo_services_gpu__mojo__media__client.cc | 22 -
.../patch-media_video_fake__gpu__memory__buffer.cc | 34 +-
...ideo_gpu__memory__buffer__video__frame__pool.cc | 30 +-
...ia_video_video__encode__accelerator__adapter.cc | 26 +
...eo_video__encode__accelerator__adapter__test.cc | 17 +
.../patches/patch-media_webrtc_audio__processor.cc | 17 +
chromium/patches/patch-media_webrtc_helpers.cc | 25 +
.../patch-media_webrtc_helpers__unittests.cc | 44 +
chromium/patches/patch-mojo_core_BUILD.gn | 31 +-
chromium/patches/patch-mojo_core_channel.cc | 20 +
.../patches/patch-mojo_core_embedder_features.h | 17 +
chromium/patches/patch-mojo_core_test_BUILD.gn | 22 -
.../patches/patch-mojo_public_c_system_thunks.cc | 44 +-
...ojo_public_cpp_platform_socket__utils__posix.cc | 10 +-
...ch-mojo_public_js_mojo__bindings__resources.grd | 13 -
.../patch-mojo_public_tools_bindings_mojom.gni | 46 +-
chromium/patches/patch-net_BUILD.gn | 149 +-
.../patch-net_base_address__tracker__linux.cc | 75 -
.../patch-net_base_address__tracker__linux.h | 15 -
...h-net_base_address__tracker__linux__unittest.cc | 16 -
chromium/patches/patch-net_base_features.cc | 30 +
...tch-net_base_mock__network__change__notifier.cc | 17 +
...atch-net_base_mock__network__change__notifier.h | 26 +
.../patch-net_base_network__change__notifier.cc | 60 +-
.../patch-net_base_network__change__notifier.h | 50 +-
...-net_base_network__change__notifier__passive.cc | 17 +
.../patch-net_base_network__interfaces__posix.h | 6 +-
.../patch-net_base_sockaddr__util__posix.cc | 18 +
...tch-net_base_sockaddr__util__posix__unittest.cc | 18 +
.../patches/patch-net_cert_cert__verify__proc.cc | 13 -
.../patches/patch-net_cert_cert__verify__proc.h | 17 +
.../patches/patch-net_cert_test__root__certs.h | 28 -
.../patch-net_disk__cache_blockfile_disk__format.h | 14 -
...net_disk__cache_simple_simple__file__tracker.cc | 26 +
chromium/patches/patch-net_dns_BUILD.gn | 49 +
chromium/patches/patch-net_dns_address__info.cc | 22 +
.../patch-net_dns_address__sorter__posix.cc | 20 +-
.../patch-net_dns_dns__config__service__posix.cc | 32 +
...et_dns_dns__config__service__posix__unittest.cc | 40 -
chromium/patches/patch-net_dns_dns__reloader.cc | 26 +-
chromium/patches/patch-net_dns_dns__util.cc | 17 +-
.../patches/patch-net_dns_host__resolver__proc.cc | 24 +-
chromium/patches/patch-net_dns_public_BUILD.gn | 17 +
.../patches/patch-net_dns_public_resolv__reader.cc | 17 +
.../patches/patch-net_dns_public_resolv__reader.h | 16 +
.../patch-net_dns_public_scoped__res__state.cc | 17 +
.../patch-net_dns_public_scoped__res__state.h | 16 +
chromium/patches/patch-net_features.gni | 13 -
.../patch-net_filter_zstd__source__stream.cc | 16 +
.../patch-net_http_http__auth__gssapi__posix.cc | 20 +-
.../patch-net_http_http__auth__gssapi__posix.h | 21 +-
...atch-net_http_http__auth__handler__negotiate.cc | 17 +
.../patch-net_http_http__auth__preferences.cc | 17 +
.../patch-net_http_http__auth__preferences.h | 35 +
.../patch-net_http_http__network__session.cc | 18 +
...et_nqe_network__quality__estimator__unittest.cc | 13 -
...ution_configured__proxy__resolution__service.cc | 31 -
...net_proxy__resolution_proxy__config__service.cc | 41 +
...xy__resolution_proxy__config__service__linux.cc | 39 +-
chromium/patches/patch-net_socket_socket__posix.cc | 12 +-
.../patch-net_socket_socks5__client__socket.cc | 19 +-
.../patches/patch-net_socket_tcp__socket__posix.cc | 22 +-
.../patches/patch-net_socket_udp__socket__posix.cc | 139 +-
.../patches/patch-net_socket_udp__socket__posix.h | 13 -
.../patch-net_socket_udp__socket__unittest.cc | 53 +
...t_socket_unix__domain__client__socket__posix.cc | 13 -
.../patches/patch-net_third__party_quiche_BUILD.gn | 22 +-
...verify__tool_cert__verify__comparision__tool.cc | 35 +
..._tools_cert__verify__tool_cert__verify__tool.cc | 40 +-
.../patch-net_tools_net__watcher_net__watcher.cc | 35 +
...ch-net_tools_quic_quic__http__proxy__backend.cc | 13 -
...ffic__annotation_network__traffic__annotation.h | 26 +-
.../patches/patch-net_url__request_url__fetcher.cc | 13 -
.../patches/patch-net_url__request_url__fetcher.h | 13 -
...patch-net_url__request_url__request__context.cc | 18 +-
.../patch-net_url__request_url__request__context.h | 18 +-
..._url__request_url__request__context__builder.cc | 14 +-
chromium/patches/patch-pdf_BUILD.gn | 13 -
.../patches/patch-pdf_pdfium_pdfium__engine.cc | 62 +-
.../patches/patch-ppapi_proxy_flash__resource.cc | 13 -
chromium/patches/patch-ppapi_tests_test__utils.h | 27 +
chromium/patches/patch-printing_BUILD.gn | 22 -
.../patch-printing_backend_cups__ipp__helper.cc | 17 +
.../patch-printing_backend_print__backend__cups.cc | 26 +
.../patch-printing_buildflags_buildflags.gni | 13 -
.../patches/patch-printing_cups__config__helper.py | 13 -
...nting_mojom_printing__context__mojom__traits.cc | 35 +
...inting_mojom_printing__context__mojom__traits.h | 17 +
chromium/patches/patch-printing_print__settings.cc | 44 +
chromium/patches/patch-printing_print__settings.h | 55 +-
.../patch-printing_print__settings__conversion.cc | 18 +-
.../patch-printing_printing__context__linux.cc | 44 +
.../patches/patch-printing_printing__features.cc | 23 +
.../patches/patch-printing_printing__features.h | 17 +
...sandbox_print__backend__sandbox__hook__linux.cc | 56 +
..._sandbox_print__backend__sandbox__hook__linux.h | 22 +
chromium/patches/patch-remoting_BUILD.gn | 13 -
.../patch-remoting_base_chromoting__event.cc | 14 +-
.../patches/patch-remoting_base_host__settings.cc | 26 +
.../patches/patch-remoting_client_display_BUILD.gn | 13 -
.../patch-remoting_client_display_sys__opengl.h | 12 +-
...h-remoting_codec_webrtc__video__encoder__vpx.cc | 17 +
chromium/patches/patch-remoting_host_BUILD.gn | 40 -
...ting_host_base_desktop__environment__options.cc | 17 +
.../patches/patch-remoting_host_base_switches.cc | 24 +
.../patches/patch-remoting_host_base_switches.h | 24 +
...ch-remoting_host_basic__desktop__environment.cc | 17 +
.../patch-remoting_host_chromoting__host.cc | 17 +
.../patches/patch-remoting_host_chromoting__host.h | 35 +
...atch-remoting_host_chromoting__host__context.cc | 17 +
...ting_host_chromoting__host__services__client.cc | 26 +
.../patches/patch-remoting_host_client__session.cc | 17 +
...ch-remoting_host_crash_crash__file__uploader.cc | 17 +
..._desktop__and__cursor__conditional__composer.cc | 26 +
...patch-remoting_host_desktop__capturer__proxy.cc | 35 +
...tch-remoting_host_desktop__capturer__wrapper.cc | 35 +
.../patch-remoting_host_evaluate__capability.cc | 12 +-
.../patch-remoting_host_host__attributes.cc | 14 +-
.../patches/patch-remoting_host_host__details.cc | 16 +-
chromium/patches/patch-remoting_host_host__main.cc | 50 +-
.../patches/patch-remoting_host_ipc__constants.cc | 26 +
.../patch-remoting_host_it2me_it2me__host.cc | 35 +
...t_it2me_it2me__native__messaging__host__main.cc | 53 +-
...ch-remoting_host_me2me__desktop__environment.cc | 41 +-
...-remoting_host_mouse__cursor__monitor__proxy.cc | 17 +
.../patches/patch-remoting_host_policy__watcher.cc | 17 +
..._remote__open__url_remote__open__url__client.cc | 26 +
...st_remote__open__url_remote__open__url__util.cc | 17 +
...mote__open__url_url__forwarder__configurator.cc | 17 +
.../patch-remoting_host_remoting__me2me__host.cc | 177 +-
.../patch-remoting_host_setup_start__host__main.cc | 35 +
chromium/patches/patch-remoting_host_switches.cc | 13 -
chromium/patches/patch-remoting_host_switches.h | 13 -
...hn_remote__webauthn__caller__security__utils.cc | 35 +
...bauthn_remote__webauthn__extension__notifier.cc | 34 +
chromium/patches/patch-remoting_protocol_BUILD.gn | 13 -
...atch-remoting_protocol_webrtc__video__stream.cc | 17 +
.../patches/patch-remoting_remoting__options.gni | 15 -
.../patch-remoting_resources_remoting__strings.grd | 13 -
chromium/patches/patch-sandbox_BUILD.gn | 17 +
chromium/patches/patch-sandbox_features.gni | 17 +
chromium/patches/patch-sandbox_linux_BUILD.gn | 69 +-
...sandbox_linux_services_init__process__reaper.cc | 12 +-
...tch-sandbox_linux_services_libc__interceptor.cc | 12 +-
chromium/patches/patch-sandbox_policy_BUILD.gn | 56 +
chromium/patches/patch-sandbox_policy_features.cc | 29 +
chromium/patches/patch-sandbox_policy_features.h | 17 +
...atch-sandbox_policy_freebsd_sandbox__freebsd.cc | 254 +
...patch-sandbox_policy_freebsd_sandbox__freebsd.h | 287 +
.../patch-sandbox_policy_mojom_sandbox.mojom | 24 +
.../patch-sandbox_policy_netbsd_sandbox__netbsd.cc | 254 +
.../patch-sandbox_policy_netbsd_sandbox__netbsd.h | 287 +
...atch-sandbox_policy_openbsd_sandbox__openbsd.cc | 433 +
...patch-sandbox_policy_openbsd_sandbox__openbsd.h | 291 +
chromium/patches/patch-sandbox_policy_sandbox.cc | 28 +
chromium/patches/patch-sandbox_policy_sandbox.h | 32 +
.../patches/patch-sandbox_policy_sandbox__type.cc | 121 +
chromium/patches/patch-sandbox_policy_switches.cc | 32 +
chromium/patches/patch-sandbox_policy_switches.h | 31 +
chromium/patches/patch-services_audio_BUILD.gn | 13 -
...h-services_audio_audio__sandbox__hook__linux.cc | 37 +
...ch-services_audio_audio__sandbox__hook__linux.h | 22 +
chromium/patches/patch-services_device_BUILD.gn | 23 +-
.../patches/patch-services_device_battery_BUILD.gn | 13 -
.../patch-services_device_geolocation_BUILD.gn | 13 -
...ices_device_geolocation_location__arbitrator.cc | 13 -
.../patches/patch-services_device_hid_BUILD.gn | 48 +-
...ch-services_device_hid_hid__connection__fido.cc | 225 +
...tch-services_device_hid_hid__connection__fido.h | 69 +
...services_device_hid_hid__connection__freebsd.cc | 249 +
...-services_device_hid_hid__connection__freebsd.h | 76 +
...h-services_device_hid_hid__connection__netbsd.c | 245 -
...-services_device_hid_hid__connection__netbsd.cc | 249 +
...h-services_device_hid_hid__connection__netbsd.h | 33 +-
.../patch-services_device_hid_hid__service.cc | 30 +
...patch-services_device_hid_hid__service__fido.cc | 405 +
.../patch-services_device_hid_hid__service__fido.h | 74 +
...ch-services_device_hid_hid__service__freebsd.cc | 404 +
...tch-services_device_hid_hid__service__freebsd.h | 58 +
...tch-services_device_hid_hid__service__netbsd.cc | 85 +-
...atch-services_device_hid_hid__service__netbsd.h | 26 +-
...ce_public_cpp_generic__sensor_sensor__reading.h | 17 +
.../patch-services_device_public_mojom_BUILD.gn | 17 +
.../patches/patch-services_device_serial_BUILD.gn | 14 +-
...ces_device_serial_serial__device__enumerator.cc | 26 +-
...ces_device_serial_serial__io__handler__posix.cc | 12 +-
...me__zone__monitor_time__zone__monitor__linux.cc | 14 +-
.../patches/patch-services_device_usb_BUILD.gn | 40 +
.../patch-services_device_usb_usb__service.cc | 42 +
...patch-services_device_usb_usb__service__fake.cc | 58 +
.../patch-services_device_usb_usb__service__fake.h | 57 +
...device_wake__lock_power__save__blocker_BUILD.gn | 13 -
chromium/patches/patch-services_network_BUILD.gn | 33 +-
.../patch-services_network_network__context.cc | 31 +-
.../patch-services_network_network__context.h | 17 +
...rvices_network_network__sandbox__hook__linux.cc | 45 +-
...ervices_network_network__sandbox__hook__linux.h | 20 +
.../patch-services_network_network__service.cc | 39 +-
.../patch-services_network_network__service.h | 42 +-
.../patch-services_network_public_cpp_BUILD.gn | 26 +
.../patch-services_network_public_cpp_features.cc | 17 +
.../patch-services_network_public_mojom_BUILD.gn | 32 +-
...ionary_shared__dictionary__writer__in__memory.h | 17 +
..._on__device__model_on__device__model__service.h | 28 +
...ervices_on__device__model_pre__sandbox__init.cc | 44 +
..._instrumentation_queued__request__dispatcher.cc | 62 +-
...tor_public_cpp_memory__instrumentation_BUILD.gn | 24 +
...ublic_cpp_memory__instrumentation_os__metrics.h | 22 +-
...cpp_memory__instrumentation_os__metrics__bsd.cc | 75 +
...p_memory__instrumentation_os__metrics__linux.cc | 75 -
...ces_resource__coordinator_public_mojom_BUILD.gn | 13 -
...tch-services_screen__ai_public_cpp_utilities.cc | 35 +
..._ai_sandbox_screen__ai__sandbox__hook__linux.cc | 24 +
...__ai_sandbox_screen__ai__sandbox__hook__linux.h | 22 +
.../patch-services_service__manager_BUILD.gn | 17 +
...tch-services_service__manager_embedder_BUILD.gn | 22 -
...atch-services_service__manager_embedder_main.cc | 13 -
...__manager_embedder_set__process__title__linux.h | 22 -
...manager_public_cpp_service__executable_BUILD.gn | 23 +-
...h-services_service__manager_sandbox_switches.cc | 13 -
...ch-services_service__manager_sandbox_switches.h | 13 -
...ices_tracing_public_cpp_perfetto_trace__time.cc | 27 -
...vices_tracing_public_cpp_perfetto_trace__time.h | 13 -
...p_stack__sampling_tracing__sampler__profiler.cc | 22 +-
...rvices_video__capture_broadcasting__receiver.cc | 22 -
...ture_public_mojom_video__capture__service.mojom | 21 +
...video__capture_video__capture__service__impl.cc | 44 +
..._video__capture_video__capture__service__impl.h | 35 +
...ileged_mojom_compositing_display__private.mojom | 13 -
chromium/patches/patch-skia_BUILD.gn | 40 -
.../patch-skia_ext_SkMemory__new__handler.cpp | 34 +-
chromium/patches/patch-skia_ext_font__utils.cc | 26 +
chromium/patches/patch-skia_ext_platform__canvas.h | 6 +-
.../patches/patch-skia_ext_skcolorspace__trfn.cc | 17 +
...atch-third__party_abseil-cpp_absl_base_config.h | 27 +
...y_abseil-cpp_absl_base_internal_raw__logging.cc | 17 +
..._party_abseil-cpp_absl_base_internal_sysinfo.cc | 71 +
...l-cpp_absl_debugging_internal_elf__mem__image.h | 18 +
...sl_time_internal_cctz_src_time__zone__format.cc | 18 +
.../patches/patch-third__party_afl_src_afl-fuzz.c | 48 +
chromium/patches/patch-third__party_angle_BUILD.gn | 54 +-
.../patches/patch-third__party_angle_gni_angle.gni | 49 -
.../patch-third__party_angle_src_common_platform.h | 30 +
...ird__party_angle_src_common_platform__helpers.h | 17 +
...third__party_angle_src_common_system__utils.cpp | 17 +
...party_angle_src_common_system__utils__linux.cpp | 45 +
..._party_angle_src_compiler_translator_InfoSink.h | 13 -
...ngle_src_gpu__info__util_SystemInfo__internal.h | 22 +-
...ngle_src_gpu__info__util_SystemInfo__libpci.cpp | 97 +-
...angle_src_gpu__info__util_SystemInfo__linux.cpp | 31 +-
...y_angle_src_gpu__info__util_SystemInfo__x11.cpp | 17 +-
...tch-third__party_angle_src_libANGLE_Display.cpp | 42 +-
...third__party_angle_src_libANGLE_formatutils.cpp | 17 +
...y_angle_src_libANGLE_renderer_driver__utils.cpp | 52 -
...rty_angle_src_libANGLE_renderer_driver__utils.h | 13 -
...e_src_libANGLE_renderer_gl_glx_FunctionsGLX.cpp | 21 +
...e_src_libANGLE_renderer_vulkan_DisplayVk__api.h | 14 +-
.../patch-third__party_angle_src_libGLESv2.gni | 13 -
.../patch-third__party_angle_src_tests_BUILD.gn | 92 -
...hird__party_angle_third__party_glmark2_BUILD.gn | 38 -
..._third__party_vulkan-loader_src_loader_loader.c | 13 -
...vulkan-loader_src_loader_vk__loader__platform.h | 13 -
...dation-layers_src_layers_vk__loader__platform.h | 13 -
.../patches/patch-third__party_angle_util_BUILD.gn | 21 +-
...erences_renderer__preferences__mojom__traits.cc | 17 +
...n_renderer__preferences_renderer__preferences.h | 17 +
...ferences_renderer__preferences__mojom__traits.h | 17 +
.../patch-third__party_blink_public_mojom_BUILD.gn | 13 -
...h-third__party_blink_public_platform_platform.h | 17 +
...hird__party_blink_public_platform_web__vector.h | 17 +
.../patch-third__party_blink_renderer_BUILD.gn | 13 -
...rer_bindings_scripts_bind__gen_style__format.py | 37 +-
...renderer_build_scripts_run__with__pythonpath.py | 16 +
...third__party_blink_renderer_controller_BUILD.gn | 40 -
...blink_renderer_controller_blink__initializer.cc | 50 +-
...rer_controller_memory__usage__monitor__posix.cc | 22 +-
...erer_controller_memory__usage__monitor__posix.h | 36 +-
...link_renderer_core_editing_editing__behavior.cc | 12 +-
...erer_core_execution__context_navigator__base.cc | 17 +
...blink_renderer_core_exported_web__view__impl.cc | 26 +
...y_blink_renderer_core_frame_web__frame__test.cc | 26 +
...ore_html_canvas_canvas__async__blob__creator.cc | 14 +-
...nderer_core_html_forms_internal__popup__menu.cc | 13 -
...erer_core_inspector_inspector__memory__agent.cc | 18 +-
...hird__party_blink_renderer_core_layout_BUILD.gn | 13 -
...arty_blink_renderer_core_layout_layout__view.cc | 26 +-
...party_blink_renderer_core_paint_paint__layer.cc | 18 +-
..._renderer_core_scroll_scrollbar__theme__aura.cc | 28 +-
...party_blink_renderer_core_xml_xslt__processor.h | 20 +
...k_renderer_core_xml_xslt__processor__libxslt.cc | 20 +
...r_modules_media_audio_audio__device__factory.cc | 17 +
..._audio_audio__renderer__mixer__manager__test.cc | 17 +
..._mediastream_processed__local__audio__source.cc | 13 -
...peerconnection_webrtc__audio__renderer__test.cc | 17 +
...odules_webaudio_audio__worklet__thread__test.cc | 17 +
...odules_webgl_webgl__rendering__context__base.cc | 17 +
...rty_blink_renderer_modules_webgpu_gpu__queue.cc | 17 +
...h-third__party_blink_renderer_platform_BUILD.gn | 22 +-
...ty_blink_renderer_platform_fonts_font__cache.cc | 22 +-
...rty_blink_renderer_platform_fonts_font__cache.h | 48 +-
...nk_renderer_platform_fonts_font__description.cc | 22 +-
..._blink_renderer_platform_fonts_font__metrics.cc | 40 +-
...renderer_platform_fonts_font__platform__data.cc | 26 +
...er_platform_fonts_font__unique__name__lookup.cc | 26 +-
...nderer_platform_fonts_skia_font__cache__skia.cc | 33 +-
...rer_platform_graphics_begin__frame__provider.cc | 21 +
...er_platform_graphics_video__frame__submitter.cc | 16 +-
...ion_partition__alloc__memory__dump__provider.cc | 34 +
..._peerconnection_rtc__video__encoder__factory.cc | 23 +
...derer_platform_runtime__enabled__features.json5 | 98 +
...arty_blink_renderer_platform_scheduler_BUILD.gn | 13 -
...nk_renderer_platform_scheduler_common_thread.cc | 17 +
...platform_video__capture_video__capture__impl.cc | 17 +
...g_blink__categorized__worker__pool__delegate.cc | 17 +
..._renderer_platform_wtf_container__annotations.h | 20 +-
...arty_blink_renderer_platform_wtf_math__extras.h | 29 +
...arty_blink_renderer_platform_wtf_stack__util.cc | 76 +-
..._renderer_platform_wtf_text_text__codec__icu.cc | 24 +
..._blink_renderer_platform_wtf_thread__specific.h | 18 +
.../patches/patch-third__party_boringssl_BUILD.gn | 46 -
...party_boringssl_src_crypto_bio_socket__helper.c | 15 -
...ch-third__party_boringssl_src_crypto_ex__data.c | 15 -
...d__party_boringssl_src_include_openssl_thread.h | 16 -
.../patches/patch-third__party_breakpad_BUILD.gn | 13 -
...reakpad_src_common_simple__string__dictionary.h | 13 -
.../patch-third__party_brotli_common_platform.h | 17 +
.../patch-third__party_brotli_common_transform.c | 13 -
...on_src_google_cacheinvalidation_include_types.h | 13 -
...-third__party_closure__compiler_compile__js.gni | 13 -
.../patches/patch-third__party_cpuinfo_cpuinfo.gni | 17 +
...ashpad_crashpad_build_crashpad__buildconfig.gni | 27 +-
...-third__party_crashpad_crashpad_client_BUILD.gn | 17 +-
...hpad_crashpad_client_crashpad__client__posix.cc | 12 +-
...ashpad_minidump_minidump__misc__info__writer.cc | 21 +
...ty_crashpad_crashpad_util_misc_address__types.h | 18 +-
..._crashpad_crashpad_util_misc_capture__context.h | 30 +-
...d__party_crashpad_crashpad_util_misc_metrics.cc | 14 +-
...hird__party_crashpad_crashpad_util_misc_uuid.cc | 14 +-
...crashpad_crashpad_util_posix_close__multiple.cc | 23 +-
...rashpad_crashpad_util_posix_drop__privileges.cc | 10 +-
...__party_crashpad_crashpad_util_posix_signals.cc | 37 +-
...ashpad_util_posix_symbolic__constants__posix.cc | 20 +-
.../patches/patch-third__party_crc32c_BUILD.gn | 10 +-
chromium/patches/patch-third__party_dav1d_BUILD.gn | 13 -
..._party_dawn_include_dawn_native_VulkanBackend.h | 18 +
...h-third__party_dawn_scripts_dawn__component.gni | 13 -
...ch-third__party_dawn_scripts_dawn__features.gni | 28 -
.../patch-third__party_dawn_src_common_BUILD.gn | 13 -
...ch-third__party_dawn_src_dawn_common_Platform.h | 20 +
...party_dawn_src_dawn_native_vulkan_BackendVk.cpp | 17 +
...third__party_dawn_third__party_gn_glfw_BUILD.gn | 30 -
...tch-third__party_devtools-frontend_src_BUILD.gn | 22 -
chromium/patches/patch-third__party_expat_BUILD.gn | 13 -
.../patches/patch-third__party_ffmpeg_BUILD.gn | 16 +
...patch-third__party_ffmpeg_ffmpeg__generated.gni | 13 -
.../patch-third__party_ffmpeg_ffmpeg__options.gni | 13 -
...atch-third__party_ffmpeg_libavcodec_x86_cabac.h | 18 +
.../patch-third__party_ffmpeg_libavutil_cpu.c | 20 +
.../patch-third__party_ffmpeg_libavutil_mem.c | 12 +-
...ch-third__party_ffmpeg_libavutil_random__seed.c | 31 +
...ch-third__party_ffmpeg_libavutil_x86_x86inc.asm | 29 +
...patch-third__party_flatbuffers_src_src_util.cpp | 22 -
.../patches/patch-third__party_fontconfig_BUILD.gn | 13 -
.../patch-third__party_fontconfig_fontconfig.gni | 15 -
.../patch-third__party_fontconfig_include_config.h | 55 +
...atch-third__party_fontconfig_src_src_fccompat.c | 19 +
.../patches/patch-third__party_freetype_BUILD.gn | 20 -
chromium/patches/patch-third__party_icu_BUILD.gn | 31 -
.../patch-third__party_icu_source_common_putil.cpp | 13 -
...tch-third__party_icu_source_common_umapfile.cpp | 13 -
chromium/patches/patch-third__party_ijar_BUILD.gn | 13 -
...rd__party_ipcz_src_reference__drivers_random.cc | 55 +
...hird__party_ipcz_src_standalone_base_logging.cc | 18 +
...tch-third__party_leveldatabase_env__chromium.cc | 23 +-
.../patches/patch-third__party_libXNVCtrl_NVCtrl.c | 27 -
...m_source_libaom_aom__ports_aarch64__cpudetect.c | 56 +
.../patch-third__party_libc++_src_src_chrono.cpp | 18 +
...libc++_src_src_filesystem_filesystem__clock.cpp | 18 +
...ird__party_libc++abi_src_src_cxa__guard__impl.h | 26 +
.../patches/patch-third__party_libdrm_BUILD.gn | 13 -
.../patch-third__party_libdrm_src_xf86drmMode.c | 29 +
.../patch-third__party_libjpeg__turbo_BUILD.gn | 13 -
...st_cpp_src_phonenumbers_base_memory_singleton.h | 25 +-
...pp_src_phonenumbers_base_synchronization_lock.h | 25 +-
...ist_cpp_src_phonenumbers_base_thread__checker.h | 26 +-
.../patches/patch-third__party_libpng_pnglibconf.h | 15 -
...ch-third__party_libsync_src_include_sync_sync.h | 18 +
.../patches/patch-third__party_libsync_src_sync.c | 31 +
.../patches/patch-third__party_libusb_BUILD.gn | 58 +
.../patch-third__party_libusb_src_libusb_core.c | 17 +
...rd__party_libusb_src_libusb_os_threads__posix.c | 30 +
...x_source_libvpx_vpx__ports_aarch64__cpudetect.c | 34 +
.../patches/patch-third__party_libxml_BUILD.gn | 22 -
.../patches/patch-third__party_libxslt_BUILD.gn | 13 -
.../patches/patch-third__party_libyuv_BUILD.gn | 31 -
.../patch-third__party_lzma__sdk_C_CpuArch.c | 50 +
...ial__color__utilities_src_cpp_palettes_tones.cc | 17 +
.../patches/patch-third__party_minigbm_BUILD.gn | 13 -
chromium/patches/patch-third__party_nasm_BUILD.gn | 22 +
.../patch-third__party_nasm_config_config-linux.h | 111 +-
chromium/patches/patch-third__party_node_node.gni | 17 +
chromium/patches/patch-third__party_node_node.py | 14 +-
.../patches/patch-third__party_openh264_BUILD.gn | 49 -
...ird__party_openscreen_src_build_config_BUILD.gn | 13 -
...arty_openscreen_src_build_config_BUILDCONFIG.gn | 25 -
...h-third__party_openscreen_src_platform_BUILD.gn | 22 -
..._openscreen_src_third__party_boringssl_BUILD.gn | 13 -
...third__party_chromium__quic_build_base_BUILD.gn | 35 -
.../patches/patch-third__party_pdfium_BUILD.gn | 13 -
...hird__party_pdfium_core_fxcrt_cfx__datetime.cpp | 13 -
...tch-third__party_pdfium_core_fxcrt_fx__system.h | 13 -
.../patch-third__party_pdfium_core_fxge_BUILD.gn | 13 -
...ird__party_pdfium_core_fxge_cfx__fontmapper.cpp | 17 +
...third__party_pdfium_core_fxge_fx__ge__linux.cpp | 12 -
...arty_pdfium_core_fxge_linux_fx__linux__impl.cpp | 29 +
...third__party_pdfium_fxjs_cjs__publicmethods.cpp | 108 -
...patch-third__party_pdfium_fxjs_cjs__runtime.cpp | 13 -
...-third__party_pdfium_fxjs_fx__date__helpers.cpp | 28 +
.../patches/patch-third__party_pdfium_pdfium.gni | 17 +
.../patch-third__party_pdfium_skia_BUILD.gn | 31 -
...ium_xfa_fgas_font_cfx__fontsourceenum__file.cpp | 12 -
...fium_xfa_fxfa_parser_cxfa__timezoneprovider.cpp | 47 +
...patch-third__party_perfetto_buildtools_BUILD.gn | 22 -
.../patch-third__party_perfetto_gn_BUILD.gn | 13 -
.../patch-third__party_perfetto_gn_perfetto.gni | 22 -
...hird__party_perfetto_gn_perfetto__unittests.gni | 13 -
...ch-third__party_perfetto_gn_standalone_BUILD.gn | 40 -
..._perfetto_include_perfetto_base_build__config.h | 100 +-
..._perfetto_include_perfetto_base_thread__utils.h | 26 +-
...rd__party_perfetto_include_perfetto_base_time.h | 26 +-
..._perfetto_include_perfetto_base_unix__socket.cc | 28 -
..._perfetto_include_perfetto_ext_base_event__fd.h | 17 +
...fetto_include_perfetto_ext_base_thread__utils.h | 21 +
...rfetto_include_perfetto_ext_base_unix__socket.h | 14 -
...erfetto_tracing_internal_track__event__legacy.h | 17 +
...erfetto_protos_perfetto_trace_ftrace_v4l2.proto | 62 +
.../patch-third__party_perfetto_src_base_BUILD.gn | 22 -
...tch-third__party_perfetto_src_base_event__fd.cc | 28 +
...hird__party_perfetto_src_base_periodic__task.cc | 26 +
...third__party_perfetto_src_base_string__utils.cc | 21 +
...d__party_perfetto_src_base_subprocess__posix.cc | 28 +
...party_perfetto_src_base_test_vm__test__utils.cc | 17 +
...party_perfetto_src_base_thread__task__runner.cc | 20 +
...-third__party_perfetto_src_base_unix__socket.cc | 46 +
...ce__processor_importers_ftrace_v4l2__tracker.cc | 62 +
...y_perfetto_src_tracing_core_clock__snapshots.cc | 18 +
...etto_src_tracing_core_tracing__service__impl.cc | 12 -
...-third__party_perfetto_src_tracing_ipc_memfd.cc | 18 +
...atch-third__party_perfetto_src_tracing_track.cc | 17 +
.../patch-third__party_perfetto_tools_BUILD.gn | 22 -
...uf_src_google_protobuf_stubs_platform__macros.h | 12 +-
chromium/patches/patch-third__party_skia_BUILD.gn | 123 -
.../patches/patch-third__party_skia_gn_BUILD.gn | 33 -
.../patches/patch-third__party_skia_gn_skia.gni | 36 -
...-third__party_skia_src_gpu_GrAutoLocaleSetter.h | 13 -
..._party_skia_src_gpu_ganesh_GrAutoLocaleSetter.h | 17 +
...-third__party_skia_src_images_SkJpegEncoder.cpp | 43 -
...hird__party_skia_src_ports_SkMemory__malloc.cpp | 27 +
...third__party_skia_src_ports_SkOSFile__posix.cpp | 17 +
.../patch-third__party_skia_src_sksl_SkSLString.h | 13 -
...-third__party_skia_third__party_angle2_BUILD.gn | 26 -
...-third__party_skia_third__party_libsdl_BUILD.gn | 15 -
...-third__party_skia_third__party_opencl_BUILD.gn | 15 -
...__party_speech-dispatcher_libspeechd__version.h | 38 +
...third__party_speech-dispatcher_speechd__types.h | 148 +
.../patches/patch-third__party_sqlite_BUILD.gn | 30 +-
...d__party_sqlite_src_amalgamation__dev_sqlite3.c | 18 +
...-third__party_sqlite_src_amalgamation_sqlite3.c | 47 +
.../patch-third__party_swiftshader_BUILD.gn | 13 -
...__party_swiftshader_src_Common_Configurator.cpp | 14 -
...ird__party_swiftshader_src_Common_MutexLock.hpp | 13 -
..._party_swiftshader_src_Common_SharedLibrary.hpp | 13 -
...atch-third__party_swiftshader_src_Main_BUILD.gn | 13 -
...ird__party_swiftshader_src_Main_SwiftConfig.cpp | 16 -
..._party_swiftshader_src_OpenGL_compiler_BUILD.gn | 13 -
...d__party_swiftshader_src_OpenGL_libEGL_BUILD.gn | 13 -
...party_swiftshader_src_OpenGL_libEGL_Display.cpp | 22 -
...party_swiftshader_src_OpenGL_libEGL_Surface.cpp | 13 -
..._party_swiftshader_src_OpenGL_libEGL_libEGL.cpp | 31 -
..._party_swiftshader_src_OpenGL_libEGL_libEGL.hpp | 13 -
...ftshader_src_OpenGL_libGLES__CM_libGLES__CM.hpp | 13 -
...party_swiftshader_src_OpenGL_libGLESv2_BUILD.gn | 13 -
..._swiftshader_src_OpenGL_libGLESv2_libGLESv2.hpp | 13 -
...h-third__party_swiftshader_src_Reactor_BUILD.gn | 40 -
...-third__party_swiftshader_src_Reactor_Debug.cpp | 56 +-
...ch-third__party_swiftshader_src_System_BUILD.gn | 22 -
...__party_swiftshader_src_System_Configurator.cpp | 18 +
...h-third__party_swiftshader_src_System_Debug.cpp | 58 -
...d__party_swiftshader_src_System_Linux_MemFd.cpp | 43 +
...tshader_src_Vulkan_VkSemaphoreExternalLinux.hpp | 26 +
...patch-third__party_swiftshader_src_WSI_BUILD.gn | 13 -
...tch-third__party_swiftshader_src_WSI_libXCB.cpp | 26 +
...ch-third__party_swiftshader_src_vulkan_BUILD.gn | 31 -
...10.0_configs_linux_include_llvm_Config_config.h | 180 +
...arty_swiftshader_third__party_llvm-7.0_BUILD.gn | 13 -
...nfigs_netbsd_include_llvm_Config_AsmParsers.def | 45 -
...figs_netbsd_include_llvm_Config_AsmPrinters.def | 48 -
...gs_netbsd_include_llvm_Config_Disassemblers.def | 46 -
..._configs_netbsd_include_llvm_Config_Targets.def | 47 -
...nfigs_netbsd_include_llvm_Config_abi-breaking.h | 55 -
...7.0_configs_netbsd_include_llvm_Config_config.h | 349 -
...onfigs_netbsd_include_llvm_Config_llvm-config.h | 90 -
...ubzero_build_Linux_include_llvm_Config_config.h | 53 +
...llvm_CMakeFiles_CMakeDirectoryInformation.cmake | 21 -
...d_NetBSD_include_llvm_CMakeFiles_progress.marks | 6 -
...build_NetBSD_include_llvm_Config_AsmParsers.def | 45 -
...uild_NetBSD_include_llvm_Config_AsmPrinters.def | 48 -
...ld_NetBSD_include_llvm_Config_Disassemblers.def | 46 -
...ro_build_NetBSD_include_llvm_Config_Targets.def | 47 -
...build_NetBSD_include_llvm_Config_abi-breaking.h | 55 -
...bzero_build_NetBSD_include_llvm_Config_config.h | 351 -
..._build_NetBSD_include_llvm_Config_llvm-config.h | 90 -
...ero_build_NetBSD_include_llvm_IR_Attributes.gen | 463 -
...m_IR_CMakeFiles_CMakeDirectoryInformation.cmake | 21 -
...CMakeFiles_intrinsics__gen.dir_DependInfo.cmake | 16 -
...vm_IR_CMakeFiles_intrinsics__gen.dir_build.make | 265 -
...akeFiles_intrinsics__gen.dir_cmake__clean.cmake | 19 -
...IR_CMakeFiles_intrinsics__gen.dir_progress.make | 12 -
...etBSD_include_llvm_IR_CMakeFiles_progress.marks | 6 -
...ero_build_NetBSD_include_llvm_IR_Intrinsics.gen | 34229 -------------------
...m-subzero_build_NetBSD_include_llvm_IR_Makefile | 249 -
...ild_NetBSD_include_llvm_IR_cmake__install.cmake | 39 -
...llvm-subzero_build_NetBSD_include_llvm_Makefile | 233 -
...port_CMakeFiles_CMakeDirectoryInformation.cmake | 21 -
...Files_llvm__vcsrevision__h.dir_DependInfo.cmake | 16 -
..._CMakeFiles_llvm__vcsrevision__h.dir_build.make | 101 -
...les_llvm__vcsrevision__h.dir_cmake__clean.cmake | 13 -
...akeFiles_llvm__vcsrevision__h.dir_progress.make | 6 -
..._include_llvm_Support_CMakeFiles_progress.marks | 6 -
...zero_build_NetBSD_include_llvm_Support_Makefile | 249 -
...build_NetBSD_include_llvm_Support_VCSRevision.h | 6 -
...etBSD_include_llvm_Support_cmake__install.cmake | 39 -
..._build_NetBSD_include_llvm_cmake__install.cmake | 46 -
...zero_build_NetBSD_include_llvm_module.modulemap | 18 -
...ty_swiftshader_third__party_marl_src_memory.cpp | 13 +-
...ty_swiftshader_third__party_marl_src_thread.cpp | 24 +-
...ch-third__party_test__fonts_fontconfig_BUILD.gn | 21 +
...st__fonts_fontconfig_fontconfig__util__linux.cc | 33 +
...onts_fontconfig_generate__fontconfig__caches.cc | 26 +
.../patches/patch-third__party_tflite_features.gni | 19 +
.../patches/patch-third__party_unrar_src_crypt.cpp | 17 +
.../patches/patch-third__party_usrsctp_BUILD.gn | 15 -
...layers_src_layers_external_vma_vk__mem__alloc.h | 17 +
...ers_vulkan_generated_vk__function__pointers.cpp | 18 +
...kan__memory__allocator_include_vk__mem__alloc.h | 17 +
.../patches/patch-third__party_wayland_BUILD.gn | 20 +
.../patch-third__party_wayland_include_config.h | 35 +
.../patches/patch-third__party_webrtc_BUILD.gn | 10 +-
.../patch-third__party_webrtc_audio_BUILD.gn | 13 -
.../patch-third__party_webrtc_examples_BUILD.gn | 31 -
...rd__party_webrtc_modules_audio__coding_BUILD.gn | 13 -
...rd__party_webrtc_modules_audio__device_BUILD.gn | 21 +-
..._party_webrtc_modules_desktop__capture_BUILD.gn | 31 -
...s_desktop__capture_linux_wayland_egl__dmabuf.cc | 24 +
...__capture_linux_x11_x__server__pixel__buffer.cc | 21 +
..._rtp__rtcp_source_forward__error__correction.cc | 12 -
...d__party_webrtc_modules_video__capture_BUILD.gn | 29 -
.../patch-third__party_webrtc_rtc__base_BUILD.gn | 17 -
...tch-third__party_webrtc_rtc__base_byte__order.h | 17 +
...rd__party_webrtc_rtc__base_ifaddrs__converter.h | 13 -
...ch-third__party_webrtc_rtc__base_ip__address.cc | 16 +-
...tch-third__party_webrtc_rtc__base_ip__address.h | 15 -
...d__party_webrtc_rtc__base_net__test__helpers.cc | 16 +
.../patch-third__party_webrtc_rtc__base_network.cc | 10 +-
.../patch-third__party_webrtc_rtc__base_network.h | 15 -
...ty_webrtc_rtc__base_physical__socket__server.cc | 96 +-
...rty_webrtc_rtc__base_physical__socket__server.h | 20 +-
...rty_webrtc_rtc__base_platform__thread__types.cc | 52 +-
...webrtc_rtc__base_third__party_sigslot_sigslot.h | 29 +
...h-third__party_webrtc_system__wrappers_BUILD.gn | 25 +-
.../patch-third__party_webrtc_test_BUILD.gn | 25 -
.../patches/patch-third__party_webrtc_webrtc.gni | 13 -
.../patch-third__party_widevine_cdm_widevine.gni | 17 +
chromium/patches/patch-third__party_zlib_BUILD.gn | 32 +-
.../patch-third__party_zlib_cpu__features.c | 54 +-
chromium/patches/patch-tools_binary__size_BUILD.gn | 13 -
...ools_binary__size_libsupersize_caspian_BUILD.gn | 13 -
...erate__shim__headers_generate__shim__headers.py | 27 +
.../patches/patch-tools_generate__stubs_rules.gni | 16 +
...atch-tools_gn_build_build__linux.ninja.template | 17 +
chromium/patches/patch-tools_gn_build_gen.py | 66 +-
.../patch-tools_gn_src_base_files_file__posix.cc | 17 +
.../patch-tools_gn_src_base_files_file__util.h | 15 -
...ch-tools_gn_src_base_files_file__util__posix.cc | 15 -
.../patch-tools_gn_src_base_files_scoped__file.cc | 15 -
chromium/patches/patch-tools_gn_src_gn_args.cc | 15 -
chromium/patches/patch-tools_gn_src_gn_version.h | 32 +-
.../patches/patch-tools_gn_src_util_exe__path.cc | 90 +-
chromium/patches/patch-tools_grit_grit__rule.gni | 22 -
.../patches/patch-tools_grit_grit_node_base.py | 18 +
.../patch-tools_ipc__fuzzer_ipc__fuzzer.gni | 11 -
...son__schema__compiler_cpp__bundle__generator.py | 17 +
...ols_json__schema__compiler_feature__compiler.py | 11 +-
.../patch-tools_json__schema__compiler_model.py | 13 -
...ls_memory_partition__allocator_inspect__utils.h | 17 +
...ch-tools_perf_chrome__telemetry__build_BUILD.gn | 19 +-
.../patch-tools_protoc__wrapper_protoc__wrapper.py | 30 +
.../patch-tools_v8__context__snapshot_BUILD.gn | 46 +
...atch-tools_variations_fieldtrial__to__struct.py | 10 +-
chromium/patches/patch-ui_aura_BUILD.gn | 13 -
.../patch-ui_aura_client_drag__drop__client.h | 17 +
chromium/patches/patch-ui_aura_screen__ozone.cc | 17 +
chromium/patches/patch-ui_aura_screen__ozone.h | 26 +
chromium/patches/patch-ui_base_BUILD.gn | 108 -
...patch-ui_base_clipboard_clipboard__constants.cc | 17 +
.../patch-ui_base_clipboard_clipboard__constants.h | 17 +
...tch-ui_base_clipboard_clipboard__non__backed.cc | 17 +
.../patch-ui_base_cursor_cursor__factory.cc | 17 +
.../patches/patch-ui_base_cursor_cursor__factory.h | 17 +
...agdrop_os__exchange__data__provider__factory.cc | 32 +-
...op_os__exchange__data__provider__non__backed.cc | 17 +
chromium/patches/patch-ui_base_idle_BUILD.gn | 13 -
...patch-ui_base_ime_dummy__text__input__client.cc | 17 +
.../patch-ui_base_ime_dummy__text__input__client.h | 17 +
.../patch-ui_base_ime_fake__text__input__client.cc | 17 +
.../patch-ui_base_ime_fake__text__input__client.h | 17 +
...-ui_base_ime_init_input__method__initializer.cc | 59 +-
chromium/patches/patch-ui_base_ime_linux_BUILD.gn | 13 -
...linux_linux__input__method__context__factory.cc | 26 +
.../patch-ui_base_ime_text__input__client.h | 17 +
.../patch-ui_base_resource_resource__bundle.cc | 25 +-
...ch-ui_base_resource_resource__bundle__netbsd.cc | 26 -
.../patch-ui_base_test_skia__gold__pixel__diff.cc | 17 +
chromium/patches/patch-ui_base_test_ui__controls.h | 17 +
.../patches/patch-ui_base_ui__base__features.cc | 49 +-
.../patches/patch-ui_base_ui__base__features.h | 13 -
.../patches/patch-ui_base_ui__base__switches.cc | 24 +
.../patches/patch-ui_base_ui__base__switches.h | 22 +
chromium/patches/patch-ui_base_ui__features.gni | 21 -
.../patches/patch-ui_base_webui_web__ui__util.cc | 31 +-
.../patch-ui_base_x_x11__cursor__factory.cc | 26 +
.../patches/patch-ui_base_x_x11__cursor__factory.h | 26 +
.../patches/patch-ui_base_x_x11__cursor__loader.cc | 47 +
.../patch-ui_base_x_x11__display__manager.cc | 26 +
.../patches/patch-ui_base_x_x11__display__util.cc | 371 +
.../patch-ui_base_x_x11__shm__image__pool.cc | 62 +-
chromium/patches/patch-ui_base_x_x11__util.cc | 29 +
chromium/patches/patch-ui_base_x_x11__util.h | 19 +
chromium/patches/patch-ui_color_BUILD.gn | 13 -
chromium/patches/patch-ui_color_color__id.h | 17 +
.../patch-ui_color_color__provider__utils.cc | 17 +
chromium/patches/patch-ui_color_system__theme.h | 17 +
chromium/patches/patch-ui_compositor_BUILD.gn | 13 -
chromium/patches/patch-ui_compositor_compositor.cc | 14 +-
chromium/patches/patch-ui_compositor_compositor.h | 18 +-
.../patch-ui_compositor_compositor__observer.h | 12 +-
chromium/patches/patch-ui_display_screen.cc | 17 +
chromium/patches/patch-ui_display_screen.h | 26 +
chromium/patches/patch-ui_events_devices_BUILD.gn | 13 -
...vents_devices_x11_device__data__manager__x11.cc | 26 +-
chromium/patches/patch-ui_events_event.cc | 35 +
.../patches/patch-ui_events_event__switches.cc | 16 +-
chromium/patches/patch-ui_events_event__switches.h | 12 +-
...ch-ui_events_keycodes_dom_keycode__converter.cc | 43 +-
...tch-ui_events_keycodes_dom_keycode__converter.h | 17 +
chromium/patches/patch-ui_events_ozone_BUILD.gn | 13 -
chromium/patches/patch-ui_gfx_BUILD.gn | 70 +-
chromium/patches/patch-ui_gfx_canvas__skia.cc | 12 +-
chromium/patches/patch-ui_gfx_codec_jpeg__codec.cc | 22 -
.../patches/patch-ui_gfx_font__fallback__linux.cc | 10 +-
chromium/patches/patch-ui_gfx_font__list.cc | 13 -
.../patches/patch-ui_gfx_font__names__testing.cc | 31 -
.../patches/patch-ui_gfx_font__render__params.h | 20 +-
.../patch-ui_gfx_font__render__params__linux.cc | 26 +
chromium/patches/patch-ui_gfx_font__util.cc | 20 +-
.../patches/patch-ui_gfx_gpu__memory__buffer.cc | 16 +-
.../patches/patch-ui_gfx_gpu__memory__buffer.h | 24 +-
.../patch-ui_gfx_ipc_gfx__param__traits__macros.h | 46 -
...-ui_gfx_linux_client__native__pixmap__dmabuf.cc | 48 -
chromium/patches/patch-ui_gfx_linux_dmabuf__uapi.h | 42 +
.../patches/patch-ui_gfx_linux_gbm__wrapper.cc | 17 +
chromium/patches/patch-ui_gfx_mojom_BUILD.gn | 13 -
...ch-ui_gfx_mojom_buffer__types__mojom__traits.cc | 18 +-
.../patch-ui_gfx_mojom_native__handle__types.mojom | 13 -
...x_mojom_native__handle__types__mojom__traits.cc | 30 +-
...fx_mojom_native__handle__types__mojom__traits.h | 31 +-
.../patches/patch-ui_gfx_native__pixmap__handle.cc | 68 +-
.../patches/patch-ui_gfx_native__pixmap__handle.h | 36 +-
.../patches/patch-ui_gfx_native__widget__types.h | 32 +-
.../patches/patch-ui_gfx_platform__font__skia.cc | 26 +
.../patch-ui_gfx_render__text__api__fuzzer.cc | 26 +
.../patches/patch-ui_gfx_render__text__fuzzer.cc | 26 +
chromium/patches/patch-ui_gfx_switches.cc | 17 +
chromium/patches/patch-ui_gfx_switches.h | 17 +
.../patch-ui_gfx_x_generated__protos_dri3.cc | 17 +
.../patch-ui_gfx_x_generated__protos_shm.cc | 17 +
chromium/patches/patch-ui_gfx_x_xlib__support.cc | 27 +
chromium/patches/patch-ui_gl_BUILD.gn | 56 +-
chromium/patches/patch-ui_gl_features.gni | 13 -
chromium/patches/patch-ui_gl_gl__bindings.h | 17 +
chromium/patches/patch-ui_gl_gl__context.cc | 17 +
chromium/patches/patch-ui_gl_gl__fence.cc | 16 +-
chromium/patches/patch-ui_gl_gl__implementation.cc | 17 +
chromium/patches/patch-ui_gl_gl__switches.cc | 35 +
.../patch-ui_gl_sync__control__vsync__provider.cc | 28 +-
.../patch-ui_gl_sync__control__vsync__provider.h | 18 +-
chromium/patches/patch-ui_gtk_BUILD.gn | 13 -
chromium/patches/patch-ui_gtk_gtk__compat.cc | 56 +
.../patch-ui_gtk_printing_print__dialog__gtk.cc | 18 +-
...i_message__center_views_message__popup__view.cc | 18 +-
.../patches/patch-ui_native__theme_native__theme.h | 16 +-
.../patch-ui_native__theme_native__theme__base.cc | 29 +-
...tch-ui_native__theme_native__theme__features.cc | 26 +
.../patches/patch-ui_ozone_common_egl__util.cc | 20 +
chromium/patches/patch-ui_ozone_common_features.cc | 17 +
...platform_headless_headless__surface__factory.cc | 26 +
..._platform_headless_ozone__platform__headless.cc | 17 +
...rm_headless_vulkan__implementation__headless.cc | 35 +
.../patch-ui_ozone_platform_wayland_BUILD.gn | 13 -
..._ozone_platform_wayland_common_wayland__util.cc | 17 +
...form_wayland_emulate_wayland__input__emulate.cc | 17 +
...tform_wayland_emulate_wayland__input__emulate.h | 17 +
..._wayland_gpu_vulkan__implementation__wayland.cc | 20 +
...ne_platform_wayland_host_wayland__connection.cc | 17 +
...wayland_host_wayland__input__method__context.cc | 17 +
...i_ozone_platform_wayland_host_wayland__popup.cc | 17 +
...tform_wayland_host_wayland__toplevel__window.cc | 17 +
...atform_wayland_host_wayland__toplevel__window.h | 17 +
..._ozone_platform_wayland_host_wayland__window.cc | 50 +
...i_ozone_platform_wayland_host_wayland__window.h | 44 +
...rm_wayland_host_xdg__toplevel__wrapper__impl.cc | 17 +
...m_wayland_host_zwp__text__input__wrapper__v1.cc | 27 +
...ne_platform_wayland_ozone__platform__wayland.cc | 60 +
...one_platform_x11_vulkan__implementation__x11.cc | 20 +
...tch-ui_ozone_platform_x11_x11__screen__ozone.cc | 35 +
...atch-ui_ozone_platform_x11_x11__screen__ozone.h | 44 +
.../patch-ui_ozone_platform_x11_x11__window.cc | 17 +
...i_ozone_test_mock__platform__window__delegate.h | 17 +
.../patch-ui_platform__window_common_BUILD.gn | 13 -
.../patch-ui_platform__window_extensions_BUILD.gn | 13 -
..._platform__window_platform__window__delegate.cc | 17 +
...i_platform__window_platform__window__delegate.h | 17 +
...rm__window_platform__window__init__properties.h | 28 +-
chromium/patches/patch-ui_qt_BUILD.gn | 17 +
chromium/patches/patch-ui_qt_qt.gni | 17 +
chromium/patches/patch-ui_shell__dialogs_BUILD.gn | 13 -
.../patch-ui_strings_app__locale__settings.grd | 13 -
...ings_translations_app__locale__settings__bn.xtb | 17 +
...ings_translations_app__locale__settings__ja.xtb | 17 +
...ings_translations_app__locale__settings__ko.xtb | 17 +
...ings_translations_app__locale__settings__ml.xtb | 17 +
...ings_translations_app__locale__settings__th.xtb | 17 +
...s_translations_app__locale__settings__zh-CN.xtb | 17 +
...s_translations_app__locale__settings__zh-TW.xtb | 17 +
chromium/patches/patch-ui_views_BUILD.gn | 60 -
..._views_bubble_bubble__dialog__delegate__view.cc | 13 -
chromium/patches/patch-ui_views_controls_label.cc | 22 -
.../patch-ui_views_controls_prefix__selector.cc | 17 +
.../patch-ui_views_controls_prefix__selector.h | 17 +
.../patch-ui_views_controls_textfield_textfield.cc | 101 +-
.../patch-ui_views_controls_textfield_textfield.h | 26 +
.../patch-ui_views_controls_webview_BUILD.gn | 13 -
.../patches/patch-ui_views_corewm_tooltip__aura.cc | 16 +-
chromium/patches/patch-ui_views_examples_BUILD.gn | 13 -
.../patch-ui_views_examples_widget__example.cc | 22 +-
.../patches/patch-ui_views_focus_focus__manager.cc | 26 +
.../patch-ui_views_selection__controller.cc | 13 -
.../patch-ui_views_style_platform__style.cc | 36 +-
..._ui__controls__factory__desktop__aura__ozone.cc | 17 +
chromium/patches/patch-ui_views_views__delegate.cc | 14 +-
chromium/patches/patch-ui_views_views__delegate.h | 14 +-
...top__aura_desktop__drag__drop__client__ozone.cc | 17 +
...ktop__aura_desktop__drag__drop__client__ozone.h | 26 +
...__aura_desktop__window__tree__host__platform.cc | 30 +-
...e__host__platform__impl__interactive__uitest.cc | 17 +
.../patch-ui_views_widget_native__widget__aura.cc | 38 -
.../patches/patch-ui_views_widget_root__view.cc | 17 +
chromium/patches/patch-ui_views_widget_widget.cc | 26 +
.../patch-ui_views_window_custom__frame__view.cc | 16 +-
.../patch-ui_views_window_dialog__delegate.cc | 14 +-
.../patch-ui_views_window_frame__background.cc | 20 +-
chromium/patches/patch-ui_webui_resources_js_cr.js | 16 -
.../patches/patch-ui_webui_resources_js_icon.js | 13 -
.../patches/patch-ui_webui_webui__features.gni | 11 -
chromium/patches/patch-v8_BUILD.gn | 145 +-
chromium/patches/patch-v8_gni_v8.gni | 13 -
chromium/patches/patch-v8_include_v8-internal.h | 17 +
chromium/patches/patch-v8_include_v8config.h | 50 +
chromium/patches/patch-v8_src_api_api.cc | 26 +-
chromium/patches/patch-v8_src_base_atomicops.h | 30 +
chromium/patches/patch-v8_src_base_cpu.cc | 20 -
.../patches/patch-v8_src_base_platform_memory.h | 22 +
.../patch-v8_src_base_platform_platform-freebsd.cc | 38 +
.../patch-v8_src_base_platform_platform-openbsd.cc | 53 +
.../patch-v8_src_base_platform_platform-posix.cc | 93 +-
chromium/patches/patch-v8_src_base_small-vector.h | 17 +
chromium/patches/patch-v8_src_base_strings.h | 18 +
chromium/patches/patch-v8_src_base_sys-info.cc | 21 +
...ch-v8_src_base_utils_random-number-generator.cc | 17 +
.../patches/patch-v8_src_diagnostics_perf-jit.cc | 17 +
.../patches/patch-v8_src_diagnostics_perf-jit.h | 17 +
chromium/patches/patch-v8_src_execution_isolate.cc | 33 +
chromium/patches/patch-v8_src_flags_flags.cc | 42 +
chromium/patches/patch-v8_src_sandbox_sandbox.cc | 17 +
..._embedded_platform-embedded-file-writer-base.cc | 17 +
...t_embedded_platform-embedded-file-writer-base.h | 16 +
...bedded_platform-embedded-file-writer-generic.cc | 48 +
...tch-v8_src_trap-handler_handler-inside-posix.cc | 35 +-
...atch-v8_src_trap-handler_handler-inside-posix.h | 12 +-
.../patch-v8_src_trap-handler_trap-handler.h | 17 +
...wasm_baseline_ia32_liftoff-assembler-ia32-inl.h | 134 +
chromium/patches/patch-v8_tools_run-paxctl.py | 25 +
chromium/patches/patch-v8_tools_run.py | 17 +
chromium/patches/patch-weblayer_BUILD.gn | 27 -
...h-weblayer_app_content__main__delegate__impl.cc | 13 -
...-weblayer_browser_browser__main__parts__impl.cc | 22 -
...layer_browser_content__browser__client__impl.cc | 31 -
...blayer_browser_content__browser__client__impl.h | 13 -
...er_browser_system__network__context__manager.cc | 13 -
.../patch-weblayer_common_weblayer__paths.cc | 22 -
chromium/patches/patch-weblayer_shell_BUILD.gn | 31 -
chromium/tests.mk | 62 +
1864 files changed, 46958 insertions(+), 56524 deletions(-)
diffs:
diff --git a/chromium/Makefile b/chromium/Makefile
index d2d40be339..70ed926c88 100644
--- a/chromium/Makefile
+++ b/chromium/Makefile
@@ -1,142 +1,237 @@
-# $NetBSD: Makefile,v 1.14 2012/09/24 18:26:53 asau Exp $
-
-DISTNAME= chromium-85.0.4183.39
-CATEGORIES= www
-MASTER_SITES= http://commondatastorage.googleapis.com/chromium-browser-official/
-EXTRACT_SUFX= .tar.xz
-
-MAINTAINER= ryoon%NetBSD.org@localhost
-HOMEPAGE= https://www.chromium.org/Home
-COMMENT= Open source web browser
-LICENSE= modified-bsd AND gnu-lgpl-v3 AND mpl-2.0
-
-USE_TOOLS+= bash bison flex:pkgsrc gmake pax perl pkg-config
-TOOLS_PLATFORM.flex= # override the platform definition to use pkgsrc's flex.
-USE_LANGUAGES= c c++
-
+# $NetBSD$
+
+DISTNAME= chromium-${VERSION}
+VERSION= 127.0.6533.72
+CATEGORIES= www
+MASTER_SITES= http://commondatastorage.googleapis.com/chromium-browser-official/
+EXTRACT_SUFX= .tar.xz
+
+PROFILE_DISTFILE= chrome-linux-${VERSION}-llvm17.profdata${EXTRACT_SUFX}
+SITES.${PROFILE_DISTFILE}= http://nerd.hu/distfiles/
+DISTFILES+= ${DISTNAME}${EXTRACT_SUFX}
+DISTFILES+= ${PROFILE_DISTFILE}
+
+MAINTAINER= ryoon%NetBSD.org@localhost
+#MAINTAINER+= kikadf.01%gmail.com@localhost
+HOMEPAGE= https://www.chromium.org/Home
+COMMENT= Open source web browser
+LICENSE= modified-bsd AND gnu-lgpl-v3 AND mpl-2.0
+
+USE_TOOLS+= bash bison flex:pkgsrc gmake pax perl pkg-config
+TOOLS_PLATFORM.flex= # override the platform definition to use pkgsrc's flex.
+USE_LANGUAGES= c c++
+
+CHECK_PORTABILITY_SKIP+= third_party/dawn/third_party/dxc/utils/buildit/build_llvm
CHECK_PORTABILITY_SKIP+= third_party/sqlite/src/configure
CHECK_PORTABILITY_SKIP+= third_party/protobuf/post_process_dist.sh
CHECK_PORTABILITY_SKIP+= third_party/ffmpeg/configure
+CHECK_PORTABILITY_SKIP+= third_party/nearby/src/embedded/build.sh
CHECK_PORTABILITY_SKIP+= third_party/xdg-utils/scripts/xdg-terminal
CHECK_PORTABILITY_SKIP+= third_party/xdg-utils/scripts/xdg-terminal.in
CHECK_PORTABILITY_SKIP+= third_party/llvm/flang/tools/f18/flang.sh.in
CHECK_PORTABILITY_SKIP+= third_party/llvm/polly/lib/External/isl/configure
CHECK_PORTABILITY_SKIP+= v8/tools/run-llprof.sh
+CHECK_PORTABILITY_SKIP+= v8/tools/profiling/run-llprof.sh
-TOOL_DEPENDS+= gperf>=3.0.1:../../devel/gperf
-TOOL_DEPENDS+= yasm-[0-9]*:../../devel/yasm
-TOOL_DEPENDS+= ninja-build-[0-9]*:../../devel/ninja-build
-TOOL_DEPENDS+= ${PYPKGPREFIX}-html5lib-[0-9]*:../../textproc/py-html5lib
-TOOL_DEPENDS+= ${PYPKGPREFIX}-beautifulsoup4-[0-9]*:../../www/py-beautifulsoup4
-TOOL_DEPENDS+= ${PYPKGPREFIX}-ply-[0-9]*:../../devel/py-ply
-TOOL_DEPENDS+= nodejs-[0-9]*:../../lang/nodejs
-TOOL_DEPENDS+= openjdk11-[0-9]*:../../lang/openjdk11
-#TOOL_DEPENDS+= clang-[0-9]*:../../lang/clang # clang-format
-
-PYTHON_VERSIONS_ACCEPTED= 27 # python3 not supported.
+TOOL_DEPENDS+= gperf>=3.0.1:../../devel/gperf
+TOOL_DEPENDS+= nasm-[0-9]*:../../devel/nasm
+TOOL_DEPENDS+= ninja-build-[0-9]*:../../devel/ninja-build
+TOOL_DEPENDS+= ${PYPKGPREFIX}-html5lib-[0-9]*:../../textproc/py-html5lib
+TOOL_DEPENDS+= ${PYPKGPREFIX}-beautifulsoup4-[0-9]*:../../www/py-beautifulsoup4
+TOOL_DEPENDS+= ${PYPKGPREFIX}-ply-[0-9]*:../../devel/py-ply
+TOOL_DEPENDS+= nodejs-[0-9]*:../../lang/nodejs
+#TOOL_DEPENDS+= openjdk11-[0-9]*:../../lang/openjdk11
+#TOOL_DEPENDS+= clang-[0-9]*:../../lang/clang # clang-format
+TOOL_DEPENDS+= rust-bindgen-[0-9]*:../../devel/rust-bindgen
-DEPENDS+= xdg-utils-[0-9]*:../../misc/xdg-utils
+DEPENDS+= xdg-utils-[0-9]*:../../misc/xdg-utils
.include "../../mk/bsd.prefs.mk"
.include "../../mk/compiler.mk"
-#ONLY_FOR_PLATFORM+= *-*-arm # not yet
-#ONLY_FOR_PLATFORM+= *-*-aarch64 # not yet
-#ONLY_FOR_PLATFORM+= *-*-i386 # not yet
-ONLY_FOR_PLATFORM+= *-*-x86_64
+#ONLY_FOR_PLATFORM+= *-*-arm # not yet
+#ONLY_FOR_PLATFORM+= *-*-aarch64 # not yet
+#ONLY_FOR_PLATFORM+= *-*-i386 # not yet
+ONLY_FOR_PLATFORM+= *-*-x86_64
# Workaround for brotli and other commands.
-BUILDLINK_TRANSFORM.NetBSD+= rm:-ldl
+#BUILDLINK_TRANSFORM.NetBSD+= rm:-ldl
+
+# Let to chromium use the -Wl,-z,relro flag
+BUILDLINK_TRANSFORM+= rm:-Wl,-zrelro
# Do not use alloca(3) in libc.
BUILDLINK_TRANSFORM+= opt:-std=c11:-std=gnu11
BUILDLINK_TRANSFORM+= opt:-std=c99:-std=gnu99
BUILDLINK_TRANSFORM+= opt:-std=c++14:-std=gnu++14
BUILDLINK_TRANSFORM+= opt:-std=c++17:-std=gnu++17
+BUILDLINK_TRANSFORM+= opt:-std=c++20:-std=gnu++20
REPLACE_BASH= chrome/tools/build/linux/chrome-wrapper
+FILES_SUBST+= PYTHONBIN=${PYTHONBIN:Q}
SUBST_CLASSES+= path
-SUBST_STAGE.path= post-patch
-SUBST_MESSAGE.path= Fixing pkg path
+SUBST_STAGE.path= pre-configure
+SUBST_MESSAGE.path= Fixing pathes
+SUBST_FILES.path+= build/rust/rust_bindgen.gni
SUBST_FILES.path+= chrome/common/chrome_paths.cc
-SUBST_FILES.path+= third_party/pdfium/core/fxge/fx_ge_linux.cpp
-SUBST_FILES.path+= third_party/pdfium/xfa/fgas/font/cfx_fontsourceenum_file.cpp
-SUBST_FILES.path+= third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py
-SUBST_VARS.path+= PREFIX X11BASE
-
-CFLAGS+= -fno-stack-protector
-CFLAGS+= -isystem${PREFIX}/lib/clang/10.0.0/include # third_party/zlib with clang
+SUBST_FILES.path+= components/policy/core/common/policy_paths.cc
+SUBST_FILES.path+= sandbox/policy/openbsd/sandbox_openbsd.cc
+SUBST_FILES.path+= services/device/hid/hid_service_freebsd.cc
+SUBST_FILES.path+= services/device/hid/hid_service_netbsd.cc
+SUBST_FILES.path+= services/device/time_zone_monitor/time_zone_monitor_linux.cc
+SUBST_FILES.path+= ui/qt/qt.gni
+SUBST_FILES.path+= chrome.sh
+SUBST_FILES.path+= v8/tools/run-paxctl.py
+SUBST_VARS.path+= PREFIX PKG_SYSCONFBASE VARBASE QTDIR X11BASE PYTHONBIN
+
+SUBST_CLASSES+= man
+SUBST_STAGE.man= pre-configure
+SUBST_MESSAGE.man= Fixing manpage
+SUBST_FILES.man+= chrome/app/resources/manpage.1.in
+SUBST_SED.man+= -e 's,@@PACKAGE@@,chromium,g'
+SUBST_SED.man+= -e 's,@@MENUNAME@@,Chromium Web Browser,g'
.include "options.mk"
+.include "tests.mk"
MAKE_ENV+= BUILDTYPE=${BUILDTYPE}
MAKE_ENV+= GPERF=${PREFIX}/bin/gperf
+TARGET= chrome chromedriver
+
+# These libraries are used from the system and the build infrastructure
+# removes them from the bundled third_party directory and replaces them
+# with hooks to use them from the system.
+GN_SYSTEM_LIBS= dav1d
+GN_SYSTEM_LIBS+= fontconfig
+GN_SYSTEM_LIBS+= icu
+GN_SYSTEM_LIBS+= libaom
+GN_SYSTEM_LIBS+= libevent
+#GN_SYSTEM_LIBS+= libjpeg # libjpeg-turbo
+GN_SYSTEM_LIBS+= libpng
+GN_SYSTEM_LIBS+= libvpx
+GN_SYSTEM_LIBS+= libxml
+GN_SYSTEM_LIBS+= libxslt
+GN_SYSTEM_LIBS+= openh264
+GN_SYSTEM_LIBS+= opus
+
+GN_ARGS+= clang_use_chrome_plugins=false
+GN_ARGS+= disable_fieldtrial_testing_config=true
+GN_ARGS+= enable_backup_ref_ptr_support=false
+GN_ARGS+= enable_hangout_services_extension=true
+GN_ARGS+= enable_log_error_not_reached=true
+GN_ARGS+= enable_nacl=false
+GN_ARGS+= enable_remoting=false
+GN_ARGS+= fatal_linker_warnings=false
+GN_ARGS+= icu_use_data_file=false
+GN_ARGS+= is_cfi=false
+GN_ARGS+= is_clang=true
+GN_ARGS+= optimize_webui=true
+GN_ARGS+= thin_lto_enable_optimizations=true
+GN_ARGS+= treat_warnings_as_errors=false
+GN_ARGS+= use_allocator_shim=false
+GN_ARGS+= use_cups=true
+GN_ARGS+= use_custom_libcxx=true
+GN_ARGS+= use_custom_libunwind=true
+#GN_ARGS+= use_gold=false
+GN_ARGS+= use_kerberos=false
+GN_ARGS+= use_lld=false
+GN_ARGS+= use_partition_alloc=true
+GN_ARGS+= use_partition_alloc_as_malloc=false
+GN_ARGS+= use_sysroot=false
+GN_ARGS+= use_system_freetype=true
+GN_ARGS+= use_system_harfbuzz=true
+GN_ARGS+= use_system_libdrm=true
+#GN_ARGS+= use_system_libjpeg=true #libjpeg-turbo
+GN_ARGS+= use_thin_lto=false
+GN_ARGS+= use_udev=false
+GN_ARGS+= use_vaapi=false
+GN_ARGS+= v8_enable_cet_ibt=true
+
+# flags
+CFLAGS+= -fno-stack-protector
+CFLAGS+= -isystem${PREFIX}/lib/clang/17/include # third_party/zlib with clang
+CFLAGS+= -Wno-error=unused-command-line-argument
+CFLAGS+= -Wno-unknown-warning-option
+
+EXTRA_LDFLAGS= -L${PREFIX}/lib \
+ -L${X11BASE}/lib \
+ ${COMPILER_RPATH_FLAG}${PREFIX}/lib \
+ ${COMPILER_RPATH_FLAG}${PREFIX}/lib/nspr \
+ ${COMPILER_RPATH_FLAG}${PREFIX}/lib/nss \
+ ${COMPILER_RPATH_FLAG}${X11BASE}/lib
+EXTRA_CXXFLAGS= -Wno-unknown-warning-option \
+ -I${BUILDLINK_DIR}/include \
+ -I${BUILDLINK_DIR}/include/glib \
+ -I${BUILDLINK_DIR}/include/nss
+
+# rust
+RUSTC_VERSION= rustc -V
+MAKE_ENV+= RUSTC_BOOTSTRAP=1
+GN_ARGS+= enable_rust=true \
+ rust_sysroot_absolute=\"${PREFIX}\" \
+ rustc_version=\"${RUSTC_VERSION:sh}\"
+
+PLIST_VARS+= swiftshader
+.if ${MACHINE_ARCH} == "aarch64"
+FFMPEG_TARGET= arm64
+.elif ${MACHINE_ARCH} == "x86_64"
+PLIST.swiftshader= yes
+FFMPEG_TARGET= x64
+.elif ${MACHINE_ARCH} == "i386"
+EXTRA_LDFLAGS+= -Wl,--no-keep-memory
+PLIST.swiftshader= yes
+FFMPEG_TARGET= ia32
+.endif
+
+GN_ARGS+= extra_cxxflags=\"${EXTRA_CXXFLAGS}\" \
+ extra_ldflags=\"${EXTRA_LDFLAGS}\"
# Proprietary codecs are enabled.
+FFMPEG_BRAND= Chrome
+FFMPEG_BDIR= ${WRKSRC}/third_party/ffmpeg/build.${FFMPEG_TARGET}.${LOWER_OPSYS}/${FFMPEG_BRAND}
+FFMPEG_CDIR= ${WRKSRC}/third_party/ffmpeg/chromium/config/${FFMPEG_BRAND}/${LOWER_OPSYS}/${FFMPEG_TARGET}
+
GN_ARGS+= proprietary_codecs=true \
- ffmpeg_branding="Chrome"
-
-GN_ARGS+= clang_use_chrome_plugins=false \
- enable_hangout_services_extension=true \
- use_kerberos=false \
- use_aura=true \
- use_cups=true \
- enable_nacl=false \
- enable_remoting=false \
- fieldtrial_testing_like_official_build=true \
- toolkit_views=true \
- treat_warnings_as_errors=false \
- use_sysroot=false \
- use_system_libjpeg=false \
- use_system_harfbuzz=true \
- use_system_freetype=true \
- enable_one_click_signin=true \
- use_allocator="none" \
- use_allocator_shim=false \
- is_clang=true \
- use_lld=false \
- use_custom_libcxx=true \
- use_gold=false \
- icu_use_data_file=false
-GN_ARGS+= extra_cxxflags="-I${BUILDLINK_DIR}/include \
- -I${BUILDLINK_DIR}/include/glib \
- -I${BUILDLINK_DIR}/include/nss" \
- extra_ldflags="-L${PREFIX}/lib \
- -L${X11BASE}/lib \
- ${COMPILER_RPATH_FLAG}${PREFIX}/lib \
- ${COMPILER_RPATH_FLAG}${PREFIX}/lib/nspr \
- ${COMPILER_RPATH_FLAG}${PREFIX}/lib/nss \
- ${COMPILER_RPATH_FLAG}${PREFIX}/lib/ffmpeg4 \
- ${COMPILER_RPATH_FLAG}${X11BASE}/lib"
-
-GN_BOOTSTRAP_FLAGS+= --no-clean --no-rebuild --skip-generate-buildfiles
+ ffmpeg_branding=\"${FFMPEG_BRAND}\"
+
+GN_BOOTSTRAP_FLAGS+= --no-clean --no-rebuild
# API key and OAuth credential for Google.
# This is pkgsrc use only.
-GN_ARGS+= google_api_key="AIzaSyAT_3ogzNMKbBMFk3xQ6T35fg52Y9GrFBg" \
- google_default_client_id="74061691103-faqqnan75j2s8ej3p7lh2k98dhkee816.apps.googleusercontent.com" \
- google_default_client_secret="3R9TyUv14OXgzJnZi6Ismela"
+GN_ARGS+= google_api_key=\"AIzaSyAT_3ogzNMKbBMFk3xQ6T35fg52Y9GrFBg\"
-NOT_PAX_MPROTECT_SAFE+= bin/chrome
-NOT_PAX_ASLR_SAFE+= bin/chrome
+NOT_PAX_MPROTECT_SAFE+= chrome/chrome
+#NOT_PAX_ASLR_SAFE+= chrome/chrome
+
+#PKGSRC_COMPILER= ccache clang
+PKG_CC= clang
+PKG_CXX= clang++
+#UNLIMIT_RESOURCES= datasize
post-extract:
- cp -r ${WRKSRC}/third_party/ffmpeg/chromium/config/Chrome/linux \
- ${WRKSRC}/third_party/ffmpeg/chromium/config/Chrome/${LOWER_OPSYS}
+ ${CP} ${FILESDIR}/chrome ${WRKSRC}/chrome.sh
pre-configure:
-# ${MKDIR} ${WRKSRC}/third_party/llvm-build/Release+Asserts/bin
-# ${LN} -sf ${PREFIX}/bin/clang++ \
-# ${WRKSRC}/third_party/llvm-build/Release+Asserts/bin/clang++
-# ${LN} -sf ${PREFIX}/bin/clang \
-# ${WRKSRC}/third_party/llvm-build/Release+Asserts/bin/clang
-# ${LN} -sf ${PREFIX}/bin/llvm-ar \
-# ${WRKSRC}/third_party/llvm-build/Release+Asserts/bin/llvm-ar
- ${LN} -sf ${PREFIX}/java/openjdk11/bin/java \
- ${BUILDLINK_DIR}/bin/java
- cp -r ${WRKSRC}/third_party/ffmpeg/chromium/config/Chrome/linux \
- ${WRKSRC}/third_party/ffmpeg/chromium/config/Chrome/${LOWER_OPSYS}
+# ${LN} -sf ${PREFIX}/java/openjdk11/bin/java \
+# ${BUILDLINK_DIR}/bin/java
+# cp -r ${WRKSRC}/third_party/ffmpeg/chromium/config/Chrome/linux \
+# ${WRKSRC}/third_party/ffmpeg/chromium/config/Chrome/${LOWER_OPSYS}
+ # Prepare internal ffmpeg
+ cd ${WRKSRC}/media/ffmpeg && \
+ ${PYTHONBIN} scripts/build_ffmpeg.py \
+ ${LOWER_OPSYS} ${FFMPEG_TARGET} --config-only --branding=${FFMPEG_BRAND}
+ cd ${FFMPEG_BDIR} && ${GMAKE} ffversion.h
+ ${INSTALL_DATA_DIR} ${FFMPEG_CDIR}
+.for ffmpeg_part in config.h config.asm config_components.h libavcodec libavformat libavutil
+ cp -pR ${FFMPEG_BDIR}/${ffmpeg_part} ${FFMPEG_CDIR}
+.endfor
+
+ # Create symlink to NetBSD nodejs command.
+ ${MKDIR} ${WRKSRC}/third_party/node/${LOWER_OPSYS}/node-${LOWER_OPSYS}/bin
+ ${LN} -sf ${PREFIX}/bin/node \
+ ${WRKSRC}/third_party/node/${LOWER_OPSYS}/node-${LOWER_OPSYS}/bin/node
+
# a wrapper for rpath $ORIGIN removal
# echo "#! /bin/sh" > ${WRKSRC}/python
# echo "LD_LIBRARY_PATH=./ ${PYTHONBIN} \"\$$@\"" >> ${WRKSRC}/python
@@ -145,164 +240,149 @@ pre-configure:
# Sadly rpath $ORIGIN/. is needed.
# rm -rf ${WRAPPER_DIR}
- cd ${WRKSRC} && \
- ${PYTHONBIN} ./build/linux/unbundle/replace_gn_files.py \
- --system-libraries \
- ffmpeg flac fontconfig freetype harfbuzz-ng libdrm libpng \
- libwebp libxml libxslt opus snappy \
- || ${FALSE}
-
do-configure:
- # Create symlink to NetBSD nodejs command.
- ${MKDIR} ${WRKSRC}/third_party/node/${LOWER_OPSYS}/node/bin
- ${LN} -sf ${PREFIX}/bin/node \
- ${WRKSRC}/third_party/node/${LOWER_OPSYS}/node/bin/node
-
- cd ${WRKSRC} && \
- ${SETENV} ${CONFIGURE_ENV} \
- ${PYTHONBIN} ./tools/gn/bootstrap/bootstrap.py \
- ${GN_BOOTSTRAP_FLAGS} \
- --gn-gen-args '${GN_ARGS}'
- cd ${WRKSRC} && \
- ${SETENV} ${CONFIGURE_ENV} \
- ./out/${BUILDTYPE}/gn \
- gen --args='${GN_ARGS}' \
- --script-executable="${PYTHONBIN}" \
- ${GN_VERBOSE} \
- out/${BUILDTYPE}
-
-do-build:
cd ${WRKSRC} && \
- ${SETENV} ${MAKE_ENV} \
- ${PREFIX}/bin/ninja -j ${MAKE_JOBS:U1} -C out/${BUILDTYPE} \
- mksnapshot
- ${TOOLS_PLATFORM.paxctl} +m ${WRKSRC}/out/${BUILDTYPE}/mksnapshot
+ ${SETENV} ${MAKE_ENV} ${PYTHONBIN} ./build/linux/unbundle/replace_gn_files.py \
+ --system-libraries ${GN_SYSTEM_LIBS} || ${FALSE}
- cd ${WRKSRC} && \
- ${SETENV} ${MAKE_ENV} \
- ${PREFIX}/bin/ninja -j ${MAKE_JOBS:U1} -C out/${BUILDTYPE} \
- v8_context_snapshot_generator
- ${TOOLS_PLATFORM.paxctl} +m ${WRKSRC}/out/${BUILDTYPE}/v8_context_snapshot_generator
+ cd ${WRKSRC}/tools/gn && \
+ ${SETENV} ${MAKE_ENV} ${PYTHONBIN} bootstrap/bootstrap.py \
+ ${GN_BOOTSTRAP_FLAGS} --gn-gen-args "${GN_ARGS}"
cd ${WRKSRC} && \
- ${SETENV} ${MAKE_ENV} \
- ${PREFIX}/bin/ninja -j ${MAKE_JOBS:U1} -C out/${BUILDTYPE} \
- chrome
+ ${SETENV} ${CONFIGURE_ENV} ./out/${BUILDTYPE}/gn \
+ gen --args="${GN_ARGS}" --script-executable="${PYTHONBIN}" ${GN_VERBOSE} out/${BUILDTYPE}
-CHROMIUM_DIR= chrome
-INSTALLATION_DIRS+= ${CHROMIUM_DIR}
+do-build:
+# cd ${WRKSRC} && \
+# ${SETENV} ${MAKE_ENV} \
+# ${PREFIX}/bin/ninja -j ${MAKE_JOBS:U1} -C out/${BUILDTYPE} \
+# mksnapshot
+#.if ${OPSYS} == "NetBSD"
+# ${TOOLS_PLATFORM.paxctl} +m ${WRKSRC}/out/${BUILDTYPE}/mksnapshot
+#.endif
+
+# cd ${WRKSRC} && \
+# ${SETENV} ${MAKE_ENV} \
+# ${PREFIX}/bin/ninja -j ${MAKE_JOBS:U1} -C out/${BUILDTYPE} \
+# v8_context_snapshot_generator
+#.if ${OPSYS} == "NetBSD"
+# ${TOOLS_PLATFORM.paxctl} +m ${WRKSRC}/out/${BUILDTYPE}/v8_context_snapshot_generator
+#.endif
+
+ ${RUN} ${_ULIMIT_CMD} cd ${WRKSRC} && \
+ ${SETENV} ${MAKE_ENV} ${PREFIX}/bin/ninja -j ${MAKE_JOBS:U1} -C out/${BUILDTYPE} ${TARGET}
+
+
+CHROMIUM= chrome
+BUILDDIR= ${WRKSRC}/out/${BUILDTYPE}
+INSTALLATION_DIRS+= ${CHROMIUM}
INSTALLATION_DIRS+= bin
-INSTALLATION_DIRS+= lib
+#INSTALLATION_DIRS+= lib
INSTALLATION_DIRS+= ${PKGMANDIR}/man1
+INSTALLATION_DIRS+= ${PREFIX}/share/applications
-ICON_SIZES= 22 24 48 64 128 256
+ICON_SIZES= 22_mono 24 48 64 128 256
.for i in ${ICON_SIZES}
ICONS_DIR${i}+= share/icons/hicolor/${i}x${i}/apps
INSTALLATION_DIRS+= ${ICONS_DIR${i}}
.endfor
-CHROMIUM_PROGS+= chrome
-CHROMIUM_SCRIPTS+= chrome-wrapper
-
-CHROMIUM_FILES+= chrome.1
-CHROMIUM_FILES+= chrome_100_percent.pak
-CHROMIUM_FILES+= chrome_200_percent.pak
-CHROMIUM_FILES+= icudtl.dat
-CHROMIUM_FILES+= keyboard_resources.pak
-CHROMIUM_FILES+= resources.pak
+CHROMIUM_LIBS+= libEGL.so
+CHROMIUM_LIBS+= libGLESv2.so
+CHROMIUM_LIBS+= libVkICD_mock_icd.so
+CHROMIUM_LIBS+= libvulkan.so.1
+.if ${MACHINE_ARCH} != "aarch64"
+CHROMIUM_LIBS+= libvk_swiftshader.so
+CHROMIUM_LIBS+= vk_swiftshader_icd.json
+.endif
do-install:
-.for i in ${CHROMIUM_PROGS}
- ${INSTALL_PROGRAM} ${WRKSRC}/out/${BUILDTYPE}/${i} \
- ${DESTDIR}${PREFIX}/${CHROMIUM_DIR}
-.endfor
-.for i in ${CHROMIUM_SCRIPTS}
- ${INSTALL_SCRIPT} ${WRKSRC}/out/${BUILDTYPE}/${i} \
- ${DESTDIR}${PREFIX}/${CHROMIUM_DIR}
-.endfor
+ ${INSTALL_SCRIPT} ${WRKSRC}/chrome.sh ${DESTDIR}${PREFIX}/bin/${CHROMIUM}
+ ${INSTALL_DATA} ${FILESDIR}/chromium-browser.desktop ${DESTDIR}${PREFIX}/share/applications
+ ${INSTALL_PROGRAM} ${BUILDDIR}/${CHROMIUM} ${DESTDIR}${PREFIX}/${CHROMIUM}
+ ${INSTALL_PROGRAM} ${BUILDDIR}/chromedriver.unstripped ${DESTDIR}${PREFIX}/bin/chromedriver
.for i in ${CHROMIUM_LIBS}
- ${INSTALL_LIB} ${WRKSRC}/out/${BUILDTYPE}/${i} \
- ${DESTDIR}${PREFIX}/${CHROMIUM_DIR}
+ ${INSTALL_LIB} ${BUILDDIR}/${i} ${DESTDIR}${PREFIX}/${CHROMIUM}
.endfor
-.for i in ${CHROMIUM_FILES}
- ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/${i} \
- ${DESTDIR}${PREFIX}/${CHROMIUM_DIR}
-.endfor
- cd ${DESTDIR}${PREFIX}/bin && \
- ${LN} -sf ../${CHROMIUM_DIR}/chrome .
- ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/chrome.1 \
- ${DESTDIR}/${PREFIX}/${PKGMANDIR}/man1
+ ${INSTALL_DATA} ${WRKSRC}/chrome/app/resources/manpage.1.in \
+ ${DESTDIR}/${PREFIX}/${PKGMANDIR}/man1/chrome.1
+ ${INSTALL_DATA} ${BUILDDIR}/*.pak ${DESTDIR}${PREFIX}/${CHROMIUM}
.for i in ${ICON_SIZES}
${INSTALL_DATA} ${WRKSRC}/chrome/app/theme/chromium/product_logo_${i}.png \
${DESTDIR}${PREFIX}/${ICONS_DIR${i}}/chrome.png
.endfor
.for i in locales resources
cd ${WRKSRC}/out/${BUILDTYPE} && \
- ${FIND} ${i} -type f -print | \
- pax -rw -pmp ${DESTDIR}${PREFIX}/${CHROMIUM_DIR}
+ ${FIND} ${i} -type f -print | pax -rw -pmp ${DESTDIR}${PREFIX}/${CHROMIUM}
+.endfor
+.for f in snapshot_blob.bin v8_context_snapshot.bin
+ ${INSTALL_DATA} ${BUILDDIR}/${f} ${DESTDIR}${PREFIX}/${CHROMIUM}
.endfor
-.include "../../graphics/hicolor-icon-theme/buildlink3.mk"
+.include "../../archivers/bzip2/buildlink3.mk"
+.include "../../audio/flac/buildlink3.mk"
.include "../../audio/libopus/buildlink3.mk"
.include "../../audio/speech-dispatcher/buildlink3.mk"
+.include "../../audio/speex/buildlink3.mk"
+.include "../../devel/dconf/buildlink3.mk"
+.include "../../devel/libatomic/buildlink3.mk"
+.include "../../devel/libevent/buildlink3.mk"
+.include "../../devel/libusb1/buildlink3.mk"
+.include "../../devel/nspr/buildlink3.mk"
+.include "../../devel/nss/buildlink3.mk"
+.include "../../devel/re2/buildlink3.mk"
+.include "../../devel/snappy/buildlink3.mk"
+.include "../../devel/zlib/buildlink3.mk"
+.include "../../fonts/fontconfig/buildlink3.mk"
+.include "../../fonts/harfbuzz/buildlink3.mk"
.include "../../graphics/cairo/buildlink3.mk"
-.include "../../print/libcups/buildlink3.mk"
-.include "../../sysutils/dbus/buildlink3.mk"
-.include "../../sysutils/dbus-glib/buildlink3.mk"
-.include "../../x11/libdrm/buildlink3.mk"
-.include "../../textproc/expat/buildlink3.mk"
-.include "../../audio/flac/buildlink3.mk"
.include "../../graphics/freetype2/buildlink3.mk"
+.include "../../graphics/hicolor-icon-theme/buildlink3.mk"
+.include "../../graphics/libexif/buildlink3.mk"
+.include "../../graphics/libwebp/buildlink3.mk"
+.include "../../graphics/png/buildlink3.mk"
+BUILDLINK_DEPMETHOD.clang= build
+.include "../../lang/clang/buildlink3.mk"
+.include "../../lang/compiler-rt/buildlink3.mk"
+.include "../../lang/python/tool.mk"
+.include "../../lang/rust/rust.mk"
+.include "../../misc/usbids/buildlink3.mk"
+#.include "../../mk/jpeg.buildlink3.mk" # libjpeg-turbo
+.include "../../multimedia/dav1d/buildlink3.mk"
+.include "../../multimedia/libaom/buildlink3.mk"
+.include "../../multimedia/libvpx/buildlink3.mk"
+.include "../../multimedia/openh264/buildlink3.mk"
+.include "../../print/libcups/buildlink3.mk"
.include "../../security/libgnome-keyring/buildlink3.mk"
.include "../../security/libsecret/buildlink3.mk"
-.include "../../fonts/harfbuzz/buildlink3.mk"
-# Not yet
-#.include "../../devel/libevent/buildlink3.mk"
-.include "../../graphics/libexif/buildlink3.mk"
-.include "../../fonts/fontconfig/buildlink3.mk"
.include "../../security/libgcrypt/buildlink3.mk"
-.include "../../textproc/jsoncpp/buildlink3.mk"
-.include "../../devel/nspr/buildlink3.mk"
-.include "../../devel/nss/buildlink3.mk"
+.include "../../sysutils/dbus/buildlink3.mk"
+.include "../../sysutils/dbus-glib/buildlink3.mk"
+.include "../../sysutils/desktop-file-utils/desktopdb.mk"
.include "../../sysutils/pciutils/buildlink3.mk"
# Use -lpciutils instead of -lpci for pkgsrc.
BUILDLINK_TRANSFORM+= l:pci:pciutils
-.include "../../graphics/png/buildlink3.mk"
-.include "../../devel/re2/buildlink3.mk"
-.include "../../devel/snappy/buildlink3.mk"
-.include "../../audio/speex/buildlink3.mk"
-.include "../../graphics/libwebp/buildlink3.mk"
+.include "../../textproc/expat/buildlink3.mk"
+.include "../../textproc/icu/buildlink3.mk"
+.include "../../textproc/jsoncpp/buildlink3.mk"
.include "../../textproc/libxml2/buildlink3.mk"
.include "../../textproc/libxslt/buildlink3.mk"
-.include "../../devel/dconf/buildlink3.mk"
.include "../../x11/gtk3/buildlink3.mk"
.include "../../x11/xorgproto/buildlink3.mk"
+.include "../../x11/libdrm/buildlink3.mk"
.include "../../x11/libX11/buildlink3.mk"
+.include "../../x11/libxcb/buildlink3.mk"
.include "../../x11/libXcomposite/buildlink3.mk"
.include "../../x11/libXcursor/buildlink3.mk"
-.include "../../x11/libXext/buildlink3.mk"
.include "../../x11/libXdamage/buildlink3.mk"
+.include "../../x11/libXext/buildlink3.mk"
.include "../../x11/libXfixes/buildlink3.mk"
.include "../../x11/libXi/buildlink3.mk"
.include "../../x11/libXrandr/buildlink3.mk"
.include "../../x11/libXrender/buildlink3.mk"
.include "../../x11/libXScrnSaver/buildlink3.mk"
.include "../../x11/libXtst/buildlink3.mk"
-.include "../../x11/libxcb/buildlink3.mk"
-.include "../../archivers/bzip2/buildlink3.mk"
-#.include "../../mk/jpeg.buildlink3.mk"
-.include "../../devel/libusb1/buildlink3.mk"
-.include "../../misc/usbids/buildlink3.mk"
-#.include "../../textproc/icu/buildlink3.mk"
-.include "../../multimedia/libvpx/buildlink3.mk"
-.include "../../devel/zlib/buildlink3.mk"
-.include "../../multimedia/ffmpeg4/buildlink3.mk"
-.include "../../devel/libatomic/buildlink3.mk"
-# Some C++ files in ui/base/x are not buildable with GCC 8.4.0 on NetBSD/amd64.
-PKG_CC= ${PREFIX}/bin/clang
-PKG_CXX= ${PREFIX}/bin/clang++
-BUILDLINK_DEPMETHOD.clang= build
-.include "../../lang/clang/buildlink3.mk"
-
-.include "../../lang/python/tool.mk"
+.include "../../x11/qt5-qtbase/buildlink3.mk"
+.include "../../mk/compiler/ccache.mk"
.include "../../mk/bsd.pkg.mk"
diff --git a/chromium/PLIST b/chromium/PLIST
index 3c89ac297c..32a2789c5f 100644
--- a/chromium/PLIST
+++ b/chromium/PLIST
@@ -1,215 +1,140 @@
@comment $NetBSD$
bin/chrome
+bin/chromedriver
chrome/chrome
-chrome/chrome-wrapper
-chrome/chrome.1
chrome/chrome_100_percent.pak
chrome/chrome_200_percent.pak
-chrome/icudtl.dat
-chrome/keyboard_resources.pak
+chrome/headless_command_resources.pak
+chrome/headless_lib_data.pak
+chrome/headless_lib_strings.pak
+chrome/libEGL.so
+chrome/libGLESv2.so
+chrome/libVkICD_mock_icd.so
+${PLIST.swiftshader}chrome/libvk_swiftshader.so
+chrome/libvulkan.so.1
+chrome/locales/af.pak
+chrome/locales/af.pak.info
chrome/locales/am.pak
+chrome/locales/am.pak.info
chrome/locales/ar.pak
+chrome/locales/ar.pak.info
chrome/locales/bg.pak
+chrome/locales/bg.pak.info
chrome/locales/bn.pak
+chrome/locales/bn.pak.info
chrome/locales/ca.pak
+chrome/locales/ca.pak.info
chrome/locales/cs.pak
+chrome/locales/cs.pak.info
chrome/locales/da.pak
+chrome/locales/da.pak.info
chrome/locales/de.pak
+chrome/locales/de.pak.info
chrome/locales/el.pak
+chrome/locales/el.pak.info
chrome/locales/en-GB.pak
+chrome/locales/en-GB.pak.info
chrome/locales/en-US.pak
+chrome/locales/en-US.pak.info
chrome/locales/es-419.pak
+chrome/locales/es-419.pak.info
chrome/locales/es.pak
+chrome/locales/es.pak.info
chrome/locales/et.pak
+chrome/locales/et.pak.info
chrome/locales/fa.pak
+chrome/locales/fa.pak.info
chrome/locales/fi.pak
+chrome/locales/fi.pak.info
chrome/locales/fil.pak
+chrome/locales/fil.pak.info
chrome/locales/fr.pak
+chrome/locales/fr.pak.info
chrome/locales/gu.pak
+chrome/locales/gu.pak.info
chrome/locales/he.pak
+chrome/locales/he.pak.info
chrome/locales/hi.pak
+chrome/locales/hi.pak.info
chrome/locales/hr.pak
+chrome/locales/hr.pak.info
chrome/locales/hu.pak
+chrome/locales/hu.pak.info
chrome/locales/id.pak
+chrome/locales/id.pak.info
chrome/locales/it.pak
+chrome/locales/it.pak.info
chrome/locales/ja.pak
+chrome/locales/ja.pak.info
chrome/locales/kn.pak
+chrome/locales/kn.pak.info
chrome/locales/ko.pak
+chrome/locales/ko.pak.info
chrome/locales/lt.pak
+chrome/locales/lt.pak.info
chrome/locales/lv.pak
+chrome/locales/lv.pak.info
chrome/locales/ml.pak
+chrome/locales/ml.pak.info
chrome/locales/mr.pak
+chrome/locales/mr.pak.info
chrome/locales/ms.pak
+chrome/locales/ms.pak.info
chrome/locales/nb.pak
+chrome/locales/nb.pak.info
chrome/locales/nl.pak
+chrome/locales/nl.pak.info
chrome/locales/pl.pak
+chrome/locales/pl.pak.info
chrome/locales/pt-BR.pak
+chrome/locales/pt-BR.pak.info
chrome/locales/pt-PT.pak
+chrome/locales/pt-PT.pak.info
chrome/locales/ro.pak
+chrome/locales/ro.pak.info
chrome/locales/ru.pak
+chrome/locales/ru.pak.info
chrome/locales/sk.pak
+chrome/locales/sk.pak.info
chrome/locales/sl.pak
+chrome/locales/sl.pak.info
chrome/locales/sr.pak
+chrome/locales/sr.pak.info
chrome/locales/sv.pak
+chrome/locales/sv.pak.info
chrome/locales/sw.pak
+chrome/locales/sw.pak.info
chrome/locales/ta.pak
+chrome/locales/ta.pak.info
chrome/locales/te.pak
+chrome/locales/te.pak.info
chrome/locales/th.pak
+chrome/locales/th.pak.info
chrome/locales/tr.pak
+chrome/locales/tr.pak.info
chrome/locales/uk.pak
+chrome/locales/uk.pak.info
+chrome/locales/ur.pak
+chrome/locales/ur.pak.info
chrome/locales/vi.pak
+chrome/locales/vi.pak.info
chrome/locales/zh-CN.pak
+chrome/locales/zh-CN.pak.info
chrome/locales/zh-TW.pak
+chrome/locales/zh-TW.pak.info
chrome/resources.pak
-chrome/resources/inspector/Images/accelerometer-back.png
-chrome/resources/inspector/Images/accelerometer-bottom.png
-chrome/resources/inspector/Images/accelerometer-front.png
-chrome/resources/inspector/Images/accelerometer-left.png
-chrome/resources/inspector/Images/accelerometer-right.png
-chrome/resources/inspector/Images/accelerometer-top.png
-chrome/resources/inspector/Images/applicationCache.png
-chrome/resources/inspector/Images/breakpoint.png
-chrome/resources/inspector/Images/breakpointConditional.png
-chrome/resources/inspector/Images/breakpointConditional_2x.png
-chrome/resources/inspector/Images/breakpoint_2x.png
-chrome/resources/inspector/Images/checker.png
-chrome/resources/inspector/Images/chromeDisabledSelect.png
-chrome/resources/inspector/Images/chromeDisabledSelect_2x.png
-chrome/resources/inspector/Images/chromeLeft.png
-chrome/resources/inspector/Images/chromeMiddle.png
-chrome/resources/inspector/Images/chromeRight.png
-chrome/resources/inspector/Images/chromeSelect.png
-chrome/resources/inspector/Images/chromeSelect_2x.png
-chrome/resources/inspector/Images/deleteIcon.png
-chrome/resources/inspector/Images/domain.png
-chrome/resources/inspector/Images/errorWave.png
-chrome/resources/inspector/Images/errorWave_2x.png
-chrome/resources/inspector/Images/fileSystem.png
-chrome/resources/inspector/Images/forward.png
-chrome/resources/inspector/Images/frame.png
-chrome/resources/inspector/Images/ic_info_black_18dp.svg
-chrome/resources/inspector/Images/ic_warning_black_18dp.svg
-chrome/resources/inspector/Images/navigationControls.png
-chrome/resources/inspector/Images/navigationControls_2x.png
-chrome/resources/inspector/Images/paneAddButtons.png
-chrome/resources/inspector/Images/paneFilterButtons.png
-chrome/resources/inspector/Images/paneRefreshButtons.png
-chrome/resources/inspector/Images/popoverArrows.png
-chrome/resources/inspector/Images/profileGroupIcon.png
-chrome/resources/inspector/Images/profileIcon.png
-chrome/resources/inspector/Images/profileSmallIcon.png
-chrome/resources/inspector/Images/radioDot.png
-chrome/resources/inspector/Images/resizeDiagonal.png
-chrome/resources/inspector/Images/resizeDiagonal_2x.png
-chrome/resources/inspector/Images/resizeHorizontal.png
-chrome/resources/inspector/Images/resizeHorizontal_2x.png
-chrome/resources/inspector/Images/resizeVertical.png
-chrome/resources/inspector/Images/resizeVertical_2x.png
-chrome/resources/inspector/Images/resourceCSSIcon.png
-chrome/resources/inspector/Images/resourceDocumentIcon.png
-chrome/resources/inspector/Images/resourceDocumentIconSmall.png
-chrome/resources/inspector/Images/resourceGlyphs.png
-chrome/resources/inspector/Images/resourceGlyphs_2x.png
-chrome/resources/inspector/Images/resourceJSIcon.png
-chrome/resources/inspector/Images/resourcePlainIcon.png
-chrome/resources/inspector/Images/resourcePlainIconSmall.png
-chrome/resources/inspector/Images/resourcesTimeGraphIcon.png
-chrome/resources/inspector/Images/searchNext.png
-chrome/resources/inspector/Images/searchPrev.png
-chrome/resources/inspector/Images/securityIcons.png
-chrome/resources/inspector/Images/securityIcons_2x.png
-chrome/resources/inspector/Images/settingsListRemove.png
-chrome/resources/inspector/Images/settingsListRemove_2x.png
-chrome/resources/inspector/Images/smallIcons.png
-chrome/resources/inspector/Images/smallIcons_2x.png
-chrome/resources/inspector/Images/speech.png
-chrome/resources/inspector/Images/toolbarButtonGlyphs.png
-chrome/resources/inspector/Images/toolbarButtonGlyphs_2x.png
-chrome/resources/inspector/Images/toolbarItemSelected.png
-chrome/resources/inspector/Images/toolbarResizerHorizontal.png
-chrome/resources/inspector/Images/toolbarResizerVertical.png
-chrome/resources/inspector/Images/touchCursor.png
-chrome/resources/inspector/Images/touchCursor_2x.png
-chrome/resources/inspector/InspectorBackendCommands.js
-chrome/resources/inspector/SupportedCSSProperties.js
-chrome/resources/inspector/Tests.js
-chrome/resources/inspector/accessibility/accessibility_module.js
-chrome/resources/inspector/animation/animation_module.js
-chrome/resources/inspector/audits/audits_module.js
-chrome/resources/inspector/audits2/audits2_module.js
-chrome/resources/inspector/cm_modes/cm_modes_module.js
-chrome/resources/inspector/components_lazy/components_lazy_module.js
-chrome/resources/inspector/console/console_module.js
-chrome/resources/inspector/devices/devices_module.js
-chrome/resources/inspector/devtools_compatibility.js
-chrome/resources/inspector/devtools_extension_api.js
-chrome/resources/inspector/diff/diff_module.js
-chrome/resources/inspector/elements/elements_module.js
-chrome/resources/inspector/emulated_devices/Nexus5X-landscape.svg
-chrome/resources/inspector/emulated_devices/Nexus5X-portrait.svg
-chrome/resources/inspector/emulated_devices/Nexus6P-landscape.svg
-chrome/resources/inspector/emulated_devices/Nexus6P-portrait.svg
-chrome/resources/inspector/emulated_devices/emulated_devices_module.js
-chrome/resources/inspector/emulated_devices/google-nexus-5-horizontal-default-1x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5-horizontal-default-2x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5-horizontal-keyboard-1x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5-horizontal-keyboard-2x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5-horizontal-navigation-1x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5-horizontal-navigation-2x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5-vertical-default-1x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5-vertical-default-2x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5-vertical-keyboard-1x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5-vertical-keyboard-2x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5-vertical-navigation-1x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5-vertical-navigation-2x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5x-horizontal-default-1x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5x-horizontal-default-2x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5x-horizontal-keyboard-1x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5x-horizontal-keyboard-2x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5x-horizontal-navigation-1x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5x-horizontal-navigation-2x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5x-vertical-default-1x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5x-vertical-default-2x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5x-vertical-keyboard-1x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5x-vertical-keyboard-2x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5x-vertical-navigation-1x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5x-vertical-navigation-2x.png
-chrome/resources/inspector/emulated_devices/iPad-landscape.svg
-chrome/resources/inspector/emulated_devices/iPad-portrait.svg
-chrome/resources/inspector/emulated_devices/iPhone5-landscape.svg
-chrome/resources/inspector/emulated_devices/iPhone5-portrait.svg
-chrome/resources/inspector/emulated_devices/iPhone6-landscape.svg
-chrome/resources/inspector/emulated_devices/iPhone6-portrait.svg
-chrome/resources/inspector/emulated_devices/iPhone6Plus-landscape.svg
-chrome/resources/inspector/emulated_devices/iPhone6Plus-portrait.svg
-chrome/resources/inspector/formatter_worker.js
-chrome/resources/inspector/gonzales/gonzales_module.js
-chrome/resources/inspector/heap_snapshot_worker.js
-chrome/resources/inspector/inspector.html
-chrome/resources/inspector/inspector.js
-chrome/resources/inspector/layer_viewer/layer_viewer_module.js
-chrome/resources/inspector/layers/layers_module.js
-chrome/resources/inspector/network/network_module.js
-chrome/resources/inspector/profiler/profiler_module.js
-chrome/resources/inspector/resources/resources_module.js
-chrome/resources/inspector/sass/sass_module.js
-chrome/resources/inspector/screencast/screencast_module.js
-chrome/resources/inspector/security/security_module.js
-chrome/resources/inspector/settings/settings_module.js
-chrome/resources/inspector/snippets/snippets_module.js
-chrome/resources/inspector/source_frame/source_frame_module.js
-chrome/resources/inspector/sources/sources_module.js
-chrome/resources/inspector/terminal/terminal_module.js
-chrome/resources/inspector/text_editor/text_editor_module.js
-chrome/resources/inspector/timeline/timeline_module.js
-chrome/resources/inspector/timeline_model/timeline_model_module.js
-chrome/resources/inspector/toolbox.html
-chrome/resources/inspector/toolbox.js
-chrome/resources/inspector/ui_lazy/ui_lazy_module.js
-chrome/resources/inspector/utility_shared_worker.js
+chrome/resources/accessibility/reading_mode_gdocs_helper/content.js
+chrome/resources/accessibility/reading_mode_gdocs_helper/gdocs_script.js
+chrome/resources/accessibility/reading_mode_gdocs_helper_manifest.json
+chrome/resources/inspector_overlay/inspector_overlay_resources.grd
+chrome/resources/inspector_overlay/main.js
+chrome/snapshot_blob.bin
+chrome/v8_context_snapshot.bin
+${PLIST.swiftshader}chrome/vk_swiftshader_icd.json
man/man1/chrome.1
+share/applications/chromium-browser.desktop
share/icons/hicolor/128x128/apps/chrome.png
-share/icons/hicolor/22x22/apps/chrome.png
+share/icons/hicolor/22_monox22_mono/apps/chrome.png
share/icons/hicolor/24x24/apps/chrome.png
share/icons/hicolor/256x256/apps/chrome.png
share/icons/hicolor/48x48/apps/chrome.png
diff --git a/chromium/TODO b/chromium/TODO
index 3c564d88c8..dff27872de 100644
--- a/chromium/TODO
+++ b/chromium/TODO
@@ -1,8 +1,13 @@
To Do:
-* No html5 audio (video has no problem)
-* 'Passwords cryptographer error was encountered:' and
- 'Failed to receive encryption key from server.' errors
+1) If pulseaudio not run, chromium can't start it, so no sound:
+VERBOSE1:pulse_util.cc(261)] Failed to connect to the context. Error: Connection refused
+WARNING:audio_manager_linux.cc(53)] Falling back to ALSA for audio output. PulseAudio is not available or could not be initialized.
-- This package is affected by several vulnerabilities that are not actively
- tracked here. Usually upstream resolve them when releasing new version.
+If pulseaudio already started, chromium can join it, and has sound.
+This is the workaround, see the files/chrome launch wrapper.
+
+NOTE: OpenBSD (of course), FreeBSD and DragonFly use sndio as default.
+
+2) HID doesn't work on NetBSD.
+NOTE: For this OpenBSD uses fido and libudev-openbsd, FreeBSD uses devd.
diff --git a/chromium/distinfo b/chromium/distinfo
index ea578d386c..f0e2dbdb34 100644
--- a/chromium/distinfo
+++ b/chromium/distinfo
@@ -1,989 +1,1365 @@
$NetBSD$
-RMD160 (chromium-85.0.4183.39.tar.xz) = 1626e0de80261937c0fd5f026f95c7b96978b9f3
-SHA512 (chromium-85.0.4183.39.tar.xz) = 23ac7d6d96a6abaee565b791d75b03fa0b9ff9f3a8bd8f4c42896f345530796485d756ac96f97e566f4c9d054ca3fa9b14d5dc774533f50e5a9e1ea5669d663b
-Size (chromium-85.0.4183.39.tar.xz) = 863788052 bytes
-SHA1 (patch-BUILD.gn) = e72f7dd1355e07c81bb9a8c9322b9652588ca29a
-SHA1 (patch-apps_app__restore__service__browsertest.cc) = 5812e1799ee1e8b641f19fbf50846aa1e552d9bf
-SHA1 (patch-apps_ui_views_app__window__frame__view.cc) = c561b94d336f19be6e3c7561e615ca2af2773d58
-SHA1 (patch-base_BUILD.gn) = 13f057eb2186fe89374e87244edc719a978aa165
-SHA1 (patch-base_allocator_BUILD.gn) = 3be1ccfdb144fa76bd502f2d10921f37f4feddef
-SHA1 (patch-base_allocator_allocator__shim__unittest.cc) = 222e24c8135a2b76ae4640696fa9ca70827eef58
-SHA1 (patch-base_allocator_partition__allocator_page__allocator__internals__posix.h) = 6c88b76d01f85b884cbb654b144edfc18a8fa396
-SHA1 (patch-base_allocator_partition__allocator_partition__alloc__unittest.cc) = e1527f0befb2cea1c9ab329e432956bd99f4672b
-SHA1 (patch-base_base__paths__posix.cc) = 87f4ddecbc870477ee071a013dc762730a3ad515
-SHA1 (patch-base_base__switches.cc) = b91120a47d07aa57edcdf96b75862344465f7523
-SHA1 (patch-base_base__switches.h) = af9d76deb1989d5a8d936fd123066c4a13a43df7
-SHA1 (patch-base_cpu.cc) = 9847614718b3f6ce17250fd16a925cbfbdaa3df2
-SHA1 (patch-base_debug_debugger__posix.cc) = d72911dbe890aa35562d56d7032828df9343b4ce
-SHA1 (patch-base_debug_elf__reader.cc) = c5e20afe9af2e0719d97f423d8337503a2857b43
-SHA1 (patch-base_debug_proc_maps_linux.cc) = 31057e8b098c9d068c44cc4c5b83b06d4e182f78
-SHA1 (patch-base_debug_stack__trace__posix.cc) = a880bba4fdfde36d917dedf4fe20aa2763bdb534
-SHA1 (patch-base_debug_stack__trace__unittest.cc) = f6b33c365995bfa00d491a5d0affc9d7f5e57483
-SHA1 (patch-base_files_file__path__unittest.cc) = 4060b1ec9760a858083d8aac067a98b6e4876ec0
-SHA1 (patch-base_files_file__path__watcher__kqueue.cc) = b424986a59340756042a6af3b2a71af954e63528
-SHA1 (patch-base_files_file__path__watcher__stub.cc) = d7a9939097db676d128c437c39b1cc1635326c34
-SHA1 (patch-base_files_file__path__watcher__unittest.cc) = 7865cd40e1360e88a6ca882a8d1ad9a09fdf86de
-SHA1 (patch-base_files_file__util.h) = a5ee1f16c0688a4a9bd92d39712eaa6de0e5bfdc
-SHA1 (patch-base_files_file__util__posix.cc) = d1902b9ecb7c1269bc51bd3112ab52eb5542ea08
-SHA1 (patch-base_files_file__util__unittest.cc) = af080bea2f0ec30573afeb1b1eb4a62f3cbaf09a
-SHA1 (patch-base_files_scoped__file.cc) = 451d7dbd4f649efad92d22f21312bdee02380b70
-SHA1 (patch-base_i18n_icu__util.cc) = c01d234cd1017c3ebbababbbeb973857db56933f
-SHA1 (patch-base_linux__util.cc) = a0ac77e3f6ac1d9517eb3911e3b18ff512096743
-SHA1 (patch-base_location__unittest.cc) = dc02f59ed221f39187555c568ef639be389d0d1c
-SHA1 (patch-base_logging__unittest.cc) = 85a9a02c40058daceaeec7a2e20ef89d1556441c
-SHA1 (patch-base_memory_discardable__memory.cc) = a614b2bdbc585d6422a62e6d0d11b54e84250b00
-SHA1 (patch-base_memory_discardable__memory__internal.h) = 944c5c04dd2abe84508bf5c696c6f4ed1efc6766
-SHA1 (patch-base_memory_madv__free__discardable__memory__posix.cc) = 05e63cf099ac56268fcebd415ba198e7d4a3950f
-SHA1 (patch-base_memory_platform__shared__memory__region.h) = 74ed12082062687605a9c47688892441972a9316
-SHA1 (patch-base_memory_platform__shared__memory__region__posix.cc) = 8c3717f814fe07a8b0f16a8e948a6acc3db19e89
-SHA1 (patch-base_memory_shared__memory__region__unittest.cc) = 1dcba9633b516575292672daa289b360b621fab1
-SHA1 (patch-base_native__library__posix.cc) = 016c7063cb61d78db8a5fcc57a3b11cbe6736259
-SHA1 (patch-base_native__library__unittest.cc) = b1ba4e8f26208ae4178ed73ce53ec2c0ddf2d343
-SHA1 (patch-base_path__service__unittest.cc) = 037f1c1c3c501c7d5aefbeece081e6745a27a764
-SHA1 (patch-base_posix_can__lower__nice__to.cc) = b9f8e96f09914c94e0a9379bf23487c1c531b257
-SHA1 (patch-base_posix_unix__domain__socket.cc) = 225261fc768b1970ef068b3e622867b8943bf8a8
-SHA1 (patch-base_process_internal__linux.h) = bba9909db59e9a8c2efa9c70bd82b271e46dd8a1
-SHA1 (patch-base_process_kill.h) = d39bb8fefb1bf147e583cb8dcef3fb1a94cb6ecb
-SHA1 (patch-base_process_kill__posix.cc) = 81458c6b6f365a703eb645549d017d68e242da0e
-SHA1 (patch-base_process_launch.cc) = 905420a03afbae972b4c9cfea360aff478e26017
-SHA1 (patch-base_process_launch.h) = 6ae50c3e912ec59332d9d86cecd40d31befd48a8
-SHA1 (patch-base_process_launch__posix.cc) = 422a198ccff4f2be1ce8cf1e098a0001f84f5972
-SHA1 (patch-base_process_memory.cc) = fab139985a507f84eef6867973379fc2a60d0c0b
-SHA1 (patch-base_process_memory.h) = cf79cf4db202a50d656e6649d930fb3b2224048a
-SHA1 (patch-base_process_memory__unittest.cc) = de2fedf80dc576831ff2ac73bbd85d48a483398d
-SHA1 (patch-base_process_process__handle.cc) = eccf2ffee22f48db52634166670251a49887e541
-SHA1 (patch-base_process_process__handle.h) = e1311021f86faf1bfdcc7bd4e0170a464cf02e6e
-SHA1 (patch-base_process_process__handle__netbsd.cc) = 5eb0ebdc35133196323abcd6ae992b2faf05d4ae
-SHA1 (patch-base_process_process__iterator.h) = 40d29fc0dec250b856c63ced71e076988da70a3e
-SHA1 (patch-base_process_process__iterator__netbsd.cc) = b2d67784b44fd97095923b8f5c5791cf8a55597e
-SHA1 (patch-base_process_process__linux.cc) = 181990a7da58132f9c504e733beeabc056466373
-SHA1 (patch-base_process_process__metrics.cc) = 6c3dbe722fd1d0be7eaf51b31a1ad3e8d8554506
-SHA1 (patch-base_process_process__metrics.h) = 4d78b8ed78255cd245a3dd21513b4c47d2b5866d
-SHA1 (patch-base_process_process__metrics__netbsd.cc) = f565deaa846b8b8d0705e7913d2cabb6794df301
-SHA1 (patch-base_process_process__metrics__posix.cc) = ea0928d487bf81152e43dd54544ac7e035e94719
-SHA1 (patch-base_process_process__unittest.cc) = 5a94a120f1b0b087eb17ba98287ad61cbbf52adf
-SHA1 (patch-base_process_process__util__unittest.cc) = 35b4e802d987549d06f1624b5a3d25bba5d9cd79
-SHA1 (patch-base_profiler_register__context.h) = 9665eb0d9c653b93b7a9aabd0f1ac9ffa7959c02
-SHA1 (patch-base_profiler_sampling__profiler__thread__token.cc) = 5eb6e186bc3af5981f27e04fd46b081e53e3b3b0
-SHA1 (patch-base_profiler_sampling__profiler__thread__token.h) = 336cc7f8004c38e74ef1b1420fd51dbc971bf137
-SHA1 (patch-base_profiler_stack__copier__signal.cc) = 8b324d397960e41a08e0a038503ec0f24367451e
-SHA1 (patch-base_profiler_stack__sampling__profiler__unittest.cc) = 5d236807c4d009c0b956e977a7bf714b4d2e5b83
-SHA1 (patch-base_sampling__heap__profiler_sampling__heap__profiler.cc) = 880ebd4358facbb02e503a6c9d7a5515b67573ee
-SHA1 (patch-base_security__unittest.cc) = e819c2d4a457f982a1c1eb0b2b126ca1297e0460
-SHA1 (patch-base_synchronization_lock__impl.h) = 7d326fcdf4360639e7ed73453221a40fbea0621a
-SHA1 (patch-base_syslog__logging.cc) = 696812ef475be9042e9f2a6bcdccbe45075d6655
-SHA1 (patch-base_system_sys__info.cc) = 11e739e00bf1c6a0f9c1c4980963121b82a84449
-SHA1 (patch-base_system_sys__info.h) = d73de0542c98d73675ff6556a77366baaea347b5
-SHA1 (patch-base_system_sys__info__netbsd.cc) = 7dea65e7a6ea8c235e44678c09bd1469b09a5015
-SHA1 (patch-base_system_sys__info__posix.cc) = 2af6df7ec8a45eacac3e60f7bbae981a45b5ffdc
-SHA1 (patch-base_task_thread__pool_environment__config__unittest.cc) = 9d094159372a4351cfee3f10a9cb7c2b3f45c7f3
-SHA1 (patch-base_test_BUILD.gn) = ff950b4533188e2c335198d84db3fc4381076dde
-SHA1 (patch-base_test_launcher_test__launcher.cc) = ce322c7029a39f9af130dc59dac4a95ec487ea5d
-SHA1 (patch-base_test_test__file__util__posix.cc) = f3f917606e225e15e8581a8e1b342ffaa2a19dcf
-SHA1 (patch-base_test_test__suite.cc) = 3e9e8b15ecd72ee597710eaee3dcd0b1d14a7e67
-SHA1 (patch-base_third__party_libevent_BUILD.gn) = b0a35ae323b738d99b7ade952aca4820ee0fb09c
-SHA1 (patch-base_third__party_libevent_event-config.h) = 53d761347a68cdcb7cfc4921dde589c427be7321
-SHA1 (patch-base_third__party_libevent_netbsd_config.h) = 21e16692c4a6c9546afe9b1122b524b68f91b7e6
-SHA1 (patch-base_third__party_libevent_netbsd_event-config.h) = 00bdccd77be2fa4c047bc95d039febcc2281f064
-SHA1 (patch-base_threading_platform__thread.h) = 2672b54a932cb55a9a012b9d4c5fe179275db656
-SHA1 (patch-base_threading_platform__thread__linux.cc) = 5f4c980d3e080319d7ca0544e18696fbc4ea9add
-SHA1 (patch-base_threading_platform__thread__posix.cc) = 95bb6a6d2a26bb130dd526f0ecde6973c9b989c0
-SHA1 (patch-base_threading_platform__thread__unittest.cc) = 42da4cf538f209a00ff65ccb6ab694aee44b9a23
-SHA1 (patch-base_trace__event_malloc__dump__dump__provider.cc) = 167833f44b464acbd619d3278d4c3d69e4003b5c
-SHA1 (patch-base_trace__event_process__memory__dump.cc) = 1ff3c8e78ceebc3d561448bdbb5f64a3d4ea1388
-SHA1 (patch-base_trace__event_process__memory__dump.h) = f846f320170e8f1bd25fd264e40e365de0550688
-SHA1 (patch-build_config_BUILD.gn) = 9bd67c29b3ff0894a6e70b9cd471a6494b744541
-SHA1 (patch-build_config_BUILDCONFIG.gn) = 00da1cfc2bd7aaecae42ec575044f83deab15cfb
-SHA1 (patch-build_config_compiler_BUILD.gn) = ddb99f4c8a7bf620828d609924af8d91b6a3b739
-SHA1 (patch-build_config_compiler_compiler.gni) = ef90c00e0d32f0592436857e45f984e0cf289e7e
-SHA1 (patch-build_config_crypto.gni) = 2a7a0818c56e6d343095647b77d9b562e9313817
-SHA1 (patch-build_config_features.gni) = cbdc14d18a64c3d571f93c0c328eafa0b9987af5
-SHA1 (patch-build_config_linux_dri_BUILD.gn) = c4c682736337d7cfef81daa9418bc29dd5d297f6
-SHA1 (patch-build_config_linux_gtk_BUILD.gn) = a490ceaafb8768c0fe97da37d3389f5e4afe3e64
-SHA1 (patch-build_config_linux_libdrm_BUILD.gn) = 84a07525ba99258f94994f54c3194b0126f25b03
-SHA1 (patch-build_config_linux_nss_BUILD.gn) = 3ac2965427508312ddfdab6d6f84648e7384e34a
-SHA1 (patch-build_config_linux_pangocairo_pangocairo.gni) = 65b4f1123335bab81bd17f13c40788df0505d1fc
-SHA1 (patch-build_config_linux_pkg-config.py) = ce78d722de037b4a94d7a7140429a47cfdf01c07
-SHA1 (patch-build_config_ui.gni) = 0fe3abe5d2ffad98b49e76a14e2d2151271501d4
-SHA1 (patch-build_gn__run__binary.py) = d85dce6107047975e83362e255ca7fbc05b15193
-SHA1 (patch-build_linux_libpci_BUILD.gn) = 042da437f2927d3d436468fd2975391bd6aaf193
-SHA1 (patch-build_linux_unbundle_fontconfig.gn) = 52d45ac1b94f5ca83d04865f4b9b8089e49fcc5b
-SHA1 (patch-build_toolchain_gcc__toolchain.gni) = 8a08f645a3d3750c442e7d4d478b832c445630d4
-SHA1 (patch-build_toolchain_netbsd_BUILD.gn) = b18d4ffd1f92a6df291c2e80ea51136014d2cea4
-SHA1 (patch-chrome_BUILD.gn) = c8249bff7680af4a44f1e61251156921b7d7af54
-SHA1 (patch-chrome_app_BUILD.gn) = 37dcc3f3f76d9bcc4895948f51d8f85f91cb0dba
-SHA1 (patch-chrome_app_chrome__command__ids.h) = 5ea1ca0c62f9a4aba9934a0a0401e4755a1a7897
-SHA1 (patch-chrome_app_chrome__main.cc) = 6158ddb7e58c64b04fc2963bdd39c0b8fe292299
-SHA1 (patch-chrome_app_chrome__main__delegate.cc) = 677fdc403d57d9c4aaed324f02a85d3f70c92d8b
-SHA1 (patch-chrome_app_chromium__strings.grd) = 9c5d14788c85f52857753e2d4dfcc7ca337f7aca
-SHA1 (patch-chrome_app_generated__resources.grd) = 98de3df8cbef130c3e2de3b2a1374c6002187a0e
-SHA1 (patch-chrome_app_google__chrome__strings.grd) = bc5cc2ea9cbb5eab2131cf85466dccf3ac5bb44a
-SHA1 (patch-chrome_app_settings__strings.grdp) = b53dd9122986157824a2cfd50c2943ef417e877e
-SHA1 (patch-chrome_app_shutdown__signal__handlers__posix.cc) = c91d08cf2346aff762b67b25f3c45c5062b8eb7c
-SHA1 (patch-chrome_app_theme_chrome__unscaled__resources.grd) = 1a1f731bd323acaa22da1a945e524e0026fef910
-SHA1 (patch-chrome_app_theme_theme__resources.grd) = 5d0eb0f406ba8aff6fa2ba0c0192d3dcb2286016
-SHA1 (patch-chrome_browser_BUILD.gn) = 230962b69ab3cb05ade96608c82dc2508c414199
-SHA1 (patch-chrome_browser_about__flags.cc) = e6b6b1397840fda3174ea7378c568187b2d7a439
-SHA1 (patch-chrome_browser_after__startup__task__utils.cc) = cd4eec7ede3095f1c19c738306b0a3bb446b5768
-SHA1 (patch-chrome_browser_apps_platform_apps_api_music__manager__private_device__id__linux.cc) = 2ce99b4361265186c53ebbe8aaa2ac7584e74b9f
-SHA1 (patch-chrome_browser_autocomplete_chrome__autocomplete__scheme__classifier.cc) = a681a3bfedfcda19aa2a02085298cf2456c1f1f3
-SHA1 (patch-chrome_browser_background_background__mode__manager.cc) = 764d604ef7c6b68c5479a136a737872e7fd7e4be
-SHA1 (patch-chrome_browser_background_background__mode__optimizer.cc) = 18979e9ec5a3a8bd4ad4dc7f86eab96837b14a77
-SHA1 (patch-chrome_browser_browser__resources.grd) = dc6942b1ed3093043fa229b21cfb97feb036e723
-SHA1 (patch-chrome_browser_chrome__browser__interface__binders.cc) = 55f7ad613102a5f1b37fdf97044d5505abd88e41
-SHA1 (patch-chrome_browser_chrome__browser__main.cc) = 6951ff9003b46a420515e5d018a3044c2677a5fd
-SHA1 (patch-chrome_browser_chrome__browser__main__linux.cc) = f1df429fa593e2f4e5561ab42e93562b9c0d0e6d
-SHA1 (patch-chrome_browser_chrome__browser__main__posix.cc) = c411c3c80fe7a2e16348ee3744c22bd5874dc353
-SHA1 (patch-chrome_browser_chrome__content__browser__client.cc) = ac7241d3983addfe42e6d9cbe34ee279bdfc9917
-SHA1 (patch-chrome_browser_chrome__content__browser__client.h) = 83cff471c1eba5da96e0d22d42cdf9c4b352d009
-SHA1 (patch-chrome_browser_crash__upload__list_crash__upload__list.cc) = d5e90acbc5047449a477a25974f8d649d4b888ce
-SHA1 (patch-chrome_browser_crash__upload__list_crash__upload__list__crashpad.cc) = f1ede1eae801f08f913e6edbb9c44576d7dc669a
-SHA1 (patch-chrome_browser_custom__handlers_protocol__handler__registry.cc) = fd9da5bc24427dd51ebb14dff28837277b785e2d
-SHA1 (patch-chrome_browser_defaults.cc) = 07bbcbee91640bdf34af4174dfcd59c72178548d
-SHA1 (patch-chrome_browser_dev__ui__browser__resources.grd) = b2d32a1aa991dbd1d35871d2f91ea002cb30f387
-SHA1 (patch-chrome_browser_device__identity_device__oauth2__token__service__factory.cc) = a2919f724ae0343c6b784e813266d227584d9a00
-SHA1 (patch-chrome_browser_devtools_devtools__eye__dropper.cc) = 917433ea498335c9f5a6cf56f9ac6e5592a59713
-SHA1 (patch-chrome_browser_diagnostics_diagnostics__writer.h) = 54c1525fc1b80e470b64717e6d98430d23cc02dc
-SHA1 (patch-chrome_browser_download_chrome__download__manager__delegate.cc) = 929a60710d7a610f5a996653f688bb492d509734
-SHA1 (patch-chrome_browser_download_download__commands.cc) = 2c51661a8de5166cb2d4ffbaf9f9808f6b0d2c73
-SHA1 (patch-chrome_browser_download_download__commands.h) = a1b69960d3e6cc5a536406069534e71afb89c47e
-SHA1 (patch-chrome_browser_download_download__item__model.cc) = 7089362fd2a31a9858a271f3abb9764481c07ccd
-SHA1 (patch-chrome_browser_download_download__prefs.cc) = 27f00701b0fc778b1d0d4a6aba41a68aa1c2a6b1
-SHA1 (patch-chrome_browser_download_download__prefs.h) = 1e1ffa3d0aad5361fe837baef4be84fadccfe68b
-SHA1 (patch-chrome_browser_download_download__query.cc) = b39e5f3a2bcb3f02627206b7cd859d5b8536cbb9
-SHA1 (patch-chrome_browser_download_download__shelf__context__menu.cc) = ac62bfb27febdbcc549da7f9461cf7505ec81af7
-SHA1 (patch-chrome_browser_extensions_BUILD.gn) = e82b791c9f1118e125bc724fcfbe3b94f4db2e40
-SHA1 (patch-chrome_browser_extensions_activity__log_activity__log.cc) = f18df4af099247bc751446a4ce6903ab7ff4a045
-SHA1 (patch-chrome_browser_extensions_api_enterprise__reporting__private_chrome__desktop__report__request__helper.cc) = ab67e2ee81ee39d7889fccaf6b2a5c5adee2f88f
-SHA1 (patch-chrome_browser_extensions_api_enterprise__reporting__private_device__info__fetcher.cc) = 548e6315cb088789229a9e995f209449a2b3d0ab
-SHA1 (patch-chrome_browser_extensions_api_enterprise__reporting__private_device__info__fetcher__linux.cc) = 15e4f12de694d8c2e981f57aa5b19e5d2ee6eda0
-SHA1 (patch-chrome_browser_extensions_api_image__writer__private_removable__storage__provider.cc) = e2021957da1abe5fe32f9f8be91177d3697b2e02
-SHA1 (patch-chrome_browser_extensions_api_runtime_chrome__runtime__api__delegate.cc) = 2b4556db7045e6e5fbaf8d5c6fbc93f66a45bb26
-SHA1 (patch-chrome_browser_extensions_api_settings__private_prefs__util.cc) = 99069f5e1838af23bcf801eef6f22bb0a7266f91
-SHA1 (patch-chrome_browser_extensions_api_webrtc__logging__private_webrtc__logging__private__api.cc) = 92827119e650c0411978a769c7a764bd07b2294b
-SHA1 (patch-chrome_browser_extensions_browser__context__keyed__service__factories.cc) = 52a4cda10677ceee96ecb3a5cc1691c54cdac85b
-SHA1 (patch-chrome_browser_extensions_external__provider__impl.cc) = 76435832d0616999d0bc1705cf4f593075ed72af
-SHA1 (patch-chrome_browser_first__run_first__run__dialog.h) = e43148d05ccb38035c838d137b3b1a37d0da5be0
-SHA1 (patch-chrome_browser_first__run_first__run__internal.h) = 7153a82435ddc8b20dae025ee54ba67df64048a6
-SHA1 (patch-chrome_browser_first__run_first__run__internal__posix.cc) = 4bc8db4d80468c8e31e6a2d043deaa642ff04571
-SHA1 (patch-chrome_browser_flag__descriptions.cc) = 3b516e9c60fbe2634dd92cdc775016b9afae1bf6
-SHA1 (patch-chrome_browser_flag__descriptions.h) = f26c2d85cb7e7242ab7ee6c3a5ff8d5ed2d0bc2d
-SHA1 (patch-chrome_browser_media__galleries_fileapi_mtp__device__map__service.cc) = 2d2961e9bcf046296bc1ec2454089de05ae2ffb0
-SHA1 (patch-chrome_browser_media__galleries_media__file__system__registry.cc) = 2e460da47e18c384cfaae3224807674cb706f3a5
-SHA1 (patch-chrome_browser_media_router_discovery_discovery__network__list__posix.cc) = a2252160a73f3a5b4daa68eed4c060e48d3fc18c
-SHA1 (patch-chrome_browser_media_router_discovery_discovery__network__list__wifi__linux.cc) = dc4c35823796b3d003de4155b556af4c83e1016c
-SHA1 (patch-chrome_browser_media_router_providers_wired__display_wired__display__media__route__provider.cc) = 682674bf105c009a9bdb68e871a555c464e3e4e1
-SHA1 (patch-chrome_browser_media_webrtc_webrtc__event__log__uploader.cc) = 7daeff427b08993c846c5b8248e4eba18999edb8
-SHA1 (patch-chrome_browser_media_webrtc_webrtc__log__uploader.cc) = f1f7bf7a1f9ca06a1b7917fee2dfdd403c20505e
-SHA1 (patch-chrome_browser_media_webrtc_webrtc__logging__controller.cc) = dc25b8de25a4403af2f69dc8c8aabb332ebe4969
-SHA1 (patch-chrome_browser_media_webrtc_webrtc__logging__controller.h) = d52a3ee0a13f2b034a500d6b781f4c469599473f
-SHA1 (patch-chrome_browser_memory__details.cc) = c0e5300374302ed99e669087260a085a708a0820
-SHA1 (patch-chrome_browser_memory__details__linux.cc) = d7fbec5291c681a999b5d0dedc76601c665d996b
-SHA1 (patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc) = 6da95155eaeb6ff73d3ebea21b47cdabeb9f2315
-SHA1 (patch-chrome_browser_metrics_chrome__metrics__service__client.cc) = fd17d94748be4cf96f7839487a01bb98f370aeaf
-SHA1 (patch-chrome_browser_metrics_process__memory__metrics__emitter.cc) = b4b80aa7902ffa6ba1f3bb3c530f7efa189c658b
-SHA1 (patch-chrome_browser_native__file__system_chrome__native__file__system__permission__context.cc) = 99224960eeb98a2c86b3a51f215f88caf03953c9
-SHA1 (patch-chrome_browser_net_system__network__context__manager.cc) = b2366198e5554d283b78a93de51adbed807eb90b
-SHA1 (patch-chrome_browser_notifications_notification__display__service__impl.cc) = d06770dafce66984c3a882db213ea052800acc2e
-SHA1 (patch-chrome_browser_password__manager_chrome__password__manager__client.cc) = eb5c82b2e340e3237888f97f8b5abc781954623f
-SHA1 (patch-chrome_browser_password__manager_password__store__factory.cc) = 59edad927b93d3ab668a91f5df92e6fdf5837131
-SHA1 (patch-chrome_browser_performance__monitor_process__metrics__history.cc) = 9eb711002412d58cf03771eb79411927b822aa31
-SHA1 (patch-chrome_browser_performance__monitor_process__metrics__history.h) = 2a93d0b93aca94e6a3bbc76a97f11bc1dec79381
-SHA1 (patch-chrome_browser_plugins_plugin__info__host__impl.cc) = 068cdf30390e69e028aa26c2caa4c702ffc791b0
-SHA1 (patch-chrome_browser_plugins_plugins__resource__service.cc) = 8aee5f5ad960ee5460f87dc07ea67d59c8451f44
-SHA1 (patch-chrome_browser_policy_browser__signin__policy__handler.cc) = ebc78181fd06f60366c4a1431d472b41906c7811
-SHA1 (patch-chrome_browser_policy_chrome__browser__cloud__management__controller.cc) = 1b333772ba44875974c42f24f9961954327f3b2f
-SHA1 (patch-chrome_browser_prefs_browser__prefs.cc) = 1e48895f99f97fd5bc82b4427af94151423363d0
-SHA1 (patch-chrome_browser_prefs_pref__service__incognito__allowlist.cc) = 64f77626a70d93696398234fc4333bc150a6c2d9
-SHA1 (patch-chrome_browser_process__singleton__posix.cc) = 17dd4fa764bcafe804222754fba5276407960925
-SHA1 (patch-chrome_browser_profiles_chrome__browser__main__extra__parts__profiles.cc) = b85d63fa235ffb42d3941f426b6ec2a4ec79961e
-SHA1 (patch-chrome_browser_profiles_profile__attributes__entry.cc) = 523c3f504583eefdccb69d012f5098ed3cde604b
-SHA1 (patch-chrome_browser_renderer__context__menu_render__view__context__menu.cc) = 6880024bab2ccb1400da453b8a04270c953f4ffa
-SHA1 (patch-chrome_browser_renderer__preferences__util.cc) = 3c853129ec05323330935d7d47da85ae44129f11
-SHA1 (patch-chrome_browser_resources_settings_appearance__page_appearance__browser__proxy.js) = b62d0a2e973dbb1dc7cc168566d8917d6a2b28a5
-SHA1 (patch-chrome_browser_resources_settings_appearance__page_appearance__page.html) = 7489c1cff72234d98a71d13ace4142a9d6092072
-SHA1 (patch-chrome_browser_resources_settings_appearance__page_appearance__page.js) = 7e3e8c12018151e0d515fc26d48aa58750a3c370
-SHA1 (patch-chrome_browser_safe__browsing_incident__reporting_incident__reporting__service.cc) = e392c27de47f16e0729b7965a732c5d27adcab58
-SHA1 (patch-chrome_browser_search_search__suggest_search__suggest__service.cc) = 08d0d472982a5fc5316f3a538248fede3174759e
-SHA1 (patch-chrome_browser_send__tab__to__self_receiving__ui__handler__registry.cc) = c152d70b69a7c0d259ba60fcbb8db2037dad41e4
-SHA1 (patch-chrome_browser_send__tab__to__self_send__tab__to__self__client__service.cc) = 53d1de66334eb6c978b501532e3a2b6bc7aab00e
-SHA1 (patch-chrome_browser_sharing_shared__clipboard_feature__flags.cc) = a30f0f2b4369f0871f71fdcf3b65052099d98bf3
-SHA1 (patch-chrome_browser_sharing_shared__clipboard_feature__flags.h) = b70fd726e6396b0724d4dcfa6fd7487f79f0d5bf
-SHA1 (patch-chrome_browser_sharing_sharing__device__registration.cc) = 883cb1aca7d640f77d89fe4962143571f9cad484
-SHA1 (patch-chrome_browser_sharing_sharing__handler__registry__impl.cc) = d0341f1f3703590e3e65ba0f28b492bbed5fc471
-SHA1 (patch-chrome_browser_sharing_sharing__service.cc) = c53f0fcd1e4c40d576caa7d00ed841d63267c93e
-SHA1 (patch-chrome_browser_sharing_webrtc_webrtc__flags.cc) = e4ed1f4672413ef37c20f034fa15fe5db06a6982
-SHA1 (patch-chrome_browser_sharing_webrtc_webrtc__flags.h) = eb3ad1c2465fdaf6782a6247aa4563a1fb551d37
-SHA1 (patch-chrome_browser_signin_signin__util.cc) = b13b258f575214db2d6c648f0c4696142853c820
-SHA1 (patch-chrome_browser_sync_chrome__sync__client.cc) = 29cac07f3581aa6e3efafb2592979a7ad1fbcdca
-SHA1 (patch-chrome_browser_task__manager_sampling_task__group.cc) = 7386104c41470871e3d07ded5183ad98ccc9415c
-SHA1 (patch-chrome_browser_task__manager_sampling_task__group.h) = d4b065d5737808092b912b705bfd6ce663d63704
-SHA1 (patch-chrome_browser_task__manager_sampling_task__group__sampler.cc) = 28a5378b9f3abeb64abfa58b61ab46907cd77e9c
-SHA1 (patch-chrome_browser_task__manager_sampling_task__group__sampler.h) = 08e9895bc3d9da5f6f081f13fe65a20264d46b48
-SHA1 (patch-chrome_browser_task__manager_sampling_task__manager__impl.cc) = 8057d72edb053356ab69ef1a58be5226fcbe4aae
-SHA1 (patch-chrome_browser_task__manager_task__manager__observer.h) = 2f0f4149d1315fd8251881adeb13b56d077c5535
-SHA1 (patch-chrome_browser_themes_theme__service__factory.cc) = 8261c4d8b4806edd2dfc4e04a4e4bcbb3a3f1219
-SHA1 (patch-chrome_browser_tracing_crash__service__uploader.cc) = 7a8a07507fed77f22567fc2e578fdba3b0692f43
-SHA1 (patch-chrome_browser_ui_BUILD.gn) = 91be802f518bfea789ca93feed382123096ef159
-SHA1 (patch-chrome_browser_ui_browser__command__controller.cc) = 883718f9037d66827ae0242d511b8d19fa10d205
-SHA1 (patch-chrome_browser_ui_browser__view__prefs.cc) = 1c3080270c064fd04b5f736a3fb6bd4b6ca91338
-SHA1 (patch-chrome_browser_ui_exclusive__access_exclusive__access__bubble.cc) = 4f7b4eef24810fedd3014d2699d6b443938de88b
-SHA1 (patch-chrome_browser_ui_sad__tab.cc) = 9ab728a56183fcdb5a25c82d75311892054d16cc
-SHA1 (patch-chrome_browser_ui_startup_bad__flags__prompt.cc) = 44d471797137a5494fed17bb0b1dc4fee2322e3a
-SHA1 (patch-chrome_browser_ui_startup_startup__browser__creator.cc) = 7d4f7d4d2bfdbf5f24b854e643aa0010fdf85ac4
-SHA1 (patch-chrome_browser_ui_tab__helpers.cc) = e1fb1c1a1f589c8054c98ff25082bac48ab47f27
-SHA1 (patch-chrome_browser_ui_task__manager_task__manager__columns.cc) = b274d2b25b4bb307eec2ef36b11b47bcd548966c
-SHA1 (patch-chrome_browser_ui_task__manager_task__manager__table__model.cc) = 8179a9c44cb8c0112ee3aa0cd71c126da60292c4
-SHA1 (patch-chrome_browser_ui_views_accelerator__table.cc) = a57d38c3f12520383848e7e857e51d3cfd8eb18a
-SHA1 (patch-chrome_browser_ui_views_chrome__browser__main__extra__parts__views.cc) = 706572c1abf7597c57e60cca299559a23b0eed9f
-SHA1 (patch-chrome_browser_ui_views_chrome__views__delegate.h) = 421fc33feced748041084ba29bf4012e8764f80c
-SHA1 (patch-chrome_browser_ui_views_download_download__item__view.cc) = 44e6c4a6d9a792a0239f1ce61bbc238649650bb3
-SHA1 (patch-chrome_browser_ui_views_first__run__dialog.cc) = aa9386a9ffda085a041b977b4388fc15dd383f95
-SHA1 (patch-chrome_browser_ui_views_frame_browser__frame.cc) = c0fd4424e1c54ebf42e134f47ac293ca14536123
-SHA1 (patch-chrome_browser_ui_views_frame_browser__view.cc) = 7014cda1288d40795f2e27dc321d16795900f01a
-SHA1 (patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.cc) = a03902cb1b5e76e1d1fbd3999fe2f63ef0cd572a
-SHA1 (patch-chrome_browser_ui_views_frame_opaque__browser__frame__view__platform__specific.cc) = e953ed707636c23fadb4e2df4a68849fd68afaff
-SHA1 (patch-chrome_browser_ui_views_frame_system__menu__model__builder.cc) = daa2baab7ad4fde14424c729374728aa0dec5387
-SHA1 (patch-chrome_browser_ui_views_frame_system__menu__model__delegate.cc) = b4be6572e7f994946104f5dcd5420eba729cf8d7
-SHA1 (patch-chrome_browser_ui_views_hung__renderer__view.cc) = 2142a294fbc85b58e81562096c7301852b54655e
-SHA1 (patch-chrome_browser_ui_views_tabs_new__tab__button.cc) = 386921bd630f81a5b202a99331ac6d312934c867
-SHA1 (patch-chrome_browser_ui_views_tabs_tab.cc) = e62ecbd522f3b241e06ac9776e8c70ffa48df0b6
-SHA1 (patch-chrome_browser_ui_views_tabs_tab__drag__controller.cc) = 42ca07718aa0bac361287ed8f9e415810e18f26f
-SHA1 (patch-chrome_browser_ui_webui_about__ui.cc) = a9242eef93202efe0005d9f2ca850b573b21360d
-SHA1 (patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc) = 810720c14b1e8e560db9481332d80b3f7d983a14
-SHA1 (patch-chrome_browser_ui_webui_settings_appearance__handler.cc) = d496f2ea04c0d9dabc439b9d10f9b6b61bd66b16
-SHA1 (patch-chrome_browser_ui_webui_settings_appearance__handler.h) = 7b3ae69772b0adf7da12812ab6865b94af38b2aa
-SHA1 (patch-chrome_browser_ui_webui_settings_settings__localized__strings__provider.cc) = 94f706ea4f3929071903914a1c3d0efafb619038
-SHA1 (patch-chrome_browser_web__applications_components_web__app__file__handler__registration.h) = cbd73857fd6f53c393d839d0b602bdfb879dc1d2
-SHA1 (patch-chrome_browser_web__applications_components_web__app__shortcut.cc) = 00d71add459b359fb13b10fd4c3f8683a7f43e28
-SHA1 (patch-chrome_browser_web__applications_extensions_bookmark__app__finalizer__utils.cc) = 6ae733e2d51287617e799a91ee097c34e794295a
-SHA1 (patch-chrome_common_BUILD.gn) = 365ffa8f77178800e746e6b77371206249522f48
-SHA1 (patch-chrome_common_channel__info.h) = 4a8a1b81ddb7921c14f0222101c439d95461d574
-SHA1 (patch-chrome_common_channel__info__posix.cc) = e6d2abebf394bee0ec4779df27b4a628a369b53c
-SHA1 (patch-chrome_common_chrome__content__client.cc) = f7278a93eb98eb19a8378361366c8a72b35cf8c1
-SHA1 (patch-chrome_common_chrome__features.cc) = 889ef75dd3fc493c4944c3f692f82a165faf1d6f
-SHA1 (patch-chrome_common_chrome__features.h) = 1a0ce8cdb02285cde094ec3eef583de6e09583d2
-SHA1 (patch-chrome_common_chrome__paths.cc) = bd1af75f55204ace018fd12be86c70a49a515f58
-SHA1 (patch-chrome_common_chrome__paths.h) = e4db3ff52e5f04cb8b60b73a81489942a5c90c28
-SHA1 (patch-chrome_common_chrome__paths__internal.h) = ad97c2841fcfe2f94c23663b62c679b09297bb5c
-SHA1 (patch-chrome_common_chrome__switches.cc) = 442254699befd3a6289de423286bf7590d4e8f6b
-SHA1 (patch-chrome_common_chrome__switches.h) = 987d8511c53f9ce86a39c939988895cac4bba77f
-SHA1 (patch-chrome_common_component__flash__hint__file__linux.h) = b1e0d9ce56300ee65dea8edd2f3e4d47fb976a16
-SHA1 (patch-chrome_common_extensions_api_api__sources.gni) = 4310cc777296dd0566019623a4572a0edefb50b4
-SHA1 (patch-chrome_common_extensions_command.cc) = 3017e59114b65e4214c3f9651e5453a3a7360b7d
-SHA1 (patch-chrome_common_features.gni) = d84c204b10cc11db573d7255353421be7532d8ed
-SHA1 (patch-chrome_common_media_cdm__host__file__path.cc) = 0af6ddb359441da08c52545a27638efbf0e3f222
-SHA1 (patch-chrome_common_pref__names.cc) = ecd47761b8d67b89c9d7587a652b76a76f8fb52f
-SHA1 (patch-chrome_common_pref__names.h) = 0b0c647c22467c38dfa2fca54512ba82dd0155a2
-SHA1 (patch-chrome_common_webui__url__constants.cc) = fb16ec019ab537fa88e18de74629d56ff5a8aee6
-SHA1 (patch-chrome_common_webui__url__constants.h) = 5a4b99fb10f7c8a375733bf1950ebda0616225cf
-SHA1 (patch-chrome_renderer_BUILD.gn) = 69f8188d0c78b2fb50b8439a8aa63fee692e9b8c
-SHA1 (patch-chrome_renderer_pepper_pepper__flash__font__file__host.cc) = 47ee741e819e366ed63b2ed2339e8c0b30d0f035
-SHA1 (patch-chrome_renderer_pepper_pepper__flash__font__file__host.h) = d949d7fb44e27956c5214605de1d3e89d4ce3f30
-SHA1 (patch-chrome_service_cloud__print_print__system.cc) = ea7a833612eb5726b5a2040d701ebf759efb77cf
-SHA1 (patch-chrome_test_BUILD.gn) = c6ee922bbd8497f4f9385f06c445fc537288cf9e
-SHA1 (patch-chrome_test_base_chrome__test__launcher.cc) = 5efc836d8836d3f81cc0d81d1a819f4d038c6b77
-SHA1 (patch-chrome_test_base_in__process__browser__test.cc) = 63f11c1e899b19958a06686f342e2b27c37c926b
-SHA1 (patch-chrome_test_base_interactive__ui__tests__main.cc) = f7cc0077e4aaa7f4744baca0305e6563a781fb08
-SHA1 (patch-chrome_test_base_test__browser__window.h) = 6c6886ab534595176e11f7b7ef5c153723ad5644
-SHA1 (patch-chrome_test_base_testing__browser__process.h) = 24a5f0e4a96488367386916d96e9c3a7e8339ca4
-SHA1 (patch-chrome_test_chromedriver_chrome__launcher.cc) = 904a00b7ac2efd62e278c38a3273f3bf7876f997
-SHA1 (patch-chrome_test_chromedriver_chrome_chrome__finder.cc) = 593b52ab045e77db0ac8ed08f94e258afd6c5b3d
-SHA1 (patch-chrome_test_chromedriver_key__converter__unittest.cc) = fa788472b3aa80e444c1fed6894987ff27d6ddb9
-SHA1 (patch-chromecast_BUILD.gn) = 1c7db16a5a278111526e5b3c5dc7b510c3c3a822
-SHA1 (patch-chromecast_bindings_BUILD.gn) = c6c0e7641f493eaaf13b718fea93c2785c014ece
-SHA1 (patch-chromecast_browser_BUILD.gn) = 5ae02434fc92929b87064b070318a4e5e29a9596
-SHA1 (patch-chromecast_browser_cast__browser__main__parts.cc) = 0f1576d5aad05ccd1187714664eba63069f0fb8b
-SHA1 (patch-chromecast_browser_cast__content__browser__client.cc) = bce143f99f9320b9680d50ca7eb8b403951f21d1
-SHA1 (patch-chromecast_browser_metrics_BUILD.gn) = 54f8877c1d93f10222095e0fabe00dbb9635d7a3
-SHA1 (patch-chromecast_browser_tts_tts__controller__impl.cc) = 6802402c0420d7cae766d03d7dd24df6bcccb2e6
-SHA1 (patch-chromecast_chromecast.gni) = 84323b6e6774e35b312af15fd57c685558c17a55
-SHA1 (patch-chromecast_external__mojo_public_cpp_external__mojo__broker.cc) = 7e558c8283e9e37e74759fdf69a624ac159dcbc8
-SHA1 (patch-chromecast_net_BUILD.gn) = 3a62b874d59da9bab4914401d2654cc6daedca0a
-SHA1 (patch-chromecast_renderer_cast__content__renderer__client.cc) = 4159116c778e5732fe675cf7c4d2a1a19893c5a1
-SHA1 (patch-components_BUILD.gn) = 4c426de36eb667dd7dbb5262a0efa4d2221e6c2c
-SHA1 (patch-components_autofill__payments__strings.grdp) = d1df184550e45588c469fef793928bdd34c25ae6
-SHA1 (patch-components_autofill_content_renderer_password__form__conversion__utils.cc) = 32b05528519b56a7e3c8df96787350445c204e80
-SHA1 (patch-components_autofill_core_browser_autofill__external__delegate.cc) = f4eba78865a2b996f0f0ddcc5b26a9b62dc18ddf
-SHA1 (patch-components_autofill_core_browser_personal__data__manager.cc) = 0ba8373fe7d2c02c5e6b75f56d057b5ab7e3464d
-SHA1 (patch-components_autofill_core_common_autofill__payments__features.cc) = c657fb5fdcd53f6669ead9c61fcc3af8fa72fbc1
-SHA1 (patch-components_autofill_core_common_autofill__util.cc) = 9b94e6fd34a063945e4e229cd4130b5ac8e0df92
-SHA1 (patch-components_content__settings_core_browser_website__settings__registry.cc) = 2aefc8e4c046daa1c36fcfbe7b7f36189c987538
-SHA1 (patch-components_cookie__config_cookie__store__util.cc) = ffab7ecdada9297d567001afa281e1eb46fc8a27
-SHA1 (patch-components_crash_content_browser_BUILD.gn) = 4b6ed3b21efff24545561af8e563cd6631175a42
-SHA1 (patch-components_crash_core_common_BUILD.gn) = 6c9d8d990066c4ebbe294caebfbcce34feed534e
-SHA1 (patch-components_cronet_BUILD.gn) = 76bee8acb9c5d4b73dda010068bec8f14b1095c0
-SHA1 (patch-components_discardable__memory_service_discardable__shared__memory__manager.cc) = 4ab41ec675698570befa006af01b863509e56cb7
-SHA1 (patch-components_download_internal_common_base__file.cc) = b5e074f8e5131487325a0b960fc7271cb902e167
-SHA1 (patch-components_exo_BUILD.gn) = 6188b72ffe8ae71b5a96d4ad7d45632f3ee86056
-SHA1 (patch-components_feature__engagement_public_event__constants.cc) = 24e35b7fd1e1cef7c50fa9759b627bb2bd78c838
-SHA1 (patch-components_feature__engagement_public_event__constants.h) = 4f2c44dc5e09d7a0a4a7c906951b611231d9df49
-SHA1 (patch-components_feature__engagement_public_feature__constants.cc) = 90bd259afe8df5d5b6170a1a308545a208c3a368
-SHA1 (patch-components_feature__engagement_public_feature__constants.h) = 3b82ca7d8d6bf7db9236e98db16a9c1be6273d31
-SHA1 (patch-components_feature__engagement_public_feature__list.cc) = 6145c1ccc174d9184797d0c9c5de874e8a84a063
-SHA1 (patch-components_feature__engagement_public_feature__list.h) = fe17e6e7e0cf6b36be13b45375a886d2f9972e91
-SHA1 (patch-components_feedback_anonymizer__tool.cc) = 40a9eb1f14ea76144dbed643e2782769ff2e1891
-SHA1 (patch-components_flags__ui_flags__state.cc) = d5448120ba6ca2eede77f1470a5d779917648650
-SHA1 (patch-components_gcm__driver_gcm__client.h) = 4abc968e317ab093b0fd4d75d814b4a8b9062357
-SHA1 (patch-components_gcm__driver_gcm__client__impl.cc) = 3fb158e91f47969dd7ffbd0cde38b1e9895a3196
-SHA1 (patch-components_gwp__asan_BUILD.gn) = 7e6c4d870338f3073c355c4450924977e91e9705
-SHA1 (patch-components_keyed__service_core_dependency__graph__unittest.cc) = 1703696544c3fb1c5c92c3f563a077b458911563
-SHA1 (patch-components_metrics_BUILD.gn) = 62ffde13482b6d2fadedc86ac29bedeaf3a6a8ae
-SHA1 (patch-components_metrics_drive__metrics__provider__linux.cc) = f7b6b41ceaf7ee90918b5a4ccd47cc8814975270
-SHA1 (patch-components_metrics_metrics__log.cc) = a160453a82185b00a97cf8060ecdd61ede105545
-SHA1 (patch-components_metrics_system__memory__stats__recorder__linux.cc) = 252592bed27d887fd1855ff81cfb80876c91a51a
-SHA1 (patch-components_neterror_resources_neterror.js) = 8572beb889a608c25ccc96a8f03ada711020529a
-SHA1 (patch-components_network__session__configurator_browser_network__session__configurator.cc) = 0407ceb6c8ea3d7b6240271e8b65df9dda609e27
-SHA1 (patch-components_new__or__sad__tab__strings.grdp) = 35fd1c87f18a6b7fd9595a0e540f0692390a6843
-SHA1 (patch-components_os__crypt_os__crypt.h) = 7e685587c4920056be99f678c6c3dc57e996f16a
-SHA1 (patch-components_os__crypt_os__crypt__unittest.cc) = 9e15af1b291fe6aaf190f8b5bff018763498a1a3
-SHA1 (patch-components_password__manager_core_browser_BUILD.gn) = a4ef51776484f5f668824bd1885e6f53d3769342
-SHA1 (patch-components_plugins_renderer_plugin__placeholder.cc) = e9d79f4e69a31b507874fa9c732eb503e910e7cf
-SHA1 (patch-components_policy_BUILD.gn) = 56e3b56a08ad6d243b1e827870e01b4057d83254
-SHA1 (patch-components_policy_core_common_BUILD.gn) = 1dddbe71f826b751fd0e5d9410165d5cd992db9d
-SHA1 (patch-components_policy_core_common_cloud_cloud__policy__util.cc) = 609358a29d29fb2295fd5d9462b39b052ede61aa
-SHA1 (patch-components_policy_core_common_schema.cc) = 512c607aa9856bdac15764769907861a472123c4
-SHA1 (patch-components_policy_tools_generate__policy__source.py) = 0d86ff34076c748e6aa16ca057644bc53adbc760
-SHA1 (patch-components_previews_core_previews__features.cc) = 8a803ebc27e7918c9f9f2105427703e9fb3bdd10
-SHA1 (patch-components_safe__browsing_core_resources_BUILD.gn) = f8c89dea1340b1687cacbf9aa2af9830af3ca7d2
-SHA1 (patch-components_safe__browsing_core_resources_gen__file__type__proto.py) = 1deb75c1ff57d5165349c8883f985788822ccc6a
-SHA1 (patch-components_security__interstitials_content_captive__portal__blocking__page.cc) = e1087bf1d9554f1734a64c5ac45f32ae9897d6a6
-SHA1 (patch-components_security__interstitials_content_utils.cc) = c0d39fa8573716f6e65087c051bf7fc66bbf4d5e
-SHA1 (patch-components_services_font_BUILD.gn) = 7a4b672f9e0225cac87177cf481956148e31df74
-SHA1 (patch-components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.cc) = 91728690c6bf5cfbedc154317bf556d2059b3da1
-SHA1 (patch-components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.h) = d5671b02030170202f101446c47a9170563d5f70
-SHA1 (patch-components_signin_features.gni) = 4ea7ce7cfa9fc5f3aac9d1f4d528a55cafbdca8d
-SHA1 (patch-components_storage__monitor_BUILD.gn) = 2f688ed4bdde39abc44a7f1f6d0125c2bfaf3cae
-SHA1 (patch-components_storage__monitor_removable__device__constants.cc) = 652b0190cd625f0a6cdc23c14679efb38253b8bf
-SHA1 (patch-components_storage__monitor_removable__device__constants.h) = 83ea9b1395d9b485ba66ffe1b5cdef5a24f86e66
-SHA1 (patch-components_storage__monitor_storage__monitor__netbsd.cc) = 3231557707093ce0bc9cf3e1dabcef7e552aee9b
-SHA1 (patch-components_storage__monitor_storage__monitor__netbsd.h) = 626f4071db6d3e74b48cbf4f51843282965aac7c
-SHA1 (patch-components_sync__device__info_local__device__info__util.cc) = f5eda2503a8d158d9c8e88e41c3b6102a89a48e3
-SHA1 (patch-components_sync__device__info_local__device__info__util__linux.cc) = 24406ab4e749f09423ce8dbcd63d405f46a8ffc3
-SHA1 (patch-components_update__client_update__query__params.cc) = d4942f0d034d0fd4733e5bc03009653ee82d907a
-SHA1 (patch-components_url__formatter_spoof__checks_idn__spoof__checker.cc) = 297e52327b43779b6924410dec6d0f0b04d25cd0
-SHA1 (patch-components_url__matcher_regex__set__matcher.cc) = 158e155f59dd99f4dabf7262810e2abbcb9c5da7
-SHA1 (patch-components_url__matcher_url__matcher__factory.cc) = 2cf8de8713a477c11d307228b536f0234e89c502
-SHA1 (patch-components_viz_common_features.cc) = f0276dad86b0895f33e57ed180ca28f3bf71a54a
-SHA1 (patch-components_viz_common_gpu_dawn__context__provider.cc) = 63e027b907b7a91e41df70def7231611028c3c00
-SHA1 (patch-components_viz_host_host__display__client.cc) = 80746db079157fcdaa88c1f09aeff5491e8e5464
-SHA1 (patch-components_viz_host_host__display__client.h) = 28be16517afc44e603f30208128dae54319bc080
-SHA1 (patch-components_viz_service_display__embedder_software__output__surface.cc) = aa8b9c2330fe215a61397ff0a94ec185ace5236a
-SHA1 (patch-components_viz_service_display__embedder_software__output__surface.h) = 57dd76e18ca15ea8cfc058effc3e4dac415b95b6
-SHA1 (patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.cc) = e8c12473ca42751a672464c115b0688f01792f81
-SHA1 (patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.h) = 302df92beb18f2d2b91b4a76b256efb5dee62ece
-SHA1 (patch-components_viz_test_fake__output__surface.cc) = 2d1d6c61b03a6fba94a8b03eafb258ebb377a8f1
-SHA1 (patch-components_viz_test_fake__output__surface.h) = c589b1db7d198100827ecfa18c302e36ad1993f1
-SHA1 (patch-components_viz_test_mock__display__client.h) = 348d76c7182073219c8aafa0eeb6433b8a37c840
-SHA1 (patch-components_webcrypto_algorithms_test__helpers.cc) = 5b1352977d558846c12a38464d71010d2dbe54b4
-SHA1 (patch-content_app_content__main__runner__impl.cc) = b0a3063efec0f08eda9fce32480cdf7510726541
-SHA1 (patch-content_browser_BUILD.gn) = 521d87cd70eca9693ba438d574813bd068174441
-SHA1 (patch-content_browser_browser__main__loop.cc) = ddea55c6d160be28725649048cfad5982c28c6d6
-SHA1 (patch-content_browser_child__process__launcher__helper__linux.cc) = 02dd8e0160446e3ae99bbdee41a6c4767436d44c
-SHA1 (patch-content_browser_compositor_viz__process__transport__factory.cc) = 4aad01acd1eb3977e93562edaa1882f87763e3f3
-SHA1 (patch-content_browser_devtools_protocol_system__info__handler.cc) = f462e24c66b533b2c283967a6cbfbb733a9424ea
-SHA1 (patch-content_browser_gpu_gpu__process__host.cc) = a5cfd6b52684c8d563d5552a650cfac640dd4ff5
-SHA1 (patch-content_browser_memory_swap__metrics__driver__impl__linux.cc) = 880a690bd9ac7c42adc52d09cbc10ca5ed287b14
-SHA1 (patch-content_browser_ppapi__plugin__process__host.cc) = 95f19f6100e71f548051c2d041b12edb69228c21
-SHA1 (patch-content_browser_ppapi__plugin__process__host__receiver__bindings.cc) = 46c4b0686a55eaef4ec7e1216d207198e686d855
-SHA1 (patch-content_browser_renderer__host_input_input__device__change__observer.cc) = 016eedf60f4db46e7c77f4e5649c9464a255053b
-SHA1 (patch-content_browser_renderer__host_pepper_pepper__file__io__host.cc) = bca09a7301c0e57a28192569b95c045f364542c7
-SHA1 (patch-content_browser_renderer__host_render__message__filter.cc) = 90561548697716805302700c7bdca6e0f3272cf8
-SHA1 (patch-content_browser_renderer__host_render__message__filter.h) = 59f618620f236e0b4c625da337114f66752c05c7
-SHA1 (patch-content_browser_renderer__host_render__process__host__impl.cc) = cb01ae8f963d49ed4b9d7e1e0b251fe8d545c774
-SHA1 (patch-content_browser_renderer__host_render__process__host__impl.h) = 1ba1d31502b2e41e117d8b268d40c511d8cd3ef6
-SHA1 (patch-content_browser_renderer__host_render__view__host__impl.cc) = 1ecdb9990102881c539af188ba040fb509ec677b
-SHA1 (patch-content_browser_renderer__host_render__widget__host__view__aura.cc) = d7d957175df8ea2b79b5162b06c6d713887a5dfc
-SHA1 (patch-content_browser_renderer__host_render__widget__host__view__event__handler.cc) = 9e2935f8f095b08256525d87c4c8a02e6c3f8f6b
-SHA1 (patch-content_browser_scheduler_responsiveness_jank__monitor.cc) = 14f474b19f798d65f3cd1601edea5a43e572a77a
-SHA1 (patch-content_browser_scheduler_responsiveness_native__event__observer.cc) = f2efbb346c48f7e10297e425b544ebb7beb79e70
-SHA1 (patch-content_browser_scheduler_responsiveness_native__event__observer.h) = 7a409fa424444c84c2f57eac4cbc341367dbc038
-SHA1 (patch-content_browser_utility__process__host.cc) = 42d524d5d636fc7fbf9e4f845fb0449dba77646f
-SHA1 (patch-content_browser_utility__process__host__receiver__bindings.cc) = 54d005bbd83e23aa872ec89fb25841cf7bb7b9d6
-SHA1 (patch-content_browser_v8__snapshot__files.cc) = 9a2d43996f3fe3e0d0fce36893f709cc79213025
-SHA1 (patch-content_browser_webui_shared__resources__data__source.cc) = d825bfb4b92916bc95d8e6465c781d3e5123eebe
-SHA1 (patch-content_child_BUILD.gn) = 1c02dc672f2170900f9fc6a56b0ebce3857e8271
-SHA1 (patch-content_common_BUILD.gn) = 1e6ab0b0f7112c7268bc0bbae059de83d562b875
-SHA1 (patch-content_common_common__sandbox__support__linux.cc) = 5a49734c83c882715e06a5083d7177f71cb771bf
-SHA1 (patch-content_common_features.gni) = 1baee00583342ee5c77d4ca54ef5f41c7c53f8d8
-SHA1 (patch-content_gpu_BUILD.gn) = 5230f18bb03789c1491d3d366882d7dc8cd1bf45
-SHA1 (patch-content_gpu_gpu__main.cc) = e783c1fb8c16a874ef008958fb7900cbd46872a3
-SHA1 (patch-content_gpu_gpu__sandbox__hook__linux.cc) = 62dadb0141bc8b87eb7a875fa9c3ecaafe4dfb0f
-SHA1 (patch-content_ppapi__plugin_BUILD.gn) = 46d27de0acced9dd32e4e1ec02146c934b9a7394
-SHA1 (patch-content_ppapi__plugin_ppapi__blink__platform__impl.cc) = f154123615c628fc9ed20b66bc24a1dd85e65ada
-SHA1 (patch-content_ppapi__plugin_ppapi__blink__platform__impl.h) = 6788dd2ab881a6e9017e51a52baf65bfea485729
-SHA1 (patch-content_public_app_content__main__delegate.cc) = 051763f2e402693e9870f349e4ef98dc781914a9
-SHA1 (patch-content_public_app_content__main__delegate.h) = 332de034ad7472652db4a54d6732ed84a15eb1e8
-SHA1 (patch-content_public_common_child__process__host.h) = 4cb743c9cdda553b46d5c9212a0026cba632bd36
-SHA1 (patch-content_public_common_common__param__traits__macros.h) = 82287c957e42aea3c393ec4b9ce9f262e8957c16
-SHA1 (patch-content_public_common_content__constants.cc) = 51c9ba86d9569fc141bea39a16fd33399fe74dbb
-SHA1 (patch-content_public_common_content__constants.h) = 7cd5aac75d35cee44de991dce10418491756ba29
-SHA1 (patch-content_public_common_content__features.cc) = 969c0e799631952cb7480cee93dc3d0678296dfc
-SHA1 (patch-content_public_common_content__switches.cc) = 1aa48db4c61179993e40803aa75a02f2aa5f546a
-SHA1 (patch-content_public_common_content__switches.h) = 09fc924513a2c33b4de165952fee05e2d11af3e6
-SHA1 (patch-content_public_common_use__zoom__for__dsf__policy.cc) = b60a8bdba9f44a42f5eb9ec236414383a3e25458
-SHA1 (patch-content_public_test_browser__test__base.cc) = 3d6ef627fe894c6ab0e7cae857ecb37f8c4a4d3a
-SHA1 (patch-content_public_test_content__browser__test.cc) = 5e34acfe902bce562333bd5882cbf2972c1e4318
-SHA1 (patch-content_public_test_mock__render__thread.cc) = 4b963f81295e96111b8544ef4122b0b9904a17b2
-SHA1 (patch-content_renderer_BUILD.gn) = 38e6b49b0e5d826ece3bb1895c4d3c6d9d3d9175
-SHA1 (patch-content_renderer_media_audio_audio__device__factory.cc) = e199f8f6b280adcc77139add3d2bc18a74f35f97
-SHA1 (patch-content_renderer_render__process__impl.cc) = 287447b2e4488d478b3a32ae5b6770bfdb39f120
-SHA1 (patch-content_renderer_render__thread__impl.cc) = a318333b7c7c3015854a0a9b9446007ce13ffd4e
-SHA1 (patch-content_renderer_renderer__blink__platform__impl.cc) = d02329122bb95cd49eae3294c504d3b5487262df
-SHA1 (patch-content_renderer_renderer__blink__platform__impl.h) = ad7f909316c2828136e316690913387c698ce913
-SHA1 (patch-content_renderer_renderer__main__platform__delegate__linux.cc) = 63bb654031453e0e1d380da114823c56495df677
-SHA1 (patch-content_shell_BUILD.gn) = 851f5b9cad88b68edcca991eea7a5a0a6efa3ab6
-SHA1 (patch-content_shell_app_shell__main__delegate.cc) = 6c5873b7237bb1e6e0d0cc20fb0d5027f390dab8
-SHA1 (patch-content_shell_browser_shell__browser__context.cc) = 46d3d8b024533c55633bd6851b2ef089da40bc28
-SHA1 (patch-content_shell_browser_shell__browser__main__parts.cc) = 9d7e497a9220834c26b624e3bdc3f1321a3831fc
-SHA1 (patch-content_shell_browser_web__test_web__test__browser__context.cc) = 7f53a23989ba098f8e08fdadb6d25d22bf1ae60c
-SHA1 (patch-content_shell_browser_web__test_web__test__browser__main__parts.cc) = b03dee1b4e2b77acb028bb4e467cd4ec925641f0
-SHA1 (patch-content_shell_renderer_web__test_test__runner.cc) = f2d50d6ed0d42c6b8ef19b0e6b9ea3430344259e
-SHA1 (patch-content_test_BUILD.gn) = 8f4c160fb07800f6f8d170cb6e69a2dd9df8aece
-SHA1 (patch-content_test_content__test__suite.cc) = d9a5c2746ff292f166ff8b3a453d85318ba8914b
-SHA1 (patch-content_utility_BUILD.gn) = 61fc382f842a9afeee7150bac8315bbece055410
-SHA1 (patch-content_utility_utility__blink__platform__with__sandbox__support__impl.cc) = f6b9891cccf3d4b0c345511238b8a847847b9042
-SHA1 (patch-content_utility_utility__blink__platform__with__sandbox__support__impl.h) = 082b4679e57b3eb6e511c54b40832bc330b44cf4
-SHA1 (patch-content_zygote_BUILD.gn) = 59d5d005bccfd2e827440f2aa0bbfcf99ac5109c
-SHA1 (patch-content_zygote_zygote__main__linux.cc) = 72e3d7970ae7111d3ecaff709dda804aecd8eb16
-SHA1 (patch-device_gamepad_BUILD.gn) = 64c1de808368b670b676a6f68ce3e1f528c502a9
-SHA1 (patch-device_gamepad_gamepad__provider.cc) = 1e53e25b90464ca7150aec277f8c92b7c13aec90
-SHA1 (patch-device_gamepad_hid__writer__linux.cc) = 687d21e901cffe80ffd6335ef72b3e5c93e5dee6
-SHA1 (patch-extensions_browser_api_declarative__webrequest_webrequest__action.cc) = 01c82235379465cc2694cca11b1019b8bbe21af9
-SHA1 (patch-extensions_browser_api_messaging_message__service.cc) = 4f4cb6a0799ab04070ca334de87a554ce7e4ea9d
-SHA1 (patch-extensions_browser_api_networking__private_networking__private__delegate__factory.cc) = bbb492e2c20015e8fd6c9a2bdd1f15165cc55639
-SHA1 (patch-extensions_browser_api_web__request_form__data__parser.cc) = 6ba473cc3dd84679934203f8e5c90de05857cbf8
-SHA1 (patch-extensions_browser_browser__context__keyed__service__factories.cc) = 64450430bb24d722fbbd7c84beb6260319aef264
-SHA1 (patch-extensions_common_api___permission__features.json) = e3ef3f7eb6c4cd9781c00f24a81b23981310fa1b
-SHA1 (patch-extensions_common_api_runtime.json) = fef2b8a2da35542fdf6a7bf3938bc4133c2dbeb4
-SHA1 (patch-extensions_common_feature__switch.cc) = 98731493ee6d3692e6999715a2fa99e19bdfacc4
-SHA1 (patch-extensions_common_features_feature.cc) = 7263205b6acc205eed52bd1113906ede6e3d50b5
-SHA1 (patch-extensions_common_image__util.cc) = 69272d97b71c2b1caef22bc30a12c6cda158e644
-SHA1 (patch-extensions_common_stack__frame.cc) = 71b96538599d892fd3b72c2b8f164d9733794913
-SHA1 (patch-extensions_renderer_bindings_api__binding__util.cc) = 3ad71a562b328edccc50055d3e3a2d7adddd8831
-SHA1 (patch-extensions_shell_BUILD.gn) = 5c430486b321f6d123be8618421d15f998a2bd1f
-SHA1 (patch-extensions_shell_app_shell__main__delegate.cc) = 1f6da31c4dd9251be37b8dcc211c0edb057efa89
-SHA1 (patch-extensions_shell_browser_api_runtime_shell__runtime__api__delegate.cc) = ea4e4aafeef4956414567576c7754fd6d3a7da95
-SHA1 (patch-extensions_shell_browser_shell__extensions__api__client.cc) = 1a187b599b9ba07386e0dba6864e72d11665b281
-SHA1 (patch-extensions_shell_browser_shell__extensions__api__client.h) = 654ef59b12d693b412496741a45e891aab073a6b
-SHA1 (patch-google__apis_gcm_engine_heartbeat__manager.cc) = ef0c0cb68d34c7cb64cb54e801f3bc0efb434d01
-SHA1 (patch-gpu_BUILD.gn) = a9bacb756642a0bfee306ce096460902ca421b02
-SHA1 (patch-gpu_command__buffer_common_gpu__memory__buffer__support.cc) = db5466dd1d9957d5bc5a676a308678b7d3a069e5
-SHA1 (patch-gpu_command__buffer_service_BUILD.gn) = dd3dbc4281a098321ac6cf00a1d2e8a70b14161e
-SHA1 (patch-gpu_command__buffer_service_external__vk__image__backing.cc) = 5029a1fceccccb19429b321b9526b490a9ccdf93
-SHA1 (patch-gpu_command__buffer_service_external__vk__image__backing.h) = 6d1372d112ccfbd5d91b4b37303663f4b2a65751
-SHA1 (patch-gpu_command__buffer_service_external__vk__image__gl__representation.cc) = f813c102749b0fbe9b19724c6b872a1eefb67353
-SHA1 (patch-gpu_command__buffer_service_program__manager.cc) = b4c819dc563b165fbb755631559d5e0195f29d10
-SHA1 (patch-gpu_command__buffer_tests_gl__copy__texture__CHROMIUM__unittest.cc) = 9e5e72785c21e3738b4fcf3ba0d3adf05f00f21c
-SHA1 (patch-gpu_command__buffer_tests_gl__test__utils.cc) = 8bdff4208c5d6d473b6e2c9b64a116c23727e9c9
-SHA1 (patch-gpu_command__buffer_tests_gl__test__utils.h) = 3792861fc94643c9a103e465e656321a3d8cc5d8
-SHA1 (patch-gpu_config_BUILD.gn) = 7450b7f049a3809cd04208d27e00b143e04ef2db
-SHA1 (patch-gpu_config_gpu__control__list.cc) = 8b611a866f11587b5a62cbc47d87fa58c500af57
-SHA1 (patch-gpu_config_gpu__test__config.cc) = 97791ea497c7875005335278145397d1288f7e4f
-SHA1 (patch-gpu_gles2__conform__support_BUILD.gn) = 63b37d90639e66a47c067a00ddeb1750ccec003e
-SHA1 (patch-gpu_gles2__conform__support_native_BUILD.gn) = 408cfad254927f6b9a71fe8c62bb326d8663cc4a
-SHA1 (patch-gpu_ipc_common_BUILD.gn) = 29f0b407f37a619e53315d92dd3748aa08bd7c77
-SHA1 (patch-gpu_ipc_common_gpu__memory__buffer__support.cc) = 7a29d1afb79e9bc7d0874bf68198e9b2b103856e
-SHA1 (patch-gpu_ipc_common_gpu__memory__buffer__support.h) = 8401731dba08878d331a3c3620eff62fd09db97f
-SHA1 (patch-gpu_ipc_service_BUILD.gn) = 3e65784e6dc3d12b0f16001a533a535b90bc40dc
-SHA1 (patch-gpu_ipc_service_gpu__init.cc) = 9536c4e5d822e218fe5f24f140849d183a91dfae
-SHA1 (patch-gpu_ipc_service_gpu__memory__buffer__factory.cc) = c47b5eacbb242612c9d578e55e5343865fa5811a
-SHA1 (patch-gpu_ipc_service_gpu__watchdog__thread.cc) = 3e3f15145aeb580ee6419e0b362dcf4aaaf10138
-SHA1 (patch-gpu_ipc_service_gpu__watchdog__thread.h) = 71e3c0977f9cbcde43541e776d2022f89f2c1cde
-SHA1 (patch-gpu_khronos__glcts__support_BUILD.gn) = f2fed06c9505ea9fa896543d9715d8590cb3d0d9
-SHA1 (patch-gpu_tools_compositor__model__bench_BUILD.gn) = 0dd52291380e81b35eda70c6c290d3769161c4b4
-SHA1 (patch-gpu_vulkan_features.gni) = 12399803c07c8a5f2ae39ee7da620085c1b53c9b
-SHA1 (patch-gpu_vulkan_vulkan__function__pointers.cc) = 6762cfe2d69ed514f8fa9e822ea49d74c1b89838
-SHA1 (patch-gpu_vulkan_vulkan__function__pointers.h) = 7ffd127f8ca3fd620e962c23272476b04c92a640
-SHA1 (patch-headless_BUILD.gn) = 7dd3ffa6465e79d1ef77e7dffb4dd2e7a21e6fd3
-SHA1 (patch-headless_lib_browser_headless__browser__main__parts.h) = 152c3d806093418eb70099af57e505eeeb593646
-SHA1 (patch-headless_lib_browser_headless__browser__main__parts__linux.cc) = 36b7f80117c7d521c23085932a18e2a346f80d9a
-SHA1 (patch-headless_lib_browser_headless__content__browser__client.cc) = 3bfe040cb3d7561bb1ebcc8335d56d68a228eea0
-SHA1 (patch-headless_lib_browser_headless__content__browser__client.h) = 8e39ff0ff7ba5f19bfde78f6f955835b1a279f7a
-SHA1 (patch-headless_lib_browser_headless__request__context__manager.cc) = fb257dcc79febf32a0a443974266afb8c7af40dd
-SHA1 (patch-headless_lib_headless__content__main__delegate.cc) = bffa4e906a9324eb1ce01c57dd1fcc5c18ca52eb
-SHA1 (patch-headless_lib_headless__content__main__delegate.h) = 2bbfed4f1572e5bfa546ad2912299ffad56d8fab
-SHA1 (patch-headless_lib_headless__macros.h) = 2c847fd32cb13d539ddbcf87d6174670cd3c750c
-SHA1 (patch-ipc_ipc__channel.h) = 2e06057c4c149e01dabdd8869071c413bd3f919d
-SHA1 (patch-ipc_ipc__channel__common.cc) = 27b29e09fb5e6c5bef1a7540cd9dd48cf37ce562
-SHA1 (patch-ipc_ipc__channel__mojo.cc) = 57977ba7c45a374657eeacd9416481a2f8c25942
-SHA1 (patch-ipc_ipc__message__utils.cc) = 22b27b639b15b5b8957d20d5e77c3f39e53663b4
-SHA1 (patch-ipc_ipc__message__utils.h) = 5d6abc7fdc7cc7d6d9fdcf2a1f5edaa82e7c95f7
-SHA1 (patch-media_audio_BUILD.gn) = 3cd99725d32bf65c9d637c91f7b04b23be1b216a
-SHA1 (patch-media_audio_alsa_audio__manager__alsa.cc) = 403e9e3b353eca301060ff6400fbdb31f8a4529d
-SHA1 (patch-media_audio_audio__features.cc) = f83e6c372f9e020f08aaceeea71e3d676b5762d9
-SHA1 (patch-media_audio_audio__input__device.cc) = e7356fa9143b5fcedc1323813cc61f1c5e992ac6
-SHA1 (patch-media_audio_audio__manager.cc) = 3ffede53336a80e6571d6ebde790758b6d382231
-SHA1 (patch-media_audio_audio__manager.h) = cb80832f05a939c05bdf0b131a39578454149535
-SHA1 (patch-media_base_BUILD.gn) = 52f73db8752649704a6a844ddc5e8a78d8fcff0a
-SHA1 (patch-media_base_audio__latency.cc) = c541dbdafd94bb27ca750d4a89417db2f3f2f92d
-SHA1 (patch-media_base_media__switches.cc) = da7a94b15098e0667f4a7c1e3d400374478720a4
-SHA1 (patch-media_base_media__switches.h) = 0cc2be81e981bddd5e2756829f0424997e5a34c0
-SHA1 (patch-media_base_scopedfd__helper.h) = b16a5d668aa88f1794771c671e62d1c02ba9ed18
-SHA1 (patch-media_base_status.cc) = 66e1b053b0d7d5720bad8d2abb415c3ecdae0729
-SHA1 (patch-media_base_video__frame.cc) = 5e21bfde6aa0f9baa72eab00d473682686e41421
-SHA1 (patch-media_base_video__frame.h) = 0df3acaa55ca0062589dde43109e3ddd8a915360
-SHA1 (patch-media_capture_BUILD.gn) = 20882ecb8243df2ed456853f81393154970043a7
-SHA1 (patch-media_capture_video_create__video__capture__device__factory.cc) = 9c0ba2dd74d88ad7c69c3924b6b5f168cf5a2560
-SHA1 (patch-media_capture_video_fake__video__capture__device__factory.cc) = af091547d0cda95ec02bc9ac3d223ee366e6fd87
-SHA1 (patch-media_capture_video_file__video__capture__device__factory.cc) = 42533e2618403297924178789c9bbfa884fb7b87
-SHA1 (patch-media_capture_video_linux_v4l2__capture__delegate.cc) = 300d5ff66cddec93ac26e285fd5f082ebcb6db10
-SHA1 (patch-media_capture_video_linux_v4l2__capture__delegate.h) = 340a3b5477609881da24f24a81c48871bc9c646b
-SHA1 (patch-media_capture_video_linux_v4l2__capture__device__factory__linux.cc) = 586362142534760a3be636e61e5d8f2fd3812f06
-SHA1 (patch-media_capture_video_linux_v4l2__capture__device__linux.cc) = f7a6226290c4951c716dafdb1b0a02301c884a98
-SHA1 (patch-media_capture_video_video__capture__buffer__pool__impl.cc) = 359394632ef891ce21a7193edfa452c5ffe6efa2
-SHA1 (patch-media_capture_video_video__capture__device__client.cc) = 6047ea168e08ffd516bd6d8279e87a59551b5f91
-SHA1 (patch-media_cast_BUILD.gn) = 8d6ae8281ce8c5452630eefb3b397dbc61d31256
-SHA1 (patch-media_cdm_library__cdm_cdm__paths.gni) = 6efd3332151c25dc85f332b78e706bf1cd7d87b1
-SHA1 (patch-media_filters_vp9__parser.h) = 489e6e4be3e67c7854a56a6d34945c15d0e543e6
-SHA1 (patch-media_gpu_buffer__validation.cc) = b407533635f9cb3ad6695dc727ea3c92d7d0072b
-SHA1 (patch-media_gpu_chromeos_BUILD.gn) = c026e51fb93fb752ddea9935b0dc9d68c814f9af
-SHA1 (patch-media_gpu_vaapi_BUILD.gn) = 14c00a2b93a298790fd7b3862abe84b084389481
-SHA1 (patch-media_media__options.gni) = ed9fad13925617ef4b2d05dcca3ef4488efb0a6a
-SHA1 (patch-media_mojo_clients_mojo__video__encode__accelerator.cc) = 7e76837a1541e0c78a743c2ad84879a32a55ca6c
-SHA1 (patch-media_mojo_mojom_video__frame__mojom__traits.cc) = 0dc5a83b01b6a2a59c5aa5405964f1d737ac0ced
-SHA1 (patch-media_mojo_services_gpu__mojo__media__client.cc) = ee9296c6482144fb6dd0edca48edb85402f5dec9
-SHA1 (patch-media_video_fake__gpu__memory__buffer.cc) = 5358aec1ec540f49e45c7f14a8aed26471dbd6bf
-SHA1 (patch-media_video_gpu__memory__buffer__video__frame__pool.cc) = cb6f3448793cfbc2a7478c389bc325b6da5961c3
-SHA1 (patch-mojo_core_BUILD.gn) = 54178069c571f84bfdadadb38a6a0bbb8970e54c
-SHA1 (patch-mojo_core_test_BUILD.gn) = 0ed6728fdcecd252d874b66a201a1163e10ffb2a
-SHA1 (patch-mojo_public_c_system_thunks.cc) = 22b8cef924e73ae1f82b8c69e91a36f906babb8d
-SHA1 (patch-mojo_public_cpp_platform_socket__utils__posix.cc) = 6d5da9491f006976981ad6cfab0778089c42ef40
-SHA1 (patch-mojo_public_js_mojo__bindings__resources.grd) = 4ee262d78a94d74787ad31d6997086126baadd5e
-SHA1 (patch-mojo_public_tools_bindings_mojom.gni) = 7c76b9e5cab9cc45ea18a06e476d456899c8da3c
-SHA1 (patch-net_BUILD.gn) = 1b0977e0f491a56dab435ec0450aaf4c3fd25613
-SHA1 (patch-net_base_address__tracker__linux.cc) = baa7d10a15f621f302b8d44aa3728669dafc19df
-SHA1 (patch-net_base_address__tracker__linux.h) = 3e5445edac55d13c1b4a846381b31ffbd314d315
-SHA1 (patch-net_base_address__tracker__linux__unittest.cc) = 7ad8f166bffe412dab3a2ab036d385f36fa580b8
-SHA1 (patch-net_base_network__change__notifier.cc) = 98dd5a3f4208da10b85d2cac49b16a07171527dd
-SHA1 (patch-net_base_network__change__notifier.h) = f74d14b91d052cd447f731f91759ace02821bc8b
-SHA1 (patch-net_base_network__interfaces__posix.h) = 59c90bb17b201be400d5046aff0857c78aa3027e
-SHA1 (patch-net_cert_cert__verify__proc.cc) = 5a9406b1090074c76f3708c317aaa921c6527062
-SHA1 (patch-net_cert_test__root__certs.h) = a8d5c9f575be0a44969a75675197901504689142
-SHA1 (patch-net_disk__cache_blockfile_disk__format.h) = 1296811201cb7cb13f92536344344eef5fad5e1a
-SHA1 (patch-net_dns_address__sorter__posix.cc) = 03a63005e623120c914304d5ecb7842b21e8e996
-SHA1 (patch-net_dns_dns__config__service__posix__unittest.cc) = 91faa7ed79b4463285eefd7808da29f5041152d3
-SHA1 (patch-net_dns_dns__reloader.cc) = 0c1b0f139544c4d15c5108f124e0e15a8be139b0
-SHA1 (patch-net_dns_dns__util.cc) = 821573f3e830ca35c550d97f2774ca28d7f18dda
-SHA1 (patch-net_dns_host__resolver__proc.cc) = cb10c269efbeaa346067010ca1868f9cb6c9434b
-SHA1 (patch-net_features.gni) = 162004a88de6df8e5cf016437396efdfea6f1199
-SHA1 (patch-net_http_http__auth__gssapi__posix.cc) = 6adc418c50b97a8f418450e794ac16a8c726d839
-SHA1 (patch-net_http_http__auth__gssapi__posix.h) = c4ed2ec90aef8150b2a3b1e6147bfe8eef2b1079
-SHA1 (patch-net_nqe_network__quality__estimator__unittest.cc) = 67b5a6d1d14204df0b26321d3a3b239b512bf7f8
-SHA1 (patch-net_proxy__resolution_configured__proxy__resolution__service.cc) = aa626de91583b0c481f8f280dfa17f9242ceafd4
-SHA1 (patch-net_proxy__resolution_proxy__config__service__linux.cc) = 3cde42cdc5ca41ae77f5f2d848cdde26440cf544
-SHA1 (patch-net_socket_socket__posix.cc) = 63249bafca8ed30eb62e207e685032b59367b2b2
-SHA1 (patch-net_socket_socks5__client__socket.cc) = 8376cd59ede2da8440955dd868dd55774c9d86e3
-SHA1 (patch-net_socket_tcp__socket__posix.cc) = a97a3305bbe2baecd70f2bfda94fad8d3153e554
-SHA1 (patch-net_socket_udp__socket__posix.cc) = effa3a128332bf923ed99d04d5d077b4bbf79cfa
-SHA1 (patch-net_socket_udp__socket__posix.h) = 12a05e0e416ea63651e28b63e187b899a02e00dc
-SHA1 (patch-net_socket_unix__domain__client__socket__posix.cc) = 32b98b8bea5ebf4ae78f6b6a6647e904c7a2120f
-SHA1 (patch-net_third__party_quiche_BUILD.gn) = 49fe1d69cb9f975f827d24c147d7d539fa05d306
-SHA1 (patch-net_tools_cert__verify__tool_cert__verify__tool.cc) = 59a721c0c95c04256f271ff670d999d5a8a92f66
-SHA1 (patch-net_tools_quic_quic__http__proxy__backend.cc) = 6849b6cf17ac8ee960712e0a2da78a1b2431d94e
-SHA1 (patch-net_traffic__annotation_network__traffic__annotation.h) = b455c882632c1ed4a86897b85357de19a0ea9671
-SHA1 (patch-net_url__request_url__fetcher.cc) = 93fcc86984df08cf7c90cfce65d5011b31fbe479
-SHA1 (patch-net_url__request_url__fetcher.h) = 04ef88e8b25ac14875f69e989475ec2149fbfa3c
-SHA1 (patch-net_url__request_url__request__context.cc) = a0e7d5bbff64156d6fe8374bcc720d420a45b25f
-SHA1 (patch-net_url__request_url__request__context.h) = 17e16665a43aff40d699076da9043a105d0f88b9
-SHA1 (patch-net_url__request_url__request__context__builder.cc) = d180c91114804b8cab2cb6545d688044a4ac97a8
-SHA1 (patch-pdf_BUILD.gn) = 5f3af2a8012df5f0459bdc684bf9fdebff1c282f
-SHA1 (patch-pdf_pdfium_pdfium__engine.cc) = 8721598d1a8392b1346241c9339047f2dbb99c44
-SHA1 (patch-ppapi_proxy_flash__resource.cc) = fb8511d8485a0de6daa05e54ffe44bd1ee064873
-SHA1 (patch-printing_BUILD.gn) = a58dc707cd8ca1c89d65dc863d76d1f08d86d2e4
-SHA1 (patch-printing_buildflags_buildflags.gni) = 0c728155aaf6b0d7c9c6f272c076c90846b3754c
-SHA1 (patch-printing_cups__config__helper.py) = df44b7c51ce80d13661b73857eb5170eefd2a9d7
-SHA1 (patch-printing_print__settings.h) = 7510b7ead9e6c4ac2332d27c9b0807f2c0e1133a
-SHA1 (patch-printing_print__settings__conversion.cc) = b9e371a2b88db6f427fffca37c2cfa63af95c978
-SHA1 (patch-remoting_BUILD.gn) = 5d9d0470fb10873e601ff6bec3bd9645d98bad6d
-SHA1 (patch-remoting_base_chromoting__event.cc) = 2a80316c94f1160485ce29fa504735f159f182d6
-SHA1 (patch-remoting_client_display_BUILD.gn) = 679dce961bd83d7c015c75a1ec95ee78ef2517cc
-SHA1 (patch-remoting_client_display_sys__opengl.h) = 2f0e504720db44edafc96b64c9501387820c69e4
-SHA1 (patch-remoting_host_BUILD.gn) = ee11696a415d7d7d5567b67e2a00acfc14e7f7b9
-SHA1 (patch-remoting_host_evaluate__capability.cc) = 9668af86e4bfcd407c8d8f1ea43c658c3503b601
-SHA1 (patch-remoting_host_host__attributes.cc) = 2383d506470cd2b154aa6086d345febfec5acc64
-SHA1 (patch-remoting_host_host__details.cc) = 4fcb0d0d3c7b65fe6df281346b8fc4a3b6ea85ce
-SHA1 (patch-remoting_host_host__main.cc) = dbe575cb380894db0e174a05f96d9a81b9a3c7d0
-SHA1 (patch-remoting_host_it2me_it2me__native__messaging__host__main.cc) = ce888dec202c9961dc26f40d48a34eb013783759
-SHA1 (patch-remoting_host_me2me__desktop__environment.cc) = efd030aae2168b6308994e80fa41ee8fb4a565b7
-SHA1 (patch-remoting_host_remoting__me2me__host.cc) = 6e7cf1316fcdc22dcb3fe3d47c9730db54db80f8
-SHA1 (patch-remoting_host_switches.cc) = 65551fa1e12b572f0440d7da1c60b9b9b53f08a8
-SHA1 (patch-remoting_host_switches.h) = 1e8e7d80c329ff50e8a12d380565aacd847de156
-SHA1 (patch-remoting_protocol_BUILD.gn) = 18907b6784aeb569f9a508831cbcb88e47d6e9d0
-SHA1 (patch-remoting_remoting__options.gni) = 08f077313dc694fea74f31e8b17438d3c8a65d7e
-SHA1 (patch-remoting_resources_remoting__strings.grd) = fcbe36922144263e694307ad7446180860fa1219
-SHA1 (patch-sandbox_linux_BUILD.gn) = 5b01c0a7e152d95be5ec49ee43f8ac97d28ef683
-SHA1 (patch-sandbox_linux_services_init__process__reaper.cc) = dd4836bf09bcb9c2a12d2a156acf14486a3dbd73
-SHA1 (patch-sandbox_linux_services_libc__interceptor.cc) = 9eb0bae43afba50a28397b4c808ab8c779e0bf96
-SHA1 (patch-services_audio_BUILD.gn) = 058b8edd884c4df609dc0268a2678b387136fc6f
-SHA1 (patch-services_device_BUILD.gn) = bc2c0755954927abafb8725b6c583472af5d6311
-SHA1 (patch-services_device_battery_BUILD.gn) = 384ec66cca82141abc479745284d8af10d8d3dbb
-SHA1 (patch-services_device_geolocation_BUILD.gn) = 91aa15bc4ec85d1917f6f91018ece9faba96fc11
-SHA1 (patch-services_device_geolocation_location__arbitrator.cc) = 5e978d3a078da8d81aa90cdaf8a133bb77a9ff6e
-SHA1 (patch-services_device_hid_BUILD.gn) = 33e01ab0e044f0301a70d24279b4388e832919fc
-SHA1 (patch-services_device_hid_hid__connection__netbsd.c) = 5ccbdbe57c258da2870193c73e6d6335dcd05437
-SHA1 (patch-services_device_hid_hid__connection__netbsd.h) = 080437aaa6b6f63ac14e1ae591066d3d6a23691e
-SHA1 (patch-services_device_hid_hid__service__netbsd.cc) = 307198bc302188ecdf225048106914059e4a51f8
-SHA1 (patch-services_device_hid_hid__service__netbsd.h) = 25a45c77db5ff906f166cbc10f6f88f684a13738
-SHA1 (patch-services_device_serial_BUILD.gn) = 49f7da5deb7cf757d0097a0c413ad031dc88e65d
-SHA1 (patch-services_device_serial_serial__device__enumerator.cc) = 1f00409060b6cd7973cc8ebb45eff11a4101918e
-SHA1 (patch-services_device_serial_serial__io__handler__posix.cc) = cf412736d1437690f3b0451ba079e57ff276cc44
-SHA1 (patch-services_device_time__zone__monitor_time__zone__monitor__linux.cc) = 59f53e2d6435049d5fe11ca702438532ddc0a72e
-SHA1 (patch-services_device_wake__lock_power__save__blocker_BUILD.gn) = 52df05a2248beb30e16a91a8b537a24dcfaa6b49
-SHA1 (patch-services_network_BUILD.gn) = f8f9d28efc2e060820f5218c52922fde005e4768
-SHA1 (patch-services_network_network__context.cc) = 531335bc66439601712bf9f2e09c0377de8c5173
-SHA1 (patch-services_network_network__sandbox__hook__linux.cc) = 536a73fcce61f9ad71bd1a9a41b4b8e1e93424e9
-SHA1 (patch-services_network_network__service.cc) = b944dd085c2ef078abd84d4a0dff20719dd5b408
-SHA1 (patch-services_network_network__service.h) = c42482d84ddf9356dd8aef9b4e7884a6dbfaa93e
-SHA1 (patch-services_network_public_mojom_BUILD.gn) = 6fee062a1ed5aacc35034e9214a7979ea642bf99
-SHA1 (patch-services_resource__coordinator_memory__instrumentation_queued__request__dispatcher.cc) = 928e61f1532716d91bd51b80d69df4c1f63797cd
-SHA1 (patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics.h) = 89cbc67a8fca7e4898e002d5a2d5a1a811f9dac0
-SHA1 (patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics__linux.cc) = 76af73602573de2a397632aa571f85c4a3b12b77
-SHA1 (patch-services_resource__coordinator_public_mojom_BUILD.gn) = 0cafa3c7ea96ff9e2cbb1818675fa64556cee4f8
-SHA1 (patch-services_service__manager_embedder_BUILD.gn) = 3db35679c372c8528414468c942c1db01938da65
-SHA1 (patch-services_service__manager_embedder_main.cc) = 0319241270a0c1676a402f98f34e564a42119369
-SHA1 (patch-services_service__manager_embedder_set__process__title__linux.h) = dfe5378162c9d315066ecf4ad220c70f8acc362d
-SHA1 (patch-services_service__manager_public_cpp_service__executable_BUILD.gn) = a2d85a58a9a6fd44780ed0d287e99a69da5476a9
-SHA1 (patch-services_service__manager_sandbox_switches.cc) = 63165936074fe13a477c1c9a6b38f61302b2259c
-SHA1 (patch-services_service__manager_sandbox_switches.h) = 99f461ac47ceb2e29e9f81c2312d8b25218b33e0
-SHA1 (patch-services_tracing_public_cpp_perfetto_trace__time.cc) = aae8ae29bc9881333a0d23d4b0a59cd38eb2d4f0
-SHA1 (patch-services_tracing_public_cpp_perfetto_trace__time.h) = b77f9556e4cb34c59caecece644fee5211ec5ba8
-SHA1 (patch-services_tracing_public_cpp_stack__sampling_tracing__sampler__profiler.cc) = b7d55c0ec32d4f08c721ee281e042e3e4298522e
-SHA1 (patch-services_video__capture_broadcasting__receiver.cc) = 8d41954f6678661eece8bb9497d90001ac44c01a
-SHA1 (patch-services_viz_privileged_mojom_compositing_display__private.mojom) = 717ac8043aa5f6f9b75402565625af55f1ff8409
-SHA1 (patch-skia_BUILD.gn) = bc3f4d76be6f545a78314d1e8eee2a0a7a274e4b
-SHA1 (patch-skia_ext_SkMemory__new__handler.cpp) = 1cc7b37f21de758d6ca2d1d17618877eded880b9
-SHA1 (patch-skia_ext_platform__canvas.h) = aa26996e557f92ea731b00c9a82d269fcb39d725
-SHA1 (patch-third__party_angle_BUILD.gn) = a6b0b7610e92f9772b01c94842326031260f4329
-SHA1 (patch-third__party_angle_gni_angle.gni) = 1a23e68752166bab210359e45e1034505597c7b5
-SHA1 (patch-third__party_angle_src_compiler_translator_InfoSink.h) = f36ef8a2d5f96ba2501bf6ffec109f88066ba746
-SHA1 (patch-third__party_angle_src_gpu__info__util_SystemInfo__internal.h) = a34390713559c8232a995b45610887c891941c8a
-SHA1 (patch-third__party_angle_src_gpu__info__util_SystemInfo__libpci.cpp) = 2c7c40027a6a4ae4656994eb400c6390770c157d
-SHA1 (patch-third__party_angle_src_gpu__info__util_SystemInfo__linux.cpp) = e2b02cedbac129492bd053884fdea1bbd4411f95
-SHA1 (patch-third__party_angle_src_gpu__info__util_SystemInfo__x11.cpp) = e4c81ffcf132d2eef817400693669c877600f929
-SHA1 (patch-third__party_angle_src_libANGLE_Display.cpp) = 9fd77a86a80015312498a1653f53f67030142a46
-SHA1 (patch-third__party_angle_src_libANGLE_renderer_driver__utils.cpp) = 79f129491934672ddd59e0f4f31f1ea7f353289c
-SHA1 (patch-third__party_angle_src_libANGLE_renderer_driver__utils.h) = db0bb65f8f4a4075ec3d2b2004704c6066ce77b4
-SHA1 (patch-third__party_angle_src_libANGLE_renderer_vulkan_DisplayVk__api.h) = 404cb9fa776a1d850be8781e27d721b3df2c33bc
-SHA1 (patch-third__party_angle_src_libGLESv2.gni) = 48352630a264e07eafae19c088b8a7813d446322
-SHA1 (patch-third__party_angle_src_tests_BUILD.gn) = 60c01adaf9c833104ebc56584265892308ab2462
-SHA1 (patch-third__party_angle_third__party_glmark2_BUILD.gn) = 63e9f368a985097ae93d6a31bc19e6f1d0b0cb52
-SHA1 (patch-third__party_angle_third__party_vulkan-loader_src_loader_loader.c) = 1d1271c68a10bbeb16c116ab1fcdc0c0c8a4c946
-SHA1 (patch-third__party_angle_third__party_vulkan-loader_src_loader_vk__loader__platform.h) = 27aeec4b72ce8565e2927cb330f0e8b75f9f7a49
-SHA1 (patch-third__party_angle_third__party_vulkan-validation-layers_src_layers_vk__loader__platform.h) = e5adc870572c09ec385a7b77a9b958089df1cf0c
-SHA1 (patch-third__party_angle_util_BUILD.gn) = 8fdd80a761960961c9c572338c8c2a8c676a0ef3
-SHA1 (patch-third__party_blink_public_mojom_BUILD.gn) = ba5e0cc29b0848ef516fee310c219153395da876
-SHA1 (patch-third__party_blink_renderer_BUILD.gn) = b2ae1c3c2d1f853c2ba560eea3cb4f27899a2adf
-SHA1 (patch-third__party_blink_renderer_bindings_scripts_bind__gen_style__format.py) = 83bf19f2d693780312482681700e5e02c686bf53
-SHA1 (patch-third__party_blink_renderer_controller_BUILD.gn) = 804b16546826372ef8dbf2d02ce124441747649b
-SHA1 (patch-third__party_blink_renderer_controller_blink__initializer.cc) = cba080a6eaeb26aa19bf2ac272113cb11a406132
-SHA1 (patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.cc) = f71d4af121111279bfad8a97304e9f7669f5648d
-SHA1 (patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.h) = 3a2c86fc99358ee87564ac52e0ca5103741e3855
-SHA1 (patch-third__party_blink_renderer_core_editing_editing__behavior.cc) = d54be7dcbc90c744eb0e8fb166ce954613301d8f
-SHA1 (patch-third__party_blink_renderer_core_html_canvas_canvas__async__blob__creator.cc) = 5d9646ad678731d58d6360cae07fe5b0da61980d
-SHA1 (patch-third__party_blink_renderer_core_html_forms_internal__popup__menu.cc) = db9dc80c3a97c4659eecbba1d574f4a9a92b2dec
-SHA1 (patch-third__party_blink_renderer_core_inspector_inspector__memory__agent.cc) = a0218a28347b3eb007d117df0ce1290c49e0bee7
-SHA1 (patch-third__party_blink_renderer_core_layout_BUILD.gn) = ad1a6fb681249b35e5daa71923d960412ff4a63c
-SHA1 (patch-third__party_blink_renderer_core_layout_layout__view.cc) = 86342ad3714395291808f9f9ecc35726c519bd37
-SHA1 (patch-third__party_blink_renderer_core_paint_paint__layer.cc) = 24ef922831fe81da07ec2e7e923fdd7d1a0f3bdc
-SHA1 (patch-third__party_blink_renderer_core_scroll_scrollbar__theme__aura.cc) = 26320911d72b6515a32c5d6a0d890d15ddf5c530
-SHA1 (patch-third__party_blink_renderer_modules_mediastream_processed__local__audio__source.cc) = a2ebec266e1ac2debb9f7ade9d51d25bff1f934c
-SHA1 (patch-third__party_blink_renderer_platform_BUILD.gn) = e917209cfb629b3bc82224ebe86ec7a76cf2dcc1
-SHA1 (patch-third__party_blink_renderer_platform_fonts_font__cache.cc) = a5fe471e5d17dd6e11789852b6967bd3e2dd0323
-SHA1 (patch-third__party_blink_renderer_platform_fonts_font__cache.h) = fa820f32ca9e49a2d49a327a59520da9da4ee97c
-SHA1 (patch-third__party_blink_renderer_platform_fonts_font__description.cc) = 0492b8b2b105b3e8c9dcd547df3a043d943f3fb2
-SHA1 (patch-third__party_blink_renderer_platform_fonts_font__metrics.cc) = c931d64466d2c5f350d7b0ce0883beac6ab140ad
-SHA1 (patch-third__party_blink_renderer_platform_fonts_font__unique__name__lookup.cc) = 848930f5f7a03e6e4b9002a2866f1a3bd3d5fe38
-SHA1 (patch-third__party_blink_renderer_platform_fonts_skia_font__cache__skia.cc) = 00ca533b5575411e46f907bc703efa3355ff61ef
-SHA1 (patch-third__party_blink_renderer_platform_graphics_video__frame__submitter.cc) = 8a8b3b1669889b637e07f6af79fdc6ae4d445d3e
-SHA1 (patch-third__party_blink_renderer_platform_scheduler_BUILD.gn) = fb6213f3f30b532ea6cac4d12f3a4f9b815ff96f
-SHA1 (patch-third__party_blink_renderer_platform_wtf_container__annotations.h) = 2b757a2ea56f88de6abdfd058195721d0de55476
-SHA1 (patch-third__party_blink_renderer_platform_wtf_stack__util.cc) = 6356595258f7552efcf18aa023ad332d7e2243c5
-SHA1 (patch-third__party_boringssl_BUILD.gn) = acf74e4fe7338a1079c03c818848d93b16a4b7b6
-SHA1 (patch-third__party_boringssl_src_crypto_bio_socket__helper.c) = 20f4c682f294c8f1a14e113e97935466db746417
-SHA1 (patch-third__party_boringssl_src_crypto_ex__data.c) = 0c7079bcf07b08a2dc9e51b08a07bc22d5a30d75
-SHA1 (patch-third__party_boringssl_src_include_openssl_thread.h) = 94030e7b1566fbf7d903706a26bcf848b7f54dc4
-SHA1 (patch-third__party_breakpad_BUILD.gn) = 56fff9083f53a6713ea10cef43f2fd4ce8cb0647
-SHA1 (patch-third__party_breakpad_breakpad_src_common_simple__string__dictionary.h) = 5c656539ef5ea3db5d5fd144496b25f7c21c4383
-SHA1 (patch-third__party_brotli_common_transform.c) = 298324ad2137c9880e880ecfd71b9d9c63ca274e
-SHA1 (patch-third__party_cacheinvalidation_src_google_cacheinvalidation_include_types.h) = e8d3cce3b614f79eea2c3d7c56644ffb0e9a3d6c
-SHA1 (patch-third__party_closure__compiler_compile__js.gni) = c076323acb014b7befd17a6d6a061622b516c3cf
-SHA1 (patch-third__party_crashpad_crashpad_build_crashpad__buildconfig.gni) = a59929f6a93a4a750c1cbfd73e5207e9877842b3
-SHA1 (patch-third__party_crashpad_crashpad_client_BUILD.gn) = 237779833fae9dbb1b6a4a6602fb7492470c7ae3
-SHA1 (patch-third__party_crashpad_crashpad_client_crashpad__client__posix.cc) = da9412cd64b4141a8d852233eca2d14f7078edb4
-SHA1 (patch-third__party_crashpad_crashpad_util_misc_address__types.h) = d0e0e870516eb9cb6c908850c9486bda9239085a
-SHA1 (patch-third__party_crashpad_crashpad_util_misc_capture__context.h) = 4485a77275630dddd0f3884b43f2ea5990ae8b37
-SHA1 (patch-third__party_crashpad_crashpad_util_misc_metrics.cc) = f929a3bb9453d29761efc82b3a5dbfa4c6b45153
-SHA1 (patch-third__party_crashpad_crashpad_util_misc_uuid.cc) = 0eaeecd167bdbad874bff27e5dab987b3f79643c
-SHA1 (patch-third__party_crashpad_crashpad_util_posix_close__multiple.cc) = ae1526489e899cb7be787217137bcfb601a18a0c
-SHA1 (patch-third__party_crashpad_crashpad_util_posix_drop__privileges.cc) = 94fa1ad6adebacb3dc6d0514c108eddfbc8cd3fe
-SHA1 (patch-third__party_crashpad_crashpad_util_posix_signals.cc) = fe7599b10c36408ed540b04ec40fa33bf80f2a58
-SHA1 (patch-third__party_crashpad_crashpad_util_posix_symbolic__constants__posix.cc) = a4be7680a8758f306cedd3632e9ae9a7f10b4421
-SHA1 (patch-third__party_crc32c_BUILD.gn) = 5f61a7a0a493eacd3e36e84ccd17c8d532400e34
-SHA1 (patch-third__party_dav1d_BUILD.gn) = 0770a1c3dfc2ce84e43aec40df82051ba898699d
-SHA1 (patch-third__party_dawn_scripts_dawn__component.gni) = 9abdbea19eb01a24f1951ccd7050c0edd17e069e
-SHA1 (patch-third__party_dawn_scripts_dawn__features.gni) = bb85bc5556f289cc35bd295f88320a2485d587f8
-SHA1 (patch-third__party_dawn_src_common_BUILD.gn) = ccb77221d2abeea426ae045bc65347c5e76a6f0e
-SHA1 (patch-third__party_dawn_third__party_gn_glfw_BUILD.gn) = 90cf9585274838122e7af6b8d94f262a36a0bb4e
-SHA1 (patch-third__party_devtools-frontend_src_BUILD.gn) = 668327780779b4795816941a8f84684972c372e0
-SHA1 (patch-third__party_expat_BUILD.gn) = 0dbeb795043e68e7b8e45b49c4dc46e7cdf00bf9
-SHA1 (patch-third__party_ffmpeg_ffmpeg__generated.gni) = 8deb1d21d9a54def9d7e1f2eafe140f5eed6933e
-SHA1 (patch-third__party_ffmpeg_ffmpeg__options.gni) = 96c27f6c2a265d6fa6facaf02a881eddc3ee27ce
-SHA1 (patch-third__party_ffmpeg_libavutil_mem.c) = 1a8bfd3568ae6eda2043b5f458e23073979f12a1
-SHA1 (patch-third__party_flatbuffers_src_src_util.cpp) = 2b3dbfc78db29697c476531b602335ce71d5e30e
-SHA1 (patch-third__party_fontconfig_BUILD.gn) = e92b0ed7611535e82e75167184e7f33a2896cdbe
-SHA1 (patch-third__party_fontconfig_fontconfig.gni) = edad9fa480e0504472a136401840ea59df2c4d9d
-SHA1 (patch-third__party_freetype_BUILD.gn) = 69c20c93492c34f1bada4b54963cb22a61dded0a
-SHA1 (patch-third__party_icu_BUILD.gn) = 16f9e4994b101739c6d76c617be0d715c2c87cb7
-SHA1 (patch-third__party_icu_source_common_putil.cpp) = 4856c4b668a23b8a183f1aab74f94587581431bd
-SHA1 (patch-third__party_icu_source_common_umapfile.cpp) = 4abb5270fa411b5bd50a1cba49b3fc3f243b0912
-SHA1 (patch-third__party_ijar_BUILD.gn) = a6e2cc7f127b4c0a0b6f512fca69468bbf37ffc5
-SHA1 (patch-third__party_leveldatabase_env__chromium.cc) = 164244d6812f815baa338646e661e20aa17ad955
-SHA1 (patch-third__party_libXNVCtrl_NVCtrl.c) = 53c0d280262ba9081f35c7aef35702d5dfa1d1d7
-SHA1 (patch-third__party_libdrm_BUILD.gn) = 9d6fb803580b3b907067511af82b84d9b9335707
-SHA1 (patch-third__party_libjpeg__turbo_BUILD.gn) = f8fde408a1ff4de9d749c5a592c931a3e18a73e1
-SHA1 (patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_memory_singleton.h) = 7220f7230ca7489915512fb54454ffd67409ec50
-SHA1 (patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_synchronization_lock.h) = e721aecee6b50a37cc6418c4bf3d071b59979bc0
-SHA1 (patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_thread__checker.h) = 2251e12a221ff82283d147010c22d697d68a2e68
-SHA1 (patch-third__party_libpng_pnglibconf.h) = a2e8d349b440cd584f2885a752c797b72cf8934c
-SHA1 (patch-third__party_libxml_BUILD.gn) = c0e9d90b696e336cc595062502c75418d5b6aa21
-SHA1 (patch-third__party_libxslt_BUILD.gn) = 1c9472ca14aba9d063cc535278c858fb84613373
-SHA1 (patch-third__party_libyuv_BUILD.gn) = 10c92b0874f27ad6639fedd632a86805c696a7a0
-SHA1 (patch-third__party_minigbm_BUILD.gn) = 61e91fadddfa460b8eb4c4dcf31419bf80e4a494
-SHA1 (patch-third__party_nasm_config_config-linux.h) = 8ff715540f4d563a417343dfa93bad1859d3ecc0
-SHA1 (patch-third__party_node_node.py) = 67129c947dfb471d2e23b498e899b3a7e00a692c
-SHA1 (patch-third__party_openh264_BUILD.gn) = b4b1e6acd6e4dbf762d49fbca1d705012a7f9bd9
-SHA1 (patch-third__party_openscreen_src_build_config_BUILD.gn) = 0e813d80fd4c337415a04189a92ee6eb65e2fd3b
-SHA1 (patch-third__party_openscreen_src_build_config_BUILDCONFIG.gn) = e3c2baaf6194beeae707f8f5137d7f3de7adf220
-SHA1 (patch-third__party_openscreen_src_platform_BUILD.gn) = a724de5c58fec2ea9092f24c0da0ce6929e9f0ba
-SHA1 (patch-third__party_openscreen_src_third__party_boringssl_BUILD.gn) = 02b696c077aa9a77e9b74a24eddb552181cdbdf0
-SHA1 (patch-third__party_openscreen_src_third__party_chromium__quic_build_base_BUILD.gn) = cf266ad1ae2668c7cce0056f66c7b1fbe5ced2d6
-SHA1 (patch-third__party_pdfium_BUILD.gn) = 7fd2409e61c8f466d91e20bea5e5af4afce4145e
-SHA1 (patch-third__party_pdfium_core_fxcrt_cfx__datetime.cpp) = 2e32c70c0eb1a080c70fd66b484622d5f82c997e
-SHA1 (patch-third__party_pdfium_core_fxcrt_fx__system.h) = 4736564b2e8bcfdb68d4510a3d72c7055b58b531
-SHA1 (patch-third__party_pdfium_core_fxge_BUILD.gn) = db51d8806d25e6f17ac0adfce4251ddd16104530
-SHA1 (patch-third__party_pdfium_core_fxge_fx__ge__linux.cpp) = 8debb8ddcce5d5cebd4d4b1c4cc9f5095a986192
-SHA1 (patch-third__party_pdfium_fxjs_cjs__publicmethods.cpp) = e4ca292f8687e715d342971bef928930e2ddb49c
-SHA1 (patch-third__party_pdfium_fxjs_cjs__runtime.cpp) = f4e3674e90c329735baf6f4caa0a3a29ca20c255
-SHA1 (patch-third__party_pdfium_skia_BUILD.gn) = 2544acc70dcc2cba4fd82875594b04cac4600dc1
-SHA1 (patch-third__party_pdfium_xfa_fgas_font_cfx__fontsourceenum__file.cpp) = 440a89948df9e92e9e7eabc366f9d315effe8081
-SHA1 (patch-third__party_perfetto_buildtools_BUILD.gn) = ab2641061f606dae89a657719f94460417ad13a0
-SHA1 (patch-third__party_perfetto_gn_BUILD.gn) = 789d0b13f6ea439fb7204fb7d90057b7d1ed0d34
-SHA1 (patch-third__party_perfetto_gn_perfetto.gni) = c8d2f4a99deb49da1979f45abb5303dfb07356fd
-SHA1 (patch-third__party_perfetto_gn_perfetto__unittests.gni) = c774cdfea68f78bc8064b8c81a18ccb852a186f5
-SHA1 (patch-third__party_perfetto_gn_standalone_BUILD.gn) = 1797d64bc7f014f2ca5f08bdd03edd06bc1401fa
-SHA1 (patch-third__party_perfetto_include_perfetto_base_build__config.h) = 531ae52be6b5bf14b1a2ae9ddc4f17c853bd487e
-SHA1 (patch-third__party_perfetto_include_perfetto_base_thread__utils.h) = 6db0b368c293392883a27dbd37e29825ac215d24
-SHA1 (patch-third__party_perfetto_include_perfetto_base_time.h) = 52a1ecf4584608382ea0fdcd3b629c7053aa2d29
-SHA1 (patch-third__party_perfetto_include_perfetto_base_unix__socket.cc) = 216f5eb9bd87ebfe10500d5ecf6331d920316b7b
-SHA1 (patch-third__party_perfetto_include_perfetto_ext_base_unix__socket.h) = 4b2aac8955747a9d3d508ae7fe659494f3681dd7
-SHA1 (patch-third__party_perfetto_src_base_BUILD.gn) = e942923edfe5148e4cf9e9ab49cfff12295173cf
-SHA1 (patch-third__party_perfetto_src_tracing_core_tracing__service__impl.cc) = 7341369e056fce3bd32a0a8a4eb94f19acc5dc23
-SHA1 (patch-third__party_perfetto_tools_BUILD.gn) = 44f0ef2452d8ab1d7f9a95ac0a666d2e419ebe3b
-SHA1 (patch-third__party_protobuf_src_google_protobuf_stubs_platform__macros.h) = 95e780bbc128fc1980b4958408b729525137206c
-SHA1 (patch-third__party_skia_BUILD.gn) = a5d12d33c1d74901df2b0643b19537a76c4d52a5
-SHA1 (patch-third__party_skia_gn_BUILD.gn) = 08da6598ae1b1b7b5d0e54affbc94c0603e73654
-SHA1 (patch-third__party_skia_gn_skia.gni) = efd2059c6ef099cfb498d428cb5c4a56c25cdd5d
-SHA1 (patch-third__party_skia_src_gpu_GrAutoLocaleSetter.h) = eeefaecfe8d0f5096642e00a77be7b1170bfec7b
-SHA1 (patch-third__party_skia_src_images_SkJpegEncoder.cpp) = 5663487963cf8e29a10f6d581dff6ddcbb79a3fe
-SHA1 (patch-third__party_skia_src_sksl_SkSLString.h) = 8841c541326e18df2410b3ea3981141018a68feb
-SHA1 (patch-third__party_skia_third__party_angle2_BUILD.gn) = 55dd3e8b6552e977a1a7cd5fa47fb55bfa036725
-SHA1 (patch-third__party_skia_third__party_libsdl_BUILD.gn) = 285a16766f49d549bb7b2e74de74b625b40de1ed
-SHA1 (patch-third__party_skia_third__party_opencl_BUILD.gn) = e6621cd68694d5029d78c0da9c8554daea757d1b
-SHA1 (patch-third__party_sqlite_BUILD.gn) = 314e9668c6d07417eb6619010ac92e60374d815e
-SHA1 (patch-third__party_swiftshader_BUILD.gn) = ee9869cad207a669efea8c06b91b17868fcaba28
-SHA1 (patch-third__party_swiftshader_src_Common_Configurator.cpp) = b0b08e070f4e11dc21747229b952a426e34a7b5d
-SHA1 (patch-third__party_swiftshader_src_Common_MutexLock.hpp) = fb6359f487569667b6555d8706ea2cd20ff2588f
-SHA1 (patch-third__party_swiftshader_src_Common_SharedLibrary.hpp) = 8cb9d5449c75c4bfb3b54c24a1e44cc4b0069a51
-SHA1 (patch-third__party_swiftshader_src_Main_BUILD.gn) = 72b37717ca87e56d1c2a35a15cbd282998faf278
-SHA1 (patch-third__party_swiftshader_src_Main_SwiftConfig.cpp) = 6bb3478c3946531ff3f1dd214c6c54f385254568
-SHA1 (patch-third__party_swiftshader_src_OpenGL_compiler_BUILD.gn) = 6fcddc326a8a5c3f7cef7a3d1958bf13f194569f
-SHA1 (patch-third__party_swiftshader_src_OpenGL_libEGL_BUILD.gn) = bf5325e627bcfcff417787f80daa67eedf75a867
-SHA1 (patch-third__party_swiftshader_src_OpenGL_libEGL_Display.cpp) = ee48503cb58b133ca88835134eafb9df5a0f77c3
-SHA1 (patch-third__party_swiftshader_src_OpenGL_libEGL_Surface.cpp) = 89ea2affce6764d6dfae722ca7bbbdf7f0574dd7
-SHA1 (patch-third__party_swiftshader_src_OpenGL_libEGL_libEGL.cpp) = 0a524fa54b57d268cf58d6862bb84ad880ddea39
-SHA1 (patch-third__party_swiftshader_src_OpenGL_libEGL_libEGL.hpp) = 8ab7be5615bb1e0f0dc471010198878c89bc3b42
-SHA1 (patch-third__party_swiftshader_src_OpenGL_libGLES__CM_libGLES__CM.hpp) = 079e6b2cf283e057a54f9098bd0de90759a0eafb
-SHA1 (patch-third__party_swiftshader_src_OpenGL_libGLESv2_BUILD.gn) = f040a9a97e91e657158c9945e6c64f5897f83649
-SHA1 (patch-third__party_swiftshader_src_OpenGL_libGLESv2_libGLESv2.hpp) = e412339cca86449f7f656016f47a6e6abab0a9ae
-SHA1 (patch-third__party_swiftshader_src_Reactor_BUILD.gn) = 32e102e666cb4b0a22a84fdc909460bb9519c0d1
-SHA1 (patch-third__party_swiftshader_src_Reactor_Debug.cpp) = ec974a27e5576e3bfc073d64df5c7f956d2b0468
-SHA1 (patch-third__party_swiftshader_src_System_BUILD.gn) = 75d8f72dca7f395def95167210915003646697da
-SHA1 (patch-third__party_swiftshader_src_System_Debug.cpp) = 208eddc5067b62163b874878811f2314c707e3d8
-SHA1 (patch-third__party_swiftshader_src_WSI_BUILD.gn) = cf01da5bbd3f6e620973723bc0ae432664bd62bc
-SHA1 (patch-third__party_swiftshader_src_vulkan_BUILD.gn) = cb46cb1dbe523f0dd6afeff235a485939cc2a2cd
-SHA1 (patch-third__party_swiftshader_third__party_llvm-7.0_BUILD.gn) = 0b21fc5ffff666a616da34ed90a2a296775290fa
-SHA1 (patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_AsmParsers.def) = 49635a8b4778b4dbc88502ff124d05dcfc77f5bd
-SHA1 (patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_AsmPrinters.def) = a93a6d4b8c375c63321521e3d9b4f2c7a63385ac
-SHA1 (patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_Disassemblers.def) = 38448e82de7bc7b91c5651e6b5ac51b16e5129cc
-SHA1 (patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_Targets.def) = f8fb798c91143eac02a9efca87d1523e87c8401f
-SHA1 (patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_abi-breaking.h) = 2798bcf03125158e2aec9c5f16bee4f866fa97a1
-SHA1 (patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_config.h) = f6966aafe50fc8072d57a737845e172610a841c6
-SHA1 (patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_llvm-config.h) = 68ba9d3a451e7361dfa3dfa9922db1409cef9dcd
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_CMakeFiles_CMakeDirectoryInformation.cmake) = f2519895e1f49c9b85e920d6577c8aaaf2ecdde0
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_CMakeFiles_progress.marks) = 680edbfdc4cca419d25ae54abab210a4eabda41c
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_AsmParsers.def) = 5d6d303942b2eff73e048a0baab3cf122cce8c90
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_AsmPrinters.def) = 5236fba040522a5dda654c788f723c93a03467a5
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_Disassemblers.def) = d7f6787d94921396c9504c49306dd9bcf1844ec4
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_Targets.def) = f4554b60d0537e8df650a829f0168cb3ce240d56
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_abi-breaking.h) = 3d4186d8c1327d35a06d66e941f157154946cc43
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_config.h) = 0f6d9bcc0b16b42c451d02165f25a1e6ce024414
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_llvm-config.h) = fb471dd17abd62b5f52fba55e981b9ef4524c17d
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_Attributes.gen) = 05fb235b66e85153b216a1b60c033bbb10a11ef1
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_CMakeDirectoryInformation.cmake) = 0fff0645099823310bb4c2d66dd3de0947e199e5
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_DependInfo.cmake) = 608d8082e9e1213300f45835ae506e4664f80669
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_build.make) = a940843f56d95f9d4c9384e92ff280b56ac8a707
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_cmake__clean.cmake) = 8332e3709ec56e25ff847e9fd032f69b8a79f75f
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_progress.make) = 485e542906e9f0fa499cec960a35c6f0827ed921
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_progress.marks) = 1bdc7006a199c53915fe4fe586562a44d5268f9e
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_Intrinsics.gen) = e0da7e81eb42ef33d56cc962740bae9b4ae7b07a
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_Makefile) = 32fa28f8332a12d71906ff4ed79ffc7a86e683b5
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_cmake__install.cmake) = 068fbdb72a5e9cc095cda0e1812c46ba7a0e2e14
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Makefile) = 5e3bffef0c8c8573ffc14fb40e8fb92ce5e7a6ce
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_CMakeDirectoryInformation.cmake) = 514111f15e28f42ad6833474afc01f2a3f8159f0
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_DependInfo.cmake) = 8130fd314a4a54f82ed3743a1ab1d6dae3c1597a
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_build.make) = 147ca2569d01ce9f87e6bd89423bf79b7a633fd8
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_cmake__clean.cmake) = d8048b3ff510e9593fe55b4c5ef69cb2687016ca
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_progress.make) = be5be3a289ed8c67fe76c22aea2cad9ceb4e65ee
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_progress.marks) = b1472837757c311a9da3620ec026f773969bb991
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_Makefile) = af0bbaa061c81a3fc1d3c21805e14324e0916fbb
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_VCSRevision.h) = b8650cd8458da9366d85df593ec23b9d8cb6388b
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_cmake__install.cmake) = 803cacff4dda17d13727f94fc6de5525601bc8c5
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_cmake__install.cmake) = bf7616df6cc0a9475f7958c3c0a8169890344d73
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_module.modulemap) = fdfb3ff594aa4ab9a214fcabd5d25988351d01ac
-SHA1 (patch-third__party_swiftshader_third__party_marl_src_memory.cpp) = 7d3abdd398d8ec72f7342dd306bd82da8177438b
-SHA1 (patch-third__party_swiftshader_third__party_marl_src_thread.cpp) = 236ae8676803ca969bc5b393010caef224923c94
-SHA1 (patch-third__party_usrsctp_BUILD.gn) = 215428afb9e3c8f0184a122b4f3540343732f83b
-SHA1 (patch-third__party_webrtc_BUILD.gn) = 4aa4b6266ef3da1f9f8e81765e93e5f31e88e730
-SHA1 (patch-third__party_webrtc_audio_BUILD.gn) = 97fb387f1b76b9c739af5d0a2cd22c8c6eaa9bcf
-SHA1 (patch-third__party_webrtc_examples_BUILD.gn) = 832a5af7a48a5347b5c16833d45b3288d87aecef
-SHA1 (patch-third__party_webrtc_modules_audio__coding_BUILD.gn) = 7e30175efa465332168d0fa71125d72fc6d8e29d
-SHA1 (patch-third__party_webrtc_modules_audio__device_BUILD.gn) = f9b79ff79b97656bfcbbde4fb87a1327e649a6d8
-SHA1 (patch-third__party_webrtc_modules_desktop__capture_BUILD.gn) = 95f24d9cc635f6c6c91a680de0ee10b891ff9f0a
-SHA1 (patch-third__party_webrtc_modules_rtp__rtcp_source_forward__error__correction.cc) = a2ce46e2276870b4d28ba942a1cfdf61034460b4
-SHA1 (patch-third__party_webrtc_modules_video__capture_BUILD.gn) = fcf84cff402d9c797e3cee6715f14cc7b62c7528
-SHA1 (patch-third__party_webrtc_rtc__base_BUILD.gn) = 2f8deae6bbee2cdc3ff6245e78535217604e94b2
-SHA1 (patch-third__party_webrtc_rtc__base_ifaddrs__converter.h) = 3821a4ec6d37d095a19d55d786c444ad7b5c0078
-SHA1 (patch-third__party_webrtc_rtc__base_ip__address.cc) = e0d6e91a489e7c6ed9178877af6601f2a278be3b
-SHA1 (patch-third__party_webrtc_rtc__base_ip__address.h) = 2f2fd246901c6bf3479af2bf3a1e2c48660899d3
-SHA1 (patch-third__party_webrtc_rtc__base_network.cc) = a07de71c97ff0f21bc0846e31222babf551212aa
-SHA1 (patch-third__party_webrtc_rtc__base_network.h) = a0333e5e3063c58f5946bc1ace49047666f947e0
-SHA1 (patch-third__party_webrtc_rtc__base_physical__socket__server.cc) = 3401487dff64fda564cde9d7edbf242019585c4a
-SHA1 (patch-third__party_webrtc_rtc__base_physical__socket__server.h) = 2a108e01764ebef47b2b179817dd82205b633059
-SHA1 (patch-third__party_webrtc_rtc__base_platform__thread__types.cc) = 170d6a3b021e608ddf2ad32b61918fa27ef72f5b
-SHA1 (patch-third__party_webrtc_system__wrappers_BUILD.gn) = 1701116c468e4bf43f8d8ebbd48b8332b4117bb5
-SHA1 (patch-third__party_webrtc_test_BUILD.gn) = 173eef1d23f09aeb67600eec382709965fcbff40
-SHA1 (patch-third__party_webrtc_webrtc.gni) = dee1b7d162f23fea1b3ce1baad1c5303bab67047
-SHA1 (patch-third__party_zlib_BUILD.gn) = 19673c8c56c53465b8dc90c1f64ebab251a949d6
-SHA1 (patch-third__party_zlib_cpu__features.c) = b66fa64f019306b751bd1178a708933fefad226e
-SHA1 (patch-tools_binary__size_BUILD.gn) = 610a0dddfe758186cee502b9318715a9af1c9225
-SHA1 (patch-tools_binary__size_libsupersize_caspian_BUILD.gn) = 59248f772448266c350bf58704c7ad71fc62158e
-SHA1 (patch-tools_gn_build_gen.py) = 6209be881da588c5a419bde30e34b67b23c6651d
-SHA1 (patch-tools_gn_src_base_files_file__util.h) = 127ede2e6dbf524efc59ad8098c66efeaf6e4900
-SHA1 (patch-tools_gn_src_base_files_file__util__posix.cc) = 0596edb7bee0d0a14a770f9014ec9113afd8870c
-SHA1 (patch-tools_gn_src_base_files_scoped__file.cc) = e3c5e5933afec4dc6bb99d9b14d228d011113ab4
-SHA1 (patch-tools_gn_src_gn_args.cc) = 095df9b1830863fdb2ce28a7412bf2e27bbe58c3
-SHA1 (patch-tools_gn_src_gn_version.h) = e95732f2629bc2f69cdd2728e278bd390d68a2d8
-SHA1 (patch-tools_gn_src_util_exe__path.cc) = ea6e80e78d058c6c4b24138bad791718e1867f27
-SHA1 (patch-tools_grit_grit__rule.gni) = c04f1cee3e1cb545806d7e9fdea8bc8ae701d4ee
-SHA1 (patch-tools_ipc__fuzzer_ipc__fuzzer.gni) = c01a05e69e693d5f238605c089376cb46d37b820
-SHA1 (patch-tools_json__schema__compiler_feature__compiler.py) = f3d74e67b275d475f17b7f7b7c08da0fe8771f37
-SHA1 (patch-tools_json__schema__compiler_model.py) = f1736df9874366f3f9452e1ea722f418f2f8e444
-SHA1 (patch-tools_perf_chrome__telemetry__build_BUILD.gn) = 5e4722e3fb639ab98e09cb831498e773e3ea45cc
-SHA1 (patch-tools_variations_fieldtrial__to__struct.py) = 8eb5bacc78756307239cad3069ae8cf34c0c91aa
-SHA1 (patch-ui_aura_BUILD.gn) = 882a5d7acc1980b3473003744f0583ef698d1744
-SHA1 (patch-ui_base_BUILD.gn) = 162c02384c6b008109e888ca0398219b5f334bb3
-SHA1 (patch-ui_base_dragdrop_os__exchange__data__provider__factory.cc) = 41ee8293139da87e5c95381361de7df14c20f861
-SHA1 (patch-ui_base_idle_BUILD.gn) = ab6c09579fac46bc06d19098a3f3f3ff604275e4
-SHA1 (patch-ui_base_ime_init_input__method__initializer.cc) = 9b349c3f3fc2268de61ac5fbd361485c1880ffa1
-SHA1 (patch-ui_base_ime_linux_BUILD.gn) = 5d8300d9a5c312db6d9d2b136ab4229b14322efa
-SHA1 (patch-ui_base_resource_resource__bundle.cc) = a618565bdd8dd3934a885de07cf963112313fd89
-SHA1 (patch-ui_base_resource_resource__bundle__netbsd.cc) = b23f8c761311256d0676114e4ed2e0cbe62eff95
-SHA1 (patch-ui_base_ui__base__features.cc) = 278a07d0cbea7f8f0be7cf34c4c83beb962b8c5d
-SHA1 (patch-ui_base_ui__base__features.h) = 86b0d72d8d3c2b324e35ca5b60e5bc03fc4ae8f8
-SHA1 (patch-ui_base_ui__features.gni) = 2a2a7807f3eb37b4958997d318201e91674c2e87
-SHA1 (patch-ui_base_webui_web__ui__util.cc) = 7991e4574a7572867f0590e30aecaf483fcc39df
-SHA1 (patch-ui_base_x_x11__shm__image__pool.cc) = 70e25285a82ebda108fc0f385b6e53d2e8aed1ac
-SHA1 (patch-ui_color_BUILD.gn) = b78693485273f6c6c4d7e8a75df9960f0864ecf4
-SHA1 (patch-ui_compositor_BUILD.gn) = 284a7158ffbe3373e62da654716c552995642e2e
-SHA1 (patch-ui_compositor_compositor.cc) = ef3a79dca1fb7752f5ed1ccc8437d1885da3d572
-SHA1 (patch-ui_compositor_compositor.h) = 802661a4c096e428cf38c2fe346daf6943d425aa
-SHA1 (patch-ui_compositor_compositor__observer.h) = 96ad3dafc97522cd0f5b85a3e690be359bd7a656
-SHA1 (patch-ui_events_devices_BUILD.gn) = ed4c0a85502d00043dd7e472c93eb8fe31098077
-SHA1 (patch-ui_events_devices_x11_device__data__manager__x11.cc) = 756f8f7a4e98e59673589a9d62e2824fd16e716b
-SHA1 (patch-ui_events_event__switches.cc) = 9d8a84f6cfe6f6a7c74ead7d94f7f434fbf5c86e
-SHA1 (patch-ui_events_event__switches.h) = 67da8dd3289dd879e4fc34c9cf715dc0485cb833
-SHA1 (patch-ui_events_keycodes_dom_keycode__converter.cc) = 7d0b212344f0f542df437b61823f5d5d18dcc332
-SHA1 (patch-ui_events_ozone_BUILD.gn) = 53e29339ddf271ee38cc54675dce9ecdd88d5352
-SHA1 (patch-ui_gfx_BUILD.gn) = 2206e6f906d6867662b125b20cbb45aac4f36076
-SHA1 (patch-ui_gfx_canvas__skia.cc) = dcd67dfd8f45214a08f4a7bb5e9cecb33cfe1d38
-SHA1 (patch-ui_gfx_codec_jpeg__codec.cc) = a26a932a91719318fab5f19688d500cb7b084f87
-SHA1 (patch-ui_gfx_font__fallback__linux.cc) = c132a17578e66087f2e2364a803e8ec06981820f
-SHA1 (patch-ui_gfx_font__list.cc) = 168acaccb4bcf6fa70020922e07ebe412225a0b8
-SHA1 (patch-ui_gfx_font__names__testing.cc) = 92d73144b48a302dd5ae957d8e12571df25ba936
-SHA1 (patch-ui_gfx_font__render__params.h) = fdb0117e90a67f5b4f8e11695fb4f05946bbee91
-SHA1 (patch-ui_gfx_font__util.cc) = 6b2ee532d540bc919b8d0cfdb3dc77748751bcc6
-SHA1 (patch-ui_gfx_gpu__memory__buffer.cc) = fa173cc57736968fba1bd97492df4de6b7dc0d26
-SHA1 (patch-ui_gfx_gpu__memory__buffer.h) = 834db055ca04d3c18e3f77bbc98e77bdab4701bb
-SHA1 (patch-ui_gfx_ipc_gfx__param__traits__macros.h) = e9f1e5805d96fc0492d82469f785ad46f075daed
-SHA1 (patch-ui_gfx_linux_client__native__pixmap__dmabuf.cc) = b52b14ec2fa81b6f9e85b06cf3fd9aaee5506813
-SHA1 (patch-ui_gfx_mojom_BUILD.gn) = 777deafeab5f001daf24ea10c134de16b217d6a7
-SHA1 (patch-ui_gfx_mojom_buffer__types__mojom__traits.cc) = ce82122b15b7f58b72bb5353140cba4cc5478155
-SHA1 (patch-ui_gfx_mojom_native__handle__types.mojom) = 05d59a0cea6e0a482b7c254cff5646babb8ccd99
-SHA1 (patch-ui_gfx_mojom_native__handle__types__mojom__traits.cc) = 0bc6ab432e9ccfae626ee167d6eb7fa20208bcef
-SHA1 (patch-ui_gfx_mojom_native__handle__types__mojom__traits.h) = 3f49f9ec8e97836dc2ece3f6ef0a804eac4b6559
-SHA1 (patch-ui_gfx_native__pixmap__handle.cc) = baf1ad20af9112cad6d75a05472ddf79ff3bf121
-SHA1 (patch-ui_gfx_native__pixmap__handle.h) = 69d3802389a4dce9cc3e3e383a9292b314eac6c1
-SHA1 (patch-ui_gfx_native__widget__types.h) = aa363c926a50f03aff31c7fb5132ff6a4c05f9db
-SHA1 (patch-ui_gl_BUILD.gn) = 71e7c0c5053021a4ff81c143ed402931b95d528a
-SHA1 (patch-ui_gl_features.gni) = b4043d89c1fd913e7329c0a8bf49e9ea4e22c982
-SHA1 (patch-ui_gl_gl__fence.cc) = d27e56ba2ac9cf49952bcb2feca09a5ac078cb83
-SHA1 (patch-ui_gl_sync__control__vsync__provider.cc) = 0a24a09b384d2e24b25fed01c61e36ac7aba1c7d
-SHA1 (patch-ui_gl_sync__control__vsync__provider.h) = 4f16b378aaf350fb60273748e31dd2adc4a8b10a
-SHA1 (patch-ui_gtk_BUILD.gn) = 6834e7ed9d8050b57d310063e05683c57a451b7f
-SHA1 (patch-ui_gtk_printing_print__dialog__gtk.cc) = 3fece3f154654b048816f53bc5fb501ac2a95499
-SHA1 (patch-ui_message__center_views_message__popup__view.cc) = 69fd719010575bceb2213d1389144832427341e2
-SHA1 (patch-ui_native__theme_native__theme.h) = 6fcafef20d695ddb50a683732bf1edd5d18352e6
-SHA1 (patch-ui_native__theme_native__theme__base.cc) = 442b5c58c22b24770a93d8326b73d20dc247d0b4
-SHA1 (patch-ui_ozone_platform_wayland_BUILD.gn) = 97b65b448f77a0b02d2a2d1bee76dc5f4be48cc6
-SHA1 (patch-ui_platform__window_common_BUILD.gn) = 16f1840768f96f93b7200a2952c0745e0bdbb868
-SHA1 (patch-ui_platform__window_extensions_BUILD.gn) = 08e65f81198daa32682f7a3613536ffba1f56b0e
-SHA1 (patch-ui_platform__window_platform__window__init__properties.h) = 4e1e869cba5fa7d5ee232137de6adb328fcbb483
-SHA1 (patch-ui_shell__dialogs_BUILD.gn) = 4c7f7333d4e7c2dafd0f87b8e31299c53ff55bad
-SHA1 (patch-ui_strings_app__locale__settings.grd) = f55ba47b7bbac03ce519d18ea0253adf956448a2
-SHA1 (patch-ui_views_BUILD.gn) = 988145a4c86749413bb9cff1ca4ad58ae4959f53
-SHA1 (patch-ui_views_bubble_bubble__dialog__delegate__view.cc) = 0e357059c1f7c492f2857581b79e5a9aee7b9eda
-SHA1 (patch-ui_views_controls_label.cc) = fa2e990bb3609bed355b2a7786d26f67a4053745
-SHA1 (patch-ui_views_controls_textfield_textfield.cc) = 6118e9ce2b2b4b8762beca337d937790997d42aa
-SHA1 (patch-ui_views_controls_webview_BUILD.gn) = 78a661848b7ec0e243b8e68d9bc9f1c2450a927b
-SHA1 (patch-ui_views_corewm_tooltip__aura.cc) = 6a9554249c94c2d5296e3912b3fd1d616bea3ce2
-SHA1 (patch-ui_views_examples_BUILD.gn) = dda6ee15f3829884ca86b6d086032d24f8df0236
-SHA1 (patch-ui_views_examples_widget__example.cc) = 616cc19ba9f4cc06a2d362e308c06727a39c78ea
-SHA1 (patch-ui_views_selection__controller.cc) = 393357f1d285acf0c83e80d5057a026ccc324cab
-SHA1 (patch-ui_views_style_platform__style.cc) = d8e5687dafa7894fb8061225cc95e26c4d8a870d
-SHA1 (patch-ui_views_views__delegate.cc) = 3e67c6165d5b1beb2581f2460eaafef66476606c
-SHA1 (patch-ui_views_views__delegate.h) = b9a034c07042777a4b12ee54a2997dee64655b25
-SHA1 (patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform.cc) = 947515574a24e356f69babb83f9bc22244ddb493
-SHA1 (patch-ui_views_widget_native__widget__aura.cc) = f2a5ced89cb83183306b37f01bde74ee3c49d2a8
-SHA1 (patch-ui_views_window_custom__frame__view.cc) = 4e424a03fd44508246d00cf6405d27f10d9fd2db
-SHA1 (patch-ui_views_window_dialog__delegate.cc) = 466a7a40d35d7efc4443dd1258c4d99408b01b99
-SHA1 (patch-ui_views_window_frame__background.cc) = e4ecceab91ec60d50db21b777832d15b3a4d50d7
-SHA1 (patch-ui_webui_resources_js_cr.js) = 8d2ed1417657228d6c9b1f71fb90dca422b66841
-SHA1 (patch-ui_webui_resources_js_icon.js) = 3d300769019016dc71e0359d0ac311e9f83a3d6a
-SHA1 (patch-ui_webui_webui__features.gni) = 931453ed2e9ab5a1c887f70835ba82dceb2ddd96
-SHA1 (patch-v8_BUILD.gn) = 48b0483c25863ce8fac144ba064597412f902572
-SHA1 (patch-v8_gni_v8.gni) = dc7fbfaaec52dc5a2a06deaac4976fa62ef4ed66
-SHA1 (patch-v8_src_api_api.cc) = 6f513ea7a7d1df76db75d82b96bc4fb9ea48b95b
-SHA1 (patch-v8_src_base_cpu.cc) = e5f87a7404550394031e26782f3590c80dd2f132
-SHA1 (patch-v8_src_base_platform_platform-posix.cc) = 9ddd58ac9b08c057f46defa1075028bb21d6fef3
-SHA1 (patch-v8_src_trap-handler_handler-inside-posix.cc) = a45d54b57f96d6d1baf2a7300cc37d97f843d154
-SHA1 (patch-v8_src_trap-handler_handler-inside-posix.h) = 22dc054d9e8b2db46df03fbfea39b824fd7f64cc
-SHA1 (patch-weblayer_BUILD.gn) = b6143b26f1950a837780fac022fa173820888a21
-SHA1 (patch-weblayer_app_content__main__delegate__impl.cc) = 86cf7cead83db8883fc593bb92246c07254a1398
-SHA1 (patch-weblayer_browser_browser__main__parts__impl.cc) = c4bbf1798fd2636253fb4096616d7dd446e7700b
-SHA1 (patch-weblayer_browser_content__browser__client__impl.cc) = 34771d54ba9df89f438561cfb4629fc2247fb479
-SHA1 (patch-weblayer_browser_content__browser__client__impl.h) = 764f9f73f72b2b67b602f1ef6b1c3239457cc0ee
-SHA1 (patch-weblayer_browser_system__network__context__manager.cc) = 5e0a4f35bad1b8cf660b2ff5f13d72e066830994
-SHA1 (patch-weblayer_common_weblayer__paths.cc) = af8dfe389d5e9eb5d66783aaa57aca2ba446bec8
-SHA1 (patch-weblayer_shell_BUILD.gn) = cd24dfd3b52492dc8218bca5da415fad1433e7b6
+BLAKE2s (chrome-linux-127.0.6533.72-llvm17.profdata.tar.xz) = 12d7784b4a571313663d4fefac05e7ab30bb9e7db43e83444a4c54233e88f69e
+SHA512 (chrome-linux-127.0.6533.72-llvm17.profdata.tar.xz) = b74a1eafe16a6a061148a92025b1fe3145d990849c02da567eb9e83e90e562da2288143af8e27c70fd0246524d23592899264e0bd65df23b319aec1496bf1b11
+Size (chrome-linux-127.0.6533.72-llvm17.profdata.tar.xz) = 30406592 bytes
+BLAKE2s (chromium-127.0.6533.72-testdata.tar.xz) = 9384594606928721af78a1ccf6d4f3f701f4eb3812000e1d46f24bbb9cb9e8bb
+SHA512 (chromium-127.0.6533.72-testdata.tar.xz) = d40008750c45eb085bc030765f5f9da234934b4cf9acf8446d2c81ddb42cbd9d54db359513bef4ed491cf6c82bf4b1557d4dc63cdf54e13ff1b74b1fcc2fb0ea
+Size (chromium-127.0.6533.72-testdata.tar.xz) = 279972368 bytes
+BLAKE2s (chromium-127.0.6533.72.tar.xz) = fa2ce21bda854f009319ec528c3d2f25bb00af79996847d93edee0b645d9eda4
+SHA512 (chromium-127.0.6533.72.tar.xz) = 1b112b26dd52d2f45b5cd2e0109299b82335005f80be9897baed8735792bc05ef79ef24f9a40627313ac619dbf92ed334bcf7a2b366f40dce7c689763677603b
+Size (chromium-127.0.6533.72.tar.xz) = 6606381412 bytes
+BLAKE2s (test_fonts-336e775eec536b2d785cc80eff6ac39051931286.tar.gz) = 2b98e0ae91b622fe4e6b4c1832e05b1aa52cae549a21211ae4e9b4011d6589f6
+SHA512 (test_fonts-336e775eec536b2d785cc80eff6ac39051931286.tar.gz) = bbc928e99ebcd4d953b982688b01526cb754bad018f67be9e777a4f8ac51cdd3e01374e5a63faf55b12e7cee0d52816c88062e012b5bcc4f9bb41f28d8e0b7f7
+Size (test_fonts-336e775eec536b2d785cc80eff6ac39051931286.tar.gz) = 32624734 bytes
+SHA1 (patch-BUILD.gn) = beb7a7182c47a7bb2043864a7f383a7f8336e453
+SHA1 (patch-apps_ui_views_app__window__frame__view.cc) = 38b07e3c9a9c8a219d8228712c194b759f91a2f1
+SHA1 (patch-ash_display_mirror__window__controller.cc) = 72669bac3726523a49804b70421398a1c30742c3
+SHA1 (patch-base_BUILD.gn) = ec4ecb7d6110147c146a631b420a65408f51113a
+SHA1 (patch-base_allocator_dispatcher_tls.h) = 861d4c95a2f9c0e9ef5bdf13e351c0856c3b1f06
+SHA1 (patch-base_allocator_partition__allocator_partition__alloc.gni) = bfa92c5497870e4ab10f89ce48a11669f9eba76d
+SHA1 (patch-base_allocator_partition__allocator_src_partition__alloc_BUILD.gn) = 3ea17020e896e0daff1a3ff008b53c3834e16418
+SHA1 (patch-base_allocator_partition__allocator_src_partition__alloc_address__space__randomization.h) = 51228edc4f201d4863e804a2a3ce21915f3ff1b4
+SHA1 (patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator.h) = df8581e4888a9e46afc7c466e16fd98c3584c069
+SHA1 (patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator__constants.h) = 25609a7f9bb2328467f166cf4661a260b16d9bd4
+SHA1 (patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator__internals__posix.h) = 68de760cc40270992ce02b6b296538bdb3c28963
+SHA1 (patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_debug_stack__trace__posix.cc) = ead3b6c316c3c585cfddaa790b3c0906872b18aa
+SHA1 (patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_rand__util__posix.cc) = fbd18268831ac6bf206b0ca0d4bce0447a09af6a
+SHA1 (patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread.h) = 5c41e1175a1a7a65308d2366072eaf9f0d56875e
+SHA1 (patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread__internal__posix.h) = 8589e662f472d0c053c328643070caf540e9aba7
+SHA1 (patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread__posix.cc) = 82c4a2e4109097e7392647bd844a20933cb0142b
+SHA1 (patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__config.h) = b6b12d64e5e4d9927ea57d34ce3c509ff32adab7
+SHA1 (patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__constants.h) = a9015c54ed0e8ad42822c861030efd1116369782
+SHA1 (patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__forward.h) = 0d36d36612c663374103efa43df9765b2defaf7a
+SHA1 (patch-base_allocator_partition__allocator_src_partition__alloc_partition__root.cc) = 2b493f343af1d1bc8b8972cb12efdf0e89e5e924
+SHA1 (patch-base_allocator_partition__allocator_src_partition__alloc_spinning__mutex.cc) = c43f5ec59bb7cd3baae8856ff19fd6ce6bd24340
+SHA1 (patch-base_allocator_partition__allocator_src_partition__alloc_stack_stack.cc) = b7867447c55103ff4352bd73f4783ddf758a9606
+SHA1 (patch-base_allocator_partition__allocator_src_partition__alloc_thread__isolation_pkey.cc) = 43f88cac1e1813369bda3cf7e0fd0c4248ba9b91
+SHA1 (patch-base_atomicops.h) = 8bb4a76f61b69df2083ae2510cf040c5a2537ef2
+SHA1 (patch-base_base__paths__posix.cc) = 02457e3fe4c1358f0b0783ee02c5c4f404beb8d5
+SHA1 (patch-base_compiler__specific.h) = 4cc2b4d84fa79c1c8ded98f7d6cfbcd691b84b9f
+SHA1 (patch-base_debug_debugger__posix.cc) = 2c5655b2d10df078b460892f12859da5afbacaf0
+SHA1 (patch-base_debug_elf__reader.cc) = aee33edda83ab06b6da747c2504fe2fefbb2f0f1
+SHA1 (patch-base_debug_proc__maps__linux.cc) = 41baab5bdb100b3b52eb36fe1328584bb12f5d4c
+SHA1 (patch-base_debug_stack__trace.cc) = fed9995727746a95c9abc3b9402e601a1dd79123
+SHA1 (patch-base_debug_stack__trace__posix.cc) = 62184cd10e94bc6e0e42bded944d9ac3aeb26f10
+SHA1 (patch-base_features.cc) = f6805243a2540f3ec9e7301a0872b705ecb624a9
+SHA1 (patch-base_files_dir__reader__linux.h) = 62fe1b8e288ccba866454d48452252b2d057a2f0
+SHA1 (patch-base_files_dir__reader__posix.h) = e0c24b75c05e2085a36282fa19df11eafb02b7ae
+SHA1 (patch-base_files_file__path__watcher.h) = 9a2510d3d2554547a120344abe241b1afb9947e0
+SHA1 (patch-base_files_file__path__watcher__bsd.cc) = 62a6c06b35c4127d386bfa4ab6596e8c98eb7997
+SHA1 (patch-base_files_file__path__watcher__kqueue.cc) = a0469e7d1ec94321a002f8619736c5a46c0f162d
+SHA1 (patch-base_files_file__path__watcher__kqueue.h) = 3ba01e4519b8302379673c4be90b0b233c2d0c42
+SHA1 (patch-base_files_file__path__watcher__unittest.cc) = 3c5e45847d757dd5cd2f10bcae7c2551b5507cfa
+SHA1 (patch-base_files_file__util__posix.cc) = 5cc98db360ddaa16805125568f7bf047a6622f0d
+SHA1 (patch-base_files_file__util__unittest.cc) = 5af168dfed74d3dd7c4cd41b703eadd509902a50
+SHA1 (patch-base_files_important__file__writer__cleaner.cc) = bfc5383823677d7d30bad1c29042cbadfbdd0837
+SHA1 (patch-base_files_scoped__file.cc) = 8c05cac1d5e45c25e413ab0856b39b293811c0de
+SHA1 (patch-base_functional_unretained__traits.h) = deaacdf0fc40855dc147f0b2af4442ab6cb115e3
+SHA1 (patch-base_i18n_icu__util.cc) = e6329cd1026c50771925f0364846e2af278d56a6
+SHA1 (patch-base_linux__util.cc) = 5ec557db40298a3059f5859454b3cc55996a3c05
+SHA1 (patch-base_logging__unittest.cc) = 43678f9f114e2e054efbfa4d34a24ba1b7c1d798
+SHA1 (patch-base_memory_discardable__memory.cc) = 497ccbeac07d0f89bde92109e885d148dc64322d
+SHA1 (patch-base_memory_discardable__memory__internal.h) = d6c394244774bb6f1a76f45409719b94f1f3880d
+SHA1 (patch-base_memory_madv__free__discardable__memory__posix.cc) = 972ee2ee5eb025924ec8e7b77ba0c6b6a7a1e89d
+SHA1 (patch-base_memory_platform__shared__memory__region.h) = 1ff30a75085e78cb6589fff63ddd043ff9ea4d5d
+SHA1 (patch-base_memory_platform__shared__memory__region__posix.cc) = 1ffa8b265c406fe1d876331bf9eb36a22389f604
+SHA1 (patch-base_message__loop_message__pump__glib.cc) = 42bc33f732fccc474a9c491baab99b1fe3222314
+SHA1 (patch-base_native__library__posix.cc) = 515ac00aec7c0bb8e373793d9b378517bfb91688
+SHA1 (patch-base_native__library__unittest.cc) = 5593674b9b50ee5e545a67e8d1588fb1e6e67b3d
+SHA1 (patch-base_posix_can__lower__nice__to.cc) = 7ef7881eefa20a993c7edebfba6ae71d724204df
+SHA1 (patch-base_posix_sysctl.cc) = 001bc59d6dbb9b38dc51d4bd7830c9c50f2af164
+SHA1 (patch-base_posix_unix__domain__socket.cc) = a55538cdcae981cf1ccb204cd5c0a80ee23f359e
+SHA1 (patch-base_posix_unix__domain__socket__unittest.cc) = 10c40f3da0a8c64916f39b22afc4cfd6ed695fa4
+SHA1 (patch-base_process_internal__linux.h) = 57377bc7c187b5e54425b65897767959d8e10c1a
+SHA1 (patch-base_process_kill.h) = ae00710c8495a99364ea56b670376f9985cdf406
+SHA1 (patch-base_process_kill__posix.cc) = f15107437e4e35b03686c1b2535a9b67463c5277
+SHA1 (patch-base_process_launch.h) = 4cc7aba5cb0de4689e6903f802c37a2d28aa19d9
+SHA1 (patch-base_process_launch__posix.cc) = bc7ff19bc91e7db2bba20f2de918f415740630f6
+SHA1 (patch-base_process_memory__linux.cc) = 6cd3cb7336558e13b2a79f00c6de96c1173b968f
+SHA1 (patch-base_process_process__handle.cc) = 0682f2b5ba45cfe4dd6c592c8e2f2fdbe90e13e6
+SHA1 (patch-base_process_process__handle.h) = c9d0e19b8f7e3241508acea53e242f4787d16f53
+SHA1 (patch-base_process_process__handle__freebsd.cc) = cc5d3d123708314f313da759f8e68a11222fa8ff
+SHA1 (patch-base_process_process__handle__netbsd.cc) = 21b28db81b852b88d82fbaa3d8a59946def99e0c
+SHA1 (patch-base_process_process__handle__openbsd.cc) = a27c465835a4280565f774269db8e05848dfc5f3
+SHA1 (patch-base_process_process__iterator.h) = b07bc14029de3295aeeb587c1f45805572407a2c
+SHA1 (patch-base_process_process__iterator__freebsd.cc) = 5a87afb743d33b8ca1d39d42df0b435c080915e9
+SHA1 (patch-base_process_process__iterator__netbsd.cc) = 0bb523ba86763235de700f6018a96d9f016f7bde
+SHA1 (patch-base_process_process__iterator__openbsd.cc) = d46f24eceb9af95f8b71fbc755fbbd6a7e55523d
+SHA1 (patch-base_process_process__metrics.cc) = 6884dec0ae85889b454b622d220f162267aae805
+SHA1 (patch-base_process_process__metrics.h) = 0e7d69ec46466ee9ffad4e990745e7ed5606c1e8
+SHA1 (patch-base_process_process__metrics__freebsd.cc) = d4b98a7a148fc3efcbf7e1b69dc3504839d754da
+SHA1 (patch-base_process_process__metrics__netbsd.cc) = b784d0c27b05eaae99a8c35bfae5c29166dfcf1b
+SHA1 (patch-base_process_process__metrics__openbsd.cc) = e31167c1a50b4ba069e238153db8775c10a3b0a4
+SHA1 (patch-base_process_process__metrics__posix.cc) = f5e5423a46f654bba42808aac3a738d7ff95941c
+SHA1 (patch-base_process_process__metrics__unittest.cc) = cb32409cec2af5b3ff44096dfc3413aa56f10b96
+SHA1 (patch-base_process_process__posix.cc) = 4a331ee5c72e7c0a7ed861ef2787ac4a0c98aaa5
+SHA1 (patch-base_process_process__unittest.cc) = d7defbd05a7b9f2a1289c9bd1289e78076158c37
+SHA1 (patch-base_profiler_module__cache.cc) = d9081b55af8ac99771e859c34504c5e251ec4bcc
+SHA1 (patch-base_profiler_sampling__profiler__thread__token.cc) = cdc43c457d89b4e9dd370856f81d527aa136f5dd
+SHA1 (patch-base_profiler_sampling__profiler__thread__token.h) = 2612cfeeee9ab9c313be9248de45560e4e7a86e7
+SHA1 (patch-base_profiler_stack__base__address__posix.cc) = 2927dee8ed2b4ed2e4a54d6222159eef0d0e077e
+SHA1 (patch-base_profiler_stack__sampling__profiler__test__util.cc) = e814ed66cd1dac768a18df88398e1d5d9fa60c47
+SHA1 (patch-base_profiler_stack__sampling__profiler__unittest.cc) = dfd3d96b317e37fb3d61d85323334f5010bb74cc
+SHA1 (patch-base_profiler_thread__delegate__posix.cc) = c5a7355ab52aba1ba4162533dd264ae5d9d30068
+SHA1 (patch-base_rand__util.h) = 6bf46d14ee9b23dd34d25d370e2603d6fb79eda3
+SHA1 (patch-base_rand__util__posix.cc) = 34d473588fe9594a4508a315049e2e8b5f23418f
+SHA1 (patch-base_strings_safe__sprintf__unittest.cc) = 9af82ca3b3a6ed436a27c20d97a2cee6c3e07b6c
+SHA1 (patch-base_synchronization_lock__impl.h) = 8f4497bb4f79c7c2ed3951ae235eafa23f3f02e5
+SHA1 (patch-base_syslog__logging.cc) = 177d7e21d3d22e4f1958165496a9e53641b70d1a
+SHA1 (patch-base_system_sys__info.cc) = b0f8111298508ec3b35a2a3f4818fa4c7a0547d5
+SHA1 (patch-base_system_sys__info.h) = 5d24f4a4a4f30b53445268f04112d4ca48ca4810
+SHA1 (patch-base_system_sys__info__freebsd.cc) = c45731afe2ebbcfe88d1db241fdcbedd2462bccb
+SHA1 (patch-base_system_sys__info__netbsd.cc) = 2ba43eae7dffff7f42b5924481329cb2fea033e0
+SHA1 (patch-base_system_sys__info__openbsd.cc) = 51eab962617c3cf5b565d7f04c21efcc0777ff3f
+SHA1 (patch-base_system_sys__info__posix.cc) = 05e2462473d366c1304bae81d33957228ba8bd2c
+SHA1 (patch-base_system_sys__info__unittest.cc) = cb007c3844778f8471943ab30f9f011907e4510c
+SHA1 (patch-base_task_thread__pool_environment__config__unittest.cc) = 6e65d556cfaed06a333cdff0f9101042b6e52351
+SHA1 (patch-base_test_launcher_test__launcher.cc) = 8de39b3fd21bf4ccb56d339b404e4b2540b299a9
+SHA1 (patch-base_test_test__file__util__linux.cc) = 3532a723ebef88fb293ba8c21e2a29afa8f72d83
+SHA1 (patch-base_test_test__file__util__posix.cc) = 16f2cbed364262b05f69a83379b367be16bd2b0e
+SHA1 (patch-base_threading_hang__watcher.cc) = a33bc29b8f8b670a6a7ee59909e7e9ac5e6d6f23
+SHA1 (patch-base_threading_platform__thread.h) = 7d64861d47046bdeb6f9e92b40b9984a06ec2cac
+SHA1 (patch-base_threading_platform__thread__bsd.cc) = ca2fba620a1d2332c08c44ef742ebeda8d89da9d
+SHA1 (patch-base_threading_platform__thread__internal__posix.cc) = f263386a30725da0fc7e146fd78394dc9c2a4d1b
+SHA1 (patch-base_threading_platform__thread__posix.cc) = 88bdd12987d727aacf1333974ddf10af87183f03
+SHA1 (patch-base_threading_platform__thread__unittest.cc) = 111064d800afbcabf9e470b5e6804fef3598a610
+SHA1 (patch-base_trace__event_malloc__dump__provider.cc) = d1cef7a4c074d7befd609f10715d08b2c35d57f5
+SHA1 (patch-base_trace__event_memory__dump__manager.cc) = 47c0c853a83f9c7a786703530683c85e13de128d
+SHA1 (patch-base_trace__event_process__memory__dump.cc) = bd6168255eb266ced54a09f940ad7235fc822335
+SHA1 (patch-base_tracing_trace__time.cc) = ea317d352a226660cc30341bd3c71aaac0f90717
+SHA1 (patch-base_tracing_trace__time.h) = f1ca13e68890f93cdc54f9db3e79ed9faa690ee3
+SHA1 (patch-build_config_BUILD.gn) = 193c6a0c541cf4904cfd398cb6da1cff3b7a6c04
+SHA1 (patch-build_config_BUILDCONFIG.gn) = 3d7ed3d308625feadae20251ea0eca2aba37e3ec
+SHA1 (patch-build_config_clang_BUILD.gn) = 53974af22456cffd67c93557c87720dc928a65f4
+SHA1 (patch-build_config_compiler_BUILD.gn) = 53f81398a15fbce32afb577c6c8ba4e148a39a47
+SHA1 (patch-build_config_linux_BUILD.gn) = 1e91399516b6750ae944601ce2d73c50d1d287ce
+SHA1 (patch-build_config_linux_pkg-config.py) = 835197dbf230b433c000ebeaaf05943066bbea95
+SHA1 (patch-build_config_ozone.gni) = 9c9c41913c769d653902999191ad5a31be05dc23
+SHA1 (patch-build_config_rust.gni) = 76c72752a9e38ef359497ee92206310e2001d005
+SHA1 (patch-build_config_v8__target__cpu.gni) = 9934c3bbf3e7fe2326ad4e46f4d21f5ef7bb270b
+SHA1 (patch-build_detect__host__arch.py) = 5299019f7a1e80bfd0c2e6ca7ee19fa1dba790e4
+SHA1 (patch-build_gn__run__binary.py) = e3c14bc0be46be89a439ef8b4b291f9e20a78d98
+SHA1 (patch-build_linux_chrome.map) = 4ba36209bf8b11036f73166db3de71222f25c510
+SHA1 (patch-build_linux_strip__binary.py) = 0fa2ed8e832ee3cc2a68c016d3b2a92e6485a008
+SHA1 (patch-build_linux_unbundle_dav1d.gn) = 41e06c493541132c6bb042bd3c0ec0412385de4b
+SHA1 (patch-build_linux_unbundle_icu.gn) = 337f9f982e113ac8dea7c6d4e65f6db60405c882
+SHA1 (patch-build_linux_unbundle_libevent.gn) = ca791e21e668b925e095d391f2e422d525912e61
+SHA1 (patch-build_linux_unbundle_libusb.gn) = 00db4588cf1d8c8077f46791412c309d59dd18af
+SHA1 (patch-build_rust_rust__bindgen.gni) = 2b844c80c756eda26c956e3ed78429fc327f64f1
+SHA1 (patch-build_rust_std_BUILD.gn) = 0e3edb9fd11c76b374881d01e9b513e36d98254a
+SHA1 (patch-build_toolchain_freebsd_BUILD.gn) = dd601da83989c34f6700325d5923855f076361f2
+SHA1 (patch-build_toolchain_gcc__solink__wrapper.py) = fb1f3383f63a1cd0bf045991409aef683837c424
+SHA1 (patch-build_toolchain_gcc__toolchain.gni) = 1a0ee348e915527093cf01905d60cfd2469d1e31
+SHA1 (patch-build_toolchain_netbsd_BUILD.gn) = 74abdde8597d18301cfae19565a9268f831031b9
+SHA1 (patch-build_toolchain_openbsd_BUILD.gn) = 9f5778efcad16847bed9ae2f32a2fe53a3fb7f78
+SHA1 (patch-build_toolchain_toolchain.gni) = 08c3cd7e0ef6902d33110d861a821a539c64d715
+SHA1 (patch-cc_BUILD.gn) = 9b5f262417a9e23c81bce65a0d0bc9dcbe2a567d
+SHA1 (patch-cc_base_features.cc) = ffffe37d067d744fe7da0ba38167b7e14ad1721b
+SHA1 (patch-chrome_app_chrome__command__ids.h) = bbdbc52af09b4e991dc598fc2d80d27e5deab359
+SHA1 (patch-chrome_app_chrome__main.cc) = 4a389de0e5187ac77e8ac8981ffb6c22d69e534e
+SHA1 (patch-chrome_app_chrome__main__delegate.cc) = 9d3afdc50a7cf28eee51c3fa294edaa630bc93fc
+SHA1 (patch-chrome_browser_BUILD.gn) = 8244ac6d709d18d93e04fe5f548b02039696473c
+SHA1 (patch-chrome_browser_about__flags.cc) = 258bbb20c5dae3028ec762c6b8cf61278726eafa
+SHA1 (patch-chrome_browser_after__startup__task__utils.cc) = cdbf5b0a219f294b752bc502902f4938fe24589e
+SHA1 (patch-chrome_browser_apps_app__service_publishers_extension__apps.cc) = 7cf892ddffd14d5cad7af2c3861cbb5cc7d480c5
+SHA1 (patch-chrome_browser_apps_platform__apps_platform__app__launch.cc) = 9c8d76a45639479d09ae321d744908834e206957
+SHA1 (patch-chrome_browser_apps_platform__apps_platform__app__launch.h) = 78d8865084cee711faac6b0e4ba8e782aaaef8a7
+SHA1 (patch-chrome_browser_autocomplete_chrome__autocomplete__scheme__classifier.cc) = 178d6be23d83e38025bc5154973cde9a1f83b6e8
+SHA1 (patch-chrome_browser_background_background__mode__manager.cc) = f7f0dc41d51611a8ac3c6f6f2271121ce9eabbdf
+SHA1 (patch-chrome_browser_background_background__mode__optimizer.cc) = 601882570b6f2fc3cbd78ecaa4ea20b26e07c3ac
+SHA1 (patch-chrome_browser_browser__features.cc) = d5471ed08192c97458e4bfda7deae7bb0a9217cf
+SHA1 (patch-chrome_browser_browser__process__impl.cc) = b26dc95f5778210c83f51ead9b55e759fa11e8c3
+SHA1 (patch-chrome_browser_browser__process__impl.h) = c679c10c59845fc26c26f49834445ac4657bf198
+SHA1 (patch-chrome_browser_chrome__browser__interface__binders.cc) = fe71ccd00a10fa442efcd2bcf7a343aaf8eebd82
+SHA1 (patch-chrome_browser_chrome__browser__main.cc) = 6b8ca3cb5461df0b17424e8cfe67d20182065be1
+SHA1 (patch-chrome_browser_chrome__browser__main__extra__parts__linux.cc) = b3d01763b5b66526eed78f6387ea3dc3223eb923
+SHA1 (patch-chrome_browser_chrome__browser__main__extra__parts__ozone.cc) = 4067b4d14e53cc446629af88d05ba16483dd4e3a
+SHA1 (patch-chrome_browser_chrome__browser__main__linux.cc) = 5e0e5a9ce1dc93ddb3d5f509af32a9a42e919f7e
+SHA1 (patch-chrome_browser_chrome__browser__main__linux.h) = 567b25b855aebbe75b2c35eae039680e326e6ade
+SHA1 (patch-chrome_browser_chrome__browser__main__posix.cc) = 06cc22fbacd8973257a9fe034a32d9bd9d93e251
+SHA1 (patch-chrome_browser_chrome__content__browser__client.cc) = ef4ab02676f4f8b9b3216709003f3f3705bb9886
+SHA1 (patch-chrome_browser_chrome__content__browser__client.h) = 7e4518bff6e0cc86a70f5dab1f4584679f1622dc
+SHA1 (patch-chrome_browser_component__updater_widevine__cdm__component__installer.cc) = deab7293a5cd93c07c3a9c9634489613e8c01285
+SHA1 (patch-chrome_browser_custom__handlers_chrome__protocol__handler__registry__delegate.cc) = 0784bf331e43295e22b44f48ce892dcf849557a0
+SHA1 (patch-chrome_browser_defaults.cc) = d646ad9fa89df2853064df0c99e855a8bf034ef2
+SHA1 (patch-chrome_browser_device__identity_device__oauth2__token__service__factory.cc) = a507d9a4849c0ba9a7ef525f5ef34240a0e82bd7
+SHA1 (patch-chrome_browser_diagnostics_diagnostics__writer.h) = 4a51c198ec4539bffd7141b9a725b90b0b1e2885
+SHA1 (patch-chrome_browser_download_chrome__download__manager__delegate.cc) = ff520460a62818f2f7d4e36fe9fd4e6699ee9598
+SHA1 (patch-chrome_browser_download_download__commands.cc) = 93fdef98ce7c07336893258b548a88ba1fb32665
+SHA1 (patch-chrome_browser_download_download__commands.h) = ef484468b08c65c7ae51c627874dfa176f56c9cd
+SHA1 (patch-chrome_browser_download_download__file__picker.cc) = 5fdb54275fd9856f8adcef61333810ad69243f43
+SHA1 (patch-chrome_browser_download_download__item__model.cc) = 3d40a55441932d6323a568e0685569048ecc7ba4
+SHA1 (patch-chrome_browser_download_download__prefs.cc) = 714d11413025f77f2b710de567c190b16ffcb7a3
+SHA1 (patch-chrome_browser_download_download__prefs.h) = 607ec609c7d6605afb896fbc7bfdfbed66b2a9a1
+SHA1 (patch-chrome_browser_enterprise_browser__management_browser__management__service.cc) = f1e6db31b135a1d56b4ee67f1aaf9e9c10e7e363
+SHA1 (patch-chrome_browser_enterprise_browser__management_browser__management__service.h) = 4a4eb2c9f25946fd84c5dada3b35eb0beae14f0c
+SHA1 (patch-chrome_browser_enterprise_connectors_analysis_analysis__service__settings.cc) = c3658ba1ae21797fb0ed0fde6d09daa9803909bb
+SHA1 (patch-chrome_browser_enterprise_connectors_connectors__service.cc) = ae9b49bd5835a00b021b1a1e9e1551a076bc2c75
+SHA1 (patch-chrome_browser_enterprise_connectors_device__trust_device__trust__connector__service__factory.cc) = c1c5010c286783ed637cec0f53ed9affd260b4b6
+SHA1 (patch-chrome_browser_enterprise_connectors_device__trust_device__trust__service__factory.cc) = c6cde420f08ae53eb5975c5511499bae48936c1d
+SHA1 (patch-chrome_browser_enterprise_connectors_device__trust_key__management_browser_commands_key__rotation__command__factory.cc) = 0675b1a044366327c3c0483e2554213113a9e3f6
+SHA1 (patch-chrome_browser_enterprise_connectors_device__trust_key__management_core_persistence_key__persistence__delegate__factory.cc) = 9c436a368b43f2a562240a01910359913c5b4839
+SHA1 (patch-chrome_browser_enterprise_connectors_device__trust_signals_signals__service__factory.cc) = 718e8a8f8aa6960a08aa4c93da8f1ac740dd2ae8
+SHA1 (patch-chrome_browser_enterprise_connectors_reporting_browser__crash__event__router.cc) = 166e3d5fe16a1b4643a327be8602313f67fc88c4
+SHA1 (patch-chrome_browser_enterprise_connectors_reporting_crash__reporting__context.cc) = 32e74faff5c1efd65b2ac13cd307be9d9010de9d
+SHA1 (patch-chrome_browser_enterprise_connectors_reporting_realtime__reporting__client.cc) = cdb57fb92437805a8c7896b55a1604df93ae8d1e
+SHA1 (patch-chrome_browser_enterprise_connectors_reporting_realtime__reporting__client.h) = 6b5aef21524e5c6155e7eb7c794348884fab4b70
+SHA1 (patch-chrome_browser_enterprise_identifiers_profile__id__delegate__impl.cc) = 0fc57242d519c328ba192923e52f29f5f138aa69
+SHA1 (patch-chrome_browser_enterprise_profile__management_profile__management__navigation__throttle.cc) = dfb5e5ed6bd84bf0705f51c666a9d89d1cb71261
+SHA1 (patch-chrome_browser_enterprise_remote__commands_cbcm__remote__commands__factory.cc) = 5f03d7b9949d521c029f2dd914aaeba94db729dd
+SHA1 (patch-chrome_browser_enterprise_signals_device__info__fetcher.cc) = a7ec3a52d99dfe598a81f5493f92a628ff7425c9
+SHA1 (patch-chrome_browser_enterprise_signals_device__info__fetcher__linux.cc) = a31aefb692e91b4e3d98ec86aa3b993ec464a541
+SHA1 (patch-chrome_browser_extensions_BUILD.gn) = d843b0a2a2404c18355caf7a6b269606f8cb8925
+SHA1 (patch-chrome_browser_extensions_api_api__browser__context__keyed__service__factories.cc) = d58b72273563114a1f7f61f634aa17264055baff
+SHA1 (patch-chrome_browser_extensions_api_enterprise__reporting__private_chrome__desktop__report__request__helper.cc) = 430fad0dbb858455292fdb6af9ae7a443c1f30d8
+SHA1 (patch-chrome_browser_extensions_api_enterprise__reporting__private_conversion__utils.cc) = 86c28a5505fbc9357334d85e641f9757f8a079e4
+SHA1 (patch-chrome_browser_extensions_api_enterprise__reporting__private_conversion__utils.h) = bc83759b8a384145589b10c3de4489ae791f0b8e
+SHA1 (patch-chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.cc) = dc15a74e9f0cfaeb3050207c0debc966629c609f
+SHA1 (patch-chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.h) = cac05384b077733a524c73988583672f94e55942
+SHA1 (patch-chrome_browser_extensions_api_image__writer__private_removable__storage__provider.cc) = be949a495604a8b41881f91eb15be75b923633ab
+SHA1 (patch-chrome_browser_extensions_api_management_chrome__management__api__delegate.cc) = 01c52de2ef0da753fe74cf7375943ea5c4370445
+SHA1 (patch-chrome_browser_extensions_api_messaging_native__process__launcher__posix.cc) = 0324afd64ccf14ba4eba5e070cb9eb11fd966532
+SHA1 (patch-chrome_browser_extensions_api_passwords__private_passwords__private__delegate__impl.cc) = bfba0e2bbd331c1204fb603870a776ed47addc4a
+SHA1 (patch-chrome_browser_extensions_api_runtime_chrome__runtime__api__delegate.cc) = 1f4d344f4cee1927be222cdc4375580d56d8902f
+SHA1 (patch-chrome_browser_extensions_api_settings__private_prefs__util.cc) = 0a8e64cce7cadb3b37ead01b62e6c9ee3c5f3411
+SHA1 (patch-chrome_browser_extensions_api_tabs_tabs__api.cc) = e73b767c30b5512969ef3f9a4bc1a2c34ce00194
+SHA1 (patch-chrome_browser_extensions_api_webrtc__logging__private_webrtc__logging__private__api.cc) = dcb2900f894b60c1c92b708e874e030d14252c24
+SHA1 (patch-chrome_browser_extensions_api_webstore__private_webstore__private__api.cc) = 4cfaa67303c307bcdb527f2f13cbdf4cc3a72ae4
+SHA1 (patch-chrome_browser_extensions_external__provider__impl.cc) = 3285dc77cc59449baf76901b782ee2ae71929bf9
+SHA1 (patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.cc) = 98517c4a0957a7130db6922b6f91e6ee54f359d6
+SHA1 (patch-chrome_browser_first__run_first__run__dialog.h) = b3ce2cc926fee8d54d87214c1bd2aec10963f88c
+SHA1 (patch-chrome_browser_first__run_first__run__internal.h) = 86b43949a7806b9b5f8055569382763ab3e31036
+SHA1 (patch-chrome_browser_flag__descriptions.cc) = d08751f5c343608f3515f710123ce9753675ba27
+SHA1 (patch-chrome_browser_flag__descriptions.h) = 0bf1f4c124f0849d80816dccc415b7aacbd50981
+SHA1 (patch-chrome_browser_gcm_gcm__profile__service__factory.cc) = d248e06e9319171f62a18007700d303f8206241c
+SHA1 (patch-chrome_browser_gcm_instance__id_instance__id__profile__service__factory.cc) = e60085b832032173986245b279127b6f2622d8ac
+SHA1 (patch-chrome_browser_headless_headless__mode__util.cc) = 231aa3e49473c538087e0d579b51d654b2af7166
+SHA1 (patch-chrome_browser_intranet__redirect__detector.h) = 77d8ced37fcf50fdcd52140a6b9293adde8bf070
+SHA1 (patch-chrome_browser_media__galleries_fileapi_mtp__device__map__service.cc) = 1a15558146a82ad78723f85f8730adf2e503bc16
+SHA1 (patch-chrome_browser_media__galleries_media__file__system__registry.cc) = eb9c3bdf1b318211ff3340574610c436fad5e148
+SHA1 (patch-chrome_browser_media_audio__service__util.cc) = a5e464ae17c068f4c7a27752e19618d27d2d43b2
+SHA1 (patch-chrome_browser_media_router_discovery_BUILD.gn) = b5c11e775a36ad7a42c69d7e7060a9609fcef2bc
+SHA1 (patch-chrome_browser_media_router_discovery_discovery__network__list__posix.cc) = 1501e1282e576110e538f84f99b4ab25a3e321bb
+SHA1 (patch-chrome_browser_media_router_discovery_discovery__network__list__wifi__linux.cc) = 55042c2bca9da13946105603d1f3ab7f94857663
+SHA1 (patch-chrome_browser_media_webrtc_chrome__screen__enumerator.cc) = fe45f2ae94e502c2fa2d877074ba344d5f32b78d
+SHA1 (patch-chrome_browser_media_webrtc_chrome__screen__enumerator.h) = 5f9a282a7a52347c3979311940873451104cac0e
+SHA1 (patch-chrome_browser_media_webrtc_desktop__media__picker__controller.cc) = cc8faf733093559e9bda198be49f4910cf150c81
+SHA1 (patch-chrome_browser_media_webrtc_webrtc__log__uploader.cc) = 6e71df9b562d4716232b5751583390d6b00909d2
+SHA1 (patch-chrome_browser_media_webrtc_webrtc__logging__controller.cc) = e16be562cc10903181ae89092b7cb83666454c65
+SHA1 (patch-chrome_browser_media_webrtc_webrtc__logging__controller.h) = d78260b776da39e2b44ff76041ba6475fecd8c1b
+SHA1 (patch-chrome_browser_memory__details.cc) = d0b692e16b8fcdac994a41522b88d958fcab0ed4
+SHA1 (patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc) = bc60eb142a0c36c12ca865f51e01b1a534029f57
+SHA1 (patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.h) = 38553ac02a6e39df21d47b0cea7af9bec7405e2f
+SHA1 (patch-chrome_browser_metrics_chrome__metrics__service__client.cc) = fc6f68b03853aaf2919642754ccbe1e9155b5bd2
+SHA1 (patch-chrome_browser_metrics_perf_cpu__identity.cc) = 9cf80d81708649e53e058758e26e404681341a48
+SHA1 (patch-chrome_browser_metrics_power_process__metrics__recorder__util.cc) = 1e922231f5f4261fdf57d3e60058fc324fe0dfe1
+SHA1 (patch-chrome_browser_metrics_power_process__monitor.cc) = 37d09de3b809eade5211e28f4ee15b7d0de8bd55
+SHA1 (patch-chrome_browser_metrics_power_process__monitor.h) = b18a6c7d188c9b76365bdf0e51ee2cc2f47bbe94
+SHA1 (patch-chrome_browser_net_system__network__context__manager.cc) = 4af278206af7675ed7e89d74617e1b038d8a517d
+SHA1 (patch-chrome_browser_net_system__network__context__manager.h) = be11da977258c5e127f202967dbddc150d4553e8
+SHA1 (patch-chrome_browser_new__tab__page_modules_file__suggestion_drive__service.cc) = 66561347deb7bf8b7a0906489e5c6ad5e09e4925
+SHA1 (patch-chrome_browser_new__tab__page_new__tab__page__util.cc) = 48e995349c178f34ee08c923c4f1517882de4894
+SHA1 (patch-chrome_browser_notifications_notification__display__service__impl.cc) = 07c9b2e686534d12767bbbed619103a1c5b660ca
+SHA1 (patch-chrome_browser_notifications_notification__platform__bridge__delegator.cc) = a4d593f86bd0981081832fd2ed2d3aeb4a26997d
+SHA1 (patch-chrome_browser_password__manager_chrome__password__manager__client.cc) = 2e311ab709cb770b10196c279098ed4854eefbf9
+SHA1 (patch-chrome_browser_password__manager_password__reuse__manager__factory.cc) = 4f633e2e6590b9b04ac128785bf2e0e6ee6970a3
+SHA1 (patch-chrome_browser_platform__util__linux.cc) = 5f9eeac4bc445404081d1b431dca926df03e9464
+SHA1 (patch-chrome_browser_policy_browser__signin__policy__handler.cc) = e55f4c652268b7e48bf7b13ab0a348dc372aef7b
+SHA1 (patch-chrome_browser_policy_chrome__browser__cloud__management__controller__desktop.cc) = e6eec3e9069290c78c819ec4beb7552687f87533
+SHA1 (patch-chrome_browser_policy_configuration__policy__handler__list__factory.cc) = 22f63bc1dd411af656f2316baf6620d3d6617fef
+SHA1 (patch-chrome_browser_policy_device__management__service__configuration.cc) = dd267b34bb9169e488495bde3e5d3c41fd5f4784
+SHA1 (patch-chrome_browser_policy_policy__value__and__status__aggregator.cc) = 4fb79cfa26ce6f0f978c06223d378fb85c72b3f5
+SHA1 (patch-chrome_browser_prefs_browser__prefs.cc) = 84ec8d40107189398f911280a06ed348a4f10b83
+SHA1 (patch-chrome_browser_prefs_pref__service__incognito__allowlist.cc) = 687f5cdfdffe90c8706df0f171645153a072f922
+SHA1 (patch-chrome_browser_printing_print__backend__service__manager.cc) = 382216a6ce54a1fd0a421064f7ac4a734eab8f49
+SHA1 (patch-chrome_browser_printing_printer__query.cc) = 4cb82df111bfa74d63a0bc715794373ef70e0505
+SHA1 (patch-chrome_browser_process__singleton__posix.cc) = 793343a61a7f2e621fd2037104e2aea339ae95fe
+SHA1 (patch-chrome_browser_profiles_chrome__browser__main__extra__parts__profiles.cc) = b8f7ea2b47b507e2a5e7d683116b6dc0c0f40bbf
+SHA1 (patch-chrome_browser_profiles_profile__impl.cc) = cf49f0be4b41239c3a7e97204fde8d2dbbf60ae7
+SHA1 (patch-chrome_browser_profiles_profiles__state.cc) = 349a7c5e7d124879ac5a80f5effa1855a0f27b98
+SHA1 (patch-chrome_browser_renderer__preferences__util.cc) = 74e4e11b6222f3270f803798b326ea37316bb18d
+SHA1 (patch-chrome_browser_resources_settings_autofill__page_passwords__shared.css) = 10d2faa338706e0075a3068e772bfdda04990774
+SHA1 (patch-chrome_browser_resources_signin_signin__shared.css) = 46c4e0c71e8b35ae8f6be9a5ef2b63446735e55a
+SHA1 (patch-chrome_browser_safe__browsing_cloud__content__scanning_binary__upload__service.cc) = 83c5598a068fca71f00e8d26d678574cc3ecd994
+SHA1 (patch-chrome_browser_safe__browsing_cloud__content__scanning_deep__scanning__utils.cc) = e6f5dbd0978eccdb493c47de561c121e7c63235d
+SHA1 (patch-chrome_browser_safe__browsing_incident__reporting_incident__reporting__service.cc) = ee8ae757ceb5d766d3966b51a5f3b4c5eb69cdbe
+SHA1 (patch-chrome_browser_screen__ai_screen__ai__install__state.cc) = b57a0477e409cb5a249cafae4ce28aeea20e39ac
+SHA1 (patch-chrome_browser_screen__ai_screen__ai__service__router.cc) = c1cdfbeb697d6e356af4313c63c731f67947490b
+SHA1 (patch-chrome_browser_send__tab__to__self_receiving__ui__handler__registry.cc) = 27682c880426683f930b18aabed224edd759df85
+SHA1 (patch-chrome_browser_send__tab__to__self_send__tab__to__self__client__service.cc) = cd7902c3a258403fd95dbb682c7b4c66e008a1e9
+SHA1 (patch-chrome_browser_sessions_session__restore.cc) = bbffcc6b846e4da59d58b92dd49d0b5a339b4335
+SHA1 (patch-chrome_browser_sharing_sharing__device__registration.cc) = 34d614609f1050f7197d4900397baccbb3b1e86a
+SHA1 (patch-chrome_browser_sharing_sharing__handler__registry__impl.cc) = a865b8120f9cb4f56d023db975284ca647151f5e
+SHA1 (patch-chrome_browser_shortcuts_icon__badging.cc) = 47857ce80eeae84b4276cb89cb45cf6f1d504988
+SHA1 (patch-chrome_browser_signin_signin__util.cc) = ed486a20f97e6b000101a802f7a66879451f3982
+SHA1 (patch-chrome_browser_supervised__user_supervised__user__extensions__delegate__impl.cc) = 596d8dcb2973266643ab5ce7fc4da083ae81766a
+SHA1 (patch-chrome_browser_supervised__user_supervised__user__extensions__manager.cc) = 5779f2be0d3b26673770678063bc20a5e070634a
+SHA1 (patch-chrome_browser_supervised__user_supervised__user__extensions__manager.h) = 5f839d8d759cc3ab20737b69a4abe96fec77392c
+SHA1 (patch-chrome_browser_supervised__user_supervised__user__metrics__service__factory.cc) = e553b1900227c2b95ab741d643e16b72e5cbc983
+SHA1 (patch-chrome_browser_supervised__user_supervised__user__navigation__observer.cc) = c9883249c532ec1b0219df680c1b51cf04a29907
+SHA1 (patch-chrome_browser_sync_chrome__sync__client.cc) = dc5b1e7a53eba2e711bcc3a71b0a5fee2ee59e0d
+SHA1 (patch-chrome_browser_sync_device__info__sync__client__impl.cc) = be79fa1919ed7573336a47e577cc9814bcf30fba
+SHA1 (patch-chrome_browser_sync_sync__service__factory.cc) = 0197cf495f6a1126eb2db077d93102fdbcaeb002
+SHA1 (patch-chrome_browser_sync_sync__service__util.cc) = a24dd8d11e21bed87618f8d9a1b289095cde968c
+SHA1 (patch-chrome_browser_task__manager_sampling_task__group.cc) = 18aa5deb87cdd4d4fd206cc5daee074d1a916d48
+SHA1 (patch-chrome_browser_task__manager_sampling_task__group.h) = 456dc8d5850c5dd7de793275f5f61763d972a722
+SHA1 (patch-chrome_browser_task__manager_sampling_task__group__sampler.cc) = e9b548945e436b98eea1d2e1c9a86fcf766758a0
+SHA1 (patch-chrome_browser_task__manager_sampling_task__group__sampler.h) = 38100b0188076b3bc33bf2651e5a4a511d7c7a04
+SHA1 (patch-chrome_browser_task__manager_sampling_task__manager__impl.cc) = 960d6b2ce38806fd5092e952f2765d3a5f2ce2f9
+SHA1 (patch-chrome_browser_task__manager_task__manager__observer.h) = 7fa8cdcea83fe0fffa32951903d1abba63e8cb4b
+SHA1 (patch-chrome_browser_themes_theme__helper.cc) = 6c36c90322a41759502458bab54e0394d96f85fe
+SHA1 (patch-chrome_browser_themes_theme__service.cc) = 0b7b05b7cc4ccd16d97e74868d9bcb6a92410dd0
+SHA1 (patch-chrome_browser_themes_theme__service__aura__linux.cc) = 8dae91a3c56499f7a1ec317fbc0967dfbc262362
+SHA1 (patch-chrome_browser_themes_theme__service__factory.cc) = eaaaf1b4217e35dbc949fd0f257b3b88e0bf8c44
+SHA1 (patch-chrome_browser_ui_actions_chrome__action__id.h) = e05e4f820ee5841b0e171bb480220f0f5b5732aa
+SHA1 (patch-chrome_browser_ui_autofill_payments_desktop__payments__window__manager.cc) = 0109d2d5bdd40f1a98b2af7994cf2a5c9435786b
+SHA1 (patch-chrome_browser_ui_autofill_payments_desktop__payments__window__manager.h) = 7a2364d4dde63f479aa6b473c32b7e304730f97b
+SHA1 (patch-chrome_browser_ui_browser.h) = be69eef178fdafe90c9810d68cc1c20903a8387a
+SHA1 (patch-chrome_browser_ui_browser__command__controller.cc) = 7e49fe04a3bef84b64098d0668fb981fe08e0a92
+SHA1 (patch-chrome_browser_ui_browser__commands.cc) = 1a32b19f3a9aaca9b1da7f0a2769a12c07d77340
+SHA1 (patch-chrome_browser_ui_browser__ui__prefs.cc) = 190757c30124229c7b0e523f0783b5535dbde8d8
+SHA1 (patch-chrome_browser_ui_browser__view__prefs.cc) = ec4ec310e789b08e47cb1a36747d3bcb016960da
+SHA1 (patch-chrome_browser_ui_chrome__pages.cc) = 672da27cd20e1be6b4ceba37e7fda853eb8b4d3d
+SHA1 (patch-chrome_browser_ui_chrome__pages.h) = b43b815b75ebed57a09fc088bb6baadc5b7078d9
+SHA1 (patch-chrome_browser_ui_color_native__chrome__color__mixer.cc) = 8c912fc5ba29e6a6976699bf6319545a9ad844c9
+SHA1 (patch-chrome_browser_ui_omnibox_omnibox__pedal__implementations.cc) = 7d6ef19ed3f891c697510c2ab1715398f92f80fd
+SHA1 (patch-chrome_browser_ui_passwords_bubble__controllers_relaunch__chrome__bubble__controller.cc) = 11ed7842f140e81cb7bf4961b4dc8795772906f8
+SHA1 (patch-chrome_browser_ui_passwords_manage__passwords__ui__controller.cc) = a373fe942d84e16702ea907a2c2f2ef39eafe5cc
+SHA1 (patch-chrome_browser_ui_sad__tab.cc) = bdcd32e24639a7361db18d5cf2df9ad1b052ef7a
+SHA1 (patch-chrome_browser_ui_sharing__hub_sharing__hub__bubble__controller.h) = 62c93695da0a5602fe85cad0fe17f1075f2678cc
+SHA1 (patch-chrome_browser_ui_signin_signin__view__controller.cc) = 2b6ca81854641a54435e8c480e4bac7efc51e6bd
+SHA1 (patch-chrome_browser_ui_signin_signin__view__controller__delegate.h) = 3c41d4a2aadda91fd4919d7dc1d144ad8cc0f0bd
+SHA1 (patch-chrome_browser_ui_startup_bad__flags__prompt.cc) = 9c4690ece05fe8ab239d4b28a01886e2029cb681
+SHA1 (patch-chrome_browser_ui_startup_startup__browser__creator.cc) = 5d379d8866cb9a4f2776bf2640f77104922bcfaa
+SHA1 (patch-chrome_browser_ui_startup_startup__browser__creator__impl.cc) = d4a43f524813a442613d675e24e49d10aa776886
+SHA1 (patch-chrome_browser_ui_startup_startup__tab__provider.cc) = c5a045fd3ebd8a093ee1da1a31b4b1e5b824efe1
+SHA1 (patch-chrome_browser_ui_tab__helpers.cc) = e1b55ca9eaa4169e5ff53e68d02bce000867286f
+SHA1 (patch-chrome_browser_ui_tabs_features.cc) = a9abaf4c7bddaf00b9800c763005e70c71e58bbe
+SHA1 (patch-chrome_browser_ui_tabs_tab__strip__prefs.cc) = 49c00ce14c91df76b68e47f92f121358b3fe5bda
+SHA1 (patch-chrome_browser_ui_task__manager_task__manager__columns.cc) = fcc6eb6581808a6ad551e87dfc74ba17e98f0e0e
+SHA1 (patch-chrome_browser_ui_task__manager_task__manager__table__model.cc) = 00b3a5ed9487b2d82cad36c596c1dace62855cb3
+SHA1 (patch-chrome_browser_ui_test_popup__browsertest.cc) = 862d95c0775ac27c714f164eda4aa53755c90cad
+SHA1 (patch-chrome_browser_ui_test_test__browser__ui.cc) = 5bdcb819a46dc1815472c6a2f41b77eb358d0c27
+SHA1 (patch-chrome_browser_ui_ui__features.cc) = 2ac5e3e59e42c2872eedc7ab90c5a0cae06b64f2
+SHA1 (patch-chrome_browser_ui_ui__features.h) = fcdb3aef9067a7f4e0fd362b9bcf76cb7a301695
+SHA1 (patch-chrome_browser_ui_views_accelerator__table.cc) = e25d657b5089c2cf285616baec6d951064c83a03
+SHA1 (patch-chrome_browser_ui_views_apps_chrome__native__app__window__views__aura.cc) = b044a5b823a1f1b210d21eacdd98adab8572afc8
+SHA1 (patch-chrome_browser_ui_views_chrome__browser__main__extra__parts__views.cc) = 8eaff157b52aec0bc14a0eb117ca3c958b687592
+SHA1 (patch-chrome_browser_ui_views_chrome__views__delegate.h) = e66cc717acd50ab480a68455fa505db12cc6347b
+SHA1 (patch-chrome_browser_ui_views_chrome__views__delegate__linux.cc) = 6666c10927d8414614079cdc6b60580dc1cae5f1
+SHA1 (patch-chrome_browser_ui_views_compose_compose__dialog__view.cc) = bb39e703369406fe4dd3e94a5194d36bc0e2f552
+SHA1 (patch-chrome_browser_ui_views_frame_browser__frame.cc) = 0aa6cffc4621a850f8663c6e183bd50bec7635d2
+SHA1 (patch-chrome_browser_ui_views_frame_browser__frame.h) = 9b4de75858d413a69003a6f95c45745cf49242f6
+SHA1 (patch-chrome_browser_ui_views_frame_browser__frame__view__layout__linux.cc) = 1f8a1a78d03a36246e1c5b49fdb0b9cc967f42fd
+SHA1 (patch-chrome_browser_ui_views_frame_browser__frame__view__layout__linux__native.cc) = 8afcacc893c1aaf5062189ea4a01416b2777cd4a
+SHA1 (patch-chrome_browser_ui_views_frame_browser__frame__view__linux.cc) = 892abc75b334079db815b43529c7ab5577c1b2cf
+SHA1 (patch-chrome_browser_ui_views_frame_browser__non__client__frame__view__factory__views.cc) = 82917307853fbf4b19c8340ceb3c3231928136ea
+SHA1 (patch-chrome_browser_ui_views_frame_browser__view.cc) = 9e63b0efe47634f71797e6aeb78fc26028c6ee2e
+SHA1 (patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.cc) = 00d351a5d211b9545416d2828b25ddaba9448f62
+SHA1 (patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.h) = e1dd5c51de755be63f46dd93531c890f19d856cf
+SHA1 (patch-chrome_browser_ui_views_frame_opaque__browser__frame__view__layout__delegate.h) = d7de5b624df83a1723b9dc05538143dfc94ab927
+SHA1 (patch-chrome_browser_ui_views_frame_picture__in__picture__browser__frame__view.cc) = 420d5b07a512cb34c7e61780d027c12a053d3f74
+SHA1 (patch-chrome_browser_ui_views_frame_picture__in__picture__browser__frame__view.h) = f5cd415aaed5904a728c419f21a193ce371fb49c
+SHA1 (patch-chrome_browser_ui_views_frame_system__menu__model__builder.cc) = a09930c851fc04ca9f856ce477121dbbd5b3abb3
+SHA1 (patch-chrome_browser_ui_views_frame_system__menu__model__delegate.cc) = c8e0194ea364383229c0183f9b1568925ac3fd40
+SHA1 (patch-chrome_browser_ui_views_frame_tab__strip__region__view.cc) = 31e2713233541f78212f0e515481a7f30e51e910
+SHA1 (patch-chrome_browser_ui_views_hung__renderer__view.cc) = 7346d936243b0eb2a3a5aca3d034a67d25b8324a
+SHA1 (patch-chrome_browser_ui_views_omnibox_omnibox__view__views.cc) = 843a80aaed576a2621c097cb6ebb063bffb04db5
+SHA1 (patch-chrome_browser_ui_views_passwords_password__bubble__view__base.cc) = b60046e12789ae9d80fc1de0d4e689b1ab4b8a91
+SHA1 (patch-chrome_browser_ui_views_profiles_profile__menu__view.cc) = 66fa853a8d20a4ae6663bb5f07d5817c2d31cc8a
+SHA1 (patch-chrome_browser_ui_views_profiles_profile__menu__view__base.cc) = 28493a5be7806d13eb1cb9ccdc86c5bcb533206e
+SHA1 (patch-chrome_browser_ui_views_profiles_signin__view__controller__delegate__views.cc) = b4264fbba51e48e75c6edef3add6c41f78295524
+SHA1 (patch-chrome_browser_ui_views_profiles_signin__view__controller__delegate__views.h) = ea08d7a3b97ed1e2f640890497cb294d00f70af8
+SHA1 (patch-chrome_browser_ui_views_side__panel_BUILD.gn) = a0cc6dc0c1e4ba9826064ea2c9dabc24371df2c5
+SHA1 (patch-chrome_browser_ui_views_tabs_tab.cc) = db946fe1fac7ce390d17a1e966f225300995b9ef
+SHA1 (patch-chrome_browser_ui_views_tabs_tab__drag__controller.cc) = cff73ae6e2f4aaf087b257aa5fe332c8452a67be
+SHA1 (patch-chrome_browser_ui_views_tabs_tab__hover__card__bubble__view.cc) = 771dfb977074e00a85d3bcba5876f30c5b309820
+SHA1 (patch-chrome_browser_ui_views_tabs_tab__style__views.cc) = d07ab54c51b1c9369fd30768e4eedb28deee4881
+SHA1 (patch-chrome_browser_ui_views_user__education_browser__user__education__service.cc) = a5fe91250940219ca95c6932058b7b6e4a7ae8b0
+SHA1 (patch-chrome_browser_ui_views_web__apps_web__app__integration__test__driver.cc) = aa9c7d813cb329f3e3b237ac7531ef37118c74eb
+SHA1 (patch-chrome_browser_ui_web__applications_web__app__dialogs.h) = ab99738d6201ef9e6b572552394368564040e703
+SHA1 (patch-chrome_browser_ui_web__applications_web__app__ui__manager__impl.cc) = 59e1912c7c7f86514490a8ca5eb1caa2b02f41e3
+SHA1 (patch-chrome_browser_ui_web__applications_web__app__ui__manager__impl.h) = b7f40094e92da076c656efa1fe2f7a3bb672a2bc
+SHA1 (patch-chrome_browser_ui_webui_about_about__ui.cc) = 842eb7eb5328226f13fc635626f524ba3c9d98c3
+SHA1 (patch-chrome_browser_ui_webui_app__home_app__home__page__handler.cc) = d69ca58644b925637dfab6eb2ca3d938141c0fd4
+SHA1 (patch-chrome_browser_ui_webui_app__home_app__home__page__handler.h) = 3dd2832d5560448c41a143d519da3fe49d6eff24
+SHA1 (patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc) = 36614ab795960048fff7b5c0393704a30b469f3b
+SHA1 (patch-chrome_browser_ui_webui_connectors__internals_device__trust__utils.cc) = b1be5308db0199db2096f8655e3045f575bf5b68
+SHA1 (patch-chrome_browser_ui_webui_management_management__ui.cc) = 95c99abe2bd6a0c3f5f58408de6f01a34ca3049d
+SHA1 (patch-chrome_browser_ui_webui_management_management__ui__constants.cc) = 03d8c701d6026cbca0e0704ff8290ba69d2119d4
+SHA1 (patch-chrome_browser_ui_webui_management_management__ui__constants.h) = c50edc379f5d4b6b4dd461d3e917b05ae3aa7d2a
+SHA1 (patch-chrome_browser_ui_webui_management_management__ui__handler.cc) = 03aee83d2f398cbc4bf204b5e67df8dcaf257024
+SHA1 (patch-chrome_browser_ui_webui_management_management__ui__handler.h) = 6e842ae14bf17d9d73e5c3b7147a35592162ebf7
+SHA1 (patch-chrome_browser_ui_webui_password__manager_promo__cards__handler.cc) = 246b3f007322a420a3641f8c3f9638962bb1b6dd
+SHA1 (patch-chrome_browser_ui_webui_password__manager_promo__cards_relaunch__chrome__promo.cc) = fe9faf1716e763fe048b5057ece10c108b70a9f2
+SHA1 (patch-chrome_browser_ui_webui_searchbox_searchbox__handler.cc) = 4602ea1afe6f610b90644020bd0266d5e71bc376
+SHA1 (patch-chrome_browser_ui_webui_settings_accessibility__main__handler.cc) = 2bfc640850828aec4f257356ab0214ebaf615e6d
+SHA1 (patch-chrome_browser_ui_webui_settings_accessibility__main__handler.h) = ff720ef0f95001b174f06bfccb1931fff5abe9f1
+SHA1 (patch-chrome_browser_ui_webui_settings_appearance__handler.cc) = e029fac22cec1d82a8c7455e8615e75e16a2df37
+SHA1 (patch-chrome_browser_ui_webui_settings_settings__localized__strings__provider.cc) = e770ade6e286dc8f2380e343b3eede06792bdd1b
+SHA1 (patch-chrome_browser_ui_window__sizer_window__sizer.cc) = 329c1e4cf7658bbf2a2fad40e448b44a68825d87
+SHA1 (patch-chrome_browser_visited__url__ranking_visited__url__ranking__service__factory.cc) = 5bfd7283266d4fd72a656eeed2f98c68c6c6189b
+SHA1 (patch-chrome_browser_web__applications_extension__status__utils.h) = 6df09fa7583d96eece076cc1f6acfb257ee925d8
+SHA1 (patch-chrome_browser_web__applications_extensions_extension__status__utils.cc) = e844915e3d7c35729cc1499977bae7dec85750b5
+SHA1 (patch-chrome_browser_web__applications_os__integration_os__integration__manager.cc) = 96f03ec9cb0811a90299ea65d78ef2f61d78fdd3
+SHA1 (patch-chrome_browser_web__applications_os__integration_os__integration__test__override.h) = 50cf855abf164346bbc497dcdc1c8cff15938518
+SHA1 (patch-chrome_browser_web__applications_os__integration_run__on__os__login__sub__manager.cc) = 4946cd7c31ae523b4824d9d283228cec763453be
+SHA1 (patch-chrome_browser_web__applications_os__integration_shortcut__sub__manager.cc) = cc069f1c6c28179aea2505ab6bffd580778b7c1e
+SHA1 (patch-chrome_browser_web__applications_os__integration_web__app__file__handler__registration.h) = b0111d53d87909838ba6b2c827a3b5c4390b6251
+SHA1 (patch-chrome_browser_web__applications_os__integration_web__app__shortcut.cc) = dbe41c977d389574d0a28b64562a034608ccd5dc
+SHA1 (patch-chrome_browser_web__applications_os__integration_web__app__shortcut.h) = 9e7f6fc60d9140eebf8474ca3f43f1706a93e16a
+SHA1 (patch-chrome_browser_web__applications_policy_web__app__policy__manager.cc) = 7a722fa487c9bf134d59b2ea0ded6b8da492ede5
+SHA1 (patch-chrome_browser_web__applications_test_os__integration__test__override__impl.cc) = 74d05b9e0b63320ffdcd3dbec7d0d70010bce0be
+SHA1 (patch-chrome_browser_web__applications_test_os__integration__test__override__impl.h) = d982d712a42765cc43d913310af65c22aa725d08
+SHA1 (patch-chrome_browser_web__applications_web__app__helpers.cc) = 077f4ee1763e7784fa03975043267e4829319757
+SHA1 (patch-chrome_browser_web__applications_web__app__install__info.h) = c3375fae06d1c7aa82c39f5f5aecfb7f4cd9a5d8
+SHA1 (patch-chrome_browser_webauthn_chrome__authenticator__request__delegate.cc) = f2f88c0c8e654e1cd86f286c312f275353c56156
+SHA1 (patch-chrome_browser_webauthn_enclave__manager.cc) = 6f9d6ab623dafffebf392858a64f4d88f179067f
+SHA1 (patch-chrome_common_channel__info.h) = 514b5480be6679d0284e4d0fefb9d0abdfd39222
+SHA1 (patch-chrome_common_channel__info__posix.cc) = c0542b754fccb1589e313df908a4ca36cc3297ef
+SHA1 (patch-chrome_common_chrome__features.cc) = f4db66fe830d81cb9e6e67005fc104dd389f2e93
+SHA1 (patch-chrome_common_chrome__features.h) = dddf067e10fc9a9c1bf4a4b6c9866149103742b1
+SHA1 (patch-chrome_common_chrome__paths.cc) = e761c79c3ab8051d284259b39aca3f0dba06575f
+SHA1 (patch-chrome_common_chrome__paths.h) = 92c3dc424705307b609edc15a0067a1b62b1e3a1
+SHA1 (patch-chrome_common_chrome__paths__internal.h) = 5efb1c41594995f06c1ef85d61030590cb144bf6
+SHA1 (patch-chrome_common_chrome__switches.cc) = ab36dca5d6f46bbf851f5b68e38f2b6d65979799
+SHA1 (patch-chrome_common_chrome__switches.h) = b882f9e11250158c13e3ec22e8c98e03385f190b
+SHA1 (patch-chrome_common_extensions_permissions_chrome__permission__message__rules.cc) = 6cfd1d25c8ed13a47a680d5acf7fce0f34cba66b
+SHA1 (patch-chrome_common_media_cdm__host__file__path.cc) = d34fbbfb00a9367b4169833a83a7472333ca17eb
+SHA1 (patch-chrome_common_media_cdm__registration.cc) = c5f34383515ef1563e3471047da789091b7a10e9
+SHA1 (patch-chrome_common_media_cdm__registration.h) = b93d477e9679539f6547abfb09677a40ddc6ddb0
+SHA1 (patch-chrome_common_media_component__widevine__cdm__hint__file__linux.h) = cda8dd74dc98529a985d0c2d7b40a500d3319738
+SHA1 (patch-chrome_common_pref__names.h) = 92604ec04a07e1ecba3aba1198c4b931983b0175
+SHA1 (patch-chrome_common_url__constants.h) = 07e5d301fe2571a1ad7202e918bb470666316774
+SHA1 (patch-chrome_common_webui__url__constants.cc) = f2d128bcb4c0b5d1fb775e9bc7507ab3a974afb2
+SHA1 (patch-chrome_common_webui__url__constants.h) = 3d69ebf896f463f2f98e2393edd62ac1a4348d58
+SHA1 (patch-chrome_enterprise__companion_enterprise__companion__client.cc) = 5b6629cb1733e2f2b43c587b8f2b13a15449cf96
+SHA1 (patch-chrome_enterprise__companion_lock.cc) = 6e0ee751dc8d124e7ee5f46bbfbb9f093dc60f2b
+SHA1 (patch-chrome_services_printing_print__backend__service__impl.cc) = e73fd3f64965e7a38f73a1000aa4072c4e86752d
+SHA1 (patch-chrome_services_speech_audio__source__fetcher__impl.cc) = 2c9bd5d44aba63ed83b8c2392e6268a20743424a
+SHA1 (patch-chrome_test_base_scoped__channel__override__posix.cc) = eba3e5203a172d417da9fa95d8e408b3c5736931
+SHA1 (patch-chrome_test_chromedriver_chrome__launcher.cc) = 428d880c7e037c8eae25e8ddc5f1899c1499a3d8
+SHA1 (patch-chrome_test_chromedriver_chrome_chrome__finder.cc) = 1261951ca6358c0e6744aa0948659aac51038840
+SHA1 (patch-chrome_test_chromedriver_key__converter__unittest.cc) = 1dad8f0de09dedfa8ea37971558cf923d96f9b0c
+SHA1 (patch-chrome_test_chromedriver_keycode__text__conversion__unittest.cc) = 83b0d13fc51c48758a5cb6272c59306c5899b4fb
+SHA1 (patch-chrome_updater_configurator.cc) = c106299a58637c58780a51892fe56285017ab5cd
+SHA1 (patch-chrome_updater_lock.cc) = 04c2eb20a03b9b19a1adc9ecd8772acf410b471d
+SHA1 (patch-chrome_updater_util_posix__util.cc) = 8ab90591d1b6bfb0c8c85875dfdaa42bf0b5a9f0
+SHA1 (patch-chrome_utility_services.cc) = ef2868c75f9247e5611c377830cd869cc7c51961
+SHA1 (patch-chromecast_browser_cast__browser__main__parts.cc) = ad9c3e930a353234d9856329527ecb48fd68918e
+SHA1 (patch-chromecast_browser_cast__content__browser__client.cc) = fd18feefc2d05feccd65e8be9a0df620497af020
+SHA1 (patch-chromecast_cast__core_runtime_browser_runtime__application__service__impl.cc) = 71013ae98b4f1df4ccea98c7c501335a337b7db7
+SHA1 (patch-chromecast_media_base_default__monotonic__clock.cc) = 9fb381379de67d3f5bddb6a11d0f3f8d28c56263
+SHA1 (patch-components_autofill_core_browser_payments__data__manager.cc) = 91421557a776a51b1c21ec8b64e691d91e04e382
+SHA1 (patch-components_autofill_core_common_autofill__features.cc) = 86141e31dc1f5bd49fa0eb8fd7e7d0b0a3a2e75f
+SHA1 (patch-components_autofill_core_common_autofill__payments__features.cc) = 0d9975015f161e4f90deeabe97c89635a574514d
+SHA1 (patch-components_autofill_core_common_autofill__util.cc) = 292ae52ada973e6441e920c896207268983cd2ba
+SHA1 (patch-components_commerce_core_commerce__feature__list.cc) = 69f4d31ba94ae77f29a0fe5fd29bad546d95c93c
+SHA1 (patch-components_constrained__window_constrained__window__views.cc) = 6a9a65a4043ca704bf95b4fdfed81d532490ce1d
+SHA1 (patch-components_content__settings_core_browser_website__settings__registry.cc) = 86f507ebe1daaf4adab3ea8dd9ab9289f4701569
+SHA1 (patch-components_cookie__config_cookie__store__util.cc) = 0eb208e4835656bb44e81f46b64c6a4882272bbf
+SHA1 (patch-components_crash_core_app_BUILD.gn) = ff2f4eccad5f4d4206cae429029010f1db7b4600
+SHA1 (patch-components_crash_core_app_chrome__crashpad__handler.cc) = ab176e2c63310ccc6f55b9c617e115a0c879685d
+SHA1 (patch-components_crash_core_app_crashpad__handler__main.cc) = 0cffa74a394416d27ebf665151b79a062fc00097
+SHA1 (patch-components_crash_core_browser_crash__upload__list__crashpad.cc) = fc98644f501492f1fa1a55b7f16c8705f033127d
+SHA1 (patch-components_crash_core_common_BUILD.gn) = f9a06d30a813cd99ccd7d375afe42fabff2dbad5
+SHA1 (patch-components_device__signals_core_browser_mock__signals__aggregator.h) = f0ee8134caf647d372bd846999f0dbda43a93ee7
+SHA1 (patch-components_device__signals_core_browser_signals__aggregator.h) = 752427d0df9986c890dcc5e2b20d7f2ce4446048
+SHA1 (patch-components_device__signals_core_browser_signals__aggregator__impl.cc) = 5e36d199e167944b3550864be5aa7d8fb286de5d
+SHA1 (patch-components_device__signals_core_browser_signals__aggregator__impl.h) = 2d2b32a2ea69d401581f0ea9c45c31c0abd8d7c3
+SHA1 (patch-components_device__signals_core_browser_user__permission__service.h) = 134da6da6c022905843ea7fcb1b251cb58b69d76
+SHA1 (patch-components_device__signals_core_browser_user__permission__service__impl.cc) = 92e697c847c53bae5803c119bfd9ca35fe8c1d06
+SHA1 (patch-components_device__signals_core_browser_user__permission__service__impl.h) = 83bf1a9251e91431cf40e9d4a0e730f106ce6499
+SHA1 (patch-components_device__signals_core_common_signals__features.cc) = 5b01b8d41590f3597d25d48a6d7c740772c35367
+SHA1 (patch-components_device__signals_core_common_signals__features.h) = 15025a8081b6d22eebc6ac0bba62749742718fe4
+SHA1 (patch-components_device__signals_core_system__signals_platform__delegate.cc) = 6c5417821b026c87852008733d4b84606805cb7e
+SHA1 (patch-components_device__signals_test_signals__contract.cc) = ec74fc274d4dcbdbbaf7c8e7789952f559a72817
+SHA1 (patch-components_discardable__memory_service_discardable__shared__memory__manager.cc) = d2002f93650a79944b1869764943125ae16c91f8
+SHA1 (patch-components_embedder__support_user__agent__utils.cc) = 3ba7307ce989fddf8cbbdb05de29c2db5084e62b
+SHA1 (patch-components_embedder__support_user__agent__utils__unittest.cc) = 77c0b44538327c72f50fedf34732dc432ed8b5b6
+SHA1 (patch-components_enterprise_watermarking_watermark.cc) = 63d1dea3413c2abfb677ca112ad7739c57124268
+SHA1 (patch-components_eye__dropper_eye__dropper__view.cc) = 4b25c3b3164d6972d34cae88ddc7cd2845568dc1
+SHA1 (patch-components_feature__engagement_public_event__constants.cc) = 335f008f5765b3e3750923fa992c31edb81114a2
+SHA1 (patch-components_feature__engagement_public_event__constants.h) = 87d23021115a6ed810a6bd2dad68ca20449b7649
+SHA1 (patch-components_feature__engagement_public_feature__configurations.cc) = 166ef0cd702b0b5543bd15245dc1381f4f1e4f25
+SHA1 (patch-components_feature__engagement_public_feature__constants.cc) = 17d5921b003cea0c8ead1cbf49780489c922c3d3
+SHA1 (patch-components_feature__engagement_public_feature__constants.h) = 3349c4be96c2d2bb099aa7af2392ec80dda7f5df
+SHA1 (patch-components_feature__engagement_public_feature__list.cc) = 7698a4b9e5b8e727a7ea29b94ab7c39637334092
+SHA1 (patch-components_feature__engagement_public_feature__list.h) = 4bda7dbce52119124de64419921b9707ffca897e
+SHA1 (patch-components_feed_core_proto_v2_wire_version.proto) = e78450f14e0a8638594cc2f6b4c765a9ba29e981
+SHA1 (patch-components_feed_core_v2_feed__network__impl__unittest.cc) = a5f5dcadb44654f606ee498ad2e746b703ca6d18
+SHA1 (patch-components_feed_core_v2_proto__util.cc) = 7445cd9ad3538d3dd4ea85db7842bc90013224bd
+SHA1 (patch-components_feed_core_v2_proto__util__unittest.cc) = 944413ca70622ce27cecbd21ea14d449f1403189
+SHA1 (patch-components_feed_core_v2_test_proto__printer.cc) = 1812e283547bd292906c103e7fb2cbe6affb485f
+SHA1 (patch-components_flags__ui_flags__state.cc) = 3ea95800139e9f082a8d5d8d0309f13d706a5602
+SHA1 (patch-components_gwp__asan_BUILD.gn) = 9b01b1ae681ed19e93057dc9c3f703b71d63e1d8
+SHA1 (patch-components_gwp__asan_client_guarded__page__allocator__posix.cc) = 94dde4774267aae0976cfc822796d4f3a4828be9
+SHA1 (patch-components_gwp__asan_client_gwp__asan.cc) = 4492a22e439303b08c1ec29c4ee4177e1c27d55f
+SHA1 (patch-components_gwp__asan_client_gwp__asan__features.cc) = 619ca24ab8a100d10be0e2dbfde88ae88e93fbf8
+SHA1 (patch-components_gwp__asan_crash__handler_crash__analyzer.cc) = be10de43ae7a7b1c10b5b32514f60ce58f80dc0d
+SHA1 (patch-components_live__caption_caption__util.cc) = 7528fc38da8659d3ea7477eb58d24bf390980258
+SHA1 (patch-components_live__caption_caption__util.h) = 4549104c4a137b6d1c7e1a54b2e5f0a29efd6879
+SHA1 (patch-components_media__router_common_media__source.cc) = 848c43dcbf88482613949458e856c4532566249d
+SHA1 (patch-components_media__router_common_providers_cast_channel_cast__message__util.cc) = b700b0c8d17300e7ac71a8d1c7dfcd8415acd09a
+SHA1 (patch-components_metrics_drive__metrics__provider__linux.cc) = 571809afe8c4202301f0e6a3fa98ab96f03d5d65
+SHA1 (patch-components_metrics_metrics__log.cc) = ddb0bf2812e6d68184ce87ade1ff59bf6a3be7ef
+SHA1 (patch-components_metrics_motherboard.cc) = 07a0b720f25b94e9c32b93913799b61a54ad4255
+SHA1 (patch-components_named__mojo__ipc__server_connection__info.h) = ccee2e439f19bac7ede9b823896f206f33a9f1ec
+SHA1 (patch-components_named__mojo__ipc__server_named__mojo__ipc__server__client__util.cc) = 67caa5def4bbb85347e53490b679632b1c502746
+SHA1 (patch-components_named__system__lock_lock.h) = 8b55de74d5b31295a921494253fdae0505df1553
+SHA1 (patch-components_neterror_resources_neterror.js) = c16894cd199079617cecc5f5146b7f80de5c1c8b
+SHA1 (patch-components_network__session__configurator_browser_network__session__configurator.cc) = 1c59de1ef5f69643d7cc40e64bbc7f5ca4ad4d42
+SHA1 (patch-components_network__session__configurator_browser_network__session__configurator__unittest.cc) = 65c9bba41c13ed25aa87ed1f6f52f58ae531936a
+SHA1 (patch-components_optimization__guide_core_optimization__guide__util.cc) = 2794670a67c8c4c6ad1a50e961819fc9a0302303
+SHA1 (patch-components_os__crypt_sync_libsecret__util__linux.cc) = 256036e4149cb5108998e899663b78d15c8a0ef9
+SHA1 (patch-components_os__crypt_sync_os__crypt.h) = 5b540b1c2b84a8946376fcf69f133074d5b03cac
+SHA1 (patch-components_paint__preview_browser_paint__preview__client.cc) = 3f709e1d6e5f305de91340b6fa57f8364d1db520
+SHA1 (patch-components_paint__preview_browser_paint__preview__client__unittest.cc) = f24d1275eb69569eb7733ddd594c8cf14dd069e1
+SHA1 (patch-components_paint__preview_common_proto_paint__preview.proto) = f8f448536b888cae2a9628e38c0a5c3913454351
+SHA1 (patch-components_paint__preview_player_player__compositor__delegate.cc) = 85fc170dc316bf2f13f035804eccf4955d73fe53
+SHA1 (patch-components_password__manager_core_browser_features_password__features.cc) = 28ce3012786bca3c24b17b80b532ebb012df9c97
+SHA1 (patch-components_password__manager_core_browser_features_password__features.h) = d2030e3948ee82e599ead9083e7a35398bf01dfd
+SHA1 (patch-components_password__manager_core_browser_password__form__manager.cc) = 7aaf31a85a143259c6f78a020ea3a37bd6fc553f
+SHA1 (patch-components_password__manager_core_browser_password__manager.cc) = fb2cd3adcca10d446bcbb92ad7638eacbc049823
+SHA1 (patch-components_password__manager_core_browser_password__manager__client.h) = cfeab03596ee03a643dec71eb5b76acea1418edd
+SHA1 (patch-components_password__manager_core_browser_password__manager__switches.cc) = 46bb13d486da80e92aa282ef07e14336d4060282
+SHA1 (patch-components_password__manager_core_browser_password__manager__switches.h) = 4c73d7d6087dd833a354dca5617442b35fc423cb
+SHA1 (patch-components_password__manager_core_browser_password__manual__fallback__flow.cc) = 1d2eb50cadbda479049197f0fd90e2e372e47fed
+SHA1 (patch-components_password__manager_core_browser_password__manual__fallback__flow.h) = f5eaea903f24c5e6fd85da9b411d46766ef97090
+SHA1 (patch-components_password__manager_core_browser_password__store_login__database.cc) = 2a7032a953c3fe50f6b56a1c8627eff691dd4759
+SHA1 (patch-components_password__manager_core_browser_password__store_login__database__async__helper.cc) = 1dd58d472f897f486364b234cf1947a0d9dd5af4
+SHA1 (patch-components_password__manager_core_browser_password__store_login__database__unittest.cc) = 93f8d09c5d3cb2f7337b781eeaa73e021b530592
+SHA1 (patch-components_password__manager_core_browser_stub__password__manager__client.cc) = 68e77806f4c9c9a85c2bfec73206b62a1a9ee813
+SHA1 (patch-components_password__manager_core_browser_stub__password__manager__client.h) = be61a5437a2d24acd55325532e1636f6b367d138
+SHA1 (patch-components_password__manager_core_common_password__manager__pref__names.h) = 7160088a840283655c94a26fe2916b8994330ef5
+SHA1 (patch-components_performance__manager_public_features.h) = c17148ae0f3ed72a6c24ff6d90c93f4ab3af4a0d
+SHA1 (patch-components_permissions_prediction__service_prediction__common.cc) = 3d1a8fc882ca061017004da092bb1ff19f8e6bd2
+SHA1 (patch-components_policy_core_browser_policy__pref__mapping__test.cc) = 895fba5ec3359f7bb6fcf540f472f8a825cce196
+SHA1 (patch-components_policy_core_common_cloud_cloud__policy__client.cc) = 5c01009e8a1591f449a6b9371f4ffacffed8613a
+SHA1 (patch-components_policy_core_common_cloud_cloud__policy__util.cc) = 9543947bae469624cb6a178fc9537012086db4cd
+SHA1 (patch-components_policy_core_common_policy__loader__common.cc) = ef6ffedc6cac0e4a1939fae3d4caeb51fd933d94
+SHA1 (patch-components_policy_core_common_policy__paths.cc) = 67b0a334adf9ec46e2698ea8b78cc67d56a250c8
+SHA1 (patch-components_policy_core_common_policy__utils.cc) = 24ea91a3c97ac3e34cdeab3aa7cb6c186900090d
+SHA1 (patch-components_policy_tools_generate__policy__source.py) = a804971f0c1aa3170e610b61779409463999dd2e
+SHA1 (patch-components_power__metrics_BUILD.gn) = a9d6724fa773e649ef77391b1babcfc0d770cdde
+SHA1 (patch-components_power__metrics_energy__metrics__provider.cc) = 2cbfb42b11d3da10fef19937447b0e44aa515f14
+SHA1 (patch-components_safe__browsing_content_common_file__type__policies__unittest.cc) = 7b693ec118b81c85669bf07ad9d11b9424301dd8
+SHA1 (patch-components_safe__browsing_content_resources_gen__file__type__proto.py) = d7368dc623c69e18d853c8acd7d7ec68f0f048d9
+SHA1 (patch-components_safe__browsing_core_browser_db_v4__protocol__manager__util.cc) = 75aeff6bc780f772b4ed9931b49b3aacb9781c07
+SHA1 (patch-components_safe__browsing_core_browser_realtime_url__lookup__service__base.cc) = 31783704dae3dd3015410ec27e6482f3df6c4ebc
+SHA1 (patch-components_safe__browsing_core_common_features.cc) = a390866de25a422238bd894acc395ca77b416047
+SHA1 (patch-components_search__engines_search__engine__choice_search__engine__choice__service.cc) = e5cbbf708827104250aacdfbc446e6d68e38f564
+SHA1 (patch-components_search__engines_template__url__service.cc) = cce077ed12c8998892438c0be43255f93c303050
+SHA1 (patch-components_security__interstitials_content_utils.cc) = 9144fc34094578089a64197bc4286f4e9a89c630
+SHA1 (patch-components_segmentation__platform_embedder_default__model_cross__device__user__segment.cc) = d88a981cbe06cddef525ff0fcfc25ee4be1d391d
+SHA1 (patch-components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.cc) = b793d38caed9226be93d8e0fe28382ff569a2db9
+SHA1 (patch-components_signin_public_base_signin__switches.cc) = dc3f7a7c9ed4c7ad58708571bc192388ef0e8c8f
+SHA1 (patch-components_signin_public_base_signin__switches.h) = b0b847b5359cf5a84601a3828ffbae8a54f404e0
+SHA1 (patch-components_soda_soda__util.cc) = 01a43d10db35e298540e6b5dee7c1b58300c1dba
+SHA1 (patch-components_startup__metric__utils_common_startup__metric__utils.cc) = 497c5a4c96fe399b0f186a98e86035f2ef9fe8f7
+SHA1 (patch-components_storage__monitor_BUILD.gn) = aac2c25d842566a7afb3d2a253e3e0f247069694
+SHA1 (patch-components_storage__monitor_removable__device__constants.cc) = 2af97b3c7ae29e340c73d4a639c0c23c457cd660
+SHA1 (patch-components_storage__monitor_removable__device__constants.h) = f29ad5fe3539865c8b7dcc372c1c0fa57a49ee98
+SHA1 (patch-components_supervised__user_core_browser_supervised__user__metrics__service.cc) = 3631b0d5dcc13faafcb6644045e33628509af21d
+SHA1 (patch-components_supervised__user_core_browser_supervised__user__preferences.cc) = 4a84cdfffe4c0852c958843d1c4b3b13d840590f
+SHA1 (patch-components_supervised__user_core_browser_supervised__user__service.cc) = d1180584980ef37fb50fd5b1b6733b513003b1a0
+SHA1 (patch-components_supervised__user_core_common_features.cc) = c108d410379d1036ac4ef6ed6293b296e2cd85ce
+SHA1 (patch-components_supervised__user_core_common_features.h) = c9a5638c67510e4327d2b1401703c753cfa7097a
+SHA1 (patch-components_supervised__user_core_common_pref__names.h) = dc31eaf57a8a4464e950dd2f0988137d1ff2632f
+SHA1 (patch-components_sync__device__info_local__device__info__util.cc) = 0c956daed2192809f40a4820ac4ece70a0214fa9
+SHA1 (patch-components_sync__device__info_local__device__info__util__linux.cc) = 81a8fe12ffdeb998e74b3e3f2cf801dafa655b2a
+SHA1 (patch-components_sync_base_sync__util.cc) = 1edb25560815ffe4e79861b211029234681e816e
+SHA1 (patch-components_system__cpu_cpu__probe.cc) = 663bfadb1f759c68921b5e2b997d2fe14b1fa96f
+SHA1 (patch-components_translate_core_common_translate__util.cc) = f456b9eea3e4569072fa52bdcfaab81a2c5ba5d6
+SHA1 (patch-components_update__client_update__query__params.cc) = 0c734efd67dfdfc3eb07990c2389dee484d06882
+SHA1 (patch-components_url__formatter_spoof__checks_idn__spoof__checker.cc) = 1b687e4199f7ba3c34f02ab65a02bc5d73134670
+SHA1 (patch-components_user__education_views_help__bubble__view.cc) = 40161bee5843e0ee9f16eeb37317700b5dc02d2d
+SHA1 (patch-components_variations_service_variations__service.cc) = 6025e49d675b74c79af6b7b25395bc8721317787
+SHA1 (patch-components_visited__url__ranking_public_url__visit__util.cc) = 0660df2669316c954f87e6d727879c6f40dbfcba
+SHA1 (patch-components_viz_common_features.cc) = febdc09cf03f975538ade8bda727b940ffde4b27
+SHA1 (patch-components_viz_common_features.h) = 4d5823a0b614c6266d334ea8bc095f5077ef2046
+SHA1 (patch-components_viz_host_host__display__client.cc) = 96d898169a11f4e7d75f904b1b0d1b7fbad75608
+SHA1 (patch-components_viz_host_host__display__client.h) = 4c6240c1c2f7ddfed94c2bebdaf5272d485389f6
+SHA1 (patch-components_viz_service_display__embedder_skia__output__device__buffer__queue.cc) = 6bb73aa14ad9f95e795c1df96a3d5ffcf7dfbe64
+SHA1 (patch-components_viz_service_display__embedder_skia__output__surface__impl.cc) = f36f8988b2f6fb9f23d4c49c38e3f14c1271b81c
+SHA1 (patch-components_viz_service_display__embedder_software__output__surface.cc) = 2a2f8634f9a529db7bc01e7eb642fa5e0e61ccb3
+SHA1 (patch-components_viz_service_display__embedder_software__output__surface.h) = 8bf686b3de8834ee164090eed59c4cc2259c6950
+SHA1 (patch-components_viz_service_display_skia__renderer.cc) = 584f00590e10b71b0dae9c985c3117ad5adedb0a
+SHA1 (patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.cc) = 0f93388706f66143d931c45827abdf75efbbb7a1
+SHA1 (patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.h) = 06f4f0f22ce5414b1fac210432627a00721627af
+SHA1 (patch-components_viz_test_fake__display__client.cc) = a73ce09657afc165cad065ef3a659061982e3887
+SHA1 (patch-components_viz_test_fake__display__client.h) = 8dd5528781479780e515d639eb86ffe229388818
+SHA1 (patch-components_viz_test_mock__display__client.h) = 1ae27159eac1c5d170db7159c4cc2c2899857868
+SHA1 (patch-content_app_BUILD.gn) = da168cb79be0ce20f5c6aaf98776d301aa3a4b8f
+SHA1 (patch-content_app_content__main.cc) = 732de4873dc49220b1cc6c3568a739a732e92840
+SHA1 (patch-content_app_content__main__runner__impl.cc) = f4a8c0961d19c3ee087f7e9b5969d2226e71e625
+SHA1 (patch-content_browser_BUILD.gn) = f19e1efdb3429b65f4c4d88580c403e66711f1a9
+SHA1 (patch-content_browser_audio_audio__service.cc) = a76c0ed406bcb83f6a6da8fa7c70b31ceb9dba50
+SHA1 (patch-content_browser_browser__child__process__host__impl.cc) = 15417125aaa865f516799c11cef76d147bb6a06d
+SHA1 (patch-content_browser_browser__child__process__host__impl.h) = 7c02f2138393004f8a3c13d4b8572bb0c3a5f317
+SHA1 (patch-content_browser_browser__child__process__host__impl__receiver__bindings.cc) = ad4790ebf019432a1c51920e8322e1ed85886b2a
+SHA1 (patch-content_browser_browser__main__loop.cc) = 43753764617022d1812be60d79547cc6630efca0
+SHA1 (patch-content_browser_child__process__launcher__helper.h) = 7de34a206d9e207dc253d9dfee43de80085a1c56
+SHA1 (patch-content_browser_child__process__launcher__helper__linux.cc) = c811cc3856d8e6b11a23373e80646bed304f8129
+SHA1 (patch-content_browser_child__thread__type__switcher__linux.cc) = 601f4c2909768578d5c5cf05074a5ce38f50939c
+SHA1 (patch-content_browser_compositor_viz__process__transport__factory.cc) = e4c8a045fed102e92f7e84ff60d004aa0bf30834
+SHA1 (patch-content_browser_devtools_devtools__frontend__host__impl.cc) = 02b3eb4c0a0bdbcd78576cdbc4d0009d14342f40
+SHA1 (patch-content_browser_devtools_devtools__frontend__host__impl.h) = 875e6350d9d494d58dd1780c2711ee80e289a98b
+SHA1 (patch-content_browser_devtools_protocol_system__info__handler.cc) = 6354c7a88e8bd0714e9d6bf93f86ae0a4a8e78c1
+SHA1 (patch-content_browser_file__system__access_file__path__watcher_file__path__watcher.h) = 8bb9373de8cfccde239b24265430c407e15bdd3d
+SHA1 (patch-content_browser_file__system__access_file__path__watcher_file__path__watcher__bsd.cc) = 095e0b061e9a5d8640547d8308e1becef8d6e195
+SHA1 (patch-content_browser_file__system__access_file__path__watcher_file__path__watcher__kqueue.h) = 97445d45770ae4ea171b5a55d0541a6b0d34cc71
+SHA1 (patch-content_browser_file__system__access_file__system__access__local__path__watcher.cc) = 38dfe326dfe2f4e86cf9d9b088eea9d7bcb254d0
+SHA1 (patch-content_browser_font__access_font__enumeration__data__source.cc) = 26eba28ffc637cd5355697a8a9433930af09d815
+SHA1 (patch-content_browser_gpu_compositor__util.cc) = a37d824e48059e77889731950e959d00bc74df59
+SHA1 (patch-content_browser_gpu_gpu__data__manager__impl.cc) = 2e69e61ba2a65ee4cf2662bd507a6ed370f3eca9
+SHA1 (patch-content_browser_gpu_gpu__data__manager__impl.h) = eed5af4b3b5ceea1c960c18962ead992ed6df42c
+SHA1 (patch-content_browser_gpu_gpu__data__manager__impl__private.cc) = 2d7d63b4df34c1e4ad03ba864d3b66bb2047a86c
+SHA1 (patch-content_browser_gpu_gpu__data__manager__impl__private.h) = acf74ebf4dc0f4696b7c47fad2cd8023e2c2dd63
+SHA1 (patch-content_browser_gpu_gpu__memory__buffer__manager__singleton.cc) = e49d3cf7d62e9c9a82e9ec4ef56d2e5a037986ed
+SHA1 (patch-content_browser_gpu_gpu__process__host.cc) = 7899680f3e1eb9c59bbc8edfc5aab7654b00dcf1
+SHA1 (patch-content_browser_media_frameless__media__interface__proxy.h) = 7c67416ad7b7dad7606a6deabd2f8fb291a66447
+SHA1 (patch-content_browser_media_media__keys__listener__manager__impl.cc) = f3c68fbbd190ccec56576175a793501bb85f31f8
+SHA1 (patch-content_browser_network__service__instance__impl.cc) = 07d0f28b1ca1a67a7fe01215f9ef37f9a4f5775c
+SHA1 (patch-content_browser_ppapi__plugin__process__host__receiver__bindings.cc) = 4ad9eb16c3f999005e97c2881a90a70377c3ba8e
+SHA1 (patch-content_browser_renderer__host_delegated__frame__host.cc) = 0f38818ad94ec2da547ccaea692d9addc45e8ee8
+SHA1 (patch-content_browser_renderer__host_input_input__device__change__observer.cc) = 1a102078ef216ab43e81e0f6616c4e446857f395
+SHA1 (patch-content_browser_renderer__host_media_service__video__capture__device__launcher.cc) = a2f8a48dede7710b2cf45be5a4b87d567caa7f1f
+SHA1 (patch-content_browser_renderer__host_pepper_pepper__file__io__host.cc) = 68ae3bc44054796b5dd51fd355b9ac604c97fb2a
+SHA1 (patch-content_browser_renderer__host_render__process__host__impl.cc) = 4aed0838a1f0789792a819c725f18aeabe957f78
+SHA1 (patch-content_browser_renderer__host_render__process__host__impl.h) = 24884cf61fde38599572113215c23bf313342f72
+SHA1 (patch-content_browser_renderer__host_render__view__host__impl.cc) = 601aafbae1304fe8ac1e84a7ad930c33236f2ef1
+SHA1 (patch-content_browser_renderer__host_render__widget__host__view__aura.cc) = eb8028800ad0e074188e3df268c92392b56fcf40
+SHA1 (patch-content_browser_renderer__host_render__widget__host__view__aura.h) = 4be2e527ad883d00f62ff0288a13aa480cd356c7
+SHA1 (patch-content_browser_renderer__host_render__widget__host__view__event__handler.cc) = 63466c6f4563cc26d809a7325322ac248b5a45d0
+SHA1 (patch-content_browser_sandbox__host__linux.cc) = 6365d80d28f893a38b58ded55bcac81fb07ef996
+SHA1 (patch-content_browser_scheduler_responsiveness_jank__monitor__impl.cc) = ad00347bfb8afe1ad0cdcffa1bb58e05b2ad17dc
+SHA1 (patch-content_browser_scheduler_responsiveness_native__event__observer.cc) = 73e83ea00f1096af62dd280fb79d0d5958aa8673
+SHA1 (patch-content_browser_scheduler_responsiveness_native__event__observer.h) = ff06bef1a800c8e7ef9f025d0d304434e1f13db4
+SHA1 (patch-content_browser_utility__process__host.cc) = bf875af64a391de081878d0a92d990a088604d68
+SHA1 (patch-content_browser_utility__process__host.h) = 1cc2bf9e73f608fee736c977fb610bb28afce219
+SHA1 (patch-content_browser_utility__process__host__receiver__bindings.cc) = 3bd56bf284ba5df9b8fe406bf9481aa371fda2c5
+SHA1 (patch-content_browser_utility__sandbox__delegate.cc) = dce5ffe9b4d321a4cbc7732281fd74dcec99af2e
+SHA1 (patch-content_browser_v8__snapshot__files.cc) = f5cf13554e1aa5afb1ff9696a137a4e3f4bf7807
+SHA1 (patch-content_browser_web__contents_web__contents__view__aura.cc) = 11637859685fabdaeabafcbf9e4a5a2e18fb93cf
+SHA1 (patch-content_browser_web__contents_web__contents__view__aura__unittest.cc) = df86867a7cd1f2482c6fcfee37212ac00cf55eba
+SHA1 (patch-content_browser_webui_web__ui__main__frame__observer.cc) = 8693e7508b0a1e626bf9aab7e3afefa2b71da10a
+SHA1 (patch-content_browser_webui_web__ui__main__frame__observer.h) = ced4eb256df030200b5dafe91c913438d3c8f967
+SHA1 (patch-content_browser_zygote__host_zygote__host__impl__linux.cc) = 80130f1d9664b0f0ef9d32fd796a4c6d926afd65
+SHA1 (patch-content_browser_zygote__host_zygote__host__impl__linux.h) = a0c1a280ef0705a5124a7f660716611c9fb0af51
+SHA1 (patch-content_child_BUILD.gn) = bfed14c5f1e88d7067d0fb14b5d0a7bad98919db
+SHA1 (patch-content_child_child__process.cc) = 2a175edb6564063e6f85cb4f0de740506aa93df6
+SHA1 (patch-content_child_child__process.h) = e74fe528127bb83cc51477fac00e08c1f8a2a39c
+SHA1 (patch-content_common_BUILD.gn) = 94502ac6d697741eec716a51497801072aa14b6e
+SHA1 (patch-content_common_features.cc) = b1ca758d710d52883c2c2c0561b6320434092532
+SHA1 (patch-content_common_features.h) = 0533bcff9ce3934f36d262c53aa866fe1de52557
+SHA1 (patch-content_common_font__list__unittest.cc) = 56ce8e636387c837e4ca591c11acb0aaa5da0177
+SHA1 (patch-content_common_gpu__pre__sandbox__hook__bsd.cc) = 19bdd89fa86d43f9f8c95de158c53adab739d61a
+SHA1 (patch-content_common_gpu__pre__sandbox__hook__bsd.h) = cf053c0f5ae9468ae58e42e661d14f5c1ee81103
+SHA1 (patch-content_common_gpu__pre__sandbox__hook__linux.h) = 1177ac160a229d2a295959d3e2228ee5d650f23e
+SHA1 (patch-content_common_mojo__core__library__support.cc) = fe0127f91d0b7370b3b9247d68e07f9e1e610fe2
+SHA1 (patch-content_common_user__agent.cc) = 8037d0617b9d25ce3d234da25fafbb5cd0a38090
+SHA1 (patch-content_gpu_gpu__child__thread.cc) = d1cce6f400c50c6def608cdf0088cd0cdfb9cc90
+SHA1 (patch-content_gpu_gpu__main.cc) = c911a3efab5b6e297fbaae9a75f0a92d5fd414d2
+SHA1 (patch-content_ppapi__plugin_ppapi__blink__platform__impl.cc) = e07fb054b8a2be61d5f8d61559bd071835f5877e
+SHA1 (patch-content_ppapi__plugin_ppapi__blink__platform__impl.h) = 4943cbe859df695e8d7ef7dd9f420bc837dcc8f6
+SHA1 (patch-content_ppapi__plugin_ppapi__plugin__main.cc) = 25622bd75caa94008e6f8822c18857c22d68823b
+SHA1 (patch-content_public_browser_content__browser__client.cc) = dcedffe490e5e7b950e01da3ff83413145a457b4
+SHA1 (patch-content_public_browser_service__process__host.cc) = e2f2ef70a750eb0a82f52eeae0903e809c4c1c87
+SHA1 (patch-content_public_browser_zygote__host_zygote__host__linux.h) = 57f4554b88027b4a03d9ac3d98fbae54e87c531b
+SHA1 (patch-content_public_common_content__features.cc) = 65f22ab161f7bb55caca8caac7ca3a3d84301ea1
+SHA1 (patch-content_public_common_content__switches.cc) = c5afe5dc23e4f39bfb919e1f29c2ee2645652c18
+SHA1 (patch-content_public_common_content__switches.h) = f63e09e621fe54e0613af04deff37f56e51d7ac3
+SHA1 (patch-content_public_common_zygote_features.gni) = 2c061acda967f535051afcb23a6bf25843e708dd
+SHA1 (patch-content_renderer_media_gpu_gpu__video__accelerator__factories__impl.cc) = 52afdf89c954a5e351016a615f37823795c1809a
+SHA1 (patch-content_renderer_render__thread__impl.cc) = 59b202dd715b8e38a2408a2a23c657a310872a73
+SHA1 (patch-content_renderer_renderer__blink__platform__impl.cc) = 0defc3c5c8f7046e44b7a3c5824c0cc424b21faf
+SHA1 (patch-content_renderer_renderer__blink__platform__impl.h) = c756ed8b367c4290da94b30dccd833fc3a85de73
+SHA1 (patch-content_renderer_renderer__main__platform__delegate__linux.cc) = be2b6e8be50d33acb2edaa9607ae73f5b64716c9
+SHA1 (patch-content_shell_BUILD.gn) = dd89beaee3913d44aa7b9c1789a0f5dba2131e84
+SHA1 (patch-content_shell_app_shell__main__delegate.cc) = ccb562cf0446012fda18e7c1eccd3b3712c81312
+SHA1 (patch-content_shell_browser_shell__browser__main__parts.cc) = 7eac82addb0c31f527c3559156822e4fa6f9c199
+SHA1 (patch-content_shell_browser_shell__paths.cc) = c664644f0f4cc53ed0967c1bb6ccdc891a9ae2b5
+SHA1 (patch-content_shell_renderer_shell__content__renderer__client.cc) = 3262830840b421ddc1d946640eb51b839f6d7bbc
+SHA1 (patch-content_shell_utility_shell__content__utility__client.cc) = d6d74dee193dbfcf3463ea052815ae46432d2d5c
+SHA1 (patch-content_test_BUILD.gn) = 9503d777cf20901e02b6372ab0890aadaaa68ac0
+SHA1 (patch-content_utility_services.cc) = 27e29bb89ffd8684c5dc165b5048b7ab97a2099e
+SHA1 (patch-content_utility_speech_speech__recognition__sandbox__hook__linux.cc) = 9d8aa2264da99f61fcc5b40855062de9db633476
+SHA1 (patch-content_utility_speech_speech__recognition__sandbox__hook__linux.h) = 43dfe80e4890907df30424a1c453bb7546001dff
+SHA1 (patch-content_utility_utility__blink__platform__with__sandbox__support__impl.cc) = 1381361a6c4780f3e536ca2116927e3ca1a41c31
+SHA1 (patch-content_utility_utility__blink__platform__with__sandbox__support__impl.h) = 0d8ce96b8ce574b9355e10e8cc9c09c5bec7d3ad
+SHA1 (patch-content_utility_utility__main.cc) = ced679cfa2bc77c8bc1dbfacf9d3a8a3607c292d
+SHA1 (patch-content_utility_utility__thread__impl.cc) = 4398d5c5ba0071f30f1c83a115949991ada16f5d
+SHA1 (patch-content_zygote_BUILD.gn) = 34726c856eacb995714abb7722a08ca7c7aefc1b
+SHA1 (patch-content_zygote_zygote__linux.cc) = dce40d54f1ef4e80166d7f15ee875d9f1260b497
+SHA1 (patch-content_zygote_zygote__main__linux.cc) = c395af8cd6c0a6e5edb282f37ada033fddca41c7
+SHA1 (patch-device_bluetooth_bluetooth__adapter.cc) = 45f205b64248dabb4e4c9f1d243ec866b766c942
+SHA1 (patch-device_bluetooth_cast__bluetooth.gni) = 3559dbceb5753ea71b678b4d5be4e76b3f41f105
+SHA1 (patch-device_fido_fido__discovery__factory.cc) = 3a1400b6df73ab2fa6603a46366cb29550373cb6
+SHA1 (patch-device_gamepad_BUILD.gn) = 0ca79f3339930713be334e73ab0fbef52d72a054
+SHA1 (patch-device_gamepad_gamepad__provider.cc) = 7e718d208a566a6742b33ec2eedc97f5ccb92362
+SHA1 (patch-device_gamepad_hid__writer__linux.cc) = 7170e817977e2deff7f08df26d621764bc14595d
+SHA1 (patch-extensions_browser_api_api__browser__context__keyed__service__factories.cc) = 2797f70fe7b34962c99a04352a9b9dc3966a8c35
+SHA1 (patch-extensions_browser_api_management_management__api.cc) = 109eba4fffad3b1c10f630fe043e2d77bcebb00e
+SHA1 (patch-extensions_browser_api_messaging_message__service.cc) = c5199c2b2a5b51a97e2deca2cca96b794b35dd6e
+SHA1 (patch-extensions_browser_api_networking__private_networking__private__delegate__factory.cc) = bd2c7d96e748704501db2145d129cb5cb3e50151
+SHA1 (patch-extensions_common_api___permission__features.json) = 4d555117a6b6f8118ddb790fbe1962fe9c6f1709
+SHA1 (patch-extensions_common_api_runtime.json) = 9d21d8d4abf65ae50a4096dc8705704c782628ed
+SHA1 (patch-extensions_common_command.cc) = 7f2fc95dc75155b76010f51138bae80a64acdbc8
+SHA1 (patch-extensions_common_features_feature.cc) = 2394315ac4676df451bf32c4be2715db288819f2
+SHA1 (patch-extensions_renderer_bindings_api__binding__util.cc) = 25c97d239bd428d6f121a020f5a08a852f222b21
+SHA1 (patch-extensions_renderer_bindings_argument__spec.cc) = 7cb248ebd4eefc706f6747edd812c42359663aeb
+SHA1 (patch-extensions_shell_app_shell__main__delegate.cc) = b3ce7d650d82c79ab08c96cdee88cb492a8d408b
+SHA1 (patch-extensions_shell_browser_api_runtime_shell__runtime__api__delegate.cc) = 4d589e20b27ca455224fd51220a9de25d0eeee29
+SHA1 (patch-extensions_shell_browser_shell__browser__main__parts.cc) = 21cd7caffe49d35bc19f5991bd569c8a7d637b50
+SHA1 (patch-extensions_shell_browser_shell__extensions__api__client.cc) = e7e753d39d351ee76d631161c772522d36c7d20f
+SHA1 (patch-extensions_shell_browser_shell__extensions__api__client.h) = da90c57427e7cae56ca0f4d66033d2b4a1379fd2
+SHA1 (patch-google__apis_gcm_engine_heartbeat__manager.cc) = 28ec59f544f339bcea4088131b763ecc09c6f4f8
+SHA1 (patch-gpu_command__buffer_common_gpu__memory__buffer__support.cc) = 2db2d9c08a03f3157447b42f4967cfe5a4d84362
+SHA1 (patch-gpu_command__buffer_service_dawn__context__provider.cc) = e1ca511f2cf3c7f8b1f547fefaddb636268d1213
+SHA1 (patch-gpu_command__buffer_service_gles2__cmd__decoder.cc) = fe2400cf865f386c349ea99e271573d1492b4f61
+SHA1 (patch-gpu_command__buffer_service_shared__image_angle__vulkan__image__backing__factory.cc) = 6e3cf2109f0ef32369448368da9cd3731fe2e34d
+SHA1 (patch-gpu_command__buffer_service_shared__image_external__vk__image__backing.cc) = 6e4eeb419ce7bbe8f1c45ff58e676c94b5f56712
+SHA1 (patch-gpu_command__buffer_service_shared__image_external__vk__image__backing__factory.cc) = 39373d061fd069a2d441b829e93bebd7bbfc8ac2
+SHA1 (patch-gpu_command__buffer_service_shared__image_shared__image__factory.cc) = 6e5c392235860b948e406330a0dc64ccdade02a0
+SHA1 (patch-gpu_command__buffer_service_shared__image_shared__image__manager.cc) = 79b62ed4377cc0c3740b22948c2474ee49267820
+SHA1 (patch-gpu_command__buffer_service_shared__image_wrapped__sk__image__backing.cc) = c82011f778a161a8178e50d1b730164846c161fa
+SHA1 (patch-gpu_command__buffer_service_webgpu__decoder__impl.cc) = c0b6c67af5ef66f2d1f9c5f3f11b7edfc095859e
+SHA1 (patch-gpu_command__buffer_tests_gl__gpu__memory__buffer__unittest.cc) = 14432d97761890a2cc47e8fcc9783b4ec6433736
+SHA1 (patch-gpu_config_gpu__control__list.cc) = 77942e415f85f5f0773882e035c5eb814f0673be
+SHA1 (patch-gpu_config_gpu__finch__features.cc) = 5bdbed8b123643a44e9035f8bf0eac1a6f317c28
+SHA1 (patch-gpu_config_gpu__info__collector.cc) = def7b53e825e45de89ef7e9178bc5a3f8eba3dec
+SHA1 (patch-gpu_config_gpu__test__config.cc) = 03f74efefd52413eeeb3cf0d28d4d9fc43976667
+SHA1 (patch-gpu_ipc_common_gpu__memory__buffer__support.cc) = 22b159b5f48bd72d34de9a961cb6c413c79fe1c9
+SHA1 (patch-gpu_ipc_common_gpu__memory__buffer__support.h) = 11fc71cf27d8b4ca788aad868c5649086b5e90ca
+SHA1 (patch-gpu_ipc_service_gpu__init.cc) = 2dde589657f666b7d44781c5b984fd7b92ee128e
+SHA1 (patch-gpu_ipc_service_gpu__memory__buffer__factory.cc) = 63bab34df965274264b41b50fbc0e79ea5293705
+SHA1 (patch-gpu_ipc_service_x__util.h) = 863165d9aaab327068844127b1352bda4e5fe676
+SHA1 (patch-gpu_vulkan_generate__bindings.py) = 680927b873ea03168510606bf3927545da0f9262
+SHA1 (patch-gpu_vulkan_semaphore__handle.cc) = c157b5dc856c2fa7cbb2e72ba868a7d227c1fce9
+SHA1 (patch-gpu_vulkan_vulkan__device__queue.cc) = 778f0d44d084ebd4bad3d28b14f65162ec5a7da8
+SHA1 (patch-gpu_vulkan_vulkan__device__queue.h) = 301c201d10e29acbcd4b6523b58466045f157752
+SHA1 (patch-gpu_vulkan_vulkan__function__pointers.cc) = 92b108717b076434a9e54bb761434826f288e82d
+SHA1 (patch-gpu_vulkan_vulkan__function__pointers.h) = 5d1e0a327e020c1cb1d1278c5ef6f894680ee674
+SHA1 (patch-gpu_vulkan_vulkan__image.h) = 3b7c04f7ffa48d01c4dd434ff33f6bc39d5a9253
+SHA1 (patch-gpu_vulkan_vulkan__util.cc) = fae3d8aae9e9509074c4c82621df62eb91518f7d
+SHA1 (patch-headless_lib_browser_headless__browser__main__parts__posix.cc) = d9951d421326aaf90bed597df0352dc57a8f9770
+SHA1 (patch-headless_lib_browser_headless__content__browser__client.h) = 40e70117919a401fd38deac3df501673a9c2d353
+SHA1 (patch-headless_lib_browser_headless__request__context__manager.cc) = 936c2ba6999d6fef3c164656db09ad3ee28620de
+SHA1 (patch-headless_lib_browser_headless__web__contents__impl.cc) = e8a9bf1dee5eb8331c8cf5913b46c78529fb0728
+SHA1 (patch-headless_lib_headless__content__main__delegate.cc) = fb66c01c440927074de77aa16031997fdb7c73b3
+SHA1 (patch-ipc_ipc__channel.h) = 6b12298e2139a7279caa09df9e365b87f64280c8
+SHA1 (patch-ipc_ipc__channel__common.cc) = bfad35b7c93c2fd183a492927bd52a2c6ab8d458
+SHA1 (patch-ipc_ipc__channel__mojo.cc) = edca49c7682d9455d9038d81ed416c572fbfedea
+SHA1 (patch-ipc_ipc__message__utils.cc) = 88271a77d0e044000dab43279ab89287ba2d1861
+SHA1 (patch-ipc_ipc__message__utils.h) = a2cc50d6148721a084f8de29658b2474722fae94
+SHA1 (patch-media_BUILD.gn) = e5cbc55d5a14c4dc7dcdbd3298826531610f7c62
+SHA1 (patch-media_audio_BUILD.gn) = ec44676db5d153e62b8608ed500fda94b53bb056
+SHA1 (patch-media_audio_alsa_audio__manager__alsa.cc) = 77703e819250d90dfaf9f6a4f071ff482987180c
+SHA1 (patch-media_audio_audio__input__device.cc) = 80723a27de1832710d59abb5881585e5660bc471
+SHA1 (patch-media_audio_audio__output__proxy__unittest.cc) = fdfe740b328274b37340e77a01c0d122dd945fc6
+SHA1 (patch-media_audio_pulse_pulse__util.cc) = 2cab76573b1bb54756a762f885c7631580645c07
+SHA1 (patch-media_audio_sndio_audio__manager__sndio.cc) = fbf154c38690571a9b83cf64802d4204a7241dcc
+SHA1 (patch-media_audio_sndio_audio__manager__sndio.h) = 10bd5655bfccc36b2168a9b44fd601e6ea827516
+SHA1 (patch-media_audio_sndio_sndio__input.cc) = 4755b7af0b3442f6296587f62facc3ba75b75d0e
+SHA1 (patch-media_audio_sndio_sndio__input.h) = 07728f8bd4222fe2c49e9c5d10d2e8877d7a2020
+SHA1 (patch-media_audio_sndio_sndio__output.cc) = e9655a6a32907f0add273998595ed8e86deabc4a
+SHA1 (patch-media_audio_sndio_sndio__output.h) = c6be01665398be9f406a1719c612109b9d2b0050
+SHA1 (patch-media_base_audio__latency.cc) = 1d38f71e1c0c27b71e0b702a0027d7bfd2edae15
+SHA1 (patch-media_base_libaom__thread__wrapper.cc) = 445d1d23e73b512c41bd5461793561452d623461
+SHA1 (patch-media_base_libvpx__thread__wrapper.cc) = 2ce167878e7d58909cbc2e3750fd817e67761d9e
+SHA1 (patch-media_base_media__switches.cc) = 558841aeb1d8ae886c6317ed74af84f1931637c7
+SHA1 (patch-media_base_media__switches.h) = f89a42f055e10029e35608a0709647413f8c9548
+SHA1 (patch-media_base_user__input__monitor__unittest.cc) = 03e632f19a0b67f1aef740dfc642cbcb1fa5e803
+SHA1 (patch-media_base_video__frame.cc) = 1c6849c5ce5b505a874cc5a15d3ac00ee0fb9ff2
+SHA1 (patch-media_base_video__frame.h) = 81ad11a1b782612ce621c789a1829e8bcaf1ebc0
+SHA1 (patch-media_capture_video_create__video__capture__device__factory.cc) = 844757c25fb04cc9c9c87f7c26c43e299db7cefc
+SHA1 (patch-media_capture_video_fake__video__capture__device__factory.cc) = e106e963de62eeea2289194f163be0babd7cfefd
+SHA1 (patch-media_capture_video_file__video__capture__device__factory.cc) = b649d3af77f7ce2de659e48479fcc7912b966154
+SHA1 (patch-media_capture_video_linux_fake__v4l2__impl.cc) = bbe5eb6ef9bf18b1ede31a2f4c6f11989bf42ce6
+SHA1 (patch-media_capture_video_linux_fake__v4l2__impl.h) = 0b6e0c0b529e3f74704911539408417666f1a8d4
+SHA1 (patch-media_capture_video_linux_v4l2__capture__delegate.cc) = 272549fed07a4c1f12b606f691641b530c3d57e7
+SHA1 (patch-media_capture_video_linux_v4l2__capture__delegate.h) = 178359424a382a68778bd856c25e009cec3997b2
+SHA1 (patch-media_capture_video_linux_v4l2__capture__device.h) = 8b090427f802284d185e0c4f7f4999b9472bc209
+SHA1 (patch-media_capture_video_linux_v4l2__capture__device__impl.cc) = bedce9a75df34e2b9cbc4683f73c860893f93471
+SHA1 (patch-media_capture_video_linux_v4l2__capture__device__impl.h) = e5e007ce8da5cd942985caa381d6da6dc1e9cb2d
+SHA1 (patch-media_capture_video_linux_video__capture__device__factory__v4l2.cc) = 4fd9f9aeafde39fd7be06961faa9a87201f8a726
+SHA1 (patch-media_capture_video_linux_video__capture__device__factory__v4l2.h) = 1b9b12c270077be821f9d2285a99f17954d949bc
+SHA1 (patch-media_capture_video_linux_video__capture__device__linux.cc) = 8663b1861d29990d3c5e0d3dedec57eb99296f64
+SHA1 (patch-media_capture_video_video__capture__buffer__tracker__factory__impl.cc) = 132e62f0f073a4e3c962774c57518af4f0da1219
+SHA1 (patch-media_capture_video_video__capture__device__client.cc) = 8db71e360b774a3af3fa9cd9cb8709de3cb52912
+SHA1 (patch-media_cdm_cdm__paths__unittest.cc) = 6a48dcb3ead9f7f916d62a54b3c9a04b600c348e
+SHA1 (patch-media_cdm_library__cdm_cdm__paths.gni) = 01abd65241a64a97338b3c628f314a2ae6abddb4
+SHA1 (patch-media_ffmpeg_scripts_build__ffmpeg.py) = 9b486e30972a24f3c40a549eadd359af596071f0
+SHA1 (patch-media_ffmpeg_scripts_robo__lib_config.py) = d8cfba292214059da09a15e015731d4d386fc1fb
+SHA1 (patch-media_gpu_buffer__validation.cc) = e0b8d298ce7ad00b87720d3145bf02a7d76ec5fc
+SHA1 (patch-media_gpu_chromeos_gl__image__processor__backend.cc) = f64862563c297c75d2968a2b6e4152a9e2bf7b85
+SHA1 (patch-media_gpu_chromeos_libyuv__image__processor__backend.cc) = 4ed8fff2fb89d0b2fc184a1957c46e7e421df556
+SHA1 (patch-media_gpu_chromeos_mailbox__video__frame__converter.cc) = 85aa96c358f9c2a458f9f0f9d66476aa549e9b71
+SHA1 (patch-media_gpu_chromeos_native__pixmap__frame__resource.cc) = e41f2897ec6f4dc3dc432d538fa04d7aa11f0787
+SHA1 (patch-media_gpu_chromeos_platform__video__frame__utils.cc) = dfe3b1e3983603cc1a376f9e43eab9e1f020db46
+SHA1 (patch-media_gpu_chromeos_video__decoder__pipeline.cc) = ee1e096b96a94a5846c57aa575f2575126e55ac7
+SHA1 (patch-media_gpu_gpu__video__encode__accelerator__factory.cc) = 3a7d61a06fc3737eb1b90f0e492fdd9124b00e23
+SHA1 (patch-media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.cc) = 0d97a9d0a82c862f4e12f7a5553877e2ddf11b89
+SHA1 (patch-media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.h) = 2a36a7d6f8c736dde45d2be62c61821c02b6467c
+SHA1 (patch-media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.cc) = 7a21596c88a9dac9906db4321ceeea701b016b58
+SHA1 (patch-media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.h) = a6e2e6bd5a57f64c4afbe84f9c13e5d350ce7564
+SHA1 (patch-media_gpu_vaapi_vaapi__video__decoder.cc) = 61459c1f37f2766f109dea6930a847fbb6e1a501
+SHA1 (patch-media_gpu_vaapi_vaapi__wrapper.cc) = 2bcb8cccd1ab8aa12695a2d02d1e809c2ac43379
+SHA1 (patch-media_media__options.gni) = 41fe51c8449c92d57a3d9ecadd83370edbdffcdd
+SHA1 (patch-media_mojo_mojom_stable_BUILD.gn) = d838c434bcd8d14faf9950fa43fe9d6a612b8272
+SHA1 (patch-media_mojo_mojom_stable_stable__video__decoder__types__mojom__traits.cc) = 2b7d7f57fd5af2bd073659c9a83f4d56a8c8f772
+SHA1 (patch-media_mojo_mojom_stable_stable__video__decoder__types__mojom__traits.h) = b0a1018dd6be781e99ea34ffff33f6a9fdb7c76c
+SHA1 (patch-media_mojo_mojom_video__frame__mojom__traits.cc) = 838b6dd148176e2ba84cfcb317813a0e67f92dee
+SHA1 (patch-media_video_fake__gpu__memory__buffer.cc) = 3a704077f95dc430f6f9b4f9086f7bba8434bbfd
+SHA1 (patch-media_video_gpu__memory__buffer__video__frame__pool.cc) = 48d54049f7044d75f312be26a16f243cb4989bd4
+SHA1 (patch-media_video_video__encode__accelerator__adapter.cc) = 0c80171dfb45e21694d223b97d7465a6199b5220
+SHA1 (patch-media_video_video__encode__accelerator__adapter__test.cc) = 14a7ef2b7536428587b333c63e39e7ca6fc17e55
+SHA1 (patch-media_webrtc_audio__processor.cc) = 8e5b75ae3b0d2292e6132321fe36b0cc37acd480
+SHA1 (patch-media_webrtc_helpers.cc) = d1d9b2ed9347e9917cb9b39e37858e88cf3483ed
+SHA1 (patch-media_webrtc_helpers__unittests.cc) = 118d56d71097494cf1fa6358cb5d90dd2b81a2c7
+SHA1 (patch-mojo_core_BUILD.gn) = 906e169828e14072c7941d58f79ebb4c96d75ac7
+SHA1 (patch-mojo_core_channel.cc) = 6f1c6baa3b90e3c90f739f28cda434686047a690
+SHA1 (patch-mojo_core_embedder_features.h) = 84df23ee417cd6d9ddb221ae4031bbe6065a79bf
+SHA1 (patch-mojo_public_c_system_thunks.cc) = 85121b3c782629661cd1d19bdb36d6313c9fea1c
+SHA1 (patch-mojo_public_cpp_platform_socket__utils__posix.cc) = 9f7f630d401fee7c6176f5eb88e9ec3fdd59aa4b
+SHA1 (patch-mojo_public_tools_bindings_mojom.gni) = f96d0b3fa42e8d287a6f75844e439d94c11b7d05
+SHA1 (patch-net_BUILD.gn) = 5196a276d1d23d5892390e0ae2d9f6214ca73ef8
+SHA1 (patch-net_base_features.cc) = 51a84df454ca316ec5e6878b2362cd0bf7c8bb8d
+SHA1 (patch-net_base_mock__network__change__notifier.cc) = 0d28abc5fccf7dad5b9aa3b6a7c206e5b0ae8b27
+SHA1 (patch-net_base_mock__network__change__notifier.h) = b09fe921aa58ecdd0ef35ef66cfd5f26b397f54b
+SHA1 (patch-net_base_network__change__notifier.cc) = 9c7c103315e3f31616a5d70661baa1469f94d983
+SHA1 (patch-net_base_network__change__notifier.h) = 173c9dcc32bfbba28e931312f46e15adeed92ab1
+SHA1 (patch-net_base_network__change__notifier__passive.cc) = 0807cdbfc7e46ec6927445a6efefd596e50d0808
+SHA1 (patch-net_base_network__interfaces__posix.h) = c41f6451a17fa5813ec6a3cc709afa6fdc3e6a1d
+SHA1 (patch-net_base_sockaddr__util__posix.cc) = b952a717a5a587ef1fee477fd81be59fc45a81ad
+SHA1 (patch-net_base_sockaddr__util__posix__unittest.cc) = f9f2b26bef5f7e64b71d68a2dd009469d1a3c065
+SHA1 (patch-net_cert_cert__verify__proc.h) = 1c5ef3e5b1816ed6c73b5026f8d1226b790481e6
+SHA1 (patch-net_disk__cache_simple_simple__file__tracker.cc) = 7cbd8ddda3178ddaceb818d2ae6d80314649caf7
+SHA1 (patch-net_dns_BUILD.gn) = 85d4d290b02a0dca08e10f0950d12046abab6a92
+SHA1 (patch-net_dns_address__info.cc) = 90dd41710db7e9f9c9193af58d7c3a501de04a70
+SHA1 (patch-net_dns_address__sorter__posix.cc) = de8bafbff88cfd6827c8e3c138b4971d0b6c7966
+SHA1 (patch-net_dns_dns__config__service__posix.cc) = edffa8bbd0c35af32634ca29b647b829d240ecda
+SHA1 (patch-net_dns_dns__reloader.cc) = 4bda0cd1888e7e1e7c96717e02c51bd560d9b1e6
+SHA1 (patch-net_dns_dns__util.cc) = a67bfcd2f75f3e307ebaca7e7d980469874ed5ba
+SHA1 (patch-net_dns_host__resolver__proc.cc) = aa1bff42a0ea5137aab878a7661a4b94a0ff0bd1
+SHA1 (patch-net_dns_public_BUILD.gn) = 16fc6926819d6f34544f69ee03a8d6c49a168ae1
+SHA1 (patch-net_dns_public_resolv__reader.cc) = d0a44220afe40c65c1f50c412d8cca662841745b
+SHA1 (patch-net_dns_public_resolv__reader.h) = 62735535bce895c8b6837543e3a983a1163e32d3
+SHA1 (patch-net_dns_public_scoped__res__state.cc) = 66fb87e55a016d1935cefe2dfb6ce18b49c6c66f
+SHA1 (patch-net_dns_public_scoped__res__state.h) = 4ad157d4ca266ac1a6e74a8f843a69d55f9a02f3
+SHA1 (patch-net_filter_zstd__source__stream.cc) = d36a55f607798007b04bb006c5937bdf81dfd31f
+SHA1 (patch-net_http_http__auth__gssapi__posix.cc) = e0f9fe3aa7fba9cc8ed8f177e0949313a6e7146f
+SHA1 (patch-net_http_http__auth__gssapi__posix.h) = d942ddc75f447a3ae43f3de88e79f6aea3b43a72
+SHA1 (patch-net_http_http__auth__handler__negotiate.cc) = 9e48b049c36abd8e259639ebc67fb9549e7d8cd4
+SHA1 (patch-net_http_http__auth__preferences.cc) = 7f86725f1ec2655c288e884d2f3f7fbf6afdf7bc
+SHA1 (patch-net_http_http__auth__preferences.h) = f7827059feaf13e35ee18ad68928acc74eba476a
+SHA1 (patch-net_http_http__network__session.cc) = cb8ca07e649e23aea0f0633515d1c61fe8008153
+SHA1 (patch-net_proxy__resolution_proxy__config__service.cc) = 3b7dd2fef69948600f8d06753b3f6e5b2361bdca
+SHA1 (patch-net_proxy__resolution_proxy__config__service__linux.cc) = 850ee4db86e45abaf0894635226d58633d12bf22
+SHA1 (patch-net_socket_socket__posix.cc) = 13c9540560de4c877a7cfa2bc9f674bffde8bd0c
+SHA1 (patch-net_socket_socks5__client__socket.cc) = 639c5a2fdd5d551a9caf9337cea47eb79040418a
+SHA1 (patch-net_socket_tcp__socket__posix.cc) = 41b69702b8340591c0bde89bcdef86dbb53f2451
+SHA1 (patch-net_socket_udp__socket__posix.cc) = f82269c0eb2da810820811e6fe7042653314ba15
+SHA1 (patch-net_socket_udp__socket__unittest.cc) = 1e68462d4681f19ea986295502c6b898e396a6e7
+SHA1 (patch-net_third__party_quiche_BUILD.gn) = 12282d0679b92354fda6751608a561d9ffd53169
+SHA1 (patch-net_tools_cert__verify__tool_cert__verify__comparision__tool.cc) = 8a5517a06d856671faa0c055cc076e0f453a1ebe
+SHA1 (patch-net_tools_cert__verify__tool_cert__verify__tool.cc) = b0b0a8b35334c58253202394b25a83585807252f
+SHA1 (patch-net_tools_net__watcher_net__watcher.cc) = 95f0652bbca1a0954c5a90de2395543c003ba16d
+SHA1 (patch-net_traffic__annotation_network__traffic__annotation.h) = 893d3521753ecb5b88bd8c191f64726f17adc395
+SHA1 (patch-net_url__request_url__request__context.cc) = 1daa422d5c8cd2f10d75811b200bb13bd5f05e8c
+SHA1 (patch-net_url__request_url__request__context.h) = 97dfde50d8e8cfac278d4853d649b8e71bd0989f
+SHA1 (patch-net_url__request_url__request__context__builder.cc) = 351b7c8407b8b565a494bb70874f5e4c7d893fd1
+SHA1 (patch-pdf_pdfium_pdfium__engine.cc) = a518992b194216c830a28a3965e1b063c3bab83a
+SHA1 (patch-ppapi_tests_test__utils.h) = 84cf31e2b7cb48519fc7cc076ff0fa6028fbf3fd
+SHA1 (patch-printing_backend_cups__ipp__helper.cc) = 59a642ea122897457b90d11d5f964a8ea6a13979
+SHA1 (patch-printing_backend_print__backend__cups.cc) = 46c1256288a876494e4f750c41fe3de0e7764e61
+SHA1 (patch-printing_mojom_printing__context__mojom__traits.cc) = 016f6ecb8a72a90f76f7320ba3b02711500ba4aa
+SHA1 (patch-printing_mojom_printing__context__mojom__traits.h) = 693d30714f41471d82178ed231ca3e04061d7276
+SHA1 (patch-printing_print__settings.cc) = e288bc65fe59a27afcf5ec3f8e38e8e3b0495d04
+SHA1 (patch-printing_print__settings.h) = b2f6dadd505199dcdce1bd8e646e2da36b72d3d6
+SHA1 (patch-printing_print__settings__conversion.cc) = 62a1d250b5b2f943c345bc25ef8ed53190262b7d
+SHA1 (patch-printing_printing__context__linux.cc) = 323f0e3752320d1b54bb6d5d1d5735916436b0c1
+SHA1 (patch-printing_printing__features.cc) = 84ff8bfdf11f643776cf170fa404b29a385b19d7
+SHA1 (patch-printing_printing__features.h) = 2755b699546fa01734cca0b9331f516e8948d711
+SHA1 (patch-printing_sandbox_print__backend__sandbox__hook__linux.cc) = afd8ab8d1f164b1f5067b167183db28326a616ed
+SHA1 (patch-printing_sandbox_print__backend__sandbox__hook__linux.h) = ba269c4d13483a685399f9198213ee321e38651f
+SHA1 (patch-remoting_base_chromoting__event.cc) = 296f0c6d571eee1bdc68ea9e278a46e8b469efd9
+SHA1 (patch-remoting_base_host__settings.cc) = 3ad73939d730bd18b30c08d4bcba6d04d4376e55
+SHA1 (patch-remoting_client_display_sys__opengl.h) = 7fb3b43154041e7b3a84d3841fc6ebdf2c5ae782
+SHA1 (patch-remoting_codec_webrtc__video__encoder__vpx.cc) = 12ed56c966f17b06301e2231b2b1633d260fb715
+SHA1 (patch-remoting_host_base_desktop__environment__options.cc) = e167d4b3a460d809d51f6fc87c3f223d722d1631
+SHA1 (patch-remoting_host_base_switches.cc) = f0a323320628f48b28912426edd7d70db949a6b3
+SHA1 (patch-remoting_host_base_switches.h) = 571dc5aeee4d25b0d9b2f7fe6fa0525e4745d1dc
+SHA1 (patch-remoting_host_basic__desktop__environment.cc) = d7a4d3d7252879869657045b0b5632bec32333b5
+SHA1 (patch-remoting_host_chromoting__host.cc) = b77372ea31fd1af69c66472e0445bf1f7455652f
+SHA1 (patch-remoting_host_chromoting__host.h) = 57bdaa9b73a9fd61d35eb4d75cea854b7d586a33
+SHA1 (patch-remoting_host_chromoting__host__context.cc) = d08a978ec7364a0c21cda6179b4a1d9336c42b0c
+SHA1 (patch-remoting_host_chromoting__host__services__client.cc) = 71c051addc0ff08cf1f1518d5d028ebec64887af
+SHA1 (patch-remoting_host_client__session.cc) = 3442685ac4c7051ec6541c2f1e38a9a186fc8163
+SHA1 (patch-remoting_host_crash_crash__file__uploader.cc) = 8f08cdb1f88b37c7b35e02c13fdd3f076727f243
+SHA1 (patch-remoting_host_desktop__and__cursor__conditional__composer.cc) = 7854d234b8b9486b97558e339cfb650b30716a52
+SHA1 (patch-remoting_host_desktop__capturer__proxy.cc) = 79653a49cb624668ef1c8eb5d924eb7694f28e4b
+SHA1 (patch-remoting_host_desktop__capturer__wrapper.cc) = 737d87e62f943cf607d4516f175f8ea392ab1110
+SHA1 (patch-remoting_host_evaluate__capability.cc) = 8df21edcb580b3711f3a5a7d2360bbf4033595a8
+SHA1 (patch-remoting_host_host__attributes.cc) = 29e3fd4c3df3780cd29fa88c80e0c39624ef2e07
+SHA1 (patch-remoting_host_host__details.cc) = f3a32764b0bfdb0e2f63b9526b0e14eb8f582e84
+SHA1 (patch-remoting_host_host__main.cc) = c86fe49019df31e7fcbcdd3b46bcaf613ccffdfa
+SHA1 (patch-remoting_host_ipc__constants.cc) = 5f7d50e7aedb0bda066d76d0281ba56e74364242
+SHA1 (patch-remoting_host_it2me_it2me__host.cc) = 9287ec48407018b9a5974f18245bc969fa0dd6e7
+SHA1 (patch-remoting_host_it2me_it2me__native__messaging__host__main.cc) = 0fb0d3c3220793e59a9f14594ea7a8da2c5faa36
+SHA1 (patch-remoting_host_me2me__desktop__environment.cc) = f2eddecacc8f5629b685c2b76d98c283ac4f5c03
+SHA1 (patch-remoting_host_mouse__cursor__monitor__proxy.cc) = b6340e496400c6ee7d2c5d5d0d0feb421e9b8c3b
+SHA1 (patch-remoting_host_policy__watcher.cc) = 9cf6c9e61f008fa7a0dc987ca2593747889b0d80
+SHA1 (patch-remoting_host_remote__open__url_remote__open__url__client.cc) = 44ce8f5c0756ffe86dd403d6f2303c74c2d89493
+SHA1 (patch-remoting_host_remote__open__url_remote__open__url__util.cc) = 94c98a98c671a566c7a6313706093f620cff241e
+SHA1 (patch-remoting_host_remote__open__url_url__forwarder__configurator.cc) = 9712c2f052bfd94aa9b261ca1eeb29f173217a6d
+SHA1 (patch-remoting_host_remoting__me2me__host.cc) = bcfef8bac54162a0ae716dafbba62400634aafa7
+SHA1 (patch-remoting_host_setup_start__host__main.cc) = a54a1d397f12d914465523788558bc7489536a76
+SHA1 (patch-remoting_host_webauthn_remote__webauthn__caller__security__utils.cc) = a7e4db926e972b4f4a4f2aea4df4bd68ad657a26
+SHA1 (patch-remoting_host_webauthn_remote__webauthn__extension__notifier.cc) = a33131e00570a97b4988265c495e3b446c957ac9
+SHA1 (patch-remoting_protocol_webrtc__video__stream.cc) = caed129d69894304fd57c01cd3e398a52e54a7ec
+SHA1 (patch-sandbox_BUILD.gn) = a62e89741976258a7b8b5b0170f3b157cdd63844
+SHA1 (patch-sandbox_features.gni) = 376a20790ed50286539c50d813ae0cd2c762d050
+SHA1 (patch-sandbox_linux_BUILD.gn) = 17c8d3fcfbbc2b8a0ac2a4eabcd4d0c5d14acabc
+SHA1 (patch-sandbox_linux_services_init__process__reaper.cc) = f6677b3c3fda638ff9924614a064a1772efc6dff
+SHA1 (patch-sandbox_linux_services_libc__interceptor.cc) = 95b634251e7094cd0c592ff252d0ad26a94a565a
+SHA1 (patch-sandbox_policy_BUILD.gn) = 934451cd30dd1e5737c6b562271f5cb43ba3d545
+SHA1 (patch-sandbox_policy_features.cc) = 65e70015ccc767682223f3cf5af74777ea5cc635
+SHA1 (patch-sandbox_policy_features.h) = f8dfcf939a77d89a22790d54781cb1ad82576475
+SHA1 (patch-sandbox_policy_freebsd_sandbox__freebsd.cc) = 65e17fc5aa757da5756498e16c14ebd41b6baf56
+SHA1 (patch-sandbox_policy_freebsd_sandbox__freebsd.h) = 97c505b2e7c1b5405561b175e737f1aa42a617e3
+SHA1 (patch-sandbox_policy_mojom_sandbox.mojom) = f6e7d58a5169bb626b73c0291d49fc9244f67d35
+SHA1 (patch-sandbox_policy_netbsd_sandbox__netbsd.cc) = 8e19ee0f5e7979dea3c00934022668199e2b6166
+SHA1 (patch-sandbox_policy_netbsd_sandbox__netbsd.h) = dea18d5a1939765deb042a71525d50195e43ed52
+SHA1 (patch-sandbox_policy_openbsd_sandbox__openbsd.cc) = ba0aa46edf9997774797cd410eee570c409be344
+SHA1 (patch-sandbox_policy_openbsd_sandbox__openbsd.h) = 0792dbde8e78bde3e0461d560747908574b15fd5
+SHA1 (patch-sandbox_policy_sandbox.cc) = adbec60e11b837456b7d7cdc609c29c1c3157075
+SHA1 (patch-sandbox_policy_sandbox.h) = 8cb42b4e82ec945dcfd8117af6714fd9253c7643
+SHA1 (patch-sandbox_policy_sandbox__type.cc) = 8ae6bbb92a44cf311b5ae20127e4dcffbd075135
+SHA1 (patch-sandbox_policy_switches.cc) = 017c3436743fc57939b8a1a311f91e0de4856a45
+SHA1 (patch-sandbox_policy_switches.h) = 5acf6398340337ecdd032bb53da4acef74ae828d
+SHA1 (patch-services_audio_audio__sandbox__hook__linux.cc) = decb630882c8f3112f367103239f61db2b53ddde
+SHA1 (patch-services_audio_audio__sandbox__hook__linux.h) = cdeaf8727ab1d616b5f17054ee372b12dd657502
+SHA1 (patch-services_device_BUILD.gn) = aaa6958ff30fe68822d11e8a696d84c4d184eae4
+SHA1 (patch-services_device_hid_BUILD.gn) = 6544bb0d06b42676f76b8c3f3a6063a43e71814c
+SHA1 (patch-services_device_hid_hid__connection__fido.cc) = 4bbe5e40781d4697c78a013efc130a05c7c9a70d
+SHA1 (patch-services_device_hid_hid__connection__fido.h) = 06ff37e7b611f5538646fa5c367c63d2a89265fe
+SHA1 (patch-services_device_hid_hid__connection__freebsd.cc) = e63100203c943475e13f6c2bbb1b1e02d41c00af
+SHA1 (patch-services_device_hid_hid__connection__freebsd.h) = 770cf47f4ec2c6b6254455cc0feaf3851f37dc52
+SHA1 (patch-services_device_hid_hid__connection__netbsd.cc) = 951db09ec9bf8cd5105a65af4db8834d6c39defd
+SHA1 (patch-services_device_hid_hid__connection__netbsd.h) = 6b4fd7473a540d5e80b12517c42be3468d57abc2
+SHA1 (patch-services_device_hid_hid__service.cc) = 18ad651cafe4b19b999cab2ad594aa01291b18ca
+SHA1 (patch-services_device_hid_hid__service__fido.cc) = c177efd5649af5985a0c6e9902af71d4330045f1
+SHA1 (patch-services_device_hid_hid__service__fido.h) = 8b65d063e48ef6cdba0ce0ab5e04bc97473a5424
+SHA1 (patch-services_device_hid_hid__service__freebsd.cc) = a5ce1040720f71a1b3358b5a6600a473e0fd0a03
+SHA1 (patch-services_device_hid_hid__service__freebsd.h) = 7b133880b8be0d4d186615bd5df8092c9a9dea3a
+SHA1 (patch-services_device_hid_hid__service__netbsd.cc) = b1aa82a91404af2e53b7be929b48db5098c4cda4
+SHA1 (patch-services_device_hid_hid__service__netbsd.h) = 6ce8981eb05033fa3784969a88211fcfc64c78a8
+SHA1 (patch-services_device_public_cpp_generic__sensor_sensor__reading.h) = 45d38925c9c27ad27a44bc43554949adcb4a3fd4
+SHA1 (patch-services_device_public_mojom_BUILD.gn) = 9c74555d296374f5b67e2d0172fe6da8713531a9
+SHA1 (patch-services_device_serial_BUILD.gn) = 1cd8ca0a63a2eac3663a79ab0302bffde406ed52
+SHA1 (patch-services_device_serial_serial__device__enumerator.cc) = 1e7441f1a154ba85e4db99da11b27dfb46e6cf00
+SHA1 (patch-services_device_serial_serial__io__handler__posix.cc) = 150acc82e14739de8918bb96be33c49c364f4f5d
+SHA1 (patch-services_device_time__zone__monitor_time__zone__monitor__linux.cc) = 2e3bebd6bcabfe72759957a55818d64078a430ef
+SHA1 (patch-services_device_usb_BUILD.gn) = 4c021169c6e2da503f0be448e866fa6837c84dae
+SHA1 (patch-services_device_usb_usb__service.cc) = c4c91b70ac31481507187cd35629ed3fee488ba9
+SHA1 (patch-services_device_usb_usb__service__fake.cc) = f51c9fd03dba7302d7b0aab06ba02db518104634
+SHA1 (patch-services_device_usb_usb__service__fake.h) = a221277de2063c29373a250f7e3f4eca7d6ea0d0
+SHA1 (patch-services_network_BUILD.gn) = 7b1773f7985d387910832b23f3e36bd26d55938f
+SHA1 (patch-services_network_network__context.cc) = d8ff63a60377c5f993688623cc67d6d9424a324c
+SHA1 (patch-services_network_network__context.h) = f6c73c1d6645dea5c423915f254c7cc761398f56
+SHA1 (patch-services_network_network__sandbox__hook__linux.cc) = 05e4d6a17a99fc17dea435839528ca4c50285cad
+SHA1 (patch-services_network_network__sandbox__hook__linux.h) = 34070d3ae33a910bf8d6a0af6eba1b577eb3925f
+SHA1 (patch-services_network_network__service.cc) = 9095822db2abeeb840e38c70e93651a2b5f74cdf
+SHA1 (patch-services_network_network__service.h) = 383440d215dfadc23a4f44c6964ec04c97bf025e
+SHA1 (patch-services_network_public_cpp_BUILD.gn) = 5f3e1936899a453ef60394b1bb70fceda6ee44fe
+SHA1 (patch-services_network_public_cpp_features.cc) = d17c4332c71fc6b38b8f001b53f139e906e6f2b7
+SHA1 (patch-services_network_public_mojom_BUILD.gn) = 93706e3f399312ec62bac4409799dba6568bd728
+SHA1 (patch-services_network_shared__dictionary_shared__dictionary__writer__in__memory.h) = 049c952c2d492de65cba3badca8a81c0ec5e2de9
+SHA1 (patch-services_on__device__model_on__device__model__service.h) = 1db21eb0a47f23e4176d23dea3fc0557175f5399
+SHA1 (patch-services_on__device__model_pre__sandbox__init.cc) = 7643cf21a4c2def0bd702b895019ed2ab319f66b
+SHA1 (patch-services_resource__coordinator_memory__instrumentation_queued__request__dispatcher.cc) = 39291b70d474135f9f787edaa8c38cd71c0fa02e
+SHA1 (patch-services_resource__coordinator_public_cpp_memory__instrumentation_BUILD.gn) = e1eb7d530606159e328cb3efdd7e8aff9e5494a6
+SHA1 (patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics.h) = 5c887d95c56dea484f607a7747bb5b81ec958c4b
+SHA1 (patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics__bsd.cc) = 8b2e73a950e5890a95c65874d08aa62fe35bc4bd
+SHA1 (patch-services_screen__ai_public_cpp_utilities.cc) = 50a34650d643d2eb915218f4366eb83b0157da6b
+SHA1 (patch-services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.cc) = 3741d691351f302e3303c302445878f7b1352c83
+SHA1 (patch-services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.h) = 8fc874571b45d58c3966d3a27cb5c6a3a5d30505
+SHA1 (patch-services_service__manager_BUILD.gn) = a6f1007deb50c81c171f8d74206e8a8278da5eed
+SHA1 (patch-services_service__manager_public_cpp_service__executable_BUILD.gn) = 9c2d11e4c03ffeafbafa3796fcdddd61f4aa5bbb
+SHA1 (patch-services_tracing_public_cpp_stack__sampling_tracing__sampler__profiler.cc) = 9177f2491f60c7dfaf3bcdec3fe3f7c0ace8e43b
+SHA1 (patch-services_video__capture_public_mojom_video__capture__service.mojom) = 83a017ba7a99a4a585297a8a00c060336875672f
+SHA1 (patch-services_video__capture_video__capture__service__impl.cc) = f5c32b8976fb3d253e104a7d875dcce3d33b473e
+SHA1 (patch-services_video__capture_video__capture__service__impl.h) = 858ec045bcdc4137aa063fb0b8fd1e6a38d22dc1
+SHA1 (patch-skia_ext_SkMemory__new__handler.cpp) = 9cb0d10b5462cf658f8a561ca468cc51f657e438
+SHA1 (patch-skia_ext_font__utils.cc) = 25645f236ecfbe9d11ff567b83de5996f59bfafe
+SHA1 (patch-skia_ext_platform__canvas.h) = 7576b543264db96af3a98ea577083ecf9013b56c
+SHA1 (patch-skia_ext_skcolorspace__trfn.cc) = 58d342b473f6002d6b76e39d916027f634018925
+SHA1 (patch-third__party_abseil-cpp_absl_base_config.h) = 0bfe69377faae76618eae1b881272596c310258b
+SHA1 (patch-third__party_abseil-cpp_absl_base_internal_raw__logging.cc) = 3cb0a0290d51631e945b75a2d03826bdb3dd0d02
+SHA1 (patch-third__party_abseil-cpp_absl_base_internal_sysinfo.cc) = 48e91568552401ea36b0db69252ed4ef9b7e3f60
+SHA1 (patch-third__party_abseil-cpp_absl_debugging_internal_elf__mem__image.h) = 8ea85b8dd9a7739ef66b0f0b3ac7b6b40a8b9e5a
+SHA1 (patch-third__party_abseil-cpp_absl_time_internal_cctz_src_time__zone__format.cc) = bbfe027ae68d0379fa5731532287393f1f145709
+SHA1 (patch-third__party_afl_src_afl-fuzz.c) = a50b2ab31c9040b0cc1725e6249a8922eb50df4a
+SHA1 (patch-third__party_angle_BUILD.gn) = 29018d06f23152af9e3c3b84a764ed83c718c3d1
+SHA1 (patch-third__party_angle_src_common_platform.h) = 94070611aa44d1b3c055fb652e00d041412d73b8
+SHA1 (patch-third__party_angle_src_common_platform__helpers.h) = d29584190dd6991fbc95a281974bb4910849b0ca
+SHA1 (patch-third__party_angle_src_common_system__utils.cpp) = c0951760f1f9e9fae713f3b8565811ab2a98ca49
+SHA1 (patch-third__party_angle_src_common_system__utils__linux.cpp) = 5a65025d3b8c19cb93eaf4b43e83c4756df5bed4
+SHA1 (patch-third__party_angle_src_gpu__info__util_SystemInfo__internal.h) = 95bdd39789529d671337c4ceacc1391c319d1bf6
+SHA1 (patch-third__party_angle_src_gpu__info__util_SystemInfo__libpci.cpp) = 0c221d4c112daa25b3d492a730b9e783ca471442
+SHA1 (patch-third__party_angle_src_gpu__info__util_SystemInfo__linux.cpp) = 119ed42c211dc25af796afa8cfd7a697be770170
+SHA1 (patch-third__party_angle_src_gpu__info__util_SystemInfo__x11.cpp) = 0365cd97edd6a22bd69108ab9721eabc2f3080ec
+SHA1 (patch-third__party_angle_src_libANGLE_Display.cpp) = b06426999de926846824991ddc8f198802ed8c9d
+SHA1 (patch-third__party_angle_src_libANGLE_formatutils.cpp) = e45afae9905aec9b72a77fe78318de923f680d80
+SHA1 (patch-third__party_angle_src_libANGLE_renderer_gl_glx_FunctionsGLX.cpp) = 7aa610469e7089102ea1aff195564f858a78e174
+SHA1 (patch-third__party_angle_src_libANGLE_renderer_vulkan_DisplayVk__api.h) = 27f4a00afdb912afe5e534700053aaa576cd60a5
+SHA1 (patch-third__party_angle_util_BUILD.gn) = 1bf7be9962978ec697c5ba575dabd8184160d234
+SHA1 (patch-third__party_blink_common_renderer__preferences_renderer__preferences__mojom__traits.cc) = b59418ca8c1eef5c92cbe0aa44df5eca181f6d0f
+SHA1 (patch-third__party_blink_public_common_renderer__preferences_renderer__preferences.h) = 9c1b4611500cbdc4d74141cf4853cc3c3f630842
+SHA1 (patch-third__party_blink_public_common_renderer__preferences_renderer__preferences__mojom__traits.h) = 955800cdc149e8174846169550b690ebdafc0da7
+SHA1 (patch-third__party_blink_public_platform_platform.h) = 0324623c5695d3ac80cf24f337b4f4738cae711c
+SHA1 (patch-third__party_blink_public_platform_web__vector.h) = a79e3b3497680347fa7e0d25678dd9e51e0aa616
+SHA1 (patch-third__party_blink_renderer_bindings_scripts_bind__gen_style__format.py) = 1fcbb6b72128fcc980a2343062076f90add70155
+SHA1 (patch-third__party_blink_renderer_build_scripts_run__with__pythonpath.py) = 868634e3abb9da527568242e922a1ebe79c50f47
+SHA1 (patch-third__party_blink_renderer_controller_blink__initializer.cc) = 56e70cd490178412289205ef40308a83973f2179
+SHA1 (patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.cc) = 4597675b5d9e91f1507e17ed4927f6025f70d33a
+SHA1 (patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.h) = a30fc0427778dfa0fa4b01b0eb94831458d2fa1b
+SHA1 (patch-third__party_blink_renderer_core_editing_editing__behavior.cc) = 0a8008a06b861a880defefa91c142f42d6419a6e
+SHA1 (patch-third__party_blink_renderer_core_execution__context_navigator__base.cc) = e92845d5608c0378d03b53328856a846f48c3b1c
+SHA1 (patch-third__party_blink_renderer_core_exported_web__view__impl.cc) = 38f4c63839cf525e4358ea877e56e3ea1bba9399
+SHA1 (patch-third__party_blink_renderer_core_frame_web__frame__test.cc) = 07427bc6b4e33d883342eb003ee4c4c4026121b7
+SHA1 (patch-third__party_blink_renderer_core_html_canvas_canvas__async__blob__creator.cc) = d540829b92339d50f8cefae3b50a092f9a743c22
+SHA1 (patch-third__party_blink_renderer_core_inspector_inspector__memory__agent.cc) = d52eeff180e7a78fe2656a534ceeb678b4b258c5
+SHA1 (patch-third__party_blink_renderer_core_layout_layout__view.cc) = f9533849fca2299fb0a957db21ef3dcff0da41b3
+SHA1 (patch-third__party_blink_renderer_core_paint_paint__layer.cc) = 8eaf340f128897e859344732aba96609af759730
+SHA1 (patch-third__party_blink_renderer_core_scroll_scrollbar__theme__aura.cc) = 3ff813a43f42479bf4cf48551ea5610157983f11
+SHA1 (patch-third__party_blink_renderer_core_xml_xslt__processor.h) = 124b96896c09ab2a4cb4c2f5ad08765277717a3b
+SHA1 (patch-third__party_blink_renderer_core_xml_xslt__processor__libxslt.cc) = c2b026f888d6a7691bb5c0dc45c4ff182c2ad672
+SHA1 (patch-third__party_blink_renderer_modules_media_audio_audio__device__factory.cc) = c89ceacb5a8854c5b174114c14ce6e372feb8830
+SHA1 (patch-third__party_blink_renderer_modules_media_audio_audio__renderer__mixer__manager__test.cc) = 1a325e40a779526b730f6701d999b8a036cab75f
+SHA1 (patch-third__party_blink_renderer_modules_peerconnection_webrtc__audio__renderer__test.cc) = 5cb662e9e02ffb6b0b0df76f6eba9bdabc50792a
+SHA1 (patch-third__party_blink_renderer_modules_webaudio_audio__worklet__thread__test.cc) = b438b0580d196e469ccda6d39ce592d3721a7968
+SHA1 (patch-third__party_blink_renderer_modules_webgl_webgl__rendering__context__base.cc) = 1f8229202de2064861ed7ad4c0ee52da7b4e837e
+SHA1 (patch-third__party_blink_renderer_modules_webgpu_gpu__queue.cc) = 6ff7aaa8098bcb1d5b67b73047ee3182788dd663
+SHA1 (patch-third__party_blink_renderer_platform_BUILD.gn) = 5d2520f1e5ca498725a28bc399c8c496423638c2
+SHA1 (patch-third__party_blink_renderer_platform_fonts_font__cache.cc) = e6cad577f9d8a58638a83d608247128023c58796
+SHA1 (patch-third__party_blink_renderer_platform_fonts_font__cache.h) = 2900fbdbd23b3589d88cd83ea0ad5dbd0a5343c4
+SHA1 (patch-third__party_blink_renderer_platform_fonts_font__description.cc) = ccbc1e67816e76162e7a67b2cb5710e312d1e777
+SHA1 (patch-third__party_blink_renderer_platform_fonts_font__metrics.cc) = fb2d94f7fbf1b00f5823170f21ffc703b67bbe08
+SHA1 (patch-third__party_blink_renderer_platform_fonts_font__platform__data.cc) = e2b1a462be4f5c756af32fa07172627bfa79877f
+SHA1 (patch-third__party_blink_renderer_platform_fonts_font__unique__name__lookup.cc) = 065f14a23eeabb0beaf2fb26690d3c207bc4c302
+SHA1 (patch-third__party_blink_renderer_platform_fonts_skia_font__cache__skia.cc) = ac5806b191106daa3d95396c77f13f2ded4128c8
+SHA1 (patch-third__party_blink_renderer_platform_graphics_begin__frame__provider.cc) = f266dd4bf849bd864b3ad827138a1c2422eab3b1
+SHA1 (patch-third__party_blink_renderer_platform_graphics_video__frame__submitter.cc) = 9f93b56c73acc5604641c03c877f6566e5f57103
+SHA1 (patch-third__party_blink_renderer_platform_instrumentation_partition__alloc__memory__dump__provider.cc) = 099463cde8bc0ea430c6b71a0fdd2196eeac075d
+SHA1 (patch-third__party_blink_renderer_platform_peerconnection_rtc__video__encoder__factory.cc) = 0970480410d91fd99770e58212ef91455e05d7ee
+SHA1 (patch-third__party_blink_renderer_platform_runtime__enabled__features.json5) = 14be9beae629e67e388c5a951b264b2935ea310c
+SHA1 (patch-third__party_blink_renderer_platform_scheduler_common_thread.cc) = 5707266c439333afd589a4a140f0e63eb8e24589
+SHA1 (patch-third__party_blink_renderer_platform_video__capture_video__capture__impl.cc) = 24b9943f6c3592317a097a7ad0fb283a6fd0c827
+SHA1 (patch-third__party_blink_renderer_platform_widget_compositing_blink__categorized__worker__pool__delegate.cc) = 159ec43d3b75c299dea44275379a2f1cb2af4295
+SHA1 (patch-third__party_blink_renderer_platform_wtf_container__annotations.h) = c4b90edaed7c0ac1940dc4436d94b378c058f727
+SHA1 (patch-third__party_blink_renderer_platform_wtf_math__extras.h) = 0fc4afe6e3f91c4fc39959061c0946fdec8d3c7d
+SHA1 (patch-third__party_blink_renderer_platform_wtf_stack__util.cc) = 42d9fd56274484aadb508aa5ae7dcdd42de26c60
+SHA1 (patch-third__party_blink_renderer_platform_wtf_text_text__codec__icu.cc) = 9942f9b991c13957ef285d9913f82062a42db5cb
+SHA1 (patch-third__party_blink_renderer_platform_wtf_thread__specific.h) = 1704bd23b28697fe06144a306c5111b8d977bdc5
+SHA1 (patch-third__party_brotli_common_platform.h) = 4cee367f4b0347592f1d732bd389da979a30db03
+SHA1 (patch-third__party_cpuinfo_cpuinfo.gni) = cbe1810c4efbe6091bb7c6f1b1426ea62255752e
+SHA1 (patch-third__party_crashpad_crashpad_build_crashpad__buildconfig.gni) = cdb2f134fe26a720784d41d6141828f01f47788c
+SHA1 (patch-third__party_crashpad_crashpad_client_BUILD.gn) = 5718315251c922c458d6e24bd1ca76541191e28d
+SHA1 (patch-third__party_crashpad_crashpad_client_crashpad__client__posix.cc) = 5c80103eb816b82bfcd5b229ab912b550a108d7b
+SHA1 (patch-third__party_crashpad_crashpad_minidump_minidump__misc__info__writer.cc) = 52760752b17373b8565dac622e8e7a3af1e0d932
+SHA1 (patch-third__party_crashpad_crashpad_util_misc_address__types.h) = 8a4517bec75a08d77a375f74246514d18b7bbbd5
+SHA1 (patch-third__party_crashpad_crashpad_util_misc_capture__context.h) = 8624bae18cb484a9d5f263e9a9b5effbf38dbd1b
+SHA1 (patch-third__party_crashpad_crashpad_util_misc_metrics.cc) = d174596b0569687a070c5ac6c3983e4a9c60c899
+SHA1 (patch-third__party_crashpad_crashpad_util_misc_uuid.cc) = 97a901e233412604c6e97322b23882db44938053
+SHA1 (patch-third__party_crashpad_crashpad_util_posix_close__multiple.cc) = d4f6b9992a482c6fa51d70a405e1861aa2a75cca
+SHA1 (patch-third__party_crashpad_crashpad_util_posix_drop__privileges.cc) = f1798977e8e9eac1b3f165e9697fe28af284c1e4
+SHA1 (patch-third__party_crashpad_crashpad_util_posix_signals.cc) = 457ad62769c7bf198d3724854ba1179783c44aff
+SHA1 (patch-third__party_crashpad_crashpad_util_posix_symbolic__constants__posix.cc) = 530188bec85dfb8c9b4efaa41c6524e9bce148fe
+SHA1 (patch-third__party_crc32c_BUILD.gn) = ed96b29bfac3dd25a97e70ce92fcd026a5f497eb
+SHA1 (patch-third__party_dawn_include_dawn_native_VulkanBackend.h) = 5ac5575d20a3eb61ea0db59538944484d6ccf110
+SHA1 (patch-third__party_dawn_src_dawn_common_Platform.h) = c0c6f545e302d87c14e06d34f731f370ef8f60c4
+SHA1 (patch-third__party_dawn_src_dawn_native_vulkan_BackendVk.cpp) = eab7c6232b287aa2a3326299971c41bf33138424
+SHA1 (patch-third__party_ffmpeg_BUILD.gn) = 174ba8e63ac1c675abc720cd121c4b1cc6057d4d
+SHA1 (patch-third__party_ffmpeg_libavcodec_x86_cabac.h) = 38e7c296c5e79b42e597ce01a65272617d7f63bb
+SHA1 (patch-third__party_ffmpeg_libavutil_cpu.c) = ae723fadc2be25e51e73f968f87a9e8689a82076
+SHA1 (patch-third__party_ffmpeg_libavutil_mem.c) = d9873d3b3716a32d3ac394d4e23c0fd46b423229
+SHA1 (patch-third__party_ffmpeg_libavutil_random__seed.c) = 5b971fb2800664b292b253f890910437f3950935
+SHA1 (patch-third__party_ffmpeg_libavutil_x86_x86inc.asm) = c0e71758240a516125cc64d8d2a613a3ff693eb6
+SHA1 (patch-third__party_fontconfig_include_config.h) = 8a8d309d2ee036fa04c326d815eec59638f3b9c6
+SHA1 (patch-third__party_fontconfig_src_src_fccompat.c) = 1ecdbab1802302361e4e39b827a648d9f2a22f68
+SHA1 (patch-third__party_ipcz_src_reference__drivers_random.cc) = 508bbcab4216dd665e6f813a888acfc2a97f5582
+SHA1 (patch-third__party_ipcz_src_standalone_base_logging.cc) = f35b36338ab7021a7424ab14a07baf43877d03d3
+SHA1 (patch-third__party_leveldatabase_env__chromium.cc) = 42d6d93f8842f210db35838b97fb009cd98eb393
+SHA1 (patch-third__party_libaom_source_libaom_aom__ports_aarch64__cpudetect.c) = eba1f346415acdf4787f33d07027b693d414feb5
+SHA1 (patch-third__party_libc++_src_src_chrono.cpp) = 20342e2149ff73e0fbc1606c26a7d19080773650
+SHA1 (patch-third__party_libc++_src_src_filesystem_filesystem__clock.cpp) = dd43f82a392a04e3f6ed1f32e4ea36829499acc8
+SHA1 (patch-third__party_libc++abi_src_src_cxa__guard__impl.h) = 3af1fcf14d7608555eabdf8a539d2753da5c5346
+SHA1 (patch-third__party_libdrm_src_xf86drmMode.c) = 975311cccad22d9fb80fc9936b9c017cf504abc3
+SHA1 (patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_memory_singleton.h) = ef86939f0295ea156e6356afe28d5f9298fafa4e
+SHA1 (patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_synchronization_lock.h) = eb7d3489d5eaa7a55c066e19da9ce409f2dd541a
+SHA1 (patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_thread__checker.h) = 453d91f772272d5f43ed8461617d5cc5d0053545
+SHA1 (patch-third__party_libsync_src_include_sync_sync.h) = 9b86b1daa8c481a83dc4208be927639c5547278f
+SHA1 (patch-third__party_libsync_src_sync.c) = 6682955e8d4a417bf81380cac8775e063e9c53ad
+SHA1 (patch-third__party_libusb_BUILD.gn) = 6eb2e47fe4cafe21bf68510302777e5544d174a3
+SHA1 (patch-third__party_libusb_src_libusb_core.c) = 1af1bb78d9a6415ffe1d5fe974a8f49e56b4aa18
+SHA1 (patch-third__party_libusb_src_libusb_os_threads__posix.c) = ff86fb88002ac143fe3e19a094918cecd5520e18
+SHA1 (patch-third__party_libvpx_source_libvpx_vpx__ports_aarch64__cpudetect.c) = 44026c832d58f64ff63050d53c7c3bc243ea4a7b
+SHA1 (patch-third__party_lzma__sdk_C_CpuArch.c) = 5278e69f3a7e1f50c127a58eed7a47c6fc614d45
+SHA1 (patch-third__party_material__color__utilities_src_cpp_palettes_tones.cc) = ba3f7d559a960f64d46707a62a304ce516ebff86
+SHA1 (patch-third__party_nasm_BUILD.gn) = d334f4c2ae6edc76687b604a1a88071ca0a95092
+SHA1 (patch-third__party_nasm_config_config-linux.h) = d6049cd711eac33ca5cd91ea4fe564298e6defef
+SHA1 (patch-third__party_node_node.gni) = b69df7445327914abf938ca2c51c0a060b110249
+SHA1 (patch-third__party_node_node.py) = 6750259149c2ac1e8715b951d1a87944d64cf7f2
+SHA1 (patch-third__party_pdfium_core_fxge_cfx__fontmapper.cpp) = 09d3c5a163d6395a4bd358438aa7cfbc6afeb63e
+SHA1 (patch-third__party_pdfium_core_fxge_linux_fx__linux__impl.cpp) = 7647a118f27e9fe36780ec9fc63f336d8094f7bb
+SHA1 (patch-third__party_pdfium_fxjs_fx__date__helpers.cpp) = cf940cd254ff5a15a35ef0993cad7b96abe82da0
+SHA1 (patch-third__party_pdfium_pdfium.gni) = 83cf063067819ddba63a08128f39990e5803641b
+SHA1 (patch-third__party_pdfium_xfa_fxfa_parser_cxfa__timezoneprovider.cpp) = 30baaa5292e2dc4122b86ecb2149284b094bcc75
+SHA1 (patch-third__party_perfetto_include_perfetto_base_build__config.h) = 24d0e00e72f4909166977c21dceb19c13a7d9022
+SHA1 (patch-third__party_perfetto_include_perfetto_base_thread__utils.h) = d6f3f1a1223ec105f8ebceeece1481cc995ee4ba
+SHA1 (patch-third__party_perfetto_include_perfetto_base_time.h) = 19b09b59fe04f93b34d96059bc0a4decd27ba8a9
+SHA1 (patch-third__party_perfetto_include_perfetto_ext_base_event__fd.h) = 12cd6c103bc34fb118c8749b7c84ad1f2486a41f
+SHA1 (patch-third__party_perfetto_include_perfetto_ext_base_thread__utils.h) = 917a161bfa5a5062a7cbde52e7842c8d2968c5ba
+SHA1 (patch-third__party_perfetto_include_perfetto_tracing_internal_track__event__legacy.h) = 633eca69834c3021e0a9dc08e6ddcbb47e5a016e
+SHA1 (patch-third__party_perfetto_protos_perfetto_trace_ftrace_v4l2.proto) = b625fa70af3e3bf4abf59b5e2ec08d0fb0beac61
+SHA1 (patch-third__party_perfetto_src_base_event__fd.cc) = 173025506e90d9df6080f6fe84640a1c46b10d75
+SHA1 (patch-third__party_perfetto_src_base_periodic__task.cc) = f1ddf79ebc25d13271b872533a65eef4fe16c4c9
+SHA1 (patch-third__party_perfetto_src_base_string__utils.cc) = abbdca365559a15e2cf5e96d52422a0d23c00199
+SHA1 (patch-third__party_perfetto_src_base_subprocess__posix.cc) = 2b496a99e75d6c6e578f884a443c99ccc323cb32
+SHA1 (patch-third__party_perfetto_src_base_test_vm__test__utils.cc) = 641f5288060e6e5ffb88e66c86d3051aaf4ebdaf
+SHA1 (patch-third__party_perfetto_src_base_thread__task__runner.cc) = ed60228b6dab1ffe613fa77149b7b6ac3ba93a62
+SHA1 (patch-third__party_perfetto_src_base_unix__socket.cc) = f6eabfcfe95a56d0c54d6908f80651244e10718f
+SHA1 (patch-third__party_perfetto_src_trace__processor_importers_ftrace_v4l2__tracker.cc) = 0511b8aca008a887b64e5928b2b4322f91ae463e
+SHA1 (patch-third__party_perfetto_src_tracing_core_clock__snapshots.cc) = c82c5f6ac1a3f0e5dbe7f14e8ddfa75ed57eca84
+SHA1 (patch-third__party_perfetto_src_tracing_ipc_memfd.cc) = cb2755f039b7c77ae296c3c9ab6e9e7530ace366
+SHA1 (patch-third__party_perfetto_src_tracing_track.cc) = 635e61ff9c0b95a237fa3f6ccb271a986e7aedb3
+SHA1 (patch-third__party_protobuf_src_google_protobuf_stubs_platform__macros.h) = a1ece732abeb8143a7b8aca8760f56a795c72e22
+SHA1 (patch-third__party_skia_src_gpu_ganesh_GrAutoLocaleSetter.h) = 48e76ea31e51a09116da01954fcc0f88c60abe2f
+SHA1 (patch-third__party_skia_src_ports_SkMemory__malloc.cpp) = 74432c5d092f4585071549bce7a84c94aaf080dd
+SHA1 (patch-third__party_skia_src_ports_SkOSFile__posix.cpp) = e8ca035070ed07ffd18ee86f9ac38e12845bed76
+SHA1 (patch-third__party_speech-dispatcher_libspeechd__version.h) = ee09d836833997bf400d32bb4ec210f8cc6a6d58
+SHA1 (patch-third__party_speech-dispatcher_speechd__types.h) = 7d0c4a96ec1f15431e84a46462dfc3e9d0cd2873
+SHA1 (patch-third__party_sqlite_BUILD.gn) = e55762ea2842c2ca86344b8c0ddf570d9ac1c8ff
+SHA1 (patch-third__party_sqlite_src_amalgamation__dev_sqlite3.c) = 5447039bcf58e4bfdff3f029bf247cf9adbf6b77
+SHA1 (patch-third__party_sqlite_src_amalgamation_sqlite3.c) = 35141bd8d7cdbbb0415128779e91e38415ec1c4d
+SHA1 (patch-third__party_swiftshader_src_Reactor_Debug.cpp) = a188fe4e7e39e5fb76be49c6ffb5e0fd0e16081b
+SHA1 (patch-third__party_swiftshader_src_System_Configurator.cpp) = a056112a44a7c7b6c99894e5f5d091e6a6b20ffb
+SHA1 (patch-third__party_swiftshader_src_System_Linux_MemFd.cpp) = 979a08f504e0e9674760a7b50ab484a6444f52ce
+SHA1 (patch-third__party_swiftshader_src_Vulkan_VkSemaphoreExternalLinux.hpp) = 2931a7340aba056066dbdc15415646ccc674f9a7
+SHA1 (patch-third__party_swiftshader_src_WSI_libXCB.cpp) = 9511bd876132f23539ed613497b7ee45bd11cd2a
+SHA1 (patch-third__party_swiftshader_third__party_llvm-10.0_configs_linux_include_llvm_Config_config.h) = b10fa0bcf9359ec2c876fcb56270e2ba6a5fc2be
+SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_Linux_include_llvm_Config_config.h) = 835ac62f500f38615a9d7cecbfa286db79c54e28
+SHA1 (patch-third__party_swiftshader_third__party_marl_src_memory.cpp) = 687b4a8d4cbb2f58174980cb2b95bb77b0cefbd2
+SHA1 (patch-third__party_swiftshader_third__party_marl_src_thread.cpp) = 41b3a7b3c74aa4f0bf407162fdeeb3f09836c138
+SHA1 (patch-third__party_test__fonts_fontconfig_BUILD.gn) = ed3b691fa72694eae34dda4a873ee8f9fc7b91e1
+SHA1 (patch-third__party_test__fonts_fontconfig_fontconfig__util__linux.cc) = 29946cb8e1a5b43f90719abaab91f0e7d1c42617
+SHA1 (patch-third__party_test__fonts_fontconfig_generate__fontconfig__caches.cc) = 2c4f4fc91b055efae041d7f115f849b5699c73a5
+SHA1 (patch-third__party_tflite_features.gni) = 339e9248f514e13a8749d880d977b3bb156cdd63
+SHA1 (patch-third__party_unrar_src_crypt.cpp) = fa73660ccd95383bd9be8ed40009c39ff1ba97f1
+SHA1 (patch-third__party_vulkan-validation-layers_src_layers_external_vma_vk__mem__alloc.h) = 589ad774b688c8373f39a9d9b36367d4456de404
+SHA1 (patch-third__party_vulkan-validation-layers_src_layers_vulkan_generated_vk__function__pointers.cpp) = 14eefea26b79425129136647257f03d009536a7a
+SHA1 (patch-third__party_vulkan__memory__allocator_include_vk__mem__alloc.h) = 2fdf5f27f71d469a7837b05fbf4ae6f2ccf5ccad
+SHA1 (patch-third__party_wayland_BUILD.gn) = 5385bbfde05014495ff9bbbe327e4a7432e88f84
+SHA1 (patch-third__party_wayland_include_config.h) = c0bee2cb87fc1f4a276fc1aff52cc410478a25ff
+SHA1 (patch-third__party_webrtc_BUILD.gn) = bb1e7e1b151354f756e1c86cf94e2ef8c6313c7d
+SHA1 (patch-third__party_webrtc_modules_audio__device_BUILD.gn) = 58605b6570f522f314b5eb48fb86885a057a5ce7
+SHA1 (patch-third__party_webrtc_modules_desktop__capture_linux_wayland_egl__dmabuf.cc) = 5c5bbe7c8566eafaaa0afc461964a504188b33d2
+SHA1 (patch-third__party_webrtc_modules_desktop__capture_linux_x11_x__server__pixel__buffer.cc) = 6a410028d59ab1861bb55e3e343671d7d75eb8e6
+SHA1 (patch-third__party_webrtc_rtc__base_byte__order.h) = 31c5b49d63151234952e13ce051c76864e95e93b
+SHA1 (patch-third__party_webrtc_rtc__base_ip__address.cc) = d2ec504166216c415adb2032bfd13614268add7d
+SHA1 (patch-third__party_webrtc_rtc__base_net__test__helpers.cc) = 6f97f8cf769bbbcd8ed47620615ceb75a649c442
+SHA1 (patch-third__party_webrtc_rtc__base_network.cc) = 42726bc82656c8f4b36e288365b0b6808f99be1e
+SHA1 (patch-third__party_webrtc_rtc__base_physical__socket__server.cc) = 407cc00903bc4cc02c43a6e00757da6302bf544e
+SHA1 (patch-third__party_webrtc_rtc__base_physical__socket__server.h) = dec03f657c00aaebae4fd914f9ee01c0b08f9c12
+SHA1 (patch-third__party_webrtc_rtc__base_platform__thread__types.cc) = 24bc6feaa038aabac2b1dbfa692827453f3892f1
+SHA1 (patch-third__party_webrtc_rtc__base_third__party_sigslot_sigslot.h) = d56735e8b42a5dc2d813da7f68b9cd6fad428dab
+SHA1 (patch-third__party_webrtc_system__wrappers_BUILD.gn) = d95d7d7a4566b9c91c257110fcff775a804e32da
+SHA1 (patch-third__party_widevine_cdm_widevine.gni) = c338e4d302a3dda598489dab857ac77a9c720a7c
+SHA1 (patch-third__party_zlib_BUILD.gn) = c3b124ad1774244cd853335e2e1fc553b33d1532
+SHA1 (patch-third__party_zlib_cpu__features.c) = c1ff8cdcfaeceb52237ec3bb775fccb9a089be17
+SHA1 (patch-tools_generate__shim__headers_generate__shim__headers.py) = dd136f7db9a29fcf0bff25d4e9f87befcb292d05
+SHA1 (patch-tools_generate__stubs_rules.gni) = a88abc69b40fd2949a063c66bd797824eea6b3b3
+SHA1 (patch-tools_gn_build_build__linux.ninja.template) = f24ce5818e28981cfbcacbda1a3a043c546fa7ec
+SHA1 (patch-tools_gn_build_gen.py) = 021aef7b8062138ddb8e41b6d2097c4a4db13c71
+SHA1 (patch-tools_gn_src_base_files_file__posix.cc) = 08135c774b73d65fd7ad6e8ed824906e0c0eedfd
+SHA1 (patch-tools_gn_src_gn_version.h) = 386ca320bdc723c6291593febee89fc8d286b620
+SHA1 (patch-tools_gn_src_util_exe__path.cc) = ee2371cdf2e7e2ad7bb141a2855184d17b06a50e
+SHA1 (patch-tools_grit_grit_node_base.py) = 5dc6dc29e948bfbc248cf7c758b261d5c8b95bc2
+SHA1 (patch-tools_json__schema__compiler_cpp__bundle__generator.py) = 6889ef43e2428401b805b1639af227edce9a04da
+SHA1 (patch-tools_json__schema__compiler_feature__compiler.py) = 1f8e4286b35cbccdfef6b8d6b72871a54a6aac82
+SHA1 (patch-tools_memory_partition__allocator_inspect__utils.h) = 45653a68ac69dede95ba56ec9142fd4650464126
+SHA1 (patch-tools_perf_chrome__telemetry__build_BUILD.gn) = 2c7a136c8b7fd18622e7d764507f20bbee616ca8
+SHA1 (patch-tools_protoc__wrapper_protoc__wrapper.py) = 6da45d2c8b85e362db64dfe440fe2f6da8a53673
+SHA1 (patch-tools_v8__context__snapshot_BUILD.gn) = 5ad173e655bdd900ad050f5120604cf5701c8a12
+SHA1 (patch-tools_variations_fieldtrial__to__struct.py) = b512a1b1907e2a3f1bcaecdc5765df9fb4c8ed1e
+SHA1 (patch-ui_aura_client_drag__drop__client.h) = 206e60f3464a415c047b0ed5b567194785566370
+SHA1 (patch-ui_aura_screen__ozone.cc) = e01dd6cc3e67b6cea638a4e63cfe2b9d9d4126ce
+SHA1 (patch-ui_aura_screen__ozone.h) = 5985f9e73cd81f39691cc715e1dc85a20c00c4dc
+SHA1 (patch-ui_base_clipboard_clipboard__constants.cc) = 1584c24b5e6e658827aa16e1b95349ab1e0b3ba3
+SHA1 (patch-ui_base_clipboard_clipboard__constants.h) = 664553ca419ef16b797fd124300b1e7fd12922ed
+SHA1 (patch-ui_base_clipboard_clipboard__non__backed.cc) = 8a862049d63202fc558915ed5d8a0419b560b3ca
+SHA1 (patch-ui_base_cursor_cursor__factory.cc) = 3954209d7b2a3990fa57c840b921abd59fae7ecf
+SHA1 (patch-ui_base_cursor_cursor__factory.h) = 825f4a44ede30f2bf87a1f05f17d6aab8541dba1
+SHA1 (patch-ui_base_dragdrop_os__exchange__data__provider__factory.cc) = 8fa12cb0c9ee2eb55f732e33cb05e26ea040ba9c
+SHA1 (patch-ui_base_dragdrop_os__exchange__data__provider__non__backed.cc) = 6e02043a414f7f738e0756bc3372c3c8d847e6be
+SHA1 (patch-ui_base_ime_dummy__text__input__client.cc) = d9e42619fe3ad4de52f5dea55b87bbf4aaecd228
+SHA1 (patch-ui_base_ime_dummy__text__input__client.h) = f5f949abd6e18d880dd57c2b34e63edbe91f787d
+SHA1 (patch-ui_base_ime_fake__text__input__client.cc) = efecc9df4942c3a3ea7638a39a1237894e6540cd
+SHA1 (patch-ui_base_ime_fake__text__input__client.h) = c416fcca659f98d7451612ec6b18e13882618426
+SHA1 (patch-ui_base_ime_init_input__method__initializer.cc) = 4bd5fd419d634428cfa4421c3efc1daaeefc04eb
+SHA1 (patch-ui_base_ime_linux_linux__input__method__context__factory.cc) = 97ce2e918a2b61c40cf895a9c1d865c596b7f146
+SHA1 (patch-ui_base_ime_text__input__client.h) = c1dce032c67622023d64861aea8074b7134c2603
+SHA1 (patch-ui_base_resource_resource__bundle.cc) = 7d5012121ddb30e0387e1554b77824e39cbceac7
+SHA1 (patch-ui_base_test_skia__gold__pixel__diff.cc) = b07c63e2f71f435541cf0a2b2de8d6abeb6de00b
+SHA1 (patch-ui_base_test_ui__controls.h) = 63468a33b50e71af533bbd5f2f2ebd877e9be830
+SHA1 (patch-ui_base_ui__base__features.cc) = c1a91c3d96b5a096c7958e19fd796c16c8a67dbc
+SHA1 (patch-ui_base_ui__base__switches.cc) = 1bb7c7ca1c11cf30cb56b8f9e48646592a3066e4
+SHA1 (patch-ui_base_ui__base__switches.h) = ad53dcac171cbe0d4637bbd7799065c42db1444e
+SHA1 (patch-ui_base_webui_web__ui__util.cc) = 45c57a4fdd2762558aa637e54ed650fad7b8e638
+SHA1 (patch-ui_base_x_x11__cursor__factory.cc) = 136a2fd8274be38318ca4d542b91cf68c80878a7
+SHA1 (patch-ui_base_x_x11__cursor__factory.h) = d0e2ad7a584c4b04ee10f9191dc89614e26ff3b2
+SHA1 (patch-ui_base_x_x11__cursor__loader.cc) = beefb5921f9c28b3c5d7e69586fe6c6a26db27e2
+SHA1 (patch-ui_base_x_x11__display__manager.cc) = 86488ccab2b237b90f7685f5d31143ea6cde3c72
+SHA1 (patch-ui_base_x_x11__display__util.cc) = 52e0d1075b74010b74bc620c0794d432d66ce3af
+SHA1 (patch-ui_base_x_x11__shm__image__pool.cc) = c3a6d557a7f35c4798b79ef58ef577a26baec50e
+SHA1 (patch-ui_base_x_x11__util.cc) = 53f7cc6e862a6fa25d414be933620e8aff1ec7e7
+SHA1 (patch-ui_base_x_x11__util.h) = a5f2a4ddd981673d16552bc1e1c36fefb21ff6aa
+SHA1 (patch-ui_color_color__id.h) = 95e9bf9a4ccb0464fe4059c730d50e4e1dbf30b0
+SHA1 (patch-ui_color_color__provider__utils.cc) = 83bf60bc533cf6debe8d067ec44777524198044e
+SHA1 (patch-ui_color_system__theme.h) = 83bf2a99421a2d7f479c50c896511f0b56b32238
+SHA1 (patch-ui_compositor_compositor.cc) = 0022471eb07b087fbdfb282a7d338e26f4894f2b
+SHA1 (patch-ui_compositor_compositor.h) = 199ef20483d0be6aab81e5b282a36d67ffad69bc
+SHA1 (patch-ui_compositor_compositor__observer.h) = 7bc459844677f8e596fe8b61aa95e5b08d696a1a
+SHA1 (patch-ui_display_screen.cc) = b4c0d9a2e1ddffb07bb135e7e583c759f2743eaa
+SHA1 (patch-ui_display_screen.h) = 74fdde92699d08e1b4fb2276266f59d6a4659e18
+SHA1 (patch-ui_events_devices_x11_device__data__manager__x11.cc) = 4f53654b180f255900ed50587103639b89fd2ed0
+SHA1 (patch-ui_events_event.cc) = e11503dd4a1a8b7088bb271b3924e19b94601c6b
+SHA1 (patch-ui_events_event__switches.cc) = 76f6b6398601fd00951c57bda5ad7e7ad809ce24
+SHA1 (patch-ui_events_event__switches.h) = 1c7115a89a2c05757b0f3ba8096116de31f133ec
+SHA1 (patch-ui_events_keycodes_dom_keycode__converter.cc) = d3c45b016d70eb90ad451a15ea4b54297b515129
+SHA1 (patch-ui_events_keycodes_dom_keycode__converter.h) = 8be27f581cfe7cb31022666a0a01f2eb5e18c8a1
+SHA1 (patch-ui_gfx_BUILD.gn) = 57cf59060bc63abd9f9779e4f0607f899f0bc93e
+SHA1 (patch-ui_gfx_canvas__skia.cc) = 291a5216c3b106935229002861d4aa2812e5de88
+SHA1 (patch-ui_gfx_font__fallback__linux.cc) = 7f8c1c200ea112a466e28cc6ab7efcc35623ab50
+SHA1 (patch-ui_gfx_font__render__params.h) = 1d7b51392c0a6c6e3dbcb2ba4e476cd8ee5fb6dd
+SHA1 (patch-ui_gfx_font__render__params__linux.cc) = 16b6a68a18e915c9dbb548e3bed25570b4956bf6
+SHA1 (patch-ui_gfx_font__util.cc) = 84b99cd512c71704cbed2ecea41605c58d981118
+SHA1 (patch-ui_gfx_gpu__memory__buffer.cc) = 364c65ee982a1da21823156224dbbd3e30c4a330
+SHA1 (patch-ui_gfx_gpu__memory__buffer.h) = 3c53e229d2603c34d1ea90c3270d13c9cf38811c
+SHA1 (patch-ui_gfx_linux_dmabuf__uapi.h) = f9f276e9775515eb106f3986bbbee7dea2da4326
+SHA1 (patch-ui_gfx_linux_gbm__wrapper.cc) = cb3a5241bf6fe3a33ad0da099d65129688a249aa
+SHA1 (patch-ui_gfx_mojom_buffer__types__mojom__traits.cc) = 8bd489342b8527f8db2b85605c5274235582953a
+SHA1 (patch-ui_gfx_mojom_native__handle__types__mojom__traits.cc) = c542c293753373fab90684348c7abe0653cbd01a
+SHA1 (patch-ui_gfx_mojom_native__handle__types__mojom__traits.h) = 92910f0c60a52c638eab54e5484aeb0232b96d9a
+SHA1 (patch-ui_gfx_native__pixmap__handle.cc) = a6f092f9493e3969e86f7e5645d7ff35262b6dd5
+SHA1 (patch-ui_gfx_native__pixmap__handle.h) = d70d7afef185cfec0363b2864503e4a2c8dd889a
+SHA1 (patch-ui_gfx_native__widget__types.h) = 2e2558691b2ba834c4a27d240608de7e2bf0c290
+SHA1 (patch-ui_gfx_platform__font__skia.cc) = 66bfd0052358860d8d29b7137ac33d8cdf606897
+SHA1 (patch-ui_gfx_render__text__api__fuzzer.cc) = 780e14d11382e6eb9a27e632bd4603de8344651e
+SHA1 (patch-ui_gfx_render__text__fuzzer.cc) = 4029f87739e868ed20dfe5441b489db399b4c4a7
+SHA1 (patch-ui_gfx_switches.cc) = eed030c24a180fbb70903dcfb7724f11a564f6bb
+SHA1 (patch-ui_gfx_switches.h) = 6d09fe72ab29b2b79df1fd430a0ea10c9a48b0fb
+SHA1 (patch-ui_gfx_x_generated__protos_dri3.cc) = 28b39dc07b7bd15af8aa8783ea513a200d79057d
+SHA1 (patch-ui_gfx_x_generated__protos_shm.cc) = 21636e3c01d06c66c174bfd1abcf2f4cfe33256c
+SHA1 (patch-ui_gfx_x_xlib__support.cc) = 011b302bf9dec64620a5aec783721919a27d7d2d
+SHA1 (patch-ui_gl_BUILD.gn) = e3adb68c38146d2ac3397046a032985d3bda96e6
+SHA1 (patch-ui_gl_gl__bindings.h) = 06ac865e6a2c99754eaa0e101894980b2f674a54
+SHA1 (patch-ui_gl_gl__context.cc) = a2f2000957acfec545e789a456a97794f0af974f
+SHA1 (patch-ui_gl_gl__fence.cc) = 4a95b9a4e873e0afde96c4dc61c73e2f2ed4ae6b
+SHA1 (patch-ui_gl_gl__implementation.cc) = 9fc1968ab472e647b9fe0d46c8471dca4788854a
+SHA1 (patch-ui_gl_gl__switches.cc) = 9254f8ea2282be614c369bd02666810eb250dc75
+SHA1 (patch-ui_gl_sync__control__vsync__provider.cc) = b6489c43f1434199a17a5b8a602ec37a32f60f9f
+SHA1 (patch-ui_gl_sync__control__vsync__provider.h) = c11626cd6cf0a4f3abced08769493f5eab637d45
+SHA1 (patch-ui_gtk_gtk__compat.cc) = ecbfbbafe7816b71ae3d7582084db02920d89dfe
+SHA1 (patch-ui_gtk_printing_print__dialog__gtk.cc) = 546caeb40c26c7945586a87cfb163625b78f227b
+SHA1 (patch-ui_message__center_views_message__popup__view.cc) = 70bf1f01de1defe2b295dbe82d50b0344c4b16a1
+SHA1 (patch-ui_native__theme_native__theme.h) = 0d9568851113edf2cc23dd48c04e10587573702a
+SHA1 (patch-ui_native__theme_native__theme__base.cc) = 1b9871b2af15dd436bafbb871fec6fdb8f9b9111
+SHA1 (patch-ui_native__theme_native__theme__features.cc) = cf0a7aaa7ec230710fad73e1635f9cf1784f593d
+SHA1 (patch-ui_ozone_common_egl__util.cc) = 2cd7b7aef5b2fe085adb4c8beeeec80f563e516e
+SHA1 (patch-ui_ozone_common_features.cc) = 8f9e9d8b15371bb1b2524f0f5b20cf8664db17a1
+SHA1 (patch-ui_ozone_platform_headless_headless__surface__factory.cc) = 751e9f8e70661bde59a03a407feae021c17c8365
+SHA1 (patch-ui_ozone_platform_headless_ozone__platform__headless.cc) = 4886821836fccfbb633168e9d514a2e1a1d10c30
+SHA1 (patch-ui_ozone_platform_headless_vulkan__implementation__headless.cc) = 723e42c529c38f069a60ac7df3c15fba7576947d
+SHA1 (patch-ui_ozone_platform_wayland_common_wayland__util.cc) = 2334aa8d6421c598d9c51053af2915010ac0a083
+SHA1 (patch-ui_ozone_platform_wayland_emulate_wayland__input__emulate.cc) = 27282f88d7055dbcaf40a036a9f1646977fa356d
+SHA1 (patch-ui_ozone_platform_wayland_emulate_wayland__input__emulate.h) = 6d88f8a95c06b856475ef68f3e964daaa59eb226
+SHA1 (patch-ui_ozone_platform_wayland_gpu_vulkan__implementation__wayland.cc) = c32b3580671cda6d5693a3f377d3ed5f7bc8fee0
+SHA1 (patch-ui_ozone_platform_wayland_host_wayland__connection.cc) = fd487b19274e5a4658ff574efd601f4318cf4b53
+SHA1 (patch-ui_ozone_platform_wayland_host_wayland__input__method__context.cc) = 118095c8fad6ab3aa491932c657e9bddf13acb51
+SHA1 (patch-ui_ozone_platform_wayland_host_wayland__popup.cc) = bc10dc15938d3a6bbe80a527000baa92ed129030
+SHA1 (patch-ui_ozone_platform_wayland_host_wayland__toplevel__window.cc) = 62b62f15c019dfa5c8ccca9a35fc87e1b5fbd6d2
+SHA1 (patch-ui_ozone_platform_wayland_host_wayland__toplevel__window.h) = 584657c979a4f2126406de32964bc1b9cf0cbeb1
+SHA1 (patch-ui_ozone_platform_wayland_host_wayland__window.cc) = ea5419d0f2cf2c51552d101f5b37253b562f6f8b
+SHA1 (patch-ui_ozone_platform_wayland_host_wayland__window.h) = c0e7bde026f6cd7bb9ee93119326f1bcf05a206b
+SHA1 (patch-ui_ozone_platform_wayland_host_xdg__toplevel__wrapper__impl.cc) = 44a36ea2be98b36065dadf8591c563680282863f
+SHA1 (patch-ui_ozone_platform_wayland_host_zwp__text__input__wrapper__v1.cc) = 0d75339ce25bd9c529262a2104fc6329622ff74b
+SHA1 (patch-ui_ozone_platform_wayland_ozone__platform__wayland.cc) = f850a91b66c2debe5cea6dc06a06e092fb0f33de
+SHA1 (patch-ui_ozone_platform_x11_vulkan__implementation__x11.cc) = ab6fdb2ac8f3cb634866e72ee20c5f49f05589a8
+SHA1 (patch-ui_ozone_platform_x11_x11__screen__ozone.cc) = 9791af0fc85da84bdb2473714acd467e6febbc7c
+SHA1 (patch-ui_ozone_platform_x11_x11__screen__ozone.h) = 62dd5210524f583a4b2473b15e8c5b76960acb2d
+SHA1 (patch-ui_ozone_platform_x11_x11__window.cc) = 945d3597fab065f5fe3180ffdb1e4f3b1cd86c11
+SHA1 (patch-ui_ozone_test_mock__platform__window__delegate.h) = 325ae322e9dc02f2849ec6c7db85b4912339d7ef
+SHA1 (patch-ui_platform__window_platform__window__delegate.cc) = 559c5b3f66efcc2808e1048e87e4f13dd4661606
+SHA1 (patch-ui_platform__window_platform__window__delegate.h) = 6576a626b6b9b7bcd5fa4a9e1d8ddd2abbe78c51
+SHA1 (patch-ui_platform__window_platform__window__init__properties.h) = 6775da66c5e3fc3b29bd3d1c5fc99f6d3adb98ae
+SHA1 (patch-ui_qt_BUILD.gn) = f3df6a279e299aefbc963a141f9fdd3956385c0f
+SHA1 (patch-ui_qt_qt.gni) = b9eed75afd786c157ecb89053ebf533c3711ca04
+SHA1 (patch-ui_strings_translations_app__locale__settings__bn.xtb) = ec411865a2cfbdfdf7a8708852a5407aec1ed25a
+SHA1 (patch-ui_strings_translations_app__locale__settings__ja.xtb) = f5d7bd090dddf0492d480ccf31ef6814284d57e8
+SHA1 (patch-ui_strings_translations_app__locale__settings__ko.xtb) = 4efc2a8e5319d6ddd1183ef5e9706eafb6e9c8c7
+SHA1 (patch-ui_strings_translations_app__locale__settings__ml.xtb) = da03bb12a9b0f3a5cbfc0f25ab198d962f0458b3
+SHA1 (patch-ui_strings_translations_app__locale__settings__th.xtb) = 4eb4f4ef2500b413fa99b75301d35256a9ffb398
+SHA1 (patch-ui_strings_translations_app__locale__settings__zh-CN.xtb) = e72a7e1121683d444c81a3c8c6517171f6bc9755
+SHA1 (patch-ui_strings_translations_app__locale__settings__zh-TW.xtb) = 3569c733e3c239a3f8fbe80d8482974ba78d95bd
+SHA1 (patch-ui_views_controls_prefix__selector.cc) = 965fa79614f4ea127cc302f323b625e8ad789eec
+SHA1 (patch-ui_views_controls_prefix__selector.h) = 28ebd14ae124508c2b0b84d67ef12756c9bfc6ec
+SHA1 (patch-ui_views_controls_textfield_textfield.cc) = 3dba346c64653bb959971823f43d0d2ce486224d
+SHA1 (patch-ui_views_controls_textfield_textfield.h) = a2f52cfb20ab8d699e747f6fdccee12799de100b
+SHA1 (patch-ui_views_corewm_tooltip__aura.cc) = 021b34203c3d307da80eaeaf3e48e139513cb01c
+SHA1 (patch-ui_views_examples_widget__example.cc) = eb162d9b7cacc9556ca31b7ca53441a9456b06c0
+SHA1 (patch-ui_views_focus_focus__manager.cc) = 7585806206ea9327d7b021908568a813f1a3a153
+SHA1 (patch-ui_views_style_platform__style.cc) = 7a675fe4d7c883e6b15a5f8070cca0c3477b8c3b
+SHA1 (patch-ui_views_test_ui__controls__factory__desktop__aura__ozone.cc) = 15586895e1244994cdcfca6d34b3043ba0d267a2
+SHA1 (patch-ui_views_views__delegate.cc) = 2f2b8735dc5bb8d8f36d866f243bdd1cf77bface
+SHA1 (patch-ui_views_views__delegate.h) = 721c528585343937c8b2ac3ea840bb764c1bc571
+SHA1 (patch-ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.cc) = 621ec922d5275a8888920b3cefc7777ab302ebc0
+SHA1 (patch-ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.h) = bf8b303882645be3f52410d376432b435be403b1
+SHA1 (patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform.cc) = bc0846a760495f91f5427be37f6d1e9a54cf6720
+SHA1 (patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform__impl__interactive__uitest.cc) = 8962fbc40ceee98dd085883ef5d7fd3349d01a29
+SHA1 (patch-ui_views_widget_root__view.cc) = 500b707ea5c49ab6677c67a4017fd8a216683861
+SHA1 (patch-ui_views_widget_widget.cc) = ad060a152773666638e084e8c63d26b79e228e08
+SHA1 (patch-ui_views_window_custom__frame__view.cc) = 1946b92371801e975295ce698ab318334ce6e486
+SHA1 (patch-ui_views_window_dialog__delegate.cc) = 9d659bd0a4276806776fce3fc12f74e0b1697184
+SHA1 (patch-ui_views_window_frame__background.cc) = 26cf8373151cec36ec196f189ad68a371429353e
+SHA1 (patch-v8_BUILD.gn) = 690ea348688ff7fbab20c4b3d288f86892f7648d
+SHA1 (patch-v8_include_v8-internal.h) = 362169c6157331938d558fa50d0cdbb85b312883
+SHA1 (patch-v8_include_v8config.h) = 6432cae7e7ed5443009552717723f0362f456dc5
+SHA1 (patch-v8_src_api_api.cc) = 20510676be2a2e350fe746c4c05fe0e73e315719
+SHA1 (patch-v8_src_base_atomicops.h) = a54f729b13190a5b928474159c3d3b589d4ff0fe
+SHA1 (patch-v8_src_base_platform_memory.h) = 44cd1d4e473b130bd6c67f5dd21396364d73b5ca
+SHA1 (patch-v8_src_base_platform_platform-freebsd.cc) = f54a74577746232191625bb8bdf23a21fc8411ec
+SHA1 (patch-v8_src_base_platform_platform-openbsd.cc) = 2a7137af59eacbde822e296977dad3aea1056668
+SHA1 (patch-v8_src_base_platform_platform-posix.cc) = e3e64cb61aaf2359eb7edf8588416ce498f44ec8
+SHA1 (patch-v8_src_base_small-vector.h) = 40d51536f4115114dd981d0c0abeefe5820a111a
+SHA1 (patch-v8_src_base_strings.h) = cc24c3d28504e79f0a74752e3b2cefa292394a26
+SHA1 (patch-v8_src_base_sys-info.cc) = 661acc087d418975f5c3960d94daff925bdb4fac
+SHA1 (patch-v8_src_base_utils_random-number-generator.cc) = f8b86fb8155fc8c4e776e1c3176b150f8b24b41b
+SHA1 (patch-v8_src_diagnostics_perf-jit.cc) = fdf99a6874333050c157ee745477c75d0d9ac17b
+SHA1 (patch-v8_src_diagnostics_perf-jit.h) = 1f999667268ef0651855de3f6f82b6c11ac67233
+SHA1 (patch-v8_src_execution_isolate.cc) = 502ccfab2246b73812af0e5ec5b2e315ba6720a5
+SHA1 (patch-v8_src_flags_flags.cc) = 3028ef3454c4644c10b8da52d888dbf66c8b2d72
+SHA1 (patch-v8_src_sandbox_sandbox.cc) = 32bac12e25e14347d1dd005a5a696c4afd74ce00
+SHA1 (patch-v8_src_snapshot_embedded_platform-embedded-file-writer-base.cc) = b2202625317a9fb9aadf8baa7f906f8b163476cd
+SHA1 (patch-v8_src_snapshot_embedded_platform-embedded-file-writer-base.h) = ffc564e30b5b7e799cf491824e0ac395af8c0ecd
+SHA1 (patch-v8_src_snapshot_embedded_platform-embedded-file-writer-generic.cc) = a96afae8900cf8616d5847519762603f9bbd3b21
+SHA1 (patch-v8_src_trap-handler_handler-inside-posix.cc) = 40618dd70fa33d8feeae47917c6d7f2a6bddae60
+SHA1 (patch-v8_src_trap-handler_handler-inside-posix.h) = a47b05a0fc9fd924973b94332d6b1855178614f4
+SHA1 (patch-v8_src_trap-handler_trap-handler.h) = 5fa5b7de1fc6b581eacbe7ebb2c1081474eb3f4c
+SHA1 (patch-v8_src_wasm_baseline_ia32_liftoff-assembler-ia32-inl.h) = 0278ec8d9c977b7cb83a72879e27828055a58991
+SHA1 (patch-v8_tools_run-paxctl.py) = a2e5166bf43bf1b6f6926d64839738f339e276ae
+SHA1 (patch-v8_tools_run.py) = 079ac985ea00d80fc80b158ff5bb7ef7746e185f
diff --git a/chromium/files/chrome b/chromium/files/chrome
new file mode 100644
index 0000000000..fa3710be95
--- /dev/null
+++ b/chromium/files/chrome
@@ -0,0 +1,72 @@
+#!/bin/sh
+
+DATASIZE="716800"
+OPENFILES="400"
+
+xm_log() {
+ echo -n "$@\nDo you want to run Chromium anyway?\n\
+(If you don't increase these limits, Chromium might fail to work properly.)" | \
+ @X11BASE@/bin/xmessage -file - -center -buttons yes:0,no:1 -default no
+}
+
+if [ $(ulimit -Sd) -lt ${DATASIZE} ]; then
+ ulimit -Sd ${DATASIZE} || \
+ xm_log "Cannot increase datasize-cur to at least ${DATASIZE}"
+ [ $? -eq 0 ] || exit
+fi
+
+if [ $(ulimit -Sn) -lt ${OPENFILES} ]; then
+ ulimit -Sn ${OPENFILES} || \
+ xm_log "Cannot increase openfiles-cur to at least ${OPENFILES}"
+ [ $? -eq 0 ] || exit
+fi
+
+#
+# Temporary workaround for the case when chromium crashes and leaves
+# the SingletonLock, which prevents chromium to start up.
+#
+if [ -h ${HOME}/.config/chromium/SingletonLock ]; then
+ _pid=`readlink ${HOME}/.config/chromium/SingletonLock | cut -d '-' -f 2`
+ kill -0 ${_pid} 2>/dev/null
+ if [ $? -gt 0 ]; then
+ rm ${HOME}/.config/chromium/SingletonLock
+ fi
+fi
+
+#
+# Issue #395446
+# https://code.google.com/p/chromium/issues/detail?id=395446
+#
+[ -z ${LANG} ] && _l=en_US.UTF-8 || _l=${LANG}
+
+#
+# Workaround to dbus
+# https://bugs.chromium.org/p/chromium/issues/detail?id=918234
+#
+[ -z ${DBUS_SESSION_BUS_ADDRESS} ] && export DBUS_SESSION_BUS_ADDRESS="autolaunch:"
+
+#
+# Workaround to pulseaudio
+# Chromium is failing to start a new pulseaudio server,
+# however can use an already started.
+#
+pgrep -x pulseaudio || pulseaudio --start --log-target=syslog --exit-idle-time=-1
+
+# Always use our versions of ffmpeg libs.
+# This also makes RPMs find the compatibly-named library symlinks.
+if [ -n "$LD_LIBRARY_PATH" ]; then
+ LD_LIBRARY_PATH="@PREFIX@/chrome:@PREFIX@/chrome/lib:$LD_LIBRARY_PATH"
+else
+ LD_LIBRARY_PATH="@PREFIX@/chrome:@PREFIX@/chrome/lib"
+fi
+export LD_LIBRARY_PATH
+
+[ -d ~/Downloads ] || mkdir -m 0700 ~/Downloads
+[ -d ~/.config ] || mkdir -m 0700 ~/.config
+[ -f ~/.config/user-dirs.dirs ] || \
+ echo 'XDG_DOWNLOAD_DIR="$HOME/Downloads"' > ~/.config/user-dirs.dirs
+
+#[ -z ${ENABLE_WASM} ] && \
+# _NOWASM="--disable-features=WebAssembly,AsmJsToWebAssembly,WebAssemblyStreaming --js-flags=--noexpose-wasm"
+
+LANG=${_l} exec "@PREFIX@/chrome/chrome" ${_NOWASM} "${@}"
diff --git a/chromium/files/chromium-browser.desktop b/chromium/files/chromium-browser.desktop
new file mode 100644
index 0000000000..ebfb79b573
--- /dev/null
+++ b/chromium/files/chromium-browser.desktop
@@ -0,0 +1,220 @@
+[Desktop Entry]
+Version=1.0
+Name=Chromium Web Browser
+# Only KDE 4 seems to use GenericName, so we reuse the KDE strings.
+# From Ubuntu's language-pack-kde-XX-base packages, version 9.04-20090413.
+GenericName=Web Browser
+GenericName[ar]=متصفح الشبكة
+GenericName[bg]=Уеб браузър
+GenericName[ca]=Navegador web
+GenericName[cs]=WWW prohlížeč
+GenericName[da]=Browser
+GenericName[de]=Web-Browser
+GenericName[el]=Περιηγητής ιστού
+GenericName[en_GB]=Web Browser
+GenericName[es]=Navegador web
+GenericName[et]=Veebibrauser
+GenericName[fi]=WWW-selain
+GenericName[fr]=Navigateur Web
+GenericName[gu]=વેબ બ્રાઉઝર
+GenericName[he]=דפדפן אינטרנט
+GenericName[hi]=वेब ब्राउज़र
+GenericName[hu]=Webböngésző
+GenericName[it]=Browser Web
+GenericName[ja]=ウェブブラウザ
+GenericName[kn]=ಜಾಲ ವೀಕ್ಷಕ
+GenericName[ko]=웹 브라우저
+GenericName[lt]=Žiniatinklio naršyklė
+GenericName[lv]=Tīmekļa pārlūks
+GenericName[ml]=വെബ് ബ്രൌസര്
+GenericName[mr]=वेब ब्राऊजर
+GenericName[nb]=Nettleser
+GenericName[nl]=Webbrowser
+GenericName[pl]=Przeglądarka WWW
+GenericName[pt]=Navegador Web
+GenericName[pt_BR]=Navegador da Internet
+GenericName[ro]=Navigator de Internet
+GenericName[ru]=Веб-браузер
+GenericName[sl]=Spletni brskalnik
+GenericName[sv]=Webbläsare
+GenericName[ta]=இணைய உலாவி
+GenericName[th]=เว็บเบราว์เซอร์
+GenericName[tr]=Web Tarayıcı
+GenericName[uk]=Навігатор Тенет
+GenericName[zh_CN]=网页浏览器
+GenericName[zh_HK]=網頁瀏覽器
+GenericName[zh_TW]=網頁瀏覽器
+# Not translated in KDE, from Epiphany 2.26.1-0ubuntu1.
+GenericName[bn]=ওয়েব ব্রাউজার
+GenericName[fil]=Web Browser
+GenericName[hr]=Web preglednik
+GenericName[id]=Browser Web
+GenericName[or]=ଓ୍ବେବ ବ୍ରାଉଜର
+GenericName[sk]=WWW prehliadač
+GenericName[sr]=Интернет прегледник
+GenericName[te]=మహాతల అన్వేషి
+GenericName[vi]=Bộ duyệt Web
+# Gnome and KDE 3 uses Comment.
+Comment=Access the Internet
+Comment[ar]=الدخول إلى الإنترنت
+Comment[bg]=Достъп до интернет
+Comment[bn]=ইন্টারনেটটি অ্যাক্সেস করুন
+Comment[ca]=Accedeix a Internet
+Comment[cs]=Přístup k internetu
+Comment[da]=Få adgang til internettet
+Comment[de]=Internetzugriff
+Comment[el]=Πρόσβαση στο Διαδίκτυο
+Comment[en_GB]=Access the Internet
+Comment[es]=Accede a Internet.
+Comment[et]=Pääs Internetti
+Comment[fi]=Käytä internetiä
+Comment[fil]=I-access ang Internet
+Comment[fr]=Accéder à Internet
+Comment[gu]=ઇંટરનેટ ઍક્સેસ કરો
+Comment[he]=גישה אל האינטרנט
+Comment[hi]=इंटरनेट तक पहुंच स्थापित करें
+Comment[hr]=Pristup Internetu
+Comment[hu]=Internetelérés
+Comment[id]=Akses Internet
+Comment[it]=Accesso a Internet
+Comment[ja]=インターネットにアクセス
+Comment[kn]=ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ
+Comment[ko]=인터넷 연결
+Comment[lt]=Interneto prieiga
+Comment[lv]=Piekļūt internetam
+Comment[ml]=ഇന്റര്നെറ്റ് ആക്സസ് ചെയ്യുക
+Comment[mr]=इंटरनेटमध्ये प्रवेश करा
+Comment[nb]=Gå til Internett
+Comment[nl]=Verbinding maken met internet
+Comment[or]=ଇଣ୍ଟର୍ନେଟ୍ ପ୍ରବେଶ କରନ୍ତୁ
+Comment[pl]=Skorzystaj z internetu
+Comment[pt]=Aceder à Internet
+Comment[pt_BR]=Acessar a internet
+Comment[ro]=Accesaţi Internetul
+Comment[ru]=Доступ в Интернет
+Comment[sk]=Prístup do siete Internet
+Comment[sl]=Dostop do interneta
+Comment[sr]=Приступите Интернету
+Comment[sv]=Gå ut på Internet
+Comment[ta]=இணையத்தை அணுகுதல்
+Comment[te]=ఇంటర్నెట్ను ఆక్సెస్ చెయ్యండి
+Comment[th]=เข้าถึงอินเทอร์เน็ต
+Comment[tr]=İnternet'e erişin
+Comment[uk]=Доступ до Інтернету
+Comment[vi]=Truy cập Internet
+Comment[zh_CN]=访问互联网
+Comment[zh_HK]=連線到網際網路
+Comment[zh_TW]=連線到網際網路
+Exec=chrome %U
+Terminal=false
+Icon=chrome
+Type=Application
+Categories=Network;WebBrowser;
+MimeType=text/html;text/xml;application/xhtml_xml;image/webp;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;
+Actions=NewWindow;NewPrivateWindow;
+
+[Desktop Action NewWindow]
+Name=New Window
+Name[am]=አዲስ መስኮት
+Name[ar]=نافذة جديدة
+Name[bg]=Нов прозорец
+Name[bn]=নতুন উইন্ডো
+Name[ca]=Finestra nova
+Name[cs]=Nové okno
+Name[da]=Nyt vindue
+Name[de]=Neues Fenster
+Name[el]=Νέο Παράθυρο
+Name[en_GB]=New Window
+Name[es]=Nueva ventana
+Name[et]=Uus aken
+Name[fa]=پنجره جدید
+Name[fi]=Uusi ikkuna
+Name[fil]=New Window
+Name[fr]=Nouvelle fenêtre
+Name[gu]=નવી વિંડો
+Name[hi]=नई विंडो
+Name[hr]=Novi prozor
+Name[hu]=Új ablak
+Name[id]=Jendela Baru
+Name[it]=Nuova finestra
+Name[iw]=חלון חדש
+Name[ja]=新規ウインドウ
+Name[kn]=ಹೊಸ ವಿಂಡೊ
+Name[ko]=새 창
+Name[lt]=Naujas langas
+Name[lv]=Jauns logs
+Name[ml]=പുതിയ വിന്ഡോ
+Name[mr]=नवीन विंडो
+Name[nl]=Nieuw venster
+Name[no]=Nytt vindu
+Name[pl]=Nowe okno
+Name[pt]=Nova janela
+Name[pt_BR]=Nova janela
+Name[ro]=Fereastră nouă
+Name[ru]=Новое окно
+Name[sk]=Nové okno
+Name[sl]=Novo okno
+Name[sr]=Нови прозор
+Name[sv]=Nytt fönster
+Name[sw]=Dirisha Jipya
+Name[ta]=புதிய சாளரம்
+Name[te]=క్రొత్త విండో
+Name[th]=หน้าต่างใหม่
+Name[tr]=Yeni Pencere
+Name[uk]=Нове вікно
+Name[vi]=Cửa sổ Mới
+Name[zh_CN]=新建窗口
+Name[zh_TW]=開新視窗
+Exec=chrome
+
+[Desktop Action NewPrivateWindow]
+Name=New Incognito Window
+Name[ar]=نافذة جديدة للتصفح المتخفي
+Name[bg]=Нов прозорец „инкогнито“
+Name[bn]=নতুন ছদ্মবেশী উইন্ডো
+Name[ca]=Finestra d'incògnit nova
+Name[cs]=Nové anonymní okno
+Name[da]=Nyt inkognitovindue
+Name[de]=Neues Inkognito-Fenster
+Name[el]=Νέο παράθυρο για ανώνυμη περιήγηση
+Name[en_GB]=New Incognito window
+Name[es]=Nueva ventana de incógnito
+Name[et]=Uus inkognito aken
+Name[fa]=پنجره جدید حالت ناشناس
+Name[fi]=Uusi incognito-ikkuna
+Name[fil]=Bagong Incognito window
+Name[fr]=Nouvelle fenêtre de navigation privée
+Name[gu]=નવી છુપી વિંડો
+Name[hi]=नई गुप्त विंडो
+Name[hr]=Novi anoniman prozor
+Name[hu]=Új Inkognitóablak
+Name[id]=Jendela Penyamaran baru
+Name[it]=Nuova finestra di navigazione in incognito
+Name[iw]=חלון חדש לגלישה בסתר
+Name[ja]=新しいシークレット ウィンドウ
+Name[kn]=ಹೊಸ ಅಜ್ಞಾತ ವಿಂಡೋ
+Name[ko]=새 시크릿 창
+Name[lt]=Naujas inkognito langas
+Name[lv]=Jauns inkognito režīma logs
+Name[ml]=പുതിയ വേഷ പ്രച്ഛന്ന വിന്ഡോ
+Name[mr]=नवीन गुप्त विंडो
+Name[nl]=Nieuw incognitovenster
+Name[no]=Nytt inkognitovindu
+Name[pl]=Nowe okno incognito
+Name[pt]=Nova janela de navegação anónima
+Name[pt_BR]=Nova janela anônima
+Name[ro]=Fereastră nouă incognito
+Name[ru]=Новое окно в режиме инкогнито
+Name[sk]=Nové okno inkognito
+Name[sl]=Novo okno brez beleženja zgodovine
+Name[sr]=Нови прозор за прегледање без архивирања
+Name[sv]=Nytt inkognitofönster
+Name[ta]=புதிய மறைநிலைச் சாளரம்
+Name[te]=క్రొత్త అజ్ఞాత విండో
+Name[th]=หน้าต่างใหม่ที่ไม่ระบุตัวตน
+Name[tr]=Yeni Gizli pencere
+Name[uk]=Нове вікно в режимі анонімного перегляду
+Name[vi]=Cửa sổ ẩn danh mới
+Name[zh_CN]=新建隐身窗口
+Name[zh_TW]=新增無痕式視窗
+Exec=chrome --incognito
diff --git a/chromium/files/nb-delta.patch b/chromium/files/nb-delta.patch
new file mode 100644
index 0000000000..115352d5d5
--- /dev/null
+++ b/chromium/files/nb-delta.patch
@@ -0,0 +1,4858 @@
+diff --git a/base/BUILD.gn b/base/BUILD.gn
+index 8d46278999..0d494bcbac 100644
+--- a/base/BUILD.gn
++++ b/base/BUILD.gn
+@@ -966,7 +966,7 @@ component("base") {
+ #"system/sys_info_openbsd.cc",
+ ]
+
+- if (is_apple || current_os == "freebsd" || current_os == "openbsd") {
++ if (is_apple || current_os == "freebsd" || current_os == "openbsd" || current_os == "netbsd") {
+ sources += [
+ "posix/sysctl.cc",
+ "posix/sysctl.h",
+@@ -2136,6 +2136,13 @@ component("base") {
+ "process/process_metrics_freebsd.cc",
+ "system/sys_info_freebsd.cc",
+ ]
++ } else if (is_netbsd) {
++ sources += [
++ "process/process_handle_netbsd.cc",
++ "process/process_iterator_netbsd.cc",
++ "process/process_metrics_netbsd.cc",
++ "system/sys_info_netbsd.cc",
++ ]
+ }
+
+ # iOS
+diff --git a/base/allocator/partition_allocator/src/partition_alloc/spinning_mutex.cc b/base/allocator/partition_allocator/src/partition_alloc/spinning_mutex.cc
+index 8f89f8fee5..15f220762a 100644
+--- a/base/allocator/partition_allocator/src/partition_alloc/spinning_mutex.cc
++++ b/base/allocator/partition_allocator/src/partition_alloc/spinning_mutex.cc
+@@ -17,7 +17,7 @@
+ #endif
+
+ #if PA_CONFIG(HAS_LINUX_KERNEL)
+-#if defined(OS_OPENBSD)
++#if defined(OS_OPENBSD) || defined(OS_NETBSD)
+ #include <sys/time.h>
+ #include <sys/futex.h>
+ #elif defined(OS_FREEBSD)
+@@ -124,6 +124,9 @@ void SpinningMutex::FutexWait() {
+ #elif defined(OS_OPENBSD)
+ int err = futex(reinterpret_cast<volatile unsigned int *>(&state_), FUTEX_WAIT | FUTEX_PRIVATE_FLAG,
+ kLockedContended, nullptr, nullptr);
++#elif defined(OS_NETBSD)
++ int err = syscall(SYS___futex, reinterpret_cast<int *>(&state_), FUTEX_WAIT | FUTEX_PRIVATE_FLAG,
++ kLockedContended, nullptr, nullptr, 0, 0);
+ #else
+ int err = syscall(SYS_futex, &state_, FUTEX_WAIT | FUTEX_PRIVATE_FLAG,
+ kLockedContended, nullptr, nullptr, 0);
+@@ -145,6 +148,9 @@ void SpinningMutex::FutexWake() {
+ #elif defined(OS_OPENBSD)
+ long retval = futex(reinterpret_cast<volatile unsigned int *>(&state_), FUTEX_WAKE | FUTEX_PRIVATE_FLAG,
+ 1 /* wake up a single waiter */, nullptr, nullptr);
++#elif defined(OS_NETBSD)
++ long retval = syscall(SYS___futex, reinterpret_cast<int *>(&state_), FUTEX_WAKE | FUTEX_PRIVATE_FLAG,
++ 1 /* wake up a single waiter */, nullptr, nullptr, 0, 0);
+ #else
+ long retval = syscall(SYS_futex, &state_, FUTEX_WAKE | FUTEX_PRIVATE_FLAG,
+ 1 /* wake up a single waiter */, nullptr, nullptr, 0);
+diff --git a/base/allocator/partition_allocator/src/partition_alloc/stack/stack.cc b/base/allocator/partition_allocator/src/partition_alloc/stack/stack.cc
+index ebc010adf0..45c9ad0d58 100644
+--- a/base/allocator/partition_allocator/src/partition_alloc/stack/stack.cc
++++ b/base/allocator/partition_allocator/src/partition_alloc/stack/stack.cc
+@@ -18,7 +18,7 @@
+ #include <pthread.h>
+ #endif
+
+-#if PA_BUILDFLAG(IS_BSD)
++#if PA_BUILDFLAG(IS_BSD) && !PA_BUILDFLAG(IS_NETBSD)
+ #include <pthread_np.h>
+ #endif
+
+@@ -63,7 +63,7 @@ void* GetStackTop() {
+ return reinterpret_cast<uint8_t*>(ss.ss_sp);
+ }
+
+-#elif PA_BUILDFLAG(IS_FREEBSD)
++#elif PA_BUILDFLAG(IS_FREEBSD) || PA_BUILDFLAG(IS_NETBSD)
+
+ void* GetStackTop() {
+ pthread_attr_t attr;
+diff --git a/base/base_paths_posix.cc b/base/base_paths_posix.cc
+index 54cb093775..1bd6713b0c 100644
+--- a/base/base_paths_posix.cc
++++ b/base/base_paths_posix.cc
+@@ -61,6 +61,15 @@ bool PathProviderPosix(int key, FilePath* result) {
+ }
+ *result = FilePath(bin_dir.value());
+ return true;
++#elif BUILDFLAG(IS_NETBSD)
++ std::optional<std::string> bin_dir = StringSysctl({ CTL_KERN, KERN_PROC_ARGS, getpid(), KERN_PROC_PATHNAME });
++ if (!bin_dir.has_value() || bin_dir.value().length() <= 1) {
++ NOTREACHED_IN_MIGRATION() << "Unable to resolve path.";
++ return false;
++ }
++ *result = FilePath(bin_dir.value());
++ VLOG(1) << "PathProviderPosix result: " << bin_dir.value();
++ return true;
+ #elif BUILDFLAG(IS_SOLARIS)
+ char bin_dir[PATH_MAX + 1];
+ if (realpath(getexecname(), bin_dir) == NULL) {
+diff --git a/base/compiler_specific.h b/base/compiler_specific.h
+index 359b18cd53..32f4843f83 100644
+--- a/base/compiler_specific.h
++++ b/base/compiler_specific.h
+@@ -316,7 +316,8 @@
+ //
+ // In some cases it's desirable to remove this, e.g. on hot functions, or if
+ // we have purposely changed the reference canary.
+-#if (defined(COMPILER_GCC) || defined(__clang__)) && !defined(__OpenBSD__) && !defined(__FreeBSD__)
++#if (defined(COMPILER_GCC) || defined(__clang__)) && !defined(__OpenBSD__) && !defined(__FreeBSD__) && \
++ !defined(__NetBSD__)
+ #if HAS_ATTRIBUTE(__no_stack_protector__)
+ #define NO_STACK_PROTECTOR __attribute__((__no_stack_protector__))
+ #else
+diff --git a/base/debug/debugger_posix.cc b/base/debug/debugger_posix.cc
+index 1599fd4bb9..5a84f87765 100644
+--- a/base/debug/debugger_posix.cc
++++ b/base/debug/debugger_posix.cc
+@@ -90,6 +90,7 @@ bool BeingDebugged() {
+
+ // Initialize mib, which tells sysctl what info we want. In this case,
+ // we're looking for information about a specific process ID.
++#if !BUILDFLAG(IS_NETBSD)
+ int mib[] = {
+ CTL_KERN,
+ KERN_PROC,
+@@ -101,12 +102,25 @@ bool BeingDebugged() {
+ 0
+ #endif
+ };
++#else
++ int mib[] = {
++ CTL_KERN,
++ KERN_PROC2,
++ KERN_PROC_PID,
++ getpid(),
++ sizeof(struct kinfo_proc2),
++ 1
++ };
++#endif
+
+ // Caution: struct kinfo_proc is marked __APPLE_API_UNSTABLE. The source and
+ // binary interfaces may change.
+ #if BUILDFLAG(IS_OPENBSD)
+ struct kinfo_proc *info;
+ size_t info_size;
++#elif BUILDFLAG(IS_NETBSD)
++ struct kinfo_proc2 info;
++ size_t info_size = sizeof(info);
+ #else
+ struct kinfo_proc info;
+ size_t info_size = sizeof(info);
+@@ -124,6 +138,11 @@ bool BeingDebugged() {
+ }
+
+ int sysctl_result = sysctl(mib, std::size(mib), info, &info_size, NULL, 0);
++#elif BUILDFLAG(IS_NETBSD)
++ if (sysctl(mib, std::size(mib), NULL, &info_size, NULL, 0) < 0)
++ return -1;
++
++ mib[5] = (info_size / sizeof(struct kinfo_proc2));
+ #endif
+
+ #if !BUILDFLAG(IS_OPENBSD)
+@@ -142,6 +161,8 @@ bool BeingDebugged() {
+ being_debugged = (info.ki_flag & P_TRACED) != 0;
+ #elif BUILDFLAG(IS_OPENBSD)
+ being_debugged = (info->p_psflags & PS_TRACED) != 0;
++#elif BUILDFLAG(IS_NETBSD)
++ being_debugged = (info.p_flag & P_TRACED) != 0;
+ #else
+ being_debugged = (info.kp_proc.p_flag & P_TRACED) != 0;
+ #endif
+diff --git a/base/debug/stack_trace_posix.cc b/base/debug/stack_trace_posix.cc
+index c05861aec8..16d2e6e9ab 100644
+--- a/base/debug/stack_trace_posix.cc
++++ b/base/debug/stack_trace_posix.cc
+@@ -45,7 +45,7 @@
+ // Surprisingly, uClibc defines __GLIBC__ in some build configs, but
+ // execinfo.h and backtrace(3) are really only present in glibc and in macOS
+ // libc.
+-#if BUILDFLAG(IS_APPLE) || \
++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_NETBSD) || \
+ (defined(__GLIBC__) && !defined(__UCLIBC__) && !defined(__AIX) && !BUILDFLAG(IS_BSD))
+ #define HAVE_BACKTRACE
+ #include <execinfo.h>
+diff --git a/base/files/file_path_watcher_kqueue.cc b/base/files/file_path_watcher_kqueue.cc
+index 18476de526..7d04c6b0bb 100644
+--- a/base/files/file_path_watcher_kqueue.cc
++++ b/base/files/file_path_watcher_kqueue.cc
+@@ -81,9 +81,15 @@ size_t FilePathWatcherKQueue::EventsForPath(FilePath path,
+ FilePath::StringType subdir = (i != (components.end() - 1)) ? *(i + 1) : "";
+ EventData* data = new EventData(built_path, subdir);
+ struct kevent event;
++#if defined(__NetBSD__) && __NetBSD_Version__ < 999000000
++ EV_SET(&event, fd, EVFILT_VNODE, (EV_ADD | EV_CLEAR | EV_RECEIPT),
++ (NOTE_DELETE | NOTE_WRITE | NOTE_ATTRIB |
++ NOTE_RENAME | NOTE_REVOKE | NOTE_EXTEND), 0, reinterpret_cast<intptr_t>(data));
++#else
+ EV_SET(&event, fd, EVFILT_VNODE, (EV_ADD | EV_CLEAR | EV_RECEIPT),
+ (NOTE_DELETE | NOTE_WRITE | NOTE_ATTRIB |
+ NOTE_RENAME | NOTE_REVOKE | NOTE_EXTEND), 0, data);
++#endif
+ events->push_back(event);
+ }
+ return last_existing_entry;
+diff --git a/base/logging_unittest.cc b/base/logging_unittest.cc
+index 667561d2cf..35c0b1016f 100644
+--- a/base/logging_unittest.cc
++++ b/base/logging_unittest.cc
+@@ -579,7 +579,7 @@ void CheckCrashTestSighandler(int, siginfo_t* info, void* context_ptr) {
+ // need the arch-specific boilerplate below, which is inspired by breakpad.
+ // At the same time, on OSX, ucontext.h is deprecated but si_addr works fine.
+ uintptr_t crash_addr = 0;
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_FREEBSD)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
+ crash_addr = reinterpret_cast<uintptr_t>(info->si_addr);
+ #else // OS_*
+ ucontext_t* context = reinterpret_cast<ucontext_t*>(context_ptr);
+diff --git a/base/message_loop/message_pump_glib.cc b/base/message_loop/message_pump_glib.cc
+index e07537d654..81a741e68d 100644
+--- a/base/message_loop/message_pump_glib.cc
++++ b/base/message_loop/message_pump_glib.cc
+@@ -8,7 +8,7 @@
+ #include <glib.h>
+ #include <math.h>
+
+-#if BUILDFLAG(IS_BSD)
++#if BUILDFLAG(IS_BSD) && !BUILDFLAG(IS_NETBSD)
+ #include <pthread.h>
+ #include <pthread_np.h>
+ #endif
+@@ -56,7 +56,7 @@ int GetTimeIntervalMilliseconds(TimeTicks next_task_time) {
+ }
+
+ bool RunningOnMainThread() {
+-#if BUILDFLAG(IS_BSD)
++#if BUILDFLAG(IS_BSD) && !BUILDFLAG(IS_NETBSD)
+ return pthread_main_np();
+ #else
+ auto pid = getpid();
+diff --git a/base/posix/sysctl.cc b/base/posix/sysctl.cc
+index d0b07c2acc..29365bbe1b 100644
+--- a/base/posix/sysctl.cc
++++ b/base/posix/sysctl.cc
+@@ -17,17 +17,17 @@
+ #include "build/build_config.h"
+
+ namespace {
+-
++// NetBSD has sysctl_func macro in sys/sysctl.h, workaround: sysctl_func -> sysctl_func2
+ std::optional<std::string> StringSysctlImpl(
+- base::FunctionRef<int(char* /*out*/, size_t* /*out_len*/)> sysctl_func) {
++ base::FunctionRef<int(char* /*out*/, size_t* /*out_len*/)> sysctl_func2) {
+ size_t buf_len;
+- int result = sysctl_func(nullptr, &buf_len);
++ int result = sysctl_func2(nullptr, &buf_len);
+ if (result < 0 || buf_len < 1) {
+ return std::nullopt;
+ }
+
+ std::string value(buf_len - 1, '\0');
+- result = sysctl_func(&value[0], &buf_len);
++ result = sysctl_func2(&value[0], &buf_len);
+ if (result < 0) {
+ return std::nullopt;
+ }
+diff --git a/base/process/launch_posix.cc b/base/process/launch_posix.cc
+index 237c642a6f..7459d6d513 100644
+--- a/base/process/launch_posix.cc
++++ b/base/process/launch_posix.cc
+@@ -213,6 +213,8 @@ static const char kFDDir[] = "/dev/fd";
+ static const char kFDDir[] = "/dev/fd";
+ #elif BUILDFLAG(IS_OPENBSD)
+ static const char kFDDir[] = "/dev/fd";
++#elif BUILDFLAG(IS_NETBSD)
++static const char kFDDir[] = "/dev/fd";
+ #elif BUILDFLAG(IS_ANDROID)
+ static const char kFDDir[] = "/proc/self/fd";
+ #endif
+diff --git a/base/process/process_handle_netbsd.cc b/base/process/process_handle_netbsd.cc
+new file mode 100644
+index 0000000000..64f0533fb1
+--- /dev/null
++++ b/base/process/process_handle_netbsd.cc
+@@ -0,0 +1,55 @@
++// Copyright 2011 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "base/process/process_handle.h"
++#include "base/files/file_util.h"
++
++#include <stddef.h>
++#include <sys/param.h>
++#include <sys/proc.h>
++#include <sys/sysctl.h>
++#include <sys/types.h>
++#include <unistd.h>
++
++#include <optional>
++
++#include "base/files/file_path.h"
++#include "base/posix/sysctl.h"
++
++namespace base {
++
++ProcessId GetParentProcessId(ProcessHandle process) {
++ struct kinfo_proc2 *info;
++ size_t length;
++ pid_t ppid;
++ int mib[] = { CTL_KERN, KERN_PROC2, KERN_PROC_PID, process,
++ sizeof(struct kinfo_proc2), 1 };
++
++ if (sysctl(mib, std::size(mib), NULL, &length, NULL, 0) < 0)
++ return -1;
++
++ info = (struct kinfo_proc2 *)malloc(length);
++
++ mib[5] = static_cast<int>((length / sizeof(struct kinfo_proc2)));
++
++ if (sysctl(mib, std::size(mib), info, &length, NULL, 0) < 0) {
++ ppid = -1;
++ goto out;
++ }
++
++ ppid = info->p_ppid;
++
++out:
++ free(info);
++ return ppid;
++}
++
++FilePath GetProcessExecutablePath(ProcessHandle process) {
++ std::optional<std::string> pathname =
++ base::StringSysctl({CTL_KERN, KERN_PROC_ARGS, process, KERN_PROC_PATHNAME});
++
++ return FilePath(pathname.value_or(std::string{}));
++}
++
++} // namespace base
+diff --git a/base/process/process_iterator.h b/base/process/process_iterator.h
+index a819ae1327..1bcf2e60c1 100644
+--- a/base/process/process_iterator.h
++++ b/base/process/process_iterator.h
+@@ -24,7 +24,7 @@
+ #include <windows.h>
+
+ #include <tlhelp32.h>
+-#elif BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_OPENBSD)
++#elif BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
+ #include <sys/sysctl.h>
+ #elif BUILDFLAG(IS_FREEBSD)
+ #include <sys/user.h>
+@@ -116,7 +116,11 @@ class BASE_EXPORT ProcessIterator {
+ HANDLE snapshot_;
+ bool started_iteration_ = false;
+ #elif BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
++# if BUILDFLAG(IS_NETBSD)
++ std::vector<kinfo_proc2> kinfo_procs_;
++# else
+ std::vector<kinfo_proc> kinfo_procs_;
++# endif
+ size_t index_of_kinfo_proc_ = 0;
+ #elif BUILDFLAG(IS_POSIX)
+ struct DIRClose {
+diff --git a/base/process/process_iterator_netbsd.cc b/base/process/process_iterator_netbsd.cc
+new file mode 100644
+index 0000000000..7c69155a1b
+--- /dev/null
++++ b/base/process/process_iterator_netbsd.cc
+@@ -0,0 +1,132 @@
++// Copyright 2013 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "base/process/process_iterator.h"
++
++#include <errno.h>
++#include <stddef.h>
++#include <unistd.h>
++#include <sys/param.h>
++#include <sys/proc.h>
++#include <sys/sysctl.h>
++
++#include "base/logging.h"
++#include "base/strings/string_split.h"
++#include "base/strings/string_util.h"
++
++namespace base {
++
++ProcessIterator::ProcessIterator(const ProcessFilter* filter)
++ : filter_(filter) {
++ int mib[] = { CTL_KERN, KERN_PROC2, KERN_PROC_UID, static_cast<int>(getuid()),
++ sizeof(struct kinfo_proc2), 1 };
++
++ bool done = false;
++ int try_num = 1;
++ const int max_tries = 10;
++ size_t num_of_kinfo_proc;
++
++ do {
++ size_t len = 0;
++ if (sysctl(mib, std::size(mib), NULL, &len, NULL, 0) < 0) {
++ DLOG(ERROR) << "failed to get the size needed for the process list";
++ kinfo_procs_.resize(0);
++ done = true;
++ } else {
++ num_of_kinfo_proc = len / sizeof(struct kinfo_proc2);
++ // Leave some spare room for process table growth (more could show up
++ // between when we check and now)
++ num_of_kinfo_proc += 16;
++ kinfo_procs_.resize(num_of_kinfo_proc);
++ len = num_of_kinfo_proc * sizeof(struct kinfo_proc2);
++ if (sysctl(mib, std::size(mib), &kinfo_procs_[0], &len, NULL, 0) < 0) {
++ // If we get a mem error, it just means we need a bigger buffer, so
++ // loop around again. Anything else is a real error and give up.
++ if (errno != ENOMEM) {
++ DLOG(ERROR) << "failed to get the process list";
++ kinfo_procs_.resize(0);
++ done = true;
++ }
++ } else {
++ // Got the list, just make sure we're sized exactly right
++ num_of_kinfo_proc = len / sizeof(struct kinfo_proc2);
++ kinfo_procs_.resize(num_of_kinfo_proc);
++ done = true;
++ }
++ }
++ } while (!done && (try_num++ < max_tries));
++
++ if (!done) {
++ DLOG(ERROR) << "failed to collect the process list in a few tries";
++ kinfo_procs_.resize(0);
++ }
++}
++
++ProcessIterator::~ProcessIterator() = default;
++
++bool ProcessIterator::CheckForNextProcess() {
++ std::string data;
++ for (; index_of_kinfo_proc_ < kinfo_procs_.size(); ++index_of_kinfo_proc_) {
++ kinfo_proc2& kinfo = kinfo_procs_[index_of_kinfo_proc_];
++
++ // Skip processes just awaiting collection
++ if ((kinfo.p_pid > 0) && (kinfo.p_stat == SZOMB))
++ continue;
++
++ int mib[] = { CTL_KERN, KERN_PROC_ARGS, kinfo.p_pid };
++
++ // Find out what size buffer we need.
++ size_t data_len = 0;
++ if (sysctl(mib, std::size(mib), NULL, &data_len, NULL, 0) < 0) {
++ DVPLOG(1) << "failed to figure out the buffer size for a commandline";
++ continue;
++ }
++
++ data.resize(data_len);
++ if (sysctl(mib, std::size(mib), &data[0], &data_len, NULL, 0) < 0) {
++ DVPLOG(1) << "failed to fetch a commandline";
++ continue;
++ }
++
++ // |data| contains all the command line parameters of the process, separated
++ // by blocks of one or more null characters. We tokenize |data| into a
++ // vector of strings using '\0' as a delimiter and populate
++ // |entry_.cmd_line_args_|.
++ std::string delimiters;
++ delimiters.push_back('\0');
++ entry_.cmd_line_args_ = SplitString(data, delimiters, KEEP_WHITESPACE,
++ SPLIT_WANT_NONEMPTY);
++
++ // |data| starts with the full executable path followed by a null character.
++ // We search for the first instance of '\0' and extract everything before it
++ // to populate |entry_.exe_file_|.
++ size_t exec_name_end = data.find('\0');
++ if (exec_name_end == std::string::npos) {
++ DLOG(ERROR) << "command line data didn't match expected format";
++ continue;
++ }
++
++ entry_.pid_ = kinfo.p_pid;
++ entry_.ppid_ = kinfo.p_ppid;
++ entry_.gid_ = kinfo.p__pgid;
++ size_t last_slash = data.rfind('/', exec_name_end);
++ if (last_slash == std::string::npos)
++ entry_.exe_file_.assign(data, 0, exec_name_end);
++ else
++ entry_.exe_file_.assign(data, last_slash + 1,
++ exec_name_end - last_slash - 1);
++ // Start w/ the next entry next time through
++ ++index_of_kinfo_proc_;
++ // Done
++ return true;
++ }
++ return false;
++}
++
++bool NamedProcessIterator::IncludeEntry() {
++ return (executable_name_ == entry().exe_file() &&
++ ProcessIterator::IncludeEntry());
++}
++
++} // namespace base
+diff --git a/base/process/process_metrics_netbsd.cc b/base/process/process_metrics_netbsd.cc
+new file mode 100644
+index 0000000000..5580b05450
+--- /dev/null
++++ b/base/process/process_metrics_netbsd.cc
+@@ -0,0 +1,175 @@
++// Copyright 2013 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "base/process/process_metrics.h"
++
++#include <stddef.h>
++#include <stdint.h>
++#include <fcntl.h>
++#include <sys/param.h>
++#include <sys/sysctl.h>
++#include <sys/vmmeter.h>
++
++#include "base/memory/ptr_util.h"
++#include "base/types/expected.h"
++#include "base/values.h"
++#include "base/notreached.h"
++
++namespace base {
++
++ProcessMetrics::ProcessMetrics(ProcessHandle process) : process_(process) {}
++
++base::expected<TimeDelta, ProcessCPUUsageError>
++ProcessMetrics::GetCumulativeCPUUsage() {
++ struct kinfo_proc2 info;
++ size_t length = sizeof(struct kinfo_proc2);
++ struct timeval tv;
++
++ int mib[] = { CTL_KERN, KERN_PROC2, KERN_PROC_PID, process_,
++ sizeof(struct kinfo_proc2), 1 };
++
++ if (sysctl(mib, std::size(mib), &info, &length, NULL, 0) < 0) {
++ return base::unexpected(ProcessCPUUsageError::kSystemError);
++ }
++
++ tv.tv_sec = info.p_rtime_sec;
++ tv.tv_usec = info.p_rtime_usec;
++
++ return base::ok(Microseconds(TimeValToMicroseconds(tv)));
++}
++
++// static
++std::unique_ptr<ProcessMetrics> ProcessMetrics::CreateProcessMetrics(
++ ProcessHandle process) {
++ return WrapUnique(new ProcessMetrics(process));
++}
++
++size_t GetSystemCommitCharge() {
++ int mib[] = { CTL_VM, VM_METER };
++ size_t pagesize;
++ struct vmtotal vmtotal;
++ unsigned long mem_total, mem_free, mem_inactive;
++ size_t len = sizeof(vmtotal);
++
++ if (sysctl(mib, std::size(mib), &vmtotal, &len, NULL, 0) < 0) {
++ return 0;
++ }
++
++ mem_total = vmtotal.t_vm;
++ mem_free = vmtotal.t_free;
++ mem_inactive = vmtotal.t_vm - vmtotal.t_avm;
++
++ pagesize = checked_cast<size_t>(getpagesize());
++
++ return mem_total - (mem_free*pagesize) - (mem_inactive*pagesize);
++}
++
++int ProcessMetrics::GetOpenFdCount() const {
++ return -1;
++}
++
++int ProcessMetrics::GetOpenFdSoftLimit() const {
++ return getdtablesize();
++// return GetMaxFds();
++}
++
++uint64_t ProcessMetrics::GetVmSwapBytes() const {
++ NOTIMPLEMENTED();
++ return 0;
++}
++
++bool GetSystemMemoryInfo(SystemMemoryInfoKB* meminfo) {
++ NOTIMPLEMENTED_LOG_ONCE();
++ return false;
++}
++
++bool GetSystemDiskInfo(SystemDiskInfo* diskinfo) {
++ NOTIMPLEMENTED();
++ return false;
++}
++
++bool GetVmStatInfo(VmStatInfo* vmstat) {
++ NOTIMPLEMENTED();
++ return false;
++}
++
++int ProcessMetrics::GetIdleWakeupsPerSecond() {
++ NOTIMPLEMENTED();
++ return 0;
++}
++
++Value::Dict SystemMemoryInfoKB::ToDict() const {
++ Value::Dict res;
++ res.Set("total", total);
++ res.Set("free", free);
++ res.Set("available", available);
++ res.Set("buffers", buffers);
++ res.Set("cached", cached);
++ res.Set("active_anon", active_anon);
++ res.Set("inactive_anon", inactive_anon);
++ res.Set("active_file", active_file);
++ res.Set("inactive_file", inactive_file);
++ res.Set("swap_total", swap_total);
++ res.Set("swap_free", swap_free);
++ res.Set("swap_used", swap_total - swap_free);
++ res.Set("dirty", dirty);
++ res.Set("reclaimable", reclaimable);
++
++ NOTIMPLEMENTED();
++
++ return res;
++}
++
++Value::Dict VmStatInfo::ToDict() const {
++ Value::Dict res;
++ res.Set("pswpin", static_cast<int>(pswpin));
++ res.Set("pswpout", static_cast<int>(pswpout));
++ res.Set("pgmajfault", static_cast<int>(pgmajfault));
++
++ NOTIMPLEMENTED();
++
++ return res;
++}
++
++SystemDiskInfo::SystemDiskInfo() {
++ reads = 0;
++ reads_merged = 0;
++ sectors_read = 0;
++ read_time = 0;
++ writes = 0;
++ writes_merged = 0;
++ sectors_written = 0;
++ write_time = 0;
++ io = 0;
++ io_time = 0;
++ weighted_io_time = 0;
++}
++
++SystemDiskInfo::SystemDiskInfo(const SystemDiskInfo&) = default;
++
++SystemDiskInfo& SystemDiskInfo::operator=(const SystemDiskInfo&) = default;
++
++Value::Dict SystemDiskInfo::ToDict() const {
++ Value::Dict res;
++
++ // Write out uint64_t variables as doubles.
++ // Note: this may discard some precision, but for JS there's no other option.
++ res.Set("reads", static_cast<double>(reads));
++ res.Set("reads_merged", static_cast<double>(reads_merged));
++ res.Set("sectors_read", static_cast<double>(sectors_read));
++ res.Set("read_time", static_cast<double>(read_time));
++ res.Set("writes", static_cast<double>(writes));
++ res.Set("writes_merged", static_cast<double>(writes_merged));
++ res.Set("sectors_written", static_cast<double>(sectors_written));
++ res.Set("write_time", static_cast<double>(write_time));
++ res.Set("io", static_cast<double>(io));
++ res.Set("io_time", static_cast<double>(io_time));
++ res.Set("weighted_io_time", static_cast<double>(weighted_io_time));
++
++ NOTIMPLEMENTED();
++
++ return res;
++}
++
++} // namespace base
+diff --git a/base/process/process_metrics_posix.cc b/base/process/process_metrics_posix.cc
+index bdef95e4cc..7338e1cee7 100644
+--- a/base/process/process_metrics_posix.cc
++++ b/base/process/process_metrics_posix.cc
+@@ -21,7 +21,7 @@
+
+ #if BUILDFLAG(IS_APPLE)
+ #include <malloc/malloc.h>
+-#elif BUILDFLAG(IS_OPENBSD)
++#elif BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
+ #include <stdlib.h>
+ #else
+ #include <malloc.h>
+diff --git a/base/profiler/stack_base_address_posix.cc b/base/profiler/stack_base_address_posix.cc
+index 2e87b03cf0..52c4be583a 100644
+--- a/base/profiler/stack_base_address_posix.cc
++++ b/base/profiler/stack_base_address_posix.cc
+@@ -18,8 +18,12 @@
+ #endif
+
+ #if BUILDFLAG(IS_BSD)
++#if BUILDFLAG(IS_NETBSD)
++#include <pthread.h>
++#else
+ #include <pthread_np.h>
+ #endif
++#endif
+
+ #if BUILDFLAG(IS_CHROMEOS)
+ extern "C" void* __libc_stack_end;
+diff --git a/base/system/sys_info_netbsd.cc b/base/system/sys_info_netbsd.cc
+new file mode 100644
+index 0000000000..676babdf29
+--- /dev/null
++++ b/base/system/sys_info_netbsd.cc
+@@ -0,0 +1,91 @@
++// Copyright 2011 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "base/system/sys_info.h"
++
++#include <stddef.h>
++#include <stdint.h>
++#include <sys/param.h>
++#include <sys/shm.h>
++#include <sys/sysctl.h>
++
++#include "base/notreached.h"
++#include "base/posix/sysctl.h"
++#include "base/strings/string_util.h"
++
++namespace {
++
++uint64_t AmountOfMemory(int pages_name) {
++ long pages = sysconf(pages_name);
++ long page_size = sysconf(_SC_PAGESIZE);
++ if (pages < 0 || page_size < 0)
++ return 0;
++ return static_cast<uint64_t>(pages) * static_cast<uint64_t>(page_size);
++}
++
++} // namespace
++
++namespace base {
++
++// static
++int SysInfo::NumberOfProcessors() {
++ int mib[] = {CTL_HW, HW_NCPU};
++ int ncpu;
++ size_t size = sizeof(ncpu);
++ if (sysctl(mib, std::size(mib), &ncpu, &size, NULL, 0) < 0) {
++ NOTREACHED_IN_MIGRATION();
++ return 1;
++ }
++ return ncpu;
++}
++
++// static
++uint64_t SysInfo::AmountOfPhysicalMemoryImpl() {
++ return AmountOfMemory(_SC_PHYS_PAGES);
++}
++
++// static
++uint64_t SysInfo::AmountOfAvailablePhysicalMemoryImpl() {
++ return AmountOfMemory(_SC_PHYS_PAGES);
++}
++
++// static
++uint64_t SysInfo::MaxSharedMemorySize() {
++ int mib[] = {CTL_KERN, KERN_SYSVIPC, KERN_SYSVIPC_SHMMAX};
++ size_t limit;
++ size_t size = sizeof(limit);
++ // pledge(2)
++ if (sysctl(mib, std::size(mib), &limit, &size, NULL, 0) < 0) {
++ NOTREACHED_IN_MIGRATION();
++ return 0;
++ }
++ return static_cast<uint64_t>(limit);
++}
++
++// static
++std::string SysInfo::CPUModelName() {
++ int mib[] = { CTL_HW, HW_MODEL };
++ char name[256];
++ size_t size = std::size(name);
++
++ if (sysctl(mib, std::size(mib), &name, &size, NULL, 0) == 0) {
++ return name;
++ }
++
++ return std::string();
++}
++
++// static
++SysInfo::HardwareInfo SysInfo::GetHardwareInfoSync() {
++ HardwareInfo info;
++ // Set the manufacturer to "NetBSD" and the model to
++ // an empty string.
++ info.manufacturer = "NetBSD";
++ info.model = HardwareModelName();
++ DCHECK(IsStringUTF8(info.manufacturer));
++ DCHECK(IsStringUTF8(info.model));
++ return info;
++}
++
++} // namespace base
+diff --git a/base/task/thread_pool/environment_config_unittest.cc b/base/task/thread_pool/environment_config_unittest.cc
+index 72f4ba59be..baae579604 100644
+--- a/base/task/thread_pool/environment_config_unittest.cc
++++ b/base/task/thread_pool/environment_config_unittest.cc
+@@ -24,7 +24,7 @@ TEST(ThreadPoolEnvironmentConfig, CanUseBackgroundPriorityForWorker) {
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_ANDROID)
+ EXPECT_TRUE(CanUseUtilityThreadTypeForWorkerThread());
+ #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_NACL)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_NACL) || BUILDFLAG(IS_BSD)
+ EXPECT_FALSE(CanUseUtilityThreadTypeForWorkerThread());
+ #else
+ #error Platform doesn't match any block
+diff --git a/base/test/launcher/test_launcher.cc b/base/test/launcher/test_launcher.cc
+index 854e6a66ac..a4e1e1cadc 100644
+--- a/base/test/launcher/test_launcher.cc
++++ b/base/test/launcher/test_launcher.cc
+@@ -1808,6 +1808,10 @@ bool TestLauncher::Init(CommandLine* command_line) {
+ results_tracker_.AddGlobalTag("OS_OPENBSD");
+ #endif
+
++#if BUILDFLAG(IS_NETBSD)
++ results_tracker_.AddGlobalTag("OS_NETBSD");
++#endif
++
+ #if BUILDFLAG(IS_POSIX)
+ results_tracker_.AddGlobalTag("OS_POSIX");
+ #endif
+diff --git a/base/tracing/trace_time.cc b/base/tracing/trace_time.cc
+index 04df5e08bf..f1eeb2fa82 100644
+--- a/base/tracing/trace_time.cc
++++ b/base/tracing/trace_time.cc
+@@ -10,6 +10,8 @@
+
+ #if BUILDFLAG(IS_FREEBSD)
+ #define CLOCK_BOOTTIME CLOCK_UPTIME
++#elif BUILDFLAG(IS_NETBSD)
++#define CLOCK_BOOTTIME CLOCK_MONOTONIC
+ #endif
+
+ namespace base {
+diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn
+index 976b9a1187..eb19c7c571 100644
+--- a/build/config/BUILDCONFIG.gn
++++ b/build/config/BUILDCONFIG.gn
+@@ -137,7 +137,7 @@ declare_args() {
+
+ # Set to true when compiling with the Clang compiler.
+ is_clang = current_os != "linux" || current_os == "openbsd" ||
+- current_os == "freebsd" ||
++ current_os == "freebsd" || current_os == "netbsd" ||
+ (current_cpu != "s390x" && current_cpu != "s390" &&
+ current_cpu != "ppc64" && current_cpu != "ppc" &&
+ current_cpu != "mips" && current_cpu != "mips64" &&
+@@ -236,6 +236,8 @@ if (host_toolchain == "") {
+ host_toolchain = "//build/toolchain/openbsd:clang_$host_cpu"
+ } else if (host_os == "freebsd") {
+ host_toolchain = "//build/toolchain/freebsd:clang_$host_cpu"
++ } else if (host_os == "netbsd") {
++ host_toolchain = "//build/toolchain/netbsd:clang_$host_cpu"
+ } else {
+ assert(false, "Unsupported host_os: $host_os")
+ }
+@@ -279,7 +281,7 @@ if (target_os == "android") {
+ _default_toolchain = "//build/toolchain/aix:$target_cpu"
+ } else if (target_os == "zos") {
+ _default_toolchain = "//build/toolchain/zos:$target_cpu"
+-} else if (target_os == "openbsd" || target_os == "freebsd") {
++} else if (target_os == "openbsd" || target_os == "freebsd" || target_os == "netbsd") {
+ _default_toolchain = host_toolchain
+ } else {
+ assert(false, "Unsupported target_os: $target_os")
+@@ -316,10 +318,11 @@ is_chromeos = current_os == "chromeos"
+ is_fuchsia = current_os == "fuchsia"
+ is_ios = current_os == "ios"
+ is_linux = current_os == "linux" || current_os == "openbsd" ||
+- current_os == "freebsd"
++ current_os == "freebsd" || current_os == "netbsd"
+ is_openbsd = current_os == "openbsd"
+ is_freebsd = current_os == "freebsd"
+-is_bsd = current_os == "openbsd" || current_os == "freebsd"
++is_netbsd = current_os == "netbsd"
++is_bsd = current_os == "openbsd" || current_os == "freebsd" || current_os == "netbsd"
+ is_mac = current_os == "mac"
+ is_nacl = current_os == "nacl"
+ is_win = current_os == "win" || current_os == "winuwp"
+diff --git a/build/config/linux/pkg-config.py b/build/config/linux/pkg-config.py
+index 3caf00630d..aaabfcaa5c 100755
+--- a/build/config/linux/pkg-config.py
++++ b/build/config/linux/pkg-config.py
+@@ -108,7 +108,7 @@ def main():
+ # If this is run on non-Linux platforms, just return nothing and indicate
+ # success. This allows us to "kind of emulate" a Linux build from other
+ # platforms.
+- if not sys.platform.startswith(tuple(['linux', 'openbsd', 'freebsd'])):
++ if not sys.platform.startswith(tuple(['linux', 'openbsd', 'freebsd', 'netbsd'])):
+ print("[[],[],[],[],[]]")
+ return 0
+
+diff --git a/build/config/ozone.gni b/build/config/ozone.gni
+index 6a590b0ef2..4cb5ff43ac 100644
+--- a/build/config/ozone.gni
++++ b/build/config/ozone.gni
+@@ -92,6 +92,10 @@ declare_args() {
+ ozone_platform = "x11"
+ ozone_platform_wayland = false
+ ozone_platform_x11 = true
++ } else if (is_netbsd) {
++ ozone_platform = "x11"
++ ozone_platform_wayland = false
++ ozone_platform_x11 = true
+ } else if (is_freebsd) {
+ ozone_platform = "x11"
+ ozone_platform_wayland = true
+diff --git a/build/rust/rust_bindgen.gni b/build/rust/rust_bindgen.gni
+index d0ad1ac0bd..2aaafba7c7 100644
+--- a/build/rust/rust_bindgen.gni
++++ b/build/rust/rust_bindgen.gni
+@@ -11,14 +11,14 @@ if (is_win) {
+ import("//build/toolchain/win/win_toolchain_data.gni")
+ }
+
+-_bindgen_path = "${LOCALBASE}/bin/bindgen"
++_bindgen_path = "@PREFIX@/bin/bindgen"
+ if (host_os == "win") {
+ _bindgen_path = "${_bindgen_path}.exe"
+ }
+
+ # On Windows, the libclang.dll is beside the bindgen.exe, otherwise it is in
+ # ../lib.
+-_libclang_path = "${LOCALBASE}/llvm${MODCLANG_VERSION}/lib"
++_libclang_path = "@PREFIX@"
+ if (host_os == "win") {
+ _libclang_path += "/bin"
+ } else {
+diff --git a/build/toolchain/gcc_toolchain.gni b/build/toolchain/gcc_toolchain.gni
+index 2e6700d66f..251d959365 100644
+--- a/build/toolchain/gcc_toolchain.gni
++++ b/build/toolchain/gcc_toolchain.gni
+@@ -622,7 +622,7 @@ template("single_gcc_toolchain") {
+ # We need to specify link groups, at least, for single pass linkers. I.e.
+ # Rust libraries are alpha-sorted instead of by dependencies so they fail
+ # to link if not properly ordered or grouped.
+- link_command = "$ld {{ldflags}}${extra_ldflags} -o \"$unstripped_outfile\" $start_group_flag @\"$rspfile\" $end_group_flag {{solibs}} {{libs}} $start_group_flag {{rlibs}} $end_group_flag"
++ link_command = "$ld $start_group_flag {{ldflags}}${extra_ldflags} -o \"$unstripped_outfile\" @\"$rspfile\" {{solibs}} {{libs}} {{rlibs}} $end_group_flag"
+
+ # Generate a map file to be used for binary size analysis.
+ # Map file adds ~10% to the link time on a z620.
+diff --git a/build/toolchain/netbsd/BUILD.gn b/build/toolchain/netbsd/BUILD.gn
+new file mode 100644
+index 0000000000..27240dd95a
+--- /dev/null
++++ b/build/toolchain/netbsd/BUILD.gn
+@@ -0,0 +1,66 @@
++# Copyright 2013 The Chromium Authors. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//build/config/sysroot.gni")
++import("//build/toolchain/gcc_toolchain.gni")
++
++clang_toolchain("clang_x86") {
++ toolchain_args = {
++ current_cpu = "x86"
++ current_os = "netbsd"
++ }
++}
++
++gcc_toolchain("x86") {
++ cc = "gcc"
++ cxx = "g++"
++
++ readelf = "readelf"
++ nm = "nm"
++ ar = "ar"
++ ld = cxx
++
++ toolchain_args = {
++ current_cpu = "x86"
++ current_os = "netbsd"
++ is_clang = false
++ }
++}
++
++clang_toolchain("clang_x64") {
++ toolchain_args = {
++ current_cpu = "x64"
++ current_os = "netbsd"
++ }
++}
++
++gcc_toolchain("x64") {
++ cc = "gcc"
++ cxx = "g++"
++
++ readelf = "readelf"
++ nm = "nm"
++ ar = "ar"
++ ld = cxx
++
++ toolchain_args = {
++ current_cpu = "x64"
++ current_os = "netbsd"
++ is_clang = false
++ }
++}
++
++clang_toolchain("clang_arm") {
++ toolchain_args = {
++ current_cpu = "arm64"
++ current_os = "netbsd"
++ }
++}
++
++clang_toolchain("clang_arm64") {
++ toolchain_args = {
++ current_cpu = "arm64"
++ current_os = "netbsd"
++ }
++}
+diff --git a/chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc b/chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc
+index ce049dc56a..12f40cb6eb 100644
+--- a/chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc
++++ b/chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc
+@@ -287,6 +287,8 @@ bool ChromeRuntimeAPIDelegate::GetPlatformInfo(PlatformInfo* info) {
+ info->os = extensions::api::runtime::PlatformOs::kLinux;
+ } else if (strcmp(os, "freebsd") == 0) {
+ info->os = extensions::api::runtime::PlatformOs::kLinux;
++ } else if (strcmp(os, "netbsd") == 0) {
++ info->os = extensions::api::runtime::PlatformOs::kLinux;
+ } else {
+ NOTREACHED_IN_MIGRATION() << "Platform not supported: " << os;
+ return false;
+diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
+index db0ee8549d..e16248559a 100644
+--- a/chrome/browser/flag_descriptions.cc
++++ b/chrome/browser/flag_descriptions.cc
+@@ -7998,7 +7998,7 @@ const char kAudioBackendName[] =
+ const char kAudioBackendDescription[] =
+ #if BUILDFLAG(IS_OPENBSD)
+ "Select the desired audio backend to use. The default is sndio.";
+-#elif BUILDFLAG(IS_FREEBSD)
++#elif BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
+ "Select the desired audio backend to use. The default will automatically "
+ "enumerate through the supported backends.";
+ #endif
+diff --git a/chrome/browser/ui/views/side_panel/BUILD.gn b/chrome/browser/ui/views/side_panel/BUILD.gn
+index 5baeb55f29..b6e62c3c7f 100644
+--- a/chrome/browser/ui/views/side_panel/BUILD.gn
++++ b/chrome/browser/ui/views/side_panel/BUILD.gn
+@@ -172,7 +172,9 @@ static_library("side_panel") {
+ "//chrome/app:generated_resources",
+ "//chrome/app:generated_resources_grit",
+ "//chrome/app/vector_icons",
++ "//chrome/browser/cart:mojo_bindings",
+ "//chrome/browser/companion/core",
++ "//chrome/browser/companion/visual_query",
+ "//chrome/browser/favicon",
+ "//chrome/browser/lens/region_search",
+ "//chrome/browser/profiles",
+@@ -181,8 +183,11 @@ static_library("side_panel") {
+ "//chrome/browser/search_engines",
+ "//chrome/browser/themes",
+ "//chrome/browser/ui:browser_element_identifiers",
++ "//chrome/browser/ui:webui_name_variants",
+ "//chrome/browser/ui/actions",
+ "//chrome/browser/ui/browser_window",
++ "//chrome/browser/ui/webui/side_panel/bookmarks:mojo_bindings",
++ "//chrome/browser/ui/webui/side_panel/reading_list:mojo_bindings",
+ "//chrome/common",
+ "//chrome/common:constants",
+ "//chrome/common/extensions/api",
+@@ -198,6 +203,7 @@ static_library("side_panel") {
+ "//components/lens:features",
+ "//components/omnibox/browser:vector_icons",
+ "//components/optimization_guide/core:features",
++ "//components/page_image_service/mojom:mojo_bindings",
+ "//components/performance_manager",
+ "//components/pref_registry",
+ "//components/search",
+@@ -222,5 +228,7 @@ static_library("side_panel") {
+ "//ui/gfx:color_utils",
+ "//ui/gfx/geometry:geometry_skia",
+ "//ui/webui",
++ "//ui/webui/resources/cr_components/commerce:mojo_bindings",
++ "//ui/webui/resources/cr_components/help_bubble:mojo_bindings",
+ ]
+ }
+diff --git a/chrome/common/chrome_paths.cc b/chrome/common/chrome_paths.cc
+index a37eeb4307..7a33810139 100644
+--- a/chrome/common/chrome_paths.cc
++++ b/chrome/common/chrome_paths.cc
+@@ -57,9 +57,9 @@ namespace {
+ // /usr/share seems like a good choice, see: http://www.pathname.com/fhs/
+ const base::FilePath::CharType kFilepathSinglePrefExtensions[] =
+ #if BUILDFLAG(GOOGLE_CHROME_BRANDING)
+- FILE_PATH_LITERAL("/usr/local/share/chromium/extensions");
++ FILE_PATH_LITERAL("@PREFIX@/share/chromium/extensions");
+ #else
+- FILE_PATH_LITERAL("/usr/local/share/chromium/extensions");
++ FILE_PATH_LITERAL("@PREFIX@/share/chromium/extensions");
+ #endif // BUILDFLAG(GOOGLE_CHROME_BRANDING)
+
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+@@ -613,9 +613,9 @@ bool PathProvider(int key, base::FilePath* result) {
+ #if BUILDFLAG(GOOGLE_CHROME_BRANDING)
+ cur = base::FilePath(
+ FILE_PATH_LITERAL("/etc/opt/chrome/native-messaging-hosts"));
+-#elif BUILDFLAG(IS_FREEBSD)
++#elif BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
+ cur = base::FilePath(FILE_PATH_LITERAL(
+- "/usr/local/etc/chromium/native-messaging-hosts"));
++ "@PREFIX@/etc/chromium/native-messaging-hosts"));
+ #else
+ cur = base::FilePath(
+ FILE_PATH_LITERAL("/etc/chromium/native-messaging-hosts"));
+diff --git a/components/crash/core/app/chrome_crashpad_handler.cc b/components/crash/core/app/chrome_crashpad_handler.cc
+index 9aa752e77f..5c3ba36cc3 100644
+--- a/components/crash/core/app/chrome_crashpad_handler.cc
++++ b/components/crash/core/app/chrome_crashpad_handler.cc
+@@ -6,7 +6,7 @@
+ extern "C" int CrashpadHandlerMain(int argc, char* argv[]);
+
+ int main(int argc, char* argv[]) {
+-#if defined(__OpenBSD__) || defined(__FreeBSD__)
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ return -1;
+ #else
+ return CrashpadHandlerMain(argc, argv);
+diff --git a/components/device_signals/test/signals_contract.cc b/components/device_signals/test/signals_contract.cc
+index b039b31ef9..368872b22d 100644
+--- a/components/device_signals/test/signals_contract.cc
++++ b/components/device_signals/test/signals_contract.cc
+@@ -212,7 +212,7 @@ GetSignalsContract() {
+ base::BindRepeating(VerifyUnset, names::kCrowdStrike);
+ #endif
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUIDLFLAG(IS_BSD)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ contract[names::kAllowScreenLock] =
+ base::BindRepeating(VerifyUnset, names::kAllowScreenLock);
+ contract[names::kImei] = base::BindRepeating(VerifyUnset, names::kImei);
+diff --git a/components/named_mojo_ipc_server/connection_info.h b/components/named_mojo_ipc_server/connection_info.h
+index 21d1f361af..a8d42bbfe5 100644
+--- a/components/named_mojo_ipc_server/connection_info.h
++++ b/components/named_mojo_ipc_server/connection_info.h
+@@ -16,6 +16,12 @@
+ #include <bsm/libbsm.h>
+ #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include <sys/socket.h>
++#if defined(__NetBSD__)
++#include <sys/un.h>
++#define ucred unpcbid
++#define SO_PEERCRED LOCAL_PEEREID
++#define pid unp_pid
++#endif
+ #endif
+
+ namespace named_mojo_ipc_server {
+diff --git a/components/policy/core/common/cloud/cloud_policy_util.cc b/components/policy/core/common/cloud/cloud_policy_util.cc
+index 6c59e0c41a..c95cd65599 100644
+--- a/components/policy/core/common/cloud/cloud_policy_util.cc
++++ b/components/policy/core/common/cloud/cloud_policy_util.cc
+@@ -39,7 +39,7 @@
+ #include <limits.h> // For HOST_NAME_MAX
+ #endif
+
+-#if BUILDFLAG(IS_FREEBSD)
++#if BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
+ #include <sys/param.h>
+ #define HOST_NAME_MAX MAXHOSTNAMELEN
+ #endif
+diff --git a/components/policy/core/common/policy_paths.cc b/components/policy/core/common/policy_paths.cc
+index 2afbdd5d3f..f849c13dfd 100644
+--- a/components/policy/core/common/policy_paths.cc
++++ b/components/policy/core/common/policy_paths.cc
+@@ -19,6 +19,8 @@ const char kPolicyPath[] = "/etc/opt/chrome/policies";
+ const char kPolicyPath[] = "/etc/opt/chrome_for_testing/policies";
+ #elif BUILDFLAG(IS_FREEBSD)
+ const char kPolicyPath[] = "/usr/local/etc/chromium/policies";
++#elif BUILDFLAG(IS_NETBSD)
++const char kPolicyPath[] = "@PKG_SYSCONFBASE@/chromium/policies";
+ #else
+ const char kPolicyPath[] = "/etc/chromium/policies";
+ #endif // BUILDFLAG(GOOGLE_CHROME_BRANDING)
+diff --git a/components/policy/tools/generate_policy_source.py b/components/policy/tools/generate_policy_source.py
+index f84f40968e..cbaf44564c 100755
+--- a/components/policy/tools/generate_policy_source.py
++++ b/components/policy/tools/generate_policy_source.py
+@@ -38,9 +38,9 @@ PLATFORM_STRINGS = {
+ 'ios': ['ios'],
+ 'fuchsia': ['fuchsia'],
+ 'chrome.win': ['win'],
+- 'chrome.linux': ['linux', 'openbsd', 'freebsd'],
++ 'chrome.linux': ['linux', 'openbsd', 'freebsd', 'netbsd'],
+ 'chrome.mac': ['mac'],
+- 'chrome.*': ['win', 'mac', 'linux', 'openbsd', 'freebsd'],
++ 'chrome.*': ['win', 'mac', 'linux', 'openbsd', 'freebsd', 'netbsd'],
+ 'chrome.win7': ['win'],
+ }
+
+diff --git a/components/safe_browsing/content/resources/gen_file_type_proto.py b/components/safe_browsing/content/resources/gen_file_type_proto.py
+index 95001c7809..62eb2acd2f 100755
+--- a/components/safe_browsing/content/resources/gen_file_type_proto.py
++++ b/components/safe_browsing/content/resources/gen_file_type_proto.py
+@@ -40,6 +40,7 @@ def PlatformTypes():
+ "linux": download_file_types_pb2.DownloadFileType.PLATFORM_TYPE_LINUX,
+ "openbsd": download_file_types_pb2.DownloadFileType.PLATFORM_TYPE_LINUX,
+ "freebsd": download_file_types_pb2.DownloadFileType.PLATFORM_TYPE_LINUX,
++ "netbsd": download_file_types_pb2.DownloadFileType.PLATFORM_TYPE_LINUX,
+ "mac": download_file_types_pb2.DownloadFileType.PLATFORM_TYPE_MAC,
+ "win": download_file_types_pb2.DownloadFileType.PLATFORM_TYPE_WINDOWS,
+ }
+@@ -183,7 +184,7 @@ class DownloadFileTypeProtoGenerator(BinaryProtoGenerator):
+ '-t',
+ '--type',
+ help='The platform type. One of android, chromeos, ' +
+- 'linux, mac, win, openbsd, freebsd')
++ 'linux, mac, win, openbsd, freebsd, netbsd')
+
+ def AddExtraCommandLineArgsForVirtualEnvRun(self, opts, command):
+ if opts.type is not None:
+diff --git a/components/sync/base/sync_util.cc b/components/sync/base/sync_util.cc
+index 26839c5c38..176b587544 100644
+--- a/components/sync/base/sync_util.cc
++++ b/components/sync/base/sync_util.cc
+@@ -45,6 +45,8 @@ std::string GetSystemString() {
+ system = "FREEBSD ";
+ #elif BUILDFLAG(IS_OPENBSD)
+ system = "OPENBSD ";
++#elif BUILDFLAG(IS_NETBSD)
++ system = "NETBSD ";
+ #elif BUILDFLAG(IS_MAC)
+ system = "MAC ";
+ #endif
+diff --git a/components/sync_device_info/local_device_info_util_linux.cc b/components/sync_device_info/local_device_info_util_linux.cc
+index 0be5361ac9..7be86fc918 100644
+--- a/components/sync_device_info/local_device_info_util_linux.cc
++++ b/components/sync_device_info/local_device_info_util_linux.cc
+@@ -9,7 +9,7 @@
+
+ #include "base/linux_util.h"
+
+-#if defined(__FreeBSD__)
++#if defined(__FreeBSD__) || defined(__NetBSD__)
+ #include <sys/param.h>
+ #define HOST_NAME_MAX MAXHOSTNAMELEN
+ #endif
+diff --git a/components/update_client/update_query_params.cc b/components/update_client/update_query_params.cc
+index 5b17a2bceb..538a2b22d7 100644
+--- a/components/update_client/update_query_params.cc
++++ b/components/update_client/update_query_params.cc
+@@ -44,6 +44,8 @@ const char kOs[] =
+ "openbsd";
+ #elif defined(OS_FREEBSD)
+ "freebsd";
++#elif defined(OS_NETBSD)
++ "netbsd";
+ #else
+ #error "unknown os"
+ #endif
+diff --git a/content/browser/utility_process_host.cc b/content/browser/utility_process_host.cc
+index 95bf818f02..50328bff2e 100644
+--- a/content/browser/utility_process_host.cc
++++ b/content/browser/utility_process_host.cc
+@@ -349,7 +349,7 @@ bool UtilityProcessHost::StartProcess() {
+ switches::kMuteAudio,
+ switches::kUseFileForFakeAudioCapture,
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FREEBSD) || \
+- BUILDFLAG(IS_SOLARIS)
++ BUILDFLAG(IS_SOLARIS) || BUILDFLAG(IS_NETBSD)
+ switches::kAlsaInputDevice,
+ switches::kAlsaOutputDevice,
+ #endif
+diff --git a/content/browser/web_contents/web_contents_view_aura_unittest.cc b/content/browser/web_contents/web_contents_view_aura_unittest.cc
+index f07abf2ddb..90ef112694 100644
+--- a/content/browser/web_contents/web_contents_view_aura_unittest.cc
++++ b/content/browser/web_contents/web_contents_view_aura_unittest.cc
+@@ -97,7 +97,7 @@ class TestDragDropClient : public aura::client::DragDropClient {
+ drag_drop_data_ = std::move(data);
+ return DragOperation::kCopy;
+ }
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void UpdateDragImage(const gfx::ImageSkia& image,
+ const gfx::Vector2d& offset) override {}
+ #endif
+diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
+index b477623aaa..c80ea97951 100644
+--- a/content/test/BUILD.gn
++++ b/content/test/BUILD.gn
+@@ -1685,7 +1685,7 @@ test("content_browsertests") {
+ "../test/url_loader_interceptor_browsertest.cc",
+ ]
+
+- if (is_linux) {
++ if ((is_linux) && !is_bsd) {
+ sources += [ "../browser/network/address_map_linux_browsertest.cc" ]
+ }
+
+diff --git a/extensions/common/api/_permission_features.json b/extensions/common/api/_permission_features.json
+index 1ccc2c2124..9a8c3a5388 100644
+--- a/extensions/common/api/_permission_features.json
++++ b/extensions/common/api/_permission_features.json
+@@ -138,7 +138,7 @@
+ {
+ "channel": "stable",
+ "extension_types": ["platform_app"],
+- "platforms": ["chromeos", "lacros", "win", "mac", "linux", "openbsd", "freebsd"],
++ "platforms": ["chromeos", "lacros", "win", "mac", "linux", "openbsd", "freebsd", "netbsd"],
+ "allowlist": [
+ "1C93BD3CF875F4A73C0B2A163BB8FBDA8B8B3D80", // http://crbug.com/387169
+ "A3BC37E2148AC4E99BE4B16AF9D42DD1E592BBBE", // http://crbug.com/387169
+@@ -432,7 +432,7 @@
+ }, {
+ "channel": "stable",
+ "extension_types": ["extension", "legacy_packaged_app", "platform_app"],
+- "platforms": ["chromeos", "mac", "win", "linux", "fuchsia", "openbsd", "freebsd"],
++ "platforms": ["chromeos", "mac", "win", "linux", "fuchsia", "openbsd", "freebsd", "netbsd"],
+ "allowlist": [
+ "0DE0F05680A4A056BCEC864ED8DDA84296F82B40", // http://crbug.com/434651
+ "1C93BD3CF875F4A73C0B2A163BB8FBDA8B8B3D80", // http://crbug.com/293683
+@@ -476,7 +476,7 @@
+ "networkingPrivate": {
+ "channel": "stable",
+ "extension_types": ["extension", "legacy_packaged_app", "platform_app"],
+- "platforms": ["chromeos", "lacros", "mac", "win", "linux", "fuchsia", "openbsd", "freebsd"],
++ "platforms": ["chromeos", "lacros", "mac", "win", "linux", "fuchsia", "openbsd", "freebsd", "netbsd"],
+ "allowlist": [
+ // DO NOT ADD ANY MORE ENTRIES HERE.
+ // networkingPrivate is being migrated to networking.onc.
+diff --git a/extensions/common/api/runtime.json b/extensions/common/api/runtime.json
+index 730668b7ee..547d07407d 100644
+--- a/extensions/common/api/runtime.json
++++ b/extensions/common/api/runtime.json
+@@ -87,6 +87,7 @@
+ {"name": "linux", "description": "Specifies the Linux operating system."},
+ {"name": "openbsd", "description": "Specifies the OpenBSD operating system."},
+ {"name": "freebsd", "description": "Specifies the FreeBSD operating system."},
++ {"name": "netbsd", "description": "Specifies the NetBSD operating system."},
+ {"name": "fuchsia", "description": "Specifies the Fuchsia operating system."}
+ ]
+ },
+diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
+index bf3f36c6be..d1a8093f64 100644
+--- a/media/base/media_switches.cc
++++ b/media/base/media_switches.cc
+@@ -61,7 +61,7 @@ const char kReportVp9AsAnUnsupportedMimeType[] =
+ "report-vp9-as-an-unsupported-mime-type";
+
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FREEBSD) || \
+- BUILDFLAG(IS_SOLARIS)
++ BUILDFLAG(IS_SOLARIS) || BUILDFLAG(IS_NETBSD)
+ // The Alsa device to use when opening an audio input stream.
+ const char kAlsaInputDevice[] = "alsa-input-device";
+ // The Alsa device to use when opening an audio stream.
+@@ -397,7 +397,7 @@ const base::FeatureParam<AudioBackend>
+ &kAudioBackend, "audio-backend",
+ #if BUILDFLAG(IS_OPENBSD)
+ AudioBackend::kSndio,
+-#elif BUILDFLAG(IS_FREEBSD)
++#elif BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
+ AudioBackend::kAuto,
+ #endif
+ &kAudioBackendOptions};
+diff --git a/media/base/media_switches.h b/media/base/media_switches.h
+index a96a9fd9b2..69a4a41d35 100644
+--- a/media/base/media_switches.h
++++ b/media/base/media_switches.h
+@@ -44,7 +44,7 @@ MEDIA_EXPORT extern const char kDisableBackgroundMediaSuspend[];
+ MEDIA_EXPORT extern const char kReportVp9AsAnUnsupportedMimeType[];
+
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FREEBSD) || \
+- BUILDFLAG(IS_SOLARIS)
++ BUILDFLAG(IS_SOLARIS) || BUILDFLAG(IS_NETBSD)
+ MEDIA_EXPORT extern const char kAlsaInputDevice[];
+ MEDIA_EXPORT extern const char kAlsaOutputDevice[];
+ #endif
+diff --git a/media/capture/video/linux/fake_v4l2_impl.h b/media/capture/video/linux/fake_v4l2_impl.h
+index 8dc249424d..4adfa0cfb8 100644
+--- a/media/capture/video/linux/fake_v4l2_impl.h
++++ b/media/capture/video/linux/fake_v4l2_impl.h
+@@ -9,7 +9,7 @@
+ #include <string>
+
+ #include "build/build_config.h"
+-#if BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
+ #include <sys/videoio.h>
+ typedef __uint32_t __u32;
+ #else
+diff --git a/media/capture/video/linux/v4l2_capture_delegate.h b/media/capture/video/linux/v4l2_capture_delegate.h
+index fd69cf9115..c15cc9e654 100644
+--- a/media/capture/video/linux/v4l2_capture_delegate.h
++++ b/media/capture/video/linux/v4l2_capture_delegate.h
+@@ -23,7 +23,7 @@
+ #include "media/capture/video/linux/v4l2_capture_device_impl.h"
+ #include "media/capture/video/video_capture_device.h"
+
+-#if BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_OPENBSD) || defined(OS_NETBSD)
+ #include <sys/videoio.h>
+ #else
+ #include <linux/videodev2.h>
+diff --git a/media/capture/video/linux/video_capture_device_factory_v4l2.cc b/media/capture/video/linux/video_capture_device_factory_v4l2.cc
+index 1f09b300c2..d58d587c88 100644
+--- a/media/capture/video/linux/video_capture_device_factory_v4l2.cc
++++ b/media/capture/video/linux/video_capture_device_factory_v4l2.cc
+@@ -23,7 +23,7 @@
+ #include "media/capture/video/linux/scoped_v4l2_device_fd.h"
+ #include "media/capture/video/linux/video_capture_device_linux.h"
+
+-#if BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
+ #include <sys/videoio.h>
+ #else
+ #include <linux/videodev2.h>
+@@ -38,7 +38,7 @@ bool CompareCaptureDevices(const VideoCaptureDeviceInfo& a,
+ return a.descriptor < b.descriptor;
+ }
+
+-#if !BUILDFLAG(IS_OPENBSD)
++#if !BUILDFLAG(IS_OPENBSD) && !BUILDFLAG(IS_NETBSD)
+ // USB VID and PID are both 4 bytes long.
+ const size_t kVidPidSize = 4;
+ const size_t kMaxInterfaceNameSize = 256;
+@@ -77,7 +77,7 @@ class DevVideoFilePathsDeviceProvider
+ : public VideoCaptureDeviceFactoryV4L2::DeviceProvider {
+ public:
+ void GetDeviceIds(std::vector<std::string>* target_container) override {
+-#if BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
+ target_container->emplace_back("/dev/video");
+ #else
+ const base::FilePath path("/dev/");
+@@ -91,7 +91,7 @@ class DevVideoFilePathsDeviceProvider
+ }
+
+ std::string GetDeviceModelId(const std::string& device_id) override {
+-#if BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
+ return std::string();
+ #else
+ const std::string file_name = ExtractFileNameFromDeviceId(device_id);
+@@ -114,7 +114,7 @@ class DevVideoFilePathsDeviceProvider
+ }
+
+ std::string GetDeviceDisplayName(const std::string& device_id) override {
+-#if BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
+ return std::string();
+ #else
+ const std::string file_name = ExtractFileNameFromDeviceId(device_id);
+diff --git a/media/capture/video/linux/video_capture_device_linux.cc b/media/capture/video/linux/video_capture_device_linux.cc
+index 41ab4b5346..c534eb8cc1 100644
+--- a/media/capture/video/linux/video_capture_device_linux.cc
++++ b/media/capture/video/linux/video_capture_device_linux.cc
+@@ -15,7 +15,7 @@
+ #include "build/build_config.h"
+ #include "media/capture/video/linux/v4l2_capture_delegate.h"
+
+-#if BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
+ #include <sys/videoio.h>
+ #else
+ #include <linux/videodev2.h>
+diff --git a/media/ffmpeg/scripts/build_ffmpeg.py b/media/ffmpeg/scripts/build_ffmpeg.py
+index 0b0798ab5c..ae7315c46b 100755
+--- a/media/ffmpeg/scripts/build_ffmpeg.py
++++ b/media/ffmpeg/scripts/build_ffmpeg.py
+@@ -45,6 +45,7 @@ ARCH_MAP = {
+ 'linux': ['ia32', 'x64', 'noasm-x64', 'arm', 'arm-neon', 'arm64'],
+ 'openbsd': ['x64', 'arm64', 'ia32'],
+ 'freebsd': ['x64', 'arm64', 'ia32'],
++ 'netbsd': ['x64', 'arm64', 'ia32'],
+ 'mac': ['x64', 'arm64'],
+ 'win': ['ia32', 'x64', 'arm64'],
+ }
+@@ -124,7 +125,7 @@ def PrintAndCheckCall(argv, *args, **kwargs):
+
+
+ def GetDsoName(target_os, dso_name, dso_version):
+- if target_os in ('linux', 'linux-noasm', 'android', 'openbsd', 'freebsd'):
++ if target_os in ('linux', 'linux-noasm', 'android', 'openbsd', 'freebsd', 'netbsd'):
+ return 'lib%s.so.%s' % (dso_name, dso_version)
+ elif target_os == 'mac':
+ return 'lib%s.%s.dylib' % (dso_name, dso_version)
+@@ -477,7 +478,7 @@ def BuildFFmpeg(target_os, target_arch, host_os, host_arch, parallel_jobs,
+ # removing <sys/sysctl.h> soon, so this is needed to silence a deprecation
+ # #warning which will be converted to an error via -Werror.
+ # There is also no prctl.h
+- if target_os in ['linux', 'linux-noasm', 'openbsd', 'freebsd']:
++ if target_os in ['linux', 'linux-noasm', 'openbsd', 'freebsd', 'netbsd']:
+ pre_make_rewrites += [
+ (r'(#define HAVE_SYSCTL [01])',
+ r'#define HAVE_SYSCTL 0 /* \1 -- forced to 0 for Fuchsia */'),
+@@ -600,7 +601,7 @@ def main(argv):
+ configure_args = args[2:]
+
+ if target_os not in ('android', 'linux', 'linux-noasm', 'mac', 'win',
+- 'all', 'openbsd', 'freebsd'):
++ 'all', 'openbsd', 'freebsd', 'netbsd'):
+ parser.print_help()
+ return 1
+
+@@ -714,7 +715,7 @@ def ConfigureAndBuild(target_arch, target_os, host_os, host_arch,
+ '--optflags="-O2"',
+ ])
+
+- if target_os in ('linux', 'linux-noasm', 'android', 'openbsd', 'freebsd'):
++ if target_os in ('linux', 'linux-noasm', 'android', 'openbsd', 'freebsd', 'netbsd'):
+ if target_arch == 'x64':
+ if target_os == 'android':
+ configure_flags['Common'].extend([
+@@ -920,7 +921,7 @@ def ConfigureAndBuild(target_arch, target_os, host_os, host_arch,
+ # typically be the system one, so explicitly configure use of Clang's
+ # ld.lld, to ensure that things like cross-compilation and LTO work.
+ # This does not work for ia32 and is always used on mac.
+- if target_arch != 'ia32' and target_os != 'mac':
++ if target_arch != 'ia32' and target_os != 'mac' and target_os != 'netbsd':
+ configure_flags['Common'].append('--extra-ldflags=-fuse-ld=lld')
+
+ # Should be run on Mac, unless we're cross-compiling on Linux.
+diff --git a/media/ffmpeg/scripts/robo_lib/config.py b/media/ffmpeg/scripts/robo_lib/config.py
+index 84f5b3d38f..65b0f75fbe 100644
+--- a/media/ffmpeg/scripts/robo_lib/config.py
++++ b/media/ffmpeg/scripts/robo_lib/config.py
+@@ -221,6 +221,8 @@ class RoboConfiguration:
+ self._host_operating_system = "openbsd"
+ elif platform.system() == "FreeBSD":
+ self._host_operating_system = "freebsd"
++ elif platform.system() == "NetBSD":
++ self._host_operating_system = "netbsd"
+ else:
+ raise ValueError(f"Unsupported platform: {platform.system()}")
+
+diff --git a/media/mojo/mojom/stable/BUILD.gn b/media/mojo/mojom/stable/BUILD.gn
+index 8c3d3bb7f6..f27c311fac 100644
+--- a/media/mojo/mojom/stable/BUILD.gn
++++ b/media/mojo/mojom/stable/BUILD.gn
+@@ -196,7 +196,7 @@ source_set("unit_tests") {
+ } else if (use_v4l2_codec) {
+ deps += [ "//media/gpu/v4l2:v4l2_status" ]
+ }
+- if (is_linux || is_chromeos) {
++ if ((is_linux || is_chromeos) && !is_bsd) {
+ sources += [
+ "mojom_traits_test_util.cc",
+ "mojom_traits_test_util.h",
+diff --git a/mojo/public/cpp/platform/socket_utils_posix.cc b/mojo/public/cpp/platform/socket_utils_posix.cc
+index b34d71ddd1..e299ce963b 100644
+--- a/mojo/public/cpp/platform/socket_utils_posix.cc
++++ b/mojo/public/cpp/platform/socket_utils_posix.cc
+@@ -29,7 +29,7 @@ bool IsRecoverableError() {
+ }
+
+ bool GetPeerEuid(base::PlatformFile fd, uid_t* peer_euid) {
+-#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_FREEBSD)
++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
+ uid_t socket_euid;
+ gid_t socket_gid;
+ if (getpeereid(fd, &socket_euid, &socket_gid) < 0) {
+diff --git a/mojo/public/tools/bindings/mojom.gni b/mojo/public/tools/bindings/mojom.gni
+index dc2adf9719..cd889833a2 100644
+--- a/mojo/public/tools/bindings/mojom.gni
++++ b/mojo/public/tools/bindings/mojom.gni
+@@ -767,6 +767,11 @@ template("mojom") {
+ enabled_features += [ "is_bsd" ]
+ }
+
++ if (is_netbsd) {
++ enabled_features += [ "is_netbsd" ]
++ enabled_features += [ "is_bsd" ]
++ }
++
+ if (is_freebsd) {
+ enabled_features += [ "is_freebsd" ]
+ enabled_features += [ "is_bsd" ]
+diff --git a/net/BUILD.gn b/net/BUILD.gn
+index 1e683a13cf..d142899820 100644
+--- a/net/BUILD.gn
++++ b/net/BUILD.gn
+@@ -2044,7 +2044,7 @@ static_library("test_support") {
+ "url_request/url_request_test_util.h",
+ ]
+
+- if (is_linux || is_chromeos || is_android) {
++ if ((is_linux || is_chromeos || is_android) && !is_bsd) {
+ sources += [
+ "base/address_tracker_linux_test_util.cc",
+ "base/address_tracker_linux_test_util.h",
+@@ -2866,7 +2866,7 @@ test("net_unittests") {
+ ]
+ }
+
+- if (is_linux) {
++ if (is_linux && !is_bsd) {
+ sources += [
+ "base/network_change_notifier_linux_unittest.cc",
+ "proxy_resolution/proxy_config_service_linux_unittest.cc",
+diff --git a/net/base/network_change_notifier.cc b/net/base/network_change_notifier.cc
+index d6036b7b65..3881ddde8c 100644
+--- a/net/base/network_change_notifier.cc
++++ b/net/base/network_change_notifier.cc
+@@ -528,7 +528,7 @@ const char* NetworkChangeNotifier::ConnectionTypeToString(
+ return kConnectionTypeNames[type];
+ }
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // static
+ AddressMapOwnerLinux* NetworkChangeNotifier::GetAddressMapOwner() {
+ return g_network_change_notifier
+@@ -882,7 +882,7 @@ NetworkChangeNotifier::NetworkChangeNotifier(
+ }
+ }
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ AddressMapOwnerLinux* NetworkChangeNotifier::GetAddressMapOwnerInternal() {
+ return nullptr;
+ }
+diff --git a/net/base/network_change_notifier.h b/net/base/network_change_notifier.h
+index 928f584fb6..eb8a01f17b 100644
+--- a/net/base/network_change_notifier.h
++++ b/net/base/network_change_notifier.h
+@@ -18,7 +18,7 @@
+ #include "net/base/net_export.h"
+ #include "net/base/network_handle.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "net/base/address_map_linux.h"
+ #endif
+
+@@ -459,7 +459,7 @@ class NET_EXPORT NetworkChangeNotifier {
+ // packets sent lazily.
+ static bool IsDefaultNetworkActive();
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Returns the AddressTrackerLinux if present.
+ static AddressMapOwnerLinux* GetAddressMapOwner();
+ #endif
+@@ -629,7 +629,7 @@ class NET_EXPORT NetworkChangeNotifier {
+ SystemDnsConfigChangeNotifier* system_dns_config_notifier = nullptr,
+ bool omit_observers_in_constructor_for_testing = false);
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Returns the AddressMapOwnerLinux if present.
+ virtual AddressMapOwnerLinux* GetAddressMapOwnerInternal();
+ #endif
+diff --git a/net/dns/BUILD.gn b/net/dns/BUILD.gn
+index b2a41d7f2e..151a6379ac 100644
+--- a/net/dns/BUILD.gn
++++ b/net/dns/BUILD.gn
+@@ -171,7 +171,10 @@ source_set("dns") {
+ ]
+ }
+
+- deps = [ "//net:net_deps" ]
++ deps = [
++ "//net:net_deps",
++ "///services/screen_ai/buildflags",
++ ]
+
+ public_deps = [
+ ":dns_client",
+diff --git a/net/dns/dns_reloader.cc b/net/dns/dns_reloader.cc
+index 70796560e0..3bd1c088d4 100644
+--- a/net/dns/dns_reloader.cc
++++ b/net/dns/dns_reloader.cc
+@@ -32,7 +32,7 @@
+ // an old musl bug that was fixed by musl c8fdcfe5, but Fuchsia's SDK doesn't
+ // have that change.
+ #if defined(__RES) && __RES >= 19991006 && !BUILDFLAG(IS_APPLE) && \
+- !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_FUCHSIA)
++ !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_FUCHSIA) && !BUILDFLAG(IS_NETBSD)
+ // We define this so we don't need to restate the complex condition here twice
+ // below - it would be easy for the copies below to get out of sync.
+ #define USE_RES_NINIT
+diff --git a/net/dns/public/resolv_reader.cc b/net/dns/public/resolv_reader.cc
+index e393c4ca02..a39114eee9 100644
+--- a/net/dns/public/resolv_reader.cc
++++ b/net/dns/public/resolv_reader.cc
+@@ -40,7 +40,7 @@ std::optional<std::vector<IPEndPoint>> GetNameservers(
+ if (!(res.options & RES_INIT))
+ return std::nullopt;
+
+-#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FREEBSD)
++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
+ union res_sockaddr_union addresses[MAXNS];
+ int nscount = res_getservers(const_cast<res_state>(&res), addresses, MAXNS);
+ DCHECK_GE(nscount, 0);
+diff --git a/net/dns/public/scoped_res_state.cc b/net/dns/public/scoped_res_state.cc
+index 2743697bf6..0220fd73ad 100644
+--- a/net/dns/public/scoped_res_state.cc
++++ b/net/dns/public/scoped_res_state.cc
+@@ -28,7 +28,7 @@ ScopedResState::~ScopedResState() {
+ #if !BUILDFLAG(IS_OPENBSD) && !BUILDFLAG(IS_FUCHSIA)
+
+ // Prefer res_ndestroy where available.
+-#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FREEBSD)
++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
+ res_ndestroy(&res_);
+ #else
+ res_nclose(&res_);
+diff --git a/net/socket/udp_socket_posix.cc b/net/socket/udp_socket_posix.cc
+index 4a4b687466..791f5780e1 100644
+--- a/net/socket/udp_socket_posix.cc
++++ b/net/socket/udp_socket_posix.cc
+@@ -78,6 +78,32 @@ constexpr int kBindRetries = 10;
+ constexpr int kPortStart = 1024;
+ constexpr int kPortEnd = 65535;
+
++#if BUILDFLAG(IS_NETBSD)
++int GetIPv4AddressFromIndex(int socket, uint32_t index, uint32_t* address) {
++ if (!index) {
++ *address = htonl(INADDR_ANY);
++ return OK;
++ }
++
++ sockaddr_in* result = nullptr;
++
++ ifreq ifr;
++ ifr.ifr_addr.sa_family = AF_INET;
++ if (!if_indextoname(index, ifr.ifr_name))
++ return MapSystemError(errno);
++ int rv = ioctl(socket, SIOCGIFADDR, &ifr);
++ if (rv == -1)
++ return MapSystemError(errno);
++ result = reinterpret_cast<sockaddr_in*>(&ifr.ifr_addr);
++
++ if (!result)
++ return ERR_ADDRESS_INVALID;
++
++ *address = result->sin_addr.s_addr;
++ return OK;
++}
++#endif
++
+ int GetSocketFDHash(int fd) {
+ return fd ^ 1595649551;
+ }
+@@ -853,9 +879,17 @@ int UDPSocketPosix::SetMulticastOptions() {
+ if (multicast_interface_ != 0) {
+ switch (addr_family_) {
+ case AF_INET: {
++#if BUILDFLAG(IS_NETBSD)
++ ip_mreq mreq = {};
++ int error = GetIPv4AddressFromIndex(socket_, multicast_interface_,
++ &mreq.imr_interface.s_addr);
++ if (error != OK)
++ return error;
++#else
+ ip_mreqn mreq = {};
+ mreq.imr_ifindex = multicast_interface_;
+ mreq.imr_address.s_addr = htonl(INADDR_ANY);
++#endif
+ int rv = setsockopt(socket_, IPPROTO_IP, IP_MULTICAST_IF,
+ reinterpret_cast<const char*>(&mreq), sizeof(mreq));
+ if (rv)
+@@ -918,9 +952,17 @@ int UDPSocketPosix::JoinGroup(const IPAddress& group_address) const {
+ case IPAddress::kIPv4AddressSize: {
+ if (addr_family_ != AF_INET)
+ return ERR_ADDRESS_INVALID;
++#if BUILDFLAG(IS_NETBSD)
++ ip_mreq mreq = {};
++ int error = GetIPv4AddressFromIndex(socket_, multicast_interface_,
++ &mreq.imr_interface.s_addr);
++ if (error != OK)
++ return error;
++#else
+ ip_mreqn mreq = {};
+ mreq.imr_ifindex = multicast_interface_;
+ mreq.imr_address.s_addr = htonl(INADDR_ANY);
++#endif
+ memcpy(&mreq.imr_multiaddr, group_address.bytes().data(),
+ IPAddress::kIPv4AddressSize);
+ int rv = setsockopt(socket_, IPPROTO_IP, IP_ADD_MEMBERSHIP,
+@@ -958,9 +1000,17 @@ int UDPSocketPosix::LeaveGroup(const IPAddress& group_address) const {
+ case IPAddress::kIPv4AddressSize: {
+ if (addr_family_ != AF_INET)
+ return ERR_ADDRESS_INVALID;
++#if BUILDFLAG(IS_NETBSD)
++ ip_mreq mreq = {};
++ int error = GetIPv4AddressFromIndex(socket_, multicast_interface_,
++ &mreq.imr_interface.s_addr);
++ if (error != OK)
++ return error;
++#else
+ ip_mreqn mreq = {};
+ mreq.imr_ifindex = multicast_interface_;
+ mreq.imr_address.s_addr = INADDR_ANY;
++#endif
+ memcpy(&mreq.imr_multiaddr, group_address.bytes().data(),
+ IPAddress::kIPv4AddressSize);
+ int rv = setsockopt(socket_, IPPROTO_IP, IP_DROP_MEMBERSHIP,
+diff --git a/ppapi/tests/test_utils.h b/ppapi/tests/test_utils.h
+index 52a0c81bef..ad5ccb26a6 100644
+--- a/ppapi/tests/test_utils.h
++++ b/ppapi/tests/test_utils.h
+@@ -314,6 +314,8 @@ do { \
+ #define PPAPI_OS_FREEBSD 1
+ #elif defined(__OpenBSD__)
+ #define PPAPI_OS_OPENBSD 1
++#elif defined(__NetBSD__)
++#define PPAPI_OS_NETBSD 1
+ #elif defined(__sun)
+ #define PPAPI_OS_SOLARIS 1
+ #else
+@@ -322,7 +324,8 @@ do { \
+
+ /* These are used to determine POSIX-like implementations vs Windows. */
+ #if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || \
+- defined(__OpenBSD__) || defined(__sun) || defined(__native_client__)
++ defined(__OpenBSD__) || defined(__sun) || defined(__native_client__) \
++ defined(__NetBSD__)
+ #define PPAPI_POSIX 1
+ #endif
+
+diff --git a/sandbox/policy/BUILD.gn b/sandbox/policy/BUILD.gn
+index 9c3c7a310e..d395b92e41 100644
+--- a/sandbox/policy/BUILD.gn
++++ b/sandbox/policy/BUILD.gn
+@@ -133,6 +133,17 @@ component("policy") {
+ ]
+ libs = [ "util" ]
+ }
++ if (is_netbsd) {
++ sources += [
++ "netbsd/sandbox_netbsd.cc",
++ "netbsd/sandbox_netbsd.h",
++ ]
++ deps += [
++ "//sandbox:sandbox_buildflags",
++ "//ui/gfx/x",
++ ]
++ libs = [ "util" ]
++ }
+ if (is_freebsd) {
+ sources += [
+ "freebsd/sandbox_freebsd.cc",
+diff --git a/sandbox/policy/mojom/sandbox.mojom b/sandbox/policy/mojom/sandbox.mojom
+index 374f6c0cbd..cbee653035 100644
+--- a/sandbox/policy/mojom/sandbox.mojom
++++ b/sandbox/policy/mojom/sandbox.mojom
+@@ -80,6 +80,9 @@ enum Sandbox {
+ [EnableIf=is_openbsd]
+ kVideoCapture,
+
++ [EnableIf=is_netbsd]
++ kVideoCapture,
++
+ [EnableIf=is_freebsd]
+ kVideoCapture,
+
+diff --git a/sandbox/policy/netbsd/sandbox_netbsd.cc b/sandbox/policy/netbsd/sandbox_netbsd.cc
+new file mode 100644
+index 0000000000..4f244ec59c
+--- /dev/null
++++ b/sandbox/policy/netbsd/sandbox_netbsd.cc
+@@ -0,0 +1,245 @@
++// Copyright (c) 2012 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "sandbox/policy/netbsd/sandbox_netbsd.h"
++
++#include <dirent.h>
++#include <fcntl.h>
++#include <stdint.h>
++#include <sys/resource.h>
++#include <sys/stat.h>
++#include <sys/time.h>
++#include <sys/types.h>
++#include <unistd.h>
++
++#include <limits>
++#include <memory>
++#include <string>
++#include <vector>
++
++#include "base/command_line.h"
++#include "base/debug/stack_trace.h"
++#include "base/feature_list.h"
++#include "base/files/file_path.h"
++#include "base/files/file_util.h"
++#include "base/files/scoped_file.h"
++#include "base/logging.h"
++#include "base/memory/singleton.h"
++#include "base/path_service.h"
++#include "base/posix/eintr_wrapper.h"
++#include "base/strings/string_number_conversions.h"
++#include "base/system/sys_info.h"
++#include "base/threading/thread.h"
++#include "base/time/time.h"
++#include "build/build_config.h"
++#include "crypto/crypto_buildflags.h"
++#include "ppapi/buildflags/buildflags.h"
++#include "sandbox/constants.h"
++#include "sandbox/linux/services/credentials.h"
++#include "sandbox/linux/services/namespace_sandbox.h"
++#include "sandbox/linux/services/proc_util.h"
++#include "sandbox/linux/services/resource_limits.h"
++#include "sandbox/linux/services/thread_helpers.h"
++#include "sandbox/linux/syscall_broker/broker_command.h"
++#include "sandbox/linux/syscall_broker/broker_process.h"
++#include "sandbox/policy/sandbox.h"
++#include "sandbox/policy/sandbox_type.h"
++#include "sandbox/policy/mojom/sandbox.mojom.h"
++#include "sandbox/policy/switches.h"
++#include "sandbox/sandbox_buildflags.h"
++
++#if BUILDFLAG(USING_SANITIZER)
++#include <sanitizer/common_interface_defs.h>
++#endif
++
++#if BUILDFLAG(USE_NSS_CERTS)
++#include "crypto/nss_util.h"
++#endif
++
++#include "third_party/boringssl/src/include/openssl/crypto.h"
++
++#include "ui/gfx/font_util.h"
++
++namespace sandbox {
++namespace policy {
++
++SandboxLinux::SandboxLinux()
++ : sandbox_status_flags_(kInvalid),
++ pre_initialized_(false),
++ initialize_sandbox_ran_(false),
++ broker_process_(nullptr) {
++}
++
++SandboxLinux::~SandboxLinux() {
++ if (pre_initialized_) {
++ CHECK(initialize_sandbox_ran_);
++ }
++}
++
++SandboxLinux* SandboxLinux::GetInstance() {
++ SandboxLinux* instance = base::Singleton<SandboxLinux>::get();
++ CHECK(instance);
++ return instance;
++}
++
++void SandboxLinux::StopThread(base::Thread* thread) {
++ DCHECK(thread);
++ thread->Stop();
++}
++
++void SandboxLinux::PreinitializeSandbox(sandbox::mojom::Sandbox sandbox_type) {
++ CHECK(!pre_initialized_);
++#if BUILDFLAG(USING_SANITIZER)
++ // Sanitizers need to open some resources before the sandbox is enabled.
++ // This should not fork, not launch threads, not open a directory.
++ __sanitizer_sandbox_on_notify(sanitizer_args());
++ sanitizer_args_.reset();
++#endif
++ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
++ const std::string process_type =
++ command_line->GetSwitchValueASCII(switches::kProcessType);
++
++ base::SysInfo::AmountOfPhysicalMemory();
++ base::SysInfo::NumberOfProcessors();
++ base::SysInfo::CPUModelName();
++
++ switch (sandbox_type) {
++ case sandbox::mojom::Sandbox::kNoSandbox:
++ {
++#if BUILDFLAG(USE_NSS_CERTS)
++ // The main process has to initialize the ~/.pki dir which won't work
++ // after unveil(2).
++ crypto::EnsureNSSInit();
++#endif
++ CRYPTO_pre_sandbox_init();
++
++ base::FilePath cache_directory, local_directory;
++
++ base::PathService::Get(base::DIR_CACHE, &cache_directory);
++ base::PathService::Get(base::DIR_HOME, &local_directory);
++
++ cache_directory = cache_directory.AppendASCII("chromium");
++ local_directory = local_directory.AppendASCII(".local").AppendASCII("share").AppendASCII("applications");
++
++ if (!base::CreateDirectory(cache_directory)) {
++ LOG(ERROR) << "Failed to create " << cache_directory.value() << " directory.";
++ }
++
++ if (!base::CreateDirectory(local_directory)) {
++ LOG(ERROR) << "Failed to create " << local_directory.value() << " directory.";
++ }
++
++ break;
++ }
++ case sandbox::mojom::Sandbox::kRenderer:
++ gfx::InitializeFonts();
++ break;
++ default:
++ break;
++ }
++
++ pre_initialized_ = true;
++}
++
++bool SandboxLinux::InitializeSandbox(sandbox::mojom::Sandbox sandbox_type,
++ SandboxLinux::PreSandboxHook hook,
++ const Options& options) {
++ DCHECK(!initialize_sandbox_ran_);
++ initialize_sandbox_ran_ = true;
++
++ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
++ const std::string process_type =
++ command_line->GetSwitchValueASCII(switches::kProcessType);
++
++ if (command_line->HasSwitch(switches::kNoSandbox))
++ return true;
++
++ VLOG(1) << "SandboxLinux::InitializeSandbox: process_type="
++ << process_type << " sandbox_type=" << GetSandboxTypeInEnglish(sandbox_type);
++
++ // Only one thread is running, pre-initialize if not already done.
++ if (!pre_initialized_)
++ PreinitializeSandbox(sandbox_type);
++
++ // Attempt to limit the future size of the address space of the process.
++ int error = 0;
++ const bool limited_as = LimitAddressSpace(&error);
++ if (error) {
++ // Restore errno. Internally to |LimitAddressSpace|, the errno due to
++ // setrlimit may be lost.
++ errno = error;
++ PCHECK(limited_as);
++ }
++
++ if (hook)
++ CHECK(std::move(hook).Run(options));
++
++ return true;
++}
++
++bool SandboxLinux::LimitAddressSpace(int* error) {
++#if !defined(ADDRESS_SANITIZER) && !defined(MEMORY_SANITIZER) && \
++ !defined(THREAD_SANITIZER) && !defined(LEAK_SANITIZER)
++ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
++ if (SandboxTypeFromCommandLine(*command_line) == sandbox::mojom::Sandbox::kNoSandbox) {
++ return false;
++ }
++
++ // Unfortunately, it does not appear possible to set RLIMIT_AS such that it
++ // will both (a) be high enough to support V8's and WebAssembly's address
++ // space requirements while also (b) being low enough to mitigate exploits
++ // using integer overflows that require large allocations, heap spray, or
++ // other memory-hungry attack modes.
++
++ *error = sandbox::ResourceLimits::Lower(
++ RLIMIT_DATA, static_cast<rlim_t>(sandbox::kDataSizeLimit));
++
++ // Cache the resource limit before turning on the sandbox.
++ base::SysInfo::AmountOfVirtualMemory();
++ base::SysInfo::MaxSharedMemorySize();
++
++ return *error == 0;
++#else
++ base::SysInfo::AmountOfVirtualMemory();
++ return false;
++#endif // !defined(ADDRESS_SANITIZER) && !defined(MEMORY_SANITIZER) &&
++ // !defined(THREAD_SANITIZER) && !defined(LEAK_SANITIZER)
++}
++
++// static
++std::string SandboxLinux::GetSandboxTypeInEnglish(sandbox::mojom::Sandbox sandbox_type) {
++ switch (sandbox_type) {
++ case sandbox::mojom::Sandbox::kNoSandbox:
++ return "Unsandboxed";
++ case sandbox::mojom::Sandbox::kRenderer:
++ return "Renderer";
++ case sandbox::mojom::Sandbox::kUtility:
++ return "Utility";
++ case sandbox::mojom::Sandbox::kGpu:
++ return "GPU";
++#if BUILDFLAG(ENABLE_PPAPI)
++ case sandbox::mojom::Sandbox::kPpapi:
++ return "PPAPI";
++#endif
++ case sandbox::mojom::Sandbox::kNetwork:
++ return "Network";
++ case sandbox::mojom::Sandbox::kCdm:
++ return "CDM";
++ case sandbox::mojom::Sandbox::kPrintCompositor:
++ return "Print Compositor";
++ case sandbox::mojom::Sandbox::kAudio:
++ return "Audio";
++ case sandbox::mojom::Sandbox::kSpeechRecognition:
++ return "Speech Recognition";
++ case sandbox::mojom::Sandbox::kService:
++ return "Service";
++ case sandbox::mojom::Sandbox::kVideoCapture:
++ return "Video Capture";
++ default:
++ return "Unknown";
++ }
++}
++
++} // namespace policy
++} // namespace sandbox
+diff --git a/sandbox/policy/netbsd/sandbox_netbsd.h b/sandbox/policy/netbsd/sandbox_netbsd.h
+new file mode 100644
+index 0000000000..6d711b24e3
+--- /dev/null
++++ b/sandbox/policy/netbsd/sandbox_netbsd.h
+@@ -0,0 +1,278 @@
++// Copyright (c) 2012 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++#ifndef SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_
++#define SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_
++
++#include <memory>
++#include <string>
++#include <vector>
++
++#include "base/logging.h"
++#include "base/posix/global_descriptors.h"
++#include "sandbox/policy/export.h"
++#include "sandbox/policy/linux/sandbox_seccomp_bpf_linux.h"
++#include "sandbox/policy/mojom/sandbox.mojom.h"
++#include "base/sanitizer_buildflags.h"
++
++#if BUILDFLAG(USING_SANITIZER)
++#include <sanitizer/common_interface_defs.h>
++#endif
++
++namespace base {
++template <typename T>
++struct DefaultSingletonTraits;
++class Thread;
++} // namespace base
++
++namespace sandbox {
++namespace syscall_broker {
++class BrokerProcess;
++} // namespace syscall_broker
++} // namespace sandbox
++
++namespace sandbox {
++namespace policy {
++
++// A singleton class to represent and change our sandboxing state for the
++// three main Linux sandboxes.
++// The sandboxing model allows using two layers of sandboxing. The first layer
++// can be implemented either with unprivileged namespaces or with the setuid
++// sandbox. This class provides a way to engage the namespace sandbox, but does
++// not deal with the legacy setuid sandbox directly.
++// The second layer is mainly based on seccomp-bpf and is engaged with
++// InitializeSandbox(). InitializeSandbox() is also responsible for "sealing"
++// the first layer of sandboxing. That is, InitializeSandbox must always be
++// called to have any meaningful sandboxing at all.
++class SANDBOX_POLICY_EXPORT SandboxLinux {
++ public:
++ // This is a list of sandbox IPC methods which the renderer may send to the
++ // sandbox host. See
++ // https://chromium.googlesource.com/chromium/src/+/master/docs/linux_sandbox_ipc.md
++ // This isn't the full list, values < 32 are reserved for methods called from
++ // Skia, and values < 64 are reserved for libc_interceptor.cc.
++ enum LinuxSandboxIPCMethods {
++ DEPRECATED_METHOD_GET_FALLBACK_FONT_FOR_CHAR = 64,
++ DEPRECATED_METHOD_GET_CHILD_WITH_INODE,
++ DEPRECATED_METHOD_GET_STYLE_FOR_STRIKE,
++ METHOD_MAKE_SHARED_MEMORY_SEGMENT,
++ DEPRECATED_METHOD_MATCH_WITH_FALLBACK,
++ };
++
++ // These form a bitmask which describes the conditions of the Linux sandbox.
++ // Note: this doesn't strictly give you the current status, it states
++ // what will be enabled when the relevant processes are initialized.
++ enum Status {
++ // SUID sandbox active.
++ kSUID = 1 << 0,
++
++ // Sandbox is using a new PID namespace.
++ kPIDNS = 1 << 1,
++
++ // Sandbox is using a new network namespace.
++ kNetNS = 1 << 2,
++
++ // seccomp-bpf sandbox active.
++ kSeccompBPF = 1 << 3,
++
++ // The Yama LSM module is present and enforcing.
++ kYama = 1 << 4,
++
++ // seccomp-bpf sandbox is active and the kernel supports TSYNC.
++ kSeccompTSYNC = 1 << 5,
++
++ // User namespace sandbox active.
++ kUserNS = 1 << 6,
++
++ // A flag that denotes an invalid sandbox status.
++ kInvalid = 1 << 31,
++ };
++
++ // SandboxLinux Options are a superset of SandboxSecompBPF Options.
++ struct Options : public SandboxSeccompBPF::Options {
++ // When running with a zygote, the namespace sandbox will have already
++ // been engaged prior to initializing SandboxLinux itself, and need not
++ // be done so again. Set to true to indicate that there isn't a zygote
++ // for this process and the step is to be performed here explicitly.
++ bool engage_namespace_sandbox = false;
++
++ // Allow starting the sandbox with multiple threads already running. This
++ // will enable TSYNC for seccomp-BPF, which syncs the seccomp-BPF policy
++ // across all running threads.
++ bool allow_threads_during_sandbox_init = false;
++
++ // Enables the CHECK for open directories. The open directory check is only
++ // useful for the chroot jail (from the semantic layer of the sandbox), and
++ // can safely be disabled if we are only enabling the seccomp-BPF layer.
++ bool check_for_open_directories = true;
++ };
++
++ // Callers can provide this hook to run code right before the policy
++ // is passed to the BPF compiler and the sandbox is engaged. If
++ // pre_sandbox_hook() returns true, the sandbox will be engaged
++ // afterwards, otherwise the process is terminated.
++ using PreSandboxHook = base::OnceCallback<bool(Options)>;
++
++ // Get our singleton instance.
++ static SandboxLinux* GetInstance();
++
++ SandboxLinux(const SandboxLinux&) = delete;
++ SandboxLinux& operator=(const SandboxLinux&) = delete;
++
++ bool SetPledge(const char *pstring, const char *ppath);
++ bool SetUnveil(const std::string process_type, sandbox::mojom::Sandbox sandbox_type);
++
++ // Do some initialization that can only be done before any of the sandboxes
++ // are enabled. If using the setuid sandbox, this should be called manually
++ // before the setuid sandbox is engaged.
++ // Security: When this runs, it is imperative that either InitializeSandbox()
++ // runs as well or that all file descriptors returned in
++ // GetFileDescriptorsToClose() get closed.
++ // Otherwise file descriptors that bypass the security of the setuid sandbox
++ // would be kept open. One must be particularly careful if a process performs
++ // a fork().
++ void PreinitializeSandbox(sandbox::mojom::Sandbox sandbox_type);
++
++ // Check that the current process is the init process of a new PID
++ // namespace and then proceed to drop access to the file system by using
++ // a new unprivileged namespace. This is a layer-1 sandbox.
++ // In order for this sandbox to be effective, it must be "sealed" by calling
++ // InitializeSandbox().
++ void EngageNamespaceSandbox(bool from_zygote);
++
++ // Return a list of file descriptors to close if PreinitializeSandbox() ran
++ // but InitializeSandbox() won't. Avoid using.
++ // TODO(jln): get rid of this hack.
++ std::vector<int> GetFileDescriptorsToClose();
++
++ // Seal an eventual layer-1 sandbox and initialize the layer-2 sandbox with
++ // an adequate policy depending on the process type and command line
++ // arguments.
++ // Currently the layer-2 sandbox is composed of seccomp-bpf and address space
++ // limitations.
++ // This function should only be called without any thread running.
++ bool InitializeSandbox(sandbox::mojom::Sandbox sandbox_type,
++ PreSandboxHook hook,
++ const Options& options);
++
++ // Stop |thread| in a way that can be trusted by the sandbox.
++ void StopThread(base::Thread* thread);
++
++ // Returns the status of the renderer, worker and ppapi sandbox. Can only
++ // be queried after going through PreinitializeSandbox(). This is a bitmask
++ // and uses the constants defined in "enum Status" above. Since the
++ // status needs to be provided before the sandboxes are actually started,
++ // this returns what will actually happen once InitializeSandbox()
++ // is called from inside these processes.
++ int GetStatus();
++
++ static std::string GetSandboxTypeInEnglish(sandbox::mojom::Sandbox sandbox_type);
++
++ // Returns true if the current process is single-threaded or if the number
++ // of threads cannot be determined.
++ bool IsSingleThreaded() const;
++
++ // Returns true if we started Seccomp BPF.
++ bool seccomp_bpf_started() const;
++
++ // Check the policy and eventually start the seccomp-bpf sandbox. This should
++ // never be called with threads started. If we detect that threads have
++ // started we will crash.
++ bool StartSeccompBPF(sandbox::mojom::Sandbox sandbox_type,
++ PreSandboxHook hook,
++ const Options& options);
++
++ // Limit the address space of the current process (and its children) to make
++ // some vulnerabilities harder to exploit. Writes the errno due to setrlimit
++ // (including 0 if no error) into |error|.
++ bool LimitAddressSpace(int* error);
++
++ // Returns a file descriptor to proc. The file descriptor is no longer valid
++ // after the sandbox has been sealed.
++ int proc_fd() const {
++ DCHECK_NE(-1, proc_fd_);
++ return proc_fd_;
++ }
++
++#if BUILDFLAG(USING_SANITIZER)
++ __sanitizer_sandbox_arguments* sanitizer_args() const {
++ return sanitizer_args_.get();
++ };
++#endif
++
++ // A BrokerProcess is a helper that is started before the sandbox is engaged,
++ // typically from a pre-sandbox hook, that will serve requests to access
++ // files over an IPC channel. The client of this runs from a SIGSYS handler
++ // triggered by the seccomp-bpf sandbox.
++ // |client_sandbox_policy| is the policy being run by the client, and is
++ // used to derive the equivalent broker-side policy.
++ // |broker_side_hook| is an alternate pre-sandbox hook to be run before the
++ // broker itself gets sandboxed, to which the broker side policy and
++ // |options| are passed.
++ // Crashes the process if the broker can not be started since continuation
++ // is impossible (and presumably unsafe).
++ // This should never be destroyed, as after the sandbox is started it is
++ // vital to the process.
++#if 0
++ void StartBrokerProcess(
++ const sandbox::syscall_broker::BrokerCommandSet& allowed_command_set,
++ std::vector<sandbox::syscall_broker::BrokerFilePermission> permissions,
++ PreSandboxHook broker_side_hook,
++ const Options& options);
++
++ sandbox::syscall_broker::BrokerProcess* broker_process() const {
++ return broker_process_;
++ }
++#endif
++
++ private:
++ friend struct base::DefaultSingletonTraits<SandboxLinux>;
++
++ SandboxLinux();
++ ~SandboxLinux();
++
++ // We must have been pre_initialized_ before using these.
++ bool seccomp_bpf_supported() const;
++ bool seccomp_bpf_with_tsync_supported() const;
++
++ // Returns true if it can be determined that the current process has open
++ // directories that are not managed by the SandboxLinux class. This would
++ // be a vulnerability as it would allow to bypass the setuid sandbox.
++ bool HasOpenDirectories() const;
++
++ // The last part of the initialization is to make sure any temporary "hole"
++ // in the sandbox is closed. For now, this consists of closing proc_fd_.
++ void SealSandbox();
++
++ // GetStatus() makes promises as to how the sandbox will behave. This
++ // checks that no promises have been broken.
++ void CheckForBrokenPromises(sandbox::mojom::Sandbox sandbox_type);
++
++ // Stop |thread| and make sure it does not appear in /proc/self/tasks/
++ // anymore.
++ void StopThreadAndEnsureNotCounted(base::Thread* thread) const;
++
++ // A file descriptor to /proc. It's dangerous to have it around as it could
++ // allow for sandbox bypasses. It needs to be closed before we consider
++ // ourselves sandboxed.
++ int proc_fd_;
++
++ bool seccomp_bpf_started_;
++ // The value returned by GetStatus(). Gets computed once and then cached.
++ int sandbox_status_flags_;
++ // Did PreinitializeSandbox() run?
++ bool pre_initialized_;
++ bool seccomp_bpf_supported_; // Accurate if pre_initialized_.
++ bool seccomp_bpf_with_tsync_supported_; // Accurate if pre_initialized_.
++ bool yama_is_enforcing_; // Accurate if pre_initialized_.
++ bool initialize_sandbox_ran_; // InitializeSandbox() was called.
++#if BUILDFLAG(USING_SANITIZER)
++ std::unique_ptr<__sanitizer_sandbox_arguments> sanitizer_args_;
++#endif
++ sandbox::syscall_broker::BrokerProcess* broker_process_; // Leaked as global.
++};
++
++} // namespace policy
++} // namespace sandbox
++
++#endif // SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_
+diff --git a/sandbox/policy/openbsd/sandbox_openbsd.cc b/sandbox/policy/openbsd/sandbox_openbsd.cc
+index ba5379fac1..291a14f45f 100644
+--- a/sandbox/policy/openbsd/sandbox_openbsd.cc
++++ b/sandbox/policy/openbsd/sandbox_openbsd.cc
+@@ -65,11 +65,11 @@
+
+ #define MAXTOKENS 3
+
+-#define _UNVEIL_MAIN "/etc/chromium/unveil.main";
+-#define _UNVEIL_GPU "/etc/chromium/unveil.gpu";
+-#define _UNVEIL_UTILITY_NETWORK "/etc/chromium/unveil.utility_network";
+-#define _UNVEIL_UTILITY_AUDIO "/etc/chromium/unveil.utility_audio";
+-#define _UNVEIL_UTILITY_VIDEO "/etc/chromium/unveil.utility_video";
++#define _UNVEIL_MAIN "@PKG_SYSCONFBASE@/chromium/unveil.main";
++#define _UNVEIL_GPU "@PKG_SYSCONFBASE@/chromium/unveil.gpu";
++#define _UNVEIL_UTILITY_NETWORK "@PKG_SYSCONFBASE@/chromium/unveil.utility_network";
++#define _UNVEIL_UTILITY_AUDIO "@PKG_SYSCONFBASE@/chromium/unveil.utility_audio";
++#define _UNVEIL_UTILITY_VIDEO "@PKG_SYSCONFBASE@/chromium/unveil.utility_video";
+
+ namespace sandbox {
+ namespace policy {
+@@ -320,7 +320,7 @@ bool SandboxLinux::InitializeSandbox(sandbox::mojom::Sandbox sandbox_type,
+
+ switch(sandbox_type) {
+ case sandbox::mojom::Sandbox::kNoSandbox:
+- SetPledge(NULL, "/etc/chromium/pledge.main");
++ SetPledge(NULL, "@PKG_SYSCONFBASE@/chromium/pledge.main");
+ break;
+ case sandbox::mojom::Sandbox::kRenderer:
+ // prot_exec needed by v8
+@@ -337,13 +337,13 @@ bool SandboxLinux::InitializeSandbox(sandbox::mojom::Sandbox sandbox_type,
+ break;
+ #endif
+ case sandbox::mojom::Sandbox::kAudio:
+- SetPledge(NULL, "/etc/chromium/pledge.utility_audio");
++ SetPledge(NULL, "@PKG_SYSCONFBASE@/chromium/pledge.utility_audio");
+ break;
+ case sandbox::mojom::Sandbox::kNetwork:
+- SetPledge(NULL, "/etc/chromium/pledge.utility_network");
++ SetPledge(NULL, "@PKG_SYSCONFBASE@/chromium/pledge.utility_network");
+ break;
+ case sandbox::mojom::Sandbox::kVideoCapture:
+- SetPledge(NULL, "/etc/chromium/pledge.utility_video");
++ SetPledge(NULL, "@PKG_SYSCONFBASE@/chromium/pledge.utility_video");
+ break;
+ case sandbox::mojom::Sandbox::kUtility:
+ case sandbox::mojom::Sandbox::kService:
+diff --git a/sandbox/policy/sandbox.h b/sandbox/policy/sandbox.h
+index 44f331a70f..4a27162638 100644
+--- a/sandbox/policy/sandbox.h
++++ b/sandbox/policy/sandbox.h
+@@ -14,6 +14,8 @@
+
+ #if BUILDFLAG(IS_OPENBSD)
+ #include "sandbox/policy/openbsd/sandbox_openbsd.h"
++#elif BUILDFLAG(IS_NETBSD)
++#include "sandbox/policy/netbsd/sandbox_netbsd.h"
+ #elif BUILDFLAG(IS_FREEBSD)
+ #include "sandbox/policy/freebsd/sandbox_freebsd.h"
+ #endif
+diff --git a/services/device/hid/BUILD.gn b/services/device/hid/BUILD.gn
+index 1215615a54..38e1e14aca 100644
+--- a/services/device/hid/BUILD.gn
++++ b/services/device/hid/BUILD.gn
+@@ -55,6 +55,15 @@ source_set("hid") {
+ ]
+ }
+
++# if (is_netbsd) {
++# sources += [
++# "hid_connection_netbsd.cc",
++# "hid_connection_netbsd.h",
++# "hid_service_netbsd.cc",
++# "hid_service_netbsd.h",
++# ]
++# }
++
+ if ((is_linux || is_chromeos) && !is_bsd && use_udev) {
+ sources += [
+ "hid_connection_linux.cc",
+diff --git a/services/device/hid/hid_connection_netbsd.cc b/services/device/hid/hid_connection_netbsd.cc
+new file mode 100644
+index 0000000000..941a0f7eee
+--- /dev/null
++++ b/services/device/hid/hid_connection_netbsd.cc
+@@ -0,0 +1,240 @@
++// Copyright (c) 2014 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "services/device/hid/hid_connection_netbsd.h"
++
++#include <dev/usb/usbhid.h>
++#include <dev/usb/usb_ioctl.h>
++
++#include "base/files/file_descriptor_watcher_posix.h"
++#include "base/location.h"
++#include "base/numerics/safe_math.h"
++#include "base/posix/eintr_wrapper.h"
++#include "base/strings/stringprintf.h"
++#include "base/task/single_thread_task_runner.h"
++#include "base/threading/scoped_blocking_call.h"
++#include "base/threading/thread_restrictions.h"
++#include "components/device_event_log/device_event_log.h"
++#include "services/device/hid/hid_service.h"
++
++namespace device {
++
++class HidConnectionNetBSD::BlockingTaskRunnerHelper {
++ public:
++ BlockingTaskRunnerHelper(base::ScopedFD fd,
++ scoped_refptr<HidDeviceInfo> device_info,
++ base::WeakPtr<HidConnectionNetBSD> connection)
++ : fd_(std::move(fd)),
++ connection_(connection),
++ origin_task_runner_(base::SequencedTaskRunner::GetCurrentDefault()) {
++ DETACH_FROM_SEQUENCE(sequence_checker_);
++ // Report buffers must always have room for the report ID.
++ report_buffer_size_ = device_info->max_input_report_size() + 1;
++ has_report_id_ = device_info->has_report_id();
++ }
++
++ BlockingTaskRunnerHelper(const BlockingTaskRunnerHelper&) = delete;
++ BlockingTaskRunnerHelper& operator=(const BlockingTaskRunnerHelper&) = delete;
++
++ ~BlockingTaskRunnerHelper() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); }
++
++ // Starts the FileDescriptorWatcher that reads input events from the device.
++ // Must be called on a thread that has a base::MessageLoopForIO.
++ void Start() {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++ base::internal::AssertBlockingAllowed();
++
++ file_watcher_ = base::FileDescriptorWatcher::WatchReadable(
++ fd_.get(), base::BindRepeating(&BlockingTaskRunnerHelper::OnFileCanReadWithoutBlocking,
++ base::Unretained(this)));
++ }
++
++ void Write(scoped_refptr<base::RefCountedBytes> buffer,
++ WriteCallback callback) {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++ base::ScopedBlockingCall scoped_blocking_call(
++ FROM_HERE, base::BlockingType::MAY_BLOCK);
++
++ auto data = buffer->as_vector().data();
++ size_t size = buffer->size();
++ // if report id is 0, it shouldn't be included
++ if (data[0] == 0) {
++ data++;
++ size--;
++ }
++
++ ssize_t result = HANDLE_EINTR(write(fd_.get(), data, size));
++ if (result < 0) {
++ HID_PLOG(EVENT) << "Write failed";
++ origin_task_runner_->PostTask(FROM_HERE, base::BindOnce(std::move(callback), false));
++ } else {
++ if (static_cast<size_t>(result) != size)
++ HID_LOG(EVENT) << "Incomplete HID write: " << result << " != " << size;
++ origin_task_runner_->PostTask(FROM_HERE, base::BindOnce(std::move(callback), true));
++ }
++ }
++
++ void GetFeatureReport(uint8_t report_id,
++ scoped_refptr<base::RefCountedBytes> buffer,
++ ReadCallback callback) {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++ base::ScopedBlockingCall scoped_blocking_call(
++ FROM_HERE, base::BlockingType::MAY_BLOCK);
++ struct usb_gen_descriptor ugd;
++ ugd.ugd_report_type = UHID_FEATURE_REPORT;
++ ugd.ugd_data = buffer->as_vector().data();
++ ugd.ugd_maxlen = buffer->size();
++ int result = HANDLE_EINTR(
++ ioctl(fd_.get(), USB_GET_REPORT, &ugd));
++ if (result < 0) {
++ HID_PLOG(EVENT) << "Failed to get feature report";
++ origin_task_runner_->PostTask(FROM_HERE,
++ base::BindOnce(std::move(callback), false, nullptr, 0));
++ } else if (result == 0) {
++ HID_LOG(EVENT) << "Get feature result too short.";
++ origin_task_runner_->PostTask(FROM_HERE,
++ base::BindOnce(std::move(callback), false, nullptr, 0));
++ } else {
++ origin_task_runner_->PostTask(FROM_HERE,
++ base::BindOnce(std::move(callback), true, buffer, result));
++ }
++ }
++
++ void SendFeatureReport(scoped_refptr<base::RefCountedBytes> buffer,
++ WriteCallback callback) {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++ struct usb_gen_descriptor ugd;
++ ugd.ugd_report_type = UHID_FEATURE_REPORT;
++ ugd.ugd_data = buffer->as_vector().data();
++ ugd.ugd_maxlen = buffer->size();
++ // NetBSD does not require report id if it's not used
++ if (buffer->data()[0] == 0) {
++ ugd.ugd_data = buffer->as_vector().data() + 1;
++ ugd.ugd_maxlen = buffer->size() - 1;
++ } else {
++ ugd.ugd_data = buffer->as_vector().data();
++ ugd.ugd_maxlen = buffer->size();
++ }
++ int result = HANDLE_EINTR(
++ ioctl(fd_.get(), USB_SET_REPORT, &ugd));
++ if (result < 0) {
++ HID_PLOG(EVENT) << "Failed to send feature report";
++ origin_task_runner_->PostTask(FROM_HERE,
++ base::BindOnce(std::move(callback), false));
++ } else {
++ origin_task_runner_->PostTask(FROM_HERE,
++ base::BindOnce(std::move(callback), true));
++ }
++ }
++
++ private:
++ void OnFileCanReadWithoutBlocking() {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++
++ scoped_refptr<base::RefCountedBytes> buffer(new base::RefCountedBytes(report_buffer_size_));
++ unsigned char* data = buffer->as_vector().data();
++ size_t length = report_buffer_size_;
++ if (!has_report_id_) {
++ // NetBSD will not prefix the buffer with a report ID if report IDs are not
++ // used by the device. Prefix the buffer with 0.
++ *data++ = 0;
++ length--;
++ }
++
++ ssize_t bytes_read = HANDLE_EINTR(read(fd_.get(), data, length));
++ if (bytes_read < 0) {
++ if (errno != EAGAIN) {
++ HID_PLOG(EVENT) << "Read failed";
++ // This assumes that the error is unrecoverable and disables reading
++ // from the device until it has been re-opened.
++ // TODO(reillyg): Investigate starting and stopping the file descriptor
++ // watcher in response to pending read requests so that per-request
++ // errors can be returned to the client.
++ file_watcher_.reset();
++ }
++ return;
++ }
++ if (!has_report_id_) {
++ // Behave as if the byte prefixed above as the the report ID was read.
++ bytes_read++;
++ }
++
++ origin_task_runner_->PostTask(
++ FROM_HERE, base::BindOnce(&HidConnectionNetBSD::ProcessInputReport,
++ connection_, buffer, bytes_read));
++ }
++
++ SEQUENCE_CHECKER(sequence_checker_);
++ base::ScopedFD fd_;
++ size_t report_buffer_size_;
++ bool has_report_id_;
++ base::WeakPtr<HidConnectionNetBSD> connection_;
++ const scoped_refptr<base::SequencedTaskRunner> origin_task_runner_;
++ std::unique_ptr<base::FileDescriptorWatcher::Controller> file_watcher_;
++};
++
++HidConnectionNetBSD::HidConnectionNetBSD(
++ scoped_refptr<HidDeviceInfo> device_info,
++ base::ScopedFD fd,
++ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner,
++ bool allow_protected_reports,
++ bool allow_fido_reports)
++ : HidConnection(device_info, allow_protected_reports, allow_fido_reports),
++ helper_(nullptr, base::OnTaskRunnerDeleter(blocking_task_runner)),
++ blocking_task_runner_(std::move(blocking_task_runner)) {
++ helper_.reset(new BlockingTaskRunnerHelper(std::move(fd), device_info,
++ weak_factory_.GetWeakPtr()));
++ blocking_task_runner_->PostTask(
++ FROM_HERE, base::BindOnce(&BlockingTaskRunnerHelper::Start,
++ base::Unretained(helper_.get())));
++}
++
++HidConnectionNetBSD::~HidConnectionNetBSD() {}
++
++void HidConnectionNetBSD::PlatformClose() {
++ // By closing the device on the blocking task runner 1) the requirement that
++ // base::ScopedFD is destroyed on a thread where I/O is allowed is satisfied
++ // and 2) any tasks posted to this task runner that refer to this file will
++ // complete before it is closed.
++ blocking_task_runner_->DeleteSoon(FROM_HERE, helper_.release());
++}
++
++void HidConnectionNetBSD::PlatformWrite(scoped_refptr<base::RefCountedBytes> buffer,
++ WriteCallback callback) {
++
++ blocking_task_runner_->PostTask(
++ FROM_HERE,
++ base::BindOnce(&BlockingTaskRunnerHelper::Write, base::Unretained(helper_.get()),
++ buffer, std::move(callback)));
++}
++
++void HidConnectionNetBSD::PlatformGetFeatureReport(uint8_t report_id,
++ ReadCallback callback) {
++ // The first byte of the destination buffer is the report ID being requested
++ // and is overwritten by the feature report.
++ DCHECK_GT(device_info()->max_feature_report_size(), 0u);
++ scoped_refptr<base::RefCountedBytes> buffer(
++ new base::RefCountedBytes(device_info()->max_feature_report_size() + 1));
++ if (report_id != 0)
++ buffer->as_vector().data()[0] = report_id;
++
++ blocking_task_runner_->PostTask(
++ FROM_HERE,
++ base::BindOnce(&BlockingTaskRunnerHelper::GetFeatureReport,
++ base::Unretained(helper_.get()), report_id,
++ buffer, std::move(callback)));
++}
++
++void HidConnectionNetBSD::PlatformSendFeatureReport(
++ scoped_refptr<base::RefCountedBytes> buffer,
++ WriteCallback callback) {
++ base::ScopedBlockingCall scoped_blocking_call(
++ FROM_HERE, base::BlockingType::MAY_BLOCK);
++ blocking_task_runner_->PostTask(
++ FROM_HERE,
++ base::BindOnce(&BlockingTaskRunnerHelper::SendFeatureReport,
++ base::Unretained(helper_.get()), buffer, std::move(callback)));
++}
++
++} // namespace device
+diff --git a/services/device/hid/hid_connection_netbsd.h b/services/device/hid/hid_connection_netbsd.h
+new file mode 100644
+index 0000000000..ab38024093
+--- /dev/null
++++ b/services/device/hid/hid_connection_netbsd.h
+@@ -0,0 +1,67 @@
++// Copyright (c) 2014 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef DEVICE_HID_HID_CONNECTION_NETBSD_H_
++#define DEVICE_HID_HID_CONNECTION_NETBSD_H_
++
++#include <stddef.h>
++#include <stdint.h>
++
++#include "base/files/scoped_file.h"
++#include "base/memory/weak_ptr.h"
++#include "base/memory/ref_counted_memory.h"
++#include "base/task/sequenced_task_runner.h"
++#include "services/device/hid/hid_connection.h"
++
++namespace base {
++class SequencedTaskRunner;
++}
++
++namespace net {
++class IOBuffer;
++}
++
++namespace device {
++
++class HidConnectionNetBSD : public HidConnection {
++ public:
++ HidConnectionNetBSD(
++ scoped_refptr<HidDeviceInfo> device_info,
++ base::ScopedFD fd,
++ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner,
++ bool allow_protected_reports,
++ bool allow_fido_reports);
++
++ private:
++ friend class base::RefCountedThreadSafe<HidConnectionNetBSD>;
++ class BlockingTaskRunnerHelper;
++
++ HidConnectionNetBSD(const HidConnectionNetBSD&) = delete;
++ HidConnectionNetBSD& operator=(const HidConnectionNetBSD&) = delete;
++
++ ~HidConnectionNetBSD() override;
++
++ // HidConnection implementation.
++ void PlatformClose() override;
++ void PlatformWrite(scoped_refptr<base::RefCountedBytes> buffer,
++ WriteCallback callback) override;
++ void PlatformGetFeatureReport(uint8_t report_id,
++ ReadCallback callback) override;
++ void PlatformSendFeatureReport(scoped_refptr<base::RefCountedBytes> buffer,
++ WriteCallback callback) override;
++
++ // |helper_| lives on the sequence to which |blocking_task_runner_| posts
++ // tasks so all calls must be posted there including this object's
++ // destruction.
++ std::unique_ptr<BlockingTaskRunnerHelper, base::OnTaskRunnerDeleter> helper_;
++
++ const scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_;
++ const scoped_refptr<base::SequencedTaskRunner> task_runner_;
++
++ base::WeakPtrFactory<HidConnectionNetBSD> weak_factory_{this};
++};
++
++} // namespace device
++
++#endif // DEVICE_HID_HID_CONNECTION_FREEBSD_H_
+diff --git a/services/device/hid/hid_service_freebsd.cc b/services/device/hid/hid_service_freebsd.cc
+index 0b6bf3b4ce..d7a6ee97af 100644
+--- a/services/device/hid/hid_service_freebsd.cc
++++ b/services/device/hid/hid_service_freebsd.cc
+@@ -228,7 +228,7 @@ class HidServiceFreeBSD::BlockingTaskRunnerHelper {
+ struct sockaddr_un sa;
+
+ sa.sun_family = AF_UNIX;
+- strlcpy(sa.sun_path, "/var/run/devd.seqpacket.pipe", sizeof(sa.sun_path));
++ strlcpy(sa.sun_path, "@VARBASE@/run/devd.seqpacket.pipe", sizeof(sa.sun_path));
+ if (connect(devd_fd, (struct sockaddr *) &sa, sizeof(sa)) < 0) {
+ close(devd_fd);
+ return;
+diff --git a/services/device/hid/hid_service_netbsd.cc b/services/device/hid/hid_service_netbsd.cc
+new file mode 100644
+index 0000000000..5f0a890e57
+--- /dev/null
++++ b/services/device/hid/hid_service_netbsd.cc
+@@ -0,0 +1,395 @@
++// Copyright 2014 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "services/device/hid/hid_service_netbsd.h"
++
++#include <dev/usb/usb_ioctl.h>
++#include <stdint.h>
++#include <sys/socket.h>
++#include <sys/un.h>
++
++#include <set>
++#include <string>
++#include <vector>
++
++#include "base/files/file_descriptor_watcher_posix.h"
++#include "base/files/file_enumerator.h"
++#include "base/files/file_util.h"
++#include "base/files/file.h"
++#include "base/location.h"
++#include "base/logging.h"
++#include "base/posix/eintr_wrapper.h"
++#include "base/stl_util.h"
++#include "base/strings/pattern.h"
++#include "base/strings/stringprintf.h"
++#include "base/strings/sys_string_conversions.h"
++#include "base/strings/string_util.h"
++#include "base/strings/string_split.h"
++#include "base/task/single_thread_task_runner.h"
++#include "base/task/thread_pool.h"
++#include "base/threading/scoped_blocking_call.h"
++#include "base/threading/thread_restrictions.h"
++#include "components/device_event_log/device_event_log.h"
++#include "services/device/hid/hid_connection_netbsd.h"
++
++const int kMaxPermissionChecks = 5;
++
++namespace device {
++
++struct HidServiceNetBSD::ConnectParams {
++ ConnectParams(scoped_refptr<HidDeviceInfo> device_info,
++ bool allow_protected_reports,
++ bool allow_fido_reports,
++ ConnectCallback callback)
++ : device_info(std::move(device_info)),
++ allow_protected_reports(allow_protected_reports),
++ allow_fido_reports(allow_fido_reports),
++ callback(std::move(callback)),
++ task_runner(base::SequencedTaskRunner::GetCurrentDefault()),
++ blocking_task_runner(
++ base::ThreadPool::CreateSequencedTaskRunner(kBlockingTaskTraits)) {}
++ ~ConnectParams() {}
++
++ scoped_refptr<HidDeviceInfo> device_info;
++ bool allow_protected_reports;
++ bool allow_fido_reports;
++ ConnectCallback callback;
++ scoped_refptr<base::SequencedTaskRunner> task_runner;
++ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner;
++ base::ScopedFD fd;
++};
++
++class HidServiceNetBSD::BlockingTaskRunnerHelper {
++ public:
++ BlockingTaskRunnerHelper(base::WeakPtr<HidServiceNetBSD> service)
++ : service_(std::move(service)),
++ task_runner_(base::SequencedTaskRunner::GetCurrentDefault()) {
++ DETACH_FROM_SEQUENCE(sequence_checker_);
++
++ timer_.reset(new base::RepeatingTimer());
++ devd_buffer_ = new net::IOBufferWithSize(1024);
++ }
++
++ BlockingTaskRunnerHelper(const BlockingTaskRunnerHelper&) = delete;
++ BlockingTaskRunnerHelper& operator=(const BlockingTaskRunnerHelper&) = delete;
++
++ ~BlockingTaskRunnerHelper() {
++ }
++
++ void Start() {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++
++ const base::FilePath kDevRoot("/dev");
++ const std::string kUHIDPattern("/dev/uhid*");
++
++ base::FileEnumerator enumerator(kDevRoot, false, base::FileEnumerator::FILES);
++ do {
++ const base::FilePath next_device_path(enumerator.Next());
++ const std::string next_device = next_device_path.value();
++ if (next_device.empty())
++ break;
++
++ if (base::MatchPattern(next_device, kUHIDPattern))
++ OnDeviceAdded(next_device.substr(5));
++ } while (true);
++
++ SetupDevdMonitor();
++
++ task_runner_->PostTask(
++ FROM_HERE,
++ base::BindOnce(&HidServiceNetBSD::FirstEnumerationComplete, service_));
++ }
++
++ bool HaveReadWritePermissions(std::string device_id) {
++ std::string device_node = "/dev/" + device_id;
++ base::internal::AssertBlockingAllowed();
++
++ base::FilePath device_path(device_node);
++ base::File device_file;
++ int flags =
++ base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE;
++ device_file.Initialize(device_path, flags);
++ if (!device_file.IsValid())
++ return false;
++
++ return true;
++ }
++
++ void OnDeviceAdded(std::string device_id) {
++ base::ScopedBlockingCall scoped_blocking_call(
++ FROM_HERE, base::BlockingType::MAY_BLOCK);
++ std::string device_node = "/dev/" + device_id;
++ uint16_t vendor_id = 0xffff;
++ uint16_t product_id = 0xffff;
++ std::string product_name = "";
++ std::string serial_number = "";
++
++ std::vector<uint8_t> report_descriptor;
++
++ base::internal::AssertBlockingAllowed();
++
++ base::FilePath device_path(device_node);
++ base::File device_file;
++ int flags =
++ base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE;
++ device_file.Initialize(device_path, flags);
++ if (!device_file.IsValid()) {
++ HID_LOG(ERROR) << "Failed to open '" << device_node
++ << "': "
++ << base::File::ErrorToString(device_file.error_details());
++ return;
++ }
++
++ base::ScopedFD fd;
++ fd.reset(device_file.TakePlatformFile());
++
++ struct usb_gen_descriptor ugd;
++ ugd.ugd_data = NULL;
++ ugd.ugd_maxlen = 0xffff;
++ int result = HANDLE_EINTR(
++ ioctl(fd.get(), USB_GET_REPORT_DESC, &ugd));
++
++ if (result < 0) {
++ HID_LOG(ERROR) << "Failed to get report descriptor size";
++ return;
++ }
++
++ report_descriptor.resize(ugd.ugd_actlen);
++
++ ugd.ugd_data = report_descriptor.data();
++ ugd.ugd_maxlen = ugd.ugd_actlen;
++ result = HANDLE_EINTR(
++ ioctl(fd.get(), USB_GET_REPORT_DESC, &ugd));
++
++ if (result < 0) {
++ HID_LOG(ERROR) << "Failed to get report descriptor";
++ return;
++ }
++
++ scoped_refptr<HidDeviceInfo> device_info(new HidDeviceInfo(
++ device_id,
++ /*physical_device_id*/"",
++ vendor_id,
++ product_id,
++ product_name,
++ serial_number,
++ device::mojom::HidBusType::kHIDBusTypeUSB,
++ report_descriptor,
++ device_node));
++
++ task_runner_->PostTask(FROM_HERE, base::BindOnce(&HidServiceNetBSD::AddDevice,
++ service_, device_info));
++ }
++
++ void OnDeviceRemoved(std::string device_id) {
++ base::ScopedBlockingCall scoped_blocking_call(
++ FROM_HERE, base::BlockingType::MAY_BLOCK);
++ task_runner_->PostTask(
++ FROM_HERE, base::BindOnce(&HidServiceNetBSD::RemoveDevice, service_,
++ device_id));
++ }
++
++ private:
++
++ void CheckPendingPermissionChange() {
++ base::internal::AssertBlockingAllowed();
++ std::map<std::string, int>::iterator it;
++ for (it = permissions_checks_attempts_.begin(); it != permissions_checks_attempts_.end();) {
++ std::string device_name = it->first;
++ bool keep = true;
++ if (HaveReadWritePermissions(device_name)) {
++ OnDeviceAdded(device_name);
++ keep = false;
++ }
++ else if (it->second-- <= 0) {
++ HID_LOG(ERROR) << "Still don't have write permissions to '" << device_name
++ << "' after " << kMaxPermissionChecks << " attempts";
++ keep = false;
++ }
++
++ if (keep)
++ ++it;
++ else
++ permissions_checks_attempts_.erase(it++);
++ }
++
++ if (permissions_checks_attempts_.empty())
++ timer_->Stop();
++ }
++
++ void SetupDevdMonitor() {
++ base::internal::AssertBlockingAllowed();
++
++ int devd_fd = socket(AF_UNIX, SOCK_SEQPACKET, 0);
++ if (devd_fd < 0)
++ return;
++
++ struct sockaddr_un sa;
++
++ sa.sun_family = AF_UNIX;
++ strlcpy(sa.sun_path, "@VARBASE@/run/devd.seqpacket.pipe", sizeof(sa.sun_path));
++ if (connect(devd_fd, (struct sockaddr *) &sa, sizeof(sa)) < 0) {
++ close(devd_fd);
++ return;
++ }
++
++ devd_fd_.reset(devd_fd);
++ file_watcher_ = base::FileDescriptorWatcher::WatchReadable(
++ devd_fd_.get(), base::BindRepeating(&BlockingTaskRunnerHelper::OnDevdMessageCanBeRead,
++ base::Unretained(this)));
++ }
++
++ void OnDevdMessageCanBeRead() {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++ ssize_t bytes_read = HANDLE_EINTR(recv(devd_fd_.get(), devd_buffer_->data(),
++ devd_buffer_->size() - 1, MSG_WAITALL));
++ if (bytes_read < 0) {
++ if (errno != EAGAIN) {
++ HID_LOG(ERROR) << "Read failed";
++ file_watcher_.reset();
++ }
++ return;
++ }
++
++ devd_buffer_->data()[bytes_read] = 0;
++ char *data = devd_buffer_->data();
++ // It may take some time for devd to change permissions
++ // on /dev/uhidX node. So do not fail immediately if
++ // open fail. Retry each second for kMaxPermissionChecks
++ // times before giving up entirely
++ if (base::StartsWith(data, "+uhid", base::CompareCase::SENSITIVE)) {
++ std::vector<std::string> parts = base::SplitString(
++ data, " ", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
++ if (!parts.empty()) {
++ std::string device_name = parts[0].substr(1); // skip '+'
++ if (HaveReadWritePermissions(device_name))
++ OnDeviceAdded(parts[0].substr(1));
++ else {
++ // Do not re-add to checks
++ if (permissions_checks_attempts_.find(device_name) == permissions_checks_attempts_.end()) {
++ permissions_checks_attempts_.insert(std::pair<std::string, int>(device_name, kMaxPermissionChecks));
++ timer_->Start(FROM_HERE, base::Seconds(1),
++ this, &BlockingTaskRunnerHelper::CheckPendingPermissionChange);
++ }
++ }
++ }
++ }
++
++ if (base::StartsWith(data, "-uhid", base::CompareCase::SENSITIVE)) {
++ std::vector<std::string> parts = base::SplitString(
++ data, " ", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
++ if (!parts.empty()) {
++ std::string device_name = parts[0].substr(1); // skip '-'
++ auto it = permissions_checks_attempts_.find(device_name);
++ if (it != permissions_checks_attempts_.end()) {
++ permissions_checks_attempts_.erase(it);
++ if (permissions_checks_attempts_.empty())
++ timer_->Stop();
++ }
++ OnDeviceRemoved(parts[0].substr(1));
++ }
++ }
++ }
++
++ SEQUENCE_CHECKER(sequence_checker_);
++
++ // This weak pointer is only valid when checked on this task runner.
++ base::WeakPtr<HidServiceNetBSD> service_;
++ scoped_refptr<base::SequencedTaskRunner> task_runner_;
++ std::unique_ptr<base::FileDescriptorWatcher::Controller> file_watcher_;
++ std::unique_ptr<base::RepeatingTimer> timer_;
++ base::ScopedFD devd_fd_;
++ scoped_refptr<net::IOBufferWithSize> devd_buffer_;
++ std::map<std::string, int> permissions_checks_attempts_;
++};
++
++HidServiceNetBSD::HidServiceNetBSD()
++ : blocking_task_runner_(
++ base::ThreadPool::CreateSequencedTaskRunner(kBlockingTaskTraits)),
++ helper_(nullptr, base::OnTaskRunnerDeleter(blocking_task_runner_)) {
++ helper_.reset(new BlockingTaskRunnerHelper(weak_factory_.GetWeakPtr()));
++ blocking_task_runner_->PostTask(
++ FROM_HERE,
++ base::BindOnce(&BlockingTaskRunnerHelper::Start, base::Unretained(helper_.get())));
++}
++
++HidServiceNetBSD::~HidServiceNetBSD() {
++ blocking_task_runner_->DeleteSoon(FROM_HERE, helper_.release());
++}
++
++base::WeakPtr<HidService> HidServiceNetBSD::GetWeakPtr() {
++ return weak_factory_.GetWeakPtr();
++}
++
++// static
++void HidServiceNetBSD::OpenOnBlockingThread(
++ std::unique_ptr<ConnectParams> params) {
++ base::ScopedBlockingCall scoped_blocking_call(
++ FROM_HERE, base::BlockingType::MAY_BLOCK);
++ scoped_refptr<base::SequencedTaskRunner> task_runner = params->task_runner;
++
++ base::FilePath device_path(params->device_info->device_node());
++ base::File device_file;
++ int flags =
++ base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE;
++ device_file.Initialize(device_path, flags);
++ if (!device_file.IsValid()) {
++ HID_LOG(EVENT) << "Failed to open '" << params->device_info->device_node()
++ << "': "
++ << base::File::ErrorToString(device_file.error_details());
++ task_runner->PostTask(FROM_HERE,
++ base::BindOnce(std::move(params->callback), nullptr));
++ return;
++ }
++ params->fd.reset(device_file.TakePlatformFile());
++ task_runner->PostTask(FROM_HERE, base::BindOnce(&HidServiceNetBSD::FinishOpen,
++ std::move(params)));
++}
++
++void HidServiceNetBSD::Connect(const std::string& device_guid,
++ bool allow_protected_reports,
++ bool allow_fido_reports,
++ ConnectCallback callback) {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++
++ const auto& map_entry = devices().find(device_guid);
++ if (map_entry == devices().end()) {
++ base::SequencedTaskRunner::GetCurrentDefault()->PostTask(
++ FROM_HERE, base::BindOnce(std::move(callback), nullptr));
++ return;
++ }
++
++ scoped_refptr<HidDeviceInfo> device_info = map_entry->second;
++
++ auto params = std::make_unique<ConnectParams>(device_info,
++ allow_protected_reports,
++ allow_fido_reports,
++ std::move(callback));
++ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner =
++ params->blocking_task_runner;
++
++ blocking_task_runner->PostTask(
++ FROM_HERE, base::BindOnce(&HidServiceNetBSD::OpenOnBlockingThread,
++ std::move(params)));
++}
++
++// static
++void HidServiceNetBSD::FinishOpen(std::unique_ptr<ConnectParams> params) {
++ DCHECK(params->fd.is_valid());
++
++ if (!base::SetNonBlocking(params->fd.get())) {
++ HID_PLOG(ERROR) << "Failed to set the non-blocking flag on the device fd";
++ std::move(params->callback).Run(nullptr);
++ }
++
++ std::move(params->callback).Run(base::MakeRefCounted<HidConnectionNetBSD>(
++ std::move(params->device_info),
++ std::move(params->fd),
++ std::move(params->blocking_task_runner),
++ params->allow_protected_reports,
++ params->allow_fido_reports
++ ));
++}
++
++} // namespace device
+diff --git a/services/device/hid/hid_service_netbsd.h b/services/device/hid/hid_service_netbsd.h
+new file mode 100644
+index 0000000000..917394c54b
+--- /dev/null
++++ b/services/device/hid/hid_service_netbsd.h
+@@ -0,0 +1,49 @@
++// Copyright 2014 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef DEVICE_HID_HID_SERVICE_NETBSD_H_
++#define DEVICE_HID_HID_SERVICE_NETBSD_H_
++
++#include <string>
++
++#include "base/memory/ref_counted.h"
++#include "base/memory/weak_ptr.h"
++#include "base/timer/timer.h"
++#include "services/device/hid/hid_service.h"
++#include "net/base/io_buffer.h"
++
++namespace device {
++
++class HidServiceNetBSD : public HidService {
++ public:
++ HidServiceNetBSD();
++
++ HidServiceNetBSD(const HidServiceNetBSD&) = delete;
++ HidServiceNetBSD& operator=(const HidServiceNetBSD&) = delete;
++
++ ~HidServiceNetBSD() override;
++
++ void Connect(const std::string& device_guid,
++ bool allow_protected_reports,
++ bool allow_fido_reports,
++ ConnectCallback connect) override;
++ base::WeakPtr<HidService> GetWeakPtr() override;
++
++ private:
++ struct ConnectParams;
++ class BlockingTaskRunnerHelper;
++
++ static void OpenOnBlockingThread(std::unique_ptr<ConnectParams> params);
++ static void FinishOpen(std::unique_ptr<ConnectParams> params);
++
++ const scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_;
++ // |helper_| lives on the sequence |blocking_task_runner_| posts to and holds
++ // a weak reference back to the service that owns it.
++ std::unique_ptr<BlockingTaskRunnerHelper, base::OnTaskRunnerDeleter> helper_;
++ base::WeakPtrFactory<HidServiceNetBSD> weak_factory_{this};
++};
++
++} // namespace device
++
++#endif // DEVICE_HID_HID_SERVICE_FREEBSD_H_
+diff --git a/services/device/time_zone_monitor/time_zone_monitor_linux.cc b/services/device/time_zone_monitor/time_zone_monitor_linux.cc
+index a01a691ac4..e9ae5da25d 100644
+--- a/services/device/time_zone_monitor/time_zone_monitor_linux.cc
++++ b/services/device/time_zone_monitor/time_zone_monitor_linux.cc
+@@ -132,7 +132,7 @@ class TimeZoneMonitorLinuxImpl
+ // reasonable.
+ const char* const kFilesToWatch[] = {
+ #if BUILDFLAG(IS_BSD)
+- "/etc/localtime",
++ "@PKG_SYSCONFBASE@/localtime",
+ #else
+ "/etc/localtime", "/etc/timezone", "/etc/TZ",
+ #endif
+diff --git a/services/device/usb/BUILD.gn b/services/device/usb/BUILD.gn
+index 7d9063bffa..af677e3e3f 100644
+--- a/services/device/usb/BUILD.gn
++++ b/services/device/usb/BUILD.gn
+@@ -114,7 +114,7 @@ static_library("usb") {
+ deps += [ "//third_party/libusb" ]
+ }
+
+- if (is_freebsd) {
++ if (is_freebsd || is_netbsd) {
+ sources += [
+ "usb_service_fake.cc",
+ "usb_service_fake.h",
+diff --git a/services/device/usb/usb_service.cc b/services/device/usb/usb_service.cc
+index f9d9ab14d2..ee0070823f 100644
+--- a/services/device/usb/usb_service.cc
++++ b/services/device/usb/usb_service.cc
+@@ -28,7 +28,7 @@
+ #include "services/device/usb/usb_service_win.h"
+ #elif BUILDFLAG(IS_OPENBSD)
+ #include "services/device/usb/usb_service_impl.h"
+-#elif BUILDFLAG(IS_FREEBSD)
++#elif BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
+ #include "services/device/usb/usb_service_fake.h"
+ #endif
+
+diff --git a/services/network/network_sandbox_hook_linux.h b/services/network/network_sandbox_hook_linux.h
+index 9d39bb72c6..20ff2dfaea 100644
+--- a/services/network/network_sandbox_hook_linux.h
++++ b/services/network/network_sandbox_hook_linux.h
+@@ -6,7 +6,7 @@
+ #define SERVICES_NETWORK_NETWORK_SANDBOX_HOOK_LINUX_H_
+
+ #include "base/component_export.h"
+-#if defined(__OpenBSD__) || defined(__FreeBSD__)
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ #include "sandbox/policy/sandbox.h"
+ #else
+ #include "sandbox/policy/linux/sandbox_linux.h"
+diff --git a/services/network/public/cpp/BUILD.gn b/services/network/public/cpp/BUILD.gn
+index dd3d7b9495..4cfb59af75 100644
+--- a/services/network/public/cpp/BUILD.gn
++++ b/services/network/public/cpp/BUILD.gn
+@@ -637,7 +637,7 @@ source_set("tests") {
+ ]
+ }
+
+- if (is_linux) {
++ if ((is_linux) && !is_bsd) {
+ sources += [ "network_interface_change_listener_mojom_traits_unittest.cc" ]
+ }
+
+diff --git a/services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_bsd.cc b/services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_bsd.cc
+index 8420decc95..102c9586a7 100644
+--- a/services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_bsd.cc
++++ b/services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_bsd.cc
+@@ -12,7 +12,7 @@
+
+ #include <vector>
+
+-#if BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
+ #define vm_rssize info.p_vm_rssize
+ #elif BUILDFLAG(IS_FREEBSD)
+ #include <sys/user.h>
+@@ -28,13 +28,21 @@ bool OSMetrics::FillOSMemoryDump(base::ProcessId pid,
+ ? base::Process::Current()
+ : base::Process::Open(pid);
+ const size_t kPageSize = base::GetPageSize();
++#if BUILDFLAG(IS_NETBSD)
++ struct kinfo_proc2 info;
++ size_t length = sizeof(struct kinfo_proc2);
++#else
+ struct kinfo_proc info;
+ size_t length = sizeof(struct kinfo_proc);
++#endif
+ #if BUILDFLAG(IS_OPENBSD)
+ int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process.Handle(),
+ static_cast<int>(length), 1 };
+ #elif BUILDFLAG(IS_FREEBSD)
+ int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process.Handle() };
++#elif BUILDFLAG(IS_NETBSD)
++ int mib[] = { CTL_KERN, KERN_PROC2, KERN_PROC_PID, process.Handle(),
++ sizeof(struct kinfo_proc2), 1 };
+ #endif
+
+ if (sysctl(mib, std::size(mib), &info, &length, NULL, 0) < 0)
+diff --git a/skia/ext/platform_canvas.h b/skia/ext/platform_canvas.h
+index 34d8b858f5..4a14221dbd 100644
+--- a/skia/ext/platform_canvas.h
++++ b/skia/ext/platform_canvas.h
+@@ -58,7 +58,7 @@ SK_API HDC GetNativeDrawingContext(SkCanvas* canvas);
+
+ #elif defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || \
+ defined(__sun) || defined(ANDROID) || defined(__APPLE__) || \
+- defined(__Fuchsia__)
++ defined(__Fuchsia__) || defined(__NetBSD__)
+ // Construct a canvas from the given memory region. The memory is not cleared
+ // first. @data must be, at least, @height * StrideForWidth(@width) bytes.
+ SK_API std::unique_ptr<SkCanvas> CreatePlatformCanvasWithPixels(
+diff --git a/third_party/abseil-cpp/absl/base/internal/raw_logging.cc b/third_party/abseil-cpp/absl/base/internal/raw_logging.cc
+index d32b40a8bb..d2b3b1faa5 100644
+--- a/third_party/abseil-cpp/absl/base/internal/raw_logging.cc
++++ b/third_party/abseil-cpp/absl/base/internal/raw_logging.cc
+@@ -44,7 +44,7 @@
+ #if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || \
+ defined(__hexagon__) || defined(__Fuchsia__) || \
+ defined(__native_client__) || defined(__OpenBSD__) || \
+- defined(__EMSCRIPTEN__) || defined(__ASYLO__)
++ defined(__EMSCRIPTEN__) || defined(__ASYLO__) || defined(__NetBSD__)
+
+ #include <unistd.h>
+
+diff --git a/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h b/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h
+index 0272f0305d..c8816e30d5 100644
+--- a/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h
++++ b/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h
+@@ -34,7 +34,8 @@
+ #if defined(__ELF__) && !defined(__OpenBSD__) && !defined(__QNX__) && \
+ !defined(__native_client__) && !defined(__asmjs__) && \
+ !defined(__wasm__) && !defined(__HAIKU__) && !defined(__sun) && \
+- !defined(__VXWORKS__) && !defined(__hexagon__) && !defined(__FreeBSD__)
++ !defined(__VXWORKS__) && !defined(__hexagon__) && !defined(__FreeBSD__) && \
++ !defined(__NetBSD__)
+ #define ABSL_HAVE_ELF_MEM_IMAGE 1
+ #endif
+
+diff --git a/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc b/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc
+index e7e30a2fb7..f2c751009a 100644
+--- a/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc
++++ b/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc
+@@ -19,7 +19,8 @@
+ #endif
+
+ #if defined(HAS_STRPTIME) && HAS_STRPTIME
+-#if !defined(_XOPEN_SOURCE) && !defined(__FreeBSD__) && !defined(__OpenBSD__)
++#if !defined(_XOPEN_SOURCE) && !defined(__FreeBSD__) && !defined(__OpenBSD__) && \
++ !defined(__NetBSD__)
+ #define _XOPEN_SOURCE 500 // Exposes definitions for SUSv2 (UNIX 98).
+ #endif
+ #endif
+diff --git a/third_party/afl/src/afl-fuzz.c b/third_party/afl/src/afl-fuzz.c
+index a787f9a685..30f0d59f73 100644
+--- a/third_party/afl/src/afl-fuzz.c
++++ b/third_party/afl/src/afl-fuzz.c
+@@ -58,7 +58,8 @@
+ #include <sys/ioctl.h>
+ #include <sys/file.h>
+
+-#if defined(__APPLE__) || defined(__FreeBSD__) || defined (__OpenBSD__)
++#if defined(__APPLE__) || defined(__FreeBSD__) || defined (__OpenBSD__) || \
++ defined (__NetBSD__)
+ # include <sys/sysctl.h>
+ #endif /* __APPLE__ || __FreeBSD__ || __OpenBSD__ */
+
+@@ -3531,7 +3532,8 @@ static double get_runnable_processes(void) {
+
+ static double res;
+
+-#if defined(__APPLE__) || defined(__FreeBSD__) || defined (__OpenBSD__)
++#if defined(__APPLE__) || defined(__FreeBSD__) || defined (__OpenBSD__) || \
++ defined (__NetBSD__)
+
+ /* I don't see any portable sysctl or so that would quickly give us the
+ number of runnable processes; the 1-minute load average can be a
+@@ -7347,7 +7349,8 @@ static void get_core_count(void) {
+
+ u32 cur_runnable = 0;
+
+-#if defined(__APPLE__) || defined(__FreeBSD__) || defined (__OpenBSD__)
++#if defined(__APPLE__) || defined(__FreeBSD__) || defined (__OpenBSD__) || \
++ defined (__NetBSD__)
+
+ size_t s = sizeof(cpu_core_count);
+
+@@ -7392,7 +7395,8 @@ static void get_core_count(void) {
+
+ cur_runnable = (u32)get_runnable_processes();
+
+-#if defined(__APPLE__) || defined(__FreeBSD__) || defined (__OpenBSD__)
++#if defined(__APPLE__) || defined(__FreeBSD__) || defined (__OpenBSD__) || \
++ defined (__NetBSD__)
+
+ /* Add ourselves, since the 1-minute average doesn't include that yet. */
+
+diff --git a/third_party/angle/src/common/platform.h b/third_party/angle/src/common/platform.h
+index 08078b3d8b..4ffd458d4d 100644
+--- a/third_party/angle/src/common/platform.h
++++ b/third_party/angle/src/common/platform.h
+@@ -30,12 +30,15 @@
+ # define ANGLE_PLATFORM_OPENBSD 1
+ # define ANGLE_PLATFORM_POSIX 1
+ # define ANGLE_PLATFORM_BSD 1
++#elif defined(__NetBSD__)
++# define ANGLE_PLATFORM_NETBSD 1
++# define ANGLE_PLATFORM_POSIX 1
++# define ANGLE_PLATFORM_BSD 1
+ #elif defined(__FreeBSD__)
+ # define ANGLE_PLATFORM_FREEBSD 1
+ # define ANGLE_PLATFORM_POSIX 1
+ # define ANGLE_PLATFORM_BSD 1
+-#elif defined(__NetBSD__) || \
+- defined(__DragonFly__) || defined(__sun) || defined(__GLIBC__) || defined(__GNU__) || \
++#elif defined(__DragonFly__) || defined(__sun) || defined(__GLIBC__) || defined(__GNU__) || \
+ defined(__QNX__) || defined(__Fuchsia__) || defined(__HAIKU__)
+ # define ANGLE_PLATFORM_POSIX 1
+ #else
+diff --git a/third_party/angle/src/common/system_utils_linux.cpp b/third_party/angle/src/common/system_utils_linux.cpp
+index c64a05f79e..410ae2f25d 100644
+--- a/third_party/angle/src/common/system_utils_linux.cpp
++++ b/third_party/angle/src/common/system_utils_linux.cpp
+@@ -17,6 +17,8 @@
+
+ #if ANGLE_PLATFORM_OPENBSD
+ #include <pthread_np.h>
++#elif ANGLE_PLATFORM_NETBSD
++#include <pthread.h>
+ #endif
+
+ namespace angle
+@@ -64,6 +66,8 @@ void SetCurrentThreadName(const char *name)
+ // returned), just ignore the name.
+ #if ANGLE_PLATFORM_OPENBSD
+ pthread_set_name_np(pthread_self(), name);
++#elif ANGLE_PLATFORM_NETBSD
++ pthread_setname_np(pthread_self(), "%s", (void *)name);
+ #else
+ pthread_setname_np(pthread_self(), name);
+ #endif
+diff --git a/third_party/angle/src/gpu_info_util/SystemInfo_internal.h b/third_party/angle/src/gpu_info_util/SystemInfo_internal.h
+index 3471ed3f19..12da25f48f 100644
+--- a/third_party/angle/src/gpu_info_util/SystemInfo_internal.h
++++ b/third_party/angle/src/gpu_info_util/SystemInfo_internal.h
+@@ -15,7 +15,7 @@
+ namespace angle
+ {
+
+-#if defined(__OpenBSD__) || defined(__FreeBSD__)
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ bool CollectMesaCardInfo(std::vector<GPUDeviceInfo> *devices);
+ #if defined(__FreeBSD__)
+ bool GetPCIDevicesFreeBSD(std::vector<GPUDeviceInfo> *devices);
+diff --git a/third_party/angle/src/gpu_info_util/SystemInfo_linux.cpp b/third_party/angle/src/gpu_info_util/SystemInfo_linux.cpp
+index 3593b70adf..90c7e53789 100644
+--- a/third_party/angle/src/gpu_info_util/SystemInfo_linux.cpp
++++ b/third_party/angle/src/gpu_info_util/SystemInfo_linux.cpp
+@@ -71,7 +71,7 @@ bool GetPCIDevicesWithLibPCI(std::vector<GPUDeviceInfo> *devices)
+
+ bool GetSystemInfo(SystemInfo *info)
+ {
+-#if defined(__OpenBSD__) || defined(__FreeBSD__)
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ if (!CollectMesaCardInfo(&(info->gpus)))
+ {
+ #if defined(__FreeBSD__)
+diff --git a/third_party/angle/src/gpu_info_util/SystemInfo_x11.cpp b/third_party/angle/src/gpu_info_util/SystemInfo_x11.cpp
+index 9f028cf086..f1bdca8eba 100644
+--- a/third_party/angle/src/gpu_info_util/SystemInfo_x11.cpp
++++ b/third_party/angle/src/gpu_info_util/SystemInfo_x11.cpp
+@@ -8,7 +8,7 @@
+
+ #include "gpu_info_util/SystemInfo_internal.h"
+
+-#if defined(__OpenBSD__) || defined(__FreeBSD__)
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ #include <GL/glx.h>
+ #include <GL/glxext.h>
+ #endif
+@@ -22,7 +22,7 @@
+ # error SystemInfo_x11.cpp compiled without GPU_INFO_USE_X11
+ #endif
+
+-#if defined(__OpenBSD__) || defined(__FreeBSD__)
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ #define GLX_RENDERER_VENDOR_ID_MESA 0x8183
+ #define GLX_RENDERER_DEVICE_ID_MESA 0x8184
+ #endif
+@@ -30,7 +30,7 @@
+ namespace angle
+ {
+
+-#if defined(__OpenBSD__) || defined(__FreeBSD__)
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ bool CollectMesaCardInfo(std::vector<GPUDeviceInfo> *devices)
+ {
+ unsigned int vid[3], did[3];
+diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py b/third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py
+index cdbf6cb89a..bb75cb06f5 100644
+--- a/third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py
++++ b/third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py
+@@ -30,7 +30,7 @@ def init(root_src_dir, enable_style_format=True):
+
+ # Determine //buildtools/<platform>/ directory
+ new_path_platform_suffix = ""
+- if sys.platform.startswith(("linux","openbsd","freebsd")):
++ if sys.platform.startswith(("linux","openbsd","freebsd","netbsd")):
+ platform = "linux64"
+ exe_suffix = ""
+ elif sys.platform.startswith("darwin"):
+diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
+index f96abe5df1..b9efc3f326 100644
+--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
++++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
+@@ -324,7 +324,7 @@
+ name: "AppTitle",
+ status: "experimental",
+ origin_trial_feature_name: "AppTitle",
+- origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd"],
++ origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd", "netbsd"],
+ base_feature: "WebAppEnableAppTitle",
+ },
+ {
+@@ -1528,7 +1528,7 @@
+ status: "test",
+ base_feature: "none",
+ origin_trial_feature_name: "FedCmContinueOnBundle",
+- origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd"],
++ origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd", "netbsd"],
+ origin_trial_allows_third_party: true,
+ },
+ {
+@@ -1545,7 +1545,7 @@
+ status: "test",
+ base_feature: "none",
+ origin_trial_feature_name: "FedCmButtonMode",
+- origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd"],
++ origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd", "netbsd"],
+ origin_trial_allows_third_party: true,
+ },
+ {
+@@ -1590,7 +1590,7 @@
+ base_feature: "none",
+ public: true,
+ origin_trial_feature_name: "FedCmMultipleIdentityProviders",
+- origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd"],
++ origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd", "netbsd"],
+ origin_trial_allows_third_party: true,
+ },
+ {
+@@ -1928,7 +1928,7 @@
+ base_feature_status: "enabled",
+ copied_from_base_feature_if: "overridden",
+ origin_trial_feature_name: "FullscreenPopupWindows",
+- origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd"],
++ origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd", "netbsd"],
+ },
+ {
+ name: "GamepadButtonAxisEvents",
+@@ -3005,7 +3005,7 @@
+ // Tracking bug for the implementation: https://crbug.com/1462930
+ name: "PermissionElement",
+ origin_trial_feature_name: "PermissionElement",
+- origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos", "openbsd", "freebsd"],
++ origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos", "openbsd", "freebsd", "netbsd"],
+ status: "experimental",
+ public: true,
+ base_feature_status: "enabled",
+@@ -3140,7 +3140,7 @@
+ {
+ name: "PrivateNetworkAccessPermissionPrompt",
+ origin_trial_feature_name: "PrivateNetworkAccessPermissionPrompt",
+- origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos", "openbsd", "freebsd"],
++ origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos", "openbsd", "freebsd", "netbsd"],
+ status: "stable",
+ public: true,
+ base_feature: "none",
+@@ -4116,7 +4116,7 @@
+ name: "UnrestrictedSharedArrayBuffer",
+ base_feature: "none",
+ origin_trial_feature_name: "UnrestrictedSharedArrayBuffer",
+- origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos", "openbsd", "freebsd"],
++ origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos", "openbsd", "freebsd", "netbsd"],
+ },
+ // Enables using policy-controlled feature "usb-unrestricted" to allow
+ // isolated context to access protected USB interface classes and to
+@@ -4285,7 +4285,7 @@
+ {
+ name: "WebAppScopeExtensions",
+ origin_trial_feature_name: "WebAppScopeExtensions",
+- origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd"],
++ origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd", "netbsd"],
+ status: "experimental",
+ base_feature: "none",
+ },
+@@ -4328,7 +4328,7 @@
+ status: "experimental",
+ base_feature: "none",
+ origin_trial_feature_name: "WebAppUrlHandling",
+- origin_trial_os: ["win", "mac", "linux", "openbsd", "freebsd"],
++ origin_trial_os: ["win", "mac", "linux", "openbsd", "freebsd", "netbsd"],
+ },
+ {
+ // WebAssembly JS Promise Integration,
+diff --git a/third_party/blink/renderer/platform/wtf/stack_util.cc b/third_party/blink/renderer/platform/wtf/stack_util.cc
+index b59f2153b2..c394c8c0c6 100644
+--- a/third_party/blink/renderer/platform/wtf/stack_util.cc
++++ b/third_party/blink/renderer/platform/wtf/stack_util.cc
+@@ -21,8 +21,10 @@ extern "C" void* __libc_stack_end; // NOLINT
+
+ #if BUILDFLAG(IS_BSD)
+ #include <sys/signal.h>
++#if !BUILDFLAG(IS_NETBSD)
+ #include <pthread_np.h>
+ #endif
++#endif
+
+ namespace WTF {
+
+@@ -36,7 +38,8 @@ size_t GetUnderestimatedStackSize() {
+ // correctly for the main thread.
+
+ #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_FUCHSIA) || \
++ BUILDFLAG(IS_NETBSD)
+ // pthread_getattr_np() can fail if the thread is not invoked by
+ // pthread_create() (e.g., the main thread of blink_unittests).
+ // If so, a conservative size estimate is returned.
+@@ -57,7 +60,7 @@ size_t GetUnderestimatedStackSize() {
+ pthread_attr_destroy(&attr);
+ return size;
+ }
+-#if BUILDFLAG(IS_FREEBSD)
++#if BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
+ pthread_attr_destroy(&attr);
+ #endif
+
+@@ -106,7 +109,7 @@ size_t GetUnderestimatedStackSize() {
+
+ void* GetStackStart() {
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+- BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_NETBSD)
+ pthread_attr_t attr;
+ int error;
+ #if BUILDFLAG(IS_FREEBSD)
+@@ -123,7 +126,7 @@ void* GetStackStart() {
+ pthread_attr_destroy(&attr);
+ return reinterpret_cast<uint8_t*>(base) + size;
+ }
+-#if BUILDFLAG(IS_FREEBSD)
++#if BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
+ pthread_attr_destroy(&attr);
+ #endif
+ #if defined(__GLIBC__)
+diff --git a/third_party/blink/renderer/platform/wtf/thread_specific.h b/third_party/blink/renderer/platform/wtf/thread_specific.h
+index 05247e1cd5..e157854abc 100644
+--- a/third_party/blink/renderer/platform/wtf/thread_specific.h
++++ b/third_party/blink/renderer/platform/wtf/thread_specific.h
+@@ -104,7 +104,8 @@ inline bool ThreadSpecific<T>::IsSet() {
+ template <typename T>
+ inline ThreadSpecific<T>::operator T*() {
+ T* off_thread_ptr;
+-#if defined(__GLIBC__) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FREEBSD)
++#if defined(__GLIBC__) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FREEBSD) || \
++ BUILDFLAG(IS_NETBSD)
+ // TLS is fast on these platforms.
+ // TODO(csharrison): Qualify this statement for Android.
+ const bool kMainThreadAlwaysChecksTLS = true;
+diff --git a/third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc b/third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc
+index 420fe059fd..742616f562 100644
+--- a/third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc
++++ b/third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc
+@@ -163,6 +163,8 @@ std::string MinidumpMiscInfoDebugBuildString() {
+ static constexpr char kOS[] = "openbsd";
+ #elif defined(OS_FREEBSD)
+ static constexpr char kOS[] = "freebsd";
++#elif defined(OS_NETBSD)
++ static constexpr char kOS[] = "netbsd";
+ #else
+ #error define kOS for this operating system
+ #endif
+diff --git a/third_party/crashpad/crashpad/util/misc/capture_context.h b/third_party/crashpad/crashpad/util/misc/capture_context.h
+index 63e57a29ac..97ced1bb8e 100644
+--- a/third_party/crashpad/crashpad/util/misc/capture_context.h
++++ b/third_party/crashpad/crashpad/util/misc/capture_context.h
+@@ -22,7 +22,7 @@
+ #elif BUILDFLAG(IS_WIN)
+ #include <windows.h>
+ #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+- BUILDFLAG(IS_FREEBSD)
++ BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
+ #include <ucontext.h>
+ #endif // BUILDFLAG(IS_APPLE)
+
+diff --git a/third_party/dawn/include/dawn/native/VulkanBackend.h b/third_party/dawn/include/dawn/native/VulkanBackend.h
+index 3221ad2e37..8b987ab197 100644
+--- a/third_party/dawn/include/dawn/native/VulkanBackend.h
++++ b/third_party/dawn/include/dawn/native/VulkanBackend.h
+@@ -83,7 +83,8 @@ struct ExternalImageExportInfoVk : ExternalImageExportInfo {
+ };
+
+ // Can't use DAWN_PLATFORM_IS(LINUX) since header included in both Dawn and Chrome
+-#if defined(__linux__) || defined(__Fuchsia__) || defined(__OpenBSD__) || defined(__FreeBSD__)
++#if defined(__linux__) || defined(__Fuchsia__) || defined(__OpenBSD__) || defined(__FreeBSD__) || \
++ defined(__NetBSD__)
+
+ // Common properties of external images represented by FDs. On successful import the file
+ // descriptor's ownership is transferred to the Dawn implementation and they shouldn't be
+diff --git a/third_party/dawn/src/dawn/common/Platform.h b/third_party/dawn/src/dawn/common/Platform.h
+index 7833c5322f..aa885145f0 100644
+--- a/third_party/dawn/src/dawn/common/Platform.h
++++ b/third_party/dawn/src/dawn/common/Platform.h
+@@ -59,7 +59,7 @@
+ #error "Unsupported Windows platform."
+ #endif
+
+-#elif defined(__OpenBSD__) || defined(__FreeBSD__)
++#elif defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ #define DAWN_PLATFORM_IS_LINUX 1
+ #define DAWN_PLATFORM_IS_BSD 1
+ #define DAWN_PLATFORM_IS_POSIX 1
+diff --git a/third_party/ffmpeg/configure b/third_party/ffmpeg/configure
+index 4fab369817..97f91efcb8 100755
+--- a/third_party/ffmpeg/configure
++++ b/third_party/ffmpeg/configure
+@@ -6818,8 +6818,8 @@ if ! disabled pthreads && ! enabled w32threads && ! enabled os2threads; then
+ if enabled pthread_np_h; then
+ hdrs="$hdrs pthread_np.h"
+ fi
+- check_lib pthread_set_name_np pthread_np.h pthread_set_name_np -lpthread
+- check_lib pthread_setname_np pthread_np.h pthread_setname_np -lpthread
++ check_lib pthread_set_name_np "$hdrs" pthread_set_name_np -lpthread
++ check_lib pthread_setname_np "$hdrs" pthread_setname_np -lpthread
+ fi
+ fi
+
+diff --git a/third_party/ffmpeg/libavutil/random_seed.c b/third_party/ffmpeg/libavutil/random_seed.c
+index b234db552a..affd8c7bda 100644
+--- a/third_party/ffmpeg/libavutil/random_seed.c
++++ b/third_party/ffmpeg/libavutil/random_seed.c
+@@ -20,6 +20,10 @@
+
+ #include "config.h"
+
++#if defined(__NetBSD__)
++#define _NETBSD_SOURCE 1
++#endif
++
+ #if HAVE_UNISTD_H
+ #include <unistd.h>
+ #endif
+diff --git a/third_party/ipcz/src/reference_drivers/random.cc b/third_party/ipcz/src/reference_drivers/random.cc
+index 831b3a61d7..faaebde8b3 100644
+--- a/third_party/ipcz/src/reference_drivers/random.cc
++++ b/third_party/ipcz/src/reference_drivers/random.cc
+@@ -14,7 +14,8 @@
+ #include <windows.h>
+ #elif BUILDFLAG(IS_FUCHSIA)
+ #include <zircon/syscalls.h>
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
++#elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)) && \
++ !BUILDFLAG(IS_NETBSD)
+ #include <asm/unistd.h>
+ #include <sys/syscall.h>
+ #include <unistd.h>
+@@ -25,7 +26,7 @@
+ #include <nacl/nacl_random.h>
+ #endif
+
+-#if BUILDFLAG(IS_POSIX)
++#if BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_NETBSD)
+ #include <errno.h>
+ #include <fcntl.h>
+ #include <unistd.h>
+@@ -55,7 +56,7 @@ decltype(&ProcessPrng) GetProcessPrng() {
+ }
+ #endif
+
+-#if defined(OS_POSIX) && !BUILDFLAG(IS_MAC)
++#if (defined(OS_POSIX) && !BUILDFLAG(IS_MAC)) || BUILDFLAG(IS_NETBSD)
+ void RandomBytesFromDevUrandom(absl::Span<uint8_t> destination) {
+ static int urandom_fd = [] {
+ for (;;) {
+@@ -86,7 +87,8 @@ void RandomBytes(absl::Span<uint8_t> destination) {
+ process_prng_fn(destination.data(), destination.size());
+ #elif BUILDFLAG(IS_FUCHSIA)
+ zx_cprng_draw(destination.data(), destination.size());
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
++#elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)) && \
++ !BUILDFLAG(IS_NETBSD)
+ while (!destination.empty()) {
+ ssize_t result =
+ syscall(__NR_getrandom, destination.data(), destination.size(), 0);
+@@ -102,7 +104,7 @@ void RandomBytes(absl::Span<uint8_t> destination) {
+ #elif BUILDFLAG(IS_MAC)
+ const bool ok = getentropy(destination.data(), destination.size()) == 0;
+ ABSL_ASSERT(ok);
+-#elif BUILDFLAG(IS_IOS)
++#elif BUILDFLAG(IS_IOS) || BUILDFLAG(IS_NETBSD)
+ RandomBytesFromDevUrandom(destination);
+ #elif BUILDFLAG(IS_NACL)
+ while (!destination.empty()) {
+diff --git a/third_party/libc++/src/src/chrono.cpp b/third_party/libc++/src/src/chrono.cpp
+index e26e681355..8f70facd78 100644
+--- a/third_party/libc++/src/src/chrono.cpp
++++ b/third_party/libc++/src/src/chrono.cpp
+@@ -31,7 +31,8 @@
+ # include <sys/time.h> // for gettimeofday and timeval
+ #endif
+
+-#if defined(__APPLE__) || defined(__gnu_hurd__) || (defined(_POSIX_TIMERS) && _POSIX_TIMERS > 0) || defined(__OpenBSD__) || defined(__FreeBSD__)
++#if defined(__APPLE__) || defined(__gnu_hurd__) || (defined(_POSIX_TIMERS) && _POSIX_TIMERS > 0) || defined(__OpenBSD__) || \
++ defined(__FreeBSD__) || defined(__NetBSD__)
+ # define _LIBCPP_HAS_CLOCK_GETTIME
+ #endif
+
+diff --git a/third_party/libc++/src/src/filesystem/filesystem_clock.cpp b/third_party/libc++/src/src/filesystem/filesystem_clock.cpp
+index 31d7446de1..4b08dbd931 100644
+--- a/third_party/libc++/src/src/filesystem/filesystem_clock.cpp
++++ b/third_party/libc++/src/src/filesystem/filesystem_clock.cpp
+@@ -29,7 +29,8 @@
+ # include <sys/time.h> // for gettimeofday and timeval
+ #endif
+
+-#if defined(__APPLE__) || defined(__gnu_hurd__) || (defined(_POSIX_TIMERS) && _POSIX_TIMERS > 0) || defined(__OpenBSD__) || defined(__FreeBSD__)
++#if defined(__APPLE__) || defined(__gnu_hurd__) || (defined(_POSIX_TIMERS) && _POSIX_TIMERS > 0) || defined(__OpenBSD__) || \
++ defined(__FreeBSD__) || defined(__NetBSD__)
+ # define _LIBCPP_HAS_CLOCK_GETTIME
+ #endif
+
+diff --git a/third_party/libc++abi/src/src/cxa_guard_impl.h b/third_party/libc++abi/src/src/cxa_guard_impl.h
+index 320501cb85..bb139b0bf0 100644
+--- a/third_party/libc++abi/src/src/cxa_guard_impl.h
++++ b/third_party/libc++abi/src/src/cxa_guard_impl.h
+@@ -425,6 +425,17 @@ void PlatformFutexWake(int* addr) {
+ __tsan_release(addr);
+ futex(reinterpret_cast<volatile uint32_t*>(addr), WAKE, INT_MAX, NULL, NULL);
+ }
++#elif defined(__NetBSD__)
++void PlatformFutexWait(int* addr, int expect) {
++ constexpr int WAIT = 0;
++ syscall(SYS___futex, addr, WAIT, expect, NULL, NULL, 0, 0);
++ __tsan_acquire(addr);
++}
++void PlatformFutexWake(int* addr) {
++ constexpr int WAKE = 1;
++ __tsan_release(addr);
++ syscall(SYS___futex, addr, WAKE, INT_MAX, NULL, NULL, 0, 0);
++}
+ #elif defined(SYS_futex)
+ void PlatformFutexWait(int* addr, int expect) {
+ constexpr int WAIT = 0;
+diff --git a/third_party/libdrm/src/xf86drmMode.c b/third_party/libdrm/src/xf86drmMode.c
+index 22a8a7c229..246d81d7f4 100644
+--- a/third_party/libdrm/src/xf86drmMode.c
++++ b/third_party/libdrm/src/xf86drmMode.c
+@@ -966,7 +966,7 @@ drm_public int drmCheckModesettingSupported(const char *busid)
+ }
+ #elif defined(__DragonFly__)
+ return 0;
+-#elif defined(__OpenBSD__)
++#elif defined(__OpenBSD__) || defined(__NetBSD__)
+ int fd;
+ struct drm_mode_card_res res;
+ drmModeResPtr r = 0;
+@@ -1119,7 +1119,11 @@ drm_public int drmModePageFlipTarget(int fd, uint32_t crtc_id, uint32_t fb_id,
+
+ drm_public int drmModeSetPlane(int fd, uint32_t plane_id, uint32_t crtc_id,
+ uint32_t fb_id, uint32_t flags,
++#if defined(__NetBSD__)
++ uint32_t crtc_x, uint32_t crtc_y,
++#else
+ int32_t crtc_x, int32_t crtc_y,
++#endif
+ uint32_t crtc_w, uint32_t crtc_h,
+ uint32_t src_x, uint32_t src_y,
+ uint32_t src_w, uint32_t src_h)
+diff --git a/third_party/libphonenumber/dist/cpp/src/phonenumbers/base/memory/singleton.h b/third_party/libphonenumber/dist/cpp/src/phonenumbers/base/memory/singleton.h
+index f01375cc9d..1f85287d46 100644
+--- a/third_party/libphonenumber/dist/cpp/src/phonenumbers/base/memory/singleton.h
++++ b/third_party/libphonenumber/dist/cpp/src/phonenumbers/base/memory/singleton.h
+@@ -22,7 +22,8 @@
+ #elif (__cplusplus >= 201103L) && defined(I18N_PHONENUMBERS_USE_STDMUTEX)
+ // C++11 Lock implementation based on std::mutex.
+ #include "phonenumbers/base/memory/singleton_stdmutex.h"
+-#elif defined(__linux__) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD)
++#elif defined(__linux__) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__FreeBSD__) || \
++ defined(__NetBSD__) || defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD)
+ #include "phonenumbers/base/memory/singleton_posix.h"
+ #elif defined(WIN32)
+ #include "phonenumbers/base/memory/singleton_win32.h"
+diff --git a/third_party/libphonenumber/dist/cpp/src/phonenumbers/base/synchronization/lock.h b/third_party/libphonenumber/dist/cpp/src/phonenumbers/base/synchronization/lock.h
+index fa7f9d8c37..30d53c3de2 100644
+--- a/third_party/libphonenumber/dist/cpp/src/phonenumbers/base/synchronization/lock.h
++++ b/third_party/libphonenumber/dist/cpp/src/phonenumbers/base/synchronization/lock.h
+@@ -22,7 +22,8 @@
+ #elif (__cplusplus >= 201103L) && defined(I18N_PHONENUMBERS_USE_STDMUTEX)
+ // C++11 Lock implementation based on std::mutex.
+ #include "phonenumbers/base/synchronization/lock_stdmutex.h"
+-#elif defined(__linux__) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD)
++#elif defined(__linux__) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__FreeBSD__) || \
++ defined(__NetBSD__) || defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD)
+ #include "phonenumbers/base/synchronization/lock_posix.h"
+ #elif defined(WIN32)
+ #include "phonenumbers/base/synchronization/lock_win32.h"
+diff --git a/third_party/libphonenumber/dist/cpp/src/phonenumbers/base/thread_checker.h b/third_party/libphonenumber/dist/cpp/src/phonenumbers/base/thread_checker.h
+index ba5b99435d..848ae59278 100644
+--- a/third_party/libphonenumber/dist/cpp/src/phonenumbers/base/thread_checker.h
++++ b/third_party/libphonenumber/dist/cpp/src/phonenumbers/base/thread_checker.h
+@@ -23,7 +23,7 @@
+ // user of the library know that it can't be used in a thread-safe manner when
+ // it is not depending on Boost.
+ #if !defined(__linux__) && !defined(__APPLE__) && !defined(__OpenBSD__) && !defined(__FreeBSD__) && !defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD) && \
+- !defined(I18N_PHONENUMBERS_NO_THREAD_SAFETY) && \
++ !defined(__NetBSD__) && !defined(I18N_PHONENUMBERS_NO_THREAD_SAFETY) && \
+ !((__cplusplus >= 201103L) && defined(I18N_PHONENUMBERS_USE_STDMUTEX)) && \
+ !defined(WIN32)
+ #error Building without Boost, please provide \
+@@ -33,7 +33,8 @@
+ #endif
+
+ #if !defined(NDEBUG) && !defined(I18N_PHONENUMBERS_USE_BOOST) && \
+- (defined(__linux__) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD))
++ (defined(__linux__) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__FreeBSD__) || \
++ defined(__NetBSD__) || defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD))
+
+ #include <pthread.h>
+
+diff --git a/third_party/libsync/src/include/sync/sync.h b/third_party/libsync/src/include/sync/sync.h
+index 5f407c0795..c26073f5ed 100644
+--- a/third_party/libsync/src/include/sync/sync.h
++++ b/third_party/libsync/src/include/sync/sync.h
+@@ -22,7 +22,7 @@
+ #include <sys/cdefs.h>
+ #include <stdint.h>
+
+-#if !defined(__OpenBSD__) && !defined(__FreeBSD__)
++#if !defined(__OpenBSD__) && !defined(__FreeBSD__) && !defined(__NetBSD__)
+ #include <linux/types.h>
+ #endif
+
+diff --git a/third_party/libsync/src/sync.c b/third_party/libsync/src/sync.c
+index cd943d0d66..9d6a4b0abd 100644
+--- a/third_party/libsync/src/sync.c
++++ b/third_party/libsync/src/sync.c
+@@ -29,7 +29,7 @@
+
+ #include <sync/sync.h>
+
+-#if defined(__OpenBSD__) || defined(__FreeBSD__)
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ typedef __uint8_t __u8;
+ typedef __uint32_t __u32;
+ typedef __int32_t __s32;
+diff --git a/third_party/lzma_sdk/C/CpuArch.c b/third_party/lzma_sdk/C/CpuArch.c
+index d848ac199b..239f2b6884 100644
+--- a/third_party/lzma_sdk/C/CpuArch.c
++++ b/third_party/lzma_sdk/C/CpuArch.c
+@@ -445,7 +445,7 @@ MY_HWCAP_CHECK_FUNC (AES)
+
+ #include <sys/auxv.h>
+
+-#if !defined(ARMV8_OS_FUCHSIA) && !defined(__FreeBSD__)
++#if !defined(ARMV8_OS_FUCHSIA) && !defined(__FreeBSD__) && !defined(__NetBSD__)
+ #define USE_HWCAP
+ #endif // !defined(ARMV8_OS_FUCHSIA)
+
+diff --git a/third_party/node/node.py b/third_party/node/node.py
+index 17a7633dbc..c4dad924b0 100755
+--- a/third_party/node/node.py
++++ b/third_party/node/node.py
+@@ -22,6 +22,7 @@ def GetBinaryPath():
+ 'Linux': ('linux', 'node-linux-x64', 'bin', 'node'),
+ 'OpenBSD': ('openbsd', 'node-openbsd', 'bin', 'node'),
+ 'FreeBSD': ('freebsd', 'node-freebsd', 'bin', 'node'),
++ 'NetBSD': ('netbsd', 'node-netbsd', 'bin', 'node'),
+ 'Windows': ('win', 'node.exe'),
+ }[platform.system()])
+
+diff --git a/third_party/perfetto/include/perfetto/base/build_config.h b/third_party/perfetto/include/perfetto/base/build_config.h
+index e090b30385..f972b86dd7 100644
+--- a/third_party/perfetto/include/perfetto/base/build_config.h
++++ b/third_party/perfetto/include/perfetto/base/build_config.h
+@@ -53,7 +53,7 @@
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MAC() 1
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_IOS() 0
+ #endif
+-#elif defined(__linux__) || defined(__OpenBSD__) || defined(__FreeBSD__)
++#elif defined(__linux__) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 1
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 1
+diff --git a/third_party/perfetto/include/perfetto/base/time.h b/third_party/perfetto/include/perfetto/base/time.h
+index 2bf6b9aa47..39f7db368f 100644
+--- a/third_party/perfetto/include/perfetto/base/time.h
++++ b/third_party/perfetto/include/perfetto/base/time.h
+@@ -199,7 +199,7 @@ inline TimeNanos GetTimeInternalNs(clockid_t clk_id) {
+ // Return ns from boot. Conversely to GetWallTimeNs, this clock counts also time
+ // during suspend (when supported).
+ inline TimeNanos GetBootTimeNs() {
+-#if defined(__FreeBSD__)
++#if defined(__FreeBSD__) || defined(__NetBSD__)
+ return GetTimeInternalNs(kWallTimeClockSource);
+ #else
+ // Determine if CLOCK_BOOTTIME is available on the first call.
+@@ -217,7 +217,7 @@ inline TimeNanos GetWallTimeNs() {
+ }
+
+ inline TimeNanos GetWallTimeRawNs() {
+-#if defined(__OpenBSD__)
++#if defined(__OpenBSD__) || defined(__NetBSD__)
+ return GetTimeInternalNs(CLOCK_MONOTONIC);
+ #elif defined(__FreeBSD__)
+ return GetTimeInternalNs(CLOCK_MONOTONIC_FAST);
+diff --git a/third_party/perfetto/src/base/unix_socket.cc b/third_party/perfetto/src/base/unix_socket.cc
+index 76a91369de..a9b899f5ae 100644
+--- a/third_party/perfetto/src/base/unix_socket.cc
++++ b/third_party/perfetto/src/base/unix_socket.cc
+@@ -44,7 +44,7 @@
+ #include <unistd.h>
+ #endif
+
+-#if PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE) || defined(__FreeBSD__)
++#if PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE) || defined(__FreeBSD__) || defined(__NetBSD__)
+ #include <sys/ucred.h>
+ #endif
+
+@@ -917,7 +917,7 @@ void UnixSocket::ReadPeerCredentialsPosix() {
+ return;
+ PERFETTO_CHECK(peer_cred_mode_ != SockPeerCredMode::kIgnore);
+
+-#if !defined(__FreeBSD__) && PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
++#if !defined(__FreeBSD__) && !defined(__NetBSD__) && PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
+ PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
+ #if PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)
+ struct sockpeercred user_cred;
+@@ -930,6 +930,14 @@ void UnixSocket::ReadPeerCredentialsPosix() {
+ PERFETTO_CHECK(res == 0);
+ peer_uid_ = user_cred.uid;
+ peer_pid_ = user_cred.pid;
++#elif defined(__NetBSD__)
++ struct unpcbid user_cred;
++ socklen_t len = sizeof(user_cred);
++ int fd = sock_raw_.fd();
++ int res = getsockopt(fd, 0, LOCAL_PEEREID, &user_cred, &len);
++ PERFETTO_CHECK(res == 0);
++ peer_uid_ = user_cred.unp_euid;
++ peer_pid_ = user_cred.unp_pid;
+ #elif PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE)
+ struct xucred user_cred;
+ socklen_t len = sizeof(user_cred);
+diff --git a/third_party/perfetto/src/trace_processor/importers/ftrace/v4l2_tracker.cc b/third_party/perfetto/src/trace_processor/importers/ftrace/v4l2_tracker.cc
+index c441fb124b..0387d9b06b 100644
+--- a/third_party/perfetto/src/trace_processor/importers/ftrace/v4l2_tracker.cc
++++ b/third_party/perfetto/src/trace_processor/importers/ftrace/v4l2_tracker.cc
+@@ -62,7 +62,7 @@ void V4l2Tracker::ParseV4l2Event(uint64_t fld_id,
+ case FtraceEvent::kV4l2QbufFieldNumber: {
+ V4l2QbufFtraceEvent::Decoder pb_evt(bytes.data, bytes.size);
+ BufferEvent evt;
+- evt.device_minor = pb_evt.minor();
++ evt.device_minor = pb_evt.gminor();
+ evt.index = pb_evt.index();
+ evt.type = pb_evt.type();
+ evt.bytesused = pb_evt.bytesused();
+@@ -103,7 +103,7 @@ void V4l2Tracker::ParseV4l2Event(uint64_t fld_id,
+ case FtraceEvent::kV4l2DqbufFieldNumber: {
+ V4l2DqbufFtraceEvent::Decoder pb_evt(bytes.data, bytes.size);
+ BufferEvent evt;
+- evt.device_minor = pb_evt.minor();
++ evt.device_minor = pb_evt.gminor();
+ evt.index = pb_evt.index();
+ evt.type = pb_evt.type();
+ evt.bytesused = pb_evt.bytesused();
+@@ -149,7 +149,7 @@ void V4l2Tracker::ParseV4l2Event(uint64_t fld_id,
+ case FtraceEvent::kVb2V4l2BufQueueFieldNumber: {
+ Vb2V4l2BufQueueFtraceEvent::Decoder pb_evt(bytes.data, bytes.size);
+ BufferEvent evt;
+- evt.device_minor = pb_evt.minor();
++ evt.device_minor = pb_evt.gminor();
+ evt.index = std::nullopt;
+ evt.type = std::nullopt;
+ evt.bytesused = std::nullopt;
+@@ -180,7 +180,7 @@ void V4l2Tracker::ParseV4l2Event(uint64_t fld_id,
+ case FtraceEvent::kVb2V4l2BufDoneFieldNumber: {
+ Vb2V4l2BufDoneFtraceEvent::Decoder pb_evt(bytes.data, bytes.size);
+ BufferEvent evt;
+- evt.device_minor = pb_evt.minor();
++ evt.device_minor = pb_evt.gminor();
+ evt.index = std::nullopt;
+ evt.type = std::nullopt;
+ evt.bytesused = std::nullopt;
+@@ -211,7 +211,7 @@ void V4l2Tracker::ParseV4l2Event(uint64_t fld_id,
+ case FtraceEvent::kVb2V4l2QbufFieldNumber: {
+ Vb2V4l2QbufFtraceEvent::Decoder pb_evt(bytes.data, bytes.size);
+ BufferEvent evt;
+- evt.device_minor = pb_evt.minor();
++ evt.device_minor = pb_evt.gminor();
+ evt.index = std::nullopt;
+ evt.type = std::nullopt;
+ evt.bytesused = std::nullopt;
+@@ -242,7 +242,7 @@ void V4l2Tracker::ParseV4l2Event(uint64_t fld_id,
+ case FtraceEvent::kVb2V4l2DqbufFieldNumber: {
+ Vb2V4l2DqbufFtraceEvent::Decoder pb_evt(bytes.data, bytes.size);
+ BufferEvent evt;
+- evt.device_minor = pb_evt.minor();
++ evt.device_minor = pb_evt.gminor();
+ evt.index = std::nullopt;
+ evt.type = std::nullopt;
+ evt.bytesused = std::nullopt;
+diff --git a/third_party/skia/src/gpu/ganesh/GrAutoLocaleSetter.h b/third_party/skia/src/gpu/ganesh/GrAutoLocaleSetter.h
+index db7a0d9353..4146bc6959 100644
+--- a/third_party/skia/src/gpu/ganesh/GrAutoLocaleSetter.h
++++ b/third_party/skia/src/gpu/ganesh/GrAutoLocaleSetter.h
+@@ -27,7 +27,7 @@
+ #define HAVE_XLOCALE 0
+ #endif
+
+-#if defined(SK_BUILD_FOR_ANDROID) || defined(__UCLIBC__) || defined(_NEWLIB_VERSION)
++#if defined(SK_BUILD_FOR_ANDROID) || defined(__UCLIBC__) || defined(_NEWLIB_VERSION) || defined(__NetBSD__)
+ #define HAVE_LOCALE_T 0
+ #else
+ #define HAVE_LOCALE_T 1
+diff --git a/third_party/skia/src/ports/SkMemory_malloc.cpp b/third_party/skia/src/ports/SkMemory_malloc.cpp
+index df1eee3ff9..564e572e23 100644
+--- a/third_party/skia/src/ports/SkMemory_malloc.cpp
++++ b/third_party/skia/src/ports/SkMemory_malloc.cpp
+@@ -15,7 +15,8 @@
+
+ #if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS)
+ #include <malloc/malloc.h>
+-#elif defined(SK_BUILD_FOR_ANDROID) || defined(SK_BUILD_FOR_UNIX) && !defined(__OpenBSD__)
++#elif defined(SK_BUILD_FOR_ANDROID) || defined(SK_BUILD_FOR_UNIX) && !defined(__OpenBSD__) && \
++ !defined(__NetBSD__)
+ #include <malloc.h>
+ #elif defined(SK_BUILD_FOR_WIN)
+ #include <malloc.h>
+@@ -126,7 +127,7 @@ size_t sk_malloc_size(void* addr, size_t size) {
+ #elif defined(SK_BUILD_FOR_ANDROID) && __ANDROID_API__ >= 17
+ completeSize = malloc_usable_size(addr);
+ SkASSERT(completeSize >= size);
+- #elif defined(SK_BUILD_FOR_UNIX) && !defined(__OpenBSD__)
++ #elif defined(SK_BUILD_FOR_UNIX) && !defined(__OpenBSD__) && !defined(__NetBSD__)
+ completeSize = malloc_usable_size(addr);
+ SkASSERT(completeSize >= size);
+ #elif defined(SK_BUILD_FOR_WIN)
+diff --git a/third_party/speech-dispatcher/libspeechd_version.h b/third_party/speech-dispatcher/libspeechd_version.h
+index c455a1ffa5..4520c3f56f 100644
+--- a/third_party/speech-dispatcher/libspeechd_version.h
++++ b/third_party/speech-dispatcher/libspeechd_version.h
+@@ -16,7 +16,7 @@
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+- * $Id: patch-third_party_speech-dispatcher_libspeechd_version_h,v 1.4 2024/03/22 13:10:56 robert Exp $
++ * Id: patch-third_party_speech-dispatcher_libspeechd_version_h,v 1.4 2024/03/22 13:10:56 robert
+ */
+
+ #ifndef _LIBSPEECHD_VERSION_H
+diff --git a/third_party/sqlite/src/amalgamation/sqlite3.c b/third_party/sqlite/src/amalgamation/sqlite3.c
+index 6bf7cecc94..2d03c334ee 100644
+--- a/third_party/sqlite/src/amalgamation/sqlite3.c
++++ b/third_party/sqlite/src/amalgamation/sqlite3.c
+@@ -20532,6 +20532,9 @@ SQLITE_PRIVATE int sqlite3HeapNearlyFull(void);
+ ** The alloca() routine never returns NULL. This will cause code paths
+ ** that deal with sqlite3StackAlloc() failures to be unreachable.
+ */
++#if defined(__NetBSD__)
++# undef SQLITE_USE_ALLOCA
++#endif
+ #ifdef SQLITE_USE_ALLOCA
+ # define sqlite3StackAllocRaw(D,N) alloca(N)
+ # define sqlite3StackAllocRawNN(D,N) alloca(N)
+diff --git a/third_party/sqlite/src/amalgamation_dev/sqlite3.c b/third_party/sqlite/src/amalgamation_dev/sqlite3.c
+index b1e0e620f1..e3d79b311c 100644
+--- a/third_party/sqlite/src/amalgamation_dev/sqlite3.c
++++ b/third_party/sqlite/src/amalgamation_dev/sqlite3.c
+@@ -20545,6 +20545,9 @@ SQLITE_PRIVATE int sqlite3HeapNearlyFull(void);
+ ** The alloca() routine never returns NULL. This will cause code paths
+ ** that deal with sqlite3StackAlloc() failures to be unreachable.
+ */
++#if defined(__NetBSD__)
++# undef SQLITE_USE_ALLOCA
++#endif
+ #ifdef SQLITE_USE_ALLOCA
+ # define sqlite3StackAllocRaw(D,N) alloca(N)
+ # define sqlite3StackAllocRawNN(D,N) alloca(N)
+diff --git a/third_party/swiftshader/src/Reactor/Debug.cpp b/third_party/swiftshader/src/Reactor/Debug.cpp
+index 96695d65c7..3fc8049988 100644
+--- a/third_party/swiftshader/src/Reactor/Debug.cpp
++++ b/third_party/swiftshader/src/Reactor/Debug.cpp
+@@ -46,7 +46,8 @@ namespace {
+
+ bool IsUnderDebugger()
+ {
+-#if defined(PTRACE) && !defined(__APPLE__) && !defined(__MACH__) && !defined(__OpenBSD__) && !defined(__FreeBSD__)
++#if defined(PTRACE) && !defined(__APPLE__) && !defined(__MACH__) && !defined(__OpenBSD__) && !defined(__FreeBSD__) && \
++ !defined(__NetBSD__)
+ static bool checked = false;
+ static bool res = false;
+
+diff --git a/third_party/swiftshader/src/System/Configurator.cpp b/third_party/swiftshader/src/System/Configurator.cpp
+index 62a9b7eef3..3853d05686 100644
+--- a/third_party/swiftshader/src/System/Configurator.cpp
++++ b/third_party/swiftshader/src/System/Configurator.cpp
+@@ -38,7 +38,7 @@ namespace sw {
+
+ Configurator::Configurator(const std::string &filePath)
+ {
+-#if defined(__OpenBSD__) || defined(__FreeBSD__)
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ return;
+ #endif
+ std::fstream file(filePath, std::ios::in);
+diff --git a/third_party/swiftshader/src/System/Linux/MemFd.cpp b/third_party/swiftshader/src/System/Linux/MemFd.cpp
+index 7b5a091b18..77eb5a3243 100644
+--- a/third_party/swiftshader/src/System/Linux/MemFd.cpp
++++ b/third_party/swiftshader/src/System/Linux/MemFd.cpp
+@@ -25,7 +25,7 @@
+ # define MFD_CLOEXEC 0x0001U
+ #endif
+
+-#if !defined(__OpenBSD__) && !defined(__FreeBSD__)
++#if !defined(__OpenBSD__) && !defined(__FreeBSD__) && !defined(__NetBSD__)
+ #if __aarch64__
+ # define __NR_memfd_create 279
+ #elif __arm__
+@@ -71,7 +71,7 @@ bool LinuxMemFd::allocate(const char *name, size_t size)
+ #else
+ // In the event of no system call this returns -1 with errno set
+ // as ENOSYS.
+-#if defined(__FreeBSD__)
++#if defined(__FreeBSD__) || defined(__NetBSD__)
+ fd_ = memfd_create(name, MFD_CLOEXEC);
+ #else
+ fd_ = syscall(__NR_memfd_create, name, MFD_CLOEXEC);
+diff --git a/third_party/swiftshader/third_party/marl/src/memory.cpp b/third_party/swiftshader/third_party/marl/src/memory.cpp
+index abecf15baf..3b8e460c9b 100644
+--- a/third_party/swiftshader/third_party/marl/src/memory.cpp
++++ b/third_party/swiftshader/third_party/marl/src/memory.cpp
+@@ -19,7 +19,8 @@
+
+ #include <cstring>
+
+-#if defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__) || defined(__EMSCRIPTEN__) || defined(__OpenBSD__)
++#if defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__) || defined(__EMSCRIPTEN__) || defined(__OpenBSD__) || \
++ defined(__NetBSD__)
+ #include <sys/mman.h>
+ #include <unistd.h>
+ namespace {
+diff --git a/third_party/swiftshader/third_party/marl/src/thread.cpp b/third_party/swiftshader/third_party/marl/src/thread.cpp
+index b87ab0b41b..9609843664 100644
+--- a/third_party/swiftshader/third_party/marl/src/thread.cpp
++++ b/third_party/swiftshader/third_party/marl/src/thread.cpp
+@@ -46,6 +46,9 @@
+ #include <unistd.h>
+ #include <thread>
+ #endif
++#if defined(__NetBSD__)
++#include <stdarg.h>
++#endif
+
+ namespace {
+
+@@ -444,6 +447,8 @@ void Thread::setName(const char* fmt, ...) {
+ pthread_setname_np(name);
+ #elif defined(__FreeBSD__)
+ pthread_set_name_np(pthread_self(), name);
++#elif defined(__NetBSD__)
++ pthread_setname_np(pthread_self(), "%s", (void *)name);
+ #elif !defined(__Fuchsia__) && !defined(__EMSCRIPTEN__) && !defined(__OpenBSD__) && !defined(__FreeBSD__)
+ pthread_setname_np(pthread_self(), name);
+ #endif
+diff --git a/third_party/test_fonts/fontconfig/generate_fontconfig_caches.cc b/third_party/test_fonts/fontconfig/generate_fontconfig_caches.cc
+index 47b5b51412..68d65ed278 100644
+--- a/third_party/test_fonts/fontconfig/generate_fontconfig_caches.cc
++++ b/third_party/test_fonts/fontconfig/generate_fontconfig_caches.cc
+@@ -28,7 +28,7 @@ int main() {
+ // fontconfig cache.
+ // $ echo -n /test_fonts | md5sum
+ // fb5c91b2895aa445d23aebf7f9e2189c -
+- static const char kCacheKey[] = "fb5c91b2895aa445d23aebf7f9e2189c";
++ static const char kCacheKey[] = "cd4b5bc7-6cfc-41dc-8982-f2db624179ba";
+
+ // fontconfig writes the mtime of the test_fonts directory into the cache. It
+ // presumably checks this later to ensure that the cache is still up to date.
+@@ -56,7 +56,7 @@ int main() {
+ FcFini();
+
+ // Check existence of intended fontconfig cache file.
+- auto cache = fontconfig_caches + "/" + kCacheKey + "-le64.cache-" + FC_CACHE_VERSION;
++ auto cache = fontconfig_caches + "/" + kCacheKey + "-x86_64.cache-" + FC_CACHE_VERSION;
+ bool cache_exists = access(cache.c_str(), F_OK) == 0;
+ return !cache_exists;
+ }
+diff --git a/third_party/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h b/third_party/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h
+index fe3fafe39c..edfbc9eadf 100644
+--- a/third_party/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h
++++ b/third_party/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h
+@@ -2740,7 +2740,7 @@ static void* vma_aligned_alloc(size_t alignment, size_t size)
+
+ return memalign(alignment, size);
+ }
+-#elif defined(__APPLE__) || defined(__ANDROID__) || (defined(__linux__) && defined(__GLIBCXX__) && !defined(_GLIBCXX_HAVE_ALIGNED_ALLOC)) || defined(__OpenBSD__) || defined(__FreeBSD__)
++#elif defined(__APPLE__) || defined(__ANDROID__) || (defined(__linux__) && defined(__GLIBCXX__) && !defined(_GLIBCXX_HAVE_ALIGNED_ALLOC)) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ #include <cstdlib>
+
+ #if defined(__APPLE__)
+diff --git a/third_party/vulkan-validation-layers/src/layers/vulkan/generated/vk_function_pointers.cpp b/third_party/vulkan-validation-layers/src/layers/vulkan/generated/vk_function_pointers.cpp
+index d3120b0c7a..16b7c1f8ea 100644
+--- a/third_party/vulkan-validation-layers/src/layers/vulkan/generated/vk_function_pointers.cpp
++++ b/third_party/vulkan-validation-layers/src/layers/vulkan/generated/vk_function_pointers.cpp
+@@ -53,7 +53,8 @@ static void *get_proc_address(dl_handle library, const char *name) {
+ assert(name);
+ return (void *)GetProcAddress(library, name);
+ }
+-#elif defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__QNX__)
++#elif defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__QNX__) || \
++ defined(__NetBSD__)
+
+ #include <dlfcn.h>
+
+diff --git a/tools/json_schema_compiler/feature_compiler.py b/tools/json_schema_compiler/feature_compiler.py
+index 342b322530..5951276973 100644
+--- a/tools/json_schema_compiler/feature_compiler.py
++++ b/tools/json_schema_compiler/feature_compiler.py
+@@ -279,6 +279,7 @@ FEATURE_GRAMMAR = ({
+ 'win': 'Feature::WIN_PLATFORM',
+ 'openbsd': 'Feature::LINUX_PLATFORM',
+ 'freebsd': 'Feature::LINUX_PLATFORM',
++ 'netbsd': 'Feature::LINUX_PLATFORM',
+ }
+ }
+ },
+diff --git a/tools/v8_context_snapshot/BUILD.gn b/tools/v8_context_snapshot/BUILD.gn
+index 80d4b3d0a6..82de8e9f55 100644
+--- a/tools/v8_context_snapshot/BUILD.gn
++++ b/tools/v8_context_snapshot/BUILD.gn
+@@ -36,6 +36,24 @@ buildflag_header("buildflags") {
+ ]
+ }
+
++action("run_paxctl_v8_context_snapshot_generator") {
++ deps = [ ":v8_context_snapshot_generator($v8_snapshot_toolchain)" ]
++
++ script = "//v8/tools/run-paxctl.py"
++ stamp = "$target_gen_dir/paxctl_stamp"
++ outputs = [ stamp ]
++
++ sources = []
++ data = []
++
++ args = [
++ rebase_path(stamp, root_build_dir),
++ "/usr/sbin/paxctl", "+m",
++ "./" + rebase_path(get_label_info(":v8_context_snapshot_generator", "root_out_dir") + "/v8_context_snapshot_generator",
++ root_build_dir),
++ ]
++}
++
+ if (use_v8_context_snapshot) {
+ if (v8_snapshot_toolchain == current_toolchain) {
+ action("generate_v8_context_snapshot") {
+@@ -52,7 +70,11 @@ if (use_v8_context_snapshot) {
+ "--output_file=$output_path",
+ ]
+
+- deps = [ ":v8_context_snapshot_generator" ]
++ if (target_os == "netbsd") {
++ deps = [ ":v8_context_snapshot_generator", ":run_paxctl_v8_context_snapshot_generator" ]
++ } else {
++ deps = [ ":v8_context_snapshot_generator" ]
++ }
+
+ # TODO(sky): figure out why this doesn't work on android cross compile.
+ # In the case of compiling for the snapshot `shlib_extension` is ".so"
+diff --git a/tools/variations/fieldtrial_to_struct.py b/tools/variations/fieldtrial_to_struct.py
+index 872083e1cb..05bf464a76 100755
+--- a/tools/variations/fieldtrial_to_struct.py
++++ b/tools/variations/fieldtrial_to_struct.py
+@@ -43,6 +43,7 @@ _platforms = [
+ 'windows',
+ 'openbsd',
+ 'freebsd',
++ 'netbsd',
+ ]
+
+ _form_factors = [
+diff --git a/ui/qt/qt.gni b/ui/qt/qt.gni
+index 53fd68bf7a..fa5e245cd3 100644
+--- a/ui/qt/qt.gni
++++ b/ui/qt/qt.gni
+@@ -14,7 +14,7 @@ declare_args() {
+
+ declare_args() {
+ if (!use_sysroot && use_qt) {
+- moc_qt5_path = ""
++ moc_qt5_path = "@QTDIR@/bin"
+ }
+ }
+
+diff --git a/v8/BUILD.gn b/v8/BUILD.gn
+index 186ad4dbe1..01497b9f13 100644
+--- a/v8/BUILD.gn
++++ b/v8/BUILD.gn
+@@ -878,6 +878,7 @@ external_v8_defines = [
+ "V8_TARGET_OS_CHROMEOS",
+ "V8_TARGET_OS_OPENBSD",
+ "V8_TARGET_OS_FREEBSD",
++ "V8_TARGET_OS_NETBSD",
+ ]
+
+ enabled_external_v8_defines = []
+@@ -956,6 +957,9 @@ if (target_os == "android") {
+ } else if (target_os == "freebsd") {
+ enabled_external_v8_defines += [ "V8_HAVE_TARGET_OS" ]
+ enabled_external_v8_defines += [ "V8_TARGET_OS_FREEBSD" ]
++} else if (target_os == "netbsd") {
++ enabled_external_v8_defines += [ "V8_HAVE_TARGET_OS" ]
++ enabled_external_v8_defines += [ "V8_TARGET_OS_NETBSD" ]
+ }
+
+ disabled_external_v8_defines = external_v8_defines - enabled_external_v8_defines
+@@ -2375,6 +2379,23 @@ action("generate_bytecode_builtins_list") {
+ ]
+ }
+
++action("run_paxctl_mksnapshot") {
++ deps = [ ":mksnapshot($v8_snapshot_toolchain)" ]
++
++ script = "tools/run-paxctl.py"
++ stamp = "$target_gen_dir/paxctl_stamp"
++ outputs = [ stamp ]
++
++ sources = []
++ data = []
++
++ args = [
++ rebase_path(stamp, root_build_dir), "/usr/sbin/paxctl", "+m", "./" + rebase_path(get_label_info(":mksnapshot($v8_snapshot_toolchain)",
++ "root_out_dir") + "/mksnapshot",
++ root_build_dir),
++ ]
++}
++
+ # Template to generate different V8 snapshots based on different runtime flags.
+ # Can be invoked with run_mksnapshot(<name>). The target will resolve to
+ # run_mksnapshot_<name>. If <name> is "default", no file suffixes will be used.
+@@ -2393,7 +2414,11 @@ template("run_mksnapshot") {
+ suffix = "_$name"
+ }
+ action("run_mksnapshot_" + name) {
+- deps = [ ":mksnapshot($v8_snapshot_toolchain)" ]
++ if (target_os == "netbsd") {
++ deps = [ ":mksnapshot($v8_snapshot_toolchain)", ":run_paxctl_mksnapshot" ]
++ } else {
++ deps = [ ":mksnapshot($v8_snapshot_toolchain)" ]
++ }
+
+ script = "tools/run.py"
+
+@@ -4489,7 +4514,7 @@ v8_header_set("v8_internal_headers") {
+ # iOS Xcode simulator builds run on an x64 target. iOS and macOS are both
+ # based on Darwin and thus POSIX-compliant to a similar degree.
+ if (is_linux || is_chromeos || is_mac || is_ios ||
+- target_os == "freebsd") {
++ target_os == "freebsd" || target_os == "netbsd") {
+ sources += [ "src/trap-handler/handler-inside-posix.h" ]
+ } else if (is_win) {
+ sources += [ "src/trap-handler/handler-inside-win.h" ]
+@@ -5877,7 +5902,7 @@ v8_source_set("v8_base_without_compiler") {
+ # iOS Xcode simulator builds run on an x64 target. iOS and macOS are both
+ # based on Darwin and thus POSIX-compliant to a similar degree.
+ if (is_linux || is_chromeos || is_mac || is_ios ||
+- target_os == "freebsd") {
++ target_os == "freebsd" || target_os == "netbsd") {
+ sources += [
+ "src/trap-handler/handler-inside-posix.cc",
+ "src/trap-handler/handler-outside-posix.cc",
+@@ -6521,6 +6546,15 @@ v8_component("v8_libbase") {
+ "src/base/platform/platform-openbsd.cc",
+ ]
+ libs = [ "execinfo" ]
++ } else if (is_netbsd) {
++ sources += [
++ "src/base/debug/stack_trace_posix.cc",
++ "src/base/platform/platform-openbsd.cc",
++ ]
++ libs = [
++ "rt",
++ "execinfo",
++ ]
+ } else if (is_freebsd) {
+ sources += [
+ "src/base/debug/stack_trace_posix.cc",
+diff --git a/v8/include/v8config.h b/v8/include/v8config.h
+index c967e0958c..0d882fac0d 100644
+--- a/v8/include/v8config.h
++++ b/v8/include/v8config.h
+@@ -195,6 +195,7 @@ path. Add it with -I<path> to the command line
+ && !defined(V8_TARGET_OS_LINUX) \
+ && !defined(V8_TARGET_OS_OPENBSD) \
+ && !defined(V8_TARGET_OS_FREEBSD) \
++ && !defined(V8_TARGET_OS_NETBSD) \
+ && !defined(V8_TARGET_OS_MACOS) \
+ && !defined(V8_TARGET_OS_WIN) \
+ && !defined(V8_TARGET_OS_CHROMEOS)
+@@ -209,6 +210,7 @@ path. Add it with -I<path> to the command line
+ || defined(V8_TARGET_OS_LINUX) \
+ || defined(V8_TARGET_OS_OPENBSD) \
+ || defined(V8_TARGET_OS_FREEBSD) \
++ || defined(V8_TARGET_OS_NETBSD) \
+ || defined(V8_TARGET_OS_MACOS) \
+ || defined(V8_TARGET_OS_WIN) \
+ || defined(V8_TARGET_OS_CHROMEOS)
+@@ -242,6 +244,11 @@ path. Add it with -I<path> to the command line
+ # define V8_TARGET_OS_BSD
+ #endif
+
++#ifdef V8_OS_NETBSD
++# define V8_TARGET_OS_NETBSD
++# define V8_TARGET_OS_BSD
++#endif
++
+ #ifdef V8_OS_MACOS
+ # define V8_TARGET_OS_MACOS
+ #endif
+diff --git a/v8/src/api/api.cc b/v8/src/api/api.cc
+index ed4043c99a..08676618f2 100644
+--- a/v8/src/api/api.cc
++++ b/v8/src/api/api.cc
+@@ -145,7 +145,7 @@
+ #include "src/wasm/wasm-serialization.h"
+ #endif // V8_ENABLE_WEBASSEMBLY
+
+-#if V8_OS_LINUX || V8_OS_DARWIN || V8_OS_FREEBSD || V8_OS_OPENBSD
++#if V8_OS_LINUX || V8_OS_DARWIN || V8_OS_FREEBSD || V8_OS_OPENBSD || V8_OS_NETBSD
+ #include <signal.h>
+ #include <unistd.h>
+
+@@ -6452,7 +6452,7 @@ bool v8::V8::Initialize(const int build_config) {
+ return true;
+ }
+
+-#if V8_OS_LINUX || V8_OS_DARWIN || V8_OS_FREEBSD || V8_OS_OPENBSD
++#if V8_OS_LINUX || V8_OS_DARWIN || V8_OS_FREEBSD || V8_OS_OPENBSD|| V8_OS_NETBSD
+ bool TryHandleWebAssemblyTrapPosix(int sig_code, siginfo_t* info,
+ void* context) {
+ #if V8_ENABLE_WEBASSEMBLY && V8_TRAP_HANDLER_SUPPORTED
+diff --git a/v8/src/base/platform/platform-openbsd.cc b/v8/src/base/platform/platform-openbsd.cc
+index 8ade6f9b37..81b2cd86c9 100644
+--- a/v8/src/base/platform/platform-openbsd.cc
++++ b/v8/src/base/platform/platform-openbsd.cc
+@@ -6,7 +6,9 @@
+ // POSIX-compatible parts, the implementation is in platform-posix.cc.
+
+ #include <pthread.h>
++#if !defined(__NetBSD__)
+ #include <pthread_np.h>
++#endif
+ #include <semaphore.h>
+ #include <signal.h>
+ #include <stdlib.h>
+@@ -125,6 +127,22 @@ void OS::AdjustSchedulingParams() {}
+
+ // static
+ Stack::StackSlot Stack::ObtainCurrentThreadStackStart() {
++#if defined(__NetBSD__)
++ pthread_attr_t attr;
++ int error;
++ pthread_attr_init(&attr);
++ error = pthread_attr_get_np(pthread_self(), &attr);
++ if (!error) {
++ void* base;
++ size_t size;
++ error = pthread_attr_getstack(&attr, &base, &size);
++ CHECK(!error);
++ pthread_attr_destroy(&attr);
++ return reinterpret_cast<uint8_t*>(base) + size;
++ }
++ pthread_attr_destroy(&attr);
++ return nullptr;
++#else
+ stack_t ss;
+ void *base;
+ if (pthread_stackseg_np(pthread_self(), &ss) != 0)
+@@ -132,6 +150,7 @@ Stack::StackSlot Stack::ObtainCurrentThreadStackStart() {
+
+ base = (void*)((size_t) ss.ss_sp - ss.ss_size);
+ return reinterpret_cast<uint8_t*>(base) + ss.ss_size;
++#endif
+ }
+
+ std::optional<OS::MemoryRange> OS::GetFirstFreeMemoryRangeWithin(
+diff --git a/v8/src/base/platform/platform-posix.cc b/v8/src/base/platform/platform-posix.cc
+index 17533d7ed8..cd70a62e28 100644
+--- a/v8/src/base/platform/platform-posix.cc
++++ b/v8/src/base/platform/platform-posix.cc
+@@ -27,6 +27,9 @@
+ defined(__NetBSD__) || defined(__OpenBSD__)
+ #include <sys/sysctl.h> // for sysctl
+ #endif
++#if defined(__NetBSD__)
++#include <lwp.h>
++#endif
+
+ #if defined(ANDROID) && !defined(V8_ANDROID_LOG_STDOUT)
+ #define LOG_TAG "v8"
+@@ -73,8 +76,10 @@
+ #endif
+
+ #if V8_OS_FREEBSD || V8_OS_DARWIN || V8_OS_BSD || V8_OS_SOLARIS
++#ifndef MAP_ANONYMOUS
+ #define MAP_ANONYMOUS MAP_ANON
+ #endif
++#endif
+
+ #if defined(V8_OS_SOLARIS)
+ #if (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE > 2) || defined(__EXTENSIONS__)
+@@ -306,7 +311,7 @@ void OS::SetRandomMmapSeed(int64_t seed) {
+ }
+
+ #if V8_OS_OPENBSD
+-// Allow OpenBSD's mmap to select a random address on OpenBSD
++// Allow OpenBSD's mmap to select a random address on OpenBSD
+ // static
+ void* OS::GetRandomMmapAddr() {
+ return nullptr;
+@@ -832,6 +837,8 @@ int OS::GetCurrentThreadId() {
+ return static_cast<int>(thread_self());
+ #elif V8_OS_FUCHSIA
+ return static_cast<int>(zx_thread_self());
++#elif V8_OS_NETBSD
++ return static_cast<int>(_lwp_self());
+ #elif V8_OS_SOLARIS
+ return static_cast<int>(pthread_self());
+ #else
+@@ -1124,7 +1131,11 @@ Thread::Thread(const Options& options)
+ stack_size_(options.stack_size()),
+ priority_(options.priority()),
+ start_semaphore_(nullptr) {
++#if !defined(V8_OS_NETBSD)
+ const int min_stack_size = static_cast<int>(PTHREAD_STACK_MIN);
++#else
++ const int min_stack_size = static_cast<int>(sysconf(_SC_THREAD_STACK_MIN));
++#endif
+ if (stack_size_ > 0) stack_size_ = std::max(stack_size_, min_stack_size);
+ set_name(options.name());
+ }
+@@ -1139,7 +1150,7 @@ static void SetThreadName(const char* name) {
+ pthread_set_name_np(pthread_self(), name);
+ #elif V8_OS_NETBSD
+ static_assert(Thread::kMaxThreadNameLength <= PTHREAD_MAX_NAMELEN_NP);
+- pthread_setname_np(pthread_self(), "%s", name);
++ pthread_setname_np(pthread_self(), "%s", (void *)name);
+ #elif V8_OS_DARWIN
+ // pthread_setname_np is only available in 10.6 or later, so test
+ // for it at runtime.
+@@ -1314,7 +1325,7 @@ void Thread::SetThreadLocal(LocalStorageKey key, void* value) {
+ // keep this version in POSIX as most Linux-compatible derivatives will
+ // support it. MacOS and FreeBSD are different here.
+ #if !defined(V8_OS_FREEBSD) && !defined(V8_OS_DARWIN) && !defined(_AIX) && \
+- !defined(V8_OS_SOLARIS) && !defined(V8_OS_OPENBSD)
++ !defined(V8_OS_SOLARIS) && !defined(V8_OS_OPENBSD) && !defined(V8_OS_NETBSD)
+
+ namespace {
+ #if DEBUG
+diff --git a/v8/src/base/strings.h b/v8/src/base/strings.h
+index c3015e72c8..6f8fee9d52 100644
+--- a/v8/src/base/strings.h
++++ b/v8/src/base/strings.h
+@@ -8,6 +8,9 @@
+ #include "src/base/base-export.h"
+ #include "src/base/macros.h"
+ #include "src/base/vector.h"
++#if defined(__NetBSD__)
++#include <stdarg.h>
++#endif
+
+ namespace v8 {
+ namespace base {
+diff --git a/v8/src/base/sys-info.cc b/v8/src/base/sys-info.cc
+index c6c84e5f12..e3503041e1 100644
+--- a/v8/src/base/sys-info.cc
++++ b/v8/src/base/sys-info.cc
+@@ -37,8 +37,12 @@ namespace base {
+
+ // static
+ int SysInfo::NumberOfProcessors() {
++#if V8_OS_OPENBSD || V8_OS_NETBSD
+ #if V8_OS_OPENBSD
+ int mib[2] = {CTL_HW, HW_NCPUONLINE};
++#else
++ int mib[2] = {CTL_HW, HW_NCPU};
++#endif
+ int ncpu = 0;
+ size_t len = sizeof(ncpu);
+ if (sysctl(mib, arraysize(mib), &ncpu, &len, nullptr, 0) != 0) {
+diff --git a/v8/src/base/utils/random-number-generator.cc b/v8/src/base/utils/random-number-generator.cc
+index 91b7c6fc66..465edf438b 100644
+--- a/v8/src/base/utils/random-number-generator.cc
++++ b/v8/src/base/utils/random-number-generator.cc
+@@ -56,7 +56,7 @@ RandomNumberGenerator::RandomNumberGenerator() {
+ DCHECK_EQ(0, result);
+ USE(result);
+ SetSeed((static_cast<int64_t>(first_half) << 32) + second_half);
+-#elif V8_OS_DARWIN || V8_OS_FREEBSD || V8_OS_OPENBSD
++#elif V8_OS_DARWIN || V8_OS_FREEBSD || V8_OS_OPENBSD || V8_OS_NETBSD
+ // Despite its prefix suggests it is not RC4 algorithm anymore.
+ // It always succeeds while having decent performance and
+ // no file descriptor involved.
+diff --git a/v8/src/trap-handler/handler-inside-posix.cc b/v8/src/trap-handler/handler-inside-posix.cc
+index 1f876c7664..156715ed1b 100644
+--- a/v8/src/trap-handler/handler-inside-posix.cc
++++ b/v8/src/trap-handler/handler-inside-posix.cc
+@@ -27,7 +27,7 @@
+
+ #include <signal.h>
+
+-#if defined(V8_OS_LINUX) || defined(V8_OS_FREEBSD)
++#if defined(V8_OS_LINUX) || defined(V8_OS_FREEBSD) || defined(V8_OS_NETBSD)
+ #include <ucontext.h>
+ #elif V8_OS_DARWIN
+ #include <sys/ucontext.h>
+@@ -63,6 +63,8 @@ namespace trap_handler {
+ #define CONTEXT_REG(reg, REG) &uc->uc_mcontext.mc_##reg
+ #elif V8_OS_OPENBSD
+ #define CONTEXT_REG(reg, REG) &uc->sc_##reg
++#elif V8_OS_NETBSD
++#define CONTEXT_REG(reg, REG) &uc->uc_mcontext.__gregs[_REG_##REG]
+ #else
+ #error "Unsupported platform."
+ #endif
+diff --git a/v8/src/trap-handler/handler-inside-posix.h b/v8/src/trap-handler/handler-inside-posix.h
+index ef2f4ee84d..d17ee7b539 100644
+--- a/v8/src/trap-handler/handler-inside-posix.h
++++ b/v8/src/trap-handler/handler-inside-posix.h
+@@ -13,7 +13,7 @@ namespace v8 {
+ namespace internal {
+ namespace trap_handler {
+
+-#if V8_OS_LINUX || V8_OS_FREEBSD || V8_OS_OPENBSD
++#if V8_OS_LINUX || V8_OS_FREEBSD || V8_OS_OPENBSD || V8_OS_NETBSD
+ constexpr int kOobSignal = SIGSEGV;
+ #elif V8_OS_DARWIN
+ constexpr int kOobSignal = SIGBUS;
+diff --git a/v8/src/trap-handler/trap-handler.h b/v8/src/trap-handler/trap-handler.h
+index 632139dded..96729f391a 100644
+--- a/v8/src/trap-handler/trap-handler.h
++++ b/v8/src/trap-handler/trap-handler.h
+@@ -20,7 +20,7 @@ namespace trap_handler {
+ // X64 on Linux, Windows, MacOS, FreeBSD.
+ #if V8_HOST_ARCH_X64 && V8_TARGET_ARCH_X64 && \
+ ((V8_OS_LINUX && !V8_OS_ANDROID) || V8_OS_WIN || V8_OS_DARWIN || \
+- V8_OS_FREEBSD || V8_OS_OPENBSD)
++ V8_OS_FREEBSD || V8_OS_OPENBSD || V8_OS_NETBSD)
+ #define V8_TRAP_HANDLER_SUPPORTED true
+ // Arm64 (non-simulator) on Mac and Linux.
+ #elif V8_TARGET_ARCH_ARM64 && V8_HOST_ARCH_ARM64 && \
+diff --git a/v8/tools/run-paxctl.py b/v8/tools/run-paxctl.py
+new file mode 100644
+index 0000000000..7cffa35b09
+--- /dev/null
++++ b/v8/tools/run-paxctl.py
+@@ -0,0 +1,16 @@
++#!@PYTHONBIN@
++# Copyright 2014 the V8 project authors. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++"""This program wraps an arbitrary command since gn currently can only execute
++scripts."""
++
++import subprocess
++import sys
++import os
++
++with open(sys.argv[1], 'w'):
++ os.utime(sys.argv[1], None)
++
++sys.exit(subprocess.call(sys.argv[2:]))
diff --git a/chromium/options.mk b/chromium/options.mk
index 4f2f20ae07..04065bb3be 100644
--- a/chromium/options.mk
+++ b/chromium/options.mk
@@ -21,13 +21,16 @@ GN_ARGS+= use_pulseaudio=true
.if !empty(PKG_OPTIONS:Mdebug)
BUILDTYPE= Debug
GN_ARGS+= is_debug=true
-# Dynamic link build causes link errors in pkgsrc.
-GN_ARGS+= is_component_build=false
+GN_ARGS+= symbol_level=1
GN_BOOTSTRAP_FLAGS+= --debug
-GN_VERBOSE= -v
+GN_VERBOSE= #-v
+INSTALL_UNSTRIPPED= yes
.else
BUILDTYPE= Release
-GN_ARGS+= is_debug=false \
- symbol_level=0
+GN_ARGS+= is_official_build=true
+GN_ARGS+= is_component_build=false
+GN_ARGS+= is_debug=false
+GN_ARGS+= blink_symbol_level=0
+GN_ARGS+= symbol_level=0
GN_VERBOSE= # empty
.endif
diff --git a/chromium/patches/patch-BUILD.gn b/chromium/patches/patch-BUILD.gn
index e5ff055d47..66cd599802 100644
--- a/chromium/patches/patch-BUILD.gn
+++ b/chromium/patches/patch-BUILD.gn
@@ -1,219 +1,73 @@
$NetBSD$
---- BUILD.gn.orig 2020-06-25 09:32:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- BUILD.gn.orig 2024-07-24 02:44:20.887256000 +0000
+++ BUILD.gn
-@@ -203,7 +203,7 @@ group("gn_all") {
- ]
- }
-
-- if (is_win || (is_linux && !is_chromeos) || is_android) {
-+ if (is_win || (is_linux && !is_chromeos) || is_android || is_bsd) {
- deps += [
- "//weblayer/shell:weblayer_shell",
- "//weblayer/test:weblayer_browsertests",
-@@ -413,12 +413,12 @@ group("gn_all") {
- # seems currently broken for this platform at the moment, and the
- # corresponding code build and works on Linux unmodified.
- # See instructions in the corresponding BUILD.gn.
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- deps +=
- [ "//third_party/android_crazy_linker:android_crazy_linker_zip_fuzzer" ]
- }
-
-- if (is_linux || is_chromeos) {
-+ if (is_linux || is_chromeos || is_bsd) {
- # This is only used by ChromeOS, but we want maximal fuzzer coverage, so
- # run it under linux too.
- deps += [
-@@ -474,6 +474,15 @@ group("gn_all") {
- "//testing:empty_main",
- ]
+@@ -66,7 +66,7 @@ declare_args() {
+ root_extra_deps = []
+ }
-+ if (is_bsd) {
-+ deps += [
-+ "//chrome:xdg_mime",
-+ "//net:disk_cache_memory_test",
-+ "//net:quic_client",
-+ "//net:quic_server",
-+ "//testing:empty_main",
-+ ]
-+
- if (use_dbus) {
- deps += [
- "//dbus:dbus_test_server",
-@@ -487,14 +496,14 @@ group("gn_all") {
+-if (is_official_build) {
++if (is_official_build && !is_bsd) {
+ # An official (maximally optimized!) component (optimized for build times)
+ # build doesn't make sense and usually doesn't work.
+ assert(!is_component_build)
+@@ -98,7 +98,6 @@ group("gn_all") {
+ "//codelabs",
+ "//components:components_unittests",
+ "//components/gwp_asan:gwp_asan_unittests",
+- "//infra/orchestrator:orchestrator_all",
+ "//net:net_unittests",
+ "//sandbox:sandbox_unittests",
+ "//services:services_unittests",
+@@ -433,7 +432,7 @@ group("gn_all") {
+ }
}
- }
-
-- if (is_ios || is_win || (is_linux && !is_chromeos)) {
-+ if (is_ios || is_win || (is_linux && !is_chromeos) || is_bsd) {
- deps += [
- "//base:base_i18n_perftests",
- "//google_apis:google_apis_unittests",
- ]
- }
-- if ((is_win || is_mac || is_linux || is_chromeos || is_fuchsia) &&
-+ if ((is_win || is_mac || is_linux || is_chromeos || is_fuchsia || is_bsd) &&
- (target_cpu == "x86" || target_cpu == "x64")) {
- deps += [ "//third_party/swiftshader" ]
- }
-@@ -520,7 +529,7 @@ group("gn_all") {
- "//ui/compositor:compositor_unittests",
- ]
-
-- if (!is_android) {
-+ if (!is_android && is_linux) {
+- if (is_linux || is_chromeos || is_android) {
++ if ((is_linux && !is_bsd) || is_chromeos || is_android) {
deps += [
- "//chrome/test:load_library_perf_tests",
- "//chrome/test:sync_performance_tests",
-@@ -545,6 +554,27 @@ group("gn_all") {
- ]
+ "//third_party/breakpad:breakpad_unittests",
+ "//third_party/breakpad:core-2-minidump",
+@@ -629,6 +628,15 @@ group("gn_all") {
+ }
}
+ if (is_bsd) {
-+ deps += [
-+ "//chrome/test:load_library_perf_tests",
-+ "//chrome/test:sync_performance_tests",
-+ "//chrome/test/chromedriver:chromedriver",
-+ "//media/cast:generate_barcode_video",
-+ "//media/cast:generate_timecode_audio",
-+ "//net:crash_cache",
-+ "//net:dns_fuzz_stub",
-+ "//net:net_watcher", # TODO(GYP): This should be conditional on
-+ # use_v8_in_net
-+ "//net:run_testserver",
-+ "//net:stress_cache",
-+ "//net:tld_cleanup",
-+ "//ppapi:pepper_hash_for_uma",
-+ "//ppapi:ppapi_perftests",
-+ "//third_party/leveldatabase:env_chromium_unittests",
-+ "//third_party/libaddressinput:libaddressinput_unittests",
++ deps -= [
++ "//third_party/breakpad:dump_syms($host_toolchain)",
++ "//third_party/breakpad:microdump_stackwalk($host_toolchain)",
++ "//third_party/breakpad:minidump_dump($host_toolchain)",
++ "//third_party/breakpad:minidump_stackwalk($host_toolchain)",
+ ]
+ }
+
- if (is_android) {
- deps += [ "//chrome/test/chromedriver:chromedriver($host_toolchain)" ]
- }
-@@ -559,7 +589,7 @@ group("gn_all") {
- if (enable_nacl) {
- deps += [ "//components/nacl/loader:nacl_loader_unittests" ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- # TODO(dpranke): Figure out what platforms should actually have this.
- deps += [ "//components/nacl/loader:nacl_helper" ]
-
-@@ -593,6 +623,17 @@ group("gn_all") {
- "//third_party/breakpad:minidump_dump($host_toolchain)",
- "//third_party/breakpad:minidump_stackwalk($host_toolchain)",
- ]
-+ }
-+
-+ if (is_bsd) {
-+ deps += [
-+ "//components/network_hints/browser",
-+ "//content/public/app",
-+ "//mojo:mojo_perftests",
-+ "//services/service_manager/public/cpp",
-+ "//testing/gmock:gmock_main",
-+ ]
-+ }
-
- if (!is_android) {
+ if (is_mac) {
deps += [
-@@ -665,7 +706,7 @@ group("gn_all") {
- host_os == "win") {
- deps += [ "//chrome/test/mini_installer:mini_installer_tests" ]
- }
-- } else if (!is_android && !is_ios && !is_fuchsia) {
-+ } else if (!is_android && !is_ios && !is_fuchsia && !is_bsd) {
- deps += [ "//third_party/breakpad:symupload($host_toolchain)" ]
- }
-
-@@ -680,7 +721,7 @@ group("gn_all") {
- }
- }
-
-- if (is_mac || is_win || is_android || (is_linux && !is_chromeos)) {
-+ if (is_mac || is_win || is_android || (is_linux && !is_chromeos) || is_bsd) {
- deps += [
- "//third_party/crashpad/crashpad:crashpad_tests",
- "//third_party/crashpad/crashpad/handler:crashpad_handler",
-@@ -704,19 +745,19 @@ group("gn_all") {
- deps += [ "//content/browser/bluetooth/tools:bluetooth_metrics_hash" ]
- }
-
-- if (is_win || is_linux) {
-+ if (is_win || is_linux || is_bsd) {
- deps += [ "//mojo" ]
- }
-
-- if (is_mac || is_linux || is_android || is_fuchsia) {
-+ if (is_mac || is_linux || is_android || is_fuchsia || is_bsd) {
- deps += [ "//third_party/perfetto:all" ]
- }
-
-- if (is_win || is_mac || is_linux) {
-+ if (is_win || is_mac || is_linux || is_bsd) {
- deps += [ "//third_party/sqlite:sqlite_shell" ]
- }
-
-- if (is_linux && !is_chromeos && !is_chromecast) {
-+ if ((is_linux || is_bsd) && !is_chromeos && !is_chromecast) {
- # TODO(GYP): Figure out if any of these should be in gn_all
- # and figure out how cross-platform they are
- deps += [
-@@ -758,13 +799,13 @@ group("gn_all") {
+ "//third_party/breakpad:dump_syms",
+@@ -675,7 +683,7 @@ group("gn_all") {
+ host_os == "win") {
+ deps += [ "//chrome/test/mini_installer:mini_installer_tests" ]
}
- deps += [ "//third_party/libjpeg_turbo:simd_asm" ]
+- } else if (!is_android && !is_ios && !is_fuchsia) {
++ } else if (!is_android && !is_ios && !is_fuchsia && !is_bsd) {
+ deps += [ "//third_party/breakpad:symupload($host_toolchain)" ]
}
-- if (is_linux && current_toolchain == host_toolchain) {
-+ if ((is_linux || is_bsd) && current_toolchain == host_toolchain) {
- deps += [ "//v8:v8_shell" ]
- }
- }
-
- if ((is_linux && !is_chromecast) || (is_win && use_libfuzzer) ||
-- (use_libfuzzer && is_mac)) {
-+ (use_libfuzzer && is_mac) || is_bsd) {
- deps += [
- "//chrome/services/ipp_parser/public/cpp:fuzzers",
- "//testing/libfuzzer/fuzzers",
-@@ -786,7 +827,7 @@ group("gn_all") {
- deps += [ "//native_client_sdk/src:nacl_core_sdk" ]
- }
-- if (is_linux && use_ozone) {
-+ if ((is_linux || is_bsd) && use_ozone) {
- deps += [
- "//headless:headless_non_renderer",
- "//headless:headless_tests",
-@@ -798,8 +839,12 @@ group("gn_all") {
- "//chrome/browser/vr:vr_common_perftests",
- "//chrome/browser/vr:vr_common_unittests",
- "//chrome/browser/vr:vr_pixeltests",
-+ ]
-+ if (is_linux) {
-+ deps += [
- "//tools/perf/contrib/vr_benchmarks:vr_perf_tests",
+@@ -1101,7 +1109,7 @@ if (use_blink && !is_cronet_build) {
]
-+ }
- if (is_desktop_linux && use_ozone) {
- deps += [ "//chrome/browser/vr/testapp:vr_testapp" ]
- }
-@@ -838,7 +883,7 @@ group("gn_all") {
- deps += [ "//third_party/opencv:opencv_emd_fuzzer" ]
- }
+ }
--if ((is_linux || is_win) && enable_remoting && !use_ozone) {
-+if ((is_linux || is_win || is_bsd) && enable_remoting && !use_ozone) {
- # This group is used for network annotation check test.
- group("shipped_binaries") {
- deps = [
-@@ -1085,7 +1130,7 @@ if (!is_ios) {
- ]
+- if (!is_chromeos_ash && !is_ios && !is_fuchsia && !is_android && !is_castos) {
++ if (!is_chromeos_ash && !is_ios && !is_fuchsia && !is_android && !is_castos && !is_bsd) {
+ script_test("chrome_wpt_tests") {
+ script = "//third_party/blink/tools/run_wpt_tests.py"
+ args = [
+@@ -1194,7 +1202,7 @@ if (use_blink && !is_cronet_build) {
+ data_deps += [ "//content/web_test:web_test_common_mojom_js_data_deps" ]
}
- if (!is_win && !is_android) {
@@ -221,12 +75,21 @@ $NetBSD$
data_deps +=
[ "//third_party/breakpad:minidump_stackwalk($host_toolchain)" ]
}
-@@ -1292,7 +1337,7 @@ group("chromium_builder_perf") {
+@@ -1203,7 +1211,7 @@ if (use_blink && !is_cronet_build) {
+ data_deps += [ "//third_party/breakpad:dump_syms($host_toolchain)" ]
+ }
+
+- if (is_linux || is_chromeos) {
++ if ((is_linux && !is_bsd) || is_chromeos) {
+ data_deps += [ "//third_party/breakpad:dump_syms($host_toolchain)" ]
+ }
+
+@@ -1667,7 +1675,7 @@ group("chromium_builder_perf") {
+ data_deps += [ "//chrome/test:performance_browser_tests" ]
+ }
- if (is_win) {
- data_deps += [ "//chrome/installer/mini_installer:mini_installer" ]
-- } else {
-+ } else if (!is_bsd) {
+- if (!is_win) {
++ if (!is_win && !is_bsd) {
data_deps +=
[ "//third_party/breakpad:minidump_stackwalk($host_toolchain)" ]
}
diff --git a/chromium/patches/patch-apps_app__restore__service__browsertest.cc b/chromium/patches/patch-apps_app__restore__service__browsertest.cc
deleted file mode 100644
index 737786c4c3..0000000000
--- a/chromium/patches/patch-apps_app__restore__service__browsertest.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- apps/app_restore_service_browsertest.cc.orig 2020-06-25 09:31:17.000000000 +0000
-+++ apps/app_restore_service_browsertest.cc
-@@ -148,7 +148,7 @@ IN_PROC_BROWSER_TEST_F(PlatformAppBrowse
- }
-
- // Flaky: crbug.com/269613
--#if defined(OS_LINUX) || defined(OS_WIN)
-+#if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_BSD)
- #define MAYBE_FileAccessIsRestored DISABLED_FileAccessIsRestored
- #else
- #define MAYBE_FileAccessIsRestored FileAccessIsRestored
diff --git a/chromium/patches/patch-apps_ui_views_app__window__frame__view.cc b/chromium/patches/patch-apps_ui_views_app__window__frame__view.cc
index 6d9a8a61da..120d9dc315 100644
--- a/chromium/patches/patch-apps_ui_views_app__window__frame__view.cc
+++ b/chromium/patches/patch-apps_ui_views_app__window__frame__view.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- apps/ui/views/app_window_frame_view.cc.orig 2020-07-24 02:37:41.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- apps/ui/views/app_window_frame_view.cc.orig 2024-07-24 02:44:21.071273800 +0000
+++ apps/ui/views/app_window_frame_view.cc
-@@ -125,7 +125,7 @@ gfx::Rect AppWindowFrameView::GetBoundsF
- gfx::Rect AppWindowFrameView::GetWindowBoundsForClientBounds(
- const gfx::Rect& client_bounds) const {
+@@ -148,7 +148,7 @@ gfx::Rect AppWindowFrameView::GetWindowB
gfx::Rect window_bounds = client_bounds;
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit once build flag switch of lacros-chrome is
+ // complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
// Get the difference between the widget's client area bounds and window
// bounds, and grow |window_bounds| by that amount.
gfx::Insets native_frame_insets =
diff --git a/chromium/patches/patch-ash_display_mirror__window__controller.cc b/chromium/patches/patch-ash_display_mirror__window__controller.cc
new file mode 100644
index 0000000000..baeb1063ef
--- /dev/null
+++ b/chromium/patches/patch-ash_display_mirror__window__controller.cc
@@ -0,0 +1,20 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ash/display/mirror_window_controller.cc.orig 2024-07-24 02:44:21.383303900 +0000
++++ ash/display/mirror_window_controller.cc
+@@ -294,7 +294,11 @@ void MirrorWindowController::UpdateWindo
+ if (!base::Contains(display_info_list, iter->first,
+ &display::ManagedDisplayInfo::id)) {
+ CloseAndDeleteHost(iter->second, true);
++#if defined(__llvm__)
++ mirroring_host_info_map_.erase(iter++);
++#else
+ iter = mirroring_host_info_map_.erase(iter);
++#endif
+ } else {
+ ++iter;
+ }
diff --git a/chromium/patches/patch-base_BUILD.gn b/chromium/patches/patch-base_BUILD.gn
index 2fc3d6c266..75ebf58f48 100644
--- a/chromium/patches/patch-base_BUILD.gn
+++ b/chromium/patches/patch-base_BUILD.gn
@@ -1,154 +1,178 @@
$NetBSD$
---- base/BUILD.gn.orig 2020-07-15 18:56:44.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/BUILD.gn.orig 2024-07-24 02:44:22.431405500 +0000
+++ base/BUILD.gn
-@@ -60,7 +60,7 @@ declare_args() {
- # replacement base::Location::Current(). On by default in non-official builds
- # for testing purposes.
- # TODO(https://crbug.com/974061): remove this eventually.
-- from_here_uses_location_builtins = !is_official_build
-+ from_here_uses_location_builtins = !is_official_build && !is_bsd
-
- # Unsafe developer build. Has developer-friendly features that may weaken or
- # disable security measures like sandboxing or ASLR.
-@@ -887,7 +887,7 @@ jumbo_component("base") {
- "timer/hi_res_timer_manager_posix.cc",
- ]
+@@ -182,7 +182,7 @@ buildflag_header("ios_cronet_buildflags"
+ flags = [ "CRONET_BUILD=$is_cronet_build" ]
+ }
-- if (!is_nacl && !is_mac && !is_ios) {
-+ if (!is_nacl && !is_mac && !is_ios && !is_bsd) {
- sources += [
- "profiler/stack_copier_signal.cc",
- "profiler/stack_copier_signal.h",
-@@ -896,6 +896,12 @@ jumbo_component("base") {
- "profiler/thread_delegate_posix.h",
- ]
- }
-+
-+ if (is_bsd) {
-+ sources += [
-+ "profiler/stack_sampler_posix.cc",
-+ ]
-+ }
- }
-
- if (is_win) {
-@@ -1182,7 +1188,7 @@ jumbo_component("base") {
- ]
- }
+-enable_message_pump_epoll = is_linux || is_chromeos || is_android
++enable_message_pump_epoll = (is_linux || is_chromeos || is_android) && !is_bsd
+ buildflag_header("message_pump_buildflags") {
+ header = "message_pump_buildflags.h"
+ header_dir = "base/message_loop"
+@@ -966,7 +966,7 @@ component("base") {
+ #"system/sys_info_openbsd.cc",
+ ]
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
+- if (is_apple || current_os == "freebsd" || current_os == "openbsd") {
++ if (is_apple || current_os == "freebsd" || current_os == "openbsd" || current_os == "netbsd") {
sources += [
- "debug/proc_maps_linux.cc",
- "debug/proc_maps_linux.h",
-@@ -1233,7 +1239,7 @@ jumbo_component("base") {
- sources += [ "base_paths_posix.h" ]
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "base_paths_posix.cc",
- "debug/elf_reader.cc",
-@@ -1287,7 +1293,7 @@ jumbo_component("base") {
+ "posix/sysctl.cc",
+ "posix/sysctl.h",
+@@ -1119,11 +1119,23 @@ component("base") {
# Needed for <atomic> if using newer C++ library than sysroot, except if
# building inside the cros_sdk environment - use host_toolchain as a
# more robust check for this.
-- if (!use_sysroot && (is_android || (is_linux && !is_chromecast)) &&
-+ if (!use_sysroot && (is_android || ((is_linux || is_bsd) && !is_chromecast) && !is_clang) &&
+- if (!use_sysroot && (is_android || is_chromeos || (is_linux && !is_castos)) &&
++ if (!use_sysroot && (is_android || is_chromeos || (is_linux && !is_castos && !is_bsd)) &&
host_toolchain != "//build/toolchain/cros:host") {
libs += [ "atomic" ]
}
-@@ -1313,7 +1319,7 @@ jumbo_component("base") {
- "allocator/allocator_shim_override_glibc_weak_symbols.h",
- ]
- deps += [ "//base/allocator:tcmalloc" ]
-- } else if (is_linux && use_allocator == "none") {
-+ } else if ((is_linux || is_bsd) && use_allocator == "none") {
- sources += [ "allocator/allocator_shim_default_dispatch_to_glibc.cc" ]
- } else if ((is_linux || is_android) && use_allocator == "partition") {
- # Cannot use the same dispatching for host-side binaries.
-@@ -1889,7 +1895,7 @@ jumbo_component("base") {
+
++ # *BSD needs libkvm
++ if (is_bsd) {
++ libs += [ "kvm" ]
++ }
++
++ if (is_freebsd) {
++ libs += [
++ "execinfo",
++ "util",
++ ]
++ }
++
+ if (use_allocator_shim) {
+ if (is_apple) {
+ sources += [ "allocator/early_zone_registration_apple.h" ]
+@@ -1143,7 +1155,7 @@ component("base") {
+
+ # Allow more direct string conversions on platforms with native utf8
+ # strings
+- if (is_apple || is_chromeos || is_castos || is_cast_android || is_fuchsia) {
++ if (is_apple || is_chromeos || is_castos || is_cast_android || is_fuchsia || is_bsd) {
+ defines += [ "SYSTEM_NATIVE_UTF8" ]
}
- # Linux.
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- # TODO(brettw) this will need to be parameterized at some point.
- linux_configs = []
- if (use_glib) {
-@@ -1925,6 +1931,33 @@ jumbo_component("base") {
- }
+@@ -2110,6 +2122,29 @@ component("base") {
+ ]
}
-+ if (is_netbsd) {
-+ sources -= [
-+ "files/file_path_watcher_linux.cc",
-+ "files/file_util_linux.cc",
-+ "process/memory_linux.cc",
-+ "process/process_handle_linux.cc",
-+ "process/process_iterator_linux.cc",
-+ "process/process_metrics_linux.cc",
-+ "system/sys_info_linux.cc"
++ if (is_openbsd) {
++ sources += [
++ "process/process_handle_openbsd.cc",
++ "process/process_iterator_openbsd.cc",
++ "process/process_metrics_openbsd.cc",
++ "system/sys_info_openbsd.cc",
+ ]
++ } else if (is_freebsd) {
++ sources += [
++ "process/process_handle_freebsd.cc",
++ "process/process_iterator_freebsd.cc",
++ "process/process_metrics_freebsd.cc",
++ "system/sys_info_freebsd.cc",
++ ]
++ } else if (is_netbsd) {
+ sources += [
-+ "files/file_path_watcher_kqueue.cc",
-+ "files/file_path_watcher_kqueue.h",
-+ "files/file_path_watcher_stub.cc",
-+ "process/memory_stubs.cc",
+ "process/process_handle_netbsd.cc",
+ "process/process_iterator_netbsd.cc",
+ "process/process_metrics_netbsd.cc",
+ "system/sys_info_netbsd.cc",
+ ]
-+ libs += [
-+ "execinfo", # logging.cc
-+ "kvm", # process_metrics_freebsd
-+ "util" # process_metrics_freebsd
-+ ]
+ }
+
# iOS
if (is_ios) {
- sources -= [
-@@ -2987,7 +3020,7 @@ test("base_unittests") {
- ]
+ sources += [
+@@ -2255,6 +2290,33 @@ component("base") {
+ }
}
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [ "debug/proc_maps_linux_unittest.cc" ]
++ if (is_bsd) {
++ sources -= [
++ "files/file_path_watcher_inotify.cc",
++ "files/scoped_file_linux.cc",
++ "process/set_process_title_linux.cc",
++ "process/set_process_title_linux.h",
++ "system/sys_info_linux.cc",
++ "process/process_iterator_linux.cc",
++ "process/process_linux.cc",
++ "process/process_metrics_linux.cc",
++ "process/process_handle_linux.cc",
++ "profiler/stack_copier_signal.cc",
++ "profiler/stack_copier_signal.h",
++ "profiler/thread_delegate_posix.cc",
++ "profiler/thread_delegate_posix.h",
++ "threading/platform_thread_linux.cc",
++ "stack_canary_linux.cc",
++ "stack_canary_linux.h",
++ ]
++ sources += [
++ "files/file_path_watcher_kqueue.cc",
++ "files/file_path_watcher_kqueue.h",
++ "files/file_path_watcher_bsd.cc",
++ "threading/platform_thread_bsd.cc",
++ ]
++ }
++
+ if (use_blink) {
+ sources += [
+ "files/file_path_watcher.cc",
+@@ -2265,7 +2327,7 @@ component("base") {
}
-@@ -3026,7 +3059,7 @@ test("base_unittests") {
- "posix/unix_domain_socket_unittest.cc",
- "task/thread_pool/task_tracker_posix_unittest.cc",
- ]
-- if (!is_nacl && !is_mac && !is_ios) {
-+ if (!is_nacl && !is_mac && !is_ios && !is_bsd) {
- sources += [ "profiler/stack_copier_signal_unittest.cc" ]
- }
+ if (dep_libevent) {
+- deps += [ "//third_party/libevent" ]
++ public_deps += [ "//third_party/libevent" ]
}
-@@ -3173,7 +3206,7 @@ test("base_unittests") {
- }
+
+ if (use_libevent) {
+@@ -3062,7 +3124,7 @@ if (is_apple) {
+ }
+ }
+
+-if (!is_nacl && (is_linux || is_chromeos)) {
++if (!is_nacl && !is_bsd && (is_linux || is_chromeos)) {
+ # This test must compile with -fstack-protector-all
+ source_set("stack_canary_linux_unittests") {
+ testonly = true
+@@ -3711,7 +3773,7 @@ test("base_unittests") {
+ ]
}
-- if (is_fuchsia || is_linux) {
-+ if (is_fuchsia || is_linux || is_bsd) {
- sources += [ "debug/elf_reader_unittest.cc" ]
+- if (is_linux || is_chromeos) {
++ if (!is_bsd && (is_linux || is_chromeos)) {
+ sources += [
+ "debug/proc_maps_linux_unittest.cc",
+ "files/scoped_file_linux_unittest.cc",
+@@ -3738,7 +3800,7 @@ test("base_unittests") {
+ "posix/file_descriptor_shuffle_unittest.cc",
+ "posix/unix_domain_socket_unittest.cc",
+ ]
+- if (!is_nacl && !is_apple) {
++ if (!is_nacl && !is_apple && !is_bsd) {
+ sources += [
+ "profiler/stack_base_address_posix_unittest.cc",
+ "profiler/stack_copier_signal_unittest.cc",
+@@ -3749,7 +3811,7 @@ test("base_unittests") {
- deps += [ "//base/test:malloc_wrapper" ]
-@@ -3241,6 +3274,12 @@ test("base_unittests") {
- manifest = "//build/config/fuchsia/tests.cmx"
+ # Allow more direct string conversions on platforms with native utf8
+ # strings
+- if (is_apple || is_chromeos || is_castos || is_cast_android || is_fuchsia) {
++ if (is_apple || is_chromeos || is_castos || is_cast_android || is_fuchsia || is_bsd) {
+ defines += [ "SYSTEM_NATIVE_UTF8" ]
}
-+ if (is_bsd) {
-+ sources -= [
-+ "debug/proc_maps_linux_unittest.cc",
-+ ]
-+ }
-+
- if (!is_fuchsia && !is_ios) {
- sources += [ "files/file_locking_unittest.cc" ]
+@@ -4017,7 +4079,7 @@ test("base_unittests") {
+ }
}
+
+- if (is_fuchsia || is_linux || is_chromeos) {
++ if ((is_fuchsia || is_linux || is_chromeos) && !is_bsd) {
+ sources += [
+ "debug/elf_reader_unittest.cc",
+ "debug/test_elf_image_builder.cc",
diff --git a/chromium/patches/patch-base_allocator_BUILD.gn b/chromium/patches/patch-base_allocator_BUILD.gn
deleted file mode 100644
index d058f780f7..0000000000
--- a/chromium/patches/patch-base_allocator_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- base/allocator/BUILD.gn.orig 2020-07-15 18:55:48.000000000 +0000
-+++ base/allocator/BUILD.gn
-@@ -64,7 +64,7 @@ config("tcmalloc_flags") {
- cflags = []
- }
-
-- if (is_linux || is_android) {
-+ if (is_linux || is_android || is_bsd) {
- # We enable all warnings by default, but upstream disables a few.
- # Keep "-Wno-*" flags in sync with upstream by comparing against:
- # http://code.google.com/p/google-perftools/source/browse/trunk/Makefile.am
-@@ -233,7 +233,7 @@ if (use_allocator == "tcmalloc") {
- defines += [ "ENABLE_PROFILING=1" ]
- }
-
-- if (is_linux || is_android) {
-+ if (is_linux || is_android || is_bsd) {
- sources -= [
- "$tcmalloc_dir/src/system-alloc.h",
- "$tcmalloc_dir/src/windows/port.cc",
diff --git a/chromium/patches/patch-base_allocator_allocator__shim__unittest.cc b/chromium/patches/patch-base_allocator_allocator__shim__unittest.cc
deleted file mode 100644
index 5422fbd5a6..0000000000
--- a/chromium/patches/patch-base_allocator_allocator__shim__unittest.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- base/allocator/allocator_shim_unittest.cc.orig 2020-06-25 09:31:18.000000000 +0000
-+++ base/allocator/allocator_shim_unittest.cc
-@@ -557,7 +557,7 @@ static size_t GetAllocatedSize(void* ptr
- static size_t GetAllocatedSize(void* ptr) {
- return malloc_size(ptr);
- }
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- static size_t GetAllocatedSize(void* ptr) {
- return malloc_usable_size(ptr);
- }
diff --git a/chromium/patches/patch-base_allocator_dispatcher_tls.h b/chromium/patches/patch-base_allocator_dispatcher_tls.h
new file mode 100644
index 0000000000..93c8df7195
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_dispatcher_tls.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/dispatcher/tls.h.orig 2024-07-24 02:44:22.431405500 +0000
++++ base/allocator/dispatcher/tls.h
+@@ -77,7 +77,7 @@ struct BASE_EXPORT MMapAllocator {
+ constexpr static size_t AllocationChunkSize = 16384;
+ #elif BUILDFLAG(IS_ANDROID) && defined(ARCH_CPU_64_BITS)
+ constexpr static size_t AllocationChunkSize = 16384;
+-#elif BUILDFLAG(IS_LINUX) && defined(ARCH_CPU_ARM64)
++#elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(ARCH_CPU_ARM64)
+ constexpr static size_t AllocationChunkSize = 16384;
+ #else
+ constexpr static size_t AllocationChunkSize = 4096;
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_page__allocator__internals__posix.h b/chromium/patches/patch-base_allocator_partition__allocator_page__allocator__internals__posix.h
deleted file mode 100644
index 85469118c8..0000000000
--- a/chromium/patches/patch-base_allocator_partition__allocator_page__allocator__internals__posix.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- base/allocator/partition_allocator/page_allocator_internals_posix.h.orig 2020-06-25 09:31:18.000000000 +0000
-+++ base/allocator/partition_allocator/page_allocator_internals_posix.h
-@@ -24,7 +24,7 @@
- #if defined(OS_ANDROID)
- #include <sys/prctl.h>
- #endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include <sys/resource.h>
-
- #include <algorithm>
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_partition__alloc.gni b/chromium/patches/patch-base_allocator_partition__allocator_partition__alloc.gni
new file mode 100644
index 0000000000..a14cc6674a
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_partition__alloc.gni
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/partition_alloc.gni.orig 2024-07-24 02:44:22.435405700 +0000
++++ base/allocator/partition_allocator/partition_alloc.gni
+@@ -31,7 +31,7 @@ if (is_nacl) {
+ use_large_empty_slot_span_ring = is_mac
+
+ has_memory_tagging =
+- current_cpu == "arm64" && is_clang && !is_asan && (is_linux || is_android)
++ current_cpu == "arm64" && is_clang && !is_asan && !is_bsd && (is_linux || is_android)
+
+ declare_args() {
+ # Causes all the allocations to be routed via allocator_shim.cc. Usually,
+@@ -360,7 +360,7 @@ assert(!use_asan_backup_ref_ptr || use_r
+ # dependencies that use partition_allocator are compiled in AOSP against a
+ # version of glibc that does not include pkeys syscall numbers.
+ is_pkeys_available =
+- (is_linux || is_chromeos) && current_cpu == "x64" && !is_cronet_build
++ !is_bsd && (is_linux || is_chromeos) && current_cpu == "x64" && !is_cronet_build
+ declare_args() {
+ enable_pkeys = is_pkeys_available
+ }
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_partition__alloc__unittest.cc b/chromium/patches/patch-base_allocator_partition__allocator_partition__alloc__unittest.cc
deleted file mode 100644
index a30c2cb94e..0000000000
--- a/chromium/patches/patch-base_allocator_partition__allocator_partition__alloc__unittest.cc
+++ /dev/null
@@ -1,19 +0,0 @@
-$NetBSD$
-
---- base/allocator/partition_allocator/partition_alloc_unittest.cc.orig 2020-06-25 09:31:18.000000000 +0000
-+++ base/allocator/partition_allocator/partition_alloc_unittest.cc
-@@ -313,9 +313,13 @@ void FreeFullPage(PartitionRoot<base::in
- }
- }
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- bool CheckPageInCore(void* ptr, bool in_core) {
-+#if defined(OS_BSD)
-+ char ret = 0;
-+#else
- unsigned char ret = 0;
-+#endif
- EXPECT_EQ(0, mincore(ptr, kSystemPageSize, &ret));
- return in_core == (ret & 1);
- }
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_BUILD.gn b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_BUILD.gn
new file mode 100644
index 0000000000..3580ff063e
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_BUILD.gn
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/src/partition_alloc/BUILD.gn.orig 2024-07-24 02:44:22.435405700 +0000
++++ base/allocator/partition_allocator/src/partition_alloc/BUILD.gn
+@@ -863,7 +863,7 @@ if (is_clang_or_gcc) {
+ configs -= [ partition_alloc_enable_arc_config ]
+ }
+ }
+- if (is_chromeos || is_linux) {
++ if ((is_chromeos || is_linux) && !is_bsd) {
+ shim_headers += [
+ "shim/allocator_shim_override_cpp_symbols.h",
+ "shim/allocator_shim_override_glibc_weak_symbols.h",
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_address__space__randomization.h b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_address__space__randomization.h
new file mode 100644
index 0000000000..dfd9a9e32f
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_address__space__randomization.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/src/partition_alloc/address_space_randomization.h.orig 2024-07-24 02:44:22.439406200 +0000
++++ base/allocator/partition_allocator/src/partition_alloc/address_space_randomization.h
+@@ -38,7 +38,7 @@ AslrMask(uintptr_t bits) {
+
+ #if PA_BUILDFLAG(PA_ARCH_CPU_64_BITS)
+
+- #if defined(MEMORY_TOOL_REPLACES_ALLOCATOR)
++ #if defined(MEMORY_TOOL_REPLACES_ALLOCATOR) && !PA_BUILDFLAG(IS_BSD)
+
+ // We shouldn't allocate system pages at all for sanitizer builds. However,
+ // we do, and if random hint addresses interfere with address ranges
+@@ -125,7 +125,7 @@ AslrMask(uintptr_t bits) {
+ return AslrAddress(0x20000000ULL);
+ }
+ #elif PA_BUILDFLAG(PA_ARCH_CPU_ARM64)
+- #if PA_BUILDFLAG(IS_LINUX)
++ #if PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_BSD)
+
+ // Linux on arm64 can use 39, 42, 48, or 52-bit user space, depending on
+ // page size and number of levels of translation pages used. We use
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator.h b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator.h
new file mode 100644
index 0000000000..89e92dcc57
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/src/partition_alloc/page_allocator.h.orig 2024-07-24 02:44:22.443406600 +0000
++++ base/allocator/partition_allocator/src/partition_alloc/page_allocator.h
+@@ -259,7 +259,7 @@ bool DecommitAndZeroSystemPages(void* ad
+ // recommitted. Do not assume that this will not change over time.
+ constexpr PA_COMPONENT_EXPORT(
+ PARTITION_ALLOC) bool DecommittedMemoryIsAlwaysZeroed() {
+-#if PA_BUILDFLAG(IS_APPLE)
++#if PA_BUILDFLAG(IS_APPLE) || PA_BUILDFLAG(IS_BSD)
+ return false;
+ #else
+ return true;
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator__constants.h b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator__constants.h
new file mode 100644
index 0000000000..7626e81d94
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator__constants.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h.orig 2024-07-24 02:44:22.443406600 +0000
++++ base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h
+@@ -26,7 +26,7 @@
+ #define PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR __attribute__((const))
+
+ #elif (PA_BUILDFLAG(IS_ANDROID) && PA_BUILDFLAG(PA_ARCH_CPU_64_BITS)) || \
+- (PA_BUILDFLAG(IS_LINUX) && PA_BUILDFLAG(PA_ARCH_CPU_ARM64))
++ ((PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_BSD)) && PA_BUILDFLAG(PA_ARCH_CPU_ARM64))
+ // This should work for all POSIX (if needed), but currently all other
+ // supported OS/architecture combinations use either hard-coded values
+ // (such as x86) or have means to determine these values without needing
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator__internals__posix.h b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator__internals__posix.h
new file mode 100644
index 0000000000..6c4771b2de
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator__internals__posix.h
@@ -0,0 +1,22 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/src/partition_alloc/page_allocator_internals_posix.h.orig 2024-07-24 02:44:22.443406600 +0000
++++ base/allocator/partition_allocator/src/partition_alloc/page_allocator_internals_posix.h
+@@ -411,8 +411,12 @@ bool TryRecommitSystemPagesInternal(
+
+ void DiscardSystemPagesInternal(uintptr_t address, size_t length) {
+ void* ptr = reinterpret_cast<void*>(address);
+-#if PA_BUILDFLAG(IS_APPLE)
++#if PA_BUILDFLAG(IS_APPLE) || PA_BUILDFLAG(IS_BSD)
++#if PA_BUILDFLAG(IS_BSD)
++ int ret = madvise(ptr, length, MADV_FREE);
++#else
+ int ret = madvise(ptr, length, MADV_FREE_REUSABLE);
++#endif
+ if (ret) {
+ // MADV_FREE_REUSABLE sometimes fails, so fall back to MADV_DONTNEED.
+ ret = madvise(ptr, length, MADV_DONTNEED);
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_debug_stack__trace__posix.cc b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_debug_stack__trace__posix.cc
new file mode 100644
index 0000000000..a563bbee9d
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_debug_stack__trace__posix.cc
@@ -0,0 +1,40 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace_posix.cc.orig 2024-07-24 02:44:22.447407000 +0000
++++ base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace_posix.cc
+@@ -13,11 +13,11 @@
+ #include "partition_alloc/partition_alloc_base/posix/eintr_wrapper.h"
+ #include "partition_alloc/partition_alloc_base/strings/safe_sprintf.h"
+
+-#if !PA_BUILDFLAG(IS_ANDROID) && !PA_BUILDFLAG(IS_APPLE)
++#if !PA_BUILDFLAG(IS_ANDROID) && !PA_BUILDFLAG(IS_APPLE) && !PA_BUILDFLAG(IS_BSD)
+ #include <link.h> // For ElfW() macro.
+ #endif
+
+-#if PA_BUILDFLAG(IS_APPLE)
++#if PA_BUILDFLAG(IS_APPLE) || PA_BUILDFLAG(IS_BSD)
+ #include <dlfcn.h>
+ #endif
+
+@@ -25,7 +25,7 @@ namespace partition_alloc::internal::bas
+
+ namespace {
+
+-#if !PA_BUILDFLAG(IS_APPLE)
++#if !PA_BUILDFLAG(IS_APPLE) && !PA_BUILDFLAG(IS_BSD)
+
+ // On Android the 'open' function has two versions:
+ // int open(const char *pathname, int flags);
+@@ -369,7 +369,7 @@ void PrintStackTraceInternal(const void*
+ }
+ #endif // !PA_BUILDFLAG(IS_APPLE)
+
+-#if PA_BUILDFLAG(IS_APPLE)
++#if PA_BUILDFLAG(IS_APPLE) || PA_BUILDFLAG(IS_BSD)
+ // Since /proc/self/maps is not available, use dladdr() to obtain module
+ // names and offsets inside the modules from the given addresses.
+ void PrintStackTraceInternal(const void* const* trace, size_t size) {
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_rand__util__posix.cc b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_rand__util__posix.cc
new file mode 100644
index 0000000000..6e085c6afe
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_rand__util__posix.cc
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util_posix.cc.orig 2024-07-24 02:44:22.455407900 +0000
++++ base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util_posix.cc
+@@ -102,6 +102,10 @@ void RandBytes(void* output, size_t outp
+ if (getentropy(output, output_length) == 0) {
+ return;
+ }
++#elif PA_BUILDFLAG(IS_BSD)
++ if (getentropy(output, output_length) == 0) {
++ return;
++ }
+ #endif
+ // If getrandom(2) above returned with an error and the /dev/urandom fallback
+ // took place on Linux/ChromeOS bots, they would fail with a CHECK in
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread.h b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread.h
new file mode 100644
index 0000000000..861f0dafe4
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread.h.orig 2024-07-24 02:44:22.459408300 +0000
++++ base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread.h
+@@ -37,6 +37,8 @@ typedef DWORD PlatformThreadId;
+ typedef zx_handle_t PlatformThreadId;
+ #elif PA_BUILDFLAG(IS_APPLE)
+ typedef mach_port_t PlatformThreadId;
++#elif PA_BUILDFLAG(IS_BSD)
++typedef uint64_t PlatformThreadId;
+ #elif PA_BUILDFLAG(IS_POSIX)
+ typedef pid_t PlatformThreadId;
+ #endif
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread__internal__posix.h b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread__internal__posix.h
new file mode 100644
index 0000000000..bcf5beaea2
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread__internal__posix.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_internal_posix.h.orig 2024-07-24 02:44:22.459408300 +0000
++++ base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_internal_posix.h
+@@ -10,7 +10,7 @@
+
+ namespace partition_alloc::internal::base::internal {
+
+-#if PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_CHROMEOS)
++#if PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_CHROMEOS) || PA_BUILDFLAG(IS_BSD)
+ // Current thread id is cached in thread local storage for performance reasons.
+ // In some rare cases it's important to invalidate that cache explicitly (e.g.
+ // after going through clone() syscall which does not call pthread_atfork()
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread__posix.cc b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread__posix.cc
new file mode 100644
index 0000000000..3acf4275a3
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread__posix.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_posix.cc.orig 2024-07-24 02:44:22.459408300 +0000
++++ base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_posix.cc
+@@ -18,7 +18,7 @@
+ #include "partition_alloc/partition_alloc_base/logging.h"
+ #include "partition_alloc/partition_alloc_base/threading/platform_thread_internal_posix.h"
+
+-#if PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_CHROMEOS)
++#if PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_CHROMEOS) || PA_BUILDFLAG(IS_BSD)
+ #include <sys/syscall.h>
+ #include <atomic>
+ #endif
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__config.h b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__config.h
new file mode 100644
index 0000000000..4041535ca7
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__config.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h.orig 2024-07-24 02:44:22.463408500 +0000
++++ base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h
+@@ -236,7 +236,7 @@ constexpr bool kUseLazyCommit = false;
+ // This may be required on more platforms in the future.
+ #define PA_CONFIG_HAS_ATFORK_HANDLER() \
+ (PA_BUILDFLAG(IS_APPLE) || PA_BUILDFLAG(IS_LINUX) || \
+- PA_BUILDFLAG(IS_CHROMEOS))
++ PA_BUILDFLAG(IS_CHROMEOS) || PA_BUILDFLAG(IS_BSD))
+
+ // PartitionAlloc uses PartitionRootEnumerator to acquire all
+ // PartitionRoots at BeforeFork and to release at AfterFork.
+@@ -284,7 +284,7 @@ constexpr bool kUseLazyCommit = false;
+ // Also enabled on ARM64 macOS and iOS, as the 16kiB pages on this platform lead
+ // to larger slot spans.
+ #if PA_BUILDFLAG(IS_LINUX) || \
+- (PA_BUILDFLAG(IS_APPLE) && PA_BUILDFLAG(PA_ARCH_CPU_ARM64))
++ (PA_BUILDFLAG(IS_APPLE) && PA_BUILDFLAG(PA_ARCH_CPU_ARM64)) || PA_BUILDFLAG(IS_BSD)
+ #define PA_CONFIG_PREFER_SMALLER_SLOT_SPANS() 1
+ #else
+ #define PA_CONFIG_PREFER_SMALLER_SLOT_SPANS() 0
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__constants.h b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__constants.h
new file mode 100644
index 0000000000..bdfaa07748
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__constants.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h.orig 2024-07-24 02:44:22.463408500 +0000
++++ base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h
+@@ -329,7 +329,7 @@ PA_DEFINE_OPERATORS_FOR_FLAGS(PoolHandle
+ // 8GB for each of the glued pools).
+ #if PA_BUILDFLAG(HAS_64_BIT_POINTERS)
+ #if PA_BUILDFLAG(IS_ANDROID) || PA_BUILDFLAG(IS_IOS) || \
+- PA_BUILDFLAG(ENABLE_POINTER_COMPRESSION)
++ PA_BUILDFLAG(ENABLE_POINTER_COMPRESSION) || PA_BUILDFLAG(IS_BSD)
+ constexpr size_t kPoolMaxSize = 8 * kGiB;
+ #else
+ constexpr size_t kPoolMaxSize = 16 * kGiB;
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__forward.h b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__forward.h
new file mode 100644
index 0000000000..049764eeb6
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__forward.h
@@ -0,0 +1,22 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/src/partition_alloc/partition_alloc_forward.h.orig 2024-07-24 02:44:22.463408500 +0000
++++ base/allocator/partition_allocator/src/partition_alloc/partition_alloc_forward.h
+@@ -28,9 +28,13 @@ namespace internal {
+ // the second one 16. We could technically return something different for
+ // malloc() and operator new(), but this would complicate things, and most of
+ // our allocations are presumably coming from operator new() anyway.
++#if defined(__i386__) && defined(OS_FREEBSD)
++constexpr size_t kAlignment = 8;
++#else
+ constexpr size_t kAlignment =
+ std::max(alignof(max_align_t),
+ static_cast<size_t>(__STDCPP_DEFAULT_NEW_ALIGNMENT__));
++#endif
+ static_assert(kAlignment <= 16,
+ "PartitionAlloc doesn't support a fundamental alignment larger "
+ "than 16 bytes.");
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__root.cc b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__root.cc
new file mode 100644
index 0000000000..13da277ec0
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__root.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/src/partition_alloc/partition_root.cc.orig 2024-07-24 02:44:22.467409000 +0000
++++ base/allocator/partition_allocator/src/partition_alloc/partition_root.cc
+@@ -48,7 +48,7 @@
+ #include "wow64apiset.h"
+ #endif
+
+-#if PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_CHROMEOS)
++#if PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_CHROMEOS) || PA_BUILDFLAG(IS_BSD)
+ #include <pthread.h>
+ #endif
+
+@@ -282,7 +282,7 @@ void PartitionAllocMallocInitOnce() {
+ return;
+ }
+
+-#if PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_CHROMEOS)
++#if PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_CHROMEOS) || PA_BUILDFLAG(IS_BSD)
+ // When fork() is called, only the current thread continues to execute in the
+ // child process. If the lock is held, but *not* by this thread when fork() is
+ // called, we have a deadlock.
+@@ -1079,7 +1079,7 @@ void PartitionRoot::Init(PartitionOption
+ // apple OSes.
+ PA_CHECK((internal::SystemPageSize() == (size_t{1} << 12)) ||
+ (internal::SystemPageSize() == (size_t{1} << 14)));
+-#elif PA_BUILDFLAG(IS_LINUX) && PA_BUILDFLAG(PA_ARCH_CPU_ARM64)
++#elif (PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_BSD)) && PA_BUILDFLAG(PA_ARCH_CPU_ARM64)
+ // Check runtime pagesize. Though the code is currently the same, it is
+ // not merged with the IS_APPLE case above as a 1 << 16 case needs to be
+ // added here in the future, to allow 64 kiB pagesize. That is only
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_spinning__mutex.cc b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_spinning__mutex.cc
new file mode 100644
index 0000000000..b8b4d304d6
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_spinning__mutex.cc
@@ -0,0 +1,65 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/src/partition_alloc/spinning_mutex.cc.orig 2024-07-24 02:44:22.479410200 +0000
++++ base/allocator/partition_allocator/src/partition_alloc/spinning_mutex.cc
+@@ -17,7 +17,16 @@
+ #endif
+
+ #if PA_CONFIG(HAS_LINUX_KERNEL)
++#if defined(OS_OPENBSD) || defined(OS_NETBSD)
++#include <sys/time.h>
++#include <sys/futex.h>
++#elif defined(OS_FREEBSD)
++#include <sys/types.h>
++#include <sys/thr.h>
++#include <sys/umtx.h>
++#else
+ #include <linux/futex.h>
++#endif
+ #include <sys/syscall.h>
+ #include <unistd.h>
+
+@@ -109,8 +118,19 @@ void SpinningMutex::FutexWait() {
+ // |kLockedContended| anymore. Note that even without spurious wakeups, the
+ // value of |state_| is not guaranteed when this returns, as another thread
+ // may get the lock before we get to run.
++#if defined(OS_FREEBSD)
++ int err = _umtx_op(&state_, UMTX_OP_WAIT_UINT_PRIVATE,
++ kLockedContended, nullptr, nullptr);
++#elif defined(OS_OPENBSD)
++ int err = futex(reinterpret_cast<volatile unsigned int *>(&state_), FUTEX_WAIT | FUTEX_PRIVATE_FLAG,
++ kLockedContended, nullptr, nullptr);
++#elif defined(OS_NETBSD)
++ int err = syscall(SYS___futex, reinterpret_cast<int *>(&state_), FUTEX_WAIT | FUTEX_PRIVATE_FLAG,
++ kLockedContended, nullptr, nullptr, 0, 0);
++#else
+ int err = syscall(SYS_futex, &state_, FUTEX_WAIT | FUTEX_PRIVATE_FLAG,
+ kLockedContended, nullptr, nullptr, 0);
++#endif
+
+ if (err) {
+ // These are programming error, check them.
+@@ -122,8 +142,19 @@ void SpinningMutex::FutexWait() {
+
+ void SpinningMutex::FutexWake() {
+ int saved_errno = errno;
++#if defined(OS_FREEBSD)
++ long retval = _umtx_op(&state_, UMTX_OP_WAKE_PRIVATE,
++ 1 /* wake up a single waiter */, nullptr, nullptr);
++#elif defined(OS_OPENBSD)
++ long retval = futex(reinterpret_cast<volatile unsigned int *>(&state_), FUTEX_WAKE | FUTEX_PRIVATE_FLAG,
++ 1 /* wake up a single waiter */, nullptr, nullptr);
++#elif defined(OS_NETBSD)
++ long retval = syscall(SYS___futex, reinterpret_cast<int *>(&state_), FUTEX_WAKE | FUTEX_PRIVATE_FLAG,
++ 1 /* wake up a single waiter */, nullptr, nullptr, 0, 0);
++#else
+ long retval = syscall(SYS_futex, &state_, FUTEX_WAKE | FUTEX_PRIVATE_FLAG,
+ 1 /* wake up a single waiter */, nullptr, nullptr, 0);
++#endif
+ PA_CHECK(retval != -1);
+ errno = saved_errno;
+ }
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_stack_stack.cc b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_stack_stack.cc
new file mode 100644
index 0000000000..637d6c178d
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_stack_stack.cc
@@ -0,0 +1,56 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/src/partition_alloc/stack/stack.cc.orig 2024-07-24 02:44:22.479410200 +0000
++++ base/allocator/partition_allocator/src/partition_alloc/stack/stack.cc
+@@ -18,6 +18,10 @@
+ #include <pthread.h>
+ #endif
+
++#if PA_BUILDFLAG(IS_BSD) && !PA_BUILDFLAG(IS_NETBSD)
++#include <pthread_np.h>
++#endif
++
+ #if PA_BUILDFLAG(PA_LIBC_GLIBC)
+ extern "C" void* __libc_stack_end;
+ #endif
+@@ -50,6 +54,36 @@ void* GetStackTop() {
+ return pthread_get_stackaddr_np(pthread_self());
+ }
+
++#elif PA_BUILDFLAG(IS_OPENBSD)
++
++void* GetStackTop() {
++ stack_t ss;
++ if (pthread_stackseg_np(pthread_self(), &ss) != 0)
++ return nullptr;
++ return reinterpret_cast<uint8_t*>(ss.ss_sp);
++}
++
++#elif PA_BUILDFLAG(IS_FREEBSD) || PA_BUILDFLAG(IS_NETBSD)
++
++void* GetStackTop() {
++ pthread_attr_t attr;
++ int error = pthread_attr_init(&attr);
++ if (error) {
++ return nullptr;
++ }
++ error = pthread_attr_get_np(pthread_self(), &attr);
++ if (!error) {
++ void* base;
++ size_t size;
++ error = pthread_attr_getstack(&attr, &base, &size);
++ PA_CHECK(!error);
++ pthread_attr_destroy(&attr);
++ return reinterpret_cast<uint8_t*>(base) + size;
++ }
++ pthread_attr_destroy(&attr);
++ return nullptr;
++}
++
+ #elif PA_BUILDFLAG(IS_POSIX) || PA_BUILDFLAG(IS_FUCHSIA)
+
+ void* GetStackTop() {
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_thread__isolation_pkey.cc b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_thread__isolation_pkey.cc
new file mode 100644
index 0000000000..94dfb30b2b
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_thread__isolation_pkey.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/src/partition_alloc/thread_isolation/pkey.cc.orig 2024-07-24 02:44:22.487410800 +0000
++++ base/allocator/partition_allocator/src/partition_alloc/thread_isolation/pkey.cc
+@@ -16,7 +16,7 @@
+ #include "partition_alloc/partition_alloc_check.h"
+ #include "partition_alloc/thread_isolation/thread_isolation.h"
+
+-#if !PA_BUILDFLAG(IS_LINUX) && !PA_BUILDFLAG(IS_CHROMEOS)
++#if !PA_BUILDFLAG(IS_LINUX) && !PA_BUILDFLAG(IS_CHROMEOS) && !PA_BUILDFLAG(IS_BSD)
+ #error "This pkey code is currently only supported on Linux and ChromeOS"
+ #endif
+
diff --git a/chromium/patches/patch-base_atomicops.h b/chromium/patches/patch-base_atomicops.h
new file mode 100644
index 0000000000..be69a94763
--- /dev/null
+++ b/chromium/patches/patch-base_atomicops.h
@@ -0,0 +1,20 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/atomicops.h.orig 2024-07-24 02:44:22.535415400 +0000
++++ base/atomicops.h
+@@ -71,7 +71,11 @@ typedef intptr_t Atomic64;
+
+ // Use AtomicWord for a machine-sized pointer. It will use the Atomic32 or
+ // Atomic64 routines below, depending on your architecture.
++#if !defined(OS_OPENBSD) && defined(__i386__)
++typedef Atomic32 AtomicWord;
++#else
+ typedef intptr_t AtomicWord;
++#endif
+
+ // Atomically execute:
+ // result = *ptr;
diff --git a/chromium/patches/patch-base_base__paths__posix.cc b/chromium/patches/patch-base_base__paths__posix.cc
index c74aef2d33..50d670e407 100644
--- a/chromium/patches/patch-base_base__paths__posix.cc
+++ b/chromium/patches/patch-base_base__paths__posix.cc
@@ -1,13 +1,128 @@
$NetBSD$
---- base/base_paths_posix.cc.orig 2020-07-15 18:55:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/base_paths_posix.cc.orig 2024-07-24 02:44:22.535415400 +0000
+++ base/base_paths_posix.cc
-@@ -67,7 +67,7 @@ bool PathProviderPosix(int key, FilePath
+@@ -15,6 +15,7 @@
+ #include <ostream>
+ #include <string>
+
++#include "base/command_line.h"
+ #include "base/environment.h"
+ #include "base/files/file_path.h"
+ #include "base/files/file_util.h"
+@@ -26,9 +27,13 @@
+ #include "base/process/process_metrics.h"
+ #include "build/build_config.h"
+
+-#if BUILDFLAG(IS_FREEBSD)
++#if BUILDFLAG(IS_BSD)
+ #include <sys/param.h>
+ #include <sys/sysctl.h>
++#if BUILDFLAG(IS_OPENBSD)
++#include <kvm.h>
++#define MAXTOKENS 2
++#endif
+ #elif BUILDFLAG(IS_SOLARIS) || BUILDFLAG(IS_AIX)
+ #include <stdlib.h>
+ #endif
+@@ -49,13 +54,21 @@ bool PathProviderPosix(int key, FilePath
+ *result = bin_dir;
+ return true;
+ #elif BUILDFLAG(IS_FREEBSD)
+- int name[] = { CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1 };
+- std::optional<std::string> bin_dir = StringSysctl(name, std::size(name));
++ std::optional<std::string> bin_dir = StringSysctl({ CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1 });
++ if (!bin_dir.has_value() || bin_dir.value().length() <= 1) {
++ NOTREACHED_IN_MIGRATION() << "Unable to resolve path.";
++ return false;
++ }
++ *result = FilePath(bin_dir.value());
++ return true;
++#elif BUILDFLAG(IS_NETBSD)
++ std::optional<std::string> bin_dir = StringSysctl({ CTL_KERN, KERN_PROC_ARGS, getpid(), KERN_PROC_PATHNAME });
+ if (!bin_dir.has_value() || bin_dir.value().length() <= 1) {
+ NOTREACHED_IN_MIGRATION() << "Unable to resolve path.";
+ return false;
}
+ *result = FilePath(bin_dir.value());
++ VLOG(1) << "PathProviderPosix result: " << bin_dir.value();
+ return true;
+ #elif BUILDFLAG(IS_SOLARIS)
+ char bin_dir[PATH_MAX + 1];
+@@ -67,13 +80,65 @@ bool PathProviderPosix(int key, FilePath
*result = FilePath(bin_dir);
return true;
--#elif defined(OS_OPENBSD) || defined(OS_AIX)
-+#elif defined(OS_OPENBSD) || defined(OS_AIX) || defined(OS_NETBSD)
- // There is currently no way to get the executable path on OpenBSD
- char* cpath;
- if ((cpath = getenv("CHROME_EXE_PATH")) != NULL)
+ #elif BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_AIX)
+- // There is currently no way to get the executable path on OpenBSD
+- char* cpath;
+- if ((cpath = getenv("CHROME_EXE_PATH")) != NULL)
+- *result = FilePath(cpath);
+- else
+- *result = FilePath("/usr/local/chrome/chrome");
+- return true;
++ char *cpath;
++#if !BUILDFLAG(IS_AIX)
++ struct kinfo_file *files;
++ kvm_t *kd = NULL;
++ char errbuf[_POSIX2_LINE_MAX];
++ static char retval[PATH_MAX];
++ int cnt;
++ struct stat sb;
++ pid_t cpid = getpid();
++ bool ret = false;
++
++ const base::CommandLine* command_line =
++ base::CommandLine::ForCurrentProcess();
++
++ VLOG(1) << "PathProviderPosix argv: " << command_line->argv()[0];
++
++ if (realpath(command_line->argv()[0].c_str(), retval) == NULL)
++ goto out;
++
++ if (stat(command_line->argv()[0].c_str(), &sb) < 0)
++ goto out;
++
++ if (!command_line->HasSwitch("no-sandbox")) {
++ ret = true;
++ *result = FilePath(retval);
++ VLOG(1) << "PathProviderPosix (sandbox) result: " << retval;
++ goto out;
++ }
++
++ if ((kd = kvm_openfiles(NULL, NULL, NULL, (int)KVM_NO_FILES, errbuf)) == NULL)
++ goto out;
++
++ if ((files = kvm_getfiles(kd, KERN_FILE_BYPID, cpid,
++ sizeof(struct kinfo_file), &cnt)) == NULL)
++ goto out;
++
++ for (int i = 0; i < cnt; i++) {
++ if (files[i].fd_fd == KERN_FILE_TEXT &&
++ files[i].va_fsid == static_cast<uint32_t>(sb.st_dev) &&
++ files[i].va_fileid == sb.st_ino) {
++ ret = true;
++ *result = FilePath(retval);
++ VLOG(1) << "PathProviderPosix result: " << retval;
++ }
++ }
++out:
++ if (kd)
++ kvm_close(kd);
++ if (!ret) {
++#endif
++ if ((cpath = getenv("CHROME_EXE_PATH")) != NULL)
++ *result = FilePath(cpath);
++ else
++ *result = FilePath("/usr/local/chrome/chrome");
++ return true;
++#if !BUILDFLAG(IS_AIX)
++ }
++ return ret;
++#endif
+ #endif
+ }
+ case DIR_SRC_TEST_DATA_ROOT: {
diff --git a/chromium/patches/patch-base_base__switches.cc b/chromium/patches/patch-base_base__switches.cc
deleted file mode 100644
index e1bc8705a2..0000000000
--- a/chromium/patches/patch-base_base__switches.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- base/base_switches.cc.orig 2020-07-08 21:40:31.000000000 +0000
-+++ base/base_switches.cc
-@@ -117,7 +117,7 @@ const char kDisableHighResTimer[] = "dis
- const char kDisableUsbKeyboardDetect[] = "disable-usb-keyboard-detect";
- #endif
-
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- // The /dev/shm partition is too small in certain VM environments, causing
- // Chrome to fail or crash (see http://crbug.com/715363). Use this flag to
- // work-around this issue (a temporary directory will always be used to create
-@@ -142,7 +142,7 @@ const char kReachedCodeSamplingIntervalU
- "reached-code-sampling-interval-us";
- #endif
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // Controls whether or not retired instruction counts are surfaced for threads
- // in trace events on Linux.
- //
diff --git a/chromium/patches/patch-base_base__switches.h b/chromium/patches/patch-base_base__switches.h
deleted file mode 100644
index 88fad95327..0000000000
--- a/chromium/patches/patch-base_base__switches.h
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- base/base_switches.h.orig 2020-06-25 09:31:18.000000000 +0000
-+++ base/base_switches.h
-@@ -38,7 +38,7 @@ extern const char kDisableHighResTimer[]
- extern const char kDisableUsbKeyboardDetect[];
- #endif
-
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- extern const char kDisableDevShmUsage[];
- #endif
-
-@@ -51,7 +51,7 @@ extern const char kEnableReachedCodeProf
- extern const char kOrderfileMemoryOptimization[];
- #endif
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- extern const char kEnableThreadInstructionCount[];
- #endif
-
diff --git a/chromium/patches/patch-base_compiler__specific.h b/chromium/patches/patch-base_compiler__specific.h
new file mode 100644
index 0000000000..43ba5eebd0
--- /dev/null
+++ b/chromium/patches/patch-base_compiler__specific.h
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/compiler_specific.h.orig 2024-07-24 02:44:22.539415800 +0000
++++ base/compiler_specific.h
+@@ -316,7 +316,8 @@
+ //
+ // In some cases it's desirable to remove this, e.g. on hot functions, or if
+ // we have purposely changed the reference canary.
+-#if defined(COMPILER_GCC) || defined(__clang__)
++#if (defined(COMPILER_GCC) || defined(__clang__)) && !defined(__OpenBSD__) && !defined(__FreeBSD__) && \
++ !defined(__NetBSD__)
+ #if HAS_ATTRIBUTE(__no_stack_protector__)
+ #define NO_STACK_PROTECTOR __attribute__((__no_stack_protector__))
+ #else
diff --git a/chromium/patches/patch-base_cpu.cc b/chromium/patches/patch-base_cpu.cc
deleted file mode 100644
index 4273f0f84f..0000000000
--- a/chromium/patches/patch-base_cpu.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- base/cpu.cc.orig 2020-06-25 09:31:18.000000000 +0000
-+++ base/cpu.cc
-@@ -15,7 +15,7 @@
-
- #include "base/stl_util.h"
-
--#if defined(ARCH_CPU_ARM_FAMILY) && (defined(OS_ANDROID) || defined(OS_LINUX))
-+#if defined(ARCH_CPU_ARM_FAMILY) && (defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD))
- #include "base/files/file_util.h"
- #endif
-
-@@ -136,7 +136,7 @@ uint64_t xgetbv(uint32_t xcr) {
-
- #endif // ARCH_CPU_X86_FAMILY
-
--#if defined(ARCH_CPU_ARM_FAMILY) && (defined(OS_ANDROID) || defined(OS_LINUX))
-+#if defined(ARCH_CPU_ARM_FAMILY) && (defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD))
- std::string* CpuInfoBrand() {
- static std::string* brand = []() {
- // This function finds the value from /proc/cpuinfo under the key "model
-@@ -288,7 +288,7 @@ void CPU::Initialize() {
- }
- }
- #elif defined(ARCH_CPU_ARM_FAMILY)
--#if (defined(OS_ANDROID) || defined(OS_LINUX))
-+#if (defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD))
- cpu_brand_ = *CpuInfoBrand();
- #elif defined(OS_WIN)
- // Windows makes high-resolution thread timing information available in
diff --git a/chromium/patches/patch-base_debug_debugger__posix.cc b/chromium/patches/patch-base_debug_debugger__posix.cc
index 38ddebcf51..4ac7655056 100644
--- a/chromium/patches/patch-base_debug_debugger__posix.cc
+++ b/chromium/patches/patch-base_debug_debugger__posix.cc
@@ -1,20 +1,35 @@
$NetBSD$
---- base/debug/debugger_posix.cc.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/debug/debugger_posix.cc.orig 2024-07-24 02:44:22.551417000 +0000
+++ base/debug/debugger_posix.cc
-@@ -93,6 +93,7 @@ bool BeingDebugged() {
+@@ -41,6 +41,10 @@
+ #include <sys/sysctl.h>
+ #endif
+
++#if BUILDFLAG(IS_OPENBSD)
++#include <sys/proc.h>
++#endif
++
+ #if BUILDFLAG(IS_FREEBSD)
+ #include <sys/user.h>
+ #endif
+@@ -86,6 +90,7 @@ bool BeingDebugged() {
// Initialize mib, which tells sysctl what info we want. In this case,
// we're looking for information about a specific process ID.
-+#if defined(OS_FREEBSD) || defined(OS_OPENBSD)
++#if !BUILDFLAG(IS_NETBSD)
int mib[] = {
CTL_KERN,
KERN_PROC,
-@@ -103,10 +104,24 @@ bool BeingDebugged() {
+@@ -97,36 +102,75 @@ bool BeingDebugged() {
0
#endif
};
-+#elif defined(OS_NETBSD)
++#else
+ int mib[] = {
+ CTL_KERN,
+ KERN_PROC2,
@@ -27,23 +42,65 @@ $NetBSD$
// Caution: struct kinfo_proc is marked __APPLE_API_UNSTABLE. The source and
// binary interfaces may change.
-+#if defined(OS_NETBSD)
++#if BUILDFLAG(IS_OPENBSD)
++ struct kinfo_proc *info;
++ size_t info_size;
++#elif BUILDFLAG(IS_NETBSD)
+ struct kinfo_proc2 info;
++ size_t info_size = sizeof(info);
+#else
struct kinfo_proc info;
-+#endif
size_t info_size = sizeof(info);
++#endif
- #if defined(OS_OPENBSD)
-@@ -114,6 +129,11 @@ bool BeingDebugged() {
+ #if BUILDFLAG(IS_OPENBSD)
+ if (sysctl(mib, std::size(mib), NULL, &info_size, NULL, 0) < 0)
return -1;
- mib[5] = (info_size / sizeof(struct kinfo_proc));
-+#elif defined(OS_NETBSD)
-+ if (sysctl(mib, base::size(mib), NULL, &info_size, NULL, 0) < 0)
+- mib[5] = (info_size / sizeof(struct kinfo_proc));
++ mib[5] = static_cast<int>((info_size / sizeof(struct kinfo_proc)));
++ if ((info = reinterpret_cast<kinfo_proc*>(malloc(info_size))) == NULL) {
++ is_set = true;
++ being_debugged = false;
++ return being_debugged;
++ }
++
++ int sysctl_result = sysctl(mib, std::size(mib), info, &info_size, NULL, 0);
++#elif BUILDFLAG(IS_NETBSD)
++ if (sysctl(mib, std::size(mib), NULL, &info_size, NULL, 0) < 0)
+ return -1;
+
+ mib[5] = (info_size / sizeof(struct kinfo_proc2));
#endif
- int sysctl_result = sysctl(mib, base::size(mib), &info, &info_size, NULL, 0);
++#if !BUILDFLAG(IS_OPENBSD)
+ int sysctl_result = sysctl(mib, std::size(mib), &info, &info_size, NULL, 0);
++#endif
+ DCHECK_EQ(sysctl_result, 0);
+ if (sysctl_result != 0) {
+ is_set = true;
+ being_debugged = false;
+- return being_debugged;
++ goto out;
+ }
+
+ // This process is being debugged if the P_TRACED flag is set.
+ is_set = true;
+ #if BUILDFLAG(IS_FREEBSD)
+ being_debugged = (info.ki_flag & P_TRACED) != 0;
+-#elif BUILDFLAG(IS_BSD)
++#elif BUILDFLAG(IS_OPENBSD)
++ being_debugged = (info->p_psflags & PS_TRACED) != 0;
++#elif BUILDFLAG(IS_NETBSD)
+ being_debugged = (info.p_flag & P_TRACED) != 0;
+ #else
+ being_debugged = (info.kp_proc.p_flag & P_TRACED) != 0;
+ #endif
++
++out:
++#if BUILDFLAG(IS_OPENBSD)
++ free(info);
++#endif
+ return being_debugged;
+ }
+
diff --git a/chromium/patches/patch-base_debug_elf__reader.cc b/chromium/patches/patch-base_debug_elf__reader.cc
index 5c204f3b1d..49b9b408c3 100644
--- a/chromium/patches/patch-base_debug_elf__reader.cc
+++ b/chromium/patches/patch-base_debug_elf__reader.cc
@@ -1,30 +1,19 @@
$NetBSD$
---- base/debug/elf_reader.cc.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/debug/elf_reader.cc.orig 2024-07-24 02:44:22.555417500 +0000
+++ base/debug/elf_reader.cc
-@@ -36,7 +36,9 @@ using Nhdr = Elf64_Nhdr;
- using Word = Elf64_Word;
- #endif
+@@ -50,6 +50,10 @@ using Xword = Elf64_Xword;
-+#if !defined(OS_BSD)
constexpr char kGnuNoteName[] = "GNU";
-+#endif
- // Returns a pointer to the header of the ELF binary mapped into memory,
- // or a null pointer if the header is invalid.
-@@ -99,6 +101,7 @@ size_t ReadElfBuildId(const void* elf_ma
- bool found = false;
- while (current_section < section_end) {
- current_note = reinterpret_cast<const Nhdr*>(current_section);
-+#if !defined(OS_BSD)
- if (current_note->n_type == NT_GNU_BUILD_ID) {
- StringPiece note_name(current_section + sizeof(Nhdr),
- current_note->n_namesz);
-@@ -108,6 +111,7 @@ size_t ReadElfBuildId(const void* elf_ma
- break;
- }
- }
++#ifndef NT_GNU_BUILD_ID
++#define NT_GNU_BUILD_ID 3
+#endif
-
- size_t section_size = bits::Align(current_note->n_namesz, 4) +
- bits::Align(current_note->n_descsz, 4) +
++
+ // Returns a pointer to the header of the ELF binary mapped into memory, or a
+ // null pointer if the header is invalid. Here and below |elf_mapped_base| is a
+ // pointer to the start of the ELF image.
diff --git a/chromium/patches/patch-base_debug_proc__maps__linux.cc b/chromium/patches/patch-base_debug_proc__maps__linux.cc
new file mode 100644
index 0000000000..7552603f63
--- /dev/null
+++ b/chromium/patches/patch-base_debug_proc__maps__linux.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/debug/proc_maps_linux.cc.orig 2024-07-24 02:44:22.555417500 +0000
++++ base/debug/proc_maps_linux.cc
+@@ -18,7 +18,7 @@
+ #include "base/strings/string_split.h"
+ #include "build/build_config.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ #include <inttypes.h>
+ #endif
+
diff --git a/chromium/patches/patch-base_debug_proc_maps_linux.cc b/chromium/patches/patch-base_debug_proc_maps_linux.cc
deleted file mode 100644
index f21f57ad80..0000000000
--- a/chromium/patches/patch-base_debug_proc_maps_linux.cc
+++ /dev/null
@@ -1,71 +0,0 @@
-$NetBSD$
-
---- base/debug/proc_maps_linux.cc.orig 2020-06-25 09:31:18.000000000 +0000
-+++ base/debug/proc_maps_linux.cc
-@@ -13,7 +13,7 @@
- #include "base/strings/string_split.h"
- #include "build/build_config.h"
-
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
- #include <inttypes.h>
- #endif
-
-@@ -29,6 +29,13 @@
- namespace base {
- namespace debug {
-
-+#if defined(OS_FREEBSD)
-+const char kProcSelfMapsPath[] = "/proc/curproc/map";
-+#elif defined(OS_NETBSD)
-+const char kProcSelfMapsPath[] = "/proc/self/map";
-+#else
-+const char kProcSelfMapsPath[] = "/proc/self/map";
-+
- // Scans |proc_maps| starting from |pos| returning true if the gate VMA was
- // found, otherwise returns false.
- static bool ContainsGateVMA(std::string* proc_maps, size_t pos) {
-@@ -44,15 +51,16 @@ static bool ContainsGateVMA(std::string*
- return false;
- #endif
- }
-+#endif
-
- bool ReadProcMaps(std::string* proc_maps) {
- // seq_file only writes out a page-sized amount on each call. Refer to header
- // file for details.
- const long kReadSize = sysconf(_SC_PAGESIZE);
-
-- base::ScopedFD fd(HANDLE_EINTR(open("/proc/self/maps", O_RDONLY)));
-+ base::ScopedFD fd(HANDLE_EINTR(open(kProcSelfMapsPath, O_RDONLY)));
- if (!fd.is_valid()) {
-- DPLOG(ERROR) << "Couldn't open /proc/self/maps";
-+ DPLOG(ERROR) << "Couldn't open " << kProcSelfMapsPath;
- return false;
- }
- proc_maps->clear();
-@@ -66,7 +74,7 @@ bool ReadProcMaps(std::string* proc_maps
-
- ssize_t bytes_read = HANDLE_EINTR(read(fd.get(), buffer, kReadSize));
- if (bytes_read < 0) {
-- DPLOG(ERROR) << "Couldn't read /proc/self/maps";
-+ DPLOG(ERROR) << "Couldn't read " << kProcSelfMapsPath;
- proc_maps->clear();
- return false;
- }
-@@ -77,6 +85,7 @@ bool ReadProcMaps(std::string* proc_maps
- if (bytes_read == 0)
- break;
-
-+#if !defined(OS_BSD)
- // The gate VMA is handled as a special case after seq_file has finished
- // iterating through all entries in the virtual memory table.
- //
-@@ -87,6 +96,7 @@ bool ReadProcMaps(std::string* proc_maps
- // Avoid this by searching for the gate VMA and breaking early.
- if (ContainsGateVMA(proc_maps, pos))
- break;
-+#endif
- }
-
- return true;
diff --git a/chromium/patches/patch-base_debug_stack__trace.cc b/chromium/patches/patch-base_debug_stack__trace.cc
new file mode 100644
index 0000000000..6a07e1f8da
--- /dev/null
+++ b/chromium/patches/patch-base_debug_stack__trace.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/debug/stack_trace.cc.orig 2024-07-24 02:44:22.555417500 +0000
++++ base/debug/stack_trace.cc
+@@ -255,7 +255,7 @@ bool StackTrace::WillSymbolizeToStreamFo
+ // Symbols are not expected to be reliable when gn args specifies
+ // symbol_level=0.
+ return false;
+-#elif defined(__UCLIBC__) || defined(_AIX)
++#elif defined(__UCLIBC__) || defined(_AIX) || BUILDFLAG(IS_BSD)
+ // StackTrace::OutputToStream() is not implemented under uclibc, nor AIX.
+ // See https://crbug.com/706728
+ return false;
+@@ -317,7 +317,7 @@ std::string StackTrace::ToString() const
+
+ std::string StackTrace::ToStringWithPrefix(cstring_view prefix_string) const {
+ std::stringstream stream;
+-#if !defined(__UCLIBC__) && !defined(_AIX)
++#if !defined(__UCLIBC__) && !defined(_AIX) && !BUILDFLAG(IS_BSD)
+ OutputToStreamWithPrefix(&stream, prefix_string);
+ #endif
+ return stream.str();
+@@ -341,7 +341,7 @@ bool StackTrace::ShouldSuppressOutput()
+ }
+
+ std::ostream& operator<<(std::ostream& os, const StackTrace& s) {
+-#if !defined(__UCLIBC__) && !defined(_AIX)
++#if !defined(__UCLIBC__) && !defined(_AIX) && !BUILDFLAG(IS_BSD)
+ s.OutputToStream(&os);
+ #else
+ os << "StackTrace::OutputToStream not implemented.";
diff --git a/chromium/patches/patch-base_debug_stack__trace__posix.cc b/chromium/patches/patch-base_debug_stack__trace__posix.cc
index 9c504f544e..43b85a4a75 100644
--- a/chromium/patches/patch-base_debug_stack__trace__posix.cc
+++ b/chromium/patches/patch-base_debug_stack__trace__posix.cc
@@ -1,27 +1,105 @@
$NetBSD$
---- base/debug/stack_trace_posix.cc.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/debug/stack_trace_posix.cc.orig 2024-07-24 02:44:22.555417500 +0000
+++ base/debug/stack_trace_posix.cc
-@@ -35,7 +35,7 @@
+@@ -45,8 +45,8 @@
+ // Surprisingly, uClibc defines __GLIBC__ in some build configs, but
+ // execinfo.h and backtrace(3) are really only present in glibc and in macOS
+ // libc.
+-#if BUILDFLAG(IS_APPLE) || \
+- (defined(__GLIBC__) && !defined(__UCLIBC__) && !defined(__AIX))
++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_NETBSD) || \
++ (defined(__GLIBC__) && !defined(__UCLIBC__) && !defined(__AIX) && !BUILDFLAG(IS_BSD))
+ #define HAVE_BACKTRACE
+ #include <execinfo.h>
+ #endif
+@@ -64,8 +64,10 @@
#include <AvailabilityMacros.h>
#endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
++#if !BUILDFLAG(IS_BSD)
+ #include <sys/prctl.h>
++#endif
+
#include "base/debug/proc_maps_linux.h"
#endif
+@@ -307,7 +309,7 @@ void PrintToStderr(const char* output) {
+ std::ignore = HANDLE_EINTR(write(STDERR_FILENO, output, strlen(output)));
+ }
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ void AlarmSignalHandler(int signal, siginfo_t* info, void* void_context) {
+ // We have seen rare cases on AMD linux where the default signal handler
+ // either does not run or a thread (Probably an AMD driver thread) prevents
+@@ -324,7 +326,11 @@ void AlarmSignalHandler(int signal, sigi
+ "Warning: Default signal handler failed to terminate process.\n");
+ PrintToStderr("Calling exit_group() directly to prevent timeout.\n");
+ // See: https://man7.org/linux/man-pages/man2/exit_group.2.html
++#if BUILDFLAG(IS_BSD)
++ _exit(EXIT_FAILURE);
++#else
+ syscall(SYS_exit_group, EXIT_FAILURE);
++#endif
+ }
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) ||
+ // BUILDFLAG(IS_CHROMEOS)
+@@ -541,7 +547,7 @@ void StackDumpSignalHandler(int signal,
+ _exit(EXIT_FAILURE);
+ }
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Set an alarm to trigger in case the default handler does not terminate
+ // the process. See 'AlarmSignalHandler' for more details.
+ struct sigaction action;
+@@ -566,6 +572,7 @@ void StackDumpSignalHandler(int signal,
+ // signals that do not re-raise autonomously), such as signals delivered via
+ // kill() and asynchronous hardware faults such as SEGV_MTEAERR, which would
+ // otherwise be lost when re-raising the signal via raise().
++#if !BUILDFLAG(IS_BSD)
+ long retval = syscall(SYS_rt_tgsigqueueinfo, getpid(), syscall(SYS_gettid),
+ info->si_signo, info);
+ if (retval == 0) {
+@@ -580,6 +587,7 @@ void StackDumpSignalHandler(int signal,
+ if (errno != EPERM) {
+ _exit(EXIT_FAILURE);
+ }
++#endif
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) ||
+ // BUILDFLAG(IS_CHROMEOS)
-@@ -657,6 +657,9 @@ class SandboxSymbolizeHelper {
+@@ -769,6 +777,7 @@ class SandboxSymbolizeHelper {
+ return -1;
+ }
+
++#if !BUILDFLAG(IS_BSD)
+ // This class is copied from
+ // third_party/crashpad/crashpad/util/linux/scoped_pr_set_dumpable.h.
+ // It aims at ensuring the process is dumpable before opening /proc/self/mem.
+@@ -861,11 +870,15 @@ class SandboxSymbolizeHelper {
+ r.base = cur_base;
+ }
+ }
++#endif
+
+ // Parses /proc/self/maps in order to compile a list of all object file names
// for the modules that are loaded in the current process.
// Returns true on success.
bool CacheMemoryRegions() {
-+#if defined(OS_BSD)
++#if BUILDFLAG(IS_BSD)
+ return false;
+#else
// Reads /proc/self/maps.
std::string contents;
if (!ReadProcMaps(&contents)) {
-@@ -674,6 +677,7 @@ class SandboxSymbolizeHelper {
+@@ -883,6 +896,7 @@ class SandboxSymbolizeHelper {
is_initialized_ = true;
return true;
@@ -29,15 +107,3 @@ $NetBSD$
}
// Opens all object files and caches their file descriptors.
-@@ -697,7 +701,11 @@ class SandboxSymbolizeHelper {
- // Skip regions with empty file names.
- continue;
- }
-+#if defined(OS_BSD)
- if (region.path[0] == '[') {
-+#else
-+ if (region.path[0] == '[') {
-+#endif
- // Skip pseudo-paths, like [stack], [vdso], [heap], etc ...
- continue;
- }
diff --git a/chromium/patches/patch-base_debug_stack__trace__unittest.cc b/chromium/patches/patch-base_debug_stack__trace__unittest.cc
deleted file mode 100644
index 514b22a7ed..0000000000
--- a/chromium/patches/patch-base_debug_stack__trace__unittest.cc
+++ /dev/null
@@ -1,24 +0,0 @@
-$NetBSD$
-
---- base/debug/stack_trace_unittest.cc.orig 2020-06-25 09:31:18.000000000 +0000
-+++ base/debug/stack_trace_unittest.cc
-@@ -86,6 +86,7 @@ TEST_F(StackTraceTest, OutputToStream) {
- std::string::npos)
- << "Unable to resolve symbols.";
-
-+#if !defined(OS_BSD)
- // Expect a demangled symbol.
- // Note that Windows Release builds omit the function parameters from the
- // demangled stack output, otherwise this could be "testing::Test::Run()".
-@@ -103,9 +104,10 @@ TEST_F(StackTraceTest, OutputToStream) {
- EXPECT_TRUE(backtrace_message.find(__func__) != std::string::npos)
- << "Expected to find " << __func__ << " in backtrace:\n"
- << backtrace_message;
-+#endif
- }
-
--#if !defined(OFFICIAL_BUILD) && !defined(NO_UNWIND_TABLES)
-+#if !defined(OFFICIAL_BUILD) && !defined(NO_UNWIND_TABLES) && !defined(OS_BSD)
- // Disabled in Official builds, where Link-Time Optimization can result in two
- // or fewer stack frames being available, causing the test to fail.
- TEST_F(StackTraceTest, TruncatedTrace) {
diff --git a/chromium/patches/patch-base_features.cc b/chromium/patches/patch-base_features.cc
new file mode 100644
index 0000000000..77445c4101
--- /dev/null
+++ b/chromium/patches/patch-base_features.cc
@@ -0,0 +1,34 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/features.cc.orig 2024-07-24 02:44:22.559418000 +0000
++++ base/features.cc
+@@ -9,8 +9,10 @@
+ #include "base/threading/platform_thread.h"
+ #include "build/buildflag.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
++#if !BUILDFLAG(IS_BSD)
+ #include "base/message_loop/message_pump_epoll.h"
++#endif
+ #include "base/message_loop/message_pump_libevent.h"
+ #endif
+
+@@ -97,10 +99,12 @@ void Init(EmitThreadControllerProfilerMe
+ sequence_manager::internal::ThreadController::InitializeFeatures(
+ emit_thread_controller_profiler_metadata);
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ MessagePumpLibevent::InitializeFeatures();
++#if !BUILDFLAG(IS_BSD)
+ MessagePumpEpoll::InitializeFeatures();
+ #endif
++#endif
+
+ #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_CHROMEOS)
+ PlatformThread::InitializeFeatures();
diff --git a/chromium/patches/patch-base_files_dir__reader__linux.h b/chromium/patches/patch-base_files_dir__reader__linux.h
new file mode 100644
index 0000000000..456a9adb11
--- /dev/null
+++ b/chromium/patches/patch-base_files_dir__reader__linux.h
@@ -0,0 +1,45 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/files/dir_reader_linux.h.orig 2024-07-24 02:44:22.559418000 +0000
++++ base/files/dir_reader_linux.h
+@@ -21,10 +21,16 @@
+ #include "base/logging.h"
+ #include "base/posix/eintr_wrapper.h"
+
++#include "build/build_config.h"
++
+ // See the comments in dir_reader_posix.h about this.
+
+ namespace base {
+
++#if BUILDFLAG(IS_BSD)
++#include <dirent.h>
++typedef struct dirent linux_dirent;
++#else
+ struct linux_dirent {
+ uint64_t d_ino;
+ int64_t d_off;
+@@ -32,6 +38,7 @@ struct linux_dirent {
+ unsigned char d_type;
+ char d_name[0];
+ };
++#endif
+
+ class DirReaderLinux {
+ public:
+@@ -66,7 +73,11 @@ class DirReaderLinux {
+ if (offset_ != size_)
+ return true;
+
++#if BUILDFLAG(IS_BSD)
++ const int r = getdents(fd_, reinterpret_cast<char *>(buf_), sizeof(buf_));
++#else
+ const long r = syscall(__NR_getdents64, fd_, buf_, sizeof(buf_));
++#endif
+ if (r == 0)
+ return false;
+ if (r < 0) {
diff --git a/chromium/patches/patch-base_files_dir__reader__posix.h b/chromium/patches/patch-base_files_dir__reader__posix.h
new file mode 100644
index 0000000000..dec9f874a9
--- /dev/null
+++ b/chromium/patches/patch-base_files_dir__reader__posix.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/files/dir_reader_posix.h.orig 2024-07-24 02:44:22.559418000 +0000
++++ base/files/dir_reader_posix.h
+@@ -17,7 +17,7 @@
+ // seems worse than falling back to enumerating all file descriptors so we will
+ // probably never implement this on the Mac.
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ #include "base/files/dir_reader_linux.h"
+ #else
+ #include "base/files/dir_reader_fallback.h"
+@@ -25,7 +25,7 @@
+
+ namespace base {
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ typedef DirReaderLinux DirReaderPosix;
+ #else
+ typedef DirReaderFallback DirReaderPosix;
diff --git a/chromium/patches/patch-base_files_file__path__unittest.cc b/chromium/patches/patch-base_files_file__path__unittest.cc
deleted file mode 100644
index cd6ab78071..0000000000
--- a/chromium/patches/patch-base_files_file__path__unittest.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- base/files/file_path_unittest.cc.orig 2020-06-25 09:31:18.000000000 +0000
-+++ base/files/file_path_unittest.cc
-@@ -1149,7 +1149,7 @@ TEST_F(FilePathTest, FromUTF8Unsafe_And_
- "\xEF\xBC\xA1\xEF\xBC\xA2\xEF\xBC\xA3.txt" },
- };
-
--#if !defined(SYSTEM_NATIVE_UTF8) && defined(OS_LINUX)
-+#if !defined(SYSTEM_NATIVE_UTF8) && (defined(OS_LINUX) || defined(OS_BSD))
- ScopedLocale locale("en_US.UTF-8");
- #endif
-
diff --git a/chromium/patches/patch-base_files_file__path__watcher.h b/chromium/patches/patch-base_files_file__path__watcher.h
new file mode 100644
index 0000000000..f6fa97f2dc
--- /dev/null
+++ b/chromium/patches/patch-base_files_file__path__watcher.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/files/file_path_watcher.h.orig 2024-07-24 02:44:22.563418100 +0000
++++ base/files/file_path_watcher.h
+@@ -105,7 +105,7 @@ class BASE_EXPORT FilePathWatcher {
+ Type type = Type::kNonRecursive;
+
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+- BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ // The callback will return the full path to a changed file instead of
+ // the watched path supplied as |path| when Watch is called.
+ // So the full path can be different from the watched path when a folder is
diff --git a/chromium/patches/patch-base_files_file__path__watcher__bsd.cc b/chromium/patches/patch-base_files_file__path__watcher__bsd.cc
new file mode 100644
index 0000000000..f62ac41f6b
--- /dev/null
+++ b/chromium/patches/patch-base_files_file__path__watcher__bsd.cc
@@ -0,0 +1,63 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/files/file_path_watcher_bsd.cc.orig 2024-08-01 14:08:56.603110898 +0000
++++ base/files/file_path_watcher_bsd.cc
+@@ -0,0 +1,54 @@
++// Copyright 2021 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include <memory>
++
++#include "base/files/file_path_watcher.h"
++#include "base/files/file_path_watcher_kqueue.h"
++#include "base/memory/ptr_util.h"
++#include "build/build_config.h"
++
++namespace base {
++
++namespace {
++
++class FilePathWatcherImpl : public FilePathWatcher::PlatformDelegate {
++ public:
++ FilePathWatcherImpl() = default;
++ FilePathWatcherImpl(const FilePathWatcherImpl&) = delete;
++ FilePathWatcherImpl& operator=(const FilePathWatcherImpl&) = delete;
++ ~FilePathWatcherImpl() override = default;
++
++ bool Watch(const FilePath& path,
++ Type type,
++ const FilePathWatcher::Callback& callback) override {
++ DCHECK(!impl_.get());
++ if (type == Type::kRecursive) {
++ if (!FilePathWatcher::RecursiveWatchAvailable())
++ return false;
++ } else {
++ impl_ = std::make_unique<FilePathWatcherKQueue>();
++ }
++ DCHECK(impl_.get());
++ return impl_->Watch(path, type, callback);
++ }
++
++ void Cancel() override {
++ if (impl_.get())
++ impl_->Cancel();
++ set_cancelled();
++ }
++
++ private:
++ std::unique_ptr<PlatformDelegate> impl_;
++};
++
++} // namespace
++
++FilePathWatcher::FilePathWatcher() {
++ DETACH_FROM_SEQUENCE(sequence_checker_);
++ impl_ = std::make_unique<FilePathWatcherImpl>();
++}
++
++} // namespace base
diff --git a/chromium/patches/patch-base_files_file__path__watcher__kqueue.cc b/chromium/patches/patch-base_files_file__path__watcher__kqueue.cc
index 51668170f1..0e0bd6861a 100644
--- a/chromium/patches/patch-base_files_file__path__watcher__kqueue.cc
+++ b/chromium/patches/patch-base_files_file__path__watcher__kqueue.cc
@@ -1,15 +1,24 @@
$NetBSD$
-static cast from a pointer to intptr_t is not allowed.
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
---- base/files/file_path_watcher_kqueue.cc.orig 2020-07-24 02:37:41.000000000 +0000
+--- base/files/file_path_watcher_kqueue.cc.orig 2024-07-24 02:44:22.563418100 +0000
+++ base/files/file_path_watcher_kqueue.cc
-@@ -74,7 +74,7 @@ int FilePathWatcherKQueue::EventsForPath
+@@ -81,9 +81,15 @@ size_t FilePathWatcherKQueue::EventsForP
+ FilePath::StringType subdir = (i != (components.end() - 1)) ? *(i + 1) : "";
+ EventData* data = new EventData(built_path, subdir);
struct kevent event;
++#if defined(__NetBSD__) && __NetBSD_Version__ < 999000000
++ EV_SET(&event, fd, EVFILT_VNODE, (EV_ADD | EV_CLEAR | EV_RECEIPT),
++ (NOTE_DELETE | NOTE_WRITE | NOTE_ATTRIB |
++ NOTE_RENAME | NOTE_REVOKE | NOTE_EXTEND), 0, reinterpret_cast<intptr_t>(data));
++#else
EV_SET(&event, fd, EVFILT_VNODE, (EV_ADD | EV_CLEAR | EV_RECEIPT),
(NOTE_DELETE | NOTE_WRITE | NOTE_ATTRIB |
-- NOTE_RENAME | NOTE_REVOKE | NOTE_EXTEND), 0, data);
-+ NOTE_RENAME | NOTE_REVOKE | NOTE_EXTEND), 0, reinterpret_cast<intptr_t>(data));
+ NOTE_RENAME | NOTE_REVOKE | NOTE_EXTEND), 0, data);
++#endif
events->push_back(event);
}
return last_existing_entry;
diff --git a/chromium/patches/patch-base_files_file__path__watcher__kqueue.h b/chromium/patches/patch-base_files_file__path__watcher__kqueue.h
new file mode 100644
index 0000000000..0c1a223558
--- /dev/null
+++ b/chromium/patches/patch-base_files_file__path__watcher__kqueue.h
@@ -0,0 +1,16 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/files/file_path_watcher_kqueue.h.orig 2024-07-24 02:44:22.563418100 +0000
++++ base/files/file_path_watcher_kqueue.h
+@@ -5,6 +5,7 @@
+ #ifndef BASE_FILES_FILE_PATH_WATCHER_KQUEUE_H_
+ #define BASE_FILES_FILE_PATH_WATCHER_KQUEUE_H_
+
++#include <sys/time.h>
+ #include <sys/event.h>
+
+ #include <memory>
diff --git a/chromium/patches/patch-base_files_file__path__watcher__stub.cc b/chromium/patches/patch-base_files_file__path__watcher__stub.cc
deleted file mode 100644
index a80b14c240..0000000000
--- a/chromium/patches/patch-base_files_file__path__watcher__stub.cc
+++ /dev/null
@@ -1,49 +0,0 @@
-$NetBSD$
-
---- base/files/file_path_watcher_stub.cc.orig 2020-06-25 09:31:18.000000000 +0000
-+++ base/files/file_path_watcher_stub.cc
-@@ -5,10 +5,13 @@
- // This file exists for Unix systems which don't have the inotify headers, and
- // thus cannot build file_watcher_inotify.cc
-
-+#include <memory>
- #include "base/files/file_path_watcher.h"
-+#include "base/files/file_path_watcher_kqueue.h"
-
- #include "base/macros.h"
- #include "base/memory/ptr_util.h"
-+#include "build/build_config.h"
-
- namespace base {
-
-@@ -22,12 +25,29 @@ class FilePathWatcherImpl : public FileP
- bool Watch(const FilePath& path,
- bool recursive,
- const FilePathWatcher::Callback& callback) override {
-+#if defined(OS_BSD)
-+ DCHECK(!impl_.get());
-+ if (recursive) {
-+ return false;
-+ } else {
-+ impl_ = std::make_unique<FilePathWatcherKQueue>();
-+ }
-+ DCHECK(impl_.get());
-+ return impl_->Watch(path, recursive, callback);
-+#else
- return false;
-+#endif
- }
-
-- void Cancel() override {}
-+ void Cancel() override {
-+ if (impl_.get())
-+ impl_->Cancel();
-+ set_cancelled();
-+ }
-
- private:
-+ std::unique_ptr<PlatformDelegate> impl_;
-+
- DISALLOW_COPY_AND_ASSIGN(FilePathWatcherImpl);
- };
-
diff --git a/chromium/patches/patch-base_files_file__path__watcher__unittest.cc b/chromium/patches/patch-base_files_file__path__watcher__unittest.cc
index 18e75c666e..2ad8fe07d3 100644
--- a/chromium/patches/patch-base_files_file__path__watcher__unittest.cc
+++ b/chromium/patches/patch-base_files_file__path__watcher__unittest.cc
@@ -1,22 +1,35 @@
$NetBSD$
---- base/files/file_path_watcher_unittest.cc.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/files/file_path_watcher_unittest.cc.orig 2024-07-24 02:44:22.563418100 +0000
+++ base/files/file_path_watcher_unittest.cc
-@@ -798,7 +798,7 @@ enum Permission {
- Execute
- };
+@@ -902,7 +902,7 @@ TEST_F(FilePathWatcherTest, WatchDirecto
+ }
+ delegate.RunUntilEventsMatch(event_expecter);
+
+-#if !BUILDFLAG(IS_APPLE)
++#if !BUILDFLAG(IS_APPLE) && BUILDFLAG(IS_BSD)
+ ASSERT_TRUE(WriteFile(file1, "content v2"));
+ // Mac implementation does not detect files modified in a directory.
+ // TODO(crbug.com/40263777): Expect that no events are fired on Mac.
+@@ -1848,7 +1848,7 @@ namespace {
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_BSD)
+ enum Permission { Read, Write, Execute };
+
+-#if BUILDFLAG(IS_APPLE)
++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
bool ChangeFilePermissions(const FilePath& path, Permission perm, bool allow) {
struct stat stat_buf;
-@@ -829,7 +829,7 @@ bool ChangeFilePermissions(const FilePat
- }
- #endif // defined(OS_MACOSX)
+@@ -1882,7 +1882,7 @@ bool ChangeFilePermissions(const FilePat
+
+ } // namespace
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_APPLE)
++#if BUILDFLAG(IS_APPLE) && BUILDFLAG(IS_BSD)
// Linux implementation of FilePathWatcher doesn't catch attribute changes.
// http://crbug.com/78043
// Windows implementation of FilePathWatcher catches attribute changes that
diff --git a/chromium/patches/patch-base_files_file__util.h b/chromium/patches/patch-base_files_file__util.h
deleted file mode 100644
index 4e76ef5754..0000000000
--- a/chromium/patches/patch-base_files_file__util.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- base/files/file_util.h.orig 2020-06-25 09:31:18.000000000 +0000
-+++ base/files/file_util.h
-@@ -582,7 +582,7 @@ BASE_EXPORT bool VerifyPathControlledByA
- // the directory |path|, in the number of FilePath::CharType, or -1 on failure.
- BASE_EXPORT int GetMaximumPathComponentLength(const base::FilePath& path);
-
--#if defined(OS_LINUX) || defined(OS_AIX)
-+#if defined(OS_LINUX) || defined(OS_AIX) || defined(OS_BSD)
- // Broad categories of file systems as returned by statfs() on Linux.
- enum FileSystemType {
- FILE_SYSTEM_UNKNOWN, // statfs failed.
diff --git a/chromium/patches/patch-base_files_file__util__posix.cc b/chromium/patches/patch-base_files_file__util__posix.cc
index 255da6c3b5..28de54f8e6 100644
--- a/chromium/patches/patch-base_files_file__util__posix.cc
+++ b/chromium/patches/patch-base_files_file__util__posix.cc
@@ -1,13 +1,61 @@
$NetBSD$
---- base/files/file_util_posix.cc.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/files/file_util_posix.cc.orig 2024-07-24 02:44:22.567418600 +0000
+++ base/files/file_util_posix.cc
-@@ -415,7 +415,7 @@ bool CreatePipe(ScopedFD* read_fd, Scope
- }
+@@ -889,36 +889,33 @@ bool CreateNewTempDirectory(const FilePa
+ bool CreateDirectoryAndGetError(const FilePath& full_path, File::Error* error) {
+ ScopedBlockingCall scoped_blocking_call(
+ FROM_HERE, BlockingType::MAY_BLOCK); // For call to mkdir().
++ const FilePath kFileSystemRoot("/");
+ std::vector<FilePath> subpaths;
+
+ // Collect a list of all parent directories.
+ FilePath last_path = full_path;
+- subpaths.push_back(full_path);
+- for (FilePath path = full_path.DirName(); path.value() != last_path.value();
+- path = path.DirName()) {
++ if (full_path != kFileSystemRoot)
++ subpaths.push_back(full_path);
++ for (FilePath path = full_path.DirName(); (path.value() != last_path.value() &&
++ (path != kFileSystemRoot)); path = path.DirName()) {
+ subpaths.push_back(path);
+ last_path = path;
+ }
- bool CreateLocalNonBlockingPipe(int fds[2]) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- return pipe2(fds, O_CLOEXEC | O_NONBLOCK) == 0;
- #else
- int raw_fds[2];
+ // Iterate through the parents and create the missing ones.
+ for (const FilePath& subpath : base::Reversed(subpaths)) {
+- if (DirectoryExists(subpath)) {
+- continue;
+- }
+- if (mkdir(subpath.value().c_str(), 0700) == 0) {
+- continue;
+- }
+- // Mkdir failed, but it might have failed with EEXIST, or some other error
+- // due to the directory appearing out of thin air. This can occur if
+- // two processes are trying to create the same file system tree at the same
+- // time. Check to see if it exists and make sure it is a directory.
+- int saved_errno = errno;
+- if (!DirectoryExists(subpath)) {
+- if (error) {
+- *error = File::OSErrorToFileError(saved_errno);
++ if (!PathExists(subpath)) {
++ if ((mkdir(subpath.value().c_str(), 0700) == -1) &&
++ ((full_path != subpath) ? (errno != ENOENT) : (-1))) {
++ int saved_errno = errno;
++ if (error)
++ *error = File::OSErrorToFileError(saved_errno);
++ return false;
+ }
+- errno = saved_errno;
+- return false;
++ } else if (!DirectoryExists(subpath)) {
++ if (error)
++ *error = File::OSErrorToFileError(ENOTDIR);
++ return false;
+ }
+ }
+ return true;
diff --git a/chromium/patches/patch-base_files_file__util__unittest.cc b/chromium/patches/patch-base_files_file__util__unittest.cc
index f9f6e5c1be..64edc70803 100644
--- a/chromium/patches/patch-base_files_file__util__unittest.cc
+++ b/chromium/patches/patch-base_files_file__util__unittest.cc
@@ -1,13 +1,26 @@
$NetBSD$
---- base/files/file_util_unittest.cc.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/files/file_util_unittest.cc.orig 2024-07-24 02:44:22.567418600 +0000
+++ base/files/file_util_unittest.cc
-@@ -3501,7 +3501,7 @@ TEST_F(FileUtilTest, ReadFileToStringWit
+@@ -3903,7 +3903,7 @@ TEST_F(FileUtilTest, ReadFileToStringWit
}
- #endif // defined(OS_WIN)
+ #endif // BUILDFLAG(IS_WIN)
--#if defined(OS_POSIX) && !defined(OS_MACOSX)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_FREEBSD)
+-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_APPLE)
++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD)
TEST_F(FileUtilTest, ReadFileToStringWithProcFileSystem) {
FilePath file_path("/proc/cpuinfo");
std::string data = "temp";
+@@ -4620,7 +4620,7 @@ TEST(FileUtilMultiThreadedTest, MultiThr
+ NULL);
+ #else
+ size_t bytes_written =
+- ::write(::fileno(output_file.get()), content.c_str(), content.length());
++ ::write(fileno(output_file.get()), content.c_str(), content.length());
+ #endif
+ EXPECT_EQ(content.length(), bytes_written);
+ ::fflush(output_file.get());
diff --git a/chromium/patches/patch-base_files_important__file__writer__cleaner.cc b/chromium/patches/patch-base_files_important__file__writer__cleaner.cc
new file mode 100644
index 0000000000..94d340c1a8
--- /dev/null
+++ b/chromium/patches/patch-base_files_important__file__writer__cleaner.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/files/important_file_writer_cleaner.cc.orig 2024-07-24 02:44:22.567418600 +0000
++++ base/files/important_file_writer_cleaner.cc
+@@ -25,7 +25,8 @@ namespace base {
+ namespace {
+
+ base::Time GetUpperBoundTime() {
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS) || BUILDFLAG(IS_FUCHSIA)
++// needed because of .CreationTime() pledge
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ // If process creation time is not available then use instance creation
+ // time as the upper-bound for old files. Modification times may be
+ // rounded-down to coarse-grained increments, e.g. FAT has 2s granularity,
diff --git a/chromium/patches/patch-base_files_scoped__file.cc b/chromium/patches/patch-base_files_scoped__file.cc
index 294e2dfd5d..3fc92b64a9 100644
--- a/chromium/patches/patch-base_files_scoped__file.cc
+++ b/chromium/patches/patch-base_files_scoped__file.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- base/files/scoped_file.cc.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/files/scoped_file.cc.orig 2024-07-24 02:44:22.571419000 +0000
+++ base/files/scoped_file.cc
-@@ -31,7 +31,7 @@ void ScopedFDCloseTraits::Free(int fd) {
+@@ -32,7 +32,7 @@ void ScopedFDCloseTraits::Free(int fd) {
int ret = IGNORE_EINTR(close(fd));
- #if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_FUCHSIA) || \
-- defined(OS_ANDROID)
-+ defined(OS_ANDROID) || defined(OS_BSD)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_APPLE) || \
+- BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
// NB: Some file descriptors can return errors from close() e.g. network
// filesystems such as NFS and Linux input devices. On Linux, macOS, and
// Fuchsia's POSIX layer, errors from close other than EBADF do not indicate
diff --git a/chromium/patches/patch-base_functional_unretained__traits.h b/chromium/patches/patch-base_functional_unretained__traits.h
new file mode 100644
index 0000000000..a9267a6f13
--- /dev/null
+++ b/chromium/patches/patch-base_functional_unretained__traits.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/functional/unretained_traits.h.orig 2024-07-24 02:44:22.575419400 +0000
++++ base/functional/unretained_traits.h
+@@ -93,7 +93,7 @@ struct SupportsUnretainedImpl {
+ // official builds, and then in non-test code as well.
+ #if defined(FORCE_UNRETAINED_COMPLETENESS_CHECKS_FOR_TESTS) || \
+ (!defined(UNIT_TEST) && !defined(OFFICIAL_BUILD) && \
+- (BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)))
++ (BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)))
+ static_assert(v,
+ "Argument requires unretained storage, but type is not "
+ "fully defined. This prevents determining whether "
diff --git a/chromium/patches/patch-base_i18n_icu__util.cc b/chromium/patches/patch-base_i18n_icu__util.cc
index ef43a9f55d..ef34a30e8b 100644
--- a/chromium/patches/patch-base_i18n_icu__util.cc
+++ b/chromium/patches/patch-base_i18n_icu__util.cc
@@ -1,22 +1,26 @@
$NetBSD$
---- base/i18n/icu_util.cc.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/i18n/icu_util.cc.orig 2024-07-24 02:44:22.583420300 +0000
+++ base/i18n/icu_util.cc
-@@ -49,7 +49,7 @@
+@@ -52,7 +52,7 @@
+ #include "third_party/icu/source/common/unicode/unistr.h"
#endif
- #if defined(OS_ANDROID) || defined(OS_FUCHSIA) || \
-- (defined(OS_LINUX) && !BUILDFLAG(IS_CHROMECAST))
-+ (defined(OS_LINUX) && !BUILDFLAG(IS_CHROMECAST)) || defined(OS_BSD)
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || \
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) || \
+ BUILDFLAG(IS_CHROMEOS) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS))
#include "third_party/icu/source/i18n/unicode/timezone.h"
#endif
-
-@@ -341,7 +341,7 @@ void InitializeIcuTimeZone() {
- fuchsia::IntlProfileWatcher::GetPrimaryTimeZoneIdForIcuInitialization();
+@@ -328,7 +328,7 @@ void InitializeIcuTimeZone() {
+ FuchsiaIntlProfileWatcher::GetPrimaryTimeZoneIdForIcuInitialization();
icu::TimeZone::adoptDefault(
icu::TimeZone::createTimeZone(icu::UnicodeString::fromUTF8(zone_id)));
--#elif defined(OS_LINUX) && !BUILDFLAG(IS_CHROMECAST)
-+#elif (defined(OS_LINUX) || defined(OS_BSD)) && !BUILDFLAG(IS_CHROMECAST)
+-#elif BUILDFLAG(IS_CHROMEOS) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS))
++#elif BUILDFLAG(IS_CHROMEOS) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS)) || BUILDFLAG(IS_BSD)
// To respond to the time zone change properly, the default time zone
// cache in ICU has to be populated on starting up.
// See TimeZoneMonitorLinux::NotifyClientsFromImpl().
diff --git a/chromium/patches/patch-base_linux__util.cc b/chromium/patches/patch-base_linux__util.cc
index 4d6f42106e..edf41a3962 100644
--- a/chromium/patches/patch-base_linux__util.cc
+++ b/chromium/patches/patch-base_linux__util.cc
@@ -1,12 +1,23 @@
$NetBSD$
---- base/linux_util.cc.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/linux_util.cc.orig 2024-07-24 02:44:22.591421000 +0000
+++ base/linux_util.cc
-@@ -19,6 +19,7 @@
- #include "base/files/dir_reader_posix.h"
- #include "base/files/file_util.h"
- #include "base/files/scoped_file.h"
-+#include "base/logging.h"
- #include "base/no_destructor.h"
- #include "base/strings/safe_sprintf.h"
- #include "base/strings/string_number_conversions.h"
+@@ -154,10 +154,14 @@ void SetLinuxDistro(const std::string& d
+ }
+
+ bool GetThreadsForProcess(pid_t pid, std::vector<pid_t>* tids) {
++#if BUILDFLAG(IS_BSD)
++ return false;
++#else
+ // 25 > strlen("/proc//task") + strlen(std::to_string(INT_MAX)) + 1 = 22
+ char buf[25];
+ strings::SafeSPrintf(buf, "/proc/%d/task", pid);
+ return GetThreadsFromProcessDir(buf, tids);
++#endif
+ }
+
+ bool GetThreadsForCurrentProcess(std::vector<pid_t>* tids) {
diff --git a/chromium/patches/patch-base_location__unittest.cc b/chromium/patches/patch-base_location__unittest.cc
deleted file mode 100644
index af76cf7055..0000000000
--- a/chromium/patches/patch-base_location__unittest.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- base/location_unittest.cc.orig 2020-06-25 09:31:18.000000000 +0000
-+++ base/location_unittest.cc
-@@ -32,7 +32,7 @@ TEST(LocationTest, CurrentYieldsCorrectV
- EXPECT_EQ(here.line_number(), previous_line + 1);
- EXPECT_STREQ("TestBody", here.function_name());
- #endif
--#elif defined(OFFICIAL_BUILD)
-+#elif defined(OFFICIAL_BUILD) && !defined(OS_BSD)
- #error Location builtins must be supported in official builds.
- #elif BUILDFLAG(FROM_HERE_USES_LOCATION_BUILTINS)
- #error FROM_HERE requires location builtins to be supported.
diff --git a/chromium/patches/patch-base_logging__unittest.cc b/chromium/patches/patch-base_logging__unittest.cc
index 03872bf67c..0dbf4a8527 100644
--- a/chromium/patches/patch-base_logging__unittest.cc
+++ b/chromium/patches/patch-base_logging__unittest.cc
@@ -1,13 +1,37 @@
$NetBSD$
---- base/logging_unittest.cc.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/logging_unittest.cc.orig 2024-07-24 02:44:22.591421000 +0000
+++ base/logging_unittest.cc
-@@ -552,7 +552,7 @@ void CheckCrashTestSighandler(int, sigin
+@@ -41,7 +41,7 @@
+ #include "base/posix/eintr_wrapper.h"
+ #endif // BUILDFLAG(IS_POSIX)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FREEBSD)
+ #include <ucontext.h>
+ #endif
+
+@@ -579,14 +579,18 @@ void CheckCrashTestSighandler(int, sigin
// need the arch-specific boilerplate below, which is inspired by breakpad.
// At the same time, on OSX, ucontext.h is deprecated but si_addr works fine.
uintptr_t crash_addr = 0;
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
crash_addr = reinterpret_cast<uintptr_t>(info->si_addr);
- #else // OS_POSIX && !OS_MACOSX
+ #else // OS_*
ucontext_t* context = reinterpret_cast<ucontext_t*>(context_ptr);
+ #if defined(ARCH_CPU_X86)
+ crash_addr = static_cast<uintptr_t>(context->uc_mcontext.gregs[REG_EIP]);
+ #elif defined(ARCH_CPU_X86_64)
++#if BUILDFLAG(IS_OPENBSD)
++ crash_addr = static_cast<uintptr_t>(context->sc_rip);
++#else
+ crash_addr = static_cast<uintptr_t>(context->uc_mcontext.gregs[REG_RIP]);
++#endif
+ #elif defined(ARCH_CPU_ARMEL)
+ crash_addr = static_cast<uintptr_t>(context->uc_mcontext.arm_pc);
+ #elif defined(ARCH_CPU_ARM64)
diff --git a/chromium/patches/patch-base_memory_discardable__memory.cc b/chromium/patches/patch-base_memory_discardable__memory.cc
index b95af29fdb..d3765efb84 100644
--- a/chromium/patches/patch-base_memory_discardable__memory.cc
+++ b/chromium/patches/patch-base_memory_discardable__memory.cc
@@ -1,40 +1,44 @@
$NetBSD$
---- base/memory/discardable_memory.cc.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/memory/discardable_memory.cc.orig 2024-07-24 02:44:22.595421300 +0000
+++ base/memory/discardable_memory.cc
-@@ -23,7 +23,7 @@ const base::Feature kMadvFreeDiscardable
- "MadvFreeDiscardableMemory", base::FEATURE_DISABLED_BY_DEFAULT};
- #endif // defined(OS_POSIX)
-
--#if defined(OS_ANDROID) || defined(OS_LINUX)
-+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD)
- const base::Feature kDiscardableMemoryBackingTrial{
- "DiscardableMemoryBackingTrial", base::FEATURE_DISABLED_BY_DEFAULT};
+@@ -26,7 +26,7 @@ BASE_FEATURE(kMadvFreeDiscardableMemory,
+ base::FEATURE_DISABLED_BY_DEFAULT);
+ #endif // BUILDFLAG(IS_POSIX)
-@@ -47,7 +47,7 @@ const base::FeatureParam<DiscardableMemo
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ BASE_FEATURE(kDiscardableMemoryBackingTrial,
+ "DiscardableMemoryBackingTrial",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+@@ -52,7 +52,7 @@ const base::FeatureParam<DiscardableMemo
namespace {
--#if defined(OS_ANDROID) || defined(OS_LINUX)
-+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
DiscardableMemoryBacking GetBackingForFieldTrial() {
DiscardableMemoryTrialGroup trial_group =
-@@ -65,7 +65,7 @@ DiscardableMemoryBacking GetBackingForFi
+@@ -71,7 +71,7 @@ DiscardableMemoryBacking GetBackingForFi
} // namespace
--#if defined(OS_ANDROID) || defined(OS_LINUX)
-+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// Probe capabilities of this device to determine whether we should participate
// in the discardable memory backing trial.
-@@ -94,7 +94,7 @@ DiscardableMemory::DiscardableMemory() =
+@@ -101,7 +101,7 @@ DiscardableMemory::DiscardableMemory() =
DiscardableMemory::~DiscardableMemory() = default;
DiscardableMemoryBacking GetDiscardableMemoryBacking() {
--#if defined(OS_ANDROID) || defined(OS_LINUX)
-+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
if (DiscardableMemoryBackingFieldTrialIsEnabled()) {
return GetBackingForFieldTrial();
}
diff --git a/chromium/patches/patch-base_memory_discardable__memory__internal.h b/chromium/patches/patch-base_memory_discardable__memory__internal.h
index 536d5f6cca..88ad55f204 100644
--- a/chromium/patches/patch-base_memory_discardable__memory__internal.h
+++ b/chromium/patches/patch-base_memory_discardable__memory__internal.h
@@ -1,13 +1,17 @@
$NetBSD$
---- base/memory/discardable_memory_internal.h.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/memory/discardable_memory_internal.h.orig 2024-07-24 02:44:22.595421300 +0000
+++ base/memory/discardable_memory_internal.h
@@ -10,7 +10,7 @@
#include "base/metrics/field_trial_params.h"
#include "build/build_config.h"
--#if defined(OS_ANDROID) || defined(OS_LINUX)
-+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
namespace base {
diff --git a/chromium/patches/patch-base_memory_madv__free__discardable__memory__posix.cc b/chromium/patches/patch-base_memory_madv__free__discardable__memory__posix.cc
index eb06b0deb5..d8f6e244d0 100644
--- a/chromium/patches/patch-base_memory_madv__free__discardable__memory__posix.cc
+++ b/chromium/patches/patch-base_memory_madv__free__discardable__memory__posix.cc
@@ -1,13 +1,27 @@
$NetBSD$
---- base/memory/madv_free_discardable_memory_posix.cc.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/memory/madv_free_discardable_memory_posix.cc.orig 2024-07-24 02:44:22.599421700 +0000
+++ base/memory/madv_free_discardable_memory_posix.cc
-@@ -292,7 +292,7 @@ void MadvFreeDiscardableMemoryPosix::Set
+@@ -311,6 +311,10 @@ void MadvFreeDiscardableMemoryPosix::Set
bool MadvFreeDiscardableMemoryPosix::IsResident() const {
DFAKE_SCOPED_RECURSIVE_LOCK(thread_collision_warner_);
--#ifdef OS_MACOSX
-+#if defined(OS_MACOSX) || defined(OS_BSD)
++// XXX mincore
++#if BUILDFLAG(IS_BSD)
++ return false;
++#else
+ #if BUILDFLAG(IS_APPLE)
std::vector<char> vec(allocated_pages_);
#else
- std::vector<unsigned char> vec(allocated_pages_);
+@@ -326,6 +330,7 @@ bool MadvFreeDiscardableMemoryPosix::IsR
+ return false;
+ }
+ return true;
++#endif
+ }
+
+ bool MadvFreeDiscardableMemoryPosix::IsDiscarded() const {
diff --git a/chromium/patches/patch-base_memory_platform__shared__memory__region.h b/chromium/patches/patch-base_memory_platform__shared__memory__region.h
index 054bae6fd1..b47d54b9bb 100644
--- a/chromium/patches/patch-base_memory_platform__shared__memory__region.h
+++ b/chromium/patches/patch-base_memory_platform__shared__memory__region.h
@@ -1,31 +1,35 @@
$NetBSD$
---- base/memory/platform_shared_memory_region.h.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/memory/platform_shared_memory_region.h.orig 2024-07-24 02:44:22.599421700 +0000
+++ base/memory/platform_shared_memory_region.h
-@@ -27,7 +27,7 @@
- #include "base/files/scoped_file.h"
- #endif
+@@ -17,7 +17,7 @@
+ #include "base/unguessable_token.h"
+ #include "build/build_config.h"
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
namespace content {
class SandboxIPCHandler;
}
-@@ -121,7 +121,7 @@ class BASE_EXPORT PlatformSharedMemoryRe
+@@ -84,7 +84,7 @@ class BASE_EXPORT PlatformSharedMemoryRe
kMaxValue = GET_SHMEM_TEMP_DIR_FAILURE
};
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) | defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// Structure to limit access to executable region creation.
struct ExecutableRegion {
private:
-@@ -266,7 +266,7 @@ class BASE_EXPORT PlatformSharedMemoryRe
+@@ -216,7 +216,7 @@ class BASE_EXPORT PlatformSharedMemoryRe
CheckPlatformHandlePermissionsCorrespondToMode);
static PlatformSharedMemoryRegion Create(Mode mode,
size_t size
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
,
bool executable = false
#endif
diff --git a/chromium/patches/patch-base_memory_platform__shared__memory__region__posix.cc b/chromium/patches/patch-base_memory_platform__shared__memory__region__posix.cc
index 87bc1ba2f4..533294f63f 100644
--- a/chromium/patches/patch-base_memory_platform__shared__memory__region__posix.cc
+++ b/chromium/patches/patch-base_memory_platform__shared__memory__region__posix.cc
@@ -1,22 +1,35 @@
$NetBSD$
---- base/memory/platform_shared_memory_region_posix.cc.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/memory/platform_shared_memory_region_posix.cc.orig 2024-07-24 02:44:22.599421700 +0000
+++ base/memory/platform_shared_memory_region_posix.cc
-@@ -70,7 +70,7 @@ FDPair ScopedFDPair::get() const {
- return {fd.get(), readonly_fd.get()};
- }
+@@ -55,7 +55,7 @@ bool CheckFDAccessMode(int fd, int expec
+
+ } // namespace
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// static
ScopedFD PlatformSharedMemoryRegion::ExecutableRegion::CreateFD(size_t size) {
PlatformSharedMemoryRegion region =
-@@ -204,7 +204,7 @@ bool PlatformSharedMemoryRegion::MapAtIn
+@@ -168,7 +168,7 @@ bool PlatformSharedMemoryRegion::Convert
// static
PlatformSharedMemoryRegion PlatformSharedMemoryRegion::Create(Mode mode,
size_t size
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
,
bool executable
#endif
+@@ -197,7 +197,7 @@ PlatformSharedMemoryRegion PlatformShare
+ // flag.
+ FilePath directory;
+ if (!GetShmemTempDir(
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ executable,
+ #else
+ false /* executable */,
diff --git a/chromium/patches/patch-base_memory_shared__memory__region__unittest.cc b/chromium/patches/patch-base_memory_shared__memory__region__unittest.cc
deleted file mode 100644
index 4ec0c2b314..0000000000
--- a/chromium/patches/patch-base_memory_shared__memory__region__unittest.cc
+++ /dev/null
@@ -1,17 +0,0 @@
-$NetBSD$
-
---- base/memory/shared_memory_region_unittest.cc.orig 2020-06-25 09:31:18.000000000 +0000
-+++ base/memory/shared_memory_region_unittest.cc
-@@ -188,10 +188,12 @@ TYPED_TEST(SharedMemoryRegionTest, MapAt
- std::tie(region, rw_mapping) = CreateMappedRegion<TypeParam>(kDataSize);
- ASSERT_TRUE(region.IsValid());
- ASSERT_TRUE(rw_mapping.IsValid());
-+#if !defined(OS_BSD)
- off_t offset = kDataSize / 2;
- typename TypeParam::MappingType mapping =
- region.MapAt(offset, kDataSize - offset);
- EXPECT_FALSE(mapping.IsValid());
-+#endif
- }
-
- TYPED_TEST(SharedMemoryRegionTest, MapZeroBytesFails) {
diff --git a/chromium/patches/patch-base_message__loop_message__pump__glib.cc b/chromium/patches/patch-base_message__loop_message__pump__glib.cc
new file mode 100644
index 0000000000..cc1a55a8a5
--- /dev/null
+++ b/chromium/patches/patch-base_message__loop_message__pump__glib.cc
@@ -0,0 +1,34 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/message_loop/message_pump_glib.cc.orig 2024-07-24 02:44:22.607422600 +0000
++++ base/message_loop/message_pump_glib.cc
+@@ -8,6 +8,11 @@
+ #include <glib.h>
+ #include <math.h>
+
++#if BUILDFLAG(IS_BSD) && !BUILDFLAG(IS_NETBSD)
++#include <pthread.h>
++#include <pthread_np.h>
++#endif
++
+ #include "base/logging.h"
+ #include "base/memory/raw_ptr.h"
+ #include "base/notreached.h"
+@@ -51,9 +56,13 @@ int GetTimeIntervalMilliseconds(TimeTick
+ }
+
+ bool RunningOnMainThread() {
++#if BUILDFLAG(IS_BSD) && !BUILDFLAG(IS_NETBSD)
++ return pthread_main_np();
++#else
+ auto pid = getpid();
+ auto tid = PlatformThread::CurrentId();
+ return pid > 0 && tid > 0 && pid == tid;
++#endif
+ }
+
+ // A brief refresher on GLib:
diff --git a/chromium/patches/patch-base_native__library__posix.cc b/chromium/patches/patch-base_native__library__posix.cc
index 98428fadf7..068b4252ca 100644
--- a/chromium/patches/patch-base_native__library__posix.cc
+++ b/chromium/patches/patch-base_native__library__posix.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- base/native_library_posix.cc.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/native_library_posix.cc.orig 2024-07-24 02:44:22.623424000 +0000
+++ base/native_library_posix.cc
-@@ -29,7 +29,7 @@ NativeLibrary LoadNativeLibraryWithOptio
+@@ -33,7 +33,7 @@ NativeLibrary LoadNativeLibraryWithOptio
// http://crbug.com/17943, http://crbug.com/17557, http://crbug.com/36892,
// and http://crbug.com/40794.
int flags = RTLD_LAZY;
--#if defined(OS_ANDROID) || !defined(RTLD_DEEPBIND)
-+#if defined(OS_ANDROID) || !defined(RTLD_DEEPBIND) || defined(OS_BSD)
+-#if BUILDFLAG(IS_ANDROID) || !defined(RTLD_DEEPBIND)
++#if BUILDFLAG(IS_ANDROID) || !defined(RTLD_DEEPBIND) || BUILDFLAG(IS_BSD)
// Certain platforms don't define RTLD_DEEPBIND. Android dlopen() requires
// further investigation, as it might vary across versions. Crash here to
// warn developers that they're trying to rely on uncertain behavior.
diff --git a/chromium/patches/patch-base_native__library__unittest.cc b/chromium/patches/patch-base_native__library__unittest.cc
index 630a53bd3f..358deb8913 100644
--- a/chromium/patches/patch-base_native__library__unittest.cc
+++ b/chromium/patches/patch-base_native__library__unittest.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- base/native_library_unittest.cc.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/native_library_unittest.cc.orig 2024-07-24 02:44:22.627424500 +0000
+++ base/native_library_unittest.cc
-@@ -121,7 +121,7 @@ TEST(NativeLibraryTest, LoadLibrary) {
+@@ -133,7 +133,7 @@ TEST(NativeLibraryTest, LoadLibrary) {
// versions with respect to symbol resolution scope.
// TSan and MSan error out on RTLD_DEEPBIND, https://crbug.com/705255
- #if !defined(OS_ANDROID) && !defined(THREAD_SANITIZER) && \
+ #if !BUILDFLAG(IS_ANDROID) && !defined(THREAD_SANITIZER) && \
- !defined(MEMORY_SANITIZER)
-+ !defined(MEMORY_SANITIZER) && !defined(OS_BSD)
++ !defined(MEMORY_SANITIZER) && !BUILDFLAG(IS_BSD)
// Verifies that the |prefer_own_symbols| option satisfies its guarantee that
// a loaded library will always prefer local symbol resolution before
diff --git a/chromium/patches/patch-base_path__service__unittest.cc b/chromium/patches/patch-base_path__service__unittest.cc
deleted file mode 100644
index 67214f6345..0000000000
--- a/chromium/patches/patch-base_path__service__unittest.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- base/path_service_unittest.cc.orig 2020-06-25 09:31:18.000000000 +0000
-+++ base/path_service_unittest.cc
-@@ -37,7 +37,7 @@ bool ReturnsValidPath(int dir_type) {
- if (dir_type == DIR_CACHE)
- check_path_exists = false;
- #endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // On the linux try-bots: a path is returned (e.g. /home/chrome-bot/Desktop),
- // but it doesn't exist.
- if (dir_type == DIR_USER_DESKTOP)
diff --git a/chromium/patches/patch-base_posix_can__lower__nice__to.cc b/chromium/patches/patch-base_posix_can__lower__nice__to.cc
index 85925828c9..0f2cf162d3 100644
--- a/chromium/patches/patch-base_posix_can__lower__nice__to.cc
+++ b/chromium/patches/patch-base_posix_can__lower__nice__to.cc
@@ -1,22 +1,22 @@
$NetBSD$
---- base/posix/can_lower_nice_to.cc.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/posix/can_lower_nice_to.cc.orig 2024-07-24 02:44:22.631425000 +0000
+++ base/posix/can_lower_nice_to.cc
-@@ -31,6 +31,9 @@ bool CanLowerNiceTo(int nice_value) {
- if (geteuid() == 0)
- return true;
+@@ -11,8 +11,12 @@
-+#if defined(OS_BSD)
-+ return false;
-+#else
- // 2. Skip checking the CAP_SYS_NICE permission because it would require
- // libcap.so.
+ #include "build/build_config.h"
-@@ -54,6 +57,7 @@ bool CanLowerNiceTo(int nice_value) {
- // And lowering niceness to |nice_value| is allowed if it is greater than or
- // equal to the limit:
- return nice_value >= lowest_nice_allowed;
++#if BUILDFLAG(IS_FREEBSD)
++#include <sys/param.h>
+#endif
- }
-
- } // namespace internal
++
+ // Not defined on AIX by default.
+-#if BUILDFLAG(IS_AIX)
++#if BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD)
+ #if defined(RLIMIT_NICE)
+ #error Assumption about OS_AIX is incorrect
+ #endif
diff --git a/chromium/patches/patch-base_posix_sysctl.cc b/chromium/patches/patch-base_posix_sysctl.cc
new file mode 100644
index 0000000000..ba4eebe9d0
--- /dev/null
+++ b/chromium/patches/patch-base_posix_sysctl.cc
@@ -0,0 +1,38 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/posix/sysctl.cc.orig 2024-07-24 02:44:22.631425000 +0000
++++ base/posix/sysctl.cc
+@@ -4,6 +4,7 @@
+
+ #include "base/posix/sysctl.h"
+
++#include <sys/types.h>
+ #include <sys/sysctl.h>
+
+ #include <initializer_list>
+@@ -16,17 +17,17 @@
+ #include "build/build_config.h"
+
+ namespace {
+-
++// NetBSD has sysctl_func macro in sys/sysctl.h, workaround: sysctl_func -> sysctl_func2
+ std::optional<std::string> StringSysctlImpl(
+- base::FunctionRef<int(char* /*out*/, size_t* /*out_len*/)> sysctl_func) {
++ base::FunctionRef<int(char* /*out*/, size_t* /*out_len*/)> sysctl_func2) {
+ size_t buf_len;
+- int result = sysctl_func(nullptr, &buf_len);
++ int result = sysctl_func2(nullptr, &buf_len);
+ if (result < 0 || buf_len < 1) {
+ return std::nullopt;
+ }
+
+ std::string value(buf_len - 1, '\0');
+- result = sysctl_func(&value[0], &buf_len);
++ result = sysctl_func2(&value[0], &buf_len);
+ if (result < 0) {
+ return std::nullopt;
+ }
diff --git a/chromium/patches/patch-base_posix_unix__domain__socket.cc b/chromium/patches/patch-base_posix_unix__domain__socket.cc
index 2bd1b511f0..e02c95a592 100644
--- a/chromium/patches/patch-base_posix_unix__domain__socket.cc
+++ b/chromium/patches/patch-base_posix_unix__domain__socket.cc
@@ -1,56 +1,63 @@
$NetBSD$
---- base/posix/unix_domain_socket.cc.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/posix/unix_domain_socket.cc.orig 2024-07-24 02:44:22.631425000 +0000
+++ base/posix/unix_domain_socket.cc
-@@ -6,6 +6,8 @@
-
- #include <errno.h>
- #include <sys/socket.h>
-+#include <sys/types.h>
-+#include <sys/ucred.h>
- #if !defined(OS_NACL_NONSFI)
- #include <sys/un.h>
- #endif
-@@ -57,7 +59,7 @@ bool CreateSocketPair(ScopedFD* one, Sco
+@@ -56,7 +56,7 @@ bool CreateSocketPair(ScopedFD* one, Sco
// static
bool UnixDomainSocket::EnableReceiveProcessId(int fd) {
--#if !defined(OS_MACOSX)
-+#if !defined(OS_MACOSX) && !defined(OS_NETBSD)
+-#if !BUILDFLAG(IS_APPLE)
++#if !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD)
const int enable = 1;
return setsockopt(fd, SOL_SOCKET, SO_PASSCRED, &enable, sizeof(enable)) == 0;
#else
-@@ -151,7 +153,11 @@ ssize_t UnixDomainSocket::RecvMsgWithFla
- #if !defined(OS_NACL_NONSFI) && !defined(OS_MACOSX)
- // The PNaCl toolchain for Non-SFI binary build and macOS do not support
- // ucred. macOS supports xucred, but this structure is insufficient.
-+#if defined(OS_NETBSD)
-+ + CMSG_SPACE(sizeof(struct unpcbid))
-+#else
+@@ -82,7 +82,7 @@ bool UnixDomainSocket::SendMsg(int fd,
+
+ struct cmsghdr* cmsg;
+ msg.msg_control = control_buffer;
+-#if BUILDFLAG(IS_APPLE)
++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
+ msg.msg_controllen = checked_cast<socklen_t>(control_len);
+ #else
+ msg.msg_controllen = control_len;
+@@ -90,7 +90,7 @@ bool UnixDomainSocket::SendMsg(int fd,
+ cmsg = CMSG_FIRSTHDR(&msg);
+ cmsg->cmsg_level = SOL_SOCKET;
+ cmsg->cmsg_type = SCM_RIGHTS;
+-#if BUILDFLAG(IS_APPLE)
++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
+ cmsg->cmsg_len = checked_cast<u_int>(CMSG_LEN(sizeof(int) * fds.size()));
+ #else
+ cmsg->cmsg_len = CMSG_LEN(sizeof(int) * fds.size());
+@@ -154,7 +154,7 @@ ssize_t UnixDomainSocket::RecvMsgWithFla
+
+ const size_t kControlBufferSize =
+ CMSG_SPACE(sizeof(int) * kMaxFileDescriptors)
+-#if !BUILDFLAG(IS_APPLE)
++#if !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD)
+ // macOS does not support ucred.
+ // macOS supports xucred, but this structure is insufficient.
+ CMSG_SPACE(sizeof(struct ucred))
-+#endif
- #endif // OS_NACL_NONSFI or OS_MACOSX
- ;
- char control_buffer[kControlBufferSize];
-@@ -176,7 +182,7 @@ ssize_t UnixDomainSocket::RecvMsgWithFla
+@@ -182,7 +182,7 @@ ssize_t UnixDomainSocket::RecvMsgWithFla
wire_fds = reinterpret_cast<int*>(CMSG_DATA(cmsg));
wire_fds_len = payload_len / sizeof(int);
}
--#if !defined(OS_NACL_NONSFI) && !defined(OS_MACOSX)
-+#if !defined(OS_NACL_NONSFI) && !defined(OS_MACOSX) && !defined(OS_NETBSD)
- // The PNaCl toolchain for Non-SFI binary build and macOS do not support
- // SCM_CREDENTIALS.
+-#if !BUILDFLAG(IS_APPLE)
++#if !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD)
+ // macOS does not support SCM_CREDENTIALS.
if (cmsg->cmsg_level == SOL_SOCKET &&
-@@ -211,6 +217,12 @@ ssize_t UnixDomainSocket::RecvMsgWithFla
+ cmsg->cmsg_type == SCM_CREDENTIALS) {
+@@ -216,6 +216,9 @@ ssize_t UnixDomainSocket::RecvMsgWithFla
socklen_t pid_size = sizeof(pid);
if (getsockopt(fd, SOL_LOCAL, LOCAL_PEERPID, &pid, &pid_size) != 0)
pid = -1;
-+#elif defined(OS_NETBSD)
-+ socklen_t pid_size = sizeof(pid);
-+ struct unpcbid cred;
-+ if (getsockopt(fd, 0, LOCAL_PEEREID, &cred, &pid_size) != 0)
-+ pid = -1;
-+ pid = cred.unp_pid;
++#elif BUILDFLAG(IS_BSD)
++ NOTIMPLEMENTED();
++ pid = -1;
#else
// |pid| will legitimately be -1 if we read EOF, so only DCHECK if we
// actually received a message. Unfortunately, Linux allows sending zero
diff --git a/chromium/patches/patch-base_posix_unix__domain__socket__unittest.cc b/chromium/patches/patch-base_posix_unix__domain__socket__unittest.cc
new file mode 100644
index 0000000000..21b70e3f21
--- /dev/null
+++ b/chromium/patches/patch-base_posix_unix__domain__socket__unittest.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/posix/unix_domain_socket_unittest.cc.orig 2024-07-24 02:44:22.631425000 +0000
++++ base/posix/unix_domain_socket_unittest.cc
+@@ -15,6 +15,8 @@
+ #include <sys/types.h>
+ #include <unistd.h>
+
++#include <signal.h>
++
+ #include "base/files/file_util.h"
+ #include "base/files/scoped_file.h"
+ #include "base/functional/bind.h"
diff --git a/chromium/patches/patch-base_process_internal__linux.h b/chromium/patches/patch-base_process_internal__linux.h
index f352085e35..3568f93d9b 100644
--- a/chromium/patches/patch-base_process_internal__linux.h
+++ b/chromium/patches/patch-base_process_internal__linux.h
@@ -1,27 +1,26 @@
$NetBSD$
---- base/process/internal_linux.h.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/process/internal_linux.h.orig 2024-07-24 02:44:22.635425300 +0000
+++ base/process/internal_linux.h
-@@ -55,6 +55,14 @@ bool ParseProcStats(const std::string& s
- // If the ordering ever changes, carefully review functions that use these
- // values.
- enum ProcStatsFields {
-+#if defined(OS_BSD)
-+ VM_COMM = 0, // Command name.
-+ VM_PPID = 2, // Parent process id.
-+ VM_PGRP = 3, // Process group id.
-+ VM_STARTTIME = 7, // The process start time.
-+ VM_UTIME = 8, // The user time.
-+ VM_STIME = 9, // The system time
+@@ -140,6 +140,9 @@ TimeDelta ClockTicksToTimeDelta(int64_t
+ // arguments to the lambda.
+ template <typename Lambda>
+ void ForEachProcessTask(base::ProcessHandle process, Lambda&& lambda) {
++#if BUILDFLAG(IS_BSD)
++ return;
+#else
- VM_COMM = 1, // Filename of executable, without parentheses.
- VM_STATE = 2, // Letter indicating the state of the process.
- VM_PPID = 3, // PID of the parent.
-@@ -67,6 +75,7 @@ enum ProcStatsFields {
- VM_STARTTIME = 21, // The time the process started in clock ticks.
- VM_VSIZE = 22, // Virtual memory size in bytes.
- VM_RSS = 23, // Resident Set Size in pages.
+ // Iterate through the different threads tracked in /proc/<pid>/task.
+ FilePath fd_path = GetProcPidDir(process).Append("task");
+
+@@ -159,6 +162,7 @@ void ForEachProcessTask(base::ProcessHan
+ FilePath task_path = fd_path.Append(tid_str);
+ lambda(tid, task_path);
+ }
+#endif
- };
+ }
- // Reads the |field_num|th field from |proc_stats|. Returns 0 on failure.
+ } // namespace internal
diff --git a/chromium/patches/patch-base_process_kill.h b/chromium/patches/patch-base_process_kill.h
index cfe18ce5a8..3cb0c7715a 100644
--- a/chromium/patches/patch-base_process_kill.h
+++ b/chromium/patches/patch-base_process_kill.h
@@ -1,13 +1,17 @@
$NetBSD$
---- base/process/kill.h.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/process/kill.h.orig 2024-07-24 02:44:22.635425300 +0000
+++ base/process/kill.h
-@@ -118,7 +118,7 @@ BASE_EXPORT TerminationStatus GetTermina
+@@ -123,7 +123,7 @@ BASE_EXPORT TerminationStatus GetTermina
BASE_EXPORT TerminationStatus GetKnownDeadTerminationStatus(
ProcessHandle handle, int* exit_code);
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// Spawns a thread to wait asynchronously for the child |process| to exit
// and then reaps it.
BASE_EXPORT void EnsureProcessGetsReaped(Process process);
diff --git a/chromium/patches/patch-base_process_kill__posix.cc b/chromium/patches/patch-base_process_kill__posix.cc
index 4d890e23bd..b516057e72 100644
--- a/chromium/patches/patch-base_process_kill__posix.cc
+++ b/chromium/patches/patch-base_process_kill__posix.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- base/process/kill_posix.cc.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/process/kill_posix.cc.orig 2024-07-24 02:44:22.639425500 +0000
+++ base/process/kill_posix.cc
-@@ -168,7 +168,7 @@ void EnsureProcessTerminated(Process pro
- 0, new BackgroundReaper(std::move(process), TimeDelta::FromSeconds(2)));
+@@ -157,7 +157,7 @@ void EnsureProcessTerminated(Process pro
+ 0, new BackgroundReaper(std::move(process), Seconds(2)));
}
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
void EnsureProcessGetsReaped(Process process) {
DCHECK(!process.is_current());
diff --git a/chromium/patches/patch-base_process_launch.cc b/chromium/patches/patch-base_process_launch.cc
deleted file mode 100644
index c85b1bd2e7..0000000000
--- a/chromium/patches/patch-base_process_launch.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- base/process/launch.cc.orig 2020-06-25 09:31:18.000000000 +0000
-+++ base/process/launch.cc
-@@ -15,7 +15,7 @@ LaunchOptions::~LaunchOptions() = defaul
-
- LaunchOptions LaunchOptionsForTest() {
- LaunchOptions options;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // To prevent accidental privilege sharing to an untrusted child, processes
- // are started with PR_SET_NO_NEW_PRIVS. Do not set that here, since this
- // new child will be used for testing only.
diff --git a/chromium/patches/patch-base_process_launch.h b/chromium/patches/patch-base_process_launch.h
index f21ddf688b..4c8b985905 100644
--- a/chromium/patches/patch-base_process_launch.h
+++ b/chromium/patches/patch-base_process_launch.h
@@ -1,13 +1,17 @@
$NetBSD$
---- base/process/launch.h.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/process/launch.h.orig 2024-07-24 02:44:22.639425500 +0000
+++ base/process/launch.h
-@@ -180,7 +180,7 @@ struct BASE_EXPORT LaunchOptions {
+@@ -200,7 +200,7 @@ struct BASE_EXPORT LaunchOptions {
bool clear_environment = false;
- #endif // OS_WIN || OS_POSIX || OS_FUCHSIA
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA)
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// If non-zero, start the process using clone(), using flags as provided.
// Unlike in clone, clone_flags may not contain a custom termination signal
// that is sent to the parent when the child dies. The termination signal will
diff --git a/chromium/patches/patch-base_process_launch__posix.cc b/chromium/patches/patch-base_process_launch__posix.cc
index 5aed6156a8..65d81a088f 100644
--- a/chromium/patches/patch-base_process_launch__posix.cc
+++ b/chromium/patches/patch-base_process_launch__posix.cc
@@ -1,13 +1,27 @@
$NetBSD$
---- base/process/launch_posix.cc.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/process/launch_posix.cc.orig 2024-07-24 02:44:22.639425500 +0000
+++ base/process/launch_posix.cc
-@@ -214,6 +214,8 @@ static const char kFDDir[] = "/dev/fd";
+@@ -66,6 +66,9 @@
+ #error "macOS should use launch_mac.cc"
+ #endif
+
++#if defined(OS_FREEBSD)
++#pragma weak environ
++#endif
+ extern char** environ;
+
+ namespace base {
+@@ -210,6 +213,8 @@ static const char kFDDir[] = "/dev/fd";
static const char kFDDir[] = "/dev/fd";
- #elif defined(OS_OPENBSD)
+ #elif BUILDFLAG(IS_OPENBSD)
static const char kFDDir[] = "/dev/fd";
-+#elif defined(OS_NETBSD)
++#elif BUILDFLAG(IS_NETBSD)
+static const char kFDDir[] = "/dev/fd";
- #elif defined(OS_ANDROID)
+ #elif BUILDFLAG(IS_ANDROID)
static const char kFDDir[] = "/proc/self/fd";
#endif
diff --git a/chromium/patches/patch-base_process_memory.cc b/chromium/patches/patch-base_process_memory.cc
deleted file mode 100644
index 7ebb8c7db3..0000000000
--- a/chromium/patches/patch-base_process_memory.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- base/process/memory.cc.orig 2020-06-25 09:31:18.000000000 +0000
-+++ base/process/memory.cc
-@@ -44,7 +44,7 @@ NOINLINE void OnNoMemoryInternal(size_t
- } // namespace internal
-
- // Defined in memory_win.cc for Windows.
--#if !defined(OS_WIN)
-+#if !defined(OS_WIN) && !defined(OS_BSD)
-
- namespace {
-
-@@ -63,7 +63,7 @@ void TerminateBecauseOutOfMemory(size_t
- #endif // !defined(OS_WIN)
-
- // Defined in memory_mac.mm for Mac.
--#if !defined(OS_MACOSX)
-+#if !defined(OS_MACOSX) && !defined(OS_BSD)
-
- bool UncheckedCalloc(size_t num_items, size_t size, void** result) {
- const size_t alloc_size = num_items * size;
diff --git a/chromium/patches/patch-base_process_memory.h b/chromium/patches/patch-base_process_memory.h
deleted file mode 100644
index 16079c01bd..0000000000
--- a/chromium/patches/patch-base_process_memory.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- base/process/memory.h.orig 2020-06-25 09:31:18.000000000 +0000
-+++ base/process/memory.h
-@@ -24,7 +24,7 @@ BASE_EXPORT void EnableTerminationOnOutO
- // Crash reporting classifies such crashes as OOM.
- BASE_EXPORT void TerminateBecauseOutOfMemory(size_t size);
-
--#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_AIX)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_AIX) || defined(OS_BSD)
- BASE_EXPORT extern size_t g_oom_size;
-
- // The maximum allowed value for the OOM score.
diff --git a/chromium/patches/patch-base_process_memory__linux.cc b/chromium/patches/patch-base_process_memory__linux.cc
new file mode 100644
index 0000000000..2826315419
--- /dev/null
+++ b/chromium/patches/patch-base_process_memory__linux.cc
@@ -0,0 +1,50 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/process/memory_linux.cc.orig 2024-07-24 02:44:22.639425500 +0000
++++ base/process/memory_linux.cc
+@@ -28,6 +28,7 @@ void __libc_free(void*);
+
+ namespace base {
+
++#if !BUILDFLAG(IS_BSD)
+ namespace {
+
+ void ReleaseReservationOrTerminate() {
+@@ -37,12 +38,14 @@ void ReleaseReservationOrTerminate() {
+ }
+
+ } // namespace
++#endif
+
+ void EnableTerminationOnHeapCorruption() {
+ // On Linux, there nothing to do AFAIK.
+ }
+
+ void EnableTerminationOnOutOfMemory() {
++#if !BUILDFLAG(IS_BSD)
+ // Set the new-out of memory handler.
+ std::set_new_handler(&ReleaseReservationOrTerminate);
+ // If we're using glibc's allocator, the above functions will override
+@@ -51,8 +54,10 @@ void EnableTerminationOnOutOfMemory() {
+ #if PA_BUILDFLAG(USE_ALLOCATOR_SHIM)
+ allocator_shim::SetCallNewHandlerOnMallocFailure(true);
+ #endif
++#endif
+ }
+
++#if !BUILDFLAG(IS_BSD)
+ // ScopedAllowBlocking() has private constructor and it can only be used in
+ // friend classes/functions. Declaring a class is easier in this situation to
+ // avoid adding more dependency to thread_restrictions.h because of the
+@@ -110,6 +115,7 @@ bool AdjustOOMScoreHelper::AdjustOOMScor
+ bool AdjustOOMScore(ProcessId process, int score) {
+ return AdjustOOMScoreHelper::AdjustOOMScore(process, score);
+ }
++#endif
+
+ bool UncheckedMalloc(size_t size, void** result) {
+ #if PA_BUILDFLAG(USE_ALLOCATOR_SHIM)
diff --git a/chromium/patches/patch-base_process_memory__unittest.cc b/chromium/patches/patch-base_process_memory__unittest.cc
deleted file mode 100644
index 7a08363680..0000000000
--- a/chromium/patches/patch-base_process_memory__unittest.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- base/process/memory_unittest.cc.orig 2020-06-25 09:31:18.000000000 +0000
-+++ base/process/memory_unittest.cc
-@@ -106,7 +106,7 @@ TEST(MemoryTest, AllocatorShimWorking) {
- // OpenBSD does not support these tests. Don't test these on ASan/TSan/MSan
- // configurations: only test the real allocator.
- // Windows only supports these tests with the allocator shim in place.
--#if !defined(OS_OPENBSD) && BUILDFLAG(USE_ALLOCATOR_SHIM) && \
-+#if !defined(OS_BSD) && BUILDFLAG(USE_ALLOCATOR_SHIM) && \
- !defined(MEMORY_TOOL_REPLACES_ALLOCATOR)
-
- namespace {
diff --git a/chromium/patches/patch-base_process_process__handle.cc b/chromium/patches/patch-base_process_process__handle.cc
index ac5f21a90a..87cede2c51 100644
--- a/chromium/patches/patch-base_process_process__handle.cc
+++ b/chromium/patches/patch-base_process_process__handle.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- base/process/process_handle.cc.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_handle.cc.orig 2024-07-24 02:44:22.639425500 +0000
+++ base/process/process_handle.cc
@@ -30,7 +30,7 @@ UniqueProcId GetUniqueIdForProcess() {
: UniqueProcId(GetCurrentProcId());
}
--#if defined(OS_LINUX) || defined(OS_AIX)
-+#if defined(OS_LINUX) || defined(OS_AIX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_AIX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD)
void InitUniqueIdForProcessInPidNamespace(ProcessId pid_outside_of_namespace) {
DCHECK(pid_outside_of_namespace != kNullProcessId);
diff --git a/chromium/patches/patch-base_process_process__handle.h b/chromium/patches/patch-base_process_process__handle.h
index 14865a4fd2..26b63a0e23 100644
--- a/chromium/patches/patch-base_process_process__handle.h
+++ b/chromium/patches/patch-base_process_process__handle.h
@@ -1,13 +1,17 @@
$NetBSD$
---- base/process/process_handle.h.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_handle.h.orig 2024-07-24 02:44:22.639425500 +0000
+++ base/process/process_handle.h
-@@ -103,7 +103,7 @@ BASE_EXPORT ProcessId GetCurrentProcId()
+@@ -86,7 +86,7 @@ BASE_EXPORT ProcessId GetCurrentProcId()
// processes may be reused.
BASE_EXPORT UniqueProcId GetUniqueIdForProcess();
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// When a process is started in a different PID namespace from the browser
// process, this function must be called with the process's PID in the browser's
// PID namespace in order to initialize its unique ID. Not thread safe.
diff --git a/chromium/patches/patch-base_process_process__handle__freebsd.cc b/chromium/patches/patch-base_process_process__handle__freebsd.cc
new file mode 100644
index 0000000000..3449fddaf4
--- /dev/null
+++ b/chromium/patches/patch-base_process_process__handle__freebsd.cc
@@ -0,0 +1,33 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_handle_freebsd.cc.orig 2024-07-24 02:44:22.639425500 +0000
++++ base/process/process_handle_freebsd.cc
+@@ -3,6 +3,7 @@
+ // found in the LICENSE file.
+
+ #include "base/process/process_handle.h"
++#include "base/files/file_util.h"
+
+ #include <limits.h>
+ #include <stddef.h>
+@@ -20,12 +21,15 @@ namespace base {
+
+ ProcessId GetParentProcessId(ProcessHandle process) {
+ struct kinfo_proc info;
+- size_t length;
++ size_t length = sizeof(struct kinfo_proc);
+ int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process };
+
+ if (sysctl(mib, std::size(mib), &info, &length, NULL, 0) < 0)
+ return -1;
+
++ if (length < sizeof(struct kinfo_proc))
++ return -1;
++
+ return info.ki_ppid;
+ }
+
diff --git a/chromium/patches/patch-base_process_process__handle__netbsd.cc b/chromium/patches/patch-base_process_process__handle__netbsd.cc
index 9cbcc8fbef..e7445b81ce 100644
--- a/chromium/patches/patch-base_process_process__handle__netbsd.cc
+++ b/chromium/patches/patch-base_process_process__handle__netbsd.cc
@@ -1,57 +1,64 @@
$NetBSD$
---- base/process/process_handle_netbsd.cc.orig 2020-07-09 13:18:47.299833505 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_handle_netbsd.cc.orig 2024-08-01 14:08:56.648717030 +0000
+++ base/process/process_handle_netbsd.cc
-@@ -0,0 +1,52 @@
-+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+@@ -0,0 +1,55 @@
++// Copyright 2011 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "base/process/process_handle.h"
-+#include "base/stl_util.h"
++#include "base/files/file_util.h"
+
+#include <stddef.h>
++#include <sys/param.h>
++#include <sys/proc.h>
+#include <sys/sysctl.h>
+#include <sys/types.h>
+#include <unistd.h>
-+#include <cstring>
++
++#include <optional>
++
++#include "base/files/file_path.h"
++#include "base/posix/sysctl.h"
+
+namespace base {
+
+ProcessId GetParentProcessId(ProcessHandle process) {
-+ struct kinfo_proc2 info;
++ struct kinfo_proc2 *info;
+ size_t length;
++ pid_t ppid;
+ int mib[] = { CTL_KERN, KERN_PROC2, KERN_PROC_PID, process,
+ sizeof(struct kinfo_proc2), 1 };
+
-+ if (sysctl(mib, base::size(mib), NULL, &length, NULL, 0) < 0)
++ if (sysctl(mib, std::size(mib), NULL, &length, NULL, 0) < 0)
+ return -1;
+
-+ mib[5] = (length / sizeof(struct kinfo_proc2));
++ info = (struct kinfo_proc2 *)malloc(length);
+
-+ if (sysctl(mib, base::size(mib), &info, &length, NULL, 0) < 0)
-+ return -1;
++ mib[5] = static_cast<int>((length / sizeof(struct kinfo_proc2)));
+
-+ return info.p_ppid;
++ if (sysctl(mib, std::size(mib), info, &length, NULL, 0) < 0) {
++ ppid = -1;
++ goto out;
++ }
++
++ ppid = info->p_ppid;
++
++out:
++ free(info);
++ return ppid;
+}
+
+FilePath GetProcessExecutablePath(ProcessHandle process) {
-+ struct kinfo_proc2 kp;
-+ size_t len;
-+ int mib[] = { CTL_KERN, KERN_PROC2, KERN_PROC_PID, process,
-+ sizeof(struct kinfo_proc2), 1 };
++ std::optional<std::string> pathname =
++ base::StringSysctl({CTL_KERN, KERN_PROC_ARGS, process, KERN_PROC_PATHNAME});
+
-+ if (sysctl(mib, base::size(mib), NULL, &len, NULL, 0) == -1)
-+ return FilePath();
-+ mib[5] = (len / sizeof(struct kinfo_proc2));
-+ if (sysctl(mib, base::size(mib), &kp, &len, NULL, 0) < 0)
-+ return FilePath();
-+ if ((kp.p_flag & P_SYSTEM) != 0)
-+ return FilePath();
-+ if (strcmp(kp.p_comm, "chrome") == 0)
-+ return FilePath(kp.p_comm);
-+
-+ return FilePath();
++ return FilePath(pathname.value_or(std::string{}));
+}
+
+} // namespace base
diff --git a/chromium/patches/patch-base_process_process__handle__openbsd.cc b/chromium/patches/patch-base_process_process__handle__openbsd.cc
new file mode 100644
index 0000000000..99694bedbe
--- /dev/null
+++ b/chromium/patches/patch-base_process_process__handle__openbsd.cc
@@ -0,0 +1,140 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_handle_openbsd.cc.orig 2024-07-24 02:44:22.639425500 +0000
++++ base/process/process_handle_openbsd.cc
+@@ -3,48 +3,112 @@
+ // found in the LICENSE file.
+
+ #include "base/process/process_handle.h"
++#include "base/files/file_util.h"
+
+ #include <stddef.h>
++#include <stdlib.h>
++#include <sys/param.h>
++#include <sys/proc.h>
++#include <sys/stat.h>
+ #include <sys/sysctl.h>
+ #include <sys/types.h>
+ #include <unistd.h>
+
++#include <kvm.h>
++
+ namespace base {
+
+ ProcessId GetParentProcessId(ProcessHandle process) {
+- struct kinfo_proc info;
++ struct kinfo_proc *info;
+ size_t length;
++ pid_t ppid;
+ int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process,
+ sizeof(struct kinfo_proc), 0 };
+
+ if (sysctl(mib, std::size(mib), NULL, &length, NULL, 0) < 0)
+ return -1;
+
+- mib[5] = (length / sizeof(struct kinfo_proc));
++ info = (struct kinfo_proc *)malloc(length);
+
+- if (sysctl(mib, std::size(mib), &info, &length, NULL, 0) < 0)
+- return -1;
++ mib[5] = static_cast<int>((length / sizeof(struct kinfo_proc)));
++
++ if (sysctl(mib, std::size(mib), info, &length, NULL, 0) < 0) {
++ ppid = -1;
++ goto out;
++ }
++
++ ppid = info->p_ppid;
+
+- return info.p_ppid;
++out:
++ free(info);
++ return ppid;
+ }
+
+ FilePath GetProcessExecutablePath(ProcessHandle process) {
+- struct kinfo_proc kp;
++ struct kinfo_file *files;
++ kvm_t *kd = NULL;
++ char errbuf[_POSIX2_LINE_MAX];
++ char **retvalargs, *cpath, retval[PATH_MAX];
++ int cnt;
+ size_t len;
+- int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process,
+- sizeof(struct kinfo_proc), 0 };
+-
+- if (sysctl(mib, std::size(mib), NULL, &len, NULL, 0) == -1)
+- return FilePath();
+- mib[5] = (len / sizeof(struct kinfo_proc));
+- if (sysctl(mib, std::size(mib), &kp, &len, NULL, 0) < 0)
+- return FilePath();
+- if ((kp.p_flag & P_SYSTEM) != 0)
+- return FilePath();
+- if (strcmp(kp.p_comm, "chrome") == 0)
+- return FilePath(kp.p_comm);
++ char *tokens[2];
++ struct stat sb;
++ FilePath result;
++
++ int mib[] = { CTL_KERN, KERN_PROC_ARGS, process, KERN_PROC_ARGV };
++
++ if ((cpath = getenv("CHROME_EXE_PATH")) != NULL)
++ result = FilePath(cpath);
++ else
++ result = FilePath("/usr/local/chrome/chrome");
++
++ if (sysctl(mib, std::size(mib), NULL, &len, NULL, 0) != -1) {
++ retvalargs = static_cast<char**>(malloc(len));
++ if (!retvalargs)
++ return result;
++
++ if (sysctl(mib, std::size(mib), retvalargs, &len, NULL, 0) < 0) {
++ free(retvalargs);
++ return result;
++ }
++
++ if ((*tokens = strtok(retvalargs[0], ":")) == NULL) {
++ free(retvalargs);
++ return result;
++ }
++
++ free(retvalargs);
++
++ if (tokens[0] == NULL)
++ return result;
++
++ if (realpath(tokens[0], retval) == NULL)
++ return result;
++
++ if (stat(retval, &sb) < 0)
++ return result;
++
++ if ((kd = kvm_openfiles(NULL, NULL, NULL, (int)KVM_NO_FILES,
++ errbuf)) == NULL)
++ return result;
++
++ if ((files = kvm_getfiles(kd, KERN_FILE_BYPID, process,
++ sizeof(struct kinfo_file), &cnt)) == NULL) {
++ kvm_close(kd);
++ return result;
++ }
++
++ for (int i = 0; i < cnt; i++) {
++ if (files[i].fd_fd == KERN_FILE_TEXT &&
++ files[i].va_fsid == static_cast<uint32_t>(sb.st_dev) &&
++ files[i].va_fileid == sb.st_ino) {
++ kvm_close(kd);
++ result = FilePath(retval);
++ }
++ }
++ }
+
+- return FilePath();
++ return result;
+ }
+
+ } // namespace base
diff --git a/chromium/patches/patch-base_process_process__iterator.h b/chromium/patches/patch-base_process_process__iterator.h
index f8af2d55db..05267450a8 100644
--- a/chromium/patches/patch-base_process_process__iterator.h
+++ b/chromium/patches/patch-base_process_process__iterator.h
@@ -1,27 +1,29 @@
$NetBSD$
---- base/process/process_iterator.h.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_iterator.h.orig 2024-07-24 02:44:22.639425500 +0000
+++ base/process/process_iterator.h
@@ -24,7 +24,7 @@
- #if defined(OS_WIN)
#include <windows.h>
+
#include <tlhelp32.h>
--#elif defined(OS_MACOSX) || defined(OS_OPENBSD)
-+#elif defined(OS_MACOSX) || defined(OS_OPENBSD) || defined(OS_NETBSD)
+-#elif BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_OPENBSD)
++#elif BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
#include <sys/sysctl.h>
- #elif defined(OS_FREEBSD)
+ #elif BUILDFLAG(IS_FREEBSD)
#include <sys/user.h>
-@@ -111,9 +111,12 @@ class BASE_EXPORT ProcessIterator {
- #if defined(OS_WIN)
+@@ -116,7 +116,11 @@ class BASE_EXPORT ProcessIterator {
HANDLE snapshot_;
- bool started_iteration_;
--#elif defined(OS_MACOSX) || defined(OS_BSD)
-+#elif defined(OS_MACOSX) || defined(OS_FREEBSD)
- std::vector<kinfo_proc> kinfo_procs_;
- size_t index_of_kinfo_proc_;
-+#elif defined(OS_NETBSD)
+ bool started_iteration_ = false;
+ #elif BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
++# if BUILDFLAG(IS_NETBSD)
+ std::vector<kinfo_proc2> kinfo_procs_;
-+ size_t index_of_kinfo_proc_;
- #elif defined(OS_POSIX) || defined(OS_FUCHSIA)
- DIR* procfs_dir_;
- #endif
++# else
+ std::vector<kinfo_proc> kinfo_procs_;
++# endif
+ size_t index_of_kinfo_proc_ = 0;
+ #elif BUILDFLAG(IS_POSIX)
+ struct DIRClose {
diff --git a/chromium/patches/patch-base_process_process__iterator__freebsd.cc b/chromium/patches/patch-base_process_process__iterator__freebsd.cc
new file mode 100644
index 0000000000..820b53bf18
--- /dev/null
+++ b/chromium/patches/patch-base_process_process__iterator__freebsd.cc
@@ -0,0 +1,57 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_iterator_freebsd.cc.orig 2024-07-24 02:44:22.639425500 +0000
++++ base/process/process_iterator_freebsd.cc
+@@ -18,7 +18,7 @@ namespace base {
+
+ ProcessIterator::ProcessIterator(const ProcessFilter* filter)
+ : filter_(filter) {
+- int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_UID, getuid() };
++ int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_UID, (int) getuid() };
+
+ bool done = false;
+ int try_num = 1;
+@@ -37,7 +37,7 @@ ProcessIterator::ProcessIterator(const P
+ num_of_kinfo_proc += 16;
+ kinfo_procs_.resize(num_of_kinfo_proc);
+ len = num_of_kinfo_proc * sizeof(struct kinfo_proc);
+- if (sysctl(mib, std::size(mib), &kinfo_procs_[0], &len, NULL, 0) < 0) {
++ if (sysctl(mib, std::size(mib), kinfo_procs_.data(), &len, NULL, 0) < 0) {
+ // If we get a mem error, it just means we need a bigger buffer, so
+ // loop around again. Anything else is a real error and give up.
+ if (errno != ENOMEM) {
+@@ -47,7 +47,7 @@ ProcessIterator::ProcessIterator(const P
+ }
+ } else {
+ // Got the list, just make sure we're sized exactly right
+- size_t num_of_kinfo_proc = len / sizeof(struct kinfo_proc);
++ num_of_kinfo_proc = len / sizeof(struct kinfo_proc);
+ kinfo_procs_.resize(num_of_kinfo_proc);
+ done = true;
+ }
+@@ -68,18 +68,13 @@ bool ProcessIterator::CheckForNextProces
+ for (; index_of_kinfo_proc_ < kinfo_procs_.size(); ++index_of_kinfo_proc_) {
+ size_t length;
+ struct kinfo_proc kinfo = kinfo_procs_[index_of_kinfo_proc_];
+- int mib[] = { CTL_KERN, KERN_PROC_ARGS, kinfo.ki_pid };
++ int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_ARGS, kinfo.ki_pid };
+
+ if ((kinfo.ki_pid > 0) && (kinfo.ki_stat == SZOMB))
+ continue;
+
+- length = 0;
+- if (sysctl(mib, std::size(mib), NULL, &length, NULL, 0) < 0) {
+- LOG(ERROR) << "failed to figure out the buffer size for a command line";
+- continue;
+- }
+-
+- data.resize(length);
++ data.resize(ARG_MAX);
++ length = ARG_MAX;
+
+ if (sysctl(mib, std::size(mib), &data[0], &length, NULL, 0) < 0) {
+ LOG(ERROR) << "failed to fetch a commandline";
diff --git a/chromium/patches/patch-base_process_process__iterator__netbsd.cc b/chromium/patches/patch-base_process_process__iterator__netbsd.cc
index d7aeea1c0c..9a32f58217 100644
--- a/chromium/patches/patch-base_process_process__iterator__netbsd.cc
+++ b/chromium/patches/patch-base_process_process__iterator__netbsd.cc
@@ -1,74 +1,65 @@
$NetBSD$
---- base/process/process_iterator_netbsd.cc.orig 2020-07-09 13:18:47.324483044 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_iterator_netbsd.cc.orig 2024-08-01 14:08:56.652412756 +0000
+++ base/process/process_iterator_netbsd.cc
-@@ -0,0 +1,146 @@
-+// Copyright (c) 2013 The Chromium Authors. All rights reserved.
+@@ -0,0 +1,132 @@
++// Copyright 2013 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "base/process/process_iterator.h"
+
+#include <errno.h>
-+#include <sys/types.h>
+#include <stddef.h>
-+#include <sys/sysctl.h>
+#include <unistd.h>
-+
-+/* getuid() */
-+#include <unistd.h>
-+#include <sys/types.h>
++#include <sys/param.h>
++#include <sys/proc.h>
++#include <sys/sysctl.h>
+
+#include "base/logging.h"
-+#include "base/macros.h"
+#include "base/strings/string_split.h"
+#include "base/strings/string_util.h"
+
+namespace base {
+
+ProcessIterator::ProcessIterator(const ProcessFilter* filter)
-+ : index_of_kinfo_proc_(),
-+ filter_(filter) {
-+
-+ int mib[6];
-+
-+ printf("%s\n", __PRETTY_FUNCTION__);
-+
-+ mib[0] = CTL_KERN;
-+ mib[1] = KERN_PROC2;
-+ mib[2] = KERN_PROC_UID;
-+ mib[3] = getuid();
-+ mib[4] = sizeof(struct kinfo_proc2);
-+ mib[5] = 0;
++ : filter_(filter) {
++ int mib[] = { CTL_KERN, KERN_PROC2, KERN_PROC_UID, static_cast<int>(getuid()),
++ sizeof(struct kinfo_proc2), 1 };
+
+ bool done = false;
+ int try_num = 1;
+ const int max_tries = 10;
++ size_t num_of_kinfo_proc;
+
+ do {
+ size_t len = 0;
-+ if (sysctl(mib, 6, NULL, &len, NULL, 0) <0 ){
-+ LOG(ERROR) << "failed to get the size needed for the process list";
++ if (sysctl(mib, std::size(mib), NULL, &len, NULL, 0) < 0) {
++ DLOG(ERROR) << "failed to get the size needed for the process list";
+ kinfo_procs_.resize(0);
+ done = true;
+ } else {
-+ size_t num_of_kinfo_proc = len / sizeof(struct kinfo_proc2);
++ num_of_kinfo_proc = len / sizeof(struct kinfo_proc2);
+ // Leave some spare room for process table growth (more could show up
+ // between when we check and now)
+ num_of_kinfo_proc += 16;
+ kinfo_procs_.resize(num_of_kinfo_proc);
+ len = num_of_kinfo_proc * sizeof(struct kinfo_proc2);
-+ if (sysctl(mib, 6, &kinfo_procs_[0], &len, NULL, 0) <0) {
++ if (sysctl(mib, std::size(mib), &kinfo_procs_[0], &len, NULL, 0) < 0) {
+ // If we get a mem error, it just means we need a bigger buffer, so
+ // loop around again. Anything else is a real error and give up.
+ if (errno != ENOMEM) {
-+ LOG(ERROR) << "failed to get the process list";
++ DLOG(ERROR) << "failed to get the process list";
+ kinfo_procs_.resize(0);
+ done = true;
+ }
+ } else {
+ // Got the list, just make sure we're sized exactly right
-+ size_t num_of_kinfo_proc = len / sizeof(struct kinfo_proc2);
++ num_of_kinfo_proc = len / sizeof(struct kinfo_proc2);
+ kinfo_procs_.resize(num_of_kinfo_proc);
+ done = true;
+ }
@@ -76,13 +67,12 @@ $NetBSD$
+ } while (!done && (try_num++ < max_tries));
+
+ if (!done) {
-+ LOG(ERROR) << "failed to collect the process list in a few tries";
++ DLOG(ERROR) << "failed to collect the process list in a few tries";
+ kinfo_procs_.resize(0);
+ }
+}
+
-+ProcessIterator::~ProcessIterator() {
-+}
++ProcessIterator::~ProcessIterator() = default;
+
+bool ProcessIterator::CheckForNextProcess() {
+ std::string data;
@@ -97,13 +87,13 @@ $NetBSD$
+
+ // Find out what size buffer we need.
+ size_t data_len = 0;
-+ if (sysctl(mib, __arraycount(mib), NULL, &data_len, NULL, 0) < 0) {
++ if (sysctl(mib, std::size(mib), NULL, &data_len, NULL, 0) < 0) {
+ DVPLOG(1) << "failed to figure out the buffer size for a commandline";
+ continue;
+ }
+
+ data.resize(data_len);
-+ if (sysctl(mib, __arraycount(mib), &data[0], &data_len, NULL, 0) < 0) {
++ if (sysctl(mib, std::size(mib), &data[0], &data_len, NULL, 0) < 0) {
+ DVPLOG(1) << "failed to fetch a commandline";
+ continue;
+ }
@@ -145,7 +135,7 @@ $NetBSD$
+
+bool NamedProcessIterator::IncludeEntry() {
+ return (executable_name_ == entry().exe_file() &&
-+ ProcessIterator::IncludeEntry());
++ ProcessIterator::IncludeEntry());
+}
+
+} // namespace base
diff --git a/chromium/patches/patch-base_process_process__iterator__openbsd.cc b/chromium/patches/patch-base_process_process__iterator__openbsd.cc
new file mode 100644
index 0000000000..80113d02fe
--- /dev/null
+++ b/chromium/patches/patch-base_process_process__iterator__openbsd.cc
@@ -0,0 +1,51 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_iterator_openbsd.cc.orig 2024-07-24 02:44:22.643426000 +0000
++++ base/process/process_iterator_openbsd.cc
+@@ -6,6 +6,9 @@
+
+ #include <errno.h>
+ #include <stddef.h>
++#include <unistd.h>
++#include <sys/param.h>
++#include <sys/proc.h>
+ #include <sys/sysctl.h>
+
+ #include "base/logging.h"
+@@ -16,12 +19,13 @@ namespace base {
+
+ ProcessIterator::ProcessIterator(const ProcessFilter* filter)
+ : filter_(filter) {
+- int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_UID, getuid(),
++ int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_UID, static_cast<int>(getuid()),
+ sizeof(struct kinfo_proc), 0 };
+
+ bool done = false;
+ int try_num = 1;
+ const int max_tries = 10;
++ size_t num_of_kinfo_proc;
+
+ do {
+ size_t len = 0;
+@@ -30,7 +34,7 @@ ProcessIterator::ProcessIterator(const P
+ kinfo_procs_.resize(0);
+ done = true;
+ } else {
+- size_t num_of_kinfo_proc = len / sizeof(struct kinfo_proc);
++ num_of_kinfo_proc = len / sizeof(struct kinfo_proc);
+ // Leave some spare room for process table growth (more could show up
+ // between when we check and now)
+ num_of_kinfo_proc += 16;
+@@ -46,7 +50,7 @@ ProcessIterator::ProcessIterator(const P
+ }
+ } else {
+ // Got the list, just make sure we're sized exactly right
+- size_t num_of_kinfo_proc = len / sizeof(struct kinfo_proc);
++ num_of_kinfo_proc = len / sizeof(struct kinfo_proc);
+ kinfo_procs_.resize(num_of_kinfo_proc);
+ done = true;
+ }
diff --git a/chromium/patches/patch-base_process_process__linux.cc b/chromium/patches/patch-base_process_process__linux.cc
deleted file mode 100644
index 9e89f3d9ee..0000000000
--- a/chromium/patches/patch-base_process_process__linux.cc
+++ /dev/null
@@ -1,34 +0,0 @@
-$NetBSD$
-
---- base/process/process_linux.cc.orig 2020-06-25 09:31:18.000000000 +0000
-+++ base/process/process_linux.cc
-@@ -80,6 +80,9 @@ Time Process::CreationTime() const {
- internal::VM_STARTTIME)
- : internal::ReadProcStatsAndGetFieldAsInt64(
- Pid(), internal::VM_STARTTIME);
-+#if defined(OS_BSD)
-+ return Time::FromTimeT(start_ticks);
-+#else
- if (!start_ticks)
- return Time();
- TimeDelta start_offset = internal::ClockTicksToTimeDelta(start_ticks);
-@@ -87,8 +90,11 @@ Time Process::CreationTime() const {
- if (boot_time.is_null())
- return Time();
- return Time(boot_time + start_offset);
-+#endif
- }
-
-+#if !defined(OS_BSD)
-+ return Time::FromTimeT(start_ticks);
- // static
- bool Process::CanBackgroundProcesses() {
- #if defined(OS_CHROMEOS)
-@@ -140,6 +146,7 @@ bool Process::SetProcessBackgrounded(boo
- DPCHECK(result == 0);
- return result == 0;
- }
-+#endif
-
- #if defined(OS_CHROMEOS)
- bool IsProcessBackgroundedCGroup(const StringPiece& cgroup_contents) {
diff --git a/chromium/patches/patch-base_process_process__metrics.cc b/chromium/patches/patch-base_process_process__metrics.cc
index 949e0f7eca..0e64695dc8 100644
--- a/chromium/patches/patch-base_process_process__metrics.cc
+++ b/chromium/patches/patch-base_process_process__metrics.cc
@@ -1,22 +1,55 @@
$NetBSD$
---- base/process/process_metrics.cc.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_metrics.cc.orig 2024-07-24 02:44:22.643426000 +0000
+++ base/process/process_metrics.cc
-@@ -58,7 +58,7 @@ SystemMetrics SystemMetrics::Sample() {
+@@ -17,7 +17,7 @@ namespace base {
+ namespace {
+
+ #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_AIX)
++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD)
+ int CalculateEventsPerSecond(uint64_t event_count,
+ uint64_t* last_event_count,
+ base::TimeTicks* last_calculated) {
+@@ -54,7 +54,7 @@ SystemMetrics SystemMetrics::Sample() {
SystemMetrics system_metrics;
system_metrics.committed_memory_ = GetSystemCommitCharge();
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
GetSystemMemoryInfo(&system_metrics.memory_info_);
GetVmStatInfo(&system_metrics.vmstat_info_);
GetSystemDiskInfo(&system_metrics.disk_info_);
-@@ -76,7 +76,7 @@ std::unique_ptr<Value> SystemMetrics::To
- std::unique_ptr<DictionaryValue> res(new DictionaryValue());
+@@ -73,7 +73,7 @@ Value::Dict SystemMetrics::ToDict() cons
+ Value::Dict res;
+
+ res.Set("committed_memory", static_cast<int>(committed_memory_));
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ Value::Dict meminfo = memory_info_.ToDict();
+ meminfo.Merge(vmstat_info_.ToDict());
+ res.Set("meminfo", std::move(meminfo));
+@@ -100,7 +100,6 @@ std::unique_ptr<ProcessMetrics> ProcessM
+ #endif // !BUILDFLAG(IS_MAC)
+ }
+
+-#if !BUILDFLAG(IS_FREEBSD) || !BUILDFLAG(IS_POSIX)
+ double ProcessMetrics::GetPlatformIndependentCPUUsage(
+ TimeDelta cumulative_cpu) {
+ TimeTicks time = TimeTicks::Now();
+@@ -129,10 +128,9 @@ ProcessMetrics::GetPlatformIndependentCP
+ return GetPlatformIndependentCPUUsage(cpu_usage);
+ });
+ }
+-#endif
- res->SetIntKey("committed_memory", static_cast<int>(committed_memory_));
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
- std::unique_ptr<DictionaryValue> meminfo = memory_info_.ToValue();
- std::unique_ptr<DictionaryValue> vmstat = vmstat_info_.ToValue();
- meminfo->MergeDictionary(vmstat.get());
+ #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_AIX)
++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD)
+ int ProcessMetrics::CalculateIdleWakeupsPerSecond(
+ uint64_t absolute_idle_wakeups) {
+ return CalculateEventsPerSecond(absolute_idle_wakeups,
diff --git a/chromium/patches/patch-base_process_process__metrics.h b/chromium/patches/patch-base_process_process__metrics.h
index ab9a22c6b1..2283b4ec57 100644
--- a/chromium/patches/patch-base_process_process__metrics.h
+++ b/chromium/patches/patch-base_process_process__metrics.h
@@ -1,95 +1,121 @@
$NetBSD$
---- base/process/process_metrics.h.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_metrics.h.orig 2024-07-24 02:44:22.643426000 +0000
+++ base/process/process_metrics.h
-@@ -44,7 +44,7 @@ namespace base {
- // Full declaration is in process_metrics_iocounters.h.
- struct IoCounters;
+@@ -38,7 +38,7 @@
+ #endif
+
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+- BUILDFLAG(IS_AIX)
++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD)
+ #include <string>
+ #include <utility>
+ #include <vector>
+@@ -48,7 +48,7 @@
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+ namespace base {
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
// Minor and major page fault counts since the process creation.
// Both counts are process-wide, and exclude child processes.
//
-@@ -95,7 +95,7 @@ class BASE_EXPORT ProcessMetrics {
+@@ -116,7 +116,7 @@ class BASE_EXPORT ProcessMetrics {
// convenience wrapper for CreateProcessMetrics().
static std::unique_ptr<ProcessMetrics> CreateCurrentProcessMetrics();
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
// Resident Set Size is a Linux/Android specific memory concept. Do not
// attempt to extend this to other platforms.
BASE_EXPORT size_t GetResidentSetSize() const;
-@@ -186,7 +186,7 @@ class BASE_EXPORT ProcessMetrics {
+@@ -150,7 +150,7 @@ class BASE_EXPORT ProcessMetrics {
+ base::expected<TimeDelta, ProcessCPUUsageError> GetCumulativeCPUUsage();
+
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+- BUILDFLAG(IS_AIX)
++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD)
+ // Emits the cumulative CPU usage for all currently active threads since they
+ // were started into the output parameter (replacing its current contents).
+ // Threads that have already terminated will not be reported. Thus, the sum of
+@@ -195,7 +195,7 @@ class BASE_EXPORT ProcessMetrics {
int GetOpenFdSoftLimit() const;
- #endif // defined(OS_POSIX)
+ #endif // BUILDFLAG(IS_POSIX)
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
// Bytes of swap as reported by /proc/[pid]/status.
uint64_t GetVmSwapBytes() const;
-@@ -205,7 +205,7 @@ class BASE_EXPORT ProcessMetrics {
- ProcessMetrics(ProcessHandle process, PortProvider* port_provider);
- #endif // !defined(OS_MACOSX) || defined(OS_IOS)
+@@ -216,7 +216,7 @@ class BASE_EXPORT ProcessMetrics {
+ #endif // !BUILDFLAG(IS_MAC)
--#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_AIX)
-+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_AIX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_AIX)
++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD)
int CalculateIdleWakeupsPerSecond(uint64_t absolute_idle_wakeups);
#endif
- #if defined(OS_MACOSX)
-@@ -234,7 +234,7 @@ class BASE_EXPORT ProcessMetrics {
- // Number of bytes transferred to/from disk in bytes.
- uint64_t last_cumulative_disk_usage_ = 0;
+ #if BUILDFLAG(IS_APPLE)
+@@ -238,12 +238,10 @@ class BASE_EXPORT ProcessMetrics {
+ // Used to store the previous times and CPU usage counts so we can
+ // compute the CPU usage between calls.
+ TimeTicks last_cpu_time_;
+-#if !BUILDFLAG(IS_FREEBSD) || !BUILDFLAG(IS_POSIX)
+ TimeDelta last_cumulative_cpu_;
+-#endif
--#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_AIX)
-+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_AIX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_AIX)
++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD)
// Same thing for idle wakeups.
TimeTicks last_idle_wakeups_time_;
uint64_t last_absolute_idle_wakeups_;
-@@ -286,7 +286,8 @@ BASE_EXPORT void IncreaseFdLimitTo(unsig
- #endif // defined(OS_POSIX)
+@@ -284,7 +282,7 @@ BASE_EXPORT void IncreaseFdLimitTo(unsig
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
-- defined(OS_ANDROID) || defined(OS_AIX) || defined(OS_FUCHSIA)
-+ defined(OS_ANDROID) || defined(OS_AIX) || defined(OS_FUCHSIA) || \
-+ defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_AIX) || \
+- BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
// Data about system-wide memory consumption. Values are in KB. Available on
// Windows, Mac, Linux, Android and Chrome OS.
//
-@@ -319,7 +320,7 @@ struct BASE_EXPORT SystemMemoryInfoKB {
- int avail_phys = 0;
+@@ -319,7 +317,7 @@ struct BASE_EXPORT SystemMemoryInfoKB {
#endif
--#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_AIX)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_AIX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+- BUILDFLAG(IS_AIX)
++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD)
// This provides an estimate of available memory as described here:
// https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=34e431b0ae398fc54ea69ff85ec700722c9da773
// NOTE: this is ONLY valid in kernels 3.14 and up. Its value will always
-@@ -334,7 +335,7 @@ struct BASE_EXPORT SystemMemoryInfoKB {
+@@ -334,7 +332,7 @@ struct BASE_EXPORT SystemMemoryInfoKB {
#endif
- #if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_AIX) || \
-- defined(OS_FUCHSIA)
-+ defined(OS_FUCHSIA) || defined(OS_BSD)
+ #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_AIX) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
int buffers = 0;
int cached = 0;
int active_anon = 0;
-@@ -372,7 +373,7 @@ BASE_EXPORT bool GetSystemMemoryInfo(Sys
- #endif // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) ||
- // defined(OS_ANDROID) || defined(OS_AIX) || defined(OS_FUCHSIA)
+@@ -371,7 +369,7 @@ BASE_EXPORT bool GetSystemMemoryInfo(Sys
+ // BUILDFLAG(IS_FUCHSIA)
--#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_AIX)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_AIX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+- BUILDFLAG(IS_AIX)
++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD)
// Parse the data found in /proc/<pid>/stat and return the sum of the
// CPU-related ticks. Returns -1 on parse error.
// Exposed for testing.
-@@ -540,7 +541,7 @@ class BASE_EXPORT SystemMetrics {
+@@ -566,7 +564,7 @@ class BASE_EXPORT SystemMetrics {
FRIEND_TEST_ALL_PREFIXES(SystemMetricsTest, SystemMetrics);
size_t committed_memory_;
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
SystemMemoryInfoKB memory_info_;
VmStatInfo vmstat_info_;
SystemDiskInfo disk_info_;
diff --git a/chromium/patches/patch-base_process_process__metrics__freebsd.cc b/chromium/patches/patch-base_process_process__metrics__freebsd.cc
new file mode 100644
index 0000000000..8154766d0b
--- /dev/null
+++ b/chromium/patches/patch-base_process_process__metrics__freebsd.cc
@@ -0,0 +1,309 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_metrics_freebsd.cc.orig 2024-07-24 02:44:22.643426000 +0000
++++ base/process/process_metrics_freebsd.cc
+@@ -3,19 +3,37 @@
+ // found in the LICENSE file.
+
+ #include "base/process/process_metrics.h"
++#include "base/notreached.h"
+
+ #include <stddef.h>
++#include <sys/types.h>
+ #include <sys/sysctl.h>
+ #include <sys/user.h>
+ #include <unistd.h>
+
++#include <fcntl.h> /* O_RDONLY */
++#include <kvm.h>
++#include <libutil.h>
++
+ #include "base/memory/ptr_util.h"
++#include "base/values.h"
+
+ namespace base {
++namespace {
++int GetPageShift() {
++ int pagesize = getpagesize();
++ int pageshift = 0;
++
++ while (pagesize > 1) {
++ pageshift++;
++ pagesize >>= 1;
++ }
++
++ return pageshift;
++}
++}
+
+-ProcessMetrics::ProcessMetrics(ProcessHandle process)
+- : process_(process),
+- last_cpu_(0) {}
++ProcessMetrics::ProcessMetrics(ProcessHandle process) : process_(process) {}
+
+ // static
+ std::unique_ptr<ProcessMetrics> ProcessMetrics::CreateProcessMetrics(
+@@ -23,22 +41,18 @@ std::unique_ptr<ProcessMetrics> ProcessM
+ return WrapUnique(new ProcessMetrics(process));
+ }
+
+-base::expected<double, ProcessCPUUsageError>
+-ProcessMetrics::GetPlatformIndependentCPUUsage() {
++base::expected<TimeDelta, ProcessCPUUsageError>
++ProcessMetrics::GetCumulativeCPUUsage() {
+ struct kinfo_proc info;
+- int mib[] = {CTL_KERN, KERN_PROC, KERN_PROC_PID, process_};
+- size_t length = sizeof(info);
++ size_t length = sizeof(struct kinfo_proc);
++ struct timeval tv;
++
++ int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process_ };
+
+ if (sysctl(mib, std::size(mib), &info, &length, NULL, 0) < 0)
+- return base::unexpected(ProcessCPUUsageError::kSystemError);
++ return base::ok(TimeDelta());
+
+- return base::ok(double{info.ki_pctcpu} / FSCALE * 100.0);
+-}
+-
+-base::expected<TimeDelta, ProcessCPUUsageError>
+-ProcessMetrics::GetCumulativeCPUUsage() {
+- NOTREACHED_IN_MIGRATION();
+- return base::unexpected(ProcessCPUUsageError::kNotImplemented);
++ return base::ok(Microseconds(info.ki_runtime));
+ }
+
+ size_t GetSystemCommitCharge() {
+@@ -64,4 +78,228 @@ size_t GetSystemCommitCharge() {
+ return mem_total - (mem_free*pagesize) - (mem_inactive*pagesize);
+ }
+
++int64_t GetNumberOfThreads(ProcessHandle process) {
++ // Taken from FreeBSD top (usr.bin/top/machine.c)
++
++ kvm_t* kd = kvm_open(NULL, "/dev/null", NULL, O_RDONLY, "kvm_open");
++ if (kd == NULL)
++ return 0;
++
++ struct kinfo_proc* pbase;
++ int nproc;
++ pbase = kvm_getprocs(kd, KERN_PROC_PID, process, &nproc);
++ if (pbase == NULL)
++ return 0;
++
++ if (kvm_close(kd) == -1)
++ return 0;
++
++ return nproc;
++}
++
++bool GetSystemMemoryInfo(SystemMemoryInfoKB *meminfo) {
++ unsigned int mem_total, mem_free, swap_total, swap_used;
++ size_t length;
++ int pagesizeKB;
++
++ pagesizeKB = getpagesize() / 1024;
++
++ length = sizeof(mem_total);
++ if (sysctlbyname("vm.stats.vm.v_page_count", &mem_total,
++ &length, NULL, 0) != 0 || length != sizeof(mem_total))
++ return false;
++
++ length = sizeof(mem_free);
++ if (sysctlbyname("vm.stats.vm.v_free_count", &mem_free, &length, NULL, 0)
++ != 0 || length != sizeof(mem_free))
++ return false;
++
++ length = sizeof(swap_total);
++ if (sysctlbyname("vm.swap_size", &swap_total, &length, NULL, 0)
++ != 0 || length != sizeof(swap_total))
++ return false;
++
++ length = sizeof(swap_used);
++ if (sysctlbyname("vm.swap_anon_use", &swap_used, &length, NULL, 0)
++ != 0 || length != sizeof(swap_used))
++ return false;
++
++ meminfo->total = mem_total * pagesizeKB;
++ meminfo->free = mem_free * pagesizeKB;
++ meminfo->swap_total = swap_total * pagesizeKB;
++ meminfo->swap_free = (swap_total - swap_used) * pagesizeKB;
++
++ return true;
++}
++
++int ProcessMetrics::GetOpenFdCount() const {
++ struct kinfo_file * kif;
++ int cnt;
++
++ if ((kif = kinfo_getfile(process_, &cnt)) == NULL)
++ return -1;
++
++ free(kif);
++
++ return cnt;
++}
++
++int ProcessMetrics::GetOpenFdSoftLimit() const {
++ size_t length;
++ int total_count = 0;
++ int mib[] = { CTL_KERN, KERN_MAXFILESPERPROC };
++
++ length = sizeof(total_count);
++
++ if (sysctl(mib, std::size(mib), &total_count, &length, NULL, 0) < 0) {
++ total_count = -1;
++ }
++
++ return total_count;
++}
++
++size_t ProcessMetrics::GetResidentSetSize() const {
++ kvm_t *kd = kvm_open(nullptr, "/dev/null", nullptr, O_RDONLY, "kvm_open");
++
++ if (kd == nullptr)
++ return 0;
++
++ struct kinfo_proc *pp;
++ int nproc;
++
++ if ((pp = kvm_getprocs(kd, KERN_PROC_PID, process_, &nproc)) == nullptr) {
++ kvm_close(kd);
++ return 0;
++ }
++
++ size_t rss;
++
++ if (nproc > 0) {
++ rss = pp->ki_rssize << GetPageShift();
++ } else {
++ rss = 0;
++ }
++
++ kvm_close(kd);
++ return rss;
++}
++
++uint64_t ProcessMetrics::GetVmSwapBytes() const {
++ kvm_t *kd = kvm_open(nullptr, "/dev/null", nullptr, O_RDONLY, "kvm_open");
++
++ if (kd == nullptr)
++ return 0;
++
++ struct kinfo_proc *pp;
++ int nproc;
++
++ if ((pp = kvm_getprocs(kd, KERN_PROC_PID, process_, &nproc)) == nullptr) {
++ kvm_close(kd);
++ return 0;
++ }
++
++ size_t swrss;
++
++ if (nproc > 0) {
++ swrss = pp->ki_swrss > pp->ki_rssize
++ ? (pp->ki_swrss - pp->ki_rssize) << GetPageShift()
++ : 0;
++ } else {
++ swrss = 0;
++ }
++
++ kvm_close(kd);
++ return swrss;
++}
++
++int ProcessMetrics::GetIdleWakeupsPerSecond() {
++ NOTIMPLEMENTED();
++ return 0;
++}
++
++bool GetSystemDiskInfo(SystemDiskInfo* diskinfo) {
++ NOTIMPLEMENTED();
++ return false;
++}
++
++bool GetVmStatInfo(VmStatInfo* vmstat) {
++ NOTIMPLEMENTED();
++ return false;
++}
++
++SystemDiskInfo::SystemDiskInfo() {
++ reads = 0;
++ reads_merged = 0;
++ sectors_read = 0;
++ read_time = 0;
++ writes = 0;
++ writes_merged = 0;
++ sectors_written = 0;
++ write_time = 0;
++ io = 0;
++ io_time = 0;
++ weighted_io_time = 0;
++}
++
++SystemDiskInfo::SystemDiskInfo(const SystemDiskInfo& other) = default;
++
++SystemDiskInfo& SystemDiskInfo::operator=(const SystemDiskInfo&) = default;
++
++Value::Dict SystemDiskInfo::ToDict() const {
++ Value::Dict res;
++
++ // Write out uint64_t variables as doubles.
++ // Note: this may discard some precision, but for JS there's no other option.
++ res.Set("reads", static_cast<double>(reads));
++ res.Set("reads_merged", static_cast<double>(reads_merged));
++ res.Set("sectors_read", static_cast<double>(sectors_read));
++ res.Set("read_time", static_cast<double>(read_time));
++ res.Set("writes", static_cast<double>(writes));
++ res.Set("writes_merged", static_cast<double>(writes_merged));
++ res.Set("sectors_written", static_cast<double>(sectors_written));
++ res.Set("write_time", static_cast<double>(write_time));
++ res.Set("io", static_cast<double>(io));
++ res.Set("io_time", static_cast<double>(io_time));
++ res.Set("weighted_io_time", static_cast<double>(weighted_io_time));
++
++ NOTIMPLEMENTED();
++
++ return res;
++}
++
++Value::Dict SystemMemoryInfoKB::ToDict() const {
++ Value::Dict res;
++ res.Set("total", total);
++ res.Set("free", free);
++ res.Set("available", available);
++ res.Set("buffers", buffers);
++ res.Set("cached", cached);
++ res.Set("active_anon", active_anon);
++ res.Set("inactive_anon", inactive_anon);
++ res.Set("active_file", active_file);
++ res.Set("inactive_file", inactive_file);
++ res.Set("swap_total", swap_total);
++ res.Set("swap_free", swap_free);
++ res.Set("swap_used", swap_total - swap_free);
++ res.Set("dirty", dirty);
++ res.Set("reclaimable", reclaimable);
++
++ NOTIMPLEMENTED();
++
++ return res;
++}
++
++Value::Dict VmStatInfo::ToDict() const {
++ Value::Dict res;
++ // TODO(crbug.com/1334256): Make base::Value able to hold uint64_t and remove
++ // casts below.
++ res.Set("pswpin", static_cast<int>(pswpin));
++ res.Set("pswpout", static_cast<int>(pswpout));
++ res.Set("pgmajfault", static_cast<int>(pgmajfault));
++
++ NOTIMPLEMENTED();
++
++ return res;
++}
++
+ } // namespace base
diff --git a/chromium/patches/patch-base_process_process__metrics__netbsd.cc b/chromium/patches/patch-base_process_process__metrics__netbsd.cc
index 762a8cd444..d5840648be 100644
--- a/chromium/patches/patch-base_process_process__metrics__netbsd.cc
+++ b/chromium/patches/patch-base_process_process__metrics__netbsd.cc
@@ -1,9 +1,13 @@
$NetBSD$
---- base/process/process_metrics_netbsd.cc.orig 2020-07-09 13:21:37.235642797 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_metrics_netbsd.cc.orig 2024-08-01 14:08:56.656006793 +0000
+++ base/process/process_metrics_netbsd.cc
-@@ -0,0 +1,79 @@
-+// Copyright (c) 2013 The Chromium Authors. All rights reserved.
+@@ -0,0 +1,175 @@
++// Copyright 2013 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
@@ -11,74 +15,170 @@ $NetBSD$
+
+#include <stddef.h>
+#include <stdint.h>
++#include <fcntl.h>
+#include <sys/param.h>
+#include <sys/sysctl.h>
+#include <sys/vmmeter.h>
+
+#include "base/memory/ptr_util.h"
-+#include "base/process/process_metrics_iocounters.h"
-+#include "base/stl_util.h"
-+#include "base/logging.h"
++#include "base/types/expected.h"
++#include "base/values.h"
++#include "base/notreached.h"
+
+namespace base {
+
-+// static
-+std::unique_ptr<ProcessMetrics> ProcessMetrics::CreateProcessMetrics(
-+ ProcessHandle process) {
-+ return WrapUnique(new ProcessMetrics(process));
-+}
++ProcessMetrics::ProcessMetrics(ProcessHandle process) : process_(process) {}
+
-+bool ProcessMetrics::GetIOCounters(IoCounters* io_counters) const {
-+ return false;
-+}
-+
-+static int GetProcessCPU(pid_t pid) {
++base::expected<TimeDelta, ProcessCPUUsageError>
++ProcessMetrics::GetCumulativeCPUUsage() {
+ struct kinfo_proc2 info;
-+ size_t length;
-+ int mib[] = { CTL_KERN, KERN_PROC2, KERN_PROC_PID, pid,
-+ sizeof(struct kinfo_proc2), 1 };
++ size_t length = sizeof(struct kinfo_proc2);
++ struct timeval tv;
+
-+ if (sysctl(mib, base::size(mib), NULL, &length, NULL, 0) < 0)
-+ return -1;
-+
-+ mib[5] = (length / sizeof(struct kinfo_proc2));
++ int mib[] = { CTL_KERN, KERN_PROC2, KERN_PROC_PID, process_,
++ sizeof(struct kinfo_proc2), 1 };
+
-+ if (sysctl(mib, base::size(mib), &info, &length, NULL, 0) < 0)
-+ return 0;
++ if (sysctl(mib, std::size(mib), &info, &length, NULL, 0) < 0) {
++ return base::unexpected(ProcessCPUUsageError::kSystemError);
++ }
+
-+ return info.p_pctcpu;
-+}
++ tv.tv_sec = info.p_rtime_sec;
++ tv.tv_usec = info.p_rtime_usec;
+
-+TimeDelta ProcessMetrics::GetCumulativeCPUUsage() {
-+ //NOTREACHED();
-+ return TimeDelta();
++ return base::ok(Microseconds(TimeValToMicroseconds(tv)));
+}
+
-+bool ProcessMetrics::GetCumulativeCPUUsagePerThread(CPUUsagePerThread&) {
-+ //NOTREACHED();
-+ return false;
++// static
++std::unique_ptr<ProcessMetrics> ProcessMetrics::CreateProcessMetrics(
++ ProcessHandle process) {
++ return WrapUnique(new ProcessMetrics(process));
+}
+
-+ProcessMetrics::ProcessMetrics(ProcessHandle process)
-+ : process_(process) {}
-+
+size_t GetSystemCommitCharge() {
+ int mib[] = { CTL_VM, VM_METER };
-+ int pagesize;
++ size_t pagesize;
+ struct vmtotal vmtotal;
+ unsigned long mem_total, mem_free, mem_inactive;
+ size_t len = sizeof(vmtotal);
+
-+ if (sysctl(mib, base::size(mib), &vmtotal, &len, NULL, 0) < 0)
++ if (sysctl(mib, std::size(mib), &vmtotal, &len, NULL, 0) < 0) {
+ return 0;
++ }
+
+ mem_total = vmtotal.t_vm;
+ mem_free = vmtotal.t_free;
+ mem_inactive = vmtotal.t_vm - vmtotal.t_avm;
+
-+ pagesize = getpagesize();
++ pagesize = checked_cast<size_t>(getpagesize());
+
+ return mem_total - (mem_free*pagesize) - (mem_inactive*pagesize);
+}
+
++int ProcessMetrics::GetOpenFdCount() const {
++ return -1;
++}
++
++int ProcessMetrics::GetOpenFdSoftLimit() const {
++ return getdtablesize();
++// return GetMaxFds();
++}
++
++uint64_t ProcessMetrics::GetVmSwapBytes() const {
++ NOTIMPLEMENTED();
++ return 0;
++}
++
++bool GetSystemMemoryInfo(SystemMemoryInfoKB* meminfo) {
++ NOTIMPLEMENTED_LOG_ONCE();
++ return false;
++}
++
++bool GetSystemDiskInfo(SystemDiskInfo* diskinfo) {
++ NOTIMPLEMENTED();
++ return false;
++}
++
++bool GetVmStatInfo(VmStatInfo* vmstat) {
++ NOTIMPLEMENTED();
++ return false;
++}
++
++int ProcessMetrics::GetIdleWakeupsPerSecond() {
++ NOTIMPLEMENTED();
++ return 0;
++}
++
++Value::Dict SystemMemoryInfoKB::ToDict() const {
++ Value::Dict res;
++ res.Set("total", total);
++ res.Set("free", free);
++ res.Set("available", available);
++ res.Set("buffers", buffers);
++ res.Set("cached", cached);
++ res.Set("active_anon", active_anon);
++ res.Set("inactive_anon", inactive_anon);
++ res.Set("active_file", active_file);
++ res.Set("inactive_file", inactive_file);
++ res.Set("swap_total", swap_total);
++ res.Set("swap_free", swap_free);
++ res.Set("swap_used", swap_total - swap_free);
++ res.Set("dirty", dirty);
++ res.Set("reclaimable", reclaimable);
++
++ NOTIMPLEMENTED();
++
++ return res;
++}
++
++Value::Dict VmStatInfo::ToDict() const {
++ Value::Dict res;
++ res.Set("pswpin", static_cast<int>(pswpin));
++ res.Set("pswpout", static_cast<int>(pswpout));
++ res.Set("pgmajfault", static_cast<int>(pgmajfault));
++
++ NOTIMPLEMENTED();
++
++ return res;
++}
++
++SystemDiskInfo::SystemDiskInfo() {
++ reads = 0;
++ reads_merged = 0;
++ sectors_read = 0;
++ read_time = 0;
++ writes = 0;
++ writes_merged = 0;
++ sectors_written = 0;
++ write_time = 0;
++ io = 0;
++ io_time = 0;
++ weighted_io_time = 0;
++}
++
++SystemDiskInfo::SystemDiskInfo(const SystemDiskInfo&) = default;
++
++SystemDiskInfo& SystemDiskInfo::operator=(const SystemDiskInfo&) = default;
++
++Value::Dict SystemDiskInfo::ToDict() const {
++ Value::Dict res;
++
++ // Write out uint64_t variables as doubles.
++ // Note: this may discard some precision, but for JS there's no other option.
++ res.Set("reads", static_cast<double>(reads));
++ res.Set("reads_merged", static_cast<double>(reads_merged));
++ res.Set("sectors_read", static_cast<double>(sectors_read));
++ res.Set("read_time", static_cast<double>(read_time));
++ res.Set("writes", static_cast<double>(writes));
++ res.Set("writes_merged", static_cast<double>(writes_merged));
++ res.Set("sectors_written", static_cast<double>(sectors_written));
++ res.Set("write_time", static_cast<double>(write_time));
++ res.Set("io", static_cast<double>(io));
++ res.Set("io_time", static_cast<double>(io_time));
++ res.Set("weighted_io_time", static_cast<double>(weighted_io_time));
++
++ NOTIMPLEMENTED();
++
++ return res;
++}
++
+} // namespace base
diff --git a/chromium/patches/patch-base_process_process__metrics__openbsd.cc b/chromium/patches/patch-base_process_process__metrics__openbsd.cc
new file mode 100644
index 0000000000..63ef0a059b
--- /dev/null
+++ b/chromium/patches/patch-base_process_process__metrics__openbsd.cc
@@ -0,0 +1,240 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_metrics_openbsd.cc.orig 2024-07-24 02:44:22.643426000 +0000
++++ base/process/process_metrics_openbsd.cc
+@@ -6,36 +6,40 @@
+
+ #include <stddef.h>
+ #include <stdint.h>
++#include <fcntl.h>
+ #include <sys/param.h>
+ #include <sys/sysctl.h>
++#include <sys/vmmeter.h>
++
++#include <kvm.h>
+
+ #include "base/memory/ptr_util.h"
+ #include "base/types/expected.h"
++#include "base/values.h"
++#include "base/notreached.h"
+
+ namespace base {
+
+-namespace {
++ProcessMetrics::ProcessMetrics(ProcessHandle process) : process_(process) {}
+
+-base::expected<int, ProcessCPUUsageError> GetProcessCPU(pid_t pid) {
++base::expected<TimeDelta, ProcessCPUUsageError>
++ProcessMetrics::GetCumulativeCPUUsage() {
+ struct kinfo_proc info;
+- size_t length;
+- int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, pid,
+- sizeof(struct kinfo_proc), 0 };
+-
+- if (sysctl(mib, std::size(mib), NULL, &length, NULL, 0) < 0) {
+- return base::unexpected(ProcessCPUUsageError::kSystemError);
+- }
++ size_t length = sizeof(struct kinfo_proc);
++ struct timeval tv;
+
+- mib[5] = (length / sizeof(struct kinfo_proc));
++ int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process_,
++ sizeof(struct kinfo_proc), 1 };
+
+ if (sysctl(mib, std::size(mib), &info, &length, NULL, 0) < 0) {
+ return base::unexpected(ProcessCPUUsageError::kSystemError);
+ }
+
+- return base::ok(info.p_pctcpu);
+-}
++ tv.tv_sec = info.p_rtime_sec;
++ tv.tv_usec = info.p_rtime_usec;
+
+-} // namespace
++ return base::ok(Microseconds(TimeValToMicroseconds(tv)));
++}
+
+ // static
+ std::unique_ptr<ProcessMetrics> ProcessMetrics::CreateProcessMetrics(
+@@ -43,38 +47,9 @@ std::unique_ptr<ProcessMetrics> ProcessM
+ return WrapUnique(new ProcessMetrics(process));
+ }
+
+-base::expected<double, ProcessCPUUsageError>
+-ProcessMetrics::GetPlatformIndependentCPUUsage() {
+- TimeTicks time = TimeTicks::Now();
+-
+- if (last_cpu_time_.is_zero()) {
+- // First call, just set the last values.
+- last_cpu_time_ = time;
+- return base::ok(0.0);
+- }
+-
+- const base::expected<int, ProcessCPUUsageError> cpu = GetProcessCPU(process_);
+- if (!cpu.has_value()) {
+- return base::unexpected(cpu.error());
+- }
+-
+- last_cpu_time_ = time;
+- return base::ok(double{cpu.value()} / FSCALE * 100.0);
+-}
+-
+-base::expected<TimeDelta, ProcessCPUUsageError>
+-ProcessMetrics::GetCumulativeCPUUsage() {
+- NOTREACHED_IN_MIGRATION();
+- return base::unexpected(ProcessCPUUsageError::kNotImplemented);
+-}
+-
+-ProcessMetrics::ProcessMetrics(ProcessHandle process)
+- : process_(process),
+- last_cpu_(0) {}
+-
+ size_t GetSystemCommitCharge() {
+ int mib[] = { CTL_VM, VM_METER };
+- int pagesize;
++ size_t pagesize;
+ struct vmtotal vmtotal;
+ unsigned long mem_total, mem_free, mem_inactive;
+ size_t len = sizeof(vmtotal);
+@@ -86,9 +61,136 @@ size_t GetSystemCommitCharge() {
+ mem_free = vmtotal.t_free;
+ mem_inactive = vmtotal.t_vm - vmtotal.t_avm;
+
+- pagesize = getpagesize();
++ pagesize = checked_cast<size_t>(getpagesize());
+
+ return mem_total - (mem_free*pagesize) - (mem_inactive*pagesize);
+ }
+
++int ProcessMetrics::GetOpenFdCount() const {
++#if 0
++ struct kinfo_file *files;
++ kvm_t *kd = NULL;
++ int total_count = 0;
++ char errbuf[_POSIX2_LINE_MAX];
++
++ if ((kd = kvm_openfiles(NULL, NULL, NULL, KVM_NO_FILES, errbuf)) == NULL)
++ goto out;
++
++ if ((files = kvm_getfiles(kd, KERN_FILE_BYPID, process_,
++ sizeof(struct kinfo_file), &total_count)) == NULL) {
++ total_count = 0;
++ goto out;
++ }
++
++ kvm_close(kd);
++
++out:
++ return total_count;
++#endif
++ return getdtablecount();
++}
++
++int ProcessMetrics::GetOpenFdSoftLimit() const {
++ return getdtablesize();
++// return GetMaxFds();
++}
++
++uint64_t ProcessMetrics::GetVmSwapBytes() const {
++ NOTIMPLEMENTED();
++ return 0;
++}
++
++bool GetSystemMemoryInfo(SystemMemoryInfoKB* meminfo) {
++ NOTIMPLEMENTED_LOG_ONCE();
++ return false;
++}
++
++bool GetSystemDiskInfo(SystemDiskInfo* diskinfo) {
++ NOTIMPLEMENTED();
++ return false;
++}
++
++bool GetVmStatInfo(VmStatInfo* vmstat) {
++ NOTIMPLEMENTED();
++ return false;
++}
++
++int ProcessMetrics::GetIdleWakeupsPerSecond() {
++ NOTIMPLEMENTED();
++ return 0;
++}
++
++Value::Dict SystemMemoryInfoKB::ToDict() const {
++ Value::Dict res;
++ res.Set("total", total);
++ res.Set("free", free);
++ res.Set("available", available);
++ res.Set("buffers", buffers);
++ res.Set("cached", cached);
++ res.Set("active_anon", active_anon);
++ res.Set("inactive_anon", inactive_anon);
++ res.Set("active_file", active_file);
++ res.Set("inactive_file", inactive_file);
++ res.Set("swap_total", swap_total);
++ res.Set("swap_free", swap_free);
++ res.Set("swap_used", swap_total - swap_free);
++ res.Set("dirty", dirty);
++ res.Set("reclaimable", reclaimable);
++
++ NOTIMPLEMENTED();
++
++ return res;
++}
++
++Value::Dict VmStatInfo::ToDict() const {
++ Value::Dict res;
++ res.Set("pswpin", static_cast<int>(pswpin));
++ res.Set("pswpout", static_cast<int>(pswpout));
++ res.Set("pgmajfault", static_cast<int>(pgmajfault));
++
++ NOTIMPLEMENTED();
++
++ return res;
++}
++
++SystemDiskInfo::SystemDiskInfo() {
++ reads = 0;
++ reads_merged = 0;
++ sectors_read = 0;
++ read_time = 0;
++ writes = 0;
++ writes_merged = 0;
++ sectors_written = 0;
++ write_time = 0;
++ io = 0;
++ io_time = 0;
++ weighted_io_time = 0;
++}
++
++SystemDiskInfo::SystemDiskInfo(const SystemDiskInfo&) = default;
++
++SystemDiskInfo& SystemDiskInfo::operator=(const SystemDiskInfo&) = default;
++
++Value::Dict SystemDiskInfo::ToDict() const {
++ Value::Dict res;
++
++ // Write out uint64_t variables as doubles.
++ // Note: this may discard some precision, but for JS there's no other option.
++ res.Set("reads", static_cast<double>(reads));
++ res.Set("reads_merged", static_cast<double>(reads_merged));
++ res.Set("sectors_read", static_cast<double>(sectors_read));
++ res.Set("read_time", static_cast<double>(read_time));
++ res.Set("writes", static_cast<double>(writes));
++ res.Set("writes_merged", static_cast<double>(writes_merged));
++ res.Set("sectors_written", static_cast<double>(sectors_written));
++ res.Set("write_time", static_cast<double>(write_time));
++ res.Set("io", static_cast<double>(io));
++ res.Set("io_time", static_cast<double>(io_time));
++ res.Set("weighted_io_time", static_cast<double>(weighted_io_time));
++
++ NOTIMPLEMENTED();
++
++ return res;
++}
++
+ } // namespace base
diff --git a/chromium/patches/patch-base_process_process__metrics__posix.cc b/chromium/patches/patch-base_process_process__metrics__posix.cc
index 3e52065c28..f1b91f21d6 100644
--- a/chromium/patches/patch-base_process_process__metrics__posix.cc
+++ b/chromium/patches/patch-base_process_process__metrics__posix.cc
@@ -1,21 +1,26 @@
$NetBSD$
---- base/process/process_metrics_posix.cc.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_metrics_posix.cc.orig 2024-07-24 02:44:22.643426000 +0000
+++ base/process/process_metrics_posix.cc
-@@ -20,6 +20,7 @@
+@@ -21,6 +21,8 @@
- #if defined(OS_MACOSX)
+ #if BUILDFLAG(IS_APPLE)
#include <malloc/malloc.h>
-+#elif defined(OS_FREEBSD) || defined(OS_NETBSD)
++#elif BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
++#include <stdlib.h>
#else
#include <malloc.h>
#endif
-@@ -126,7 +127,7 @@ size_t ProcessMetrics::GetMallocUsage()
- #else
- return minfo.hblkhd + minfo.arena;
- #endif
--#elif defined(OS_FUCHSIA)
-+#elif defined(OS_FUCHSIA) || defined(OS_BSD)
+@@ -134,7 +136,7 @@ size_t ProcessMetrics::GetMallocUsage()
+ return stats.size_in_use;
+ #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
+ return GetMallocUsageMallinfo();
+-#elif BUILDFLAG(IS_FUCHSIA)
++#elif BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
// TODO(fuchsia): Not currently exposed. https://crbug.com/735087.
return 0;
#endif
diff --git a/chromium/patches/patch-base_process_process__metrics__unittest.cc b/chromium/patches/patch-base_process_process__metrics__unittest.cc
new file mode 100644
index 0000000000..98f022815f
--- /dev/null
+++ b/chromium/patches/patch-base_process_process__metrics__unittest.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_metrics_unittest.cc.orig 2024-07-24 02:44:22.643426000 +0000
++++ base/process/process_metrics_unittest.cc
+@@ -62,7 +62,8 @@
+
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+ BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_WIN) || \
+- BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_APPLE)
++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_APPLE) || \
++ BUILDFLAG(IS_BSD)
+ #define ENABLE_CPU_TESTS 1
+ #else
+ #define ENABLE_CPU_TESTS 0
diff --git a/chromium/patches/patch-base_process_process__posix.cc b/chromium/patches/patch-base_process_process__posix.cc
new file mode 100644
index 0000000000..dd1c339f1b
--- /dev/null
+++ b/chromium/patches/patch-base_process_process__posix.cc
@@ -0,0 +1,100 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_posix.cc.orig 2024-07-24 02:44:22.643426000 +0000
++++ base/process/process_posix.cc
+@@ -23,10 +23,15 @@
+ #include "base/trace_event/base_tracing.h"
+ #include "build/build_config.h"
+
+-#if BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ #include <sys/event.h>
+ #endif
+
++#if BUILDFLAG(IS_BSD)
++#include <sys/types.h>
++#include <sys/sysctl.h>
++#endif
++
+ #if BUILDFLAG(CLANG_PROFILING)
+ #include "base/test/clang_profiling.h"
+ #endif
+@@ -99,7 +104,7 @@ bool WaitpidWithTimeout(base::ProcessHan
+ }
+ #endif
+
+-#if BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ // Using kqueue on Mac so that we can wait on non-child processes.
+ // We can't use kqueues on child processes because we need to reap
+ // our own children using wait.
+@@ -376,7 +381,7 @@ bool Process::WaitForExitWithTimeoutImpl
+ const bool exited = (parent_pid < 0);
+
+ if (!exited && parent_pid != our_pid) {
+-#if BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ // On Mac we can wait on non child processes.
+ return WaitForSingleNonChildProcess(handle, timeout);
+ #else
+@@ -413,7 +418,56 @@ void Process::Exited(int exit_code) cons
+
+ int Process::GetOSPriority() const {
+ DCHECK(IsValid());
++// avoid pledge(2) violation
++#if BUILDFLAG(IS_BSD)
++ return 0;
++#else
+ return getpriority(PRIO_PROCESS, static_cast<id_t>(process_));
++#endif
++}
++
++Time Process::CreationTime() const {
++// avoid ps pledge in the network process
++#if !BUILDFLAG(IS_BSD)
++ int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(),
++ sizeof(struct kinfo_proc), 0 };
++ struct kinfo_proc *info = nullptr;
++ size_t info_size;
++#endif
++ Time ct = Time();
++
++#if !BUILDFLAG(IS_BSD)
++ if (sysctl(mib, std::size(mib), NULL, &info_size, NULL, 0) < 0)
++ goto out;
++
++ mib[5] = (info_size / sizeof(struct kinfo_proc));
++ if ((info = reinterpret_cast<kinfo_proc*>(malloc(info_size))) == NULL)
++ goto out;
++
++ if (sysctl(mib, std::size(mib), info, &info_size, NULL, 0) < 0)
++ goto out;
++
++ ct = Time::FromTimeT(info->p_ustart_sec);
++
++out:
++ if (info)
++ free(info);
++#endif
++ return ct;
++}
++
++#if BUILDFLAG(IS_BSD)
++Process::Priority Process::GetPriority() const {
++ return Priority::kUserBlocking;
+ }
+
++bool Process::SetPriority(Priority priority) {
++ return false;
++}
++
++bool Process::CanSetPriority() {
++ return false;
++}
++#endif
++
+ } // namespace base
diff --git a/chromium/patches/patch-base_process_process__unittest.cc b/chromium/patches/patch-base_process_process__unittest.cc
index 6615ee5ba3..677d7b420e 100644
--- a/chromium/patches/patch-base_process_process__unittest.cc
+++ b/chromium/patches/patch-base_process_process__unittest.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- base/process/process_unittest.cc.orig 2020-07-08 21:40:31.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_unittest.cc.orig 2024-07-24 02:44:22.643426000 +0000
+++ base/process/process_unittest.cc
-@@ -148,7 +148,7 @@ TEST_F(ProcessTest, CreationTimeOtherPro
+@@ -199,7 +199,7 @@ TEST_F(ProcessTest, CreationTimeOtherPro
// was spawned and a time recorded after it was spawned. However, since the
// base::Time and process creation clocks don't match, tolerate some error.
constexpr base::TimeDelta kTolerance =
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// On Linux, process creation time is relative to boot time which has a
// 1-second resolution. Tolerate 1 second for the imprecise boot time and
// 100 ms for the imprecise clock.
diff --git a/chromium/patches/patch-base_process_process__util__unittest.cc b/chromium/patches/patch-base_process_process__util__unittest.cc
deleted file mode 100644
index d49114b4e1..0000000000
--- a/chromium/patches/patch-base_process_process__util__unittest.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- base/process/process_util_unittest.cc.orig 2020-07-08 21:41:45.000000000 +0000
-+++ base/process/process_util_unittest.cc
-@@ -1307,7 +1307,7 @@ std::string TestLaunchProcess(const Comm
- options.fds_to_remap.emplace_back(fds[1], STDOUT_FILENO);
- #endif // defined(OS_WIN)
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- options.clone_flags = clone_flags;
- #else
- CHECK_EQ(0, clone_flags);
-@@ -1377,7 +1377,7 @@ TEST_F(ProcessUtilTest, LaunchProcess) {
- EXPECT_EQ("wibble", TestLaunchProcess(kPrintEnvCommand, env_changes,
- no_clear_environ, no_clone_flags));
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // Test a non-trival value for clone_flags.
- EXPECT_EQ("wibble", TestLaunchProcess(kPrintEnvCommand, env_changes,
- no_clear_environ, CLONE_FS));
-@@ -1391,7 +1391,7 @@ TEST_F(ProcessUtilTest, LaunchProcess) {
- true /* clear_environ */, no_clone_flags));
- }
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- MULTIPROCESS_TEST_MAIN(CheckPidProcess) {
- const pid_t kInitPid = 1;
- const pid_t pid = syscall(__NR_getpid);
diff --git a/chromium/patches/patch-base_profiler_module__cache.cc b/chromium/patches/patch-base_profiler_module__cache.cc
new file mode 100644
index 0000000000..7b537a1e60
--- /dev/null
+++ b/chromium/patches/patch-base_profiler_module__cache.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/profiler/module_cache.cc.orig 2024-07-24 02:44:22.647426400 +0000
++++ base/profiler/module_cache.cc
+@@ -38,7 +38,7 @@ std::string TransformModuleIDToSymbolSer
+ // Android and Linux Chrome builds use the "breakpad" format to index their
+ // build id, so we transform the build id for these platforms. All other
+ // platforms keep their symbols indexed by the original build ID.
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Linux ELF module IDs are 160bit integers, which we need to mangle
+ // down to 128bit integers to match the id that Breakpad outputs.
+ // Example on version '66.0.3359.170' x64:
diff --git a/chromium/patches/patch-base_profiler_register__context.h b/chromium/patches/patch-base_profiler_register__context.h
deleted file mode 100644
index be77ab19f9..0000000000
--- a/chromium/patches/patch-base_profiler_register__context.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- base/profiler/register_context.h.orig 2020-07-08 21:41:45.000000000 +0000
-+++ base/profiler/register_context.h
-@@ -17,7 +17,7 @@
- #include <windows.h>
- #elif defined(OS_MACOSX)
- #include <mach/machine/thread_status.h>
--#elif defined(OS_ANDROID) || defined(OS_LINUX)
-+#elif defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD)
- #include <sys/ucontext.h>
- #endif
-
diff --git a/chromium/patches/patch-base_profiler_sampling__profiler__thread__token.cc b/chromium/patches/patch-base_profiler_sampling__profiler__thread__token.cc
index 3a3fa9ea6d..ada78ce5f7 100644
--- a/chromium/patches/patch-base_profiler_sampling__profiler__thread__token.cc
+++ b/chromium/patches/patch-base_profiler_sampling__profiler__thread__token.cc
@@ -1,13 +1,26 @@
$NetBSD$
---- base/profiler/sampling_profiler_thread_token.cc.orig 2020-07-08 21:40:31.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/profiler/sampling_profiler_thread_token.cc.orig 2024-07-24 02:44:22.651426800 +0000
+++ base/profiler/sampling_profiler_thread_token.cc
-@@ -7,7 +7,7 @@
- namespace base {
+@@ -6,7 +6,7 @@
+
+ #include "build/build_config.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include <pthread.h>
- SamplingProfilerThreadToken GetSamplingProfilerCurrentThreadToken() {
--#if defined(OS_ANDROID) || defined(OS_LINUX)
-+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD)
- return {PlatformThread::CurrentId(), pthread_self()};
- #else
- return {PlatformThread::CurrentId()};
+ #include "base/profiler/stack_base_address_posix.h"
+@@ -18,7 +18,7 @@ SamplingProfilerThreadToken GetSamplingP
+ PlatformThreadId id = PlatformThread::CurrentId();
+ #if BUILDFLAG(IS_ANDROID)
+ return {id, pthread_self()};
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ std::optional<uintptr_t> maybe_stack_base =
+ GetThreadStackBaseAddress(id, pthread_self());
+ return {id, maybe_stack_base};
diff --git a/chromium/patches/patch-base_profiler_sampling__profiler__thread__token.h b/chromium/patches/patch-base_profiler_sampling__profiler__thread__token.h
index 638939b3b4..91d5a60f42 100644
--- a/chromium/patches/patch-base_profiler_sampling__profiler__thread__token.h
+++ b/chromium/patches/patch-base_profiler_sampling__profiler__thread__token.h
@@ -1,22 +1,26 @@
$NetBSD$
---- base/profiler/sampling_profiler_thread_token.h.orig 2020-07-08 21:40:31.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/profiler/sampling_profiler_thread_token.h.orig 2024-07-24 02:44:22.651426800 +0000
+++ base/profiler/sampling_profiler_thread_token.h
-@@ -9,7 +9,7 @@
- #include "base/threading/platform_thread.h"
- #include "build/build_config.h"
+@@ -13,7 +13,7 @@
--#if defined(OS_ANDROID) || defined(OS_LINUX)
-+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_ANDROID)
#include <pthread.h>
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include <stdint.h>
#endif
-@@ -21,7 +21,7 @@ namespace base {
- // functions used to obtain the stack base address.
- struct SamplingProfilerThreadToken {
+@@ -27,7 +27,7 @@ struct SamplingProfilerThreadToken {
PlatformThreadId id;
--#if defined(OS_ANDROID) || defined(OS_LINUX)
-+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_ANDROID)
pthread_t pthread_id;
- #endif
- };
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Due to the sandbox, we can only retrieve the stack base address for the
+ // current thread. We must grab it during
+ // GetSamplingProfilerCurrentThreadToken() and not try to get it later.
diff --git a/chromium/patches/patch-base_profiler_stack__base__address__posix.cc b/chromium/patches/patch-base_profiler_stack__base__address__posix.cc
new file mode 100644
index 0000000000..2f2f89a1f5
--- /dev/null
+++ b/chromium/patches/patch-base_profiler_stack__base__address__posix.cc
@@ -0,0 +1,69 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/profiler/stack_base_address_posix.cc.orig 2024-07-24 02:44:22.651426800 +0000
++++ base/profiler/stack_base_address_posix.cc
+@@ -17,6 +17,14 @@
+ #include "base/files/scoped_file.h"
+ #endif
+
++#if BUILDFLAG(IS_BSD)
++#if BUILDFLAG(IS_NETBSD)
++#include <pthread.h>
++#else
++#include <pthread_np.h>
++#endif
++#endif
++
+ #if BUILDFLAG(IS_CHROMEOS)
+ extern "C" void* __libc_stack_end;
+ #endif
+@@ -45,7 +53,21 @@ std::optional<uintptr_t> GetAndroidMainT
+
+ #if !BUILDFLAG(IS_LINUX)
+ uintptr_t GetThreadStackBaseAddressImpl(pthread_t pthread_id) {
++#if BUILDFLAG(IS_OPENBSD)
++ stack_t ss;
++ void *address;
++ size_t size;
++ if (pthread_stackseg_np(pthread_id, &ss) != 0)
++ return 0;
++ size = ss.ss_size;
++ address = (void*)((size_t) ss.ss_sp - ss.ss_size);
++#else
+ pthread_attr_t attr;
++#if BUILDFLAG(IS_FREEBSD)
++ int result;
++ pthread_attr_init(&attr);
++ pthread_attr_get_np(pthread_id, &attr);
++#else
+ // pthread_getattr_np will crash on ChromeOS & Linux if we are in the sandbox
+ // and pthread_id refers to a different thread, due to the use of
+ // sched_getaffinity().
+@@ -58,12 +80,14 @@ uintptr_t GetThreadStackBaseAddressImpl(
+ << logging::SystemErrorCodeToString(result);
+ // See crbug.com/617730 for limitations of this approach on Linux-like
+ // systems.
++#endif
+ void* address;
+ size_t size;
+ result = pthread_attr_getstack(&attr, &address, &size);
+ CHECK_EQ(result, 0) << "pthread_attr_getstack returned "
+ << logging::SystemErrorCodeToString(result);
+ pthread_attr_destroy(&attr);
++#endif
+ const uintptr_t base_address = reinterpret_cast<uintptr_t>(address) + size;
+ return base_address;
+ }
+@@ -80,7 +104,7 @@ std::optional<uintptr_t> GetThreadStackB
+ // trying to work around the problem.
+ return std::nullopt;
+ #else
+- const bool is_main_thread = id == GetCurrentProcId();
++ const bool is_main_thread = id == checked_cast<PlatformThreadId>(GetCurrentProcId());
+ if (is_main_thread) {
+ #if BUILDFLAG(IS_ANDROID)
+ // The implementation of pthread_getattr_np() in Bionic reads proc/self/maps
diff --git a/chromium/patches/patch-base_profiler_stack__copier__signal.cc b/chromium/patches/patch-base_profiler_stack__copier__signal.cc
deleted file mode 100644
index e1b4e4d75f..0000000000
--- a/chromium/patches/patch-base_profiler_stack__copier__signal.cc
+++ /dev/null
@@ -1,20 +0,0 @@
-$NetBSD$
-
---- base/profiler/stack_copier_signal.cc.orig 2020-07-15 18:55:48.000000000 +0000
-+++ base/profiler/stack_copier_signal.cc
-@@ -4,10 +4,14 @@
-
- #include "base/profiler/stack_copier_signal.h"
-
-+#if defined(OS_NETBSD)
-+#include <sys/futex.h>
-+#else
- #include <linux/futex.h>
-+#include <syscall.h>
-+#endif
- #include <signal.h>
- #include <sys/ucontext.h>
--#include <syscall.h>
-
- #include <atomic>
-
diff --git a/chromium/patches/patch-base_profiler_stack__sampling__profiler__test__util.cc b/chromium/patches/patch-base_profiler_stack__sampling__profiler__test__util.cc
new file mode 100644
index 0000000000..ab7277e843
--- /dev/null
+++ b/chromium/patches/patch-base_profiler_stack__sampling__profiler__test__util.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/profiler/stack_sampling_profiler_test_util.cc.orig 2024-07-24 02:44:22.651426800 +0000
++++ base/profiler/stack_sampling_profiler_test_util.cc
+@@ -42,7 +42,7 @@
+ // Fortunately, it provides _alloca, which functions identically.
+ #include <malloc.h>
+ #define alloca _alloca
+-#else
++#elif !BUILDFLAG(IS_BSD)
+ #include <alloca.h>
+ #endif
+
diff --git a/chromium/patches/patch-base_profiler_stack__sampling__profiler__unittest.cc b/chromium/patches/patch-base_profiler_stack__sampling__profiler__unittest.cc
index af6ab64c28..1c8ea6f544 100644
--- a/chromium/patches/patch-base_profiler_stack__sampling__profiler__unittest.cc
+++ b/chromium/patches/patch-base_profiler_stack__sampling__profiler__unittest.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- base/profiler/stack_sampling_profiler_unittest.cc.orig 2020-07-08 21:41:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/profiler/stack_sampling_profiler_unittest.cc.orig 2024-07-24 02:44:22.651426800 +0000
+++ base/profiler/stack_sampling_profiler_unittest.cc
-@@ -41,7 +41,7 @@
+@@ -43,7 +43,7 @@
+
#include <intrin.h>
#include <malloc.h>
- #include <windows.h>
-#else
-+#elif defined(OS_LINUX)
++#elif !BUILDFLAG(IS_BSD)
#include <alloca.h>
#endif
diff --git a/chromium/patches/patch-base_profiler_thread__delegate__posix.cc b/chromium/patches/patch-base_profiler_thread__delegate__posix.cc
new file mode 100644
index 0000000000..c556b52776
--- /dev/null
+++ b/chromium/patches/patch-base_profiler_thread__delegate__posix.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/profiler/thread_delegate_posix.cc.orig 2024-07-24 02:44:22.655427200 +0000
++++ base/profiler/thread_delegate_posix.cc
+@@ -19,7 +19,7 @@
+ #include "base/process/process_handle.h"
+ #include "build/build_config.h"
+
+-#if !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
++#if !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD))
+ #include "base/profiler/stack_base_address_posix.h"
+ #endif
+
+@@ -28,7 +28,7 @@ namespace base {
+ std::unique_ptr<ThreadDelegatePosix> ThreadDelegatePosix::Create(
+ SamplingProfilerThreadToken thread_token) {
+ std::optional<uintptr_t> base_address;
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ base_address = thread_token.stack_base_address;
+ #else
+ base_address =
diff --git a/chromium/patches/patch-base_rand__util.h b/chromium/patches/patch-base_rand__util.h
new file mode 100644
index 0000000000..9be28be4ae
--- /dev/null
+++ b/chromium/patches/patch-base_rand__util.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/rand_util.h.orig 2024-07-24 02:44:22.655427200 +0000
++++ base/rand_util.h
+@@ -147,7 +147,7 @@ void RandomShuffle(Itr first, Itr last)
+ std::shuffle(first, last, RandomBitGenerator());
+ }
+
+-#if BUILDFLAG(IS_POSIX)
++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_BSD)
+ BASE_EXPORT int GetUrandomFD();
+ #endif
+
diff --git a/chromium/patches/patch-base_rand__util__posix.cc b/chromium/patches/patch-base_rand__util__posix.cc
new file mode 100644
index 0000000000..780be1f371
--- /dev/null
+++ b/chromium/patches/patch-base_rand__util__posix.cc
@@ -0,0 +1,68 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/rand_util_posix.cc.orig 2024-07-24 02:44:22.655427200 +0000
++++ base/rand_util_posix.cc
+@@ -28,7 +28,7 @@
+ #include "base/time/time.h"
+ #include "build/build_config.h"
+
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_NACL)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_BSD)
+ #include "third_party/lss/linux_syscall_support.h"
+ #elif BUILDFLAG(IS_MAC)
+ // TODO(crbug.com/40641285): Waiting for this header to appear in the iOS SDK.
+@@ -45,6 +45,7 @@ namespace base {
+
+ namespace {
+
++#if !BUILDFLAG(IS_BSD)
+ #if BUILDFLAG(IS_AIX)
+ // AIX has no 64-bit support for O_CLOEXEC.
+ static constexpr int kOpenFlags = O_RDONLY;
+@@ -69,10 +70,11 @@ class URandomFd {
+ private:
+ const int fd_;
+ };
++#endif
+
+ #if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+ BUILDFLAG(IS_ANDROID)) && \
+- !BUILDFLAG(IS_NACL)
++ !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_BSD)
+ // TODO(pasko): Unify reading kernel version numbers in:
+ // mojo/core/channel_linux.cc
+ // chrome/browser/android/seccomp_support_detector.cc
+@@ -182,6 +184,7 @@ bool UseBoringSSLForRandBytes() {
+ namespace {
+
+ void RandBytesInternal(span<uint8_t> output, bool avoid_allocation) {
++#if !BUILDFLAG(IS_BSD)
+ #if !BUILDFLAG(IS_NACL)
+ // The BoringSSL experiment takes priority over everything else.
+ if (!avoid_allocation && internal::UseBoringSSLForRandBytes()) {
+@@ -220,6 +223,9 @@ void RandBytesInternal(span<uint8_t> out
+ const int urandom_fd = GetUrandomFD();
+ const bool success = ReadFromFD(urandom_fd, as_writable_chars(output));
+ CHECK(success);
++#else
++ arc4random_buf(output.data(), output.size());
++#endif
+ }
+
+ } // namespace
+@@ -239,9 +245,11 @@ void RandBytes(span<uint8_t> output) {
+ RandBytesInternal(output, /*avoid_allocation=*/false);
+ }
+
++#if !BUILDFLAG(IS_BSD)
+ int GetUrandomFD() {
+ static NoDestructor<URandomFd> urandom_fd;
+ return urandom_fd->fd();
+ }
++#endif
+
+ } // namespace base
diff --git a/chromium/patches/patch-base_sampling__heap__profiler_sampling__heap__profiler.cc b/chromium/patches/patch-base_sampling__heap__profiler_sampling__heap__profiler.cc
deleted file mode 100644
index e21acc0946..0000000000
--- a/chromium/patches/patch-base_sampling__heap__profiler_sampling__heap__profiler.cc
+++ /dev/null
@@ -1,28 +0,0 @@
-$NetBSD$
-
---- base/sampling_heap_profiler/sampling_heap_profiler.cc.orig 2020-07-08 21:41:45.000000000 +0000
-+++ base/sampling_heap_profiler/sampling_heap_profiler.cc
-@@ -21,7 +21,7 @@
- #include "base/trace_event/heap_profiler_allocation_context_tracker.h"
- #include "build/build_config.h"
-
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_BSD)
- #include <pthread.h>
- #endif
-
-@@ -61,6 +61,14 @@ const char* GetAndLeakThreadName() {
- int err = prctl(PR_GET_NAME, name);
- if (!err)
- return strdup(name);
-+#elif defined(OS_FREEBSD)
-+ pthread_get_name_np(pthread_self(), name, kBufferLen);
-+ if (*name != '\0')
-+ return strdup(name);
-+#elif defined(OS_NETBSD)
-+ pthread_getname_np(pthread_self(), name, kBufferLen);
-+ if (*name != '\0')
-+ return strdup(name);
- #elif defined(OS_MACOSX)
- int err = pthread_getname_np(pthread_self(), name, kBufferLen);
- if (err == 0 && *name != '\0')
diff --git a/chromium/patches/patch-base_security__unittest.cc b/chromium/patches/patch-base_security__unittest.cc
deleted file mode 100644
index c3cbbf3539..0000000000
--- a/chromium/patches/patch-base_security__unittest.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- base/security_unittest.cc.orig 2020-07-08 21:40:31.000000000 +0000
-+++ base/security_unittest.cc
-@@ -59,7 +59,7 @@ NOINLINE Type HideValueFromCompiler(vola
- // FAILS_ is too clunky.
- void OverflowTestsSoftExpectTrue(bool overflow_detected) {
- if (!overflow_detected) {
--#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_MACOSX)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX)
- // Sadly, on Linux, Android, and OSX we don't have a good story yet. Don't
- // fail the test, but report.
- printf("Platform has overflow: %s\n",
diff --git a/chromium/patches/patch-base_strings_safe__sprintf__unittest.cc b/chromium/patches/patch-base_strings_safe__sprintf__unittest.cc
new file mode 100644
index 0000000000..ea64ff6711
--- /dev/null
+++ b/chromium/patches/patch-base_strings_safe__sprintf__unittest.cc
@@ -0,0 +1,24 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/strings/safe_sprintf_unittest.cc.orig 2024-07-24 02:44:22.663427800 +0000
++++ base/strings/safe_sprintf_unittest.cc
+@@ -740,6 +740,7 @@ TEST(SafeSPrintfTest, EmbeddedNul) {
+ #endif
+ }
+
++#if !BUILDFLAG(IS_BSD)
+ TEST(SafeSPrintfTest, EmitNULL) {
+ char buf[40];
+ #if defined(__GNUC__)
+@@ -756,6 +757,7 @@ TEST(SafeSPrintfTest, EmitNULL) {
+ #pragma GCC diagnostic pop
+ #endif
+ }
++#endif
+
+ TEST(SafeSPrintfTest, PointerSize) {
+ // The internal data representation is a 64bit value, independent of the
diff --git a/chromium/patches/patch-base_synchronization_lock__impl.h b/chromium/patches/patch-base_synchronization_lock__impl.h
index f7ca07e042..5bdf90a9a5 100644
--- a/chromium/patches/patch-base_synchronization_lock__impl.h
+++ b/chromium/patches/patch-base_synchronization_lock__impl.h
@@ -1,17 +1,29 @@
$NetBSD$
---- base/synchronization/lock_impl.h.orig 2020-07-08 21:40:31.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/synchronization/lock_impl.h.orig 2024-07-24 02:44:22.675429000 +0000
+++ base/synchronization/lock_impl.h
-@@ -69,9 +69,12 @@ void LockImpl::Unlock() {
- ::ReleaseSRWLockExclusive(reinterpret_cast<PSRWLOCK>(&native_handle_));
+@@ -106,6 +106,10 @@ void LockImpl::Unlock() {
}
- #elif defined(OS_POSIX) || defined(OS_FUCHSIA)
-+//#pragma GCC diagnostic push
-+//#pragma GCC diagnostic ignored "-Wthread-safety-analysis"
- void LockImpl::Unlock() {
- int rv = pthread_mutex_unlock(&native_handle_);
- DCHECK_EQ(rv, 0) << ". " << strerror(rv);
-+//#pragma GCC diagnostic pop
+
+ #elif BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_FREEBSD)
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wthread-safety-analysis"
++#endif
+
+ #if DCHECK_IS_ON()
+ BASE_EXPORT void dcheck_trylock_result(int rv);
+@@ -126,6 +130,9 @@ void LockImpl::Unlock() {
+ dcheck_unlock_result(rv);
+ #endif
}
++#if BUILDFLAG(IS_FREEBSD)
++#pragma GCC diagnostic pop
++#endif
#endif
+ // This is an implementation used for AutoLock templated on the lock type.
diff --git a/chromium/patches/patch-base_syslog__logging.cc b/chromium/patches/patch-base_syslog__logging.cc
index e4f950d487..7c64a122c7 100644
--- a/chromium/patches/patch-base_syslog__logging.cc
+++ b/chromium/patches/patch-base_syslog__logging.cc
@@ -1,22 +1,26 @@
$NetBSD$
---- base/syslog_logging.cc.orig 2020-07-08 21:40:31.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/syslog_logging.cc.orig 2024-07-24 02:44:22.675429000 +0000
+++ base/syslog_logging.cc
-@@ -14,7 +14,7 @@
- #include "base/debug/stack_trace.h"
+@@ -17,7 +17,7 @@
#include "base/strings/string_util.h"
+ #include "base/win/scoped_handle.h"
#include "base/win/win_util.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// <syslog.h> defines LOG_INFO, LOG_WARNING macros that could conflict with
// base::LOG_INFO, base::LOG_WARNING.
#include <syslog.h>
-@@ -113,7 +113,7 @@ EventLogMessage::~EventLogMessage() {
+@@ -149,7 +149,7 @@ EventLogMessage::~EventLogMessage() {
if (user_sid != nullptr)
::LocalFree(user_sid);
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
const char kEventSource[] = "chrome";
openlog(kEventSource, LOG_NOWAIT | LOG_PID, LOG_USER);
// We can't use the defined names for the logging severity from syslog.h
diff --git a/chromium/patches/patch-base_system_sys__info.cc b/chromium/patches/patch-base_system_sys__info.cc
index 8ccc646f35..09a34a959d 100644
--- a/chromium/patches/patch-base_system_sys__info.cc
+++ b/chromium/patches/patch-base_system_sys__info.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- base/system/sys_info.cc.orig 2020-07-08 21:40:31.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/system/sys_info.cc.orig 2024-07-24 02:44:22.675429000 +0000
+++ base/system/sys_info.cc
-@@ -102,7 +102,7 @@ void SysInfo::GetHardwareInfo(base::Once
- #elif defined(OS_ANDROID) || defined(OS_MACOSX)
- base::ThreadPool::PostTaskAndReplyWithResult(
- FROM_HERE, {}, base::BindOnce(&GetHardwareInfoSync), std::move(callback));
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- base::ThreadPool::PostTaskAndReplyWithResult(
- FROM_HERE, {base::MayBlock()}, base::BindOnce(&GetHardwareInfoSync),
- std::move(callback));
+@@ -225,7 +225,7 @@ std::string SysInfo::HardwareModelName()
+ #endif
+
+ void SysInfo::GetHardwareInfo(base::OnceCallback<void(HardwareInfo)> callback) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ constexpr base::TaskTraits kTraits = {base::MayBlock()};
+ #else
+ constexpr base::TaskTraits kTraits = {};
diff --git a/chromium/patches/patch-base_system_sys__info.h b/chromium/patches/patch-base_system_sys__info.h
index cfeba9aec4..51dec926cc 100644
--- a/chromium/patches/patch-base_system_sys__info.h
+++ b/chromium/patches/patch-base_system_sys__info.h
@@ -1,22 +1,26 @@
$NetBSD$
---- base/system/sys_info.h.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/system/sys_info.h.orig 2024-07-24 02:44:22.675429000 +0000
+++ base/system/sys_info.h
-@@ -201,6 +201,8 @@ class BASE_EXPORT SysInfo {
- // On Desktop this returns true when memory <= 512MB.
- static bool IsLowEndDevice();
+@@ -325,6 +325,8 @@ class BASE_EXPORT SysInfo {
+ static void ResetCpuSecurityMitigationsEnabledForTesting();
+ #endif
+ static uint64_t MaxSharedMemorySize();
+
private:
+ friend class test::ScopedAmountOfPhysicalMemoryOverride;
FRIEND_TEST_ALL_PREFIXES(SysInfoTest, AmountOfAvailablePhysicalMemory);
- FRIEND_TEST_ALL_PREFIXES(debug::SystemMetricsTest, ParseMeminfo);
-@@ -210,7 +212,7 @@ class BASE_EXPORT SysInfo {
- static bool IsLowEndDeviceImpl();
+@@ -337,7 +339,7 @@ class BASE_EXPORT SysInfo {
static HardwareInfo GetHardwareInfoSync();
--#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_AIX)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_AIX) || defined(OS_BSD)
- static int64_t AmountOfAvailablePhysicalMemory(
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+- BUILDFLAG(IS_AIX)
++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD)
+ static uint64_t AmountOfAvailablePhysicalMemory(
const SystemMemoryInfoKB& meminfo);
#endif
diff --git a/chromium/patches/patch-base_system_sys__info__freebsd.cc b/chromium/patches/patch-base_system_sys__info__freebsd.cc
new file mode 100644
index 0000000000..3cb8ef1d2d
--- /dev/null
+++ b/chromium/patches/patch-base_system_sys__info__freebsd.cc
@@ -0,0 +1,121 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/system/sys_info_freebsd.cc.orig 2024-07-24 02:44:22.679429500 +0000
++++ base/system/sys_info_freebsd.cc
+@@ -9,30 +9,106 @@
+ #include <sys/sysctl.h>
+
+ #include "base/notreached.h"
++#include "base/process/process_metrics.h"
++#include "base/strings/string_util.h"
+
+ namespace base {
+
+-int64_t SysInfo::AmountOfPhysicalMemoryImpl() {
+- int pages, page_size;
++int SysInfo::NumberOfProcessors() {
++ int mib[] = {CTL_HW, HW_NCPU};
++ int ncpu;
++ size_t size = sizeof(ncpu);
++ if (sysctl(mib, std::size(mib), &ncpu, &size, NULL, 0) < 0) {
++ NOTREACHED();
++ return 1;
++ }
++ return ncpu;
++}
++
++uint64_t SysInfo::AmountOfPhysicalMemoryImpl() {
++ int pages, page_size, r = 0;
+ size_t size = sizeof(pages);
+- sysctlbyname("vm.stats.vm.v_page_count", &pages, &size, NULL, 0);
+- sysctlbyname("vm.stats.vm.v_page_size", &page_size, &size, NULL, 0);
+- if (pages == -1 || page_size == -1) {
++
++ if (r == 0)
++ r = sysctlbyname("vm.stats.vm.v_page_count", &pages, &size, NULL, 0);
++ if (r == 0)
++ r = sysctlbyname("vm.stats.vm.v_page_size", &page_size, &size, NULL, 0);
++
++ if (r == -1) {
+ NOTREACHED_IN_MIGRATION();
+ return 0;
+ }
+- return static_cast<int64_t>(pages) * page_size;
++
++ return static_cast<uint64_t>(pages) * page_size;
++}
++
++uint64_t SysInfo::AmountOfAvailablePhysicalMemoryImpl() {
++ int page_size, r = 0;
++ unsigned int pgfree, pginact, pgcache;
++ size_t size = sizeof(page_size);
++ size_t szpg = sizeof(pgfree);
++
++ if (r == 0)
++ r = sysctlbyname("vm.stats.vm.v_page_size", &page_size, &size, NULL, 0);
++ if (r == 0)
++ r = sysctlbyname("vm.stats.vm.v_free_count", &pgfree, &szpg, NULL, 0);
++ if (r == 0)
++ r = sysctlbyname("vm.stats.vm.v_inactive_count", &pginact, &szpg, NULL, 0);
++ if (r == 0)
++ r = sysctlbyname("vm.stats.vm.v_cache_count", &pgcache, &szpg, NULL, 0);
++
++ if (r == -1) {
++ NOTREACHED();
++ return 0;
++ }
++
++ return static_cast<uint64_t>((pgfree + pginact + pgcache) * page_size);
++}
++
++// static
++uint64_t SysInfo::AmountOfAvailablePhysicalMemory(const SystemMemoryInfoKB& info) {
++ uint64_t res_kb = info.available != 0
++ ? info.available - info.active_file
++ : info.free + info.reclaimable + info.inactive_file;
++ return res_kb * 1024;
++}
++
++// static
++std::string SysInfo::CPUModelName() {
++ int mib[] = { CTL_HW, HW_MODEL };
++ char name[256];
++ size_t size = std::size(name);
++
++ if (sysctl(mib, std::size(mib), &name, &size, NULL, 0) == 0) {
++ return name;
++ }
++
++ return std::string();
+ }
+
+ // static
+ uint64_t SysInfo::MaxSharedMemorySize() {
+ size_t limit;
+ size_t size = sizeof(limit);
++
+ if (sysctlbyname("kern.ipc.shmmax", &limit, &size, NULL, 0) < 0) {
+ NOTREACHED_IN_MIGRATION();
+ return 0;
+ }
++
+ return static_cast<uint64_t>(limit);
+ }
+
++SysInfo::HardwareInfo SysInfo::GetHardwareInfoSync() {
++ HardwareInfo info;
++
++ info.manufacturer = "FreeBSD";
++ info.model = HardwareModelName();
++
++ DCHECK(IsStringUTF8(info.manufacturer));
++ DCHECK(IsStringUTF8(info.model));
++
++ return info;
++}
++
+ } // namespace base
diff --git a/chromium/patches/patch-base_system_sys__info__netbsd.cc b/chromium/patches/patch-base_system_sys__info__netbsd.cc
index f68b9388eb..7bb01b12f5 100644
--- a/chromium/patches/patch-base_system_sys__info__netbsd.cc
+++ b/chromium/patches/patch-base_system_sys__info__netbsd.cc
@@ -1,9 +1,13 @@
$NetBSD$
---- base/system/sys_info_netbsd.cc.orig 2020-07-09 13:28:11.909266556 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/system/sys_info_netbsd.cc.orig 2024-08-01 14:08:56.682947401 +0000
+++ base/system/sys_info_netbsd.cc
-@@ -0,0 +1,78 @@
-+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+@@ -0,0 +1,91 @@
++// Copyright 2011 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
@@ -16,18 +20,17 @@ $NetBSD$
+#include <sys/sysctl.h>
+
+#include "base/notreached.h"
-+#include "base/stl_util.h"
++#include "base/posix/sysctl.h"
++#include "base/strings/string_util.h"
+
+namespace {
+
-+int64_t AmountOfMemory(int pages_name) {
++uint64_t AmountOfMemory(int pages_name) {
+ long pages = sysconf(pages_name);
+ long page_size = sysconf(_SC_PAGESIZE);
-+ if (pages == -1 || page_size == -1) {
-+ NOTREACHED();
++ if (pages < 0 || page_size < 0)
+ return 0;
-+ }
-+ return static_cast<int64_t>(pages) * page_size;
++ return static_cast<uint64_t>(pages) * static_cast<uint64_t>(page_size);
+}
+
+} // namespace
@@ -39,20 +42,20 @@ $NetBSD$
+ int mib[] = {CTL_HW, HW_NCPU};
+ int ncpu;
+ size_t size = sizeof(ncpu);
-+ if (sysctl(mib, base::size(mib), &ncpu, &size, NULL, 0) < 0) {
-+ NOTREACHED();
++ if (sysctl(mib, std::size(mib), &ncpu, &size, NULL, 0) < 0) {
++ NOTREACHED_IN_MIGRATION();
+ return 1;
+ }
+ return ncpu;
+}
+
+// static
-+int64_t SysInfo::AmountOfPhysicalMemoryImpl() {
++uint64_t SysInfo::AmountOfPhysicalMemoryImpl() {
+ return AmountOfMemory(_SC_PHYS_PAGES);
+}
+
+// static
-+int64_t SysInfo::AmountOfAvailablePhysicalMemoryImpl() {
++uint64_t SysInfo::AmountOfAvailablePhysicalMemoryImpl() {
+ return AmountOfMemory(_SC_PHYS_PAGES);
+}
+
@@ -61,8 +64,9 @@ $NetBSD$
+ int mib[] = {CTL_KERN, KERN_SYSVIPC, KERN_SYSVIPC_SHMMAX};
+ size_t limit;
+ size_t size = sizeof(limit);
-+ if (sysctl(mib, base::size(mib), &limit, &size, NULL, 0) < 0) {
-+ NOTREACHED();
++ // pledge(2)
++ if (sysctl(mib, std::size(mib), &limit, &size, NULL, 0) < 0) {
++ NOTREACHED_IN_MIGRATION();
+ return 0;
+ }
+ return static_cast<uint64_t>(limit);
@@ -70,14 +74,27 @@ $NetBSD$
+
+// static
+std::string SysInfo::CPUModelName() {
-+ int mib[] = {CTL_HW, HW_MODEL};
++ int mib[] = { CTL_HW, HW_MODEL };
+ char name[256];
-+ size_t len = base::size(name);
-+ if (sysctl(mib, base::size(mib), name, &len, NULL, 0) < 0) {
-+ NOTREACHED();
-+ return std::string();
++ size_t size = std::size(name);
++
++ if (sysctl(mib, std::size(mib), &name, &size, NULL, 0) == 0) {
++ return name;
+ }
-+ return name;
++
++ return std::string();
++}
++
++// static
++SysInfo::HardwareInfo SysInfo::GetHardwareInfoSync() {
++ HardwareInfo info;
++ // Set the manufacturer to "NetBSD" and the model to
++ // an empty string.
++ info.manufacturer = "NetBSD";
++ info.model = HardwareModelName();
++ DCHECK(IsStringUTF8(info.manufacturer));
++ DCHECK(IsStringUTF8(info.model));
++ return info;
+}
+
+} // namespace base
diff --git a/chromium/patches/patch-base_system_sys__info__openbsd.cc b/chromium/patches/patch-base_system_sys__info__openbsd.cc
new file mode 100644
index 0000000000..bed8feecf7
--- /dev/null
+++ b/chromium/patches/patch-base_system_sys__info__openbsd.cc
@@ -0,0 +1,97 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/system/sys_info_openbsd.cc.orig 2024-07-24 02:44:22.679429500 +0000
++++ base/system/sys_info_openbsd.cc
+@@ -3,7 +3,6 @@
+ // found in the LICENSE file.
+
+ #include "base/system/sys_info.h"
+-
+ #include <stddef.h>
+ #include <stdint.h>
+ #include <sys/param.h>
+@@ -12,6 +11,7 @@
+
+ #include "base/notreached.h"
+ #include "base/posix/sysctl.h"
++#include "base/strings/string_util.h"
+
+ namespace {
+
+@@ -27,9 +27,14 @@ uint64_t AmountOfMemory(int pages_name)
+
+ namespace base {
+
++// pledge(2)
++uint64_t aofpmem = 0;
++uint64_t shmmax = 0;
++char cpumodel[256];
++
+ // static
+ int SysInfo::NumberOfProcessors() {
+- int mib[] = {CTL_HW, HW_NCPU};
++ int mib[] = {CTL_HW, HW_NCPUONLINE};
+ int ncpu;
+ size_t size = sizeof(ncpu);
+ if (sysctl(mib, std::size(mib), &ncpu, &size, NULL, 0) < 0) {
+@@ -41,7 +46,23 @@ int SysInfo::NumberOfProcessors() {
+
+ // static
+ uint64_t SysInfo::AmountOfPhysicalMemoryImpl() {
+- return AmountOfMemory(_SC_PHYS_PAGES);
++ // pledge(2)
++ if (!aofpmem)
++ aofpmem = AmountOfMemory(_SC_PHYS_PAGES);
++ return aofpmem;
++}
++
++// static
++std::string SysInfo::CPUModelName() {
++ int mib[] = {CTL_HW, HW_MODEL};
++ size_t len = std::size(cpumodel);
++
++ if (cpumodel[0] == '\0') {
++ if (sysctl(mib, std::size(mib), cpumodel, &len, NULL, 0) < 0)
++ return std::string();
++ }
++
++ return std::string(cpumodel, len - 1);
+ }
+
+ // static
+@@ -56,16 +77,28 @@ uint64_t SysInfo::MaxSharedMemorySize()
+ int mib[] = {CTL_KERN, KERN_SHMINFO, KERN_SHMINFO_SHMMAX};
+ size_t limit;
+ size_t size = sizeof(limit);
++ // pledge(2)
++ if (shmmax)
++ goto out;
+ if (sysctl(mib, std::size(mib), &limit, &size, NULL, 0) < 0) {
+ NOTREACHED_IN_MIGRATION();
+ return 0;
+ }
+- return static_cast<uint64_t>(limit);
++ shmmax = static_cast<uint64_t>(limit);
++out:
++ return shmmax;
+ }
+
+ // static
+-std::string SysInfo::CPUModelName() {
+- return StringSysctl({CTL_HW, HW_MODEL}).value();
++SysInfo::HardwareInfo SysInfo::GetHardwareInfoSync() {
++ HardwareInfo info;
++ // Set the manufacturer to "OpenBSD" and the model to
++ // an empty string.
++ info.manufacturer = "OpenBSD";
++ info.model = HardwareModelName();
++ DCHECK(IsStringUTF8(info.manufacturer));
++ DCHECK(IsStringUTF8(info.model));
++ return info;
+ }
+
+ } // namespace base
diff --git a/chromium/patches/patch-base_system_sys__info__posix.cc b/chromium/patches/patch-base_system_sys__info__posix.cc
index 59bf7e5766..8de7f9044c 100644
--- a/chromium/patches/patch-base_system_sys__info__posix.cc
+++ b/chromium/patches/patch-base_system_sys__info__posix.cc
@@ -1,26 +1,30 @@
$NetBSD$
---- base/system/sys_info_posix.cc.orig 2020-07-15 18:55:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/system/sys_info_posix.cc.orig 2024-07-24 02:44:22.679429500 +0000
+++ base/system/sys_info_posix.cc
-@@ -35,7 +35,7 @@
-
- namespace {
-
--#if !defined(OS_OPENBSD)
-+#if !defined(OS_BSD)
- int NumberOfProcessors() {
- // sysconf returns the number of "logical" (not "physical") processors on both
- // Mac and Linux. So we get the number of max available "logical" processors.
-@@ -127,7 +127,7 @@ bool GetDiskSpaceInfo(const base::FilePa
+@@ -118,7 +118,7 @@ bool GetDiskSpaceInfo(const base::FilePa
namespace base {
--#if !defined(OS_OPENBSD)
-+#if !defined(OS_BSD)
+-#if !BUILDFLAG(IS_OPENBSD)
++#if !BUILDFLAG(IS_BSD)
+ // static
int SysInfo::NumberOfProcessors() {
- return g_lazy_number_of_processors.Get().value();
+ #if BUILDFLAG(IS_MAC)
+@@ -175,7 +175,7 @@ int SysInfo::NumberOfProcessors() {
+
+ return cached_num_cpus;
}
-@@ -220,6 +220,8 @@ std::string SysInfo::OperatingSystemArch
+-#endif // !BUILDFLAG(IS_OPENBSD)
++#endif // !BUILDFLAG(IS_BSD)
+
+ // static
+ uint64_t SysInfo::AmountOfVirtualMemory() {
+@@ -265,6 +265,8 @@ std::string SysInfo::OperatingSystemArch
arch = "x86";
} else if (arch == "amd64") {
arch = "x86_64";
diff --git a/chromium/patches/patch-base_system_sys__info__unittest.cc b/chromium/patches/patch-base_system_sys__info__unittest.cc
new file mode 100644
index 0000000000..c239123eaa
--- /dev/null
+++ b/chromium/patches/patch-base_system_sys__info__unittest.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/system/sys_info_unittest.cc.orig 2024-07-24 02:44:22.679429500 +0000
++++ base/system/sys_info_unittest.cc
+@@ -264,12 +264,16 @@ TEST_F(SysInfoTest, GetHardwareInfo) {
+ EXPECT_TRUE(IsStringUTF8(hardware_info->model));
+ bool empty_result_expected =
+ #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_WIN) || \
+- BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || \
++ BUILDFLAG(IS_BSD)
+ false;
+ #else
+ true;
+ #endif
+ EXPECT_EQ(hardware_info->manufacturer.empty(), empty_result_expected);
++#if BUILDFLAG(IS_BSD)
++ empty_result_expected = true;
++#endif
+ EXPECT_EQ(hardware_info->model.empty(), empty_result_expected);
+ }
+
diff --git a/chromium/patches/patch-base_task_thread__pool_environment__config__unittest.cc b/chromium/patches/patch-base_task_thread__pool_environment__config__unittest.cc
index 66d3501add..9b259eeabe 100644
--- a/chromium/patches/patch-base_task_thread__pool_environment__config__unittest.cc
+++ b/chromium/patches/patch-base_task_thread__pool_environment__config__unittest.cc
@@ -1,13 +1,26 @@
$NetBSD$
---- base/task/thread_pool/environment_config_unittest.cc.orig 2020-07-08 21:40:31.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/task/thread_pool/environment_config_unittest.cc.orig 2024-07-24 02:44:22.699431400 +0000
+++ base/task/thread_pool/environment_config_unittest.cc
@@ -15,7 +15,7 @@ TEST(ThreadPoolEnvironmentConfig, CanUse
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_IOS)
- EXPECT_TRUE(CanUseBackgroundPriorityForWorkerThread());
- #elif defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FUCHSIA) || \
-- defined(OS_CHROMEOS) || defined(OS_NACL)
-+ defined(OS_CHROMEOS) || defined(OS_NACL) || defined(OS_BSD)
- EXPECT_FALSE(CanUseBackgroundPriorityForWorkerThread());
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE)
+ EXPECT_TRUE(CanUseBackgroundThreadTypeForWorkerThread());
+ #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_NACL)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_NACL) || BUILDFLAG(IS_BSD)
+ EXPECT_FALSE(CanUseBackgroundThreadTypeForWorkerThread());
+ #else
+ #error Platform doesn't match any block
+@@ -24,7 +24,7 @@ TEST(ThreadPoolEnvironmentConfig, CanUse
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_ANDROID)
+ EXPECT_TRUE(CanUseUtilityThreadTypeForWorkerThread());
+ #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_NACL)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_NACL) || BUILDFLAG(IS_BSD)
+ EXPECT_FALSE(CanUseUtilityThreadTypeForWorkerThread());
#else
#error Platform doesn't match any block
diff --git a/chromium/patches/patch-base_test_BUILD.gn b/chromium/patches/patch-base_test_BUILD.gn
deleted file mode 100644
index d3fc10f9a2..0000000000
--- a/chromium/patches/patch-base_test_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- base/test/BUILD.gn.orig 2020-06-25 09:31:18.000000000 +0000
-+++ base/test/BUILD.gn
-@@ -403,7 +403,7 @@ static_library("run_all_base_unittests")
- deps = [ ":test_support" ]
- }
-
--if (is_linux) {
-+if (is_linux || is_bsd) {
- source_set("fontconfig_util_linux") {
- sources = [
- "fontconfig_util_linux.cc",
-@@ -444,7 +444,7 @@ if (is_linux) {
- }
- }
-
--if (is_fuchsia || is_linux) {
-+if (is_fuchsia || is_linux || is_bsd) {
- shared_library("malloc_wrapper") {
- testonly = true
- sources = [ "malloc_wrapper.cc" ]
diff --git a/chromium/patches/patch-base_test_launcher_test__launcher.cc b/chromium/patches/patch-base_test_launcher_test__launcher.cc
index 991235f10c..5a95bc9593 100644
--- a/chromium/patches/patch-base_test_launcher_test__launcher.cc
+++ b/chromium/patches/patch-base_test_launcher_test__launcher.cc
@@ -1,32 +1,27 @@
$NetBSD$
---- base/test/launcher/test_launcher.cc.orig 2020-07-08 21:41:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/test/launcher/test_launcher.cc.orig 2024-07-24 02:44:22.735435000 +0000
+++ base/test/launcher/test_launcher.cc
-@@ -56,6 +56,7 @@
+@@ -74,6 +74,7 @@
#include "testing/gtest/include/gtest/gtest.h"
- #if defined(OS_POSIX)
+ #if BUILDFLAG(IS_POSIX)
+#include <signal.h>
#include <fcntl.h>
#include "base/files/file_descriptor_watcher_posix.h"
-@@ -582,7 +583,7 @@ ChildProcessResults DoLaunchChildTestPro
- #if !defined(OS_FUCHSIA)
- options.new_process_group = true;
- #endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- options.kill_on_parent_death = true;
- #endif
-
-@@ -1497,6 +1498,10 @@ bool TestLauncher::Init(CommandLine* com
+@@ -1807,6 +1808,10 @@ bool TestLauncher::Init(CommandLine* com
results_tracker_.AddGlobalTag("OS_OPENBSD");
#endif
-+#if defined(OS_NETBSD)
++#if BUILDFLAG(IS_NETBSD)
+ results_tracker_.AddGlobalTag("OS_NETBSD");
+#endif
+
- #if defined(OS_POSIX)
+ #if BUILDFLAG(IS_POSIX)
results_tracker_.AddGlobalTag("OS_POSIX");
#endif
diff --git a/chromium/patches/patch-base_test_test__file__util__linux.cc b/chromium/patches/patch-base_test_test__file__util__linux.cc
new file mode 100644
index 0000000000..ae0c4a5150
--- /dev/null
+++ b/chromium/patches/patch-base_test_test__file__util__linux.cc
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/test/test_file_util_linux.cc.orig 2024-07-24 02:44:22.747436000 +0000
++++ base/test/test_file_util_linux.cc
+@@ -54,8 +54,10 @@ bool EvictFileFromSystemCache(const File
+ return false;
+ if (fdatasync(fd.get()) != 0)
+ return false;
++#if !BUILDFLAG(IS_BSD)
+ if (posix_fadvise(fd.get(), 0, 0, POSIX_FADV_DONTNEED) != 0)
+ return false;
++#endif
+ return true;
+ }
+
diff --git a/chromium/patches/patch-base_test_test__file__util__posix.cc b/chromium/patches/patch-base_test_test__file__util__posix.cc
index 0247e7a23f..13bbb35151 100644
--- a/chromium/patches/patch-base_test_test__file__util__posix.cc
+++ b/chromium/patches/patch-base_test_test__file__util__posix.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- base/test/test_file_util_posix.cc.orig 2020-07-08 21:40:31.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/test/test_file_util_posix.cc.orig 2024-07-24 02:44:22.747436000 +0000
+++ base/test/test_file_util_posix.cc
-@@ -85,7 +85,7 @@ void SyncPageCacheToDisk() {
- sync();
+@@ -91,7 +91,7 @@ void SyncPageCacheToDisk() {
}
--#if !defined(OS_LINUX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
-+#if !defined(OS_LINUX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) || defined(OS_BSD)
+ #if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_APPLE) && \
+- !BUILDFLAG(IS_ANDROID)
++ !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_BSD)
bool EvictFileFromSystemCache(const FilePath& file) {
// There doesn't seem to be a POSIX way to cool the disk cache.
NOTIMPLEMENTED();
diff --git a/chromium/patches/patch-base_test_test__suite.cc b/chromium/patches/patch-base_test_test__suite.cc
deleted file mode 100644
index 77ed35d8c9..0000000000
--- a/chromium/patches/patch-base_test_test__suite.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- base/test/test_suite.cc.orig 2020-07-08 21:40:31.000000000 +0000
-+++ base/test/test_suite.cc
-@@ -70,7 +70,7 @@
- #include "base/test/test_support_ios.h"
- #endif
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "base/test/fontconfig_util_linux.h"
- #endif
-
-@@ -386,7 +386,7 @@ void TestSuite::PreInitialize() {
- testing::GTEST_FLAG(catch_exceptions) = false;
- #endif
- EnableTerminationOnHeapCorruption();
--#if defined(OS_LINUX) && defined(USE_AURA)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && defined(USE_AURA)
- // When calling native char conversion functions (e.g wrctomb) we need to
- // have the locale set. In the absence of such a call the "C" locale is the
- // default. In the gtk code (below) gtk_init() implicitly sets a locale.
-@@ -634,7 +634,7 @@ void TestSuite::Initialize() {
- // TODO(jshin): Should we set the locale via an OS X locale API here?
- i18n::SetICUDefaultLocale("en_US");
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- SetUpFontconfig();
- #endif
-
diff --git a/chromium/patches/patch-base_third__party_libevent_BUILD.gn b/chromium/patches/patch-base_third__party_libevent_BUILD.gn
deleted file mode 100644
index 767dfed2c1..0000000000
--- a/chromium/patches/patch-base_third__party_libevent_BUILD.gn
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- base/third_party/libevent/BUILD.gn.orig 2020-07-15 18:55:48.000000000 +0000
-+++ base/third_party/libevent/BUILD.gn
-@@ -45,11 +45,25 @@ static_library("libevent") {
- include_dirs = [ "mac" ]
- } else if (is_linux) {
- sources += [
-- "epoll.c",
-+ "kqueue.c",
- "linux/config.h",
- "linux/event-config.h",
- ]
- include_dirs = [ "linux" ]
-+ } else if (is_freebsd) {
-+ sources += [
-+ "kqueue.c",
-+ "freebsd/config.h",
-+ "freebsd/event-config.h",
-+ ]
-+ include_dirs = [ "freebsd" ]
-+ } else if (is_netbsd) {
-+ sources += [
-+ "kqueue.c",
-+ "netbsd/config.h",
-+ "netbsd/event-config.h",
-+ ]
-+ include_dirs = [ "netbsd" ]
- } else if (is_android) {
- sources += [
- "android/config.h",
diff --git a/chromium/patches/patch-base_third__party_libevent_event-config.h b/chromium/patches/patch-base_third__party_libevent_event-config.h
deleted file mode 100644
index 60dd729bc0..0000000000
--- a/chromium/patches/patch-base_third__party_libevent_event-config.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- base/third_party/libevent/event-config.h.orig 2020-06-25 09:31:18.000000000 +0000
-+++ base/third_party/libevent/event-config.h
-@@ -15,6 +15,8 @@
- #include "base/third_party/libevent/linux/event-config.h"
- #elif defined(__FreeBSD__)
- #include "base/third_party/libevent/freebsd/event-config.h"
-+#elif defined(__NetBSD__)
-+#include "base/third_party/libevent/netbsd/event-config.h"
- #elif defined(__sun)
- #include "base/third_party/libevent/solaris/event-config.h"
- #elif defined(_AIX)
diff --git a/chromium/patches/patch-base_third__party_libevent_netbsd_config.h b/chromium/patches/patch-base_third__party_libevent_netbsd_config.h
deleted file mode 100644
index 26de331d39..0000000000
--- a/chromium/patches/patch-base_third__party_libevent_netbsd_config.h
+++ /dev/null
@@ -1,271 +0,0 @@
-$NetBSD$
-
---- base/third_party/libevent/netbsd/config.h.orig 2016-11-12 05:01:22.790720883 +0000
-+++ base/third_party/libevent/netbsd/config.h
-@@ -0,0 +1,266 @@
-+/* config.h. Generated from config.h.in by configure. */
-+/* config.h.in. Generated from configure.in by autoheader. */
-+
-+/* Define if clock_gettime is available in libc */
-+#define DNS_USE_CPU_CLOCK_FOR_ID 1
-+
-+/* Define is no secure id variant is available */
-+/* #undef DNS_USE_GETTIMEOFDAY_FOR_ID */
-+
-+/* Define to 1 if you have the `clock_gettime' function. */
-+#define HAVE_CLOCK_GETTIME 1
-+
-+/* Define if /dev/poll is available */
-+/* #undef HAVE_DEVPOLL */
-+
-+/* Define to 1 if you have the <dlfcn.h> header file. */
-+#define HAVE_DLFCN_H 1
-+
-+/* Define if your system supports the epoll system calls */
-+/* #undef HAVE_EPOLL */
-+
-+/* Define to 1 if you have the `epoll_ctl' function. */
-+/* #undef HAVE_EPOLL_CTL */
-+
-+/* Define if your system supports event ports */
-+/* #undef HAVE_EVENT_PORTS */
-+
-+/* Define to 1 if you have the `fcntl' function. */
-+#define HAVE_FCNTL 1
-+
-+/* Define to 1 if you have the <fcntl.h> header file. */
-+#define HAVE_FCNTL_H 1
-+
-+/* Define to 1 if the system has the type `fd_mask'. */
-+#define HAVE_FD_MASK 1
-+
-+/* Define to 1 if you have the `getaddrinfo' function. */
-+#define HAVE_GETADDRINFO 1
-+
-+/* Define to 1 if you have the `getegid' function. */
-+#define HAVE_GETEGID 1
-+
-+/* Define to 1 if you have the `geteuid' function. */
-+#define HAVE_GETEUID 1
-+
-+/* Define to 1 if you have the `getnameinfo' function. */
-+#define HAVE_GETNAMEINFO 1
-+
-+/* Define to 1 if you have the `gettimeofday' function. */
-+#define HAVE_GETTIMEOFDAY 1
-+
-+/* Define to 1 if you have the `inet_ntop' function. */
-+#define HAVE_INET_NTOP 1
-+
-+/* Define to 1 if you have the <inttypes.h> header file. */
-+#define HAVE_INTTYPES_H 1
-+
-+/* Define to 1 if you have the `issetugid' function. */
-+#define HAVE_ISSETUGID 1
-+
-+/* Define to 1 if you have the `kqueue' function. */
-+#define HAVE_KQUEUE 1
-+
-+/* Define to 1 if you have the `nsl' library (-lnsl). */
-+/* #undef HAVE_LIBNSL */
-+
-+/* Define to 1 if you have the `resolv' library (-lresolv). */
-+/* #undef HAVE_LIBRESOLV */
-+
-+/* Define to 1 if you have the `rt' library (-lrt). */
-+#define HAVE_LIBRT 1
-+
-+/* Define to 1 if you have the `socket' library (-lsocket). */
-+/* #undef HAVE_LIBSOCKET */
-+
-+/* Define to 1 if you have the <memory.h> header file. */
-+#define HAVE_MEMORY_H 1
-+
-+/* Define to 1 if you have the <netinet/in6.h> header file. */
-+/* #undef HAVE_NETINET_IN6_H */
-+
-+/* Define to 1 if you have the `poll' function. */
-+#define HAVE_POLL 1
-+
-+/* Define to 1 if you have the <poll.h> header file. */
-+#define HAVE_POLL_H 1
-+
-+/* Define to 1 if you have the `port_create' function. */
-+/* #undef HAVE_PORT_CREATE */
-+
-+/* Define to 1 if you have the <port.h> header file. */
-+/* #undef HAVE_PORT_H */
-+
-+/* Define to 1 if you have the `select' function. */
-+#define HAVE_SELECT 1
-+
-+/* Define if F_SETFD is defined in <fcntl.h> */
-+#define HAVE_SETFD 1
-+
-+/* Define to 1 if you have the `sigaction' function. */
-+#define HAVE_SIGACTION 1
-+
-+/* Define to 1 if you have the `signal' function. */
-+#define HAVE_SIGNAL 1
-+
-+/* Define to 1 if you have the <signal.h> header file. */
-+#define HAVE_SIGNAL_H 1
-+
-+/* Define to 1 if you have the <stdarg.h> header file. */
-+#define HAVE_STDARG_H 1
-+
-+/* Define to 1 if you have the <stdint.h> header file. */
-+#define HAVE_STDINT_H 1
-+
-+/* Define to 1 if you have the <stdlib.h> header file. */
-+#define HAVE_STDLIB_H 1
-+
-+/* Define to 1 if you have the <strings.h> header file. */
-+#define HAVE_STRINGS_H 1
-+
-+/* Define to 1 if you have the <string.h> header file. */
-+#define HAVE_STRING_H 1
-+
-+/* Define to 1 if you have the `strlcpy' function. */
-+#define HAVE_STRLCPY 1
-+
-+/* Define to 1 if you have the `strsep' function. */
-+#define HAVE_STRSEP 1
-+
-+/* Define to 1 if you have the `strtok_r' function. */
-+#define HAVE_STRTOK_R 1
-+
-+/* Define to 1 if you have the `strtoll' function. */
-+#define HAVE_STRTOLL 1
-+
-+/* Define to 1 if the system has the type `struct in6_addr'. */
-+#define HAVE_STRUCT_IN6_ADDR 1
-+
-+/* Define to 1 if you have the <sys/devpoll.h> header file. */
-+/* #undef HAVE_SYS_DEVPOLL_H */
-+
-+/* Define to 1 if you have the <sys/epoll.h> header file. */
-+/* #undef HAVE_SYS_EPOLL_H */
-+
-+/* Define to 1 if you have the <sys/event.h> header file. */
-+#define HAVE_SYS_EVENT_H 1
-+
-+/* Define to 1 if you have the <sys/ioctl.h> header file. */
-+#define HAVE_SYS_IOCTL_H 1
-+
-+/* Define to 1 if you have the <sys/param.h> header file. */
-+#define HAVE_SYS_PARAM_H 1
-+
-+/* Define to 1 if you have the <sys/queue.h> header file. */
-+#define HAVE_SYS_QUEUE_H 1
-+
-+/* Define to 1 if you have the <sys/select.h> header file. */
-+#define HAVE_SYS_SELECT_H 1
-+
-+/* Define to 1 if you have the <sys/socket.h> header file. */
-+#define HAVE_SYS_SOCKET_H 1
-+
-+/* Define to 1 if you have the <sys/stat.h> header file. */
-+#define HAVE_SYS_STAT_H 1
-+
-+/* Define to 1 if you have the <sys/time.h> header file. */
-+#define HAVE_SYS_TIME_H 1
-+
-+/* Define to 1 if you have the <sys/types.h> header file. */
-+#define HAVE_SYS_TYPES_H 1
-+
-+/* Define if TAILQ_FOREACH is defined in <sys/queue.h> */
-+#define HAVE_TAILQFOREACH 1
-+
-+/* Define if timeradd is defined in <sys/time.h> */
-+#define HAVE_TIMERADD 1
-+
-+/* Define if timerclear is defined in <sys/time.h> */
-+#define HAVE_TIMERCLEAR 1
-+
-+/* Define if timercmp is defined in <sys/time.h> */
-+#define HAVE_TIMERCMP 1
-+
-+/* Define if timerisset is defined in <sys/time.h> */
-+#define HAVE_TIMERISSET 1
-+
-+/* Define to 1 if the system has the type `uint16_t'. */
-+#define HAVE_UINT16_T 1
-+
-+/* Define to 1 if the system has the type `uint32_t'. */
-+#define HAVE_UINT32_T 1
-+
-+/* Define to 1 if the system has the type `uint64_t'. */
-+#define HAVE_UINT64_T 1
-+
-+/* Define to 1 if the system has the type `uint8_t'. */
-+#define HAVE_UINT8_T 1
-+
-+/* Define to 1 if you have the <unistd.h> header file. */
-+#define HAVE_UNISTD_H 1
-+
-+/* Define to 1 if you have the `vasprintf' function. */
-+#define HAVE_VASPRINTF 1
-+
-+/* Define if kqueue works correctly with pipes */
-+#define HAVE_WORKING_KQUEUE 1
-+
-+/* Name of package */
-+#define PACKAGE "libevent"
-+
-+/* Define to the address where bug reports for this package should be sent. */
-+#define PACKAGE_BUGREPORT ""
-+
-+/* Define to the full name of this package. */
-+#define PACKAGE_NAME ""
-+
-+/* Define to the full name and version of this package. */
-+#define PACKAGE_STRING ""
-+
-+/* Define to the one symbol short name of this package. */
-+#define PACKAGE_TARNAME ""
-+
-+/* Define to the version of this package. */
-+#define PACKAGE_VERSION ""
-+
-+/* The size of `int', as computed by sizeof. */
-+#define SIZEOF_INT 4
-+
-+/* The size of `long', as computed by sizeof. */
-+#define SIZEOF_LONG 8
-+
-+/* The size of `long long', as computed by sizeof. */
-+#define SIZEOF_LONG_LONG 8
-+
-+/* The size of `short', as computed by sizeof. */
-+#define SIZEOF_SHORT 2
-+
-+/* Define to 1 if you have the ANSI C header files. */
-+#define STDC_HEADERS 1
-+
-+/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
-+#define TIME_WITH_SYS_TIME 1
-+
-+/* Version number of package */
-+#define VERSION "1.4.13-stable"
-+
-+/* Define to appropriate substitue if compiler doesnt have __func__ */
-+/* #undef __func__ */
-+
-+/* Define to empty if `const' does not conform to ANSI C. */
-+/* #undef const */
-+
-+/* Define to `__inline__' or `__inline' if that's what the C compiler
-+ calls it, or to nothing if 'inline' is not supported under any name. */
-+#ifndef __cplusplus
-+/* #undef inline */
-+#endif
-+
-+/* Define to `int' if <sys/types.h> does not define. */
-+/* #undef pid_t */
-+
-+/* Define to `unsigned int' if <sys/types.h> does not define. */
-+/* #undef size_t */
-+
-+/* Define to unsigned int if you dont have it */
-+/* #undef socklen_t */
diff --git a/chromium/patches/patch-base_third__party_libevent_netbsd_event-config.h b/chromium/patches/patch-base_third__party_libevent_netbsd_event-config.h
deleted file mode 100644
index d0882dbcf6..0000000000
--- a/chromium/patches/patch-base_third__party_libevent_netbsd_event-config.h
+++ /dev/null
@@ -1,289 +0,0 @@
-$NetBSD$
-
---- base/third_party/libevent/netbsd/event-config.h.orig 2016-11-12 05:01:22.831646497 +0000
-+++ base/third_party/libevent/netbsd/event-config.h
-@@ -0,0 +1,284 @@
-+/* event-config.h
-+ * Generated by autoconf; post-processed by libevent.
-+ * Do not edit this file.
-+ * Do not rely on macros in this file existing in later versions.
-+ */
-+#ifndef _EVENT_CONFIG_H_
-+#define _EVENT_CONFIG_H_
-+/* config.h. Generated from config.h.in by configure. */
-+/* config.h.in. Generated from configure.in by autoheader. */
-+
-+/* Define if clock_gettime is available in libc */
-+#define _EVENT_DNS_USE_CPU_CLOCK_FOR_ID 1
-+
-+/* Define is no secure id variant is available */
-+/* #undef _EVENT_DNS_USE_GETTIMEOFDAY_FOR_ID */
-+
-+/* Define to 1 if you have the `clock_gettime' function. */
-+#define _EVENT_HAVE_CLOCK_GETTIME 1
-+
-+/* Define if /dev/poll is available */
-+/* #undef _EVENT_HAVE_DEVPOLL */
-+
-+/* Define to 1 if you have the <dlfcn.h> header file. */
-+#define _EVENT_HAVE_DLFCN_H 1
-+
-+/* Define if your system supports the epoll system calls */
-+/* #undef _EVENT_HAVE_EPOLL */
-+
-+/* Define to 1 if you have the `epoll_ctl' function. */
-+/* #undef _EVENT_HAVE_EPOLL_CTL */
-+
-+/* Define if your system supports event ports */
-+/* #undef _EVENT_HAVE_EVENT_PORTS */
-+
-+/* Define to 1 if you have the `fcntl' function. */
-+#define _EVENT_HAVE_FCNTL 1
-+
-+/* Define to 1 if you have the <fcntl.h> header file. */
-+#define _EVENT_HAVE_FCNTL_H 1
-+
-+/* Define to 1 if the system has the type `fd_mask'. */
-+#define _EVENT_HAVE_FD_MASK 1
-+
-+/* Define to 1 if you have the `getaddrinfo' function. */
-+#define _EVENT_HAVE_GETADDRINFO 1
-+
-+/* Define to 1 if you have the `getegid' function. */
-+#define _EVENT_HAVE_GETEGID 1
-+
-+/* Define to 1 if you have the `geteuid' function. */
-+#define _EVENT_HAVE_GETEUID 1
-+
-+/* Define to 1 if you have the `getnameinfo' function. */
-+#define _EVENT_HAVE_GETNAMEINFO 1
-+
-+/* Define to 1 if you have the `gettimeofday' function. */
-+#define _EVENT_HAVE_GETTIMEOFDAY 1
-+
-+/* Define to 1 if you have the `inet_ntop' function. */
-+#define _EVENT_HAVE_INET_NTOP 1
-+
-+/* Define to 1 if you have the <inttypes.h> header file. */
-+#define _EVENT_HAVE_INTTYPES_H 1
-+
-+/* Define to 1 if you have the `issetugid' function. */
-+#define _EVENT_HAVE_ISSETUGID 1
-+
-+/* Define to 1 if you have the `kqueue' function. */
-+#define _EVENT_HAVE_KQUEUE 1
-+
-+/* Define to 1 if you have the `nsl' library (-lnsl). */
-+/* #undef _EVENT_HAVE_LIBNSL */
-+
-+/* Define to 1 if you have the `resolv' library (-lresolv). */
-+/* #undef _EVENT_HAVE_LIBRESOLV */
-+
-+/* Define to 1 if you have the `rt' library (-lrt). */
-+#define _EVENT_HAVE_LIBRT 1
-+
-+/* Define to 1 if you have the `socket' library (-lsocket). */
-+/* #undef _EVENT_HAVE_LIBSOCKET */
-+
-+/* Define to 1 if you have the <memory.h> header file. */
-+#define _EVENT_HAVE_MEMORY_H 1
-+
-+/* Define to 1 if you have the <netinet/in6.h> header file. */
-+/* #undef _EVENT_HAVE_NETINET_IN6_H */
-+
-+/* Define to 1 if you have the `poll' function. */
-+#define _EVENT_HAVE_POLL 1
-+
-+/* Define to 1 if you have the <poll.h> header file. */
-+#define _EVENT_HAVE_POLL_H 1
-+
-+/* Define to 1 if you have the `port_create' function. */
-+/* #undef _EVENT_HAVE_PORT_CREATE */
-+
-+/* Define to 1 if you have the <port.h> header file. */
-+/* #undef _EVENT_HAVE_PORT_H */
-+
-+/* Define to 1 if you have the `select' function. */
-+#define _EVENT_HAVE_SELECT 1
-+
-+/* Define if F_SETFD is defined in <fcntl.h> */
-+#define _EVENT_HAVE_SETFD 1
-+
-+/* Define to 1 if you have the `sigaction' function. */
-+#define _EVENT_HAVE_SIGACTION 1
-+
-+/* Define to 1 if you have the `signal' function. */
-+#define _EVENT_HAVE_SIGNAL 1
-+
-+/* Define to 1 if you have the <signal.h> header file. */
-+#define _EVENT_HAVE_SIGNAL_H 1
-+
-+/* Define to 1 if you have the <stdarg.h> header file. */
-+#define _EVENT_HAVE_STDARG_H 1
-+
-+/* Define to 1 if you have the <stdint.h> header file. */
-+#define _EVENT_HAVE_STDINT_H 1
-+
-+/* Define to 1 if you have the <stdlib.h> header file. */
-+#define _EVENT_HAVE_STDLIB_H 1
-+
-+/* Define to 1 if you have the <strings.h> header file. */
-+#define _EVENT_HAVE_STRINGS_H 1
-+
-+/* Define to 1 if you have the <string.h> header file. */
-+#define _EVENT_HAVE_STRING_H 1
-+
-+/* Define to 1 if you have the `strlcpy' function. */
-+#define _EVENT_HAVE_STRLCPY 1
-+
-+/* Define to 1 if you have the `strsep' function. */
-+#define _EVENT_HAVE_STRSEP 1
-+
-+/* Define to 1 if you have the `strtok_r' function. */
-+#define _EVENT_HAVE_STRTOK_R 1
-+
-+/* Define to 1 if you have the `strtoll' function. */
-+#define _EVENT_HAVE_STRTOLL 1
-+
-+/* Define to 1 if the system has the type `struct in6_addr'. */
-+#define _EVENT_HAVE_STRUCT_IN6_ADDR 1
-+
-+/* Define to 1 if you have the <sys/devpoll.h> header file. */
-+/* #undef _EVENT_HAVE_SYS_DEVPOLL_H */
-+
-+/* Define to 1 if you have the <sys/epoll.h> header file. */
-+/* #undef _EVENT_HAVE_SYS_EPOLL_H */
-+
-+/* Define to 1 if you have the <sys/event.h> header file. */
-+#define _EVENT_HAVE_SYS_EVENT_H 1
-+
-+/* Define to 1 if you have the <sys/ioctl.h> header file. */
-+#define _EVENT_HAVE_SYS_IOCTL_H 1
-+
-+/* Define to 1 if you have the <sys/param.h> header file. */
-+#define _EVENT_HAVE_SYS_PARAM_H 1
-+
-+/* Define to 1 if you have the <sys/queue.h> header file. */
-+#define _EVENT_HAVE_SYS_QUEUE_H 1
-+
-+/* Define to 1 if you have the <sys/select.h> header file. */
-+#define _EVENT_HAVE_SYS_SELECT_H 1
-+
-+/* Define to 1 if you have the <sys/socket.h> header file. */
-+#define _EVENT_HAVE_SYS_SOCKET_H 1
-+
-+/* Define to 1 if you have the <sys/stat.h> header file. */
-+#define _EVENT_HAVE_SYS_STAT_H 1
-+
-+/* Define to 1 if you have the <sys/time.h> header file. */
-+#define _EVENT_HAVE_SYS_TIME_H 1
-+
-+/* Define to 1 if you have the <sys/types.h> header file. */
-+#define _EVENT_HAVE_SYS_TYPES_H 1
-+
-+/* Define if TAILQ_FOREACH is defined in <sys/queue.h> */
-+#define _EVENT_HAVE_TAILQFOREACH 1
-+
-+/* Define if timeradd is defined in <sys/time.h> */
-+#define _EVENT_HAVE_TIMERADD 1
-+
-+/* Define if timerclear is defined in <sys/time.h> */
-+#define _EVENT_HAVE_TIMERCLEAR 1
-+
-+/* Define if timercmp is defined in <sys/time.h> */
-+#define _EVENT_HAVE_TIMERCMP 1
-+
-+/* Define if timerisset is defined in <sys/time.h> */
-+#define _EVENT_HAVE_TIMERISSET 1
-+
-+/* Define to 1 if the system has the type `uint16_t'. */
-+#define _EVENT_HAVE_UINT16_T 1
-+
-+/* Define to 1 if the system has the type `uint32_t'. */
-+#define _EVENT_HAVE_UINT32_T 1
-+
-+/* Define to 1 if the system has the type `uint64_t'. */
-+#define _EVENT_HAVE_UINT64_T 1
-+
-+/* Define to 1 if the system has the type `uint8_t'. */
-+#define _EVENT_HAVE_UINT8_T 1
-+
-+/* Define to 1 if you have the <unistd.h> header file. */
-+#define _EVENT_HAVE_UNISTD_H 1
-+
-+/* Define to 1 if you have the `vasprintf' function. */
-+#define _EVENT_HAVE_VASPRINTF 1
-+
-+/* Define if kqueue works correctly with pipes */
-+#define _EVENT_HAVE_WORKING_KQUEUE 1
-+
-+/* Define to the sub-directory in which libtool stores uninstalled libraries.
-+ */
-+#define _EVENT_LT_OBJDIR ".libs/"
-+
-+/* Numeric representation of the version */
-+#define _EVENT_NUMERIC_VERSION 0x01040f00
-+
-+/* Name of package */
-+#define _EVENT_PACKAGE "libevent"
-+
-+/* Define to the address where bug reports for this package should be sent. */
-+#define _EVENT_PACKAGE_BUGREPORT ""
-+
-+/* Define to the full name of this package. */
-+#define _EVENT_PACKAGE_NAME ""
-+
-+/* Define to the full name and version of this package. */
-+#define _EVENT_PACKAGE_STRING ""
-+
-+/* Define to the one symbol short name of this package. */
-+#define _EVENT_PACKAGE_TARNAME ""
-+
-+/* Define to the home page for this package. */
-+#define _EVENT_PACKAGE_URL ""
-+
-+/* Define to the version of this package. */
-+#define _EVENT_PACKAGE_VERSION ""
-+
-+/* The size of `int', as computed by sizeof. */
-+#define _EVENT_SIZEOF_INT 4
-+
-+/* The size of `long', as computed by sizeof. */
-+#define _EVENT_SIZEOF_LONG 8
-+
-+/* The size of `long long', as computed by sizeof. */
-+#define _EVENT_SIZEOF_LONG_LONG 8
-+
-+/* The size of `short', as computed by sizeof. */
-+#define _EVENT_SIZEOF_SHORT 2
-+
-+/* Define to 1 if you have the ANSI C header files. */
-+#define _EVENT_STDC_HEADERS 1
-+
-+/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
-+#define _EVENT_TIME_WITH_SYS_TIME 1
-+
-+/* Version number of package */
-+#define _EVENT_VERSION "1.4.15"
-+
-+/* Define to appropriate substitue if compiler doesnt have __func__ */
-+/* #undef _EVENT___func__ */
-+
-+/* Define to empty if `const' does not conform to ANSI C. */
-+/* #undef _EVENT_const */
-+
-+/* Define to `__inline__' or `__inline' if that's what the C compiler
-+ calls it, or to nothing if 'inline' is not supported under any name. */
-+#ifndef _EVENT___cplusplus
-+/* #undef _EVENT_inline */
-+#endif
-+
-+/* Define to `int' if <sys/types.h> does not define. */
-+/* #undef _EVENT_pid_t */
-+
-+/* Define to `unsigned int' if <sys/types.h> does not define. */
-+/* #undef _EVENT_size_t */
-+
-+/* Define to unsigned int if you dont have it */
-+/* #undef _EVENT_socklen_t */
-+#endif
diff --git a/chromium/patches/patch-base_threading_hang__watcher.cc b/chromium/patches/patch-base_threading_hang__watcher.cc
new file mode 100644
index 0000000000..1a55cba6d9
--- /dev/null
+++ b/chromium/patches/patch-base_threading_hang__watcher.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/threading/hang_watcher.cc.orig 2024-07-24 02:44:22.767438000 +0000
++++ base/threading/hang_watcher.cc
+@@ -354,7 +354,7 @@ void HangWatcher::InitializeOnMainThread
+
+ bool enable_hang_watcher = base::FeatureList::IsEnabled(kEnableHangWatcher);
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_BSD)
+ if (is_zygote_child) {
+ enable_hang_watcher =
+ enable_hang_watcher &&
diff --git a/chromium/patches/patch-base_threading_platform__thread.h b/chromium/patches/patch-base_threading_platform__thread.h
index 6f4410050b..7be789deee 100644
--- a/chromium/patches/patch-base_threading_platform__thread.h
+++ b/chromium/patches/patch-base_threading_platform__thread.h
@@ -1,13 +1,17 @@
$NetBSD$
---- base/threading/platform_thread.h.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/threading/platform_thread.h.orig 2024-07-24 02:44:22.767438000 +0000
+++ base/threading/platform_thread.h
-@@ -221,7 +221,7 @@ class BASE_EXPORT PlatformThread {
-
- static ThreadPriority GetCurrentThreadPriority();
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // Toggles a specific thread's priority at runtime. This can be used to
- // change the priority of a thread in a different process and will fail
- // if the calling process does not have proper permissions. The
+@@ -49,6 +49,8 @@ typedef DWORD PlatformThreadId;
+ typedef zx_koid_t PlatformThreadId;
+ #elif BUILDFLAG(IS_APPLE)
+ typedef mach_port_t PlatformThreadId;
++#elif BUILDFLAG(IS_BSD)
++typedef uint64_t PlatformThreadId;
+ #elif BUILDFLAG(IS_POSIX)
+ typedef pid_t PlatformThreadId;
+ #endif
diff --git a/chromium/patches/patch-base_threading_platform__thread__bsd.cc b/chromium/patches/patch-base_threading_platform__thread__bsd.cc
new file mode 100644
index 0000000000..f1e9c787c7
--- /dev/null
+++ b/chromium/patches/patch-base_threading_platform__thread__bsd.cc
@@ -0,0 +1,40 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/threading/platform_thread_bsd.cc.orig 2024-08-01 14:08:56.694817081 +0000
++++ base/threading/platform_thread_bsd.cc
+@@ -0,0 +1,31 @@
++// Copyright 2023 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++// Description: These are stubs for *BSD.
++
++#include "base/threading/platform_thread.h"
++
++namespace base {
++namespace internal {
++
++bool CanSetThreadTypeToRealtimeAudio() {
++ return false;
++}
++
++bool SetCurrentThreadTypeForPlatform(ThreadType thread_type,
++ MessagePumpType pump_type_hint) {
++ return false;
++}
++
++std::optional<ThreadPriorityForTest>
++GetCurrentThreadPriorityForPlatformForTest() {
++ return std::nullopt;
++}
++} // namespace internal
++
++// static
++void PlatformThreadBase::SetName(const std::string& name) {
++ SetNameCommon(name);
++}
++
++} // namespace base
diff --git a/chromium/patches/patch-base_threading_platform__thread__internal__posix.cc b/chromium/patches/patch-base_threading_platform__thread__internal__posix.cc
new file mode 100644
index 0000000000..c20e164b87
--- /dev/null
+++ b/chromium/patches/patch-base_threading_platform__thread__internal__posix.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/threading/platform_thread_internal_posix.cc.orig 2024-07-24 02:44:22.767438000 +0000
++++ base/threading/platform_thread_internal_posix.cc
+@@ -42,7 +42,7 @@ ThreadPriorityForTest NiceValueToThreadP
+ }
+
+ int GetCurrentThreadNiceValue() {
+-#if BUILDFLAG(IS_NACL)
++#if BUILDFLAG(IS_NACL) || BUILDFLAG(IS_BSD)
+ NOTIMPLEMENTED();
+ return 0;
+ #else
diff --git a/chromium/patches/patch-base_threading_platform__thread__linux.cc b/chromium/patches/patch-base_threading_platform__thread__linux.cc
deleted file mode 100644
index 3e03699ca0..0000000000
--- a/chromium/patches/patch-base_threading_platform__thread__linux.cc
+++ /dev/null
@@ -1,32 +0,0 @@
-$NetBSD$
-
---- base/threading/platform_thread_linux.cc.orig 2020-06-25 09:31:18.000000000 +0000
-+++ base/threading/platform_thread_linux.cc
-@@ -18,7 +18,9 @@
-
- #if !defined(OS_NACL) && !defined(OS_AIX)
- #include <pthread.h>
-+#if !defined(OS_BSD)
- #include <sys/prctl.h>
-+#endif
- #include <sys/resource.h>
- #include <sys/time.h>
- #include <sys/types.h>
-@@ -99,7 +101,7 @@ const ThreadPriorityToNiceValuePair kThr
-
- Optional<bool> CanIncreaseCurrentThreadPriorityForPlatform(
- ThreadPriority priority) {
--#if !defined(OS_NACL)
-+#if !defined(OS_NACL) && !defined(OS_BSD)
- // A non-zero soft-limit on RLIMIT_RTPRIO is required to be allowed to invoke
- // pthread_setschedparam in SetCurrentThreadPriorityForPlatform().
- struct rlimit rlim;
-@@ -141,7 +143,7 @@ Optional<ThreadPriority> GetCurrentThrea
- void PlatformThread::SetName(const std::string& name) {
- ThreadIdNameManager::GetInstance()->SetName(name);
-
--#if !defined(OS_NACL) && !defined(OS_AIX)
-+#if !defined(OS_NACL) && !defined(OS_AIX) && !defined(OS_BSD)
- // On linux we can get the thread names to show up in the debugger by setting
- // the process name for the LWP. We don't want to do this for the main
- // thread because that would rename the process, causing tools like killall
diff --git a/chromium/patches/patch-base_threading_platform__thread__posix.cc b/chromium/patches/patch-base_threading_platform__thread__posix.cc
index 694b1ea267..de0118783a 100644
--- a/chromium/patches/patch-base_threading_platform__thread__posix.cc
+++ b/chromium/patches/patch-base_threading_platform__thread__posix.cc
@@ -1,13 +1,59 @@
$NetBSD$
---- base/threading/platform_thread_posix.cc.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/threading/platform_thread_posix.cc.orig 2024-07-24 02:44:22.767438000 +0000
+++ base/threading/platform_thread_posix.cc
-@@ -66,7 +66,7 @@ void* ThreadFunc(void* params) {
+@@ -77,11 +77,11 @@ void* ThreadFunc(void* params) {
if (!thread_params->joinable)
- base::ThreadRestrictions::SetSingletonAllowed(false);
+ base::DisallowSingleton();
+
+-#if PA_BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC)
++#if PA_BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && !BUILDFLAG(IS_BSD)
+ partition_alloc::internal::StackTopRegistry::Get().NotifyThreadCreated();
+ #endif
+
+-#if !BUILDFLAG(IS_NACL)
++#if !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_BSD)
+ #if BUILDFLAG(IS_APPLE)
+ PlatformThread::SetCurrentThreadRealtimePeriodValue(
+ delegate->GetRealtimePeriod());
+@@ -265,6 +265,8 @@ PlatformThreadId PlatformThreadBase::Cur
+ return reinterpret_cast<int32_t>(pthread_self());
+ #elif BUILDFLAG(IS_POSIX) && BUILDFLAG(IS_AIX)
+ return pthread_self();
++#elif BUILDFLAG(IS_BSD)
++ return reinterpret_cast<uint64_t>(pthread_self());
+ #elif BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_AIX)
+ return reinterpret_cast<int64_t>(pthread_self());
+ #endif
+@@ -355,7 +357,7 @@ void PlatformThreadBase::Detach(Platform
+
+ // static
+ bool PlatformThreadBase::CanChangeThreadType(ThreadType from, ThreadType to) {
+-#if BUILDFLAG(IS_NACL)
++#if BUILDFLAG(IS_NACL) || BUILDFLAG(IS_BSD)
+ return false;
+ #else
+ if (from >= to) {
+@@ -376,6 +378,9 @@ void SetCurrentThreadTypeImpl(ThreadType
+ MessagePumpType pump_type_hint) {
+ #if BUILDFLAG(IS_NACL)
+ NOTIMPLEMENTED();
++// avoid pledge(2) violation
++#elif BUILDFLAG(IS_BSD)
++ NOTIMPLEMENTED();
+ #else
+ if (internal::SetCurrentThreadTypeForPlatform(thread_type, pump_type_hint))
+ return;
+@@ -398,7 +403,7 @@ void SetCurrentThreadTypeImpl(ThreadType
--#if !defined(OS_NACL)
-+#if !defined(OS_NACL) && !defined(OS_BSD)
- // Threads on linux/android may inherit their priority from the thread
- // where they were created. This explicitly sets the priority of all new
- // threads.
+ // static
+ ThreadPriorityForTest PlatformThreadBase::GetCurrentThreadPriorityForTest() {
+-#if BUILDFLAG(IS_NACL)
++#if BUILDFLAG(IS_NACL) || BUILDFLAG(IS_BSD)
+ NOTIMPLEMENTED();
+ return ThreadPriorityForTest::kNormal;
+ #else
diff --git a/chromium/patches/patch-base_threading_platform__thread__unittest.cc b/chromium/patches/patch-base_threading_platform__thread__unittest.cc
index d3051cfebd..61a2f9f5ac 100644
--- a/chromium/patches/patch-base_threading_platform__thread__unittest.cc
+++ b/chromium/patches/patch-base_threading_platform__thread__unittest.cc
@@ -1,22 +1,44 @@
$NetBSD$
---- base/threading/platform_thread_unittest.cc.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/threading/platform_thread_unittest.cc.orig 2024-07-24 02:44:22.767438000 +0000
+++ base/threading/platform_thread_unittest.cc
-@@ -302,7 +302,7 @@ TEST(PlatformThreadTest,
+@@ -38,7 +38,7 @@
+ #include "base/time/time.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include <pthread.h>
+ #include <sys/syscall.h>
+ #include <sys/types.h>
+@@ -429,7 +429,7 @@ TEST(PlatformThreadTest,
// and hardcodes what we know. Please inform scheduler-dev%chromium.org@localhost if this
// proprerty changes for a given platform.
- TEST(PlatformThreadTest, CanIncreaseThreadPriority) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+ TEST(PlatformThreadTest, CanChangeThreadType) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// On Ubuntu, RLIMIT_NICE and RLIMIT_RTPRIO are 0 by default, so we won't be
- // able to increase priority to any level.
- constexpr bool kCanIncreasePriority = false;
-@@ -398,7 +398,7 @@ TEST(PlatformThreadTest, SetHugeThreadNa
- TEST(PlatformThreadTest, GetDefaultThreadStackSize) {
- size_t stack_size = PlatformThread::GetDefaultThreadStackSize();
- #if defined(OS_WIN) || defined(OS_IOS) || defined(OS_FUCHSIA) || \
-- (defined(OS_LINUX) && !defined(THREAD_SANITIZER)) || \
-+ ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(THREAD_SANITIZER)) || \
- (defined(OS_ANDROID) && !defined(ADDRESS_SANITIZER))
- EXPECT_EQ(0u, stack_size);
- #else
+ // able to increase priority to any level unless we are root (euid == 0).
+ bool kCanIncreasePriority = false;
+@@ -713,12 +713,16 @@ INSTANTIATE_TEST_SUITE_P(
+
+ #endif // BUILDFLAG(IS_APPLE)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+
+ namespace {
+
+ bool IsTidCacheCorrect() {
++#if BUILDFLAG(IS_BSD)
++ return PlatformThread::CurrentId() == reinterpret_cast<int64_t>(pthread_self());
++#else
+ return PlatformThread::CurrentId() == syscall(__NR_gettid);
++#endif
+ }
+
+ void* CheckTidCacheCorrectWrapper(void*) {
diff --git a/chromium/patches/patch-base_trace__event_malloc__dump__dump__provider.cc b/chromium/patches/patch-base_trace__event_malloc__dump__dump__provider.cc
deleted file mode 100644
index 23058f3479..0000000000
--- a/chromium/patches/patch-base_trace__event_malloc__dump__dump__provider.cc
+++ /dev/null
@@ -1,23 +0,0 @@
-$NetBSD$
-
---- base/trace_event/malloc_dump_provider.cc.orig 2020-06-25 09:31:18.000000000 +0000
-+++ base/trace_event/malloc_dump_provider.cc
-@@ -17,6 +17,8 @@
-
- #if defined(OS_MACOSX)
- #include <malloc/malloc.h>
-+#elif defined(OS_FREEBSD) || defined(OS_NETBSD)
-+#include <stdlib.h>
- #else
- #include <malloc.h>
- #endif
-@@ -132,6 +134,9 @@ bool MallocDumpProvider::OnMemoryDump(co
- }
- #elif defined(OS_FUCHSIA)
- // TODO(fuchsia): Port, see https://crbug.com/706592.
-+#elif defined(OS_BSD)
-+ total_virtual_size = 0;
-+ allocated_objects_size = 0;
- #else
- struct mallinfo info = mallinfo();
- // In case of Android's jemalloc |arena| is 0 and the outer pages size is
diff --git a/chromium/patches/patch-base_trace__event_malloc__dump__provider.cc b/chromium/patches/patch-base_trace__event_malloc__dump__provider.cc
new file mode 100644
index 0000000000..0fcf0af840
--- /dev/null
+++ b/chromium/patches/patch-base_trace__event_malloc__dump__provider.cc
@@ -0,0 +1,36 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/trace_event/malloc_dump_provider.cc.orig 2024-07-24 02:44:22.783439600 +0000
++++ base/trace_event/malloc_dump_provider.cc
+@@ -29,6 +29,8 @@
+
+ #if BUILDFLAG(IS_APPLE)
+ #include <malloc/malloc.h>
++#elif BUILDFLAG(IS_BSD)
++#include <stdlib.h>
+ #else
+ #include <malloc.h>
+ #endif
+@@ -187,7 +189,7 @@ void ReportAppleAllocStats(size_t* total
+
+ #if (PA_BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && BUILDFLAG(IS_ANDROID)) || \
+ (!PA_BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && !BUILDFLAG(IS_WIN) && \
+- !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_FUCHSIA))
++ !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_FUCHSIA) && !BUILDFLAG(IS_BSD))
+ void ReportMallinfoStats(ProcessMemoryDump* pmd,
+ size_t* total_virtual_size,
+ size_t* resident_size,
+@@ -391,6 +393,9 @@ bool MallocDumpProvider::OnMemoryDump(co
+ &allocated_objects_count);
+ #elif BUILDFLAG(IS_FUCHSIA)
+ // TODO(fuchsia): Port, see https://crbug.com/706592.
++#elif BUILDFLAG(IS_BSD)
++ total_virtual_size = 0;
++ allocated_objects_size = 0;
+ #else
+ ReportMallinfoStats(/*pmd=*/nullptr, &total_virtual_size, &resident_size,
+ &allocated_objects_size, &allocated_objects_count);
diff --git a/chromium/patches/patch-base_trace__event_memory__dump__manager.cc b/chromium/patches/patch-base_trace__event_memory__dump__manager.cc
new file mode 100644
index 0000000000..3b8b9b3dc4
--- /dev/null
+++ b/chromium/patches/patch-base_trace__event_memory__dump__manager.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/trace_event/memory_dump_manager.cc.orig 2024-07-24 02:44:22.787439800 +0000
++++ base/trace_event/memory_dump_manager.cc
+@@ -87,7 +87,7 @@ const char* const MemoryDumpManager::kSy
+ #if defined(MALLOC_MEMORY_TRACING_SUPPORTED)
+ MallocDumpProvider::kAllocatedObjects;
+ #else
+- nullptr;
++ "";
+ #endif
+
+ // static
diff --git a/chromium/patches/patch-base_trace__event_process__memory__dump.cc b/chromium/patches/patch-base_trace__event_process__memory__dump.cc
index 4f6d997678..eaacfb9cd8 100644
--- a/chromium/patches/patch-base_trace__event_process__memory__dump.cc
+++ b/chromium/patches/patch-base_trace__event_process__memory__dump.cc
@@ -1,13 +1,26 @@
$NetBSD$
---- base/trace_event/process_memory_dump.cc.orig 2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/trace_event/process_memory_dump.cc.orig 2024-07-24 02:44:22.787439800 +0000
+++ base/trace_event/process_memory_dump.cc
-@@ -95,7 +95,7 @@ size_t ProcessMemoryDump::CountResidentB
- #if defined(OS_WIN)
+@@ -118,7 +118,7 @@ std::optional<size_t> ProcessMemoryDump:
+ #if BUILDFLAG(IS_WIN)
std::unique_ptr<PSAPI_WORKING_SET_EX_INFORMATION[]> vec(
new PSAPI_WORKING_SET_EX_INFORMATION[max_vec_size]);
--#elif defined(OS_MACOSX)
-+#elif defined(OS_MACOSX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_APPLE)
++#elif BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
std::unique_ptr<char[]> vec(new char[max_vec_size]);
- #elif defined(OS_POSIX) || defined(OS_FUCHSIA)
+ #elif BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA)
std::unique_ptr<unsigned char[]> vec(new unsigned char[max_vec_size]);
+@@ -140,7 +140,7 @@ std::optional<size_t> ProcessMemoryDump:
+
+ for (size_t i = 0; i < page_count; i++)
+ resident_page_count += vec[i].VirtualAttributes.Valid;
+-#elif BUILDFLAG(IS_FUCHSIA)
++#elif BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ // TODO(crbug.com/42050620): Implement counting resident bytes.
+ // For now, log and avoid unused variable warnings.
+ NOTIMPLEMENTED_LOG_ONCE();
diff --git a/chromium/patches/patch-base_trace__event_process__memory__dump.h b/chromium/patches/patch-base_trace__event_process__memory__dump.h
deleted file mode 100644
index 0afaa35aad..0000000000
--- a/chromium/patches/patch-base_trace__event_process__memory__dump.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- base/trace_event/process_memory_dump.h.orig 2020-06-25 09:31:18.000000000 +0000
-+++ base/trace_event/process_memory_dump.h
-@@ -22,7 +22,7 @@
-
- // Define COUNT_RESIDENT_BYTES_SUPPORTED if platform supports counting of the
- // resident memory.
--#if !defined(OS_NACL)
-+#if !defined(OS_NACL) && !defined(OS_BSD)
- #define COUNT_RESIDENT_BYTES_SUPPORTED
- #endif
-
diff --git a/chromium/patches/patch-base_tracing_trace__time.cc b/chromium/patches/patch-base_tracing_trace__time.cc
new file mode 100644
index 0000000000..b2b0747dbb
--- /dev/null
+++ b/chromium/patches/patch-base_tracing_trace__time.cc
@@ -0,0 +1,36 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/tracing/trace_time.cc.orig 2024-07-24 02:44:22.803441500 +0000
++++ base/tracing/trace_time.cc
+@@ -8,13 +8,19 @@
+ #include "build/build_config.h"
+ #include "third_party/perfetto/include/perfetto/base/time.h"
+
++#if BUILDFLAG(IS_FREEBSD)
++#define CLOCK_BOOTTIME CLOCK_UPTIME
++#elif BUILDFLAG(IS_NETBSD)
++#define CLOCK_BOOTTIME CLOCK_MONOTONIC
++#endif
++
+ namespace base {
+ namespace tracing {
+
+ int64_t TraceBootTicksNow() {
+ // On Windows and Mac, TRACE_TIME_TICKS_NOW() behaves like boottime already.
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+- BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ struct timespec ts;
+ int res = clock_gettime(CLOCK_BOOTTIME, &ts);
+ if (res != -1)
+@@ -24,4 +30,4 @@ int64_t TraceBootTicksNow() {
+ }
+
+ } // namespace tracing
+-} // namespace base
+\ No newline at end of file
++} // namespace base
diff --git a/chromium/patches/patch-base_tracing_trace__time.h b/chromium/patches/patch-base_tracing_trace__time.h
new file mode 100644
index 0000000000..58f1c62536
--- /dev/null
+++ b/chromium/patches/patch-base_tracing_trace__time.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- base/tracing/trace_time.h.orig 2024-07-24 02:44:22.803441500 +0000
++++ base/tracing/trace_time.h
+@@ -12,7 +12,7 @@ namespace base {
+ namespace tracing {
+
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+- BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ // Linux, Android, and Fuchsia all use CLOCK_MONOTONIC. See crbug.com/166153
+ // about efforts to unify base::TimeTicks across all platforms.
+ constexpr perfetto::protos::pbzero::BuiltinClock kTraceClockId =
diff --git a/chromium/patches/patch-build_config_BUILD.gn b/chromium/patches/patch-build_config_BUILD.gn
index 0a06f6111d..061ef0da5c 100644
--- a/chromium/patches/patch-build_config_BUILD.gn
+++ b/chromium/patches/patch-build_config_BUILD.gn
@@ -1,43 +1,19 @@
$NetBSD$
---- build/config/BUILD.gn.orig 2020-06-25 09:31:19.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- build/config/BUILD.gn.orig 2024-07-24 02:44:22.883449300 +0000
+++ build/config/BUILD.gn
-@@ -133,7 +133,7 @@ config("debug") {
- # builds, and we have to tell it to turn it off.
- defines += [ "_HAS_ITERATOR_DEBUGGING=0" ]
- }
-- } else if (is_linux && current_cpu == "x64" && enable_iterator_debugging) {
-+ } else if ((is_linux || is_bsd) && current_cpu == "x64" && enable_iterator_debugging) {
- # Enable libstdc++ debugging facilities to help catch problems early, see
- # http://crbug.com/65151 .
- # TODO(phajdan.jr): Should we enable this for all of POSIX?
-@@ -235,6 +235,11 @@ config("default_libs") {
- "pthread",
- "rt",
- ]
+@@ -213,6 +213,10 @@ config("default_libs") {
+ # Targets should choose to explicitly link frameworks they require. Since
+ # linking can have run-time side effects, nothing should be listed here.
+ libs = []
+ } else if (is_bsd) {
+ libs = [
+ "pthread",
-+ "rt",
+ ]
- }
- }
-
-@@ -316,7 +321,7 @@ config("executable_config") {
- "//build/config/ios:ios_dynamic_flags",
- "//build/config/ios:ios_executable_flags",
- ]
-- } else if (is_linux || is_android || current_os == "aix") {
-+ } else if (is_linux || is_android || current_os == "aix" || is_bsd) {
- configs += [ "//build/config/gcc:executable_config" ]
- if (is_chromecast) {
- configs += [ "//build/config/chromecast:executable_config" ]
-@@ -350,7 +355,7 @@ config("shared_library_config") {
- configs += [ "//build/config/ios:ios_dynamic_flags" ]
- } else if (is_chromecast) {
- configs += [ "//build/config/chromecast:shared_library_config" ]
-- } else if (is_linux || current_os == "aix") {
-+ } else if (is_linux || current_os == "aix" || is_bsd) {
- configs += [ "//build/config/gcc:shared_library_config" ]
- }
-
+ } else if (is_linux || is_chromeos) {
+ libs = [
+ "dl",
diff --git a/chromium/patches/patch-build_config_BUILDCONFIG.gn b/chromium/patches/patch-build_config_BUILDCONFIG.gn
index 26dd0b7ccd..c2e4fe6be4 100644
--- a/chromium/patches/patch-build_config_BUILDCONFIG.gn
+++ b/chromium/patches/patch-build_config_BUILDCONFIG.gn
@@ -1,75 +1,54 @@
$NetBSD$
---- build/config/BUILDCONFIG.gn.orig 2020-07-15 18:55:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- build/config/BUILDCONFIG.gn.orig 2024-07-24 02:44:22.883449300 +0000
+++ build/config/BUILDCONFIG.gn
-@@ -131,10 +131,10 @@ declare_args() {
+@@ -136,7 +136,8 @@ declare_args() {
is_official_build = false
- # Whether we're a traditional desktop unix.
-- is_desktop_linux = current_os == "linux"
-+ is_desktop_linux = current_os == "linux" || current_os == "freebsd" || current_os == "netbsd" || current_os == "openbsd"
-
# Set to true when compiling with the Clang compiler.
- is_clang = current_os != "linux" ||
-+ is_clang = (current_os != "linux" && current_os != "netbsd") ||
++ is_clang = current_os != "linux" || current_os == "openbsd" ||
++ current_os == "freebsd" || current_os == "netbsd" ||
(current_cpu != "s390x" && current_cpu != "s390" &&
current_cpu != "ppc64" && current_cpu != "ppc" &&
- current_cpu != "mips" && current_cpu != "mips64")
-@@ -186,8 +186,8 @@ if (host_toolchain == "") {
- # TODO(dpranke): Add some sort of assert here that verifies that
- # no toolchain omitted host_toolchain from its toolchain_args().
-
-- if (host_os == "linux") {
-- if (target_os != "linux") {
-+ if (host_os == "linux" || host_os == "freebsd" || host_os == "openbsd") {
-+ if (target_os != "linux" && target_os != "freebsd" && target_os != "openbsd") {
- host_toolchain = "//build/toolchain/linux:clang_$host_cpu"
- } else if (is_clang) {
- host_toolchain = "//build/toolchain/linux:clang_$host_cpu"
-@@ -213,6 +213,8 @@ if (host_toolchain == "") {
- }
- } else if (host_os == "aix") {
+ current_cpu != "mips" && current_cpu != "mips64" &&
+@@ -231,6 +232,12 @@ if (host_toolchain == "") {
host_toolchain = "//build/toolchain/aix:$host_cpu"
+ } else if (host_os == "zos") {
+ host_toolchain = "//build/toolchain/zos:$host_cpu"
++ } else if (host_os == "openbsd") {
++ host_toolchain = "//build/toolchain/openbsd:clang_$host_cpu"
++ } else if (host_os == "freebsd") {
++ host_toolchain = "//build/toolchain/freebsd:clang_$host_cpu"
+ } else if (host_os == "netbsd") {
-+ host_toolchain = "//build/toolchain/netbsd:$host_cpu"
++ host_toolchain = "//build/toolchain/netbsd:clang_$host_cpu"
} else {
assert(false, "Unsupported host_os: $host_os")
}
-@@ -224,7 +226,7 @@ if (target_os == "android") {
- assert(host_os == "linux" || host_os == "mac",
- "Android builds are only supported on Linux and Mac hosts.")
- _default_toolchain = "//build/toolchain/android:android_clang_$target_cpu"
--} else if (target_os == "chromeos" || target_os == "linux") {
-+} else if (target_os == "chromeos" || target_os == "linux" || target_os == "freebsd" || target_os == "netbsd" || target_os == "openbsd") {
- # See comments in build/toolchain/cros/BUILD.gn about board compiles.
- if (is_clang) {
- _default_toolchain = "//build/toolchain/linux:clang_$target_cpu"
-@@ -254,6 +256,8 @@ if (target_os == "android") {
- _default_toolchain = "//build/toolchain/win:uwp_$target_cpu"
- } else if (target_os == "aix") {
+@@ -274,6 +281,8 @@ if (target_os == "android") {
_default_toolchain = "//build/toolchain/aix:$target_cpu"
-+} else if (target_os == "netbsd") {
-+ _default_toolchain = "//build/toolchain/netbsd:$target_cpu"
+ } else if (target_os == "zos") {
+ _default_toolchain = "//build/toolchain/zos:$target_cpu"
++} else if (target_os == "openbsd" || target_os == "freebsd" || target_os == "netbsd") {
++ _default_toolchain = host_toolchain
} else {
assert(false, "Unsupported target_os: $target_os")
}
-@@ -292,6 +296,10 @@ is_linux = current_os == "chromeos" || c
+@@ -308,7 +317,12 @@ is_android = current_os == "android"
+ is_chromeos = current_os == "chromeos"
+ is_fuchsia = current_os == "fuchsia"
+ is_ios = current_os == "ios"
+-is_linux = current_os == "linux"
++is_linux = current_os == "linux" || current_os == "openbsd" ||
++ current_os == "freebsd" || current_os == "netbsd"
++is_openbsd = current_os == "openbsd"
++is_freebsd = current_os == "freebsd"
++is_netbsd = current_os == "netbsd"
++is_bsd = current_os == "openbsd" || current_os == "freebsd" || current_os == "netbsd"
is_mac = current_os == "mac"
is_nacl = current_os == "nacl"
is_win = current_os == "win" || current_os == "winuwp"
-+is_bsd = current_os == "freebsd" || current_os == "netbsd" || current_os == "openbsd"
-+is_freebsd = current_os == "freebsd"
-+is_netbsd = current_os == "netbsd"
-+is_openbsd = current_os == "openbsd"
-
- is_posix = !is_win && !is_fuchsia
-
-@@ -355,7 +363,7 @@ if (!is_ios) {
- if (!is_mac && !is_ios) {
- sources_assignment_filter += [ "*.mm" ]
- }
--if (!is_linux) {
-+if (!is_linux && !is_bsd) {
- sources_assignment_filter += [
- "*_linux.h",
- "*_linux.cc",
diff --git a/chromium/patches/patch-build_config_clang_BUILD.gn b/chromium/patches/patch-build_config_clang_BUILD.gn
new file mode 100644
index 0000000000..e7acc7e0e0
--- /dev/null
+++ b/chromium/patches/patch-build_config_clang_BUILD.gn
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- build/config/clang/BUILD.gn.orig 2024-07-24 02:44:22.891450000 +0000
++++ build/config/clang/BUILD.gn
+@@ -230,7 +230,7 @@ template("clang_lib") {
+
+ # Adds a dependency on the Clang runtime library clang_rt.builtins.
+ clang_lib("compiler_builtins") {
+- if (!toolchain_has_rust) {
++ if (!toolchain_has_rust || is_bsd) {
+ # Since there's no Rust in the toolchain, there's no concern that we'll use
+ # the Rust stdlib's intrinsics here.
+ #
diff --git a/chromium/patches/patch-build_config_compiler_BUILD.gn b/chromium/patches/patch-build_config_compiler_BUILD.gn
index de1110a0a0..e64046ef4e 100644
--- a/chromium/patches/patch-build_config_compiler_BUILD.gn
+++ b/chromium/patches/patch-build_config_compiler_BUILD.gn
@@ -1,112 +1,138 @@
$NetBSD$
---- build/config/compiler/BUILD.gn.orig 2020-06-25 09:31:19.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- build/config/compiler/BUILD.gn.orig 2024-07-24 02:44:22.895450400 +0000
+++ build/config/compiler/BUILD.gn
-@@ -130,7 +130,7 @@ declare_args() {
- # 'is_android' breaks content_shell_test_apk on android-kitkat-arm-rel.
- # 'use_xcode_clang' may call old clang.
- init_stack_vars =
-- !is_android && !use_xcode_clang && (!is_official_build || is_linux)
-+ !is_android && !use_xcode_clang && (!is_official_build || is_linux || is_bsd)
-
- # This argument is to control whether enabling text section splitting in the
- # final binary. When enabled, the separated text sections with prefix
-@@ -237,7 +237,7 @@ config("compiler") {
- configs += [ "//build/config/win:compiler" ]
- } else if (is_android) {
- configs += [ "//build/config/android:compiler" ]
-- } else if (is_linux) {
-+ } else if (is_linux || is_bsd) {
- configs += [ "//build/config/linux:compiler" ]
- if (is_chromeos) {
- configs += [ "//build/config/chromeos:compiler" ]
-@@ -367,7 +367,7 @@ config("compiler") {
+@@ -199,7 +199,7 @@ declare_args() {
+ # This greatly reduces the size of debug builds, at the cost of
+ # debugging information which is required by some specialized
+ # debugging tools.
+- simple_template_names = is_clang && !is_nacl && !is_win && !is_apple
++ simple_template_names = is_clang && !is_nacl && !is_win && !is_apple && !is_bsd
+ }
- # Linux/Android/Fuchsia common flags setup.
- # ---------------------------------
-- if (is_linux || is_android || is_fuchsia) {
-+ if (is_linux || is_android || is_fuchsia || is_bsd) {
- asmflags += [ "-fPIC" ]
- cflags += [ "-fPIC" ]
- ldflags += [ "-fPIC" ]
-@@ -389,7 +389,7 @@ config("compiler") {
+ declare_args() {
+@@ -251,13 +251,16 @@ config("default_include_dirs") {
+ # Compiler instrumentation can introduce dependencies in DSOs to symbols in
+ # the executable they are loaded into, so they are unresolved at link-time.
+ config("no_unresolved_symbols") {
+- if (!using_sanitizer &&
++ if (!using_sanitizer && !is_bsd &&
+ (is_linux || is_chromeos || is_android || is_fuchsia)) {
+ ldflags = [
+ "-Wl,-z,defs",
+ "-Wl,--as-needed",
+ ]
+ }
++ if (current_cpu == "x86" && is_openbsd) {
++ ldflags = [ "-Wl,-z,notext", "-Wl,--strip-all" ]
++ }
+ }
- # Compiler instrumentation can introduce dependencies in DSOs to symbols in
- # the executable they are loaded into, so they are unresolved at link-time.
-- if (!using_sanitizer) {
-+ if (!using_sanitizer && !is_bsd) {
- ldflags += [
- "-Wl,-z,defs",
- "-Wl,--as-needed",
-@@ -440,7 +440,7 @@ config("compiler") {
- ldflags += [ "-Wl,--icf=all" ]
+ # compiler ---------------------------------------------------------------------
+@@ -499,6 +502,10 @@ config("compiler") {
+ }
}
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- cflags += [ "-pthread" ]
- # Do not use the -pthread ldflag here since it becomes a no-op
- # when using -nodefaultlibs, which would cause an unused argument
-@@ -480,7 +480,7 @@ config("compiler") {
++ if (is_openbsd) {
++ ldflags += [ "-Wl,-z,wxneeded" ]
++ }
++
+ # Linux-specific compiler flags setup.
+ # ------------------------------------
+ if (use_icf && (!is_apple || use_lld)) {
+@@ -552,7 +559,7 @@ config("compiler") {
ldflags += [ "-Wl,-z,keep-text-section-prefix" ]
}
-- if (is_clang && !is_nacl && !use_xcode_clang) {
-+ if (is_clang && !is_nacl && !use_xcode_clang && !is_bsd) {
- cflags += [ "-fcrash-diagnostics-dir=" +
- rebase_path("//tools/clang/crashreports", root_build_dir) ]
+- if (is_clang && !is_nacl && current_os != "zos") {
++ if (is_clang && !is_nacl && current_os != "zos" && !is_bsd) {
+ cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ]
+ if (save_reproducers_on_lld_crash && use_lld) {
+ ldflags += [
+@@ -1195,7 +1202,7 @@ config("compiler_cpu_abi") {
+ ]
+ }
+ } else if (current_cpu == "arm") {
+- if (is_clang && !is_android && !is_nacl &&
++ if (is_clang && !is_android && !is_nacl && !is_bsd &&
+ !(is_chromeos_lacros && is_chromeos_device)) {
+ cflags += [ "--target=arm-linux-gnueabihf" ]
+ ldflags += [ "--target=arm-linux-gnueabihf" ]
+@@ -1210,7 +1217,7 @@ config("compiler_cpu_abi") {
+ cflags += [ "-mtune=$arm_tune" ]
+ }
+ } else if (current_cpu == "arm64") {
+- if (is_clang && !is_android && !is_nacl && !is_fuchsia &&
++ if (is_clang && !is_android && !is_nacl && !is_fuchsia && !is_bsd &&
+ !(is_chromeos_lacros && is_chromeos_device)) {
+ cflags += [ "--target=aarch64-linux-gnu" ]
+ ldflags += [ "--target=aarch64-linux-gnu" ]
+@@ -1545,7 +1552,7 @@ config("compiler_deterministic") {
+ # different build directory like "out/feature_a" and "out/feature_b" if
+ # we build same files with same compile flag.
+ # Other paths are already given in relative, no need to normalize them.
+- if (is_nacl) {
++ if (is_nacl || is_bsd) {
+ # TODO(https://crbug.com/1231236): Use -ffile-compilation-dir= here.
+ cflags += [
+ "-Xclang",
+@@ -1597,7 +1604,7 @@ config("compiler_deterministic") {
+ }
-@@ -496,7 +496,7 @@ config("compiler") {
+ config("clang_revision") {
+- if (is_clang && clang_base_path == default_clang_base_path) {
++ if (is_clang && !is_bsd && clang_base_path == default_clang_base_path) {
+ update_args = [
+ "--print-revision",
+ "--verify-version=$clang_version",
+@@ -1908,9 +1915,6 @@ config("default_warnings") {
- # C11/C++11 compiler flags setup.
- # ---------------------------
-- if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix") {
-+ if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix" || is_bsd) {
- if (target_os == "android") {
- cxx11_override = use_cxx11_on_android
- } else {
-@@ -1110,7 +1110,7 @@ config("compiler_deterministic") {
- "-Xclang",
- ".",
- ]
-- if (!is_win) {
-+ if (!is_win && !is_bsd) {
- # We don't use clang -cc1as on Windows (yet? https://crbug.com/762167)
- asmflags = [ "-Wa,-fdebug-compilation-dir,." ]
+ # TODO(crbug.com/40286317): Evaluate and possibly enable.
+ "-Wno-vla-extension",
+-
+- # TODO(crbug.com/40284799): Fix and re-enable.
+- "-Wno-thread-safety-reference-return",
+ ]
+
+ cflags_cc += [
+@@ -1918,7 +1922,7 @@ config("default_warnings") {
+ "-Wenum-compare-conditional",
+ ]
+
+- if (!is_nacl) {
++ if (!is_nacl && !is_openbsd) {
+ cflags_cc += [
+ # TODO(crbug.com/41486292): Fix and re-enable.
+ "-Wno-c++11-narrowing-const-reference",
+@@ -2640,7 +2644,7 @@ config("afdo_optimize_size") {
+ # There are some targeted places that AFDO regresses, so we provide a separate
+ # config to allow AFDO to be disabled per-target.
+ config("afdo") {
+- if (is_clang) {
++ if (is_clang && !is_bsd) {
+ cflags = []
+ if (clang_emit_debug_info_for_profiling) {
+ # Add the following flags to generate debug info for profiling.
+@@ -2667,7 +2671,7 @@ config("afdo") {
+ cflags += [ "-Wno-backend-plugin" ]
+ inputs = [ _clang_sample_profile ]
}
-@@ -1215,7 +1215,7 @@ config("runtime_library") {
- # smaller.
- if (is_win) {
- configs += [ "//build/config/win:runtime_library" ]
-- } else if (is_linux) {
-+ } else if (is_linux || is_bsd) {
- configs += [ "//build/config/linux:runtime_library" ]
- } else if (is_ios) {
- configs += [ "//build/config/ios:runtime_library" ]
-@@ -1493,7 +1493,7 @@ config("default_warnings") {
- cflags += [ "-Wno-nonportable-include-path" ]
- }
+- } else if (auto_profile_path != "" && is_a_target_toolchain) {
++ } else if (auto_profile_path != "" && is_a_target_toolchain && !is_bsd) {
+ cflags = [ "-fauto-profile=${auto_profile_path}" ]
+ inputs = [ auto_profile_path ]
+ }
+@@ -2832,7 +2836,8 @@ config("symbols") {
+ configs += [ "//build/config:compress_debug_sections" ]
+ }
-- if (current_toolchain == host_toolchain || !use_xcode_clang) {
-+ if ((current_toolchain == host_toolchain || !use_xcode_clang) && !is_bsd) {
- # Flags NaCl (Clang 3.7) and Xcode 9.2 (Clang clang-900.0.39.2) do not
- # recognize.
- cflags += [
-@@ -1740,7 +1740,7 @@ config("thin_archive") {
- # Mac and iOS use the mac-specific "libtool" command, not ar, which doesn't
- # have a "thin archive" mode (it does accept -T, but it means truncating
- # archive names to 16 characters, which is not what we want).
-- if ((is_posix && !is_nacl && !is_mac && !is_ios) || is_fuchsia) {
-+ if ((is_posix && !is_nacl && !is_mac && !is_ios && !is_bsd) || is_fuchsia) {
- arflags = [ "-T" ]
- } else if (is_win && use_lld) {
- arflags = [ "/llvmlibthin" ]
-@@ -2313,7 +2313,7 @@ config("symbols") {
- # DWARF info may be corrupt; offsets in a range list entry are in different
- # sections" there. Maybe just a bug in nacl_switch_32.S.
- if (!is_mac && !is_ios && !is_nacl && current_cpu != "x86" &&
-- (use_gold || use_lld)) {
-+ (use_gold || use_lld) && !is_bsd) {
- if (is_clang) {
- # This flag enables the GNU-format pubnames and pubtypes sections,
- # which lld needs in order to generate a correct GDB index.
+- if (is_clang && (!is_nacl || is_nacl_saigo) && current_os != "zos") {
++ if (is_clang && (!is_nacl || is_nacl_saigo) && current_os != "zos" &&
++ !is_bsd) {
+ if (is_apple) {
+ # TODO(crbug.com/40117949): Investigate missing debug info on mac.
+ # Make sure we don't use constructor homing on mac.
diff --git a/chromium/patches/patch-build_config_compiler_compiler.gni b/chromium/patches/patch-build_config_compiler_compiler.gni
deleted file mode 100644
index 03ab20b35a..0000000000
--- a/chromium/patches/patch-build_config_compiler_compiler.gni
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- build/config/compiler/compiler.gni.orig 2020-06-25 09:31:19.000000000 +0000
-+++ build/config/compiler/compiler.gni
-@@ -116,7 +116,7 @@ if (is_chromeos) {
- # 32-bit builds (https://bugs.llvm.org/show_bug.cgi?id=18505) so disable them
- # there to avoid the unnecessary overhead.
- enable_frame_pointers = current_cpu != "arm"
--} else if (is_mac || is_ios || is_linux) {
-+} else if (is_mac || is_ios || is_linux || is_bsd) {
- enable_frame_pointers = true
- } else if (is_win) {
- # 64-bit Windows ABI doesn't support frame pointers.
-@@ -196,7 +196,7 @@ declare_args() {
- # official builders.
- strip_absolute_paths_from_debug_symbols_default =
- is_android || is_fuchsia || is_nacl || (is_win && use_lld) || is_linux ||
-- (is_mac && !enable_dsyms) || ios_use_goma_rbe
-+ (is_mac && !enable_dsyms) || ios_use_goma_rbe || is_bsd
-
- # If the platform uses stripped absolute paths by default, then we don't expose
- # it as a configuration option. If this is causing problems, please file a bug.
-@@ -232,7 +232,7 @@ if (symbol_level == -1) {
- # info or variable info, so we can leave that out to speed up the build.
- # Sanitizers also require symbols for filename suppressions to work.
- symbol_level = 1
-- } else if ((!is_nacl && !is_linux && !is_fuchsia && current_os != "aix") ||
-+ } else if ((!is_nacl && !is_linux && !is_fuchsia && !is_bsd && current_os != "aix") ||
- is_debug || is_official_build || is_chromecast) {
- # Linux builds slower by having symbols as part of the target binary,
- # whereas Mac and Windows have them separate, so in Release Linux, default
diff --git a/chromium/patches/patch-build_config_crypto.gni b/chromium/patches/patch-build_config_crypto.gni
deleted file mode 100644
index 2ff5f88c9d..0000000000
--- a/chromium/patches/patch-build_config_crypto.gni
+++ /dev/null
@@ -1,10 +0,0 @@
-$NetBSD$
-
---- build/config/crypto.gni.orig 2020-07-24 10:44:52.474897202 +0000
-+++ build/config/crypto.gni
-@@ -12,4 +12,4 @@
- # to set up feature flags.
-
- # True if NSS is used for certificate handling.
--use_nss_certs = is_linux
-+use_nss_certs = is_linux || is_bsd
diff --git a/chromium/patches/patch-build_config_features.gni b/chromium/patches/patch-build_config_features.gni
deleted file mode 100644
index 524108eb49..0000000000
--- a/chromium/patches/patch-build_config_features.gni
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD$
-
---- build/config/features.gni.orig 2020-06-25 09:31:19.000000000 +0000
-+++ build/config/features.gni
-@@ -28,9 +28,9 @@ declare_args() {
- # libudev usage. This currently only affects the content layer.
- use_udev = is_linux && !is_chromecast
-
-- use_dbus = is_linux && !is_chromecast
-+ use_dbus = (is_linux || is_bsd) && !is_chromecast
-
-- use_gio = is_linux && !is_chromeos && !is_chromecast
-+ use_gio = (is_linux || is_bsd) && !is_chromeos && !is_chromecast
- }
- #
- # =============================================
diff --git a/chromium/patches/patch-build_config_linux_BUILD.gn b/chromium/patches/patch-build_config_linux_BUILD.gn
new file mode 100644
index 0000000000..c555e23f91
--- /dev/null
+++ b/chromium/patches/patch-build_config_linux_BUILD.gn
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- build/config/linux/BUILD.gn.orig 2024-07-24 02:44:22.899450800 +0000
++++ build/config/linux/BUILD.gn
+@@ -41,7 +41,7 @@ config("runtime_library") {
+ }
+
+ if ((!is_chromeos || default_toolchain != "//build/toolchain/cros:target") &&
+- (!use_custom_libcxx || current_cpu == "mipsel")) {
++ (!use_custom_libcxx || current_cpu == "mipsel") && !is_bsd) {
+ libs = [ "atomic" ]
+ }
+ }
diff --git a/chromium/patches/patch-build_config_linux_dri_BUILD.gn b/chromium/patches/patch-build_config_linux_dri_BUILD.gn
deleted file mode 100644
index 8b408f8583..0000000000
--- a/chromium/patches/patch-build_config_linux_dri_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- build/config/linux/dri/BUILD.gn.orig 2020-06-25 09:31:19.000000000 +0000
-+++ build/config/linux/dri/BUILD.gn
-@@ -4,7 +4,7 @@
-
- import("//build/config/linux/pkg_config.gni")
-
--assert(is_linux, "This file should only be referenced on Linux")
-+assert(is_linux || is_bsd, "This file should only be referenced on Linux")
-
- pkg_config("dri") {
- packages = [ "dri" ]
diff --git a/chromium/patches/patch-build_config_linux_gtk_BUILD.gn b/chromium/patches/patch-build_config_linux_gtk_BUILD.gn
deleted file mode 100644
index d37103a682..0000000000
--- a/chromium/patches/patch-build_config_linux_gtk_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- build/config/linux/gtk/BUILD.gn.orig 2020-06-25 09:31:19.000000000 +0000
-+++ build/config/linux/gtk/BUILD.gn
-@@ -5,7 +5,7 @@
- import("//build/config/linux/gtk/gtk.gni")
- import("//build/config/linux/pkg_config.gni")
-
--assert(is_linux, "This file should only be referenced on Linux")
-+assert(is_linux || is_bsd, "This file should only be referenced on Linux")
-
- # GN doesn't check visibility for configs so we give this an obviously internal
- # name to discourage random targets from accidentally depending on this and
diff --git a/chromium/patches/patch-build_config_linux_libdrm_BUILD.gn b/chromium/patches/patch-build_config_linux_libdrm_BUILD.gn
deleted file mode 100644
index 7cfe267a7e..0000000000
--- a/chromium/patches/patch-build_config_linux_libdrm_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- build/config/linux/libdrm/BUILD.gn.orig 2020-06-25 09:31:19.000000000 +0000
-+++ build/config/linux/libdrm/BUILD.gn
-@@ -5,7 +5,7 @@ import("//build/config/chromecast_build.
- import("//build/config/chromeos/args.gni")
- import("//build/config/linux/pkg_config.gni")
-
--assert(is_linux)
-+assert(is_linux || is_bsd)
-
- declare_args() {
- # Controls whether the build should use the version of libdrm library shipped
diff --git a/chromium/patches/patch-build_config_linux_nss_BUILD.gn b/chromium/patches/patch-build_config_linux_nss_BUILD.gn
deleted file mode 100644
index d4314bd515..0000000000
--- a/chromium/patches/patch-build_config_linux_nss_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- build/config/linux/nss/BUILD.gn.orig 2020-07-15 18:55:48.000000000 +0000
-+++ build/config/linux/nss/BUILD.gn
-@@ -4,7 +4,7 @@
-
- import("//build/config/linux/pkg_config.gni")
-
--if (is_linux) {
-+if (is_linux || is_bsd) {
- # This is a dependency on NSS with no libssl. On Linux we use a built-in SSL
- # library but the system NSS libraries. Non-Linux platforms using NSS use the
- # hermetic one in //third_party/nss.
diff --git a/chromium/patches/patch-build_config_linux_pangocairo_pangocairo.gni b/chromium/patches/patch-build_config_linux_pangocairo_pangocairo.gni
deleted file mode 100644
index 364ac4f5c7..0000000000
--- a/chromium/patches/patch-build_config_linux_pangocairo_pangocairo.gni
+++ /dev/null
@@ -1,11 +0,0 @@
-$NetBSD$
-
---- build/config/linux/pangocairo/pangocairo.gni.orig 2020-06-25 09:31:19.000000000 +0000
-+++ build/config/linux/pangocairo/pangocairo.gni
-@@ -5,5 +5,5 @@
- import("//build/config/ui.gni")
-
- declare_args() {
-- use_pangocairo = is_linux && !is_chromeos && !is_chromecast
-+ use_pangocairo = (is_linux || is_bsd) && !is_chromeos && !is_chromecast
- }
diff --git a/chromium/patches/patch-build_config_linux_pkg-config.py b/chromium/patches/patch-build_config_linux_pkg-config.py
index f5e0d2ddef..cf2fec6a0d 100644
--- a/chromium/patches/patch-build_config_linux_pkg-config.py
+++ b/chromium/patches/patch-build_config_linux_pkg-config.py
@@ -1,31 +1,17 @@
$NetBSD$
---- build/config/linux/pkg-config.py.orig 2020-07-08 16:23:41.835664158 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- build/config/linux/pkg-config.py.orig 2024-07-24 02:44:22.903451200 +0000
+++ build/config/linux/pkg-config.py
-@@ -59,8 +59,15 @@ def SetConfigPath(options):
- print("You must specify an architecture via -a if using a sysroot.")
- sys.exit(1)
-
-- libdir = sysroot + '/usr/' + options.system_libdir + '/pkgconfig'
-- libdir += ':' + sysroot + '/usr/share/pkgconfig'
-+ if "linux" in sys.platform:
-+ libdir = sysroot + '/libdata/' + options.system_libdir + '/pkgconfig'
-+ libdir += ':' + sysroot + '/usr/share/pkgconfig'
-+ elif "netbsd" in sys.platform:
-+ libdir = sysroot + '/lib/pkgconfig'
-+ libdir += ':' + '/usr/lib/pkgconfig'
-+ elif "freebsd" in sys.platform:
-+ libdir = sysroot + '/libdata/pkgconfig'
-+ libdir += ':' + '/usr/libdata/pkgconfig'
- os.environ['PKG_CONFIG_LIBDIR'] = libdir
- return libdir
-
-@@ -109,7 +116,7 @@ def main():
+@@ -108,7 +108,7 @@ def main():
# If this is run on non-Linux platforms, just return nothing and indicate
# success. This allows us to "kind of emulate" a Linux build from other
# platforms.
- if "linux" not in sys.platform:
-+ if "linux" not in sys.platform and "bsd" not in sys.platform:
++ if not sys.platform.startswith(tuple(['linux', 'openbsd', 'freebsd', 'netbsd'])):
print("[[],[],[],[],[]]")
return 0
diff --git a/chromium/patches/patch-build_config_ozone.gni b/chromium/patches/patch-build_config_ozone.gni
new file mode 100644
index 0000000000..d8dacaba0f
--- /dev/null
+++ b/chromium/patches/patch-build_config_ozone.gni
@@ -0,0 +1,29 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- build/config/ozone.gni.orig 2024-07-24 02:44:22.903451200 +0000
++++ build/config/ozone.gni
+@@ -84,7 +84,19 @@ declare_args() {
+ } else if (is_chromeos_lacros) {
+ ozone_platform = "wayland"
+ ozone_platform_wayland = true
+- } else if (is_linux) {
++ } else if (is_linux && !is_bsd) {
++ ozone_platform = "x11"
++ ozone_platform_wayland = true
++ ozone_platform_x11 = true
++ } else if (is_openbsd) {
++ ozone_platform = "x11"
++ ozone_platform_wayland = false
++ ozone_platform_x11 = true
++ } else if (is_netbsd) {
++ ozone_platform = "x11"
++ ozone_platform_wayland = false
++ ozone_platform_x11 = true
++ } else if (is_freebsd) {
+ ozone_platform = "x11"
+ ozone_platform_wayland = true
+ ozone_platform_x11 = true
diff --git a/chromium/patches/patch-build_config_rust.gni b/chromium/patches/patch-build_config_rust.gni
new file mode 100644
index 0000000000..e28eb345cb
--- /dev/null
+++ b/chromium/patches/patch-build_config_rust.gni
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- build/config/rust.gni.orig 2024-07-24 02:44:22.903451200 +0000
++++ build/config/rust.gni
+@@ -270,6 +270,10 @@ if (is_linux || is_chromeos) {
+ }
+ }
+
++if (is_bsd) {
++ rust_abi_target = string_replace(rust_abi_target, "linux-gnu", current_os)
++}
++
+ assert(!toolchain_has_rust || rust_abi_target != "")
+
+ # This variable is passed to the Rust libstd build.
diff --git a/chromium/patches/patch-build_config_ui.gni b/chromium/patches/patch-build_config_ui.gni
deleted file mode 100644
index 8e495f3e2d..0000000000
--- a/chromium/patches/patch-build_config_ui.gni
+++ /dev/null
@@ -1,32 +0,0 @@
-$NetBSD$
-
---- build/config/ui.gni.orig 2020-06-25 09:31:19.000000000 +0000
-+++ build/config/ui.gni
-@@ -26,12 +26,12 @@ declare_args() {
-
- # Indicates if Aura is enabled. Aura is a low-level windowing library, sort
- # of a replacement for GDI or GTK.
-- use_aura = is_win || is_linux || is_fuchsia
-+ use_aura = is_win || is_linux || is_fuchsia || is_bsd
- }
-
- declare_args() {
- # True means the UI is built using the "views" framework.
-- toolkit_views = is_mac || is_win || is_linux || is_fuchsia
-+ toolkit_views = is_mac || is_win || is_linux || is_fuchsia || is_bsd
-
- # Whether we should use glib, a low level C utility library.
- use_glib = is_desktop_linux && !is_chromecast
-@@ -42,10 +42,10 @@ declare_args() {
- # These variables depend on other variables and can't be set externally.
-
- # Indicates if the UI toolkit depends on X11.
--use_x11 = is_linux && !use_ozone
-+use_x11 = (is_linux || is_bsd) && !use_ozone
-
- # Make sure glib is not used if building for ChromeOS/Chromecast
--assert(!use_glib || (is_linux && !is_chromeos && !is_chromecast))
-+assert(!use_glib || ((is_linux || is_bsd) && !is_chromeos && !is_chromecast))
-
- # Whether to use atk, the Accessibility ToolKit library
- use_atk = is_desktop_linux && !is_chromecast && use_glib
diff --git a/chromium/patches/patch-build_config_v8__target__cpu.gni b/chromium/patches/patch-build_config_v8__target__cpu.gni
new file mode 100644
index 0000000000..8f86716d4d
--- /dev/null
+++ b/chromium/patches/patch-build_config_v8__target__cpu.gni
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- build/config/v8_target_cpu.gni.orig 2024-07-24 02:44:22.907451600 +0000
++++ build/config/v8_target_cpu.gni
+@@ -36,6 +36,10 @@ declare_args() {
+ if (v8_target_cpu == "") {
+ if (current_toolchain == "//build/toolchain/linux:clang_x64_v8_arm64") {
+ v8_target_cpu = "arm64"
++ } else if (current_toolchain == "//build/toolchain/openbsd:clang_arm64") {
++ v8_target_cpu = "arm64"
++ } else if (current_toolchain == "//build/toolchain/freebsd:clang_arm64") {
++ v8_target_cpu = "arm64"
+ } else if (current_toolchain == "//build/toolchain/linux:clang_x86_v8_arm") {
+ v8_target_cpu = "arm"
+ } else if (current_toolchain ==
diff --git a/chromium/patches/patch-build_detect__host__arch.py b/chromium/patches/patch-build_detect__host__arch.py
new file mode 100644
index 0000000000..f781d4b06a
--- /dev/null
+++ b/chromium/patches/patch-build_detect__host__arch.py
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- build/detect_host_arch.py.orig 2024-07-24 02:44:22.907451600 +0000
++++ build/detect_host_arch.py
+@@ -20,6 +20,8 @@ def HostArch():
+ host_arch = 'ia32'
+ elif host_arch in ['x86_64', 'amd64']:
+ host_arch = 'x64'
++ elif host_arch.startswith('arm64'):
++ host_arch = 'arm64'
+ elif host_arch.startswith('arm'):
+ host_arch = 'arm'
+ elif host_arch.startswith('aarch64'):
diff --git a/chromium/patches/patch-build_gn__run__binary.py b/chromium/patches/patch-build_gn__run__binary.py
index c301277a25..89baeea6cb 100644
--- a/chromium/patches/patch-build_gn__run__binary.py
+++ b/chromium/patches/patch-build_gn__run__binary.py
@@ -1,13 +1,17 @@
$NetBSD$
---- build/gn_run_binary.py.orig 2020-07-08 21:40:31.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- build/gn_run_binary.py.orig 2024-07-24 02:44:22.919452700 +0000
+++ build/gn_run_binary.py
-@@ -24,7 +24,7 @@ if not os.path.isabs(path):
+@@ -23,7 +23,7 @@ if not os.path.isabs(path):
# The rest of the arguments are passed directly to the executable.
args = [path] + sys.argv[2:]
-ret = subprocess.call(args)
-+ret = subprocess.call(args, env={"CHROME_EXE_PATH":"${WRKSRC}/out/Release/chrome"})
++ret = subprocess.call(args, env={"CHROME_EXE_PATH":"${WRKSRC}/out/Release/chrome","LD_LIBRARY_PATH":"${WRKSRC}/out/Release"})
if ret != 0:
if ret <= -100:
# Windows error codes such as 0xC0000005 and 0xC0000409 are much easier to
diff --git a/chromium/patches/patch-build_linux_chrome.map b/chromium/patches/patch-build_linux_chrome.map
new file mode 100644
index 0000000000..f3464040fe
--- /dev/null
+++ b/chromium/patches/patch-build_linux_chrome.map
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- build/linux/chrome.map.orig 2024-07-24 02:44:22.923453000 +0000
++++ build/linux/chrome.map
+@@ -20,6 +20,10 @@ global:
+ # Program entry point.
+ _start;
+
++ # FreeBSD specific variables.
++ __progname;
++ environ;
++
+ # Memory allocation symbols. We want chrome and any libraries to
+ # share the same heap, so it is correct to export these symbols.
+ aligned_alloc;
diff --git a/chromium/patches/patch-build_linux_libpci_BUILD.gn b/chromium/patches/patch-build_linux_libpci_BUILD.gn
deleted file mode 100644
index 1d910c94c2..0000000000
--- a/chromium/patches/patch-build_linux_libpci_BUILD.gn
+++ /dev/null
@@ -1,28 +0,0 @@
-$NetBSD$
-
---- build/linux/libpci/BUILD.gn.orig 2020-06-25 09:31:19.000000000 +0000
-+++ build/linux/libpci/BUILD.gn
-@@ -3,20 +3,8 @@
- # found in the LICENSE file.
-
- import("//tools/generate_library_loader/generate_library_loader.gni")
-+import("//build/config/linux/pkg_config.gni")
-
--# This generates a target named "libpci".
--generate_library_loader("libpci") {
-- name = "LibPciLoader"
-- output_h = "libpci.h"
-- output_cc = "libpci_loader.cc"
-- header = "<pci/pci.h>"
--
-- functions = [
-- "pci_alloc",
-- "pci_init",
-- "pci_cleanup",
-- "pci_scan_bus",
-- "pci_fill_info",
-- "pci_lookup_name",
-- ]
-+declare_args() {
-+ use_system_libpci = is_bsd
- }
diff --git a/chromium/patches/patch-build_linux_strip__binary.py b/chromium/patches/patch-build_linux_strip__binary.py
new file mode 100644
index 0000000000..b3d937b143
--- /dev/null
+++ b/chromium/patches/patch-build_linux_strip__binary.py
@@ -0,0 +1,16 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- build/linux/strip_binary.py.orig 2024-07-24 02:44:22.923453000 +0000
++++ build/linux/strip_binary.py
+@@ -10,6 +10,7 @@ import sys
+
+
+ def main():
++ return 0
+ argparser = argparse.ArgumentParser(description='eu-strip binary.')
+
+ argparser.add_argument('--eu-strip-binary-path', help='eu-strip path.')
diff --git a/chromium/patches/patch-build_linux_unbundle_dav1d.gn b/chromium/patches/patch-build_linux_unbundle_dav1d.gn
new file mode 100644
index 0000000000..2b886398fa
--- /dev/null
+++ b/chromium/patches/patch-build_linux_unbundle_dav1d.gn
@@ -0,0 +1,31 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- build/linux/unbundle/dav1d.gn.orig 2024-07-24 02:44:22.927453500 +0000
++++ build/linux/unbundle/dav1d.gn
+@@ -1,11 +1,11 @@
+ import("//build/config/linux/pkg_config.gni")
+ import("//build/shim_headers.gni")
+
+-pkg_config("system_dav1d") {
++pkg_config("dav1d_config") {
+ packages = [ "dav1d" ]
+ }
+
+-shim_headers("dav1d_shim") {
++shim_headers("dav1d_headers") {
+ root_path = "libdav1d/include"
+ headers = [
+ "dav1d/common.h",
+@@ -18,6 +18,6 @@ shim_headers("dav1d_shim") {
+ }
+
+ source_set("dav1d") {
+- deps = [ ":dav1d_shim" ]
+- public_configs = [ ":system_dav1d" ]
++ deps = [ ":dav1d_headers" ]
++ public_configs = [ ":dav1d_config" ]
+ }
diff --git a/chromium/patches/patch-build_linux_unbundle_fontconfig.gn b/chromium/patches/patch-build_linux_unbundle_fontconfig.gn
deleted file mode 100644
index a1d4b57b18..0000000000
--- a/chromium/patches/patch-build_linux_unbundle_fontconfig.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- build/linux/unbundle/fontconfig.gn.orig 2020-06-25 09:31:19.000000000 +0000
-+++ build/linux/unbundle/fontconfig.gn
-@@ -2,7 +2,7 @@
- # Use of this source code is governed by a BSD-style license that can be
- # found in the LICENSE file.
-
--assert(is_linux)
-+assert(is_linux || is_bsd)
-
- config("fontconfig_config") {
- libs = [ "fontconfig" ]
diff --git a/chromium/patches/patch-build_linux_unbundle_icu.gn b/chromium/patches/patch-build_linux_unbundle_icu.gn
new file mode 100644
index 0000000000..8034bbee5c
--- /dev/null
+++ b/chromium/patches/patch-build_linux_unbundle_icu.gn
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- build/linux/unbundle/icu.gn.orig 2024-07-24 02:44:22.927453500 +0000
++++ build/linux/unbundle/icu.gn
+@@ -17,6 +17,15 @@ config("icu_config") {
+ "USING_SYSTEM_ICU=1",
+ "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC",
+
++ # As of icu 73 C++ nullptr, char16_t, override, final and noexcept are used
++ # instead of defines. These definitions can be removed when the bundled icu
++ # gets updated to 73. For more details, see:
++ # https://unicode-org.atlassian.net/browse/ICU-21833 and
++ # https://github.com/unicode-org/icu/commit/28643799377ecf654564f6f31854b02788cebe33
++ "U_FINAL=final",
++ "U_NOEXCEPT=noexcept",
++ "U_OVERRIDE=override",
++
+ # U_EXPORT (defined in unicode/platform.h) is used to set public visibility
+ # on classes through the U_COMMON_API and U_I18N_API macros (among others).
+ # When linking against the system ICU library, we want its symbols to have
+@@ -61,6 +70,10 @@ source_set("icuuc") {
+ ]
+ }
+
++group("icuuc_public") {
++ public_deps = [ ":icuuc" ]
++}
++
+ shim_headers("icui18n_shim") {
+ root_path = "source/i18n"
+ headers = [
diff --git a/chromium/patches/patch-build_linux_unbundle_libevent.gn b/chromium/patches/patch-build_linux_unbundle_libevent.gn
new file mode 100644
index 0000000000..7dfa1ab438
--- /dev/null
+++ b/chromium/patches/patch-build_linux_unbundle_libevent.gn
@@ -0,0 +1,21 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- build/linux/unbundle/libevent.gn.orig 2024-07-24 02:44:22.927453500 +0000
++++ build/linux/unbundle/libevent.gn
+@@ -9,7 +9,12 @@ shim_headers("libevent_shim") {
+ headers = [ "event.h" ]
+ }
+
++config("system_libevent") {
++ defines = [ "USE_SYSTEM_LIBEVENT=1" ]
++}
++
+ source_set("libevent") {
+ deps = [ ":libevent_shim" ]
+ libs = [ "event" ]
++ public_configs = [ ":system_libevent" ]
+ }
diff --git a/chromium/patches/patch-build_linux_unbundle_libusb.gn b/chromium/patches/patch-build_linux_unbundle_libusb.gn
new file mode 100644
index 0000000000..b45f139a5e
--- /dev/null
+++ b/chromium/patches/patch-build_linux_unbundle_libusb.gn
@@ -0,0 +1,36 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- build/linux/unbundle/libusb.gn.orig 2024-07-24 02:44:22.927453500 +0000
++++ build/linux/unbundle/libusb.gn
+@@ -1,3 +1,27 @@
++# Copyright 2016 The Chromium Authors. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//build/config/linux/pkg_config.gni")
++import("//build/shim_headers.gni")
++
++pkg_config("system_libusb") {
++ packages = [ "libusb-1.0" ]
++}
++
++shim_headers("libusb_shim") {
++ root_path = "src/libusb"
++ headers = [
++ "libusb.h",
++ ]
++}
++
++source_set("libusb") {
++ deps = [
++ ":libusb_shim",
++ ]
++ public_configs = [ ":system_libusb" ]
++}
+ import("//build/config/linux/pkg_config.gni")
+ import("//build/shim_headers.gni")
+
diff --git a/chromium/patches/patch-build_rust_rust__bindgen.gni b/chromium/patches/patch-build_rust_rust__bindgen.gni
new file mode 100644
index 0000000000..ba3090b716
--- /dev/null
+++ b/chromium/patches/patch-build_rust_rust__bindgen.gni
@@ -0,0 +1,25 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- build/rust/rust_bindgen.gni.orig 2024-07-24 02:44:22.931454000 +0000
++++ build/rust/rust_bindgen.gni
+@@ -11,14 +11,14 @@ if (is_win) {
+ import("//build/toolchain/win/win_toolchain_data.gni")
+ }
+
+-_bindgen_path = "${rust_bindgen_root}/bin/bindgen"
++_bindgen_path = "@PREFIX@/bin/bindgen"
+ if (host_os == "win") {
+ _bindgen_path = "${_bindgen_path}.exe"
+ }
+
+ # On Windows, the libclang.dll is beside the bindgen.exe, otherwise it is in
+ # ../lib.
+-_libclang_path = rust_bindgen_root
++_libclang_path = "@PREFIX@"
+ if (host_os == "win") {
+ _libclang_path += "/bin"
+ } else {
diff --git a/chromium/patches/patch-build_rust_std_BUILD.gn b/chromium/patches/patch-build_rust_std_BUILD.gn
new file mode 100644
index 0000000000..3507c87df2
--- /dev/null
+++ b/chromium/patches/patch-build_rust_std_BUILD.gn
@@ -0,0 +1,16 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- build/rust/std/BUILD.gn.orig 2024-07-24 02:44:22.931454000 +0000
++++ build/rust/std/BUILD.gn
+@@ -90,7 +90,6 @@ if (toolchain_has_rust) {
+ # don't need to pass to the C++ linker because they're used for specialized
+ # purposes.
+ skip_stdlib_files = [
+- "profiler_builtins",
+ "rustc_std_workspace_alloc",
+ "rustc_std_workspace_core",
+ "rustc_std_workspace_std",
diff --git a/chromium/patches/patch-build_toolchain_freebsd_BUILD.gn b/chromium/patches/patch-build_toolchain_freebsd_BUILD.gn
new file mode 100644
index 0000000000..b8eac92925
--- /dev/null
+++ b/chromium/patches/patch-build_toolchain_freebsd_BUILD.gn
@@ -0,0 +1,75 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- build/toolchain/freebsd/BUILD.gn.orig 2024-08-01 14:08:56.732183608 +0000
++++ build/toolchain/freebsd/BUILD.gn
+@@ -0,0 +1,66 @@
++# Copyright 2013 The Chromium Authors. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//build/config/sysroot.gni")
++import("//build/toolchain/gcc_toolchain.gni")
++
++clang_toolchain("clang_x86") {
++ toolchain_args = {
++ current_cpu = "x86"
++ current_os = "freebsd"
++ }
++}
++
++gcc_toolchain("x86") {
++ cc = "gcc"
++ cxx = "g++"
++
++ readelf = "readelf"
++ nm = "nm"
++ ar = "ar"
++ ld = cxx
++
++ toolchain_args = {
++ current_cpu = "x86"
++ current_os = "freebsd"
++ is_clang = false
++ }
++}
++
++clang_toolchain("clang_x64") {
++ toolchain_args = {
++ current_cpu = "x64"
++ current_os = "freebsd"
++ }
++}
++
++gcc_toolchain("x64") {
++ cc = "gcc"
++ cxx = "g++"
++
++ readelf = "readelf"
++ nm = "nm"
++ ar = "ar"
++ ld = cxx
++
++ toolchain_args = {
++ current_cpu = "x64"
++ current_os = "freebsd"
++ is_clang = false
++ }
++}
++
++clang_toolchain("clang_arm") {
++ toolchain_args = {
++ current_cpu = "arm64"
++ current_os = "freebsd"
++ }
++}
++
++clang_toolchain("clang_arm64") {
++ toolchain_args = {
++ current_cpu = "arm64"
++ current_os = "freebsd"
++ }
++}
diff --git a/chromium/patches/patch-build_toolchain_gcc__solink__wrapper.py b/chromium/patches/patch-build_toolchain_gcc__solink__wrapper.py
new file mode 100644
index 0000000000..d040806f8d
--- /dev/null
+++ b/chromium/patches/patch-build_toolchain_gcc__solink__wrapper.py
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- build/toolchain/gcc_solink_wrapper.py.orig 2024-07-24 02:44:22.943455000 +0000
++++ build/toolchain/gcc_solink_wrapper.py
+@@ -39,7 +39,7 @@ def CollectDynSym(args):
+ """Replaces: nm --format=posix -g -D -p $sofile | cut -f1-2 -d' '"""
+ toc = ''
+ nm = subprocess.Popen(wrapper_utils.CommandToRun(
+- [args.nm, '--format=posix', '-g', '-D', '-p', args.sofile]),
++ [args.nm, '-g', '-D', '-p', args.sofile]),
+ stdout=subprocess.PIPE,
+ bufsize=-1,
+ universal_newlines=True)
diff --git a/chromium/patches/patch-build_toolchain_gcc__toolchain.gni b/chromium/patches/patch-build_toolchain_gcc__toolchain.gni
index 6110c4cb63..f217f7f4f3 100644
--- a/chromium/patches/patch-build_toolchain_gcc__toolchain.gni
+++ b/chromium/patches/patch-build_toolchain_gcc__toolchain.gni
@@ -1,31 +1,59 @@
$NetBSD$
---- build/toolchain/gcc_toolchain.gni.orig 2020-07-15 18:55:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- build/toolchain/gcc_toolchain.gni.orig 2024-07-24 02:44:22.947455400 +0000
+++ build/toolchain/gcc_toolchain.gni
-@@ -28,6 +28,9 @@ declare_args() {
- # Don't enable for Android-on-Chrome OS so that they can build with
- # symbol_level=0 without this failing (crbug.com/891164).
- (target_os == "android" || target_os == "win")
-+
-+ extra_cxxflags = ""
-+ extra_ldflags = ""
+@@ -56,6 +56,13 @@ if (enable_resource_allowlist_generation
+ "enable_resource_allowlist_generation=true does not work for target_os=$target_os")
}
- # When the arg is set via args.gn, it applies to all toolchains. In order to not
-@@ -589,12 +592,12 @@ template("clang_toolchain") {
- }
++declare_args() {
++ extra_cflags = ""
++ extra_cppflags = ""
++ extra_cxxflags = ""
++ extra_ldflags = ""
++}
++
+ # This template defines a toolchain for something that works like gcc
+ # (including clang).
+ #
+@@ -615,7 +622,7 @@ template("single_gcc_toolchain") {
+ # We need to specify link groups, at least, for single pass linkers. I.e.
+ # Rust libraries are alpha-sorted instead of by dependencies so they fail
+ # to link if not properly ordered or grouped.
+- link_command = "$ld {{ldflags}}${extra_ldflags} -o \"$unstripped_outfile\" $start_group_flag @\"$rspfile\" $end_group_flag {{solibs}} {{libs}} $start_group_flag {{rlibs}} $end_group_flag"
++ link_command = "$ld $start_group_flag {{ldflags}}${extra_ldflags} -o \"$unstripped_outfile\" @\"$rspfile\" {{solibs}} {{libs}} {{rlibs}} $end_group_flag"
+ # Generate a map file to be used for binary size analysis.
+ # Map file adds ~10% to the link time on a z620.
+@@ -864,22 +871,12 @@ template("gcc_toolchain") {
+ # actually just be doing a native compile.
+ template("clang_toolchain") {
gcc_toolchain(target_name) {
-- prefix = rebase_path("$clang_base_path/bin", root_build_dir)
-- cc = "$prefix/clang"
-- cxx = "$prefix/clang++"
-+ #prefix = rebase_path("$clang_base_path/bin", root_build_dir)
-+ cc = "clang"
-+ cxx = "clang++"
+- _path = "$clang_base_path/bin"
+- _is_path_absolute = get_path_info(_path, "abspath") == _path
+-
+- # Preserve absolute paths for tools like distcc.
+- if (_is_path_absolute && filter_include([ _path ], [ "//*" ]) == []) {
+- prefix = _path
+- } else {
+- prefix = rebase_path(_path, root_build_dir)
+- }
+-
+- cc = "${prefix}/clang"
+- cxx = "${prefix}/clang++"
++ cc = "cc"
++ cxx = "c++"
ld = cxx
- readelf = "${toolprefix}readelf"
+- readelf = "${prefix}/llvm-readelf"
- ar = "${prefix}/llvm-ar"
-+ ar = "llvm-ar"
- nm = "${toolprefix}nm"
+- nm = "${prefix}/llvm-nm"
++ readelf = "readelf"
++ ar = "ar"
++ nm = "nm"
+
+ forward_variables_from(invoker, "*", [ "toolchain_args" ])
- forward_variables_from(invoker,
diff --git a/chromium/patches/patch-build_toolchain_netbsd_BUILD.gn b/chromium/patches/patch-build_toolchain_netbsd_BUILD.gn
index 6948bc8ac1..f2e3f096a7 100644
--- a/chromium/patches/patch-build_toolchain_netbsd_BUILD.gn
+++ b/chromium/patches/patch-build_toolchain_netbsd_BUILD.gn
@@ -1,8 +1,12 @@
$NetBSD$
---- build/toolchain/netbsd/BUILD.gn.orig 2020-07-20 16:25:34.425819926 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- build/toolchain/netbsd/BUILD.gn.orig 2024-08-01 14:08:56.735313619 +0000
+++ build/toolchain/netbsd/BUILD.gn
-@@ -0,0 +1,300 @@
+@@ -0,0 +1,66 @@
+# Copyright 2013 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
@@ -10,112 +14,22 @@ $NetBSD$
+import("//build/config/sysroot.gni")
+import("//build/toolchain/gcc_toolchain.gni")
+
-+clang_toolchain("clang_ppc64") {
-+ enable_linker_map = true
-+ toolchain_args = {
-+ current_cpu = "ppc64"
-+ current_os = "netbsd"
-+ }
-+}
-+
-+clang_toolchain("clang_arm") {
-+ toolprefix = "arm-linux-gnueabihf-"
-+ toolchain_args = {
-+ current_cpu = "arm"
-+ current_os = "netbsd"
-+ }
-+}
-+
-+clang_toolchain("clang_arm64") {
-+ toolprefix = "aarch64-linux-gnu-"
-+ toolchain_args = {
-+ current_cpu = "arm64"
-+ current_os = "netbsd"
-+ }
-+}
-+
-+gcc_toolchain("arm64") {
-+ toolprefix = "aarch64-linux-gnu-"
-+
-+ cc = "${toolprefix}gcc"
-+ cxx = "${toolprefix}g++"
-+
-+ ar = "${toolprefix}ar"
-+ ld = cxx
-+ readelf = "${toolprefix}readelf"
-+ nm = "${toolprefix}nm"
-+
-+ toolchain_args = {
-+ current_cpu = "arm64"
-+ current_os = "netbsd"
-+ is_clang = false
-+ }
-+}
-+
-+gcc_toolchain("arm") {
-+ toolprefix = "arm-linux-gnueabihf-"
-+
-+ cc = "${toolprefix}gcc"
-+ cxx = "${toolprefix}g++"
-+
-+ ar = "${toolprefix}ar"
-+ ld = cxx
-+ readelf = "${toolprefix}readelf"
-+ nm = "${toolprefix}nm"
-+
-+ toolchain_args = {
-+ current_cpu = "arm"
-+ current_os = "netbsd"
-+ is_clang = false
-+ }
-+}
-+
+clang_toolchain("clang_x86") {
-+ # Output linker map files for binary size analysis.
-+ enable_linker_map = true
-+
-+ toolchain_args = {
-+ current_cpu = "x86"
-+ current_os = "netbsd"
-+ }
-+}
-+
-+clang_toolchain("clang_x86_v8_arm") {
-+ toolchain_args = {
-+ current_cpu = "x86"
-+ v8_current_cpu = "arm"
-+ current_os = "netbsd"
-+ }
-+}
-+
-+clang_toolchain("clang_x86_v8_mipsel") {
-+ toolchain_args = {
-+ current_cpu = "x86"
-+ v8_current_cpu = "mipsel"
-+ current_os = "netbsd"
-+ }
-+}
-+
-+clang_toolchain("clang_x86_v8_mips") {
+ toolchain_args = {
+ current_cpu = "x86"
-+ v8_current_cpu = "mips"
+ current_os = "netbsd"
+ }
+}
+
+gcc_toolchain("x86") {
-+ cc = "cc"
-+ cxx = "c++"
++ cc = "gcc"
++ cxx = "g++"
+
+ readelf = "readelf"
+ nm = "nm"
+ ar = "ar"
+ ld = cxx
+
-+ # Output linker map files for binary size analysis.
-+ enable_linker_map = true
-+
+ toolchain_args = {
+ current_cpu = "x86"
+ current_os = "netbsd"
@@ -124,35 +38,8 @@ $NetBSD$
+}
+
+clang_toolchain("clang_x64") {
-+ # Output linker map files for binary size analysis.
-+ enable_linker_map = true
-+
-+ toolchain_args = {
-+ current_cpu = "x64"
-+ current_os = "netbsd"
-+ }
-+}
-+
-+clang_toolchain("clang_x64_v8_arm64") {
+ toolchain_args = {
+ current_cpu = "x64"
-+ v8_current_cpu = "arm64"
-+ current_os = "netbsd"
-+ }
-+}
-+
-+clang_toolchain("clang_x64_v8_mips64el") {
-+ toolchain_args = {
-+ current_cpu = "x64"
-+ v8_current_cpu = "mips64el"
-+ current_os = "netbsd"
-+ }
-+}
-+
-+clang_toolchain("clang_x64_v8_mips64") {
-+ toolchain_args = {
-+ current_cpu = "x64"
-+ v8_current_cpu = "mips64"
+ current_os = "netbsd"
+ }
+}
@@ -166,9 +53,6 @@ $NetBSD$
+ ar = "ar"
+ ld = cxx
+
-+ # Output linker map files for binary size analysis.
-+ enable_linker_map = true
-+
+ toolchain_args = {
+ current_cpu = "x64"
+ current_os = "netbsd"
@@ -176,130 +60,16 @@ $NetBSD$
+ }
+}
+
-+clang_toolchain("clang_mipsel") {
-+ toolchain_args = {
-+ current_cpu = "mipsel"
-+ current_os = "netbsd"
-+ }
-+}
-+
-+clang_toolchain("clang_mips64el") {
-+ toolchain_args = {
-+ current_cpu = "mips64el"
-+ current_os = "netbsd"
-+ }
-+}
-+
-+gcc_toolchain("mipsel") {
-+ toolprefix = "mipsel-linux-gnu-"
-+
-+ cc = "${toolprefix}gcc"
-+ cxx = " ${toolprefix}g++"
-+ ar = "${toolprefix}ar"
-+ ld = cxx
-+ readelf = "${toolprefix}readelf"
-+ nm = "${toolprefix}nm"
-+
-+ toolchain_args = {
-+ cc_wrapper = ""
-+ current_cpu = "mipsel"
-+ current_os = "netbsd"
-+ is_clang = false
-+ use_goma = false
-+ }
-+}
-+
-+gcc_toolchain("mips64el") {
-+ toolprefix = "mips64el-linux-gnuabi64-"
-+
-+ cc = "${toolprefix}gcc"
-+ cxx = "${toolprefix}g++"
-+ ar = "${toolprefix}ar"
-+ ld = cxx
-+ readelf = "${toolprefix}readelf"
-+ nm = "${toolprefix}nm"
-+
-+ toolchain_args = {
-+ cc_wrapper = ""
-+ current_cpu = "mips64el"
-+ current_os = "netbsd"
-+ is_clang = false
-+ use_goma = false
-+ }
-+}
-+
-+clang_toolchain("clang_s390x") {
-+ toolchain_args = {
-+ current_cpu = "s390x"
-+ current_os = "netbsd"
-+ is_clang = true
-+ }
-+}
-+
-+gcc_toolchain("s390x") {
-+ cc = "gcc"
-+ cxx = "g++"
-+
-+ readelf = "readelf"
-+ nm = "nm"
-+ ar = "ar"
-+ ld = cxx
-+
-+ toolchain_args = {
-+ current_cpu = "s390x"
-+ current_os = "netbsd"
-+ is_clang = false
-+ }
-+}
-+
-+gcc_toolchain("ppc64") {
-+ cc = "gcc"
-+ cxx = "g++"
-+
-+ readelf = "readelf"
-+ nm = "nm"
-+ ar = "ar"
-+ ld = cxx
-+
-+ toolchain_args = {
-+ current_cpu = "ppc64"
-+ current_os = "netbsd"
-+ is_clang = false
-+ }
-+}
-+
-+gcc_toolchain("mips") {
-+ toolprefix = "mips-linux-gnu-"
-+
-+ cc = "${toolprefix}gcc"
-+ cxx = "${toolprefix}g++"
-+
-+ readelf = "${toolprefix}readelf"
-+ nm = "${toolprefix}nm"
-+ ar = "${toolprefix}ar"
-+ ld = cxx
-+
++clang_toolchain("clang_arm") {
+ toolchain_args = {
-+ current_cpu = "mips"
++ current_cpu = "arm64"
+ current_os = "netbsd"
-+ is_clang = false
+ }
+}
+
-+gcc_toolchain("mips64") {
-+ toolprefix = "mips64-linux-gnuabi64-"
-+
-+ cc = "${toolprefix}gcc"
-+ cxx = "${toolprefix}g++"
-+
-+ readelf = "${toolprefix}readelf"
-+ nm = "${toolprefix}nm"
-+ ar = "${toolprefix}ar"
-+ ld = cxx
-+
++clang_toolchain("clang_arm64") {
+ toolchain_args = {
-+ current_cpu = "mips64"
++ current_cpu = "arm64"
+ current_os = "netbsd"
-+ is_clang = false
+ }
+}
diff --git a/chromium/patches/patch-build_toolchain_openbsd_BUILD.gn b/chromium/patches/patch-build_toolchain_openbsd_BUILD.gn
new file mode 100644
index 0000000000..04d60f89c8
--- /dev/null
+++ b/chromium/patches/patch-build_toolchain_openbsd_BUILD.gn
@@ -0,0 +1,75 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- build/toolchain/openbsd/BUILD.gn.orig 2024-08-01 14:08:56.736384706 +0000
++++ build/toolchain/openbsd/BUILD.gn
+@@ -0,0 +1,66 @@
++# Copyright 2013 The Chromium Authors. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//build/config/sysroot.gni")
++import("//build/toolchain/gcc_toolchain.gni")
++
++clang_toolchain("clang_x86") {
++ toolchain_args = {
++ current_cpu = "x86"
++ current_os = "openbsd"
++ }
++}
++
++gcc_toolchain("x86") {
++ cc = "gcc"
++ cxx = "g++"
++
++ readelf = "readelf"
++ nm = "nm"
++ ar = "ar"
++ ld = cxx
++
++ toolchain_args = {
++ current_cpu = "x86"
++ current_os = "openbsd"
++ is_clang = false
++ }
++}
++
++clang_toolchain("clang_x64") {
++ toolchain_args = {
++ current_cpu = "x64"
++ current_os = "openbsd"
++ }
++}
++
++gcc_toolchain("x64") {
++ cc = "gcc"
++ cxx = "g++"
++
++ readelf = "readelf"
++ nm = "nm"
++ ar = "ar"
++ ld = cxx
++
++ toolchain_args = {
++ current_cpu = "x64"
++ current_os = "openbsd"
++ is_clang = false
++ }
++}
++
++clang_toolchain("clang_arm") {
++ toolchain_args = {
++ current_cpu = "arm64"
++ current_os = "openbsd"
++ }
++}
++
++clang_toolchain("clang_arm64") {
++ toolchain_args = {
++ current_cpu = "arm64"
++ current_os = "openbsd"
++ }
++}
diff --git a/chromium/patches/patch-build_toolchain_toolchain.gni b/chromium/patches/patch-build_toolchain_toolchain.gni
new file mode 100644
index 0000000000..b117f19bd3
--- /dev/null
+++ b/chromium/patches/patch-build_toolchain_toolchain.gni
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- build/toolchain/toolchain.gni.orig 2024-07-24 02:44:22.947455400 +0000
++++ build/toolchain/toolchain.gni
+@@ -68,7 +68,7 @@ if (host_os == "mac") {
+ host_shlib_extension = ".dylib"
+ } else if (host_os == "win") {
+ host_shlib_extension = ".dll"
+-} else if (host_os == "linux" || host_os == "aix") {
++} else if (is_posix) {
+ host_shlib_extension = ".so"
+ } else {
+ assert(false, "Host platform not supported")
diff --git a/chromium/patches/patch-cc_BUILD.gn b/chromium/patches/patch-cc_BUILD.gn
new file mode 100644
index 0000000000..46e7bde968
--- /dev/null
+++ b/chromium/patches/patch-cc_BUILD.gn
@@ -0,0 +1,25 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- cc/BUILD.gn.orig 2024-07-24 02:44:22.963457000 +0000
++++ cc/BUILD.gn
+@@ -686,7 +686,7 @@ cc_test_static_library("test_support") {
+ if (enable_vulkan) {
+ deps += [ "//gpu/vulkan/init" ]
+ }
+- if (!is_android) {
++ if (!is_android && !is_bsd) {
+ data_deps = [ "//third_party/mesa_headers" ]
+ }
+ if (skia_use_dawn) {
+@@ -945,7 +945,6 @@ cc_test("cc_unittests") {
+ data = [ "//components/test/data/viz/" ]
+ data_deps = [
+ "//testing/buildbot/filters:cc_unittests_filters",
+- "//third_party/mesa_headers",
+ ]
+
+ if (is_android && enable_chrome_android_internal) {
diff --git a/chromium/patches/patch-cc_base_features.cc b/chromium/patches/patch-cc_base_features.cc
new file mode 100644
index 0000000000..9e69888fa6
--- /dev/null
+++ b/chromium/patches/patch-cc_base_features.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- cc/base/features.cc.orig 2024-07-24 02:44:22.975458100 +0000
++++ cc/base/features.cc
+@@ -86,7 +86,7 @@ BASE_FEATURE(kNormalPriorityImageDecodin
+ // be using a separate flag to control the launch on GL.
+ BASE_FEATURE(kUseDMSAAForTiles,
+ "UseDMSAAForTiles",
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+ base::FEATURE_DISABLED_BY_DEFAULT
diff --git a/chromium/patches/patch-chrome_BUILD.gn b/chromium/patches/patch-chrome_BUILD.gn
deleted file mode 100644
index 7ea2b59269..0000000000
--- a/chromium/patches/patch-chrome_BUILD.gn
+++ /dev/null
@@ -1,40 +0,0 @@
-$NetBSD$
-
---- chrome/BUILD.gn.orig 2020-07-15 18:56:44.000000000 +0000
-+++ chrome/BUILD.gn
-@@ -28,7 +28,7 @@ import("//v8/gni/v8.gni")
-
- if (is_android) {
- import("//build/config/android/rules.gni")
--} else if (is_linux) {
-+} else if (is_linux || is_bsd) {
- import("//build/linux/extract_symbols.gni")
- } else if (is_mac) {
- import("//build/compiled_action.gni")
-@@ -131,7 +131,7 @@ if (!is_android && !is_mac) {
- deps = [ "//printing/buildflags" ]
-
- data = [ "$root_out_dir/resources.pak" ]
-- if (is_linux || is_win) {
-+ if (is_linux || is_win || is_bsd) {
- data_deps = [ "//chrome:packed_resources" ]
- }
-
-@@ -211,7 +211,7 @@ if (!is_android && !is_mac) {
- sources += [ "app/chrome_exe_main_aura.cc" ]
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "app/chrome_dll_resource.h",
- "app/chrome_main.cc",
-@@ -1536,7 +1536,7 @@ if (enable_resource_whitelist_generation
- }
- }
-
--if (is_linux) {
-+if (is_linux || is_bsd) {
- if (is_official_build) {
- group("linux_symbols") {
- deps = [
diff --git a/chromium/patches/patch-chrome_app_BUILD.gn b/chromium/patches/patch-chrome_app_BUILD.gn
deleted file mode 100644
index 6566e9b7fa..0000000000
--- a/chromium/patches/patch-chrome_app_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/app/BUILD.gn.orig 2020-06-25 09:31:20.000000000 +0000
-+++ chrome/app/BUILD.gn
-@@ -139,7 +139,7 @@ static_library("test_support") {
- "//v8:v8_headers",
- ]
-
-- if (!is_fuchsia) {
-+ if (!is_fuchsia && !is_bsd) {
- # TODO(crbug.com/753619): Enable crash reporting on Fuchsia.
- deps += [
- "//components/crash/core/app",
diff --git a/chromium/patches/patch-chrome_app_chrome__command__ids.h b/chromium/patches/patch-chrome_app_chrome__command__ids.h
index cc3d5ba7dc..31d907d117 100644
--- a/chromium/patches/patch-chrome_app_chrome__command__ids.h
+++ b/chromium/patches/patch-chrome_app_chrome__command__ids.h
@@ -1,13 +1,23 @@
$NetBSD$
---- chrome/app/chrome_command_ids.h.orig 2020-07-24 02:37:43.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/app/chrome_command_ids.h.orig 2024-07-24 02:44:23.755533700 +0000
+++ chrome/app/chrome_command_ids.h
-@@ -60,7 +60,7 @@
- #define IDC_MAXIMIZE_WINDOW 34047
- #define IDC_ALL_WINDOWS_FRONT 34048
+@@ -68,12 +68,12 @@
+ #define IDC_TOGGLE_MULTITASK_MENU 34050
+ #endif
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
#define IDC_USE_SYSTEM_TITLE_BAR 34051
+ #endif
+
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
#define IDC_RESTORE_WINDOW 34052
#endif
+
diff --git a/chromium/patches/patch-chrome_app_chrome__main.cc b/chromium/patches/patch-chrome_app_chrome__main.cc
index b7e64aeacf..8181a85d5a 100644
--- a/chromium/patches/patch-chrome_app_chrome__main.cc
+++ b/chromium/patches/patch-chrome_app_chrome__main.cc
@@ -1,13 +1,49 @@
$NetBSD$
---- chrome/app/chrome_main.cc.orig 2020-06-25 09:31:20.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/app/chrome_main.cc.orig 2024-07-24 02:44:23.755533700 +0000
+++ chrome/app/chrome_main.cc
-@@ -109,7 +109,7 @@ int ChromeMain(int argc, const char** ar
- MainThreadStackSamplingProfiler scoped_sampling_profiler;
-
- // Chrome-specific process modes.
--#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_BSD)
- if (command_line->HasSwitch(switches::kHeadless)) {
- return headless::HeadlessShellMain(params);
- }
+@@ -28,11 +28,11 @@
+ #include "chrome/app/chrome_main_mac.h"
+ #endif
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "base/base_switches.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/app/chrome_main_linux.h"
+ #endif
+
+@@ -80,7 +80,7 @@ int ChromeMain(int argc, const char** ar
+ #error Unknown platform.
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ PossiblyDetermineFallbackChromeChannel(argv[0]);
+ #endif
+
+@@ -141,7 +141,7 @@ int ChromeMain(int argc, const char** ar
+ SetUpBundleOverrides();
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ AppendExtraArgumentsToCommandLine(command_line);
+ #endif
+
+@@ -170,7 +170,7 @@ int ChromeMain(int argc, const char** ar
+ headless_mode_handle = headless::InitHeadlessMode();
+ } else {
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ if (headless::IsOldHeadlessMode()) {
+ #if BUILDFLAG(GOOGLE_CHROME_BRANDING)
+ command_line->AppendSwitch(::headless::switches::kEnableCrashReporter);
diff --git a/chromium/patches/patch-chrome_app_chrome__main__delegate.cc b/chromium/patches/patch-chrome_app_chrome__main__delegate.cc
index 4ada983e25..b61563f57f 100644
--- a/chromium/patches/patch-chrome_app_chrome__main__delegate.cc
+++ b/chromium/patches/patch-chrome_app_chrome__main__delegate.cc
@@ -1,100 +1,160 @@
$NetBSD$
---- chrome/app/chrome_main_delegate.cc.orig 2020-06-25 09:31:20.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/app/chrome_main_delegate.cc.orig 2024-07-24 02:44:23.755533700 +0000
+++ chrome/app/chrome_main_delegate.cc
-@@ -145,12 +145,12 @@
+@@ -138,7 +138,7 @@
+ #include "components/about_ui/credit_utils.h"
+ #endif
+
+-#if BUILDFLAG(ENABLE_NACL) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
++#if BUILDFLAG(ENABLE_NACL) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_BSD)
+ #include "components/nacl/common/nacl_paths.h"
+ #include "components/nacl/zygote/nacl_fork_delegate_linux.h"
+ #endif
+@@ -182,21 +182,21 @@
#include "v8/include/v8.h"
#endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "base/environment.h"
#endif
- #if defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_ANDROID) || \
-- defined(OS_LINUX)
-+ defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "base/nix/scoped_xdg_activation_token_injector.h"
+ #include "ui/linux/display_server_utils.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ #include "base/message_loop/message_pump_libevent.h"
+ #endif
+
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || \
+- BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "chrome/browser/policy/policy_path_parser.h"
#include "components/crash/core/app/crashpad.h"
#endif
-@@ -313,7 +313,7 @@ void AdjustLinuxOOMScore(const std::stri
+@@ -243,7 +243,7 @@
+ #include "base/scoped_add_feature_flags.h"
+ #include "ui/base/ui_base_features.h"
+ #include "ui/ozone/public/ozone_platform.h"
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/chrome_browser_main_extra_parts_linux.h"
+ #endif
+ #endif // BUILDFLAG(IS_OZONE)
+@@ -343,7 +343,7 @@ void AdjustLinuxOOMScore(const std::stri
// and resources loaded.
bool SubprocessNeedsResourceBundle(const std::string& process_type) {
return
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// The zygote process opens the resources for the renderers.
- process_type == service_manager::switches::kZygoteProcess ||
+ process_type == switches::kZygoteProcess ||
#endif
-@@ -352,7 +352,7 @@ bool HandleVersionSwitches(const base::C
- return false;
- }
+@@ -428,7 +428,7 @@ bool HandleVersionSwitches(const base::C
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_BSD)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
// Show the man page if --help or -h is on the command line.
void HandleHelpSwitches(const base::CommandLine& command_line) {
if (command_line.HasSwitch(switches::kHelp) ||
-@@ -416,7 +416,7 @@ void InitializeUserDataDir(base::Command
+@@ -474,7 +474,7 @@ void SetCrashpadUploadConsentPostLogin()
+ }
+ #endif // BUILDFLAG(IS_CHROMEOS_LACROS)
+
+-#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_ANDROID)
++#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_BSD)
+ void SIGTERMProfilingShutdown(int signal) {
+ content::Profiling::Stop();
+ struct sigaction sigact;
+@@ -556,7 +556,7 @@ std::optional<int> AcquireProcessSinglet
+ // process can be exited.
+ ChromeProcessSingleton::CreateInstance(user_data_dir);
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Read the xdg-activation token and set it in the command line for the
+ // duration of the notification in order to ensure this is propagated to an
+ // already running browser process if it exists.
+@@ -640,7 +640,7 @@ void InitializeUserDataDir(base::Command
std::string process_type =
command_line->GetSwitchValueASCII(switches::kProcessType);
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// On Linux, Chrome does not support running multiple copies under different
// DISPLAYs, so the profile directory can be specified in the environment to
// support the virtual desktop use-case.
-@@ -499,7 +499,7 @@ void RecordMainStartupMetrics(base::Time
- startup_metric_utils::RecordApplicationStartTime(now);
+@@ -767,7 +767,7 @@ void RecordMainStartupMetrics(base::Time
#endif
--#if defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
- // Record the startup process creation time on supported platforms.
- startup_metric_utils::RecordStartupProcessCreationTime(
- base::Process::Current().CreationTime());
-@@ -704,7 +704,7 @@ bool ChromeMainDelegate::BasicStartupCom
- *exit_code = 0;
- return true; // Got a --version switch; exit with a success error code.
- }
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_BSD)
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Record the startup process creation time on supported platforms. On Android
+ // this is recorded in ChromeMainDelegateAndroid.
+ startup_metric_utils::GetCommon().RecordStartupProcessCreationTime(
+@@ -959,7 +959,7 @@ std::optional<int> ChromeMainDelegate::P
+ #if BUILDFLAG(IS_OZONE)
+ // Initialize Ozone platform and add required feature flags as per platform's
+ // properties.
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ ui::SetOzonePlatformForLinuxIfNeeded(*base::CommandLine::ForCurrentProcess());
+ #endif
+ ui::OzonePlatform::PreEarlyInitialization();
+@@ -1154,7 +1154,7 @@ void ChromeMainDelegate::CommonEarlyInit
+ const bool is_canary_dev = IsCanaryDev();
+ const bool emit_crashes =
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ is_canary_dev;
+ #else
+ false;
+@@ -1309,7 +1309,7 @@ std::optional<int> ChromeMainDelegate::B
+
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag
+ // switch of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
// This will directly exit if the user asked for help.
HandleHelpSwitches(command_line);
#endif
-@@ -908,7 +908,7 @@ void ChromeMainDelegate::PreSandboxStart
-
- crash_reporter::InitializeCrashKeys();
-
--#if defined(OS_POSIX)
-+#if defined(OS_POSIX) && !defined(OS_BSD)
- ChromeCrashReporterClient::Create();
+@@ -1339,7 +1339,7 @@ std::optional<int> ChromeMainDelegate::B
+ #if BUILDFLAG(IS_CHROMEOS)
+ chromeos::dbus_paths::RegisterPathProvider();
#endif
-
-@@ -920,7 +920,7 @@ void ChromeMainDelegate::PreSandboxStart
- #if defined(OS_WIN)
- child_process_logging::Init();
+-#if BUILDFLAG(ENABLE_NACL) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
++#if BUILDFLAG(ENABLE_NACL) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD))
+ nacl::RegisterPathProvider();
#endif
--#if defined(ARCH_CPU_ARM_FAMILY) && (defined(OS_ANDROID) || defined(OS_LINUX))
-+#if defined(ARCH_CPU_ARM_FAMILY) && (defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD))
- // Create an instance of the CPU class to parse /proc/cpuinfo and cache
- // cpu_brand info.
- base::CPU cpu_info;
-@@ -1039,7 +1039,7 @@ void ChromeMainDelegate::PreSandboxStart
- locale;
+
+@@ -1726,7 +1726,7 @@ void ChromeMainDelegate::PreSandboxStart
+ CHECK(!loaded_locale.empty()) << "Locale could not be found for " << locale;
}
--#if defined(OS_POSIX) && !defined(OS_MACOSX)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD)
+-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD)
// Zygote needs to call InitCrashReporter() in RunZygote().
- if (process_type != service_manager::switches::kZygoteProcess) {
- #if defined(OS_ANDROID)
-@@ -1122,7 +1122,7 @@ int ChromeMainDelegate::RunProcess(
-
- // This entry is not needed on Linux, where the NaCl loader
- // process is launched via nacl_helper instead.
--#if BUILDFLAG(ENABLE_NACL) && !defined(OS_LINUX)
-+#if BUILDFLAG(ENABLE_NACL) && !defined(OS_LINUX) && !defined(OS_BSD)
- {switches::kNaClLoaderProcess, NaClMain},
- #else
- {"<invalid>", nullptr}, // To avoid constant array of size 0
+ if (process_type != switches::kZygoteProcess) {
+ if (command_line.HasSwitch(switches::kPreCrashpadCrashTest)) {
+@@ -1827,7 +1827,7 @@ absl::variant<int, content::MainFunction
+ {switches::kRelauncherProcess, mac_relauncher::internal::RelauncherMain},
+ {switches::kCodeSignCloneCleanupProcess,
+ code_sign_clone_manager::internal::ChromeCodeSignCloneCleanupMain},
+-#elif BUILDFLAG(ENABLE_NACL) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(ENABLE_NACL) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD)
+ // This entry is not needed on Linux, where the NaCl loader
+ // process is launched via nacl_helper instead.
+ {switches::kNaClLoaderProcess, NaClMain},
diff --git a/chromium/patches/patch-chrome_app_chromium__strings.grd b/chromium/patches/patch-chrome_app_chromium__strings.grd
deleted file mode 100644
index 6fda7a1be2..0000000000
--- a/chromium/patches/patch-chrome_app_chromium__strings.grd
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- chrome/app/chromium_strings.grd.orig 2020-07-08 21:41:46.000000000 +0000
-+++ chrome/app/chromium_strings.grd
-@@ -681,7 +681,7 @@ Chromium is unable to recover your setti
- </if>
-
- <!-- about:browser-switch strings -->
-- <if expr="is_win or is_macosx or (is_linux and not chromeos)">
-+ <if expr="is_win or is_macosx or (is_posix and not chromeos)">
- <message name="IDS_ABOUT_BROWSER_SWITCH_DESCRIPTION_UNKNOWN_BROWSER" desc="Description shown while waiting for an alternative browser to open, when the browser name is not auto-detected">
- Your system administrator has configured Chromium to open an alternative browser to access <ph name="TARGET_URL_HOSTNAME">$1<ex>example.com</ex></ph>.
- </message>
-@@ -782,7 +782,7 @@ Chromium is unable to recover your setti
- </message>
-
- <!-- ProcessSingleton -->
-- <if expr="is_linux or is_macosx">
-+ <if expr="is_posix or is_macosx">
- <message name="IDS_PROFILE_IN_USE_POSIX" desc="Message shown when the browser cannot start because the profile is in use on a different host.">
- The profile appears to be in use by another Chromium process (<ph name="PROCESS_ID">$1<ex>12345</ex></ph>) on another computer (<ph name="HOST_NAME">$2<ex>example.com</ex></ph>). Chromium has locked the profile so that it doesn't get corrupted. If you are sure no other processes are using this profile, you can unlock the profile and relaunch Chromium.
- </message>
-@@ -1004,7 +1004,7 @@ Chromium is unable to recover your setti
- </message>
-
- <!-- Plugin Placeholders -->
-- <if expr="is_linux">
-+ <if expr="is_posix">
- <message name="IDS_PLUGIN_RESTART_REQUIRED" desc="The placeholder text for a plugin that can't be loaded until the browser is restarted.">
- Restart Chromium to enable <ph name="PLUGIN_NAME">$1<ex>Flash</ex></ph>
- </message>
diff --git a/chromium/patches/patch-chrome_app_generated__resources.grd b/chromium/patches/patch-chrome_app_generated__resources.grd
deleted file mode 100644
index d9b4de246f..0000000000
--- a/chromium/patches/patch-chrome_app_generated__resources.grd
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- chrome/app/generated_resources.grd.orig 2020-07-15 18:56:44.000000000 +0000
-+++ chrome/app/generated_resources.grd
-@@ -5215,7 +5215,7 @@ Keep your key file in a safe place. You
- </if>
-
- <!-- chrome://browser-switch strings -->
-- <if expr="is_win or is_macosx or (is_linux and not chromeos)">
-+ <if expr="is_win or is_macosx or (is_linux and not chromeos) or is_bsd">
- <message name="IDS_ABOUT_BROWSER_SWITCH_TITLE" desc="about:browser-switch page title">
- Legacy Browser Support
- </message>
-@@ -6993,7 +6993,7 @@ the Bookmarks menu.">
- Google Pay
- </message>
-
-- <if expr="is_linux and not chromeos">
-+ <if expr="(is_linux and not chromeos) or is_bsd">
- <message name="IDS_SHOW_WINDOW_DECORATIONS" desc="The label of a radio button in the options dialog for using the system title bar and borders.">
- Use system title bar and borders
- </message>
-@@ -7942,7 +7942,7 @@ Please help our engineers fix this probl
- Set as default
- </message>
-
-- <if expr="is_linux and not chromeos">
-+ <if expr="(is_linux and not chromeos) or is_bsd">
- <message name="IDS_MINIMIZE_WINDOW_MENU" desc="The Linux browser window menu item text for minimizing the window.">
- Minimize
- </message>
diff --git a/chromium/patches/patch-chrome_app_google__chrome__strings.grd b/chromium/patches/patch-chrome_app_google__chrome__strings.grd
deleted file mode 100644
index 3de7b5a76c..0000000000
--- a/chromium/patches/patch-chrome_app_google__chrome__strings.grd
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- chrome/app/google_chrome_strings.grd.orig 2020-07-08 21:41:46.000000000 +0000
-+++ chrome/app/google_chrome_strings.grd
-@@ -688,7 +688,7 @@ Google Chrome is unable to recover your
- </if>
-
- <!-- about:browser-switch strings -->
-- <if expr="is_win or is_macosx or (is_linux and not chromeos)">
-+ <if expr="is_win or is_macosx or (is_posix and not chromeos)">
- <message name="IDS_ABOUT_BROWSER_SWITCH_DESCRIPTION_UNKNOWN_BROWSER" desc="Description shown while waiting for an alternative browser to open, when the browser name is not auto-detected">
- Your system administrator has configured Google Chrome to open an alternative browser to access <ph name="TARGET_URL_HOSTNAME">$1<ex>example.com</ex></ph>.
- </message>
-@@ -789,7 +789,7 @@ Google Chrome is unable to recover your
- </message>
-
- <!-- ProcessSingleton -->
-- <if expr="is_linux or is_macosx">
-+ <if expr="is_posix or is_macosx">
- <message name="IDS_PROFILE_IN_USE_POSIX" desc="Message shown when the browser cannot start because the profile is in use on a different host.">
- The profile appears to be in use by another Google Chrome process (<ph name="PROCESS_ID">$1<ex>12345</ex></ph>) on another computer (<ph name="HOST_NAME">$2<ex>example.com</ex></ph>). Chrome has locked the profile so that it doesn't get corrupted. If you are sure no other processes are using this profile, you can unlock the profile and relaunch Chrome.
- </message>
-@@ -1018,7 +1018,7 @@ Google Chrome is unable to recover your
- </message>
-
- <!-- Plugin Placeholders -->
-- <if expr="is_linux">
-+ <if expr="is_posix">
- <message name="IDS_PLUGIN_RESTART_REQUIRED" desc="The placeholder text for a plugin that can't be loaded until the browser is restarted.">
- Restart Chrome to enable <ph name="PLUGIN_NAME">$1<ex>Flash</ex></ph>
- </message>
diff --git a/chromium/patches/patch-chrome_app_settings__strings.grdp b/chromium/patches/patch-chrome_app_settings__strings.grdp
deleted file mode 100644
index e422441555..0000000000
--- a/chromium/patches/patch-chrome_app_settings__strings.grdp
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- chrome/app/settings_strings.grdp.orig 2020-07-08 21:41:46.000000000 +0000
-+++ chrome/app/settings_strings.grdp
-@@ -88,7 +88,7 @@
- Themes
- </message>
- </if>
-- <if expr="is_linux and not chromeos">
-+ <if expr="is_posix and not chromeos">
- <message name="IDS_SETTINGS_SYSTEM_THEME" desc="Text of the label describing the system (GTK+) browser theme on Linux">
- GTK+
- </message>
-@@ -102,7 +102,7 @@
- Use Classic
- </message>
- </if>
-- <if expr="not is_linux or chromeos">
-+ <if expr="not is_posix or chromeos">
- <message name="IDS_SETTINGS_RESET_TO_DEFAULT_THEME" desc="Name of the control which resets the browser theme back to the default theme.">
- Reset to default
- </message>
diff --git a/chromium/patches/patch-chrome_app_shutdown__signal__handlers__posix.cc b/chromium/patches/patch-chrome_app_shutdown__signal__handlers__posix.cc
deleted file mode 100644
index 23a9e7041d..0000000000
--- a/chromium/patches/patch-chrome_app_shutdown__signal__handlers__posix.cc
+++ /dev/null
@@ -1,24 +0,0 @@
-$NetBSD$
-
---- chrome/app/shutdown_signal_handlers_posix.cc.orig 2020-07-15 18:55:49.000000000 +0000
-+++ chrome/app/shutdown_signal_handlers_posix.cc
-@@ -186,6 +186,11 @@ void InstallShutdownSignalHandlers(
- g_pipe_pid = getpid();
- g_shutdown_pipe_read_fd = pipefd[0];
- g_shutdown_pipe_write_fd = pipefd[1];
-+#if defined(OS_BSD)
-+ // PTHREAD_STACK_MIN causes chromium to crash under FreeBSD,
-+ // we request the default pthread stack size by specifying 0 here.
-+ const size_t kShutdownDetectorThreadStackSize = 0;
-+#else
- #if !defined(ADDRESS_SANITIZER)
- const size_t kShutdownDetectorThreadStackSize = PTHREAD_STACK_MIN * 2;
- #else
-@@ -193,6 +198,7 @@ void InstallShutdownSignalHandlers(
- // stack size to avoid hitting the guard page.
- const size_t kShutdownDetectorThreadStackSize = PTHREAD_STACK_MIN * 4;
- #endif
-+#endif
- ShutdownDetector* detector = new ShutdownDetector(
- g_shutdown_pipe_read_fd, std::move(shutdown_callback), task_runner);
- // PlatformThread does not delete its delegate.
diff --git a/chromium/patches/patch-chrome_app_theme_chrome__unscaled__resources.grd b/chromium/patches/patch-chrome_app_theme_chrome__unscaled__resources.grd
deleted file mode 100644
index dc6148374b..0000000000
--- a/chromium/patches/patch-chrome_app_theme_chrome__unscaled__resources.grd
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/app/theme/chrome_unscaled_resources.grd.orig 2020-07-08 21:40:33.000000000 +0000
-+++ chrome/app/theme/chrome_unscaled_resources.grd
-@@ -18,7 +18,7 @@
- <include name="IDR_PRODUCT_LOGO_64" file="google_chrome/product_logo_64.png" type="BINDATA" />
- <include name="IDR_PRODUCT_LOGO_128" file="google_chrome/product_logo_128.png" type="BINDATA" />
- <include name="IDR_PRODUCT_LOGO_256" file="google_chrome/product_logo_256.png" type="BINDATA" />
-- <if expr="is_linux">
-+ <if expr="is_posix">
- <include name="IDR_PRODUCT_LOGO_128_BETA" file="google_chrome/product_logo_128_beta.png" type="BINDATA" />
- <include name="IDR_PRODUCT_LOGO_128_DEV" file="google_chrome/product_logo_128_dev.png" type="BINDATA" />
- </if>
diff --git a/chromium/patches/patch-chrome_app_theme_theme__resources.grd b/chromium/patches/patch-chrome_app_theme_theme__resources.grd
deleted file mode 100644
index 31ebd0752a..0000000000
--- a/chromium/patches/patch-chrome_app_theme_theme__resources.grd
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/app/theme/theme_resources.grd.orig 2020-07-08 21:41:46.000000000 +0000
-+++ chrome/app/theme/theme_resources.grd
-@@ -25,7 +25,7 @@
- <!-- KEEP THESE IN ALPHABETICAL ORDER! DO NOT ADD TO RANDOM PLACES JUST
- BECAUSE YOUR RESOURCES ARE FUNCTIONALLY RELATED OR FALL UNDER THE
- SAME CONDITIONALS. -->
-- <if expr="is_linux or is_win or chromeos">
-+ <if expr="is_posix or is_win or chromeos">
- <structure type="chrome_scaled_image" name="IDR_ACCESSIBILITY_CAPTIONS_PREVIEW_BACKGROUND" file="common/captions-preview-bg.png" />
- </if>
- <if expr="toolkit_views and not is_macosx">
diff --git a/chromium/patches/patch-chrome_browser_BUILD.gn b/chromium/patches/patch-chrome_browser_BUILD.gn
index dfc9c27624..2aaa6fc128 100644
--- a/chromium/patches/patch-chrome_browser_BUILD.gn
+++ b/chromium/patches/patch-chrome_browser_BUILD.gn
@@ -1,66 +1,22 @@
$NetBSD$
---- chrome/browser/BUILD.gn.orig 2020-07-15 18:56:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/BUILD.gn.orig 2024-07-24 02:44:25.787730500 +0000
+++ chrome/browser/BUILD.gn
-@@ -4342,7 +4342,7 @@ static_library("browser") {
- ]
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "chrome_browser_main_linux.cc",
- "chrome_browser_main_linux.h",
-@@ -4437,7 +4437,7 @@ static_library("browser") {
- sources += [ "hang_monitor/hang_crash_dump.cc" ]
- }
-
-- if (is_win || is_linux) {
-+ if (is_win || is_linux || is_bsd) {
- sources += [
- "renderer_context_menu/spelling_options_submenu_observer.cc",
- "renderer_context_menu/spelling_options_submenu_observer.h",
-@@ -4574,7 +4574,7 @@ static_library("browser") {
- ]
- }
-
-- if (is_posix && !is_mac) {
-+ if (is_posix && !is_mac && !is_bsd) {
- # TODO(crbug.com/753619): Enable crash reporting on Fuchsia.
- sources += [
- "//chrome/app/chrome_crash_reporter_client.cc",
-@@ -4587,14 +4587,14 @@ static_library("browser") {
- ]
- }
-
-- if (is_win || is_mac || (is_linux && !is_chromeos)) {
-+ if (is_win || is_mac || ((is_linux || is_bsd) && !is_chromeos)) {
- sources += [
- "password_manager/password_store_signin_notifier_impl.cc",
- "password_manager/password_store_signin_notifier_impl.h",
- ]
+@@ -6672,6 +6672,13 @@ static_library("browser") {
+ }
}
-- if (is_win || is_mac || is_linux) {
-+ if (is_win || is_mac || is_linux || is_bsd) {
++ if (is_bsd) {
++ sources -= [
++ "metrics/bluetooth_metrics_provider.cc",
++ "metrics/bluetooth_metrics_provider.h",
++ ]
++ }
++
+ if (is_linux && use_dbus) {
sources += [
- "crash_upload_list/crash_upload_list_crashpad.cc",
- "crash_upload_list/crash_upload_list_crashpad.h",
-@@ -4732,7 +4732,7 @@ static_library("browser") {
- if (is_mac) {
- sources += [ "printing/printer_manager_dialog_mac.mm" ]
- }
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [ "printing/printer_manager_dialog_linux.cc" ]
- }
- if (is_win || enable_print_preview) {
-@@ -5824,7 +5824,7 @@ grit("resources") {
- if (is_chromeos) {
- inputs = [ "resources/plugin_metadata/plugins_chromeos.json" ]
- }
-- if (is_linux && !is_chromeos) {
-+ if ((is_linux || is_bsd) && !is_chromeos) {
- inputs = [ "resources/plugin_metadata/plugins_linux.json" ]
- }
- if (is_mac) {
+ "dbus_memory_pressure_evaluator_linux.cc",
diff --git a/chromium/patches/patch-chrome_browser_about__flags.cc b/chromium/patches/patch-chrome_browser_about__flags.cc
index 7299fde473..199ae693ee 100644
--- a/chromium/patches/patch-chrome_browser_about__flags.cc
+++ b/chromium/patches/patch-chrome_browser_about__flags.cc
@@ -1,94 +1,272 @@
$NetBSD$
---- chrome/browser/about_flags.cc.orig 2020-07-08 21:41:46.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/about_flags.cc.orig 2024-07-24 02:44:25.791730900 +0000
+++ chrome/browser/about_flags.cc
-@@ -181,7 +181,7 @@
- #include "ui/gl/gl_switches.h"
- #include "ui/native_theme/native_theme_features.h"
+@@ -238,7 +238,7 @@
+ #include "ui/ui_features.h"
+ #include "url/url_features.h"
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "base/allocator/buildflags.h"
#endif
-@@ -837,7 +837,7 @@ const FeatureEntry::Choice kMemlogSampli
- heap_profiling::kMemlogSamplingRate5MB},
+@@ -332,7 +332,7 @@
+ #include "device/vr/public/cpp/features.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ #include "ui/ozone/public/ozone_switches.h"
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
+
+@@ -341,7 +341,7 @@
+ #include "chrome/browser/win/mica_titlebar.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/profile_management/profile_management_features.h"
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
+
+@@ -476,7 +476,7 @@ const FeatureEntry::FeatureVariation kDX
+ {"Max 3 Frames", &kDXGIWaitableSwapChain3Frames, 1, nullptr}};
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const FeatureEntry::Choice kOzonePlatformHintRuntimeChoices[] = {
+ {flag_descriptions::kOzonePlatformHintChoiceDefault, "", ""},
+ {flag_descriptions::kOzonePlatformHintChoiceAuto,
+@@ -847,6 +847,26 @@ const FeatureEntry::FeatureVariation
+ std::size(kWebIdentityDigitalIdentityCredentialHighRiskDialogParam),
+ nullptr}};
+
++#if BUILDFLAG(IS_BSD)
++const FeatureEntry::FeatureParam kAudioBackendPulseAudio[] = {
++ { "audio-backend", "pulseaudio" }};
++const FeatureEntry::FeatureParam kAudioBackendSndio[] = {
++ { "audio-backend", "sndio" }};
++const FeatureEntry::FeatureParam kAudioBackendAlsa[] = {
++ { "audio-backend", "alsa" }};
++const FeatureEntry::FeatureVariation
++ kAudioBackendVariations[] = {
++ {"using PulseAudio by default if available", kAudioBackendPulseAudio,
++ std::size(kAudioBackendPulseAudio),
++ nullptr},
++ {"using sndio by default if available", kAudioBackendSndio,
++ std::size(kAudioBackendSndio),
++ nullptr},
++ {"using ALSA by default if available", kAudioBackendAlsa,
++ std::size(kAudioBackendAlsa),
++ nullptr}};
++#endif
++
+ const FeatureEntry::FeatureParam kClipboardMaximumAge60Seconds[] = {
+ {"UIClipboardMaximumAge", "60"}};
+ const FeatureEntry::FeatureParam kClipboardMaximumAge90Seconds[] = {
+@@ -1260,7 +1280,7 @@ const FeatureEntry::FeatureVariation kPa
+ };
+
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ const FeatureEntry::FeatureParam kHistoryEmbeddingsAtKeywordAcceleration[]{
+ {"AtKeywordAcceleration", "true"},
+ };
+@@ -1323,7 +1343,7 @@ const FeatureEntry::FeatureVariation
};
--#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_BSD)
- const FeatureEntry::FeatureParam kOmniboxDocumentProviderServerScoring[] = {
- {"DocumentUseServerScore", "true"},
- {"DocumentUseClientScore", "false"},
-@@ -2488,7 +2488,7 @@ const FeatureEntry kFeatureEntries[] = {
- flag_descriptions::kCloudPrintXpsDescription, kOsWin,
- SINGLE_VALUE_TYPE(switches::kEnableCloudPrintXps)},
- #endif // OS_WIN
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
- {"enable-webgl2-compute-context",
- flag_descriptions::kWebGL2ComputeContextName,
- flag_descriptions::kWebGL2ComputeContextDescription,
-@@ -2682,7 +2682,7 @@ const FeatureEntry kFeatureEntries[] = {
- flag_descriptions::kEnableOfflinePreviewsDescription, kOsAndroid,
- FEATURE_VALUE_TYPE(previews::features::kOfflinePreviews)},
- #endif // OS_ANDROID
--#if defined(OS_CHROMEOS) || defined(OS_LINUX)
-+#if defined(OS_CHROMEOS) || defined(OS_LINUX) || defined(OS_BSD)
- {"enable-save-data", flag_descriptions::kEnableSaveDataName,
- flag_descriptions::kEnableSaveDataDescription, kOsCrOS | kOsLinux,
- SINGLE_VALUE_TYPE(
-@@ -3426,7 +3426,7 @@ const FeatureEntry kFeatureEntries[] = {
- FEATURE_VALUE_TYPE(
- omnibox::kHistoryQuickProviderAllowMidwordContinuations)},
-
--#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_BSD)
- {"omnibox-experimental-keyword-mode",
- flag_descriptions::kOmniboxExperimentalKeywordModeName,
- flag_descriptions::kOmniboxExperimentalKeywordModeDescription, kOsDesktop,
-@@ -3720,7 +3720,7 @@ const FeatureEntry kFeatureEntries[] = {
- flag_descriptions::kClickToOpenPDFDescription, kOsAll,
- FEATURE_VALUE_TYPE(features::kClickToOpenPDFPlaceholder)},
-
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
- {"direct-manipulation-stylus",
- flag_descriptions::kDirectManipulationStylusName,
- flag_descriptions::kDirectManipulationStylusDescription,
-@@ -4408,7 +4408,7 @@ const FeatureEntry kFeatureEntries[] = {
- #endif // BUILDFLAG(ENABLE_CLICK_TO_CALL)
-
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
-- defined(OS_CHROMEOS)
-+ defined(OS_CHROMEOS) || defined(OS_BSD)
- {"remote-copy-receiver", flag_descriptions::kRemoteCopyReceiverName,
- flag_descriptions::kRemoteCopyReceiverDescription, kOsDesktop,
- FEATURE_VALUE_TYPE(kRemoteCopyReceiver)},
-@@ -4451,7 +4451,7 @@ const FeatureEntry kFeatureEntries[] = {
- send_tab_to_self::kSendTabToSelfOmniboxSendingAnimation)},
-
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
-- defined(OS_CHROMEOS)
-+ defined(OS_CHROMEOS) || defined(OS_BSD)
- {"sharing-peer-connection-receiver",
- flag_descriptions::kSharingPeerConnectionReceiverName,
- flag_descriptions::kSharingPeerConnectionReceiverDescription, kOsDesktop,
-@@ -4537,7 +4537,7 @@ const FeatureEntry kFeatureEntries[] = {
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ const FeatureEntry::FeatureParam kShortcutBoostSingleUrl[] = {
+ {"ShortcutBoostSearchScore", "0"},
+ {"ShortcutBoostNonTopHitThreshold", "0"},
+@@ -3811,7 +3831,7 @@ const flags_ui::FeatureEntry::FeatureVar
+ std::size(kParcelTrackingTestDataOutForDelivery), nullptr},
+ };
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ const flags_ui::FeatureEntry::FeatureParam
+ kDesktopPWAsLinkCapturingDefaultOn[] = {{"on_by_default", "true"}};
+ const flags_ui::FeatureEntry::FeatureParam
+@@ -4784,7 +4804,7 @@ const FeatureEntry kFeatureEntries[] = {
+ },
+ #endif // BUILDFLAG(IS_ANDROID)
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ {
+ "fluent-overlay-scrollbars",
+ flag_descriptions::kFluentOverlayScrollbarsName,
+@@ -5200,7 +5220,7 @@ const FeatureEntry kFeatureEntries[] = {
+ flag_descriptions::kWebAppUniversalInstallDescription, kOsDesktop,
+ FEATURE_VALUE_TYPE(features::kWebAppUniversalInstall)},
+ #endif // !BUILDFLAG(IS_ANDROID)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ {"shortcuts-not-apps", flag_descriptions::kShortcutsNotAppsName,
+ flag_descriptions::kShortcutsNotAppsDescription,
+ kOsMac | kOsWin | kOsLinux,
+@@ -5332,7 +5352,7 @@ const FeatureEntry kFeatureEntries[] = {
+ FEATURE_VALUE_TYPE(features::kWebShare)},
+ #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ {"pulseaudio-loopback-for-cast",
+ flag_descriptions::kPulseaudioLoopbackForCastName,
+ flag_descriptions::kPulseaudioLoopbackForCastDescription, kOsLinux,
+@@ -5346,9 +5366,19 @@ const FeatureEntry kFeatureEntries[] = {
+ {"ozone-platform-hint", flag_descriptions::kOzonePlatformHintName,
+ flag_descriptions::kOzonePlatformHintDescription, kOsLinux,
+ MULTI_VALUE_TYPE(kOzonePlatformHintRuntimeChoices)},
++
++#if BUILDFLAG(IS_BSD)
++ {"audio-backend",
++ flag_descriptions::kAudioBackendName,
++ flag_descriptions::kAudioBackendDescription, kOsLinux,
++ FEATURE_WITH_PARAMS_VALUE_TYPE(
++ media::kAudioBackend,
++ kAudioBackendVariations,
++ "AudioBackend")},
++#endif
+ #endif // BUILDFLAG(IS_LINUX)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ {"skip-undecryptable-passwords",
+ flag_descriptions::kSkipUndecryptablePasswordsName,
+ flag_descriptions::kSkipUndecryptablePasswordsDescription,
+@@ -6286,7 +6316,7 @@ const FeatureEntry kFeatureEntries[] = {
+ FEATURE_VALUE_TYPE(omnibox::kZeroSuggestInMemoryCaching)},
+
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ {"omnibox-domain-suggestions",
+ flag_descriptions::kOmniboxDomainSuggestionsName,
+ flag_descriptions::kOmniboxDomainSuggestionsDescription, kOsDesktop,
+@@ -6620,7 +6650,7 @@ const FeatureEntry kFeatureEntries[] = {
+ "OrganicRepeatableQueries")},
+
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ {"history-embeddings", flag_descriptions::kHistoryEmbeddingsName,
+ flag_descriptions::kHistoryEmbeddingsDescription, kOsDesktop,
+ FEATURE_WITH_PARAMS_VALUE_TYPE(history_embeddings::kHistoryEmbeddings,
+@@ -7310,7 +7340,7 @@ const FeatureEntry kFeatureEntries[] = {
+ FEATURE_VALUE_TYPE(printing::features::kAddPrinterViaPrintscanmgr)},
+ #endif // BUILDFLAG(IS_CHROMEOS)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ {"cups-ipp-printing-backend",
+ flag_descriptions::kCupsIppPrintingBackendName,
+ flag_descriptions::kCupsIppPrintingBackendDescription, kOsDesktop,
+@@ -8309,7 +8339,7 @@ const FeatureEntry kFeatureEntries[] = {
+ flag_descriptions::kCooperativeSchedulingDescription, kOsAll,
+ FEATURE_VALUE_TYPE(features::kCooperativeScheduling)},
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ {"enable-network-service-sandbox",
+ flag_descriptions::kEnableNetworkServiceSandboxName,
+ flag_descriptions::kEnableNetworkServiceSandboxDescription,
+@@ -8333,7 +8363,7 @@ const FeatureEntry kFeatureEntries[] = {
+ FEATURE_VALUE_TYPE(media::kV4L2FlatStatefulVideoDecoder)},
+ #endif
+
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ {"enable-family-link-extensions-permissions",
+ flag_descriptions::
+ kEnableExtensionsPermissionsForSupervisedUsersOnDesktopName,
+@@ -9195,7 +9225,7 @@ const FeatureEntry kFeatureEntries[] = {
+ FEATURE_VALUE_TYPE(ash::features::kWallpaperPerDesk)},
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH)
+
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ {"enable-get-all-screens-media", flag_descriptions::kGetAllScreensMediaName,
+ flag_descriptions::kGetAllScreensMediaDescription,
+ kOsCrOS | kOsLacros | kOsLinux,
+@@ -9234,7 +9264,7 @@ const FeatureEntry kFeatureEntries[] = {
+
+ #if BUILDFLAG(IS_WIN) || \
+ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || \
+- BUILDFLAG(IS_MAC)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ {
+ "ui-debug-tools",
+ flag_descriptions::kUIDebugToolsName,
+@@ -9476,7 +9506,7 @@ const FeatureEntry kFeatureEntries[] = {
#endif
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
-- defined(OS_CHROMEOS)
-+ defined(OS_CHROMEOS) || defined(OS_BSD)
- {"enable-reopen-tab-in-product-help",
- flag_descriptions::kReopenTabInProductHelpName,
- flag_descriptions::kReopenTabInProductHelpDescription, kOsDesktop,
-@@ -5004,7 +5004,7 @@ const FeatureEntry kFeatureEntries[] = {
- flag_descriptions::kEnableSyncTrustedVaultDescription, kOsAll,
- FEATURE_VALUE_TYPE(switches::kSyncSupportTrustedVaultPassphrase)},
-
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
- {"global-media-controls", flag_descriptions::kGlobalMediaControlsName,
- flag_descriptions::kGlobalMediaControlsDescription,
- kOsWin | kOsMac | kOsLinux,
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_ASH)
++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ {"policy-indication-for-managed-default-search",
+ flag_descriptions::kPolicyIndicationForManagedDefaultSearchName,
+ flag_descriptions::kPolicyIndicationForManagedDefaultSearchDescription,
+@@ -9789,7 +9819,7 @@ const FeatureEntry kFeatureEntries[] = {
+ #endif
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ {"media-session-enter-picture-in-picture",
+ flag_descriptions::kMediaSessionEnterPictureInPictureName,
+ flag_descriptions::kMediaSessionEnterPictureInPictureDescription,
+@@ -10684,7 +10714,7 @@ const FeatureEntry kFeatureEntries[] = {
+ kOsDesktop | kOsAndroid,
+ FEATURE_VALUE_TYPE(features::kProcessPerSiteUpToMainFrameThreshold)},
+
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ {"camera-mic-effects", flag_descriptions::kCameraMicEffectsName,
+ flag_descriptions::kCameraMicEffectsDescription,
+ static_cast<unsigned short>(kOsMac | kOsWin | kOsLinux),
+@@ -10722,7 +10752,7 @@ const FeatureEntry kFeatureEntries[] = {
+ FEATURE_VALUE_TYPE(features::kSiteInstanceGroupsForDataUrls)},
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ {"site-search-settings-policy",
+ flag_descriptions::kSiteSearchSettingsPolicyName,
+ flag_descriptions::kSiteSearchSettingsPolicyDescription, kOsAll,
+@@ -10846,7 +10876,7 @@ const FeatureEntry kFeatureEntries[] = {
+ flag_descriptions::kHideIncognitoMediaMetadataDescription, kOsAll,
+ FEATURE_VALUE_TYPE(media::kHideIncognitoMediaMetadata)},
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ {"third-party-profile-management",
+ flag_descriptions::kThirdPartyProfileManagementName,
+ flag_descriptions::kThirdPartyProfileManagementDescription,
+@@ -11182,7 +11212,7 @@ const FeatureEntry kFeatureEntries[] = {
+ trusted_vault::kTrustedVaultFrequentDegradedRecoverabilityPolling)},
+ #endif
+
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ {"restart-to-gain-access-to-keychain",
+ flag_descriptions::kRestartToGainAccessToKeychainName,
+ flag_descriptions::kRestartToGainAccessToKeychainDescription,
+@@ -11469,7 +11499,7 @@ const FeatureEntry kFeatureEntries[] = {
+
+ // Controls the view mode for (history) sync screen.
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || \
+- BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ {"minor-mode-restrictions-for-history-sync-opt-in",
+ flag_descriptions::kMinorModeRestrictionsForHistorySyncOptInName,
+ flag_descriptions::kMinorModeRestrictionsForHistorySyncOptInDescription,
diff --git a/chromium/patches/patch-chrome_browser_after__startup__task__utils.cc b/chromium/patches/patch-chrome_browser_after__startup__task__utils.cc
index 418bb61bdd..8b792c1741 100644
--- a/chromium/patches/patch-chrome_browser_after__startup__task__utils.cc
+++ b/chromium/patches/patch-chrome_browser_after__startup__task__utils.cc
@@ -1,31 +1,17 @@
$NetBSD$
---- chrome/browser/after_startup_task_utils.cc.orig 2020-07-08 21:40:33.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/after_startup_task_utils.cc.orig 2024-07-24 02:44:25.799731700 +0000
+++ chrome/browser/after_startup_task_utils.cc
-@@ -32,7 +32,7 @@
- #include "chrome/browser/ui/tabs/tab_strip_model.h"
- #endif
-
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- #include "ui/views/linux_ui/linux_ui.h"
- #endif
-
-@@ -119,7 +119,7 @@ void QueueTask(std::unique_ptr<AfterStar
-
- void SetBrowserStartupIsComplete() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
--#if defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
+@@ -117,7 +117,7 @@ void SetBrowserStartupIsComplete() {
+ TRACE_EVENT_SCOPE_GLOBAL, "BrowserCount", browser_count);
+ GetStartupCompleteFlag().Set();
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// Process::Current().CreationTime() is not available on all platforms.
const base::Time process_creation_time =
base::Process::Current().CreationTime();
-@@ -136,7 +136,7 @@ void SetBrowserStartupIsComplete() {
- g_after_startup_tasks.Get().clear();
- g_after_startup_tasks.Get().shrink_to_fit();
-
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- // Make sure we complete the startup notification sequence, or launchers will
- // get confused by not receiving the expected message from the main process.
- views::LinuxUI* linux_ui = views::LinuxUI::instance();
diff --git a/chromium/patches/patch-chrome_browser_apps_app__service_publishers_extension__apps.cc b/chromium/patches/patch-chrome_browser_apps_app__service_publishers_extension__apps.cc
new file mode 100644
index 0000000000..3696b55e21
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_apps_app__service_publishers_extension__apps.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/apps/app_service/publishers/extension_apps.cc.orig 2024-07-24 02:44:25.955747000 +0000
++++ chrome/browser/apps/app_service/publishers/extension_apps.cc
+@@ -23,7 +23,7 @@ ExtensionApps::ExtensionApps(AppServiceP
+ ExtensionApps::~ExtensionApps() = default;
+
+ bool ExtensionApps::Accepts(const extensions::Extension* extension) {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (extensions::IsExtensionUnsupportedDeprecatedApp(profile(),
+ extension->id())) {
+ return false;
diff --git a/chromium/patches/patch-chrome_browser_apps_platform__apps_platform__app__launch.cc b/chromium/patches/patch-chrome_browser_apps_platform__apps_platform__app__launch.cc
new file mode 100644
index 0000000000..688042741d
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_apps_platform__apps_platform__app__launch.cc
@@ -0,0 +1,71 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/apps/platform_apps/platform_app_launch.cc.orig 2024-07-24 02:44:25.983749600 +0000
++++ chrome/browser/apps/platform_apps/platform_app_launch.cc
+@@ -19,7 +19,7 @@
+ #include "extensions/common/constants.h"
+ #include "extensions/common/extension.h"
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/browser.h"
+ #include "chrome/browser/ui/browser_navigator.h"
+ #include "chrome/browser/ui/browser_window.h"
+@@ -86,7 +86,7 @@ bool OpenExtensionApplicationWindow(Prof
+ if (launch_container == LaunchContainer::kLaunchContainerTab)
+ return false;
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (OpenDeprecatedApplicationPrompt(profile, app_id)) {
+ return false;
+ }
+@@ -118,7 +118,7 @@ content::WebContents* OpenExtensionAppli
+ if (launch_container != apps::LaunchContainer::kLaunchContainerTab)
+ return nullptr;
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (OpenDeprecatedApplicationPrompt(profile, app_id)) {
+ return nullptr;
+ }
+@@ -134,7 +134,7 @@ content::WebContents* OpenExtensionAppli
+ return app_tab;
+ }
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool OpenDeprecatedApplicationPrompt(Profile* profile,
+ const std::string& app_id) {
+ if (!extensions::IsExtensionUnsupportedDeprecatedApp(profile, app_id))
+@@ -170,7 +170,7 @@ bool OpenExtensionApplicationWithReenabl
+ if (!GetPlatformApp(profile, app_id))
+ return false;
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (OpenDeprecatedApplicationPrompt(profile, app_id)) {
+ return false;
+ }
+@@ -192,7 +192,7 @@ content::WebContents* OpenExtensionAppSh
+ ->enabled_extensions()
+ .GetAppByURL(url);
+ if (app) {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (OpenDeprecatedApplicationPrompt(profile, app->id())) {
+ return nullptr;
+ }
+@@ -215,7 +215,7 @@ void RecordExtensionAppLaunchOnTabRestor
+ if (!extension)
+ return;
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (OpenDeprecatedApplicationPrompt(profile, extension->id())) {
+ return;
+ }
diff --git a/chromium/patches/patch-chrome_browser_apps_platform__apps_platform__app__launch.h b/chromium/patches/patch-chrome_browser_apps_platform__apps_platform__app__launch.h
new file mode 100644
index 0000000000..8ea6c2042b
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_apps_platform__apps_platform__app__launch.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/apps/platform_apps/platform_app_launch.h.orig 2024-07-24 02:44:25.983749600 +0000
++++ chrome/browser/apps/platform_apps/platform_app_launch.h
+@@ -38,7 +38,7 @@ bool OpenExtensionApplicationWindow(Prof
+ content::WebContents* OpenExtensionApplicationTab(Profile* profile,
+ const std::string& app_id);
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Opens the deprecated Chrome Apps flow if |app_id| refers to a Chrome App and
+ // Chrome Apps are deprecated on the |profile|. Returns true if that was the
+ // case, or false otherwise.
diff --git a/chromium/patches/patch-chrome_browser_apps_platform_apps_api_music__manager__private_device__id__linux.cc b/chromium/patches/patch-chrome_browser_apps_platform_apps_api_music__manager__private_device__id__linux.cc
deleted file mode 100644
index 03f687dcad..0000000000
--- a/chromium/patches/patch-chrome_browser_apps_platform_apps_api_music__manager__private_device__id__linux.cc
+++ /dev/null
@@ -1,72 +0,0 @@
-$NetBSD$
-
---- chrome/browser/apps/platform_apps/api/music_manager_private/device_id_linux.cc.orig 2020-07-15 18:56:45.000000000 +0000
-+++ chrome/browser/apps/platform_apps/api/music_manager_private/device_id_linux.cc
-@@ -4,6 +4,11 @@
-
- #include "chrome/browser/apps/platform_apps/api/music_manager_private/device_id.h"
-
-+#if defined(OS_BSD)
-+#include <sys/types.h>
-+#include <net/if_dl.h>
-+#endif
-+
- #include <ifaddrs.h>
- #include <net/if.h>
- #include <stddef.h>
-@@ -106,9 +111,36 @@ class MacAddressProcessor {
- const char* const prefixes[],
- size_t prefixes_count) {
- const int MAC_LENGTH = 6;
-+#if defined(OS_BSD)
-+ struct ifaddrs *ifap, *ifinfo;
-+#else
- struct ifreq ifinfo;
-+#endif
-
- memset(&ifinfo, 0, sizeof(ifinfo));
-+
-+#if defined(OS_BSD)
-+ int result = getifaddrs(&ifap);
-+
-+ if (result != 0)
-+ return true;
-+
-+ result = 1; // no MAC found yet
-+
-+ for (ifinfo = ifap; ifinfo != NULL; ifinfo = ifinfo->ifa_next) {
-+ struct sockaddr* sa = ifinfo->ifa_addr;
-+ if (sa->sa_family == AF_LINK &&
-+ !strncmp(ifinfo->ifa_name, ifaddr->ifa_name,
-+ sizeof(ifinfo->ifa_name) - 1)) {
-+ result = 0;
-+ break;
-+ }
-+ }
-+
-+ char mac_address[6];
-+
-+ strncpy(mac_address, (const char*)LLADDR((struct sockaddr_dl*)ifinfo->ifa_addr), sizeof(mac_address));
-+#else
- strncpy(ifinfo.ifr_name, ifaddr->ifa_name, sizeof(ifinfo.ifr_name) - 1);
-
- int sd = socket(AF_INET, SOCK_DGRAM, 0);
-@@ -120,11 +152,18 @@ class MacAddressProcessor {
-
- const char* mac_address =
- static_cast<const char*>(ifinfo.ifr_hwaddr.sa_data);
-+#endif
-+
- if (!is_valid_mac_address_.Run(mac_address, MAC_LENGTH))
- return true;
-
-+#if defined(OS_BSD)
-+ if (!IsValidPrefix(ifinfo->ifa_name, prefixes, prefixes_count))
-+ return true;
-+#else
- if (!IsValidPrefix(ifinfo.ifr_name, prefixes, prefixes_count))
- return true;
-+#endif
-
- // Got one!
- found_mac_address_ =
diff --git a/chromium/patches/patch-chrome_browser_autocomplete_chrome__autocomplete__scheme__classifier.cc b/chromium/patches/patch-chrome_browser_autocomplete_chrome__autocomplete__scheme__classifier.cc
index 9ca810ee83..7f75361ff4 100644
--- a/chromium/patches/patch-chrome_browser_autocomplete_chrome__autocomplete__scheme__classifier.cc
+++ b/chromium/patches/patch-chrome_browser_autocomplete_chrome__autocomplete__scheme__classifier.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc.orig 2020-07-08 21:40:33.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc.orig 2024-07-24 02:44:26.783827000 +0000
+++ chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc
-@@ -86,7 +86,7 @@ ChromeAutocompleteSchemeClassifier::GetI
+@@ -88,7 +88,7 @@ ChromeAutocompleteSchemeClassifier::GetI
return metrics::OmniboxInputType::QUERY;
case ExternalProtocolHandler::UNKNOWN: {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // Linux impl of GetApplicationNameForProtocol doesn't distinguish
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Linux impl of GetApplicationNameForScheme doesn't distinguish
// between URL schemes with handers and those without. This will
// make the default behaviour be search on Linux.
diff --git a/chromium/patches/patch-chrome_browser_background_background__mode__manager.cc b/chromium/patches/patch-chrome_browser_background_background__mode__manager.cc
index e0eb1f72d1..ce1975fd51 100644
--- a/chromium/patches/patch-chrome_browser_background_background__mode__manager.cc
+++ b/chromium/patches/patch-chrome_browser_background_background__mode__manager.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- chrome/browser/background/background_mode_manager.cc.orig 2020-07-08 21:40:33.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/background/background_mode_manager.cc.orig 2024-07-24 02:44:26.811829800 +0000
+++ chrome/browser/background/background_mode_manager.cc
-@@ -849,7 +849,7 @@ gfx::ImageSkia GetStatusTrayIcon() {
+@@ -872,7 +872,7 @@ gfx::ImageSkia GetStatusTrayIcon() {
return gfx::ImageSkia();
return family->CreateExact(size).AsImageSkia();
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
return *ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
IDR_PRODUCT_LOGO_128);
- #elif defined(OS_MACOSX)
+ #elif BUILDFLAG(IS_MAC)
diff --git a/chromium/patches/patch-chrome_browser_background_background__mode__optimizer.cc b/chromium/patches/patch-chrome_browser_background_background__mode__optimizer.cc
index 2e451959f9..b19ac4e264 100644
--- a/chromium/patches/patch-chrome_browser_background_background__mode__optimizer.cc
+++ b/chromium/patches/patch-chrome_browser_background_background__mode__optimizer.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- chrome/browser/background/background_mode_optimizer.cc.orig 2020-07-08 21:40:33.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/background/background_mode_optimizer.cc.orig 2024-07-24 02:44:26.815830200 +0000
+++ chrome/browser/background/background_mode_optimizer.cc
-@@ -30,7 +30,7 @@ std::unique_ptr<BackgroundModeOptimizer>
- switches::kKeepAliveForTest))
+@@ -31,7 +31,7 @@ std::unique_ptr<BackgroundModeOptimizer>
return nullptr;
+ }
--#if defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
- if (base::FeatureList::IsEnabled(features::kBackgroundModeAllowRestart))
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ if (base::FeatureList::IsEnabled(features::kBackgroundModeAllowRestart)) {
+ // Private ctor.
return base::WrapUnique(new BackgroundModeOptimizer());
- #endif // defined(OS_WIN) || defined(OS_LINUX)
diff --git a/chromium/patches/patch-chrome_browser_browser__features.cc b/chromium/patches/patch-chrome_browser_browser__features.cc
new file mode 100644
index 0000000000..85f1628b65
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_browser__features.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/browser_features.cc.orig 2024-07-24 02:44:26.831831700 +0000
++++ chrome/browser/browser_features.cc
+@@ -61,7 +61,7 @@ BASE_FEATURE(kClosedTabCache,
+ BASE_FEATURE(kDestroyProfileOnBrowserClose,
+ "DestroyProfileOnBrowserClose",
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \
+- BUILDFLAG(IS_CHROMEOS_LACROS)
++ BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ base::FEATURE_ENABLED_BY_DEFAULT);
+ #else
+ base::FEATURE_DISABLED_BY_DEFAULT);
+@@ -330,7 +330,7 @@ BASE_FEATURE(kSandboxExternalProtocolBlo
+ BASE_FEATURE(kSupportSearchSuggestionForPrerender2,
+ "SupportSearchSuggestionForPrerender2",
+ #if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS) || \
+- BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ base::FEATURE_ENABLED_BY_DEFAULT);
+ #else
+ base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/chromium/patches/patch-chrome_browser_browser__process__impl.cc b/chromium/patches/patch-chrome_browser_browser__process__impl.cc
new file mode 100644
index 0000000000..244a977465
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_browser__process__impl.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/browser_process_impl.cc.orig 2024-07-24 02:44:26.831831700 +0000
++++ chrome/browser/browser_process_impl.cc
+@@ -228,7 +228,7 @@
+ #include "chrome/browser/ui/profiles/profile_picker.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/error_reporting/chrome_js_error_report_processor.h" // nogncheck
+ #endif
+
+@@ -1282,7 +1282,7 @@ void BrowserProcessImpl::PreMainMessageL
+
+ ApplyMetricsReportingPolicy();
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ ChromeJsErrorReportProcessor::Create();
+ #endif
+
+@@ -1615,7 +1615,7 @@ void BrowserProcessImpl::Unpin() {
+ // Mac is currently not supported.
+ // TODO(crbug.com/40118868): Revisit once build flag switch of lacros-chrome is
+ // complete.
+-#if BUILDFLAG(IS_WIN) || (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++#if BUILDFLAG(IS_WIN) || (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_BSD)
+
+ bool BrowserProcessImpl::IsRunningInBackground() const {
+ // Check if browser is in the background.
diff --git a/chromium/patches/patch-chrome_browser_browser__process__impl.h b/chromium/patches/patch-chrome_browser_browser__process__impl.h
new file mode 100644
index 0000000000..25b1f4de06
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_browser__process__impl.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/browser_process_impl.h.orig 2024-07-24 02:44:26.831831700 +0000
++++ chrome/browser/browser_process_impl.h
+@@ -404,7 +404,7 @@ class BrowserProcessImpl : public Browse
+
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_WIN) || (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++#if BUILDFLAG(IS_WIN) || (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_BSD)
+ base::RepeatingTimer autoupdate_timer_;
+
+ // Gets called by autoupdate timer to see if browser needs restart and can be
diff --git a/chromium/patches/patch-chrome_browser_browser__resources.grd b/chromium/patches/patch-chrome_browser_browser__resources.grd
deleted file mode 100644
index 9753330047..0000000000
--- a/chromium/patches/patch-chrome_browser_browser__resources.grd
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/browser_resources.grd.orig 2020-07-08 21:41:46.000000000 +0000
-+++ chrome/browser/browser_resources.grd
-@@ -64,7 +64,7 @@
- <include name="IDR_DISCARDS_SITE_DATA_MOJOM_LITE_JS" file="${root_gen_dir}\chrome\browser\ui\webui\discards\site_data.mojom-lite.js" use_base_dir="false" type="BINDATA" />
- <include name="IDR_DISCARDS_SORTED_TABLE_BEHAVIOR_JS" file="resources\discards\sorted_table_behavior.js" type="BINDATA" />
- </if>
-- <if expr="is_win or is_macosx or (is_linux and not chromeos)">
-+ <if expr="is_win or is_macosx or (is_posix and not chromeos)">
- <include name="IDR_BROWSER_SWITCH_APP_JS" file="${root_gen_dir}\chrome\browser\resources\browser_switch\app.js" use_base_dir="false" type="BINDATA" />
- <include name="IDR_BROWSER_SWITCH_PROXY_JS" file="resources\browser_switch\browser_switch_proxy.js" type="BINDATA" />
- <include name="IDR_BROWSER_SWITCH_HTML" file="resources\browser_switch\browser_switch.html" allowexternalscript="true" type="BINDATA" />
diff --git a/chromium/patches/patch-chrome_browser_chrome__browser__interface__binders.cc b/chromium/patches/patch-chrome_browser_chrome__browser__interface__binders.cc
index d87932b397..4156337bad 100644
--- a/chromium/patches/patch-chrome_browser_chrome__browser__interface__binders.cc
+++ b/chromium/patches/patch-chrome_browser_chrome__browser__interface__binders.cc
@@ -1,22 +1,95 @@
$NetBSD$
---- chrome/browser/chrome_browser_interface_binders.cc.orig 2020-07-08 21:41:46.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/chrome_browser_interface_binders.cc.orig 2024-07-24 02:44:26.863834900 +0000
+++ chrome/browser/chrome_browser_interface_binders.cc
-@@ -119,7 +119,7 @@
+@@ -134,12 +134,12 @@
+ #endif // BUILDFLAG(FULL_SAFE_BROWSING)
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_ASH)
++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/webui/connectors_internals/connectors_internals.mojom.h"
+ #include "chrome/browser/ui/webui/connectors_internals/connectors_internals_ui.h"
+ #endif
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/webui/app_settings/web_app_settings_ui.h"
+ #include "ui/webui/resources/cr_components/app_management/app_management.mojom.h"
#endif
+@@ -230,7 +230,7 @@
+ #endif // BUILDFLAG(IS_ANDROID)
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
-- defined(OS_CHROMEOS)
-+ defined(OS_CHROMEOS) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/companion/visual_query/visual_query_suggestions_service_factory.h"
+ #include "chrome/browser/ui/web_applications/sub_apps_service_impl.h"
#include "chrome/browser/ui/webui/discards/discards.mojom.h"
- #include "chrome/browser/ui/webui/discards/discards_ui.h"
- #include "chrome/browser/ui/webui/discards/site_data.mojom.h"
-@@ -573,7 +573,7 @@ void PopulateChromeWebUIFrameBinders(
+@@ -241,7 +241,7 @@
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
+ // BUILDFLAG(IS_CHROMEOS)
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/webui/whats_new/whats_new_ui.h"
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+
+@@ -865,7 +865,7 @@ void BindScreen2xMainContentExtractor(
#endif
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
-- defined(OS_CHROMEOS)
-+ defined(OS_CHROMEOS) || defined(OS_BSD)
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ void BindVisualSuggestionsModelProvider(
+ content::RenderFrameHost* frame_host,
+ mojo::PendingReceiver<
+@@ -1061,7 +1061,7 @@ void PopulateChromeFrameBinders(
+ #endif // BUILDFLAG(ENABLE_SPEECH_SERVICE)
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ if (base::FeatureList::IsEnabled(blink::features::kDesktopPWAsSubApps) &&
+ !render_frame_host->GetParentOrOuterDocument()) {
+ // The service binder will reject non-primary main frames, but we still need
+@@ -1152,7 +1152,7 @@ void PopulateChromeWebUIFrameBinders(
+ DataSharingInternalsUI>(map);
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_ASH)
++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ RegisterWebUIControllerInterfaceBinder<
+ connectors_internals::mojom::PageHandler,
+ enterprise_connectors::ConnectorsInternalsUI>(map);
+@@ -1163,7 +1163,7 @@ void PopulateChromeWebUIFrameBinders(
+ policy::DlpInternalsUI>(map);
+ #endif
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ RegisterWebUIControllerInterfaceBinder<
+ app_management::mojom::PageHandlerFactory, WebAppSettingsUI>(map);
+ #endif
+@@ -1256,7 +1256,7 @@ void PopulateChromeWebUIFrameBinders(
+
+ RegisterWebUIControllerInterfaceBinder<
+ browser_command::mojom::CommandHandlerFactory,
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ WhatsNewUI,
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+ NewTabPageUI>(map);
+@@ -1797,7 +1797,7 @@ void PopulateChromeWebUIFrameBinders(
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH)
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
RegisterWebUIControllerInterfaceBinder<discards::mojom::DetailsProvider,
DiscardsUI>(map);
diff --git a/chromium/patches/patch-chrome_browser_chrome__browser__main.cc b/chromium/patches/patch-chrome_browser_chrome__browser__main.cc
index 3cc475a17f..9280b6cda1 100644
--- a/chromium/patches/patch-chrome_browser_chrome__browser__main.cc
+++ b/chromium/patches/patch-chrome_browser_chrome__browser__main.cc
@@ -1,56 +1,124 @@
$NetBSD$
---- chrome/browser/chrome_browser_main.cc.orig 2020-07-24 02:37:46.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/chrome_browser_main.cc.orig 2024-07-24 02:44:26.863834900 +0000
+++ chrome/browser/chrome_browser_main.cc
-@@ -207,7 +207,7 @@
- #include "components/arc/metrics/stability_metrics_manager.h"
- #endif // defined(OS_CHROMEOS)
+@@ -247,15 +247,15 @@
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
#include "chrome/browser/first_run/upgrade_util_linux.h"
- #endif // defined(OS_LINUX) && !defined(OS_CHROMEOS)
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "components/crash/core/app/crashpad.h"
+ #endif
-@@ -245,7 +245,7 @@
- #endif // defined(OS_WIN)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "base/nix/xdg_util.h"
+ #endif
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
-- (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+ ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
+@@ -288,14 +288,14 @@
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_LACROS)
++ BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
#include "chrome/browser/metrics/desktop_session_duration/desktop_session_duration_tracker.h"
#include "chrome/browser/metrics/desktop_session_duration/touch_mode_stats_tracker.h"
#include "chrome/browser/profiles/profile_activity_metrics_recorder.h"
-@@ -924,7 +924,7 @@ int ChromeBrowserMainParts::PreCreateThr
- AddFirstRunNewTabs(browser_creator_.get(), master_prefs_->new_tabs);
+ #include "ui/base/pointer/touch_ui_controller.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/headless/headless_mode_metrics.h" // nogncheck
+ #include "chrome/browser/headless/headless_mode_util.h" // nogncheck
+ #include "components/headless/select_file_dialog/headless_select_file_dialog.h"
+@@ -367,14 +367,14 @@
+ #endif // BUILDFLAG(IS_WIN) && BUILDFLAG(USE_BROWSER_SPELLCHECKER)
+
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ #include "sql/database.h"
+ #endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ||
+ // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID)
+
+ namespace {
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ constexpr base::FilePath::CharType kMediaHistoryDatabaseName[] =
+ FILE_PATH_LITERAL("Media History");
+
+@@ -539,7 +539,7 @@ void ProcessSingletonNotificationCallbac
+ }
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Set the global activation token sent as a command line switch by another
+ // browser process. This also removes the switch after use to prevent any side
+ // effects of leaving it in the command line after this point.
+@@ -1101,7 +1101,7 @@ int ChromeBrowserMainParts::PreCreateThr
+ browser_creator_->AddFirstRunTabs(master_prefs_->new_tabs);
}
--#if defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// Create directory for user-level Native Messaging manifest files. This
// makes it less likely that the directory will be created by third-party
// software with incorrect owner or permission. See crbug.com/725513 .
-@@ -955,7 +955,7 @@ int ChromeBrowserMainParts::PreCreateThr
- #endif // defined(OS_MACOSX)
-
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
-- (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+ ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
+@@ -1149,7 +1149,7 @@ int ChromeBrowserMainParts::PreCreateThr
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_LACROS)
++ BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
metrics::DesktopSessionDurationTracker::Initialize();
ProfileActivityMetricsRecorder::Initialize();
TouchModeStatsTracker::Initialize(
-@@ -1111,6 +1111,7 @@ void ChromeBrowserMainParts::PostBrowser
- base::TimeDelta::FromMinutes(1));
-
- #if !defined(OS_ANDROID)
-+#if !defined(OS_BSD)
- if (base::FeatureList::IsEnabled(features::kWebUsb)) {
- web_usb_detector_.reset(new WebUsbDetector());
- content::GetUIThreadTaskRunner({base::TaskPriority::BEST_EFFORT})
-@@ -1118,6 +1119,7 @@ void ChromeBrowserMainParts::PostBrowser
- base::BindOnce(&WebUsbDetector::Initialize,
- base::Unretained(web_usb_detector_.get())));
+@@ -1336,7 +1336,7 @@ void ChromeBrowserMainParts::PostProfile
+ #endif // BUILDFLAG(IS_WIN)
+
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ // Delete the media history database if it still exists.
+ // TODO(crbug.com/40177301): Remove this.
+ base::ThreadPool::PostTask(
+@@ -1385,7 +1385,7 @@ void ChromeBrowserMainParts::PostProfile
+ *UrlLanguageHistogramFactory::GetForBrowserContext(profile));
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ if (headless::IsHeadlessMode()) {
+ headless::ReportHeadlessActionMetrics();
+ }
+@@ -1495,7 +1495,7 @@ int ChromeBrowserMainParts::PreMainMessa
+ // In headless mode provide alternate SelectFileDialog factory overriding
+ // any platform specific SelectFileDialog implementation that may have been
+ // set.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ if (headless::IsHeadlessMode()) {
+ headless::HeadlessSelectFileDialogFactory::SetUp();
}
-+#endif
- if (base::FeatureList::IsEnabled(features::kTabMetricsLogging)) {
- // Initialize the TabActivityWatcher to begin logging tab activity events.
- resource_coordinator::TabActivityWatcher::GetInstance();
+@@ -2046,7 +2046,7 @@ bool ChromeBrowserMainParts::ProcessSing
+
+ // Drop the request if headless mode is in effect or the request is from
+ // a headless Chrome process.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ if (headless::IsHeadlessMode() ||
+ command_line.HasSwitch(switches::kHeadless)) {
+ return false;
diff --git a/chromium/patches/patch-chrome_browser_chrome__browser__main__extra__parts__linux.cc b/chromium/patches/patch-chrome_browser_chrome__browser__main__extra__parts__linux.cc
new file mode 100644
index 0000000000..90a68e4fe4
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_chrome__browser__main__extra__parts__linux.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/chrome_browser_main_extra_parts_linux.cc.orig 2024-07-24 02:44:26.863834900 +0000
++++ chrome/browser/chrome_browser_main_extra_parts_linux.cc
+@@ -58,7 +58,7 @@ void ChromeBrowserMainExtraPartsLinux::P
+
+ // static
+ void ChromeBrowserMainExtraPartsLinux::InitOzonePlatformHint() {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ auto* const command_line = base::CommandLine::ForCurrentProcess();
+ auto env = base::Environment::Create();
+ std::string desktop_startup_id;
diff --git a/chromium/patches/patch-chrome_browser_chrome__browser__main__extra__parts__ozone.cc b/chromium/patches/patch-chrome_browser_chrome__browser__main__extra__parts__ozone.cc
new file mode 100644
index 0000000000..8dd15bd186
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_chrome__browser__main__extra__parts__ozone.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/chrome_browser_main_extra_parts_ozone.cc.orig 2024-07-24 02:44:26.863834900 +0000
++++ chrome/browser/chrome_browser_main_extra_parts_ozone.cc
+@@ -27,7 +27,7 @@ void ChromeBrowserMainExtraPartsOzone::P
+ }
+
+ void ChromeBrowserMainExtraPartsOzone::PostMainMessageLoopRun() {
+-#if !BUILDFLAG(IS_CHROMEOS_LACROS) && !BUILDFLAG(IS_LINUX)
++#if !BUILDFLAG(IS_CHROMEOS_LACROS) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD)
+ // Lacros's `PostMainMessageLoopRun` must be called at the very end of
+ // `PostMainMessageLoopRun` in
+ // `ChromeBrowserMainPartsLacros::PostMainMessageLoopRun`.
diff --git a/chromium/patches/patch-chrome_browser_chrome__browser__main__linux.cc b/chromium/patches/patch-chrome_browser_chrome__browser__main__linux.cc
index 8dbb56c4dd..3d4efebaea 100644
--- a/chromium/patches/patch-chrome_browser_chrome__browser__main__linux.cc
+++ b/chromium/patches/patch-chrome_browser_chrome__browser__main__linux.cc
@@ -1,34 +1,45 @@
$NetBSD$
---- chrome/browser/chrome_browser_main_linux.cc.orig 2020-07-08 21:40:33.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/chrome_browser_main_linux.cc.orig 2024-07-24 02:44:26.863834900 +0000
+++ chrome/browser/chrome_browser_main_linux.cc
-@@ -81,6 +81,7 @@ void ChromeBrowserMainPartsLinux::PrePro
- void ChromeBrowserMainPartsLinux::PostProfileInit() {
- ChromeBrowserMainPartsPosix::PostProfileInit();
+@@ -25,7 +25,7 @@
+ #include "device/bluetooth/dbus/bluez_dbus_thread_manager.h"
+ #include "ui/base/l10n/l10n_util.h"
-+#if !defined(OS_BSD)
- bool breakpad_registered;
- if (crash_reporter::IsCrashpadEnabled()) {
- // If we're using crashpad, there's no breakpad and crashpad is always
-@@ -98,10 +99,11 @@ void ChromeBrowserMainPartsLinux::PostPr
- }
- g_browser_process->metrics_service()->RecordBreakpadRegistration(
- breakpad_registered);
-+#endif
- }
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/ozone/public/ozone_platform.h"
+ #endif
+
+@@ -72,7 +72,9 @@ void ChromeBrowserMainPartsLinux::PostCr
+ #endif // BUILDFLAG(IS_CHROMEOS)
- void ChromeBrowserMainPartsLinux::PostMainMessageLoopStart() {
--#if !defined(OS_CHROMEOS)
-+#if !defined(OS_CHROMEOS) && !defined(OS_BSD)
+ #if !BUILDFLAG(IS_CHROMEOS)
++#if !BUILDFLAG(IS_BSD)
bluez::BluezDBusManager::Initialize(nullptr /* system_bus */);
- #endif
++#endif
-@@ -109,7 +111,7 @@ void ChromeBrowserMainPartsLinux::PostMa
+ // Set up crypt config. This needs to be done before anything starts the
+ // network service, as the raw encryption key needs to be shared with the
+@@ -98,7 +100,7 @@ void ChromeBrowserMainPartsLinux::PostCr
+ ChromeBrowserMainPartsPosix::PostCreateMainMessageLoop();
}
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void ChromeBrowserMainPartsLinux::PostMainMessageLoopRun() {
+ ChromeBrowserMainPartsPosix::PostMainMessageLoopRun();
+ ui::OzonePlatform::GetInstance()->PostMainMessageLoopRun();
+@@ -137,7 +139,7 @@ void ChromeBrowserMainPartsLinux::PostBr
+ #endif // defined(USE_DBUS) && !BUILDFLAG(IS_CHROMEOS)
+
void ChromeBrowserMainPartsLinux::PostDestroyThreads() {
--#if !defined(OS_CHROMEOS)
-+#if !defined(OS_CHROMEOS) && !defined(OS_BSD)
+-#if BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // No-op; per PostBrowserStart() comment, this is done elsewhere.
+ #else
bluez::BluezDBusManager::Shutdown();
- bluez::BluezDBusThreadManager::Shutdown();
- #endif
diff --git a/chromium/patches/patch-chrome_browser_chrome__browser__main__linux.h b/chromium/patches/patch-chrome_browser_chrome__browser__main__linux.h
new file mode 100644
index 0000000000..ed84f6e9fd
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_chrome__browser__main__linux.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/chrome_browser_main_linux.h.orig 2024-07-24 02:44:26.863834900 +0000
++++ chrome/browser/chrome_browser_main_linux.h
+@@ -30,7 +30,7 @@ class ChromeBrowserMainPartsLinux : publ
+
+ // ChromeBrowserMainPartsPosix overrides.
+ void PostCreateMainMessageLoop() override;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void PostMainMessageLoopRun() override;
+ #endif
+ void PreProfileInit() override;
diff --git a/chromium/patches/patch-chrome_browser_chrome__browser__main__posix.cc b/chromium/patches/patch-chrome_browser_chrome__browser__main__posix.cc
index c1e0852fe8..20fda6d9bf 100644
--- a/chromium/patches/patch-chrome_browser_chrome__browser__main__posix.cc
+++ b/chromium/patches/patch-chrome_browser_chrome__browser__main__posix.cc
@@ -1,22 +1,17 @@
$NetBSD$
---- chrome/browser/chrome_browser_main_posix.cc.orig 2020-07-08 21:40:33.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/chrome_browser_main_posix.cc.orig 2024-07-24 02:44:26.863834900 +0000
+++ chrome/browser/chrome_browser_main_posix.cc
-@@ -70,7 +70,7 @@ void ExitHandler::ExitWhenPossibleOnUITh
- // ExitHandler takes care of deleting itself.
- new ExitHandler();
+@@ -79,7 +79,7 @@ void ExitHandler::ExitWhenPossibleOnUITh
} else {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
switch (signal) {
case SIGINT:
case SIGHUP:
-@@ -166,7 +166,7 @@ void ChromeBrowserMainPartsPosix::PostMa
- void ChromeBrowserMainPartsPosix::ShowMissingLocaleMessageBox() {
- #if defined(OS_CHROMEOS)
- NOTREACHED(); // Should not ever happen on ChromeOS.
--#elif defined(OS_MACOSX)
-+#elif defined(OS_MACOSX) || defined(OS_BSD)
- // Not called on Mac because we load the locale files differently.
- NOTREACHED();
- #elif defined(USE_AURA)
diff --git a/chromium/patches/patch-chrome_browser_chrome__content__browser__client.cc b/chromium/patches/patch-chrome_browser_chrome__content__browser__client.cc
index e2c06acf0c..1d84598c22 100644
--- a/chromium/patches/patch-chrome_browser_chrome__content__browser__client.cc
+++ b/chromium/patches/patch-chrome_browser_chrome__content__browser__client.cc
@@ -1,117 +1,167 @@
$NetBSD$
---- chrome/browser/chrome_content_browser_client.cc.orig 2020-07-24 02:37:46.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/chrome_content_browser_client.cc.orig 2024-07-24 02:44:26.871835500 +0000
+++ chrome/browser/chrome_content_browser_client.cc
-@@ -410,7 +410,7 @@
- #include "components/user_manager/user.h"
- #include "components/user_manager/user_manager.h"
- #include "services/service_manager/public/mojom/interface_provider_spec.mojom.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+@@ -469,7 +469,7 @@
+ #include "storage/browser/file_system/external_mount_points.h"
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
#include "chrome/browser/chrome_browser_main_linux.h"
- #elif defined(OS_ANDROID)
- #include "base/android/application_status_listener.h"
-@@ -471,7 +471,7 @@
- #endif // !defined(OS_ANDROID)
+ #include "chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.h"
+ #elif BUILDFLAG(IS_ANDROID)
+@@ -585,12 +585,12 @@
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
-- (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+ ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \
+ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
#include "chrome/browser/browser_switcher/browser_switcher_navigation_throttle.h"
- #include "services/service_manager/sandbox/features.h"
- #endif
-@@ -504,7 +504,7 @@
- #include "chrome/browser/ui/views/chrome_browser_main_extra_parts_views.h"
#endif
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- #include "chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.h"
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "components/crash/core/app/crash_switches.h"
+ #include "components/crash/core/app/crashpad.h"
+ #endif
+@@ -601,7 +601,7 @@
+ #include "chrome/browser/apps/link_capturing/web_app_link_capturing_delegate.h"
#endif
-@@ -819,11 +819,13 @@ breakpad::CrashHandlerHostLinux* CreateC
- }
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/chrome_browser_main_extra_parts_enterprise.h"
+ #include "chrome/browser/enterprise/profile_management/oidc_auth_response_capture_navigation_throttle.h"
+ #include "chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.h"
+@@ -609,7 +609,7 @@
+ #endif
- int GetCrashSignalFD(const base::CommandLine& command_line) {
-+#if !defined(OS_BSD)
- if (crash_reporter::IsCrashpadEnabled()) {
- int fd;
- pid_t pid;
- return crash_reporter::GetHandlerSocket(&fd, &pid) ? fd : -1;
- }
-+#endif
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \
+- BUILDFLAG(IS_CHROMEOS_ASH)
++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/connectors/device_trust/navigation_throttle.h"
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ||
+ // BUILDFLAG(IS_CHROMEOS_ASH)
+@@ -624,7 +624,7 @@
+ #include "chrome/browser/ui/views/lens/lens_side_panel_navigation_helper.h"
+ #endif
- // Extensions have the same process type as renderers.
- if (command_line.HasSwitch(extensions::switches::kExtensionProcess)) {
-@@ -1330,7 +1332,7 @@ ChromeContentBrowserClient::CreateBrowse
- #elif defined(OS_CHROMEOS)
- main_parts = std::make_unique<chromeos::ChromeBrowserMainPartsChromeos>(
- parameters, startup_data_);
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- main_parts =
- std::make_unique<ChromeBrowserMainPartsLinux>(parameters, startup_data_);
- #elif defined(OS_ANDROID)
-@@ -1356,7 +1358,7 @@ ChromeContentBrowserClient::CreateBrowse
- // Construct additional browser parts. Stages are called in the order in
- // which they are added.
- #if defined(TOOLKIT_VIEWS)
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- main_parts->AddParts(new ChromeBrowserMainExtraPartsViewsLinux());
- #else
- main_parts->AddParts(new ChromeBrowserMainExtraPartsViews());
-@@ -2117,6 +2119,8 @@ void ChromeContentBrowserClient::AppendE
- #elif defined(OS_POSIX)
- #if defined(OS_ANDROID)
- bool enable_crash_reporter = true;
-+#elif defined(OS_BSD)
-+ bool enable_crash_reporter = false;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/chrome_browser_main_extra_parts_linux.h"
+ #elif BUILDFLAG(IS_OZONE)
+ #include "chrome/browser/chrome_browser_main_extra_parts_ozone.h"
+@@ -1538,7 +1538,7 @@ void ChromeContentBrowserClient::Registe
+ #if BUILDFLAG(IS_CHROMEOS)
+ registry->RegisterBooleanPref(prefs::kNativeClientForceAllowed, false);
+ #endif // BUILDFLAG(IS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ registry->RegisterBooleanPref(prefs::kOutOfProcessSystemDnsResolutionEnabled,
+ true);
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID)
+@@ -1669,7 +1669,7 @@ ChromeContentBrowserClient::CreateBrowse
+ #elif BUILDFLAG(IS_CHROMEOS_LACROS)
+ main_parts = std::make_unique<ChromeBrowserMainPartsLacros>(
+ is_integration_test, &startup_data_);
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ main_parts = std::make_unique<ChromeBrowserMainPartsLinux>(
+ is_integration_test, &startup_data_);
+ #elif BUILDFLAG(IS_ANDROID)
+@@ -1703,7 +1703,7 @@ ChromeContentBrowserClient::CreateBrowse
+ std::make_unique<ChromeBrowserMainExtraPartsViewsLacros>());
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ main_parts->AddParts(
+ std::make_unique<ChromeBrowserMainExtraPartsViewsLinux>());
#else
- bool enable_crash_reporter = false;
- if (crash_reporter::IsCrashpadEnabled()) {
-@@ -2414,7 +2418,7 @@ void ChromeContentBrowserClient::AppendE
- StackSamplingConfiguration::Get()->AppendCommandLineSwitchForChildProcess(
- process_type, command_line);
+@@ -1724,7 +1724,7 @@ ChromeContentBrowserClient::CreateBrowse
+ main_parts->AddParts(std::make_unique<ChromeBrowserMainExtraPartsLacros>());
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ main_parts->AddParts(std::make_unique<ChromeBrowserMainExtraPartsLinux>());
+ #elif BUILDFLAG(IS_OZONE)
+ main_parts->AddParts(std::make_unique<ChromeBrowserMainExtraPartsOzone>());
+@@ -1743,7 +1743,7 @@ ChromeContentBrowserClient::CreateBrowse
+
+ chrome::AddMetricsExtraParts(main_parts.get());
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // Processes may only query perf_event_open with the BPF sandbox disabled.
- if (browser_command_line.HasSwitch(switches::kEnableThreadInstructionCount) &&
- command_line->HasSwitch(service_manager::switches::kNoSandbox)) {
-@@ -3686,7 +3690,7 @@ void ChromeContentBrowserClient::GetAddi
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ main_parts->AddParts(
+ std::make_unique<
+ chrome::enterprise_util::ChromeBrowserMainExtraPartsEnterprise>());
+@@ -2577,7 +2577,7 @@ void ChromeContentBrowserClient::AppendE
+ client_info->client_id);
+ }
+ #elif BUILDFLAG(IS_POSIX)
+-#if !BUILDFLAG(IS_ANDROID)
++#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_BSD)
+ pid_t pid;
+ if (crash_reporter::GetHandlerSocket(nullptr, &pid)) {
+ command_line->AppendSwitchASCII(
+@@ -2923,7 +2923,7 @@ void ChromeContentBrowserClient::AppendE
+ }
+ }
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)) && !BUILDFLAG(IS_BSD)
+ // Opt into a hardened stack canary mitigation if it hasn't already been
+ // force-disabled.
+ if (!browser_command_line.HasSwitch(switches::kChangeStackGuardOnFork)) {
+@@ -4698,7 +4698,7 @@ void ChromeContentBrowserClient::GetAddi
}
}
--#if defined(OS_POSIX) && !defined(OS_MACOSX)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD)
+-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD)
void ChromeContentBrowserClient::GetAdditionalMappedFilesForChildProcess(
const base::CommandLine& command_line,
int child_process_id,
-@@ -3807,7 +3811,7 @@ bool ChromeContentBrowserClient::IsRende
- #endif // defined(OS_WIN)
+@@ -5266,7 +5266,7 @@ ChromeContentBrowserClient::CreateThrott
+ &throttles);
+ }
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
-- (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+ ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
- bool ShouldEnableAudioSandbox(const policy::PolicyMap& policies) {
- const base::Value* audio_sandbox_enabled_policy_value =
- policies.GetValue(policy::key::kAudioSandboxEnabled);
-@@ -3825,7 +3829,7 @@ bool ShouldEnableAudioSandbox(const poli
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ MaybeAddThrottle(
+ WebAppSettingsNavigationThrottle::MaybeCreateThrottleFor(handle),
+ &throttles);
+@@ -5280,7 +5280,7 @@ ChromeContentBrowserClient::CreateThrott
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
- void ChromeContentBrowserClient::WillStartServiceManager() {
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
-- (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+ ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
- if (startup_data_) {
- auto* chrome_feature_list_creator =
- startup_data_->chrome_feature_list_creator();
-@@ -4071,7 +4075,7 @@ ChromeContentBrowserClient::CreateThrott
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \
+- BUILDFLAG(IS_CHROMEOS_ASH)
++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ MaybeAddThrottle(enterprise_connectors::DeviceTrustNavigationThrottle::
+ MaybeCreateThrottleFor(handle),
+ &throttles);
+@@ -5319,7 +5319,7 @@ ChromeContentBrowserClient::CreateThrott
+ handle));
}
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
-- (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+ ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
MaybeAddThrottle(browser_switcher::BrowserSwitcherNavigationThrottle::
MaybeCreateThrottleFor(handle),
&throttles);
+@@ -7292,7 +7292,7 @@ bool ChromeContentBrowserClient::ShouldS
+ bool ChromeContentBrowserClient::ShouldRunOutOfProcessSystemDnsResolution() {
+ // This enterprise policy is supported on Android, but the feature will not be
+ // launched there.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ // This is possibly called before `g_browser_process` is initialized.
+ PrefService* local_state;
+ if (g_browser_process) {
diff --git a/chromium/patches/patch-chrome_browser_chrome__content__browser__client.h b/chromium/patches/patch-chrome_browser_chrome__content__browser__client.h
index 87270616c0..4013753f79 100644
--- a/chromium/patches/patch-chrome_browser_chrome__content__browser__client.h
+++ b/chromium/patches/patch-chrome_browser_chrome__content__browser__client.h
@@ -1,13 +1,17 @@
$NetBSD$
---- chrome/browser/chrome_content_browser_client.h.orig 2020-07-08 21:41:46.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/chrome_content_browser_client.h.orig 2024-07-24 02:44:26.871835500 +0000
+++ chrome/browser/chrome_content_browser_client.h
-@@ -381,7 +381,7 @@ class ChromeContentBrowserClient : publi
- void OverridePageVisibilityState(
- content::RenderFrameHost* render_frame_host,
- content::PageVisibilityState* visibility_state) override;
--#if defined(OS_POSIX) && !defined(OS_MACOSX)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD)
+@@ -513,7 +513,7 @@ class ChromeContentBrowserClient : publi
+ bool IsPluginAllowedToUseDevChannelAPIs(
+ content::BrowserContext* browser_context,
+ const GURL& url) override;
+-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD)
void GetAdditionalMappedFilesForChildProcess(
const base::CommandLine& command_line,
int child_process_id,
diff --git a/chromium/patches/patch-chrome_browser_component__updater_widevine__cdm__component__installer.cc b/chromium/patches/patch-chrome_browser_component__updater_widevine__cdm__component__installer.cc
new file mode 100644
index 0000000000..c99d646938
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_component__updater_widevine__cdm__component__installer.cc
@@ -0,0 +1,44 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/component_updater/widevine_cdm_component_installer.cc.orig 2024-07-24 02:44:26.967845000 +0000
++++ chrome/browser/component_updater/widevine_cdm_component_installer.cc
+@@ -41,7 +41,7 @@
+ #include "third_party/widevine/cdm/buildflags.h"
+ #include "third_party/widevine/cdm/widevine_cdm_common.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "base/path_service.h"
+ #include "chrome/common/chrome_paths.h"
+ #include "chrome/common/media/component_widevine_cdm_hint_file_linux.h"
+@@ -74,7 +74,7 @@ static_assert(std::size(kWidevineSha2Has
+ const char ImageLoaderComponentName[] = "WidevineCdm";
+ #endif
+
+-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD)
+ // On Linux and ChromeOS the Widevine CDM is loaded at startup before the
+ // zygote is locked down. As a result there is no need to register the CDM
+ // with Chrome as it can't be used until Chrome is restarted.
+@@ -102,7 +102,7 @@ void RegisterWidevineCdmWithChrome(const
+ }
+ #endif // !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // On Linux and ChromeOS the Widevine CDM is loaded at startup before the
+ // zygote is locked down. To locate the Widevine CDM at startup, a hint file
+ // is used. Update the hint file with the new Widevine CDM path.
+@@ -398,7 +398,7 @@ void WidevineCdmComponentInstallerPolicy
+ return;
+ }
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ VLOG(1) << "Updating hint file with Widevine CDM " << cdm_version;
+
+ // This is running on a thread that allows IO, so simply update the hint file.
diff --git a/chromium/patches/patch-chrome_browser_crash__upload__list_crash__upload__list.cc b/chromium/patches/patch-chrome_browser_crash__upload__list_crash__upload__list.cc
deleted file mode 100644
index af0be6e7cf..0000000000
--- a/chromium/patches/patch-chrome_browser_crash__upload__list_crash__upload__list.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/crash_upload_list/crash_upload_list.cc.orig 2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/crash_upload_list/crash_upload_list.cc
-@@ -38,7 +38,7 @@ scoped_refptr<UploadList> CreateCrashUpl
- // ChromeOS uses crash_sender as its uploader even when Crashpad is enabled,
- // which isn't compatible with CrashUploadListCrashpad. crash_sender continues
- // to log uploads in CrashUploadList::kReporterLogFilename.
--#if !defined(OS_CHROMEOS)
-+#if !defined(OS_CHROMEOS) && !defined(OS_BSD)
- if (crash_reporter::IsCrashpadEnabled()) {
- return new CrashUploadListCrashpad();
- }
diff --git a/chromium/patches/patch-chrome_browser_crash__upload__list_crash__upload__list__crashpad.cc b/chromium/patches/patch-chrome_browser_crash__upload__list_crash__upload__list__crashpad.cc
deleted file mode 100644
index 8e520fbc36..0000000000
--- a/chromium/patches/patch-chrome_browser_crash__upload__list_crash__upload__list__crashpad.cc
+++ /dev/null
@@ -1,33 +0,0 @@
-$NetBSD$
-
---- chrome/browser/crash_upload_list/crash_upload_list_crashpad.cc.orig 2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/crash_upload_list/crash_upload_list_crashpad.cc
-@@ -42,6 +42,9 @@ CrashUploadListCrashpad::CrashUploadList
- CrashUploadListCrashpad::~CrashUploadListCrashpad() = default;
-
- std::vector<UploadList::UploadInfo> CrashUploadListCrashpad::LoadUploadList() {
-+#if defined(OS_BSD)
-+ return std::vector<UploadInfo>();
-+#else
- std::vector<crash_reporter::Report> reports;
- crash_reporter::GetReports(&reports);
-
-@@ -53,13 +56,18 @@ std::vector<UploadList::UploadInfo> Cras
- ReportUploadStateToUploadInfoState(report.state)));
- }
- return uploads;
-+#endif
- }
-
- void CrashUploadListCrashpad::ClearUploadList(const base::Time& begin,
- const base::Time& end) {
-+#if !defined(OS_BSD)
- crash_reporter::ClearReportsBetween(begin, end);
-+#endif
- }
-
- void CrashUploadListCrashpad::RequestSingleUpload(const std::string& local_id) {
-+#if !defined(OS_BSD)
- crash_reporter::RequestSingleCrashUpload(local_id);
-+#endif
- }
diff --git a/chromium/patches/patch-chrome_browser_custom__handlers_chrome__protocol__handler__registry__delegate.cc b/chromium/patches/patch-chrome_browser_custom__handlers_chrome__protocol__handler__registry__delegate.cc
new file mode 100644
index 0000000000..8883ef7ba7
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_custom__handlers_chrome__protocol__handler__registry__delegate.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/custom_handlers/chrome_protocol_handler_registry_delegate.cc.orig 2024-07-24 02:44:26.987846900 +0000
++++ chrome/browser/custom_handlers/chrome_protocol_handler_registry_delegate.cc
+@@ -68,7 +68,7 @@ void ChromeProtocolHandlerRegistryDelega
+ // If true default protocol handlers will be removed if the OS level
+ // registration for a protocol is no longer Chrome.
+ bool ChromeProtocolHandlerRegistryDelegate::ShouldRemoveHandlersNotInOS() {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // We don't do this on Linux as the OS registration there is not reliable,
+ // and Chrome OS doesn't have any notion of OS registration.
+ // TODO(benwells): When Linux support is more reliable remove this
diff --git a/chromium/patches/patch-chrome_browser_custom__handlers_protocol__handler__registry.cc b/chromium/patches/patch-chrome_browser_custom__handlers_protocol__handler__registry.cc
deleted file mode 100644
index 0afdf997b1..0000000000
--- a/chromium/patches/patch-chrome_browser_custom__handlers_protocol__handler__registry.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/custom_handlers/protocol_handler_registry.cc.orig 2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/custom_handlers/protocol_handler_registry.cc
-@@ -43,7 +43,7 @@ const ProtocolHandler& LookupHandler(
- // If true default protocol handlers will be removed if the OS level
- // registration for a protocol is no longer Chrome.
- bool ShouldRemoveHandlersNotInOS() {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // We don't do this on Linux as the OS registration there is not reliable,
- // and Chrome OS doesn't have any notion of OS registration.
- // TODO(benwells): When Linux support is more reliable remove this
diff --git a/chromium/patches/patch-chrome_browser_defaults.cc b/chromium/patches/patch-chrome_browser_defaults.cc
index f9bd5bb750..b60d07af43 100644
--- a/chromium/patches/patch-chrome_browser_defaults.cc
+++ b/chromium/patches/patch-chrome_browser_defaults.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- chrome/browser/defaults.cc.orig 2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/defaults.cc.orig 2024-07-24 02:44:26.991847300 +0000
+++ chrome/browser/defaults.cc
-@@ -43,7 +43,7 @@ const bool kSyncAutoStarts = true;
- const bool kSyncAutoStarts = false;
+@@ -44,7 +44,7 @@ const bool kShowHelpMenuItemIcon = true;
+ const bool kShowHelpMenuItemIcon = false;
#endif
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
const bool kScrollEventChangesTab = true;
#else
const bool kScrollEventChangesTab = false;
diff --git a/chromium/patches/patch-chrome_browser_dev__ui__browser__resources.grd b/chromium/patches/patch-chrome_browser_dev__ui__browser__resources.grd
deleted file mode 100644
index 911176aef2..0000000000
--- a/chromium/patches/patch-chrome_browser_dev__ui__browser__resources.grd
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/dev_ui_browser_resources.grd.orig 2020-07-08 21:41:46.000000000 +0000
-+++ chrome/browser/dev_ui_browser_resources.grd
-@@ -61,7 +61,7 @@ This file specifies browser resources fo
- <include name="IDR_MEDIA_SESSION_MOJOM_LITE_JS" file="${root_gen_dir}\services\media_session\public\mojom\media_session.mojom-lite.js" use_base_dir="false" type="BINDATA" />
- <include name="IDR_UI_GEOMETRY_MOJOM_LITE_JS" file="${root_gen_dir}\ui\gfx\geometry\mojom\geometry.mojom-lite.js" use_base_dir="false" type="BINDATA" />
-
-- <if expr="is_android or is_linux">
-+ <if expr="is_android or is_posix">
- <include name="IDR_SANDBOX_INTERNALS_HTML" file="resources\sandbox_internals\sandbox_internals.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
- <include name="IDR_SANDBOX_INTERNALS_JS" file="resources\sandbox_internals\sandbox_internals.js" type="BINDATA" />
- </if>
diff --git a/chromium/patches/patch-chrome_browser_device__identity_device__oauth2__token__service__factory.cc b/chromium/patches/patch-chrome_browser_device__identity_device__oauth2__token__service__factory.cc
index cd7dcabe4f..e48a218099 100644
--- a/chromium/patches/patch-chrome_browser_device__identity_device__oauth2__token__service__factory.cc
+++ b/chromium/patches/patch-chrome_browser_device__identity_device__oauth2__token__service__factory.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- chrome/browser/device_identity/device_oauth2_token_service_factory.cc.orig 2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/device_identity/device_oauth2_token_service_factory.cc.orig 2024-07-24 02:44:26.995847500 +0000
+++ chrome/browser/device_identity/device_oauth2_token_service_factory.cc
@@ -28,7 +28,7 @@ std::unique_ptr<DeviceOAuth2TokenStore>
- #if defined(OS_CHROMEOS)
return std::make_unique<chromeos::DeviceOAuth2TokenStoreChromeOS>(
local_state);
--#elif defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#elif defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
- DCHECK(
- base::FeatureList::IsEnabled(policy::features::kCBCMPolicyInvalidations));
+ #elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
+- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_BSD)
return std::make_unique<DeviceOAuth2TokenStoreDesktop>(local_state);
+ #else
+ NOTREACHED_IN_MIGRATION();
diff --git a/chromium/patches/patch-chrome_browser_devtools_devtools__eye__dropper.cc b/chromium/patches/patch-chrome_browser_devtools_devtools__eye__dropper.cc
deleted file mode 100644
index 5063a3a86c..0000000000
--- a/chromium/patches/patch-chrome_browser_devtools_devtools__eye__dropper.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/devtools/devtools_eye_dropper.cc.orig 2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/devtools/devtools_eye_dropper.cc
-@@ -164,7 +164,7 @@ void DevToolsEyeDropper::UpdateCursor()
- // magnified projection only with centered hotspot.
- // Mac Retina requires cursor to be > 120px in order to render smoothly.
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- const float kCursorSize = 63;
- const float kDiameter = 63;
- const float kHotspotOffset = 32;
diff --git a/chromium/patches/patch-chrome_browser_diagnostics_diagnostics__writer.h b/chromium/patches/patch-chrome_browser_diagnostics_diagnostics__writer.h
index b1fb2623ce..e6a9ae1780 100644
--- a/chromium/patches/patch-chrome_browser_diagnostics_diagnostics__writer.h
+++ b/chromium/patches/patch-chrome_browser_diagnostics_diagnostics__writer.h
@@ -1,14 +1,16 @@
$NetBSD$
---- chrome/browser/diagnostics/diagnostics_writer.h.orig 2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/diagnostics/diagnostics_writer.h.orig 2024-07-24 02:44:27.019850000 +0000
+++ chrome/browser/diagnostics/diagnostics_writer.h
-@@ -15,6 +15,10 @@ namespace diagnostics {
+@@ -14,6 +14,8 @@ namespace diagnostics {
// Console base class used internally.
class SimpleConsole;
-+#if defined(MACHINE)
+#undef MACHINE
-+#endif
+
class DiagnosticsWriter : public DiagnosticsModel::Observer {
public:
diff --git a/chromium/patches/patch-chrome_browser_download_chrome__download__manager__delegate.cc b/chromium/patches/patch-chrome_browser_download_chrome__download__manager__delegate.cc
index 682bd8dc4c..1d14bbc565 100644
--- a/chromium/patches/patch-chrome_browser_download_chrome__download__manager__delegate.cc
+++ b/chromium/patches/patch-chrome_browser_download_chrome__download__manager__delegate.cc
@@ -1,22 +1,35 @@
$NetBSD$
---- chrome/browser/download/chrome_download_manager_delegate.cc.orig 2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/download/chrome_download_manager_delegate.cc.orig 2024-07-24 02:44:27.047852500 +0000
+++ chrome/browser/download/chrome_download_manager_delegate.cc
-@@ -1309,7 +1309,7 @@ void ChromeDownloadManagerDelegate::OnDo
- target_info->is_filetype_handled_safely)
- DownloadItemModel(item).SetShouldPreferOpeningInBrowser(true);
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- if (item->GetOriginalMimeType() == "application/x-x509-user-cert")
- DownloadItemModel(item).SetShouldPreferOpeningInBrowser(true);
- #endif
-@@ -1358,7 +1358,7 @@ void ChromeDownloadManagerDelegate::OnDo
-
- bool ChromeDownloadManagerDelegate::IsOpenInBrowserPreferreredForFile(
+@@ -1729,7 +1729,7 @@ void ChromeDownloadManagerDelegate::OnDo
+ bool ChromeDownloadManagerDelegate::IsOpenInBrowserPreferredForFile(
const base::FilePath& path) {
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_MAC)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
if (path.MatchesExtension(FILE_PATH_LITERAL(".pdf"))) {
return !download_prefs_->ShouldOpenPdfInSystemReader();
}
+@@ -1875,7 +1875,7 @@ void ChromeDownloadManagerDelegate::Chec
+ content::CheckDownloadAllowedCallback check_download_allowed_cb) {
+ DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_MAC)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ // Don't download pdf if it is a file URL, as that might cause an infinite
+ // download loop if Chrome is not the system pdf viewer.
+ if (url.SchemeIsFile() && download_prefs_->ShouldOpenPdfInSystemReader()) {
+@@ -1939,7 +1939,7 @@ void ChromeDownloadManagerDelegate::Chec
+ DCHECK(download_item->IsSavePackageDownload());
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_MAC)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ std::optional<enterprise_connectors::AnalysisSettings> settings =
+ safe_browsing::DeepScanningRequest::ShouldUploadBinary(download_item);
+
diff --git a/chromium/patches/patch-chrome_browser_download_download__commands.cc b/chromium/patches/patch-chrome_browser_download_download__commands.cc
index f6e78343e4..3044cd4503 100644
--- a/chromium/patches/patch-chrome_browser_download_download__commands.cc
+++ b/chromium/patches/patch-chrome_browser_download_download__commands.cc
@@ -1,31 +1,26 @@
$NetBSD$
---- chrome/browser/download/download_commands.cc.orig 2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/download/download_commands.cc.orig 2024-07-24 02:44:27.051853000 +0000
+++ chrome/browser/download/download_commands.cc
-@@ -27,7 +27,7 @@
- #include "net/base/url_util.h"
+@@ -26,7 +26,7 @@
#include "ui/base/clipboard/scoped_clipboard_writer.h"
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_MAC)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/scoped_tabbed_browser_displayer.h"
-@@ -154,7 +154,7 @@ void DownloadCommands::ExecuteCommand(Co
- model_->ExecuteCommand(this, command);
+@@ -167,7 +167,7 @@ void DownloadCommands::ExecuteCommand(Co
}
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
Browser* DownloadCommands::GetBrowser() const {
- chrome::ScopedTabbedBrowserDisplayer browser_displayer(model_->profile());
-@@ -177,7 +177,7 @@ bool DownloadCommands::CanOpenPdfInSyste
- return IsDownloadPdf() &&
- (IsAdobeReaderDefaultPDFViewer() ? is_adobe_pdf_reader_up_to_date
- : true);
--#elif defined(OS_MACOSX) || defined(OS_LINUX)
-+#elif defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
- return IsDownloadPdf();
- #endif
- }
+ if (!model_)
diff --git a/chromium/patches/patch-chrome_browser_download_download__commands.h b/chromium/patches/patch-chrome_browser_download_download__commands.h
index bd931ce697..f1b86b5bfa 100644
--- a/chromium/patches/patch-chrome_browser_download_download__commands.h
+++ b/chromium/patches/patch-chrome_browser_download_download__commands.h
@@ -1,13 +1,17 @@
$NetBSD$
---- chrome/browser/download/download_commands.h.orig 2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/download/download_commands.h.orig 2024-07-24 02:44:27.051853000 +0000
+++ chrome/browser/download/download_commands.h
-@@ -48,7 +48,7 @@ class DownloadCommands {
- bool IsCommandVisible(Command command) const;
+@@ -66,7 +66,7 @@ class DownloadCommands {
void ExecuteCommand(Command command);
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_MAC)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
bool IsDownloadPdf() const;
bool CanOpenPdfInSystemViewer() const;
Browser* GetBrowser() const;
diff --git a/chromium/patches/patch-chrome_browser_download_download__file__picker.cc b/chromium/patches/patch-chrome_browser_download_download__file__picker.cc
new file mode 100644
index 0000000000..d79660c911
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_download_download__file__picker.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/download/download_file_picker.cc.orig 2024-07-24 02:44:27.051853000 +0000
++++ chrome/browser/download/download_file_picker.cc
+@@ -18,7 +18,7 @@
+ #include "content/public/browser/web_contents.h"
+ #include "ui/shell_dialogs/selected_file_info.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/browser_list.h"
+ #include "chrome/browser/ui/browser_window.h"
+ #include "ui/aura/window.h"
+@@ -83,7 +83,7 @@ DownloadFilePicker::DownloadFilePicker(d
+ // dialog in Linux (See SelectFileImpl() in select_file_dialog_linux_gtk.cc).
+ // and windows.Here we make owning_window host to browser current active
+ // window if it is null. https://crbug.com/1301898
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ if (!owning_window || !owning_window->GetHost()) {
+ owning_window = BrowserList::GetInstance()
+ ->GetLastActive()
diff --git a/chromium/patches/patch-chrome_browser_download_download__item__model.cc b/chromium/patches/patch-chrome_browser_download_download__item__model.cc
index 4b8cb17589..4e9407c5ad 100644
--- a/chromium/patches/patch-chrome_browser_download_download__item__model.cc
+++ b/chromium/patches/patch-chrome_browser_download_download__item__model.cc
@@ -1,22 +1,35 @@
$NetBSD$
---- chrome/browser/download/download_item_model.cc.orig 2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/download/download_item_model.cc.orig 2024-07-24 02:44:27.055853400 +0000
+++ chrome/browser/download/download_item_model.cc
-@@ -601,7 +601,7 @@ bool DownloadItemModel::IsCommandChecked
- return download_->GetOpenWhenComplete() ||
+@@ -799,7 +799,7 @@ bool DownloadItemModel::IsCommandChecked
download_crx_util::IsExtensionDownload(*download_);
case DownloadCommands::ALWAYS_OPEN_TYPE:
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_MAC)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
if (download_commands->CanOpenPdfInSystemViewer()) {
DownloadPrefs* prefs = DownloadPrefs::FromBrowserContext(profile());
return prefs->ShouldOpenPdfInSystemReader();
-@@ -641,7 +641,7 @@ void DownloadItemModel::ExecuteCommand(D
- bool is_checked = IsCommandChecked(download_commands,
+@@ -847,7 +847,7 @@ void DownloadItemModel::ExecuteCommand(D
DownloadCommands::ALWAYS_OPEN_TYPE);
DownloadPrefs* prefs = DownloadPrefs::FromBrowserContext(profile());
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_MAC)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
if (download_commands->CanOpenPdfInSystemViewer()) {
prefs->SetShouldOpenPdfInSystemReader(!is_checked);
SetShouldPreferOpeningInBrowser(is_checked);
+@@ -1245,7 +1245,7 @@ void DownloadItemModel::DetermineAndSetS
+ return;
+ }
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ if (download_->GetOriginalMimeType() == "application/x-x509-user-cert") {
+ SetShouldPreferOpeningInBrowser(true);
+ return;
diff --git a/chromium/patches/patch-chrome_browser_download_download__prefs.cc b/chromium/patches/patch-chrome_browser_download_download__prefs.cc
index f463396e91..f0182c3b4b 100644
--- a/chromium/patches/patch-chrome_browser_download_download__prefs.cc
+++ b/chromium/patches/patch-chrome_browser_download_download__prefs.cc
@@ -1,67 +1,96 @@
$NetBSD$
---- chrome/browser/download/download_prefs.cc.orig 2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/download/download_prefs.cc.orig 2024-07-24 02:44:27.055853400 +0000
+++ chrome/browser/download/download_prefs.cc
-@@ -67,7 +67,7 @@ namespace {
+@@ -11,6 +11,7 @@
+ #include <vector>
+
+ #include "base/check.h"
++#include "base/command_line.h"
+ #include "base/feature_list.h"
+ #include "base/files/file_util.h"
+ #include "base/functional/bind.h"
+@@ -64,6 +65,10 @@
+ #include "chrome/browser/flags/android/chrome_feature_list.h"
+ #endif
+
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
++#endif
++
+ using content::BrowserContext;
+ using content::BrowserThread;
+ using content::DownloadManager;
+@@ -74,7 +79,7 @@ namespace {
// Consider downloads 'dangerous' if they go to the home directory on Linux and
// to the desktop on any platform.
bool DownloadPathIsDangerous(const base::FilePath& download_path) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
base::FilePath home_dir = base::GetHomeDir();
if (download_path == home_dir) {
return true;
-@@ -172,7 +172,7 @@ DownloadPrefs::DownloadPrefs(Profile* pr
- GetDefaultDownloadDirectoryForProfile()));
- #endif // defined(OS_CHROMEOS)
+@@ -180,7 +185,7 @@ DownloadPrefs::DownloadPrefs(Profile* pr
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH)
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_MAC)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
should_open_pdf_in_system_reader_ =
prefs->GetBoolean(prefs::kOpenPdfDownloadInSystemReader);
#endif
-@@ -292,7 +292,7 @@ void DownloadPrefs::RegisterProfilePrefs
- default_download_path);
+@@ -304,7 +309,7 @@ void DownloadPrefs::RegisterProfilePrefs
registry->RegisterFilePathPref(prefs::kSaveFileDefaultDirectory,
default_download_path);
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_MAC)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
registry->RegisterBooleanPref(prefs::kOpenPdfDownloadInSystemReader, false);
#endif
- #if defined(OS_ANDROID)
-@@ -400,7 +400,7 @@ bool DownloadPrefs::IsDownloadPathManage
+ #if BUILDFLAG(IS_ANDROID)
+@@ -469,7 +474,7 @@ void DownloadPrefs::DisableAutoOpenByUse
}
- bool DownloadPrefs::IsAutoOpenByUserUsed() const {
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
- if (ShouldOpenPdfInSystemReader())
- return true;
- #endif
-@@ -414,7 +414,7 @@ bool DownloadPrefs::IsAutoOpenEnabled(co
- return false;
- DCHECK(extension[0] == base::FilePath::kExtensionSeparator);
- extension.erase(0, 1);
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
- if (base::FilePath::CompareEqualIgnoreCase(extension,
- FILE_PATH_LITERAL("pdf")) &&
- ShouldOpenPdfInSystemReader())
-@@ -464,7 +464,7 @@ void DownloadPrefs::DisableAutoOpenByUse
- SaveAutoOpenState();
- }
-
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_MAC)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
void DownloadPrefs::SetShouldOpenPdfInSystemReader(bool should_open) {
if (should_open_pdf_in_system_reader_ == should_open)
return;
-@@ -485,7 +485,7 @@ bool DownloadPrefs::ShouldOpenPdfInSyste
- #endif
+@@ -501,7 +506,7 @@ bool DownloadPrefs::ShouldOpenPdfInSyste
void DownloadPrefs::ResetAutoOpenByUser() {
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_MAC)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
SetShouldOpenPdfInSystemReader(false);
#endif
auto_open_by_user_.clear();
+@@ -538,7 +543,7 @@ void DownloadPrefs::SaveAutoOpenState()
+ bool DownloadPrefs::CanPlatformEnableAutoOpenForPdf() const {
+ #if BUILDFLAG(IS_CHROMEOS)
+ return false; // There is no UI for auto-open on ChromeOS.
+-#elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ return ShouldOpenPdfInSystemReader();
+ #else
+ return false;
+@@ -690,7 +695,14 @@ base::FilePath DownloadPrefs::SanitizeDo
+ #else
+ // If the stored download directory is an absolute path, we presume it's
+ // correct; there's not really much more validation we can do here.
++#if BUILDFLAG(IS_OPENBSD)
++ // If unveil(2) is used, force the file dialog directory to something we
++ // know is available.
++ auto* sandbox = sandbox::policy::SandboxLinux::GetInstance();
++ if (!sandbox->unveil_initialized() && path.IsAbsolute())
++#else
+ if (path.IsAbsolute())
++#endif
+ return path;
+
+ // When the default download directory is *not* an absolute path, we use the
diff --git a/chromium/patches/patch-chrome_browser_download_download__prefs.h b/chromium/patches/patch-chrome_browser_download_download__prefs.h
index 8d1a2452e4..e80098bef3 100644
--- a/chromium/patches/patch-chrome_browser_download_download__prefs.h
+++ b/chromium/patches/patch-chrome_browser_download_download__prefs.h
@@ -1,22 +1,26 @@
$NetBSD$
---- chrome/browser/download/download_prefs.h.orig 2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/download/download_prefs.h.orig 2024-07-24 02:44:27.055853400 +0000
+++ chrome/browser/download/download_prefs.h
-@@ -110,7 +110,7 @@ class DownloadPrefs {
- // Disables auto-open based on file extension.
+@@ -115,7 +115,7 @@ class DownloadPrefs {
void DisableAutoOpenByUserBasedOnExtension(const base::FilePath& file_name);
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_MAC)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
// Store the user preference to disk. If |should_open| is true, also disable
// the built-in PDF plugin. If |should_open| is false, enable the PDF plugin.
void SetShouldOpenPdfInSystemReader(bool should_open);
-@@ -167,7 +167,7 @@ class DownloadPrefs {
-
- std::unique_ptr<policy::URLBlacklist> auto_open_allowed_by_urls_;
+@@ -179,7 +179,7 @@ class DownloadPrefs {
+ std::unique_ptr<policy::URLBlocklist> auto_open_allowed_by_urls_;
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_MAC)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
bool should_open_pdf_in_system_reader_;
#endif
diff --git a/chromium/patches/patch-chrome_browser_download_download__query.cc b/chromium/patches/patch-chrome_browser_download_download__query.cc
deleted file mode 100644
index 39468192b4..0000000000
--- a/chromium/patches/patch-chrome_browser_download_download__query.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/download/download_query.cc.orig 2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/download/download_query.cc
-@@ -28,7 +28,7 @@
- #include "components/download/public/common/download_item.h"
- #include "components/url_formatter/url_formatter.h"
- #include "content/public/browser/content_browser_client.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
- #include "url/gurl.h"
-
- using download::DownloadDangerType;
diff --git a/chromium/patches/patch-chrome_browser_download_download__shelf__context__menu.cc b/chromium/patches/patch-chrome_browser_download_download__shelf__context__menu.cc
deleted file mode 100644
index 90ffb40ecc..0000000000
--- a/chromium/patches/patch-chrome_browser_download_download__shelf__context__menu.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/download/download_shelf_context_menu.cc.orig 2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/download/download_shelf_context_menu.cc
-@@ -146,7 +146,7 @@ base::string16 DownloadShelfContextMenu:
- : IDS_DOWNLOAD_MENU_PLATFORM_OPEN_ALWAYS;
- break;
- }
--#elif defined(OS_MACOSX) || defined(OS_LINUX)
-+#elif defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
- if (can_open_pdf_in_system_viewer) {
- id = IDS_DOWNLOAD_MENU_PLATFORM_OPEN_ALWAYS;
- break;
diff --git a/chromium/patches/patch-chrome_browser_enterprise_browser__management_browser__management__service.cc b/chromium/patches/patch-chrome_browser_enterprise_browser__management_browser__management__service.cc
new file mode 100644
index 0000000000..d84f359dfd
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_browser__management_browser__management__service.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/browser_management/browser_management_service.cc.orig 2024-07-24 02:44:27.087856500 +0000
++++ chrome/browser/enterprise/browser_management/browser_management_service.cc
+@@ -21,7 +21,7 @@ namespace policy {
+
+ namespace {
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void UpdateEnterpriseLogo(
+ Profile* profile,
+ base::OnceCallback<void(const gfx::Image&,
+@@ -98,7 +98,7 @@ GetManagementStatusProviders(Profile* pr
+ } // namespace
+
+ BrowserManagementMetadata::BrowserManagementMetadata(Profile* profile) {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ UpdateManagementLogo(profile);
+ pref_change_registrar_.Init(profile->GetPrefs());
+ pref_change_registrar_.Add(
+@@ -114,7 +114,7 @@ const gfx::Image& BrowserManagementMetad
+ return management_logo_;
+ }
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void BrowserManagementMetadata::UpdateManagementLogo(Profile* profile) {
+ UpdateEnterpriseLogo(
+ profile, base::BindOnce(&BrowserManagementMetadata::SetManagementLogo,
diff --git a/chromium/patches/patch-chrome_browser_enterprise_browser__management_browser__management__service.h b/chromium/patches/patch-chrome_browser_enterprise_browser__management_browser__management__service.h
new file mode 100644
index 0000000000..59d20523b4
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_browser__management_browser__management__service.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/browser_management/browser_management_service.h.orig 2024-07-24 02:44:27.087856500 +0000
++++ chrome/browser/enterprise/browser_management/browser_management_service.h
+@@ -28,7 +28,7 @@ class BrowserManagementMetadata {
+
+ const gfx::Image& GetManagementLogo() const;
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ private:
+ void UpdateManagementLogo(Profile* profile);
+ void SetManagementLogo(
diff --git a/chromium/patches/patch-chrome_browser_enterprise_connectors_analysis_analysis__service__settings.cc b/chromium/patches/patch-chrome_browser_enterprise_connectors_analysis_analysis__service__settings.cc
new file mode 100644
index 0000000000..af5586a874
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_connectors_analysis_analysis__service__settings.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/connectors/analysis/analysis_service_settings.cc.orig 2024-07-24 02:44:27.087856500 +0000
++++ chrome/browser/enterprise/connectors/analysis/analysis_service_settings.cc
+@@ -151,7 +151,7 @@ AnalysisServiceSettings::AnalysisService
+ const char* verification_key = kKeyWindowsVerification;
+ #elif BUILDFLAG(IS_MAC)
+ const char* verification_key = kKeyMacVerification;
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const char* verification_key = kKeyLinuxVerification;
+ #endif
+
diff --git a/chromium/patches/patch-chrome_browser_enterprise_connectors_connectors__service.cc b/chromium/patches/patch-chrome_browser_enterprise_connectors_connectors__service.cc
new file mode 100644
index 0000000000..65f0d70b6f
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_connectors_connectors__service.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/connectors/connectors_service.cc.orig 2024-07-24 02:44:27.095857400 +0000
++++ chrome/browser/enterprise/connectors/connectors_service.cc
+@@ -568,7 +568,7 @@ bool ConnectorsService::ConnectorsEnable
+
+ Profile* profile = Profile::FromBrowserContext(context_);
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // On desktop, the guest profile is actually the primary OTR profile of
+ // the "regular" guest profile. The regular guest profile is never used
+ // directly by users. Also, user are not able to create child OTR profiles
diff --git a/chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_device__trust__connector__service__factory.cc b/chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_device__trust__connector__service__factory.cc
new file mode 100644
index 0000000000..5408ae7f38
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_device__trust__connector__service__factory.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/connectors/device_trust/device_trust_connector_service_factory.cc.orig 2024-07-24 02:44:27.103858000 +0000
++++ chrome/browser/enterprise/connectors/device_trust/device_trust_connector_service_factory.cc
+@@ -10,7 +10,7 @@
+ #include "chrome/browser/profiles/profile.h"
+ #include "components/keyed_service/core/keyed_service.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/browser_process.h"
+ #include "chrome/browser/enterprise/connectors/device_trust/browser/signing_key_policy_observer.h"
+ #include "chrome/browser/policy/chrome_browser_policy_connector.h"
+@@ -40,7 +40,7 @@ DeviceTrustConnectorService* DeviceTrust
+
+ bool DeviceTrustConnectorServiceFactory::ServiceIsCreatedWithBrowserContext()
+ const {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ return true;
+ #else
+ return false;
+@@ -79,7 +79,7 @@ DeviceTrustConnectorServiceFactory::Buil
+ std::unique_ptr<DeviceTrustConnectorService> service =
+ std::make_unique<DeviceTrustConnectorService>(profile->GetPrefs());
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ auto* key_manager = g_browser_process->browser_policy_connector()
+ ->chrome_browser_cloud_management_controller()
+ ->GetDeviceTrustKeyManager();
diff --git a/chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_device__trust__service__factory.cc b/chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_device__trust__service__factory.cc
new file mode 100644
index 0000000000..d1855dd061
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_device__trust__service__factory.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/connectors/device_trust/device_trust_service_factory.cc.orig 2024-07-24 02:44:27.103858000 +0000
++++ chrome/browser/enterprise/connectors/device_trust/device_trust_service_factory.cc
+@@ -23,7 +23,7 @@
+ #include "components/policy/core/common/management/management_service.h"
+ #include "content/public/browser/browser_context.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/browser_process.h"
+ #include "chrome/browser/enterprise/connectors/device_trust/attestation/browser/browser_attestation_service.h"
+ #include "chrome/browser/enterprise/connectors/device_trust/attestation/browser/device_attester.h"
+@@ -54,7 +54,7 @@ bool IsProfileManaged(Profile* profile)
+ return management_service && management_service->IsManaged();
+ }
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ policy::CloudPolicyStore* GetUserCloudPolicyStore(Profile* profile) {
+ policy::CloudPolicyManager* user_policy_manager =
+ profile->GetCloudPolicyManager();
+@@ -101,7 +101,7 @@ DeviceTrustServiceFactory::DeviceTrustSe
+ DependsOn(DeviceTrustConnectorServiceFactory::GetInstance());
+ DependsOn(policy::ManagementServiceFactory::GetInstance());
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Depends on this service via the SignalsService having a dependency on it.
+ DependsOn(enterprise_signals::SignalsAggregatorFactory::GetInstance());
+ // Depends on this service via the ProfileAttester having a dependency on it
diff --git a/chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_key__management_browser_commands_key__rotation__command__factory.cc b/chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_key__management_browser_commands_key__rotation__command__factory.cc
new file mode 100644
index 0000000000..2299ff82ce
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_key__management_browser_commands_key__rotation__command__factory.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/connectors/device_trust/key_management/browser/commands/key_rotation_command_factory.cc.orig 2024-07-24 02:44:27.103858000 +0000
++++ chrome/browser/enterprise/connectors/device_trust/key_management/browser/commands/key_rotation_command_factory.cc
+@@ -14,7 +14,7 @@
+
+ #if BUILDFLAG(IS_WIN)
+ #include "chrome/browser/enterprise/connectors/device_trust/key_management/browser/commands/win_key_rotation_command.h"
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/connectors/device_trust/key_management/browser/commands/linux_key_rotation_command.h"
+ #elif BUILDFLAG(IS_MAC)
+ #include "chrome/browser/enterprise/connectors/device_trust/key_management/browser/commands/mac_key_rotation_command.h"
+@@ -47,7 +47,7 @@ std::unique_ptr<KeyRotationCommand> KeyR
+ scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory) {
+ #if BUILDFLAG(IS_WIN)
+ return std::make_unique<WinKeyRotationCommand>();
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return std::make_unique<LinuxKeyRotationCommand>(url_loader_factory);
+ #elif BUILDFLAG(IS_MAC)
+ return std::make_unique<MacKeyRotationCommand>(url_loader_factory);
diff --git a/chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_key__management_core_persistence_key__persistence__delegate__factory.cc b/chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_key__management_core_persistence_key__persistence__delegate__factory.cc
new file mode 100644
index 0000000000..a71dc249c9
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_key__management_core_persistence_key__persistence__delegate__factory.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/connectors/device_trust/key_management/core/persistence/key_persistence_delegate_factory.cc.orig 2024-07-24 02:44:27.111858800 +0000
++++ chrome/browser/enterprise/connectors/device_trust/key_management/core/persistence/key_persistence_delegate_factory.cc
+@@ -13,7 +13,7 @@
+ #include "chrome/browser/enterprise/connectors/device_trust/key_management/core/persistence/win_key_persistence_delegate.h"
+ #elif BUILDFLAG(IS_MAC)
+ #include "chrome/browser/enterprise/connectors/device_trust/key_management/core/persistence/mac_key_persistence_delegate.h"
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/connectors/device_trust/key_management/core/persistence/linux_key_persistence_delegate.h"
+ #endif
+
+@@ -45,7 +45,7 @@ KeyPersistenceDelegateFactory::CreateKey
+ return std::make_unique<WinKeyPersistenceDelegate>();
+ #elif BUILDFLAG(IS_MAC)
+ return std::make_unique<MacKeyPersistenceDelegate>();
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return std::make_unique<LinuxKeyPersistenceDelegate>();
+ #else
+ NOTREACHED_IN_MIGRATION();
diff --git a/chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_signals_signals__service__factory.cc b/chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_signals_signals__service__factory.cc
new file mode 100644
index 0000000000..77dfb53cc2
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_signals_signals__service__factory.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/connectors/device_trust/signals/signals_service_factory.cc.orig 2024-07-24 02:44:27.115859300 +0000
++++ chrome/browser/enterprise/connectors/device_trust/signals/signals_service_factory.cc
+@@ -21,7 +21,7 @@
+ #include "chrome/browser/profiles/profile.h"
+ #include "components/policy/core/common/management/management_service.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ #include "base/check.h"
+ #include "chrome/browser/enterprise/connectors/device_trust/signals/decorators/browser/browser_signals_decorator.h"
+ #include "chrome/browser/enterprise/connectors/device_trust/signals/dependency_factory.h"
+@@ -58,7 +58,7 @@ std::unique_ptr<SignalsService> CreateSi
+ enterprise_signals::ContextInfoFetcher::CreateInstance(
+ profile, ConnectorsServiceFactory::GetForBrowserContext(profile))));
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+
+ policy::CloudPolicyManager* browser_policy_manager = nullptr;
+ if (management_service->HasManagementAuthority(
diff --git a/chromium/patches/patch-chrome_browser_enterprise_connectors_reporting_browser__crash__event__router.cc b/chromium/patches/patch-chrome_browser_enterprise_connectors_reporting_browser__crash__event__router.cc
new file mode 100644
index 0000000000..136049afab
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_connectors_reporting_browser__crash__event__router.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/connectors/reporting/browser_crash_event_router.cc.orig 2024-07-24 02:44:27.119859700 +0000
++++ chrome/browser/enterprise/connectors/reporting/browser_crash_event_router.cc
+@@ -11,7 +11,7 @@ namespace enterprise_connectors {
+
+ BrowserCrashEventRouter::BrowserCrashEventRouter(
+ content::BrowserContext* context) {
+-#if !BUILDFLAG(IS_CHROMEOS)
++#if !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD)
+ CrashReportingContext* crash_reporting_context =
+ CrashReportingContext::GetInstance();
+ Profile* profile = Profile::FromBrowserContext(context);
+@@ -21,7 +21,7 @@ BrowserCrashEventRouter::BrowserCrashEve
+ }
+
+ BrowserCrashEventRouter::~BrowserCrashEventRouter() {
+-#if !BUILDFLAG(IS_CHROMEOS)
++#if !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD)
+ CrashReportingContext* crash_reporting_context =
+ CrashReportingContext::GetInstance();
+ crash_reporting_context->RemoveProfile(this);
diff --git a/chromium/patches/patch-chrome_browser_enterprise_connectors_reporting_crash__reporting__context.cc b/chromium/patches/patch-chrome_browser_enterprise_connectors_reporting_crash__reporting__context.cc
new file mode 100644
index 0000000000..0c0f5715a7
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_connectors_reporting_crash__reporting__context.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/connectors/reporting/crash_reporting_context.cc.orig 2024-07-24 02:44:27.119859700 +0000
++++ chrome/browser/enterprise/connectors/reporting/crash_reporting_context.cc
+@@ -18,7 +18,7 @@
+
+ namespace enterprise_connectors {
+
+-#if !BUILDFLAG(IS_CHROMEOS)
++#if !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD)
+
+ namespace {
+
diff --git a/chromium/patches/patch-chrome_browser_enterprise_connectors_reporting_realtime__reporting__client.cc b/chromium/patches/patch-chrome_browser_enterprise_connectors_reporting_realtime__reporting__client.cc
new file mode 100644
index 0000000000..e3c2f99a5f
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_connectors_reporting_realtime__reporting__client.cc
@@ -0,0 +1,53 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/connectors/reporting/realtime_reporting_client.cc.orig 2024-07-24 02:44:27.119859700 +0000
++++ chrome/browser/enterprise/connectors/reporting/realtime_reporting_client.cc
+@@ -58,7 +58,7 @@
+ #include "base/strings/utf_string_conversions.h"
+ #endif
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/signals/signals_aggregator_factory.h"
+ #include "chrome/browser/enterprise/signin/enterprise_signin_prefs.h"
+ #include "components/device_signals/core/browser/signals_aggregator.h"
+@@ -133,7 +133,7 @@ void UploadSecurityEventReport(base::Val
+ std::move(upload_callback));
+ }
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void PopulateSignals(base::Value::Dict event,
+ policy::CloudPolicyClient* client,
+ std::string name,
+@@ -421,7 +421,7 @@ void RealtimeReportingClient::ReportPast
+ /*include_profile_user_name=*/false);
+ }
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+
+ void AddCrowdstrikeSignalsToEvent(
+ base::Value::Dict& event,
+@@ -480,7 +480,7 @@ void RealtimeReportingClient::ReportEven
+ if (include_profile_user_name) {
+ event.Set(kKeyProfileUserName, GetProfileUserName());
+ }
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ Profile* profile = Profile::FromBrowserContext(context_);
+ device_signals::SignalsAggregator* signals_aggregator =
+ enterprise_signals::SignalsAggregatorFactory::GetForProfile(profile);
+@@ -505,7 +505,7 @@ std::string RealtimeReportingClient::Get
+ ? safe_browsing::GetProfileEmail(identity_manager_)
+ : std::string();
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (username.empty()) {
+ username = Profile::FromBrowserContext(context_)->GetPrefs()->GetString(
+ enterprise_signin::prefs::kProfileUserEmail);
diff --git a/chromium/patches/patch-chrome_browser_enterprise_connectors_reporting_realtime__reporting__client.h b/chromium/patches/patch-chrome_browser_enterprise_connectors_reporting_realtime__reporting__client.h
new file mode 100644
index 0000000000..aa83ae4640
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_connectors_reporting_realtime__reporting__client.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/connectors/reporting/realtime_reporting_client.h.orig 2024-07-24 02:44:27.119859700 +0000
++++ chrome/browser/enterprise/connectors/reporting/realtime_reporting_client.h
+@@ -16,7 +16,7 @@
+ #include "components/keyed_service/core/keyed_service.h"
+ #include "components/policy/core/common/cloud/cloud_policy_client.h"
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "components/device_signals/core/browser/signals_types.h"
+ #endif
+
+@@ -184,7 +184,7 @@ class RealtimeReportingClient : public K
+ base::WeakPtrFactory<RealtimeReportingClient> weak_ptr_factory_{this};
+ };
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Populate event dict with CrowdStrike signal values. If those signals are
+ // available in `response`, this function returns a Dict with the following
+ // fields added:
diff --git a/chromium/patches/patch-chrome_browser_enterprise_identifiers_profile__id__delegate__impl.cc b/chromium/patches/patch-chrome_browser_enterprise_identifiers_profile__id__delegate__impl.cc
new file mode 100644
index 0000000000..e23e75250d
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_identifiers_profile__id__delegate__impl.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/identifiers/profile_id_delegate_impl.cc.orig 2024-07-24 02:44:27.127860300 +0000
++++ chrome/browser/enterprise/identifiers/profile_id_delegate_impl.cc
+@@ -13,7 +13,7 @@
+ #include "components/enterprise/browser/identifiers/identifiers_prefs.h"
+ #include "components/prefs/pref_service.h"
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ #include "components/enterprise/browser/controller/browser_dm_token_storage.h"
+ #if BUILDFLAG(IS_WIN)
+ #include "base/strings/utf_string_conversions.h"
+@@ -94,7 +94,7 @@ std::string ProfileIdDelegateImpl::GetDe
+ }
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ // Gets the device ID from the BrowserDMTokenStorage.
+ std::string ProfileIdDelegateImpl::GetId() {
+ std::string device_id =
diff --git a/chromium/patches/patch-chrome_browser_enterprise_profile__management_profile__management__navigation__throttle.cc b/chromium/patches/patch-chrome_browser_enterprise_profile__management_profile__management__navigation__throttle.cc
new file mode 100644
index 0000000000..39460b77af
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_profile__management_profile__management__navigation__throttle.cc
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.orig 2024-07-24 02:44:27.131860700 +0000
++++ chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc
+@@ -67,8 +67,8 @@ base::flat_map<std::string, SAMLProfileA
+ // TODO(crbug.com/40267996): Add actual domains with attribute names.
+ profile_attributes->insert(std::make_pair(
+ "supported.test",
+- SAMLProfileAttributes("placeholderName", "placeholderDomain",
+- "placeholderToken")));
++ SAMLProfileAttributes(SAMLProfileAttributes{"placeholderName", "placeholderDomain",
++ "placeholderToken"})));
+
+ // Extract domains and attributes from the command line switch.
+ const base::CommandLine& command_line =
diff --git a/chromium/patches/patch-chrome_browser_enterprise_remote__commands_cbcm__remote__commands__factory.cc b/chromium/patches/patch-chrome_browser_enterprise_remote__commands_cbcm__remote__commands__factory.cc
new file mode 100644
index 0000000000..474d233c6b
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_remote__commands_cbcm__remote__commands__factory.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/remote_commands/cbcm_remote_commands_factory.cc.orig 2024-07-24 02:44:27.131860700 +0000
++++ chrome/browser/enterprise/remote_commands/cbcm_remote_commands_factory.cc
+@@ -11,7 +11,7 @@
+ #include "chrome/browser/profiles/profile_manager.h"
+ #include "components/policy/core/common/remote_commands/remote_command_job.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/remote_commands/rotate_attestation_credential_job.h"
+ #include "chrome/browser/policy/chrome_browser_policy_connector.h"
+ #include "components/enterprise/browser/controller/chrome_browser_cloud_management_controller.h"
+@@ -30,7 +30,7 @@ CBCMRemoteCommandsFactory::BuildJobForTy
+ g_browser_process->profile_manager());
+ }
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ if (type == enterprise_management::
+ RemoteCommand_Type_BROWSER_ROTATE_ATTESTATION_CREDENTIAL) {
+ return std::make_unique<RotateAttestationCredentialJob>(
diff --git a/chromium/patches/patch-chrome_browser_enterprise_signals_device__info__fetcher.cc b/chromium/patches/patch-chrome_browser_enterprise_signals_device__info__fetcher.cc
new file mode 100644
index 0000000000..5d033a8daa
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_signals_device__info__fetcher.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/signals/device_info_fetcher.cc.orig 2024-07-24 02:44:27.139861600 +0000
++++ chrome/browser/enterprise/signals/device_info_fetcher.cc
+@@ -10,7 +10,7 @@
+ #include "chrome/browser/enterprise/signals/device_info_fetcher_mac.h"
+ #elif BUILDFLAG(IS_WIN)
+ #include "chrome/browser/enterprise/signals/device_info_fetcher_win.h"
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/signals/device_info_fetcher_linux.h"
+ #endif
+
+@@ -67,7 +67,7 @@ std::unique_ptr<DeviceInfoFetcher> Devic
+ return CreateInstanceInternal();
+ }
+
+-#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_WIN) && \
++#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_BSD) && \
+ !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
+ // static
+ std::unique_ptr<DeviceInfoFetcher> DeviceInfoFetcher::CreateInstanceInternal() {
diff --git a/chromium/patches/patch-chrome_browser_enterprise_signals_device__info__fetcher__linux.cc b/chromium/patches/patch-chrome_browser_enterprise_signals_device__info__fetcher__linux.cc
new file mode 100644
index 0000000000..f3d4a8a3cc
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_signals_device__info__fetcher__linux.cc
@@ -0,0 +1,83 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/signals/device_info_fetcher_linux.cc.orig 2024-07-24 02:44:27.139861600 +0000
++++ chrome/browser/enterprise/signals/device_info_fetcher_linux.cc
+@@ -4,11 +4,22 @@
+
+ #include "chrome/browser/enterprise/signals/device_info_fetcher_linux.h"
+
++#include "build/build_config.h"
++
+ #if defined(USE_GIO)
+ #include <gio/gio.h>
+ #endif // defined(USE_GIO)
+ #include <sys/stat.h>
++#if !BUILDFLAG(IS_BSD)
+ #include <sys/sysmacros.h>
++#endif
++
++#if BUILDFLAG(IS_BSD)
++#include <sys/types.h>
++#include <sys/socket.h>
++#include <ifaddrs.h>
++#include <net/if_dl.h>
++#endif
+
+ #include <string>
+
+@@ -117,6 +128,7 @@ SettingValue GetScreenlockSecured() {
+ // Implements the logic from the native host installation script. First find the
+ // root device identifier, then locate its parent and get its type.
+ SettingValue GetDiskEncrypted() {
++#if !BUILDFLAG(IS_BSD)
+ struct stat info;
+ // First figure out the device identifier. Fail fast if this fails.
+ if (stat("/", &info) != 0)
+@@ -138,11 +150,35 @@ SettingValue GetDiskEncrypted() {
+ }
+ return SettingValue::UNKNOWN;
+ }
++#endif
+ return SettingValue::DISABLED;
+ }
+
+ std::vector<std::string> GetMacAddresses() {
+ std::vector<std::string> result;
++#if BUILDFLAG(IS_BSD)
++ struct ifaddrs* ifa = nullptr;
++
++ if (getifaddrs(&ifa) != 0)
++ return result;
++
++ struct ifaddrs* interface = ifa;
++ for (; interface != nullptr; interface = interface->ifa_next) {
++ if (interface->ifa_addr == nullptr ||
++ interface->ifa_addr->sa_family != AF_LINK) {
++ continue;
++ }
++ struct sockaddr_dl* sdl =
++ reinterpret_cast<struct sockaddr_dl*>(interface->ifa_addr);
++ if (!sdl || sdl->sdl_alen != 6)
++ continue;
++ char* link_address = static_cast<char*>(LLADDR(sdl));
++ result.push_back(base::StringPrintf(
++ "%02x:%02x:%02x:%02x:%02x:%02x", link_address[0] & 0xff,
++ link_address[1] & 0xff, link_address[2] & 0xff, link_address[3] & 0xff,
++ link_address[4] & 0xff, link_address[5] & 0xff));
++ }
++#else
+ base::DirReaderPosix reader("/sys/class/net");
+ if (!reader.IsValid())
+ return result;
+@@ -165,6 +201,7 @@ std::vector<std::string> GetMacAddresses
+ &address);
+ result.push_back(address);
+ }
++#endif
+ return result;
+ }
+
diff --git a/chromium/patches/patch-chrome_browser_extensions_BUILD.gn b/chromium/patches/patch-chrome_browser_extensions_BUILD.gn
index eb78d751c1..cb3dd91721 100644
--- a/chromium/patches/patch-chrome_browser_extensions_BUILD.gn
+++ b/chromium/patches/patch-chrome_browser_extensions_BUILD.gn
@@ -1,19 +1,19 @@
$NetBSD$
---- chrome/browser/extensions/BUILD.gn.orig 2020-07-08 21:41:46.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/extensions/BUILD.gn.orig 2024-07-24 02:44:27.151862600 +0000
+++ chrome/browser/extensions/BUILD.gn
-@@ -1110,7 +1110,13 @@ static_library("extensions") {
- ]
+@@ -1415,6 +1415,10 @@ source_set("extensions") {
+ deps += [ "//chrome/services/printing/public/mojom" ]
}
-- if (is_linux) {
-+ #if (is_bsd) {
-+ # deps -= [
-+ # "api/image_writer_private/removable_storage_provider_linux.cc",
-+ # ]
-+ #}
++ if (is_bsd) {
++ sources -= [ "api/image_writer_private/removable_storage_provider_linux.cc" ]
++ }
+
-+ if (is_linux || is_bsd) {
- deps += [ "//third_party/fontconfig" ]
-
- if (use_dbus) {
+ if (enable_service_discovery) {
+ sources += [
+ "api/mdns/mdns_api.cc",
diff --git a/chromium/patches/patch-chrome_browser_extensions_activity__log_activity__log.cc b/chromium/patches/patch-chrome_browser_extensions_activity__log_activity__log.cc
deleted file mode 100644
index 7b57d09ac5..0000000000
--- a/chromium/patches/patch-chrome_browser_extensions_activity__log_activity__log.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/extensions/activity_log/activity_log.cc.orig 2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/extensions/activity_log/activity_log.cc
-@@ -47,7 +47,7 @@
- #include "extensions/browser/extensions_browser_client.h"
- #include "extensions/common/extension.h"
- #include "extensions/common/extension_messages.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
- #include "url/gurl.h"
-
- namespace constants = activity_log_constants;
diff --git a/chromium/patches/patch-chrome_browser_extensions_api_api__browser__context__keyed__service__factories.cc b/chromium/patches/patch-chrome_browser_extensions_api_api__browser__context__keyed__service__factories.cc
new file mode 100644
index 0000000000..2def259046
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_extensions_api_api__browser__context__keyed__service__factories.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/extensions/api/api_browser_context_keyed_service_factories.cc.orig 2024-07-24 02:44:27.159863500 +0000
++++ chrome/browser/extensions/api/api_browser_context_keyed_service_factories.cc
+@@ -44,7 +44,7 @@
+ #include "pdf/buildflags.h"
+ #include "printing/buildflags/buildflags.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/extensions/api/system_indicator/system_indicator_manager_factory.h"
+ #endif
+
+@@ -120,7 +120,7 @@ void EnsureApiBrowserContextKeyedService
+ extensions::SettingsPrivateEventRouterFactory::GetInstance();
+ extensions::SettingsOverridesAPI::GetFactoryInstance();
+ extensions::SidePanelService::GetFactoryInstance();
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ extensions::SystemIndicatorManagerFactory::GetInstance();
+ #endif
+ extensions::TabGroupsEventRouterFactory::GetInstance();
diff --git a/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_chrome__desktop__report__request__helper.cc b/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_chrome__desktop__report__request__helper.cc
index b3ff233e38..e5c41e5247 100644
--- a/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_chrome__desktop__report__request__helper.cc
+++ b/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_chrome__desktop__report__request__helper.cc
@@ -1,31 +1,35 @@
$NetBSD$
---- chrome/browser/extensions/api/enterprise_reporting_private/chrome_desktop_report_request_helper.cc.orig 2020-07-08 21:41:46.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/extensions/api/enterprise_reporting_private/chrome_desktop_report_request_helper.cc.orig 2024-07-24 02:44:27.195867000 +0000
+++ chrome/browser/extensions/api/enterprise_reporting_private/chrome_desktop_report_request_helper.cc
-@@ -40,7 +40,7 @@
+@@ -24,7 +24,7 @@
#include "base/win/registry.h"
#endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "base/environment.h"
#include "base/nix/xdg_util.h"
#endif
-@@ -386,7 +386,7 @@ base::FilePath GetEndpointVerificationDi
- return *GetEndpointVerificationDirOverride();
- #if defined(OS_WIN)
- if (!base::PathService::Get(base::DIR_LOCAL_APP_DATA, &path))
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+@@ -255,7 +255,7 @@ base::FilePath GetEndpointVerificationDi
+ bool got_path = false;
+ #if BUILDFLAG(IS_WIN)
+ got_path = base::PathService::Get(base::DIR_LOCAL_APP_DATA, &path);
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
std::unique_ptr<base::Environment> env(base::Environment::Create());
path = base::nix::GetXDGDirectory(env.get(), base::nix::kXdgConfigHomeEnvVar,
base::nix::kDotConfigDir);
-@@ -397,7 +397,7 @@ base::FilePath GetEndpointVerificationDi
- if (true)
- #endif
+@@ -266,7 +266,7 @@ base::FilePath GetEndpointVerificationDi
+ if (!got_path)
return path;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
path = path.AppendASCII("google");
#else
path = path.AppendASCII("Google");
diff --git a/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_conversion__utils.cc b/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_conversion__utils.cc
new file mode 100644
index 0000000000..f4313d22dd
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_conversion__utils.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/extensions/api/enterprise_reporting_private/conversion_utils.cc.orig 2024-07-24 02:44:27.195867000 +0000
++++ chrome/browser/extensions/api/enterprise_reporting_private/conversion_utils.cc
+@@ -8,7 +8,7 @@
+
+ #include "build/build_config.h"
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+
+ #include <memory>
+ #include <utility>
diff --git a/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_conversion__utils.h b/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_conversion__utils.h
new file mode 100644
index 0000000000..d4be7492f9
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_conversion__utils.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/extensions/api/enterprise_reporting_private/conversion_utils.h.orig 2024-07-24 02:44:27.195867000 +0000
++++ chrome/browser/extensions/api/enterprise_reporting_private/conversion_utils.h
+@@ -7,7 +7,7 @@
+
+ #include "build/build_config.h"
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+
+ #include <optional>
+ #include <vector>
diff --git a/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_device__info__fetcher.cc b/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_device__info__fetcher.cc
deleted file mode 100644
index e6799785b5..0000000000
--- a/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_device__info__fetcher.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- chrome/browser/extensions/api/enterprise_reporting_private/device_info_fetcher.cc.orig 2020-07-08 21:41:46.000000000 +0000
-+++ chrome/browser/extensions/api/enterprise_reporting_private/device_info_fetcher.cc
-@@ -10,7 +10,7 @@
- #include "chrome/browser/extensions/api/enterprise_reporting_private/device_info_fetcher_mac.h"
- #elif defined(OS_WIN)
- #include "chrome/browser/extensions/api/enterprise_reporting_private/device_info_fetcher_win.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- #include "chrome/browser/extensions/api/enterprise_reporting_private/device_info_fetcher_linux.h"
- #endif
-
-@@ -57,7 +57,7 @@ std::unique_ptr<DeviceInfoFetcher> Devic
- return std::make_unique<DeviceInfoFetcherMac>();
- #elif defined(OS_WIN)
- return std::make_unique<DeviceInfoFetcherWin>();
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- return std::make_unique<DeviceInfoFetcherLinux>();
- #else
- return std::make_unique<StubDeviceFetcher>();
diff --git a/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_device__info__fetcher__linux.cc b/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_device__info__fetcher__linux.cc
deleted file mode 100644
index 7b51d4b9f2..0000000000
--- a/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_device__info__fetcher__linux.cc
+++ /dev/null
@@ -1,42 +0,0 @@
-$NetBSD$
-
---- chrome/browser/extensions/api/enterprise_reporting_private/device_info_fetcher_linux.cc.orig 2020-07-24 02:37:46.000000000 +0000
-+++ chrome/browser/extensions/api/enterprise_reporting_private/device_info_fetcher_linux.cc
-@@ -8,7 +8,9 @@
- #include <gio/gio.h>
- #endif // defined(USE_GIO)
- #include <sys/stat.h>
-+#if defined(OS_LINUX)
- #include <sys/sysmacros.h>
-+#endif
-
- #include <string>
-
-@@ -91,6 +93,7 @@ enterprise_reporting_private::SettingVal
- // Implements the logic from the native host installation script. First find the
- // root device identifier, then locate its parent and get its type.
- enterprise_reporting_private::SettingValue GetDiskEncrypted() {
-+#if !defined(OS_BSD)
- struct stat info;
- // First figure out the device identifier.
- stat("/", &info);
-@@ -110,6 +113,7 @@ enterprise_reporting_private::SettingVal
- return is_encrypted ? enterprise_reporting_private::SETTING_VALUE_ENABLED
- : enterprise_reporting_private::SETTING_VALUE_DISABLED;
- }
-+#endif
- return enterprise_reporting_private::SETTING_VALUE_UNKNOWN;
- }
-
-@@ -121,7 +125,11 @@ DeviceInfoFetcherLinux::~DeviceInfoFetch
-
- DeviceInfo DeviceInfoFetcherLinux::Fetch() {
- DeviceInfo device_info;
-+#if defined(OS_NETBSD)
-+ device_info.os_name = "netbsd";
-+#else
- device_info.os_name = "linux";
-+#endif
- device_info.os_version = GetOsVersion();
- device_info.device_host_name = GetDeviceHostName();
- device_info.device_model = GetDeviceModel();
diff --git a/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.cc b/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.cc
new file mode 100644
index 0000000000..23fc9e8748
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.cc
@@ -0,0 +1,44 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/extensions/api/enterprise_reporting_private/enterprise_reporting_private_api.cc.orig 2024-07-24 02:44:27.195867000 +0000
++++ chrome/browser/extensions/api/enterprise_reporting_private/enterprise_reporting_private_api.cc
+@@ -33,7 +33,7 @@
+ #include "components/reporting/util/statusor.h"
+ #endif
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include <optional>
+
+ #include "base/strings/string_util.h"
+@@ -150,7 +150,7 @@ api::enterprise_reporting_private::Conte
+ return info;
+ }
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+
+ device_signals::SignalsAggregationRequest CreateAggregationRequest(
+ device_signals::SignalName signal_name) {
+@@ -211,7 +211,7 @@ EnterpriseReportingPrivateGetDeviceIdFun
+
+ // getPersistentSecret
+
+-#if !BUILDFLAG(IS_LINUX)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD)
+
+ EnterpriseReportingPrivateGetPersistentSecretFunction::
+ EnterpriseReportingPrivateGetPersistentSecretFunction() = default;
+@@ -637,7 +637,7 @@ void EnterpriseReportingPrivateEnqueueRe
+ }
+ #endif
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+
+ // getFileSystemInfo
+
diff --git a/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.h b/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.h
new file mode 100644
index 0000000000..e9f7e57c58
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.h
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/extensions/api/enterprise_reporting_private/enterprise_reporting_private_api.h.orig 2024-07-24 02:44:27.195867000 +0000
++++ chrome/browser/extensions/api/enterprise_reporting_private/enterprise_reporting_private_api.h
+@@ -20,7 +20,7 @@
+ #include "components/reporting/proto/synced/record.pb.h"
+ #include "components/reporting/proto/synced/record_constants.pb.h"
+ #include "components/reporting/util/statusor.h"
+-#elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "base/time/time.h"
+ #include "components/device_signals/core/browser/signals_types.h"
+ #endif // BUILDFLAG(IS_CHROMEOS)
+@@ -56,7 +56,7 @@ class EnterpriseReportingPrivateGetDevic
+ ~EnterpriseReportingPrivateGetDeviceIdFunction() override;
+ };
+
+-#if !BUILDFLAG(IS_LINUX)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD)
+
+ class EnterpriseReportingPrivateGetPersistentSecretFunction
+ : public ExtensionFunction {
+@@ -266,7 +266,7 @@ class EnterpriseReportingPrivateEnqueueR
+
+ #endif
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+
+ class EnterpriseReportingPrivateGetFileSystemInfoFunction
+ : public ExtensionFunction {
diff --git a/chromium/patches/patch-chrome_browser_extensions_api_image__writer__private_removable__storage__provider.cc b/chromium/patches/patch-chrome_browser_extensions_api_image__writer__private_removable__storage__provider.cc
index 54f9209b8c..36124e09d0 100644
--- a/chromium/patches/patch-chrome_browser_extensions_api_image__writer__private_removable__storage__provider.cc
+++ b/chromium/patches/patch-chrome_browser_extensions_api_image__writer__private_removable__storage__provider.cc
@@ -1,16 +1,20 @@
$NetBSD$
---- chrome/browser/extensions/api/image_writer_private/removable_storage_provider.cc.orig 2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/extensions/api/image_writer_private/removable_storage_provider.cc.orig 2024-07-24 02:44:27.215869000 +0000
+++ chrome/browser/extensions/api/image_writer_private/removable_storage_provider.cc
-@@ -22,6 +22,7 @@ static base::LazyInstance<scoped_refptr<
+@@ -20,6 +20,7 @@ static base::LazyInstance<scoped_refptr<
void RemovableStorageProvider::GetAllDevices(DeviceListReadyCallback callback) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
-+#if !defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
if (g_test_device_list.Get().get() != nullptr) {
- base::ThreadTaskRunnerHandle::Get()->PostTask(
+ base::SingleThreadTaskRunner::GetCurrentDefault()->PostTask(
FROM_HERE,
-@@ -35,6 +36,9 @@ void RemovableStorageProvider::GetAllDev
+@@ -33,6 +34,9 @@ void RemovableStorageProvider::GetAllDev
base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN},
base::BindOnce(&RemovableStorageProvider::PopulateDeviceList),
std::move(callback));
diff --git a/chromium/patches/patch-chrome_browser_extensions_api_management_chrome__management__api__delegate.cc b/chromium/patches/patch-chrome_browser_extensions_api_management_chrome__management__api__delegate.cc
new file mode 100644
index 0000000000..acfbceb3b5
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_extensions_api_management_chrome__management__api__delegate.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/extensions/api/management/chrome_management_api_delegate.cc.orig 2024-07-24 02:44:27.219869400 +0000
++++ chrome/browser/extensions/api/management/chrome_management_api_delegate.cc
+@@ -414,7 +414,7 @@ bool ChromeManagementAPIDelegate::Launch
+ apps::LaunchContainer launch_container =
+ GetLaunchContainer(extensions::ExtensionPrefs::Get(context), extension);
+ Profile* profile = Profile::FromBrowserContext(context);
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (extensions::IsExtensionUnsupportedDeprecatedApp(profile,
+ extension->id())) {
+ return false;
diff --git a/chromium/patches/patch-chrome_browser_extensions_api_messaging_native__process__launcher__posix.cc b/chromium/patches/patch-chrome_browser_extensions_api_messaging_native__process__launcher__posix.cc
new file mode 100644
index 0000000000..8d68576912
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_extensions_api_messaging_native__process__launcher__posix.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/extensions/api/messaging/native_process_launcher_posix.cc.orig 2024-07-24 02:44:27.227870000 +0000
++++ chrome/browser/extensions/api/messaging/native_process_launcher_posix.cc
+@@ -84,7 +84,7 @@ bool NativeProcessLauncher::LaunchNative
+
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ // Don't use no_new_privs mode, e.g. in case the host needs to use sudo.
+ options.allow_new_privs = true;
+ #endif
diff --git a/chromium/patches/patch-chrome_browser_extensions_api_passwords__private_passwords__private__delegate__impl.cc b/chromium/patches/patch-chrome_browser_extensions_api_passwords__private_passwords__private__delegate__impl.cc
new file mode 100644
index 0000000000..bba7b436d1
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_extensions_api_passwords__private_passwords__private__delegate__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl.cc.orig 2024-07-24 02:44:27.235870800 +0000
++++ chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl.cc
+@@ -611,7 +611,7 @@ void PasswordsPrivateDelegateImpl::OnFet
+ }
+
+ void PasswordsPrivateDelegateImpl::OsReauthTimeoutCall() {
+-#if !BUILDFLAG(IS_LINUX)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD)
+ PasswordsPrivateEventRouter* router =
+ PasswordsPrivateEventRouterFactory::GetForProfile(profile_);
+ if (router) {
diff --git a/chromium/patches/patch-chrome_browser_extensions_api_runtime_chrome__runtime__api__delegate.cc b/chromium/patches/patch-chrome_browser_extensions_api_runtime_chrome__runtime__api__delegate.cc
index f4f9246683..496dbb5f8f 100644
--- a/chromium/patches/patch-chrome_browser_extensions_api_runtime_chrome__runtime__api__delegate.cc
+++ b/chromium/patches/patch-chrome_browser_extensions_api_runtime_chrome__runtime__api__delegate.cc
@@ -1,13 +1,21 @@
$NetBSD$
---- chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc.orig 2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc.orig 2024-07-24 02:44:27.251872300 +0000
+++ chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc
-@@ -294,6 +294,8 @@ bool ChromeRuntimeAPIDelegate::GetPlatfo
- info->os = extensions::api::runtime::PLATFORM_OS_LINUX;
+@@ -284,7 +284,11 @@ bool ChromeRuntimeAPIDelegate::GetPlatfo
+ } else if (strcmp(os, "linux") == 0) {
+ info->os = extensions::api::runtime::PlatformOs::kLinux;
} else if (strcmp(os, "openbsd") == 0) {
- info->os = extensions::api::runtime::PLATFORM_OS_OPENBSD;
+- info->os = extensions::api::runtime::PlatformOs::kOpenbsd;
++ info->os = extensions::api::runtime::PlatformOs::kLinux;
++ } else if (strcmp(os, "freebsd") == 0) {
++ info->os = extensions::api::runtime::PlatformOs::kLinux;
+ } else if (strcmp(os, "netbsd") == 0) {
-+ info->os = extensions::api::runtime::PLATFORM_OS_NETBSD;
++ info->os = extensions::api::runtime::PlatformOs::kLinux;
} else {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION() << "Platform not supported: " << os;
return false;
diff --git a/chromium/patches/patch-chrome_browser_extensions_api_settings__private_prefs__util.cc b/chromium/patches/patch-chrome_browser_extensions_api_settings__private_prefs__util.cc
index e8fb1e268b..8244a50b40 100644
--- a/chromium/patches/patch-chrome_browser_extensions_api_settings__private_prefs__util.cc
+++ b/chromium/patches/patch-chrome_browser_extensions_api_settings__private_prefs__util.cc
@@ -1,22 +1,26 @@
$NetBSD$
---- chrome/browser/extensions/api/settings_private/prefs_util.cc.orig 2020-07-08 21:41:46.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/extensions/api/settings_private/prefs_util.cc.orig 2024-07-24 02:44:27.255872700 +0000
+++ chrome/browser/extensions/api/settings_private/prefs_util.cc
-@@ -163,7 +163,7 @@ const PrefsUtil::TypedPrefMap& PrefsUtil
- (*s_whitelist)[bookmarks::prefs::kShowBookmarkBar] =
- settings_api::PrefType::PREF_TYPE_BOOLEAN;
+@@ -202,7 +202,7 @@ const PrefsUtil::TypedPrefMap& PrefsUtil
+ (*s_allowlist)[tab_groups::prefs::kAutoPinNewTabGroups] =
+ settings_api::PrefType::kBoolean;
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- (*s_whitelist)[::prefs::kUseCustomChromeFrame] =
- settings_api::PrefType::PREF_TYPE_BOOLEAN;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ (*s_allowlist)[::prefs::kUseCustomChromeFrame] =
+ settings_api::PrefType::kBoolean;
#endif
-@@ -173,7 +173,7 @@ const PrefsUtil::TypedPrefMap& PrefsUtil
+@@ -213,7 +213,7 @@ const PrefsUtil::TypedPrefMap& PrefsUtil
// Appearance settings.
- (*s_whitelist)[::prefs::kCurrentThemeID] =
- settings_api::PrefType::PREF_TYPE_STRING;
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- (*s_whitelist)[::prefs::kUsesSystemTheme] =
- settings_api::PrefType::PREF_TYPE_BOOLEAN;
+ (*s_allowlist)[::prefs::kCurrentThemeID] = settings_api::PrefType::kString;
+ (*s_allowlist)[::prefs::kPolicyThemeColor] = settings_api::PrefType::kNumber;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ (*s_allowlist)[::prefs::kSystemTheme] = settings_api::PrefType::kNumber;
#endif
+ (*s_allowlist)[::prefs::kHomePage] = settings_api::PrefType::kUrl;
diff --git a/chromium/patches/patch-chrome_browser_extensions_api_tabs_tabs__api.cc b/chromium/patches/patch-chrome_browser_extensions_api_tabs_tabs__api.cc
new file mode 100644
index 0000000000..afa297f87b
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_extensions_api_tabs_tabs__api.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/extensions/api/tabs/tabs_api.cc.orig 2024-07-24 02:44:27.267874000 +0000
++++ chrome/browser/extensions/api/tabs/tabs_api.cc
+@@ -892,7 +892,7 @@ ExtensionFunction::ResponseAction Window
+ // minimized.
+ // TODO(crbug.com/40254339): Remove this workaround when linux is fixed.
+ // TODO(crbug.com/40254339): Find a fix for wayland as well.
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11)
+ if (new_window->initial_show_state() == ui::SHOW_STATE_MINIMIZED) {
+ new_window->window()->Minimize();
+ }
diff --git a/chromium/patches/patch-chrome_browser_extensions_api_webrtc__logging__private_webrtc__logging__private__api.cc b/chromium/patches/patch-chrome_browser_extensions_api_webrtc__logging__private_webrtc__logging__private__api.cc
index 3df6ff0d41..4e6b76ef3b 100644
--- a/chromium/patches/patch-chrome_browser_extensions_api_webrtc__logging__private_webrtc__logging__private__api.cc
+++ b/chromium/patches/patch-chrome_browser_extensions_api_webrtc__logging__private_webrtc__logging__private__api.cc
@@ -1,31 +1,35 @@
$NetBSD$
---- chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc.orig 2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc.orig 2024-07-24 02:44:27.283875500 +0000
+++ chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc
-@@ -30,7 +30,7 @@
+@@ -29,7 +29,7 @@
#include "extensions/browser/process_manager.h"
#include "extensions/common/error_utils.h"
--#if defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "extensions/common/permissions/permissions_data.h"
#endif
-@@ -39,7 +39,7 @@ namespace {
+@@ -38,7 +38,7 @@ namespace {
bool CanEnableAudioDebugRecordingsFromExtension(
const extensions::Extension* extension) {
bool enabled_by_permissions = false;
--#if defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
if (extension) {
enabled_by_permissions =
extension->permissions_data()->active_permissions().HasAPIPermission(
-@@ -570,7 +570,7 @@ void WebrtcLoggingPrivateStartEventLoggi
+@@ -576,7 +576,7 @@ void WebrtcLoggingPrivateStartEventLoggi
ExtensionFunction::ResponseAction
WebrtcLoggingPrivateGetLogsDirectoryFunction::Run() {
--#if defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// Unlike other WebrtcLoggingPrivate functions that take a RequestInfo object,
// this function shouldn't be called by a component extension on behalf of
// some web code. It returns a DirectoryEntry for use directly in the calling
diff --git a/chromium/patches/patch-chrome_browser_extensions_api_webstore__private_webstore__private__api.cc b/chromium/patches/patch-chrome_browser_extensions_api_webstore__private_webstore__private__api.cc
new file mode 100644
index 0000000000..ac3fb9964f
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_extensions_api_webstore__private_webstore__private__api.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/extensions/api/webstore_private/webstore_private_api.cc.orig 2024-07-24 02:44:27.283875500 +0000
++++ chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
+@@ -907,7 +907,7 @@ void WebstorePrivateBeginInstallWithMani
+ #if BUILDFLAG(IS_CHROMEOS)
+ RequestExtensionApproval(contents);
+ return;
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ // Shows a parental permission dialog directly bypassing the extension
+ // install dialog view. The parental permission dialog contains a superset
+ // of data from the extension install dialog: requested extension
diff --git a/chromium/patches/patch-chrome_browser_extensions_browser__context__keyed__service__factories.cc b/chromium/patches/patch-chrome_browser_extensions_browser__context__keyed__service__factories.cc
deleted file mode 100644
index 28d303ffb2..0000000000
--- a/chromium/patches/patch-chrome_browser_extensions_browser__context__keyed__service__factories.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- chrome/browser/extensions/browser_context_keyed_service_factories.cc.orig 2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/extensions/browser_context_keyed_service_factories.cc
-@@ -53,7 +53,7 @@
- #include "extensions/browser/api/networking_private/networking_private_delegate_factory.h"
- #include "ppapi/buildflags/buildflags.h"
-
--#if defined(OS_CHROMEOS) || defined(OS_LINUX) || defined(OS_WIN)
-+#if defined(OS_CHROMEOS) || defined(OS_LINUX) || defined(OS_WIN) || defined(OS_BSD)
- #include "chrome/browser/extensions/api/input_ime/input_ime_api.h"
- #endif
-
-@@ -103,7 +103,7 @@ void EnsureBrowserContextKeyedServiceFac
- extensions::IdentityAPI::GetFactoryInstance();
- extensions::InstallTrackerFactory::GetInstance();
- extensions::InstallVerifierFactory::GetInstance();
--#if defined(OS_CHROMEOS)
-+#if defined(OS_CHROMEOS) || defined(OS_BSD)
- extensions::InputImeAPI::GetFactoryInstance();
- #endif
- extensions::LanguageSettingsPrivateDelegateFactory::GetInstance();
diff --git a/chromium/patches/patch-chrome_browser_extensions_external__provider__impl.cc b/chromium/patches/patch-chrome_browser_extensions_external__provider__impl.cc
index 0bf64acd9d..f241112bfb 100644
--- a/chromium/patches/patch-chrome_browser_extensions_external__provider__impl.cc
+++ b/chromium/patches/patch-chrome_browser_extensions_external__provider__impl.cc
@@ -1,22 +1,26 @@
$NetBSD$
---- chrome/browser/extensions/external_provider_impl.cc.orig 2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/extensions/external_provider_impl.cc.orig 2024-07-24 02:44:27.339881000 +0000
+++ chrome/browser/extensions/external_provider_impl.cc
-@@ -760,7 +760,7 @@ void ExternalProviderImpl::CreateExterna
- }
- #endif
+@@ -834,7 +834,7 @@ void ExternalProviderImpl::CreateExterna
if (!profile->GetPrefs()->GetBoolean(pref_names::kBlockExternalExtensions)) {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
provider_list->push_back(std::make_unique<ExternalProviderImpl>(
service,
base::MakeRefCounted<ExternalPrefLoader>(
-@@ -787,7 +787,7 @@ void ExternalProviderImpl::CreateExterna
- bundled_extension_creation_flags));
+@@ -862,7 +862,7 @@ void ExternalProviderImpl::CreateExterna
+ bundled_extension_creation_flags));
- // Define a per-user source of external extensions.
--#if defined(OS_MACOSX) || (defined(OS_LINUX) && BUILDFLAG(CHROMIUM_BRANDING))
-+#if defined(OS_MACOSX) || ((defined(OS_LINUX) || defined(OS_BSD)) && BUILDFLAG(CHROMIUM_BRANDING))
- provider_list->push_back(std::make_unique<ExternalProviderImpl>(
- service,
- base::MakeRefCounted<ExternalPrefLoader>(
+ // Define a per-user source of external extensions.
+-#if BUILDFLAG(IS_MAC) || ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \
++#if BUILDFLAG(IS_MAC) || ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && \
+ BUILDFLAG(CHROMIUM_BRANDING))
+ provider_list->push_back(std::make_unique<ExternalProviderImpl>(
+ service,
diff --git a/chromium/patches/patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.cc b/chromium/patches/patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.cc
new file mode 100644
index 0000000000..023c2934bb
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc.orig 2024-07-24 02:44:27.415888300 +0000
++++ chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
+@@ -318,7 +318,7 @@ const struct {
+ FILE_PATH_LITERAL("Library/Mobile Documents/com~apple~CloudDocs"),
+ kDontBlockChildren},
+ #endif
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // On Linux also block access to devices via /dev.
+ {kNoBasePathKey, FILE_PATH_LITERAL("/dev"), kBlockAllChildren},
+ // And security sensitive data in /proc and /sys.
diff --git a/chromium/patches/patch-chrome_browser_first__run_first__run__dialog.h b/chromium/patches/patch-chrome_browser_first__run_first__run__dialog.h
index 0c7f1459ad..c198e592b4 100644
--- a/chromium/patches/patch-chrome_browser_first__run_first__run__dialog.h
+++ b/chromium/patches/patch-chrome_browser_first__run_first__run__dialog.h
@@ -1,13 +1,17 @@
$NetBSD$
---- chrome/browser/first_run/first_run_dialog.h.orig 2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/first_run/first_run_dialog.h.orig 2024-07-24 02:44:27.423889000 +0000
+++ chrome/browser/first_run/first_run_dialog.h
-@@ -9,7 +9,7 @@
- #include "build/build_config.h"
-
+@@ -12,7 +12,7 @@
// Hide this function on platforms where the dialog does not exist.
--#if defined(OS_MACOSX) || (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+#if defined(OS_MACOSX) || ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_MAC) || (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++#if BUILDFLAG(IS_MAC) || (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_BSD)
- class Profile;
+ namespace first_run {
diff --git a/chromium/patches/patch-chrome_browser_first__run_first__run__internal.h b/chromium/patches/patch-chrome_browser_first__run_first__run__internal.h
index 4d5c3f5ada..aa6ddb0e18 100644
--- a/chromium/patches/patch-chrome_browser_first__run_first__run__internal.h
+++ b/chromium/patches/patch-chrome_browser_first__run_first__run__internal.h
@@ -1,13 +1,17 @@
$NetBSD$
---- chrome/browser/first_run/first_run_internal.h.orig 2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/first_run/first_run_internal.h.orig 2024-07-24 02:44:27.423889000 +0000
+++ chrome/browser/first_run/first_run_internal.h
-@@ -64,7 +64,7 @@ FirstRunState DetermineFirstRunState(boo
+@@ -54,7 +54,7 @@ FirstRunState DetermineFirstRunState(boo
bool force_first_run,
bool no_first_run);
--#if defined(OS_MACOSX) || (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+#if defined(OS_MACOSX) || ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
// For testing, forces the first run dialog to either be shown or not. If not
// called, the decision to show the dialog or not will be made by Chrome based
// on a number of factors (such as install type, whether it's a Chrome-branded
diff --git a/chromium/patches/patch-chrome_browser_first__run_first__run__internal__posix.cc b/chromium/patches/patch-chrome_browser_first__run_first__run__internal__posix.cc
deleted file mode 100644
index 3e0856dee2..0000000000
--- a/chromium/patches/patch-chrome_browser_first__run_first__run__internal__posix.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- chrome/browser/first_run/first_run_internal_posix.cc.orig 2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/first_run/first_run_internal_posix.cc
-@@ -45,7 +45,7 @@ enum class ForcedShowDialogState {
- ForcedShowDialogState g_forced_show_dialog_state =
- ForcedShowDialogState::kNotForced;
-
--#if !defined(OS_CHROMEOS)
-+#if !defined(OS_CHROMEOS) && !defined(OS_BSD)
- // Returns whether the first run dialog should be shown. This is only true for
- // certain builds, and only if the user has not already set preferences. In a
- // real, official-build first run, initializes the default metrics reporting if
-@@ -96,7 +96,7 @@ void ForceFirstRunDialogShownForTesting(
- }
-
- void DoPostImportPlatformSpecificTasks(Profile* profile) {
--#if !defined(OS_CHROMEOS)
-+#if !defined(OS_CHROMEOS) && !defined(OS_BSD)
- if (!ShouldShowFirstRunDialog())
- return;
-
diff --git a/chromium/patches/patch-chrome_browser_flag__descriptions.cc b/chromium/patches/patch-chrome_browser_flag__descriptions.cc
index 987b4f3643..d3b74bb2e6 100644
--- a/chromium/patches/patch-chrome_browser_flag__descriptions.cc
+++ b/chromium/patches/patch-chrome_browser_flag__descriptions.cc
@@ -1,31 +1,115 @@
$NetBSD$
---- chrome/browser/flag_descriptions.cc.orig 2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/flag_descriptions.cc.orig 2024-07-24 02:44:27.427889300 +0000
+++ chrome/browser/flag_descriptions.cc
-@@ -4080,7 +4080,7 @@ const char kEnableNewBadgeOnMenuItemsDes
+@@ -2963,7 +2963,7 @@ const char kCbdTimeframeRequiredDescript
+ "value to the list.";
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_ASH)
++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ const char kPolicyIndicationForManagedDefaultSearchName[] =
+ "Enable policy indication for managed Default Search provider";
+ const char kPolicyIndicationForManagedDefaultSearchDescription[] =
+@@ -3281,7 +3281,7 @@ const char kShowAutofillTypePredictionsD
+ "text.";
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ const char kShowFeaturedEnterpriseSiteSearchName[] =
+ "Show featured Enterprise site search engines in Omnibox";
+ const char kShowFeaturedEnterpriseSiteSearchDescription[] =
+@@ -3318,7 +3318,7 @@ const char kSiteInstanceGroupsForDataUrl
+ "but in the same SiteInstanceGroup, and thus the same process.";
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ const char kSiteSearchSettingsPolicyName[] = "Enable SiteSearchSettings policy";
+ const char kSiteSearchSettingsPolicyDescription[] =
+ "Allow site search engines to be defined by the SiteSearchSettings policy.";
+@@ -7719,7 +7719,7 @@ const char kLacrosMergeIcuDataFileDescri
+ "Enables sharing common areas of icudtl.dat between Ash and Lacros.";
+ #endif // #if BUILDFLAG(IS_CHROMEOS_LACROS)
+
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const char kGetAllScreensMediaName[] = "GetAllScreensMedia API";
+ const char kGetAllScreensMediaDescription[] =
+ "When enabled, the getAllScreensMedia API for capturing multiple screens "
+@@ -7970,7 +7970,7 @@ const char kV4L2FlatStatefulVideoDecoder
+
+ // Linux -----------------------------------------------------------------------
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const char kOzonePlatformHintChoiceDefault[] = "Default";
+ const char kOzonePlatformHintChoiceAuto[] = "Auto";
+ const char kOzonePlatformHintChoiceX11[] = "X11";
+@@ -7992,6 +7992,17 @@ const char kPulseaudioLoopbackForScreenS
+ const char kPulseaudioLoopbackForScreenShareDescription[] =
+ "Enable system audio sharing when screen sharing on Linux with pulseaudio.";
- // Random platform combinations -----------------------------------------------
++#if BUILDFLAG(IS_BSD)
++const char kAudioBackendName[] =
++ "Audio Backend";
++const char kAudioBackendDescription[] =
++#if BUILDFLAG(IS_OPENBSD)
++ "Select the desired audio backend to use. The default is sndio.";
++#elif BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
++ "Select the desired audio backend to use. The default will automatically "
++ "enumerate through the supported backends.";
++#endif
++#endif
+ #endif // BUILDFLAG(IS_LINUX)
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+ // All views-based platforms --------------------------------------------------
+@@ -8018,14 +8029,14 @@ const char kZeroCopyVideoCaptureDescript
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
- const char kWebGL2ComputeContextName[] = "WebGL 2.0 Compute";
- const char kWebGL2ComputeContextDescription[] =
-@@ -4123,7 +4123,7 @@ const char kRemoteCopyProgressNotificati
- #endif // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) ||
- // defined(OS_CHROMEOS)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ const char kFollowingFeedSidepanelName[] = "Following feed in the sidepanel";
+ const char kFollowingFeedSidepanelDescription[] =
+ "Enables the following feed in the sidepanel.";
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
+ // BUILDFLAG(IS_CHROMEOS)
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ const char kEnableNetworkServiceSandboxName[] =
+ "Enable the network service sandbox.";
+ const char kEnableNetworkServiceSandboxDescription[] =
+@@ -8057,7 +8068,7 @@ const char kWebBluetoothConfirmPairingSu
+ "Bluetooth";
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
- const char kDirectManipulationStylusName[] = "Direct Manipulation Stylus";
- const char kDirectManipulationStylusDescription[] =
-@@ -4140,7 +4140,7 @@ const char kWebContentsOcclusionDescript
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ const char kSkipUndecryptablePasswordsName[] =
+ "Skip undecryptable passwords to use the available decryptable "
+ "passwords.";
+@@ -8207,7 +8218,7 @@ const char kElementCaptureDescription[]
- #endif // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_CHROMEOS)
+ #if BUILDFLAG(IS_WIN) || \
+ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || \
+- BUILDFLAG(IS_MAC)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ const char kUIDebugToolsName[] = "Debugging tools for UI";
+ const char kUIDebugToolsDescription[] =
+ "Enables additional keyboard shortcuts to help debugging.";
+@@ -8274,7 +8285,7 @@ const char kComposePoliteNudgeDescriptio
+ "available to interact with.";
+ #endif // BUILDFLAG(ENABLE_COMPOSE)
--#if defined(OS_CHROMEOS) || defined(OS_LINUX)
-+#if defined(OS_CHROMEOS) || defined(OS_LINUX) || defined(OS_BSD)
- #if BUILDFLAG(USE_TCMALLOC)
- const char kDynamicTcmallocName[] = "Dynamic Tcmalloc Tuning";
- const char kDynamicTcmallocDescription[] =
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ const char kThirdPartyProfileManagementName[] =
+ "Third party profile management";
+ const char kThirdPartyProfileManagementDescription[] =
diff --git a/chromium/patches/patch-chrome_browser_flag__descriptions.h b/chromium/patches/patch-chrome_browser_flag__descriptions.h
index cdac0268bb..431cfeea24 100644
--- a/chromium/patches/patch-chrome_browser_flag__descriptions.h
+++ b/chromium/patches/patch-chrome_browser_flag__descriptions.h
@@ -1,40 +1,106 @@
$NetBSD$
---- chrome/browser/flag_descriptions.h.orig 2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/flag_descriptions.h.orig 2024-07-24 02:44:27.427889300 +0000
+++ chrome/browser/flag_descriptions.h
-@@ -19,7 +19,7 @@
- #include "ppapi/buildflags/buildflags.h"
- #include "printing/buildflags/buildflags.h"
+@@ -1722,7 +1722,7 @@ extern const char kCbdTimeframeRequiredN
+ extern const char kCbdTimeframeRequiredDescription[];
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_ASH)
++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ extern const char kPolicyIndicationForManagedDefaultSearchName[];
+ extern const char kPolicyIndicationForManagedDefaultSearchDescription[];
+ #endif
+@@ -1906,7 +1906,7 @@ extern const char kShowAutofillTypePredi
+ extern const char kShowAutofillTypePredictionsDescription[];
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ extern const char kShowFeaturedEnterpriseSiteSearchName[];
+ extern const char kShowFeaturedEnterpriseSiteSearchDescription[];
+
+@@ -1928,7 +1928,7 @@ extern const char kSiteInstanceGroupsFor
+ extern const char kSiteInstanceGroupsForDataUrlsDescription[];
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ extern const char kSiteSearchSettingsPolicyName[];
+ extern const char kSiteSearchSettingsPolicyDescription[];
+ #endif
+@@ -4484,7 +4484,7 @@ extern const char kLacrosMergeIcuDataFil
+ extern const char kLacrosMergeIcuDataFileDescription[];
+ #endif // #if BUILDFLAG(IS_CHROMEOS_LACROS)
+
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ extern const char kGetAllScreensMediaName[];
+ extern const char kGetAllScreensMediaDescription[];
+ #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+@@ -4630,7 +4630,7 @@ extern const char kV4L2FlatStatefulVideo
+
+ // Linux ---------------------------------------------------------------------
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ extern const char kOzonePlatformHintChoiceDefault[];
+ extern const char kOzonePlatformHintChoiceAuto[];
+ extern const char kOzonePlatformHintChoiceX11[];
+@@ -4643,6 +4643,9 @@ extern const char kPulseaudioLoopbackFor
+ extern const char kPulseaudioLoopbackForCastDescription[];
+ extern const char kPulseaudioLoopbackForScreenShareName[];
+ extern const char kPulseaudioLoopbackForScreenShareDescription[];
++
++extern const char kAudioBackendName[];
++extern const char kAudioBackendDescription[];
+ #endif // BUILDFLAG(IS_LINUX)
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "base/allocator/buildflags.h"
- #endif // defined(OS_LINUX)
+ // All views-based platforms --------------------------------------------------
+@@ -4672,7 +4675,7 @@ extern const char kWebBluetoothConfirmPa
+ extern const char kWebBluetoothConfirmPairingSupportDescription[];
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
-@@ -2390,7 +2390,7 @@ extern const char kEnableNewBadgeOnMenuI
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ extern const char kSkipUndecryptablePasswordsName[];
+ extern const char kSkipUndecryptablePasswordsDescription[];
- // Random platform combinations -----------------------------------------------
+@@ -4691,13 +4694,13 @@ extern const char kScreenlockReauthPromo
+ #endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ extern const char kFollowingFeedSidepanelName[];
+ extern const char kFollowingFeedSidepanelDescription[];
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
+ // BUILDFLAG(IS_CHROMEOS)
- extern const char kWebGL2ComputeContextName[];
- extern const char kWebGL2ComputeContextDescription[];
-@@ -2398,7 +2398,7 @@ extern const char kWebGL2ComputeContextD
- #endif // defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ extern const char kEnableNetworkServiceSandboxName[];
+ extern const char kEnableNetworkServiceSandboxDescription[];
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
-- defined(OS_CHROMEOS)
-+ defined(OS_CHROMEOS) || defined(OS_BSD)
+@@ -4793,7 +4796,7 @@ extern const char kElementCaptureDescrip
- extern const char kEnableMediaFeedsName[];
- extern const char kEnableMediaFeedsDescription[];
-@@ -2418,7 +2418,7 @@ extern const char kRemoteCopyProgressNot
- #endif // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) ||
- // defined(OS_CHROMEOS)
+ #if BUILDFLAG(IS_WIN) || \
+ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || \
+- BUILDFLAG(IS_MAC)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ extern const char kUIDebugToolsName[];
+ extern const char kUIDebugToolsDescription[];
+ #endif
+@@ -4841,7 +4844,7 @@ extern const char kComposePoliteNudgeNam
+ extern const char kComposePoliteNudgeDescription[];
+ #endif // BUILDFLAG(ENABLE_COMPOSE)
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ extern const char kThirdPartyProfileManagementName[];
+ extern const char kThirdPartyProfileManagementDescription[];
- extern const char kDirectManipulationStylusName[];
- extern const char kDirectManipulationStylusDescription[];
diff --git a/chromium/patches/patch-chrome_browser_gcm_gcm__profile__service__factory.cc b/chromium/patches/patch-chrome_browser_gcm_gcm__profile__service__factory.cc
new file mode 100644
index 0000000000..c6783761e3
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_gcm_gcm__profile__service__factory.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/gcm/gcm_profile_service_factory.cc.orig 2024-07-24 02:44:27.435890200 +0000
++++ chrome/browser/gcm/gcm_profile_service_factory.cc
+@@ -89,7 +89,7 @@ GCMProfileServiceFactory::ScopedTestingF
+ // static
+ GCMProfileService* GCMProfileServiceFactory::GetForProfile(
+ content::BrowserContext* profile) {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // On desktop, incognito profiles are checked with IsIncognitoProfile().
+ // It's possible for non-incognito profiles to also be off-the-record.
+ bool is_profile_supported =
+@@ -129,7 +129,7 @@ GCMProfileServiceFactory::~GCMProfileSer
+ KeyedService* GCMProfileServiceFactory::BuildServiceInstanceFor(
+ content::BrowserContext* context) const {
+ Profile* profile = Profile::FromBrowserContext(context);
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ DCHECK(!profile->IsIncognitoProfile());
+ #else
+ DCHECK(!profile->IsOffTheRecord());
diff --git a/chromium/patches/patch-chrome_browser_gcm_instance__id_instance__id__profile__service__factory.cc b/chromium/patches/patch-chrome_browser_gcm_instance__id_instance__id__profile__service__factory.cc
new file mode 100644
index 0000000000..5bd1c85136
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_gcm_instance__id_instance__id__profile__service__factory.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/gcm/instance_id/instance_id_profile_service_factory.cc.orig 2024-07-24 02:44:27.435890200 +0000
++++ chrome/browser/gcm/instance_id/instance_id_profile_service_factory.cc
+@@ -16,7 +16,7 @@ namespace instance_id {
+ // static
+ InstanceIDProfileService* InstanceIDProfileServiceFactory::GetForProfile(
+ content::BrowserContext* profile) {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // On desktop, the guest profile is actually the primary OTR profile of
+ // the "regular" guest profile. The regular guest profile is never used
+ // directly by users. Also, user are not able to create child OTR profiles
+@@ -61,7 +61,7 @@ InstanceIDProfileServiceFactory::~Instan
+ KeyedService* InstanceIDProfileServiceFactory::BuildServiceInstanceFor(
+ content::BrowserContext* context) const {
+ Profile* profile = Profile::FromBrowserContext(context);
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // On desktop, incognito profiles are checked with IsIncognitoProfile().
+ // It's possible for non-incognito profiles to also be off-the-record.
+ bool is_incognito = profile->IsIncognitoProfile();
diff --git a/chromium/patches/patch-chrome_browser_headless_headless__mode__util.cc b/chromium/patches/patch-chrome_browser_headless_headless__mode__util.cc
new file mode 100644
index 0000000000..a7cac65c98
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_headless_headless__mode__util.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/headless/headless_mode_util.cc.orig 2024-07-24 02:44:27.443891000 +0000
++++ chrome/browser/headless/headless_mode_util.cc
+@@ -19,7 +19,7 @@
+ #include "chrome/common/chrome_switches.h"
+ #include "content/public/common/content_switches.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/gl/gl_switches.h" // nogncheck
+ #include "ui/ozone/public/ozone_switches.h" // nogncheck
+ #endif // BUILDFLAG(IS_LINUX)
+@@ -87,7 +87,7 @@ class HeadlessModeHandleImpl : public He
+ command_line->AppendSwitchPath(switches::kUserDataDir, GetUserDataDir());
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Headless mode on Linux relies on ozone/headless platform.
+ command_line->AppendSwitchASCII(::switches::kOzonePlatform,
+ switches::kHeadless);
diff --git a/chromium/patches/patch-chrome_browser_intranet__redirect__detector.h b/chromium/patches/patch-chrome_browser_intranet__redirect__detector.h
new file mode 100644
index 0000000000..ced61809d4
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_intranet__redirect__detector.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/intranet_redirect_detector.h.orig 2024-07-24 02:44:27.479894400 +0000
++++ chrome/browser/intranet_redirect_detector.h
+@@ -25,7 +25,7 @@ class SimpleURLLoader;
+ class PrefRegistrySimple;
+
+ #if !(BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS))
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD))
+ #error "IntranetRedirectDetector should only be built on Desktop platforms."
+ #endif
+
diff --git a/chromium/patches/patch-chrome_browser_media__galleries_fileapi_mtp__device__map__service.cc b/chromium/patches/patch-chrome_browser_media__galleries_fileapi_mtp__device__map__service.cc
index 518668cb4e..18aa151ca1 100644
--- a/chromium/patches/patch-chrome_browser_media__galleries_fileapi_mtp__device__map__service.cc
+++ b/chromium/patches/patch-chrome_browser_media__galleries_fileapi_mtp__device__map__service.cc
@@ -1,16 +1,20 @@
$NetBSD$
---- chrome/browser/media_galleries/fileapi/mtp_device_map_service.cc.orig 2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/media_galleries/fileapi/mtp_device_map_service.cc.orig 2024-07-24 02:44:27.607906800 +0000
+++ chrome/browser/media_galleries/fileapi/mtp_device_map_service.cc
@@ -39,10 +39,12 @@ void MTPDeviceMapService::RegisterMTPFil
// Note that this initializes the delegate asynchronously, but since
// the delegate will only be used from the IO thread, it is guaranteed
// to be created before use of it expects it to be there.
-+#if !defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
CreateMTPDeviceAsyncDelegate(
device_location, read_only,
- base::Bind(&MTPDeviceMapService::AddAsyncDelegate,
- base::Unretained(this), device_location, read_only));
+ base::BindOnce(&MTPDeviceMapService::AddAsyncDelegate,
+ base::Unretained(this), device_location, read_only));
+#endif
mtp_device_usage_map_[key] = 0;
}
diff --git a/chromium/patches/patch-chrome_browser_media__galleries_media__file__system__registry.cc b/chromium/patches/patch-chrome_browser_media__galleries_media__file__system__registry.cc
index bb926284ef..49d4bc8852 100644
--- a/chromium/patches/patch-chrome_browser_media__galleries_media__file__system__registry.cc
+++ b/chromium/patches/patch-chrome_browser_media__galleries_media__file__system__registry.cc
@@ -1,14 +1,20 @@
$NetBSD$
---- chrome/browser/media_galleries/media_file_system_registry.cc.orig 2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/media_galleries/media_file_system_registry.cc.orig 2024-07-24 02:44:27.611907200 +0000
+++ chrome/browser/media_galleries/media_file_system_registry.cc
-@@ -735,7 +735,10 @@ class MediaFileSystemRegistry::MediaFile
+@@ -584,7 +584,12 @@ class MediaFileSystemRegistry::MediaFile
// Constructor in 'private' section because depends on private class definition.
MediaFileSystemRegistry::MediaFileSystemRegistry()
: file_system_context_(new MediaFileSystemContextImpl) {
- StorageMonitor::GetInstance()->AddObserver(this);
-+ // This conditional is needed for shutdown. Destructors
-+ // try to get the media file system registry.
++ /*
++ * This conditional is needed for shutdown. Destructors
++ * try to get the media file system registry.
++ */
+ if (StorageMonitor::GetInstance())
+ StorageMonitor::GetInstance()->AddObserver(this);
}
diff --git a/chromium/patches/patch-chrome_browser_media_audio__service__util.cc b/chromium/patches/patch-chrome_browser_media_audio__service__util.cc
new file mode 100644
index 0000000000..1831aec416
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_media_audio__service__util.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/media/audio_service_util.cc.orig 2024-07-24 02:44:27.543900700 +0000
++++ chrome/browser/media/audio_service_util.cc
+@@ -21,7 +21,7 @@
+
+ namespace {
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \
+ (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS))
+ const base::Value* GetPolicy(const char* policy_name) {
+ const policy::PolicyMap& policies =
+@@ -43,7 +43,7 @@ bool GetPolicyOrFeature(const char* poli
+ bool IsAudioServiceSandboxEnabled() {
+ // TODO(crbug.com/40118868): Remove !IS_CHROMEOS_LACROS once lacros starts being
+ // built with OS_CHROMEOS instead of OS_LINUX.
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \
+ (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS))
+ return GetPolicyOrFeature(policy::key::kAudioSandboxEnabled,
+ features::kAudioServiceSandbox);
diff --git a/chromium/patches/patch-chrome_browser_media_router_discovery_BUILD.gn b/chromium/patches/patch-chrome_browser_media_router_discovery_BUILD.gn
new file mode 100644
index 0000000000..8c64b16fa7
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_media_router_discovery_BUILD.gn
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/media/router/discovery/BUILD.gn.orig 2024-07-24 02:44:27.555901800 +0000
++++ chrome/browser/media/router/discovery/BUILD.gn
+@@ -82,7 +82,7 @@ static_library("discovery") {
+ ]
+ configs += [ "//build/config/compiler:wexit_time_destructors" ]
+
+- if (is_linux || is_chromeos) {
++ if ((is_linux || is_chromeos) && !is_bsd) {
+ sources += [ "discovery_network_list_wifi_linux.cc" ]
+ }
+
diff --git a/chromium/patches/patch-chrome_browser_media_router_discovery_discovery__network__list__posix.cc b/chromium/patches/patch-chrome_browser_media_router_discovery_discovery__network__list__posix.cc
index ee30310eaf..240a6f5dd8 100644
--- a/chromium/patches/patch-chrome_browser_media_router_discovery_discovery__network__list__posix.cc
+++ b/chromium/patches/patch-chrome_browser_media_router_discovery_discovery__network__list__posix.cc
@@ -1,12 +1,23 @@
$NetBSD$
---- chrome/browser/media/router/discovery/discovery_network_list_posix.cc.orig 2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/media/router/discovery/discovery_network_list_posix.cc.orig 2024-07-24 02:44:27.563902600 +0000
+++ chrome/browser/media/router/discovery/discovery_network_list_posix.cc
-@@ -10,6 +10,7 @@
- #include <netinet/in.h>
- #include <sys/socket.h>
- #include <sys/types.h>
+@@ -5,11 +5,12 @@
+ #include "chrome/browser/media/router/discovery/discovery_network_list.h"
+
+ #include <ifaddrs.h>
++#include <sys/socket.h>
++#include <sys/types.h>
+#include <sys/time.h>
+ #include <net/if.h>
+ #include <net/if_arp.h>
+ #include <netinet/in.h>
+-#include <sys/socket.h>
+-#include <sys/types.h>
#include <algorithm>
@@ -14,8 +25,8 @@ $NetBSD$
#include "chrome/browser/media/router/discovery/discovery_network_list_wifi.h"
#include "net/base/net_errors.h"
--#if !defined(OS_MACOSX)
-+#if !defined(OS_MACOSX) && !defined(OS_BSD)
+-#if !BUILDFLAG(IS_MAC)
++#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD)
#include <netpacket/packet.h>
#else
#include <net/if_dl.h>
@@ -23,8 +34,21 @@ $NetBSD$
namespace media_router {
namespace {
--#if !defined(OS_MACOSX)
-+#if !defined(OS_MACOSX) && !defined(OS_BSD)
+-#if !BUILDFLAG(IS_MAC)
++#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD)
using sll = struct sockaddr_ll;
#define SOCKET_ARP_TYPE(s) ((s)->sll_hatype)
#define SOCKET_ADDRESS_LEN(s) ((s)->sll_halen)
+@@ -40,6 +41,12 @@ using sll = struct sockaddr_dl;
+ #define SOCKET_ADDRESS(s) (LLADDR(s))
+ #endif
+
++#if BUILDFLAG(IS_BSD)
++bool MaybeGetWifiSSID(const std::string& if_name, std::string* ssid_out) {
++ return false;
++}
++#endif
++
+ void GetDiscoveryNetworkInfoListImpl(
+ const struct ifaddrs* if_list,
+ std::vector<DiscoveryNetworkInfo>* network_info_list) {
diff --git a/chromium/patches/patch-chrome_browser_media_router_discovery_discovery__network__list__wifi__linux.cc b/chromium/patches/patch-chrome_browser_media_router_discovery_discovery__network__list__wifi__linux.cc
index c653b811a9..ecab4f9f6c 100644
--- a/chromium/patches/patch-chrome_browser_media_router_discovery_discovery__network__list__wifi__linux.cc
+++ b/chromium/patches/patch-chrome_browser_media_router_discovery_discovery__network__list__wifi__linux.cc
@@ -1,26 +1,32 @@
$NetBSD$
---- chrome/browser/media/router/discovery/discovery_network_list_wifi_linux.cc.orig 2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/media/router/discovery/discovery_network_list_wifi_linux.cc.orig 2024-07-24 02:44:27.563902600 +0000
+++ chrome/browser/media/router/discovery/discovery_network_list_wifi_linux.cc
-@@ -9,7 +9,9 @@
+@@ -9,7 +9,11 @@
#include <sys/socket.h>
#include <sys/types.h>
-+#if defined(OS_LINUX)
++#include "build/build_config.h"
++
++#if !BUILDFLAG(IS_BSD)
#include <linux/wireless.h>
+#endif
#include "base/check.h"
#include "base/files/scoped_file.h"
-@@ -20,6 +22,7 @@ namespace media_router {
+@@ -20,6 +24,7 @@ namespace media_router {
bool MaybeGetWifiSSID(const std::string& if_name, std::string* ssid_out) {
DCHECK(ssid_out);
-+#if !defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
base::ScopedFD ioctl_socket(socket(AF_INET, SOCK_DGRAM, 0));
if (!ioctl_socket.is_valid()) {
// AF_INET is for IPv4, so it may fail for IPv6-only hosts even when there
-@@ -41,6 +44,7 @@ bool MaybeGetWifiSSID(const std::string&
+@@ -41,6 +46,7 @@ bool MaybeGetWifiSSID(const std::string&
ssid_out->assign(ssid);
return true;
}
diff --git a/chromium/patches/patch-chrome_browser_media_router_providers_wired__display_wired__display__media__route__provider.cc b/chromium/patches/patch-chrome_browser_media_router_providers_wired__display_wired__display__media__route__provider.cc
deleted file mode 100644
index e6422794fb..0000000000
--- a/chromium/patches/patch-chrome_browser_media_router_providers_wired__display_wired__display__media__route__provider.cc
+++ /dev/null
@@ -1,25 +0,0 @@
-$NetBSD$
-
---- chrome/browser/media/router/providers/wired_display/wired_display_media_route_provider.cc.orig 2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/media/router/providers/wired_display/wired_display_media_route_provider.cc
-@@ -112,6 +112,12 @@ void WiredDisplayMediaRouteProvider::Cre
- bool off_the_record,
- CreateRouteCallback callback) {
- DCHECK(!base::Contains(presentations_, presentation_id));
-+#if defined(OS_BSD)
-+ std::move(callback).Run(base::nullopt, nullptr,
-+ std::string("Not implemented"),
-+ RouteRequestResult::UNKNOWN_ERROR);
-+ return;
-+#else
- base::Optional<Display> display = GetDisplayBySinkId(sink_id);
- if (!display) {
- std::move(callback).Run(base::nullopt, nullptr,
-@@ -138,6 +144,7 @@ void WiredDisplayMediaRouteProvider::Cre
- std::move(callback).Run(route, nullptr, base::nullopt,
- RouteRequestResult::OK);
- NotifyRouteObservers();
-+#endif
- }
-
- void WiredDisplayMediaRouteProvider::JoinRoute(
diff --git a/chromium/patches/patch-chrome_browser_media_webrtc_chrome__screen__enumerator.cc b/chromium/patches/patch-chrome_browser_media_webrtc_chrome__screen__enumerator.cc
new file mode 100644
index 0000000000..19a460278a
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_media_webrtc_chrome__screen__enumerator.cc
@@ -0,0 +1,53 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/media/webrtc/chrome_screen_enumerator.cc.orig 2024-07-24 02:44:27.583904500 +0000
++++ chrome/browser/media/webrtc/chrome_screen_enumerator.cc
+@@ -21,7 +21,7 @@
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
+ #include "ash/shell.h"
+ #include "ui/aura/window.h"
+-#elif BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "base/functional/callback.h"
+ #include "content/public/browser/desktop_capture.h"
+ #endif
+@@ -32,7 +32,7 @@ base::LazyInstance<std::vector<raw_ptr<a
+ DestructorAtExit root_windows_for_testing_ = LAZY_INSTANCE_INITIALIZER;
+ } // namespace
+
+-#elif BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ namespace {
+ base::LazyInstance<std::unique_ptr<webrtc::DesktopCapturer>>::DestructorAtExit
+ g_desktop_capturer_for_testing = LAZY_INSTANCE_INITIALIZER;
+@@ -79,7 +79,7 @@ blink::mojom::StreamDevicesSetPtr Enumer
+ return stream_devices_set;
+ }
+
+-#elif BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ blink::mojom::StreamDevicesSetPtr EnumerateScreens(
+ blink::mojom::MediaStreamType stream_type) {
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+@@ -130,7 +130,7 @@ void ChromeScreenEnumerator::SetRootWind
+ root_windows_for_testing_.Get() = std::move(root_windows);
+ }
+
+-#elif BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void ChromeScreenEnumerator::SetDesktopCapturerForTesting(
+ std::unique_ptr<webrtc::DesktopCapturer> capturer) {
+ g_desktop_capturer_for_testing.Get() = std::move(capturer);
+@@ -143,7 +143,7 @@ void ChromeScreenEnumerator::EnumerateSc
+ ScreensCallback screens_callback) const {
+ DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
+
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ content::GetUIThreadTaskRunner({})->PostTaskAndReplyWithResult(
+ FROM_HERE, base::BindOnce(::EnumerateScreens, stream_type),
+ base::BindOnce(
diff --git a/chromium/patches/patch-chrome_browser_media_webrtc_chrome__screen__enumerator.h b/chromium/patches/patch-chrome_browser_media_webrtc_chrome__screen__enumerator.h
new file mode 100644
index 0000000000..a0d502acf0
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_media_webrtc_chrome__screen__enumerator.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/media/webrtc/chrome_screen_enumerator.h.orig 2024-07-24 02:44:27.583904500 +0000
++++ chrome/browser/media/webrtc/chrome_screen_enumerator.h
+@@ -20,7 +20,7 @@ namespace aura {
+ class Window;
+ }
+
+-#elif BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ namespace webrtc {
+ class DesktopCapturer;
+ }
+@@ -42,7 +42,7 @@ class ChromeScreenEnumerator : public me
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
+ static void SetRootWindowsForTesting(
+ std::vector<raw_ptr<aura::Window, VectorExperimental>> root_windows);
+-#elif BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ static void SetDesktopCapturerForTesting(
+ std::unique_ptr<webrtc::DesktopCapturer> capturer);
+ #endif
diff --git a/chromium/patches/patch-chrome_browser_media_webrtc_desktop__media__picker__controller.cc b/chromium/patches/patch-chrome_browser_media_webrtc_desktop__media__picker__controller.cc
new file mode 100644
index 0000000000..ba0c76b666
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_media_webrtc_desktop__media__picker__controller.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/media/webrtc/desktop_media_picker_controller.cc.orig 2024-07-24 02:44:27.587905000 +0000
++++ chrome/browser/media/webrtc/desktop_media_picker_controller.cc
+@@ -89,7 +89,7 @@ bool DesktopMediaPickerController::IsSys
+ #if BUILDFLAG(IS_MAC)
+ return request_source == Params::RequestSource::kCast ||
+ base::FeatureList::IsEnabled(media::kMacLoopbackAudioForScreenShare);
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (request_source == Params::RequestSource::kCast) {
+ return base::FeatureList::IsEnabled(media::kPulseaudioLoopbackForCast);
+ } else {
diff --git a/chromium/patches/patch-chrome_browser_media_webrtc_webrtc__event__log__uploader.cc b/chromium/patches/patch-chrome_browser_media_webrtc_webrtc__event__log__uploader.cc
deleted file mode 100644
index 0e3d28c1b1..0000000000
--- a/chromium/patches/patch-chrome_browser_media_webrtc_webrtc__event__log__uploader.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/media/webrtc/webrtc_event_log_uploader.cc.orig 2020-07-08 21:41:47.000000000 +0000
-+++ chrome/browser/media/webrtc/webrtc_event_log_uploader.cc
-@@ -36,7 +36,7 @@ constexpr size_t kExpectedMimeOverheadBy
- const char kProduct[] = "Chrome";
- #elif defined(OS_MACOSX)
- const char kProduct[] = "Chrome_Mac";
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- const char kProduct[] = "Chrome_Linux";
- #elif defined(OS_ANDROID)
- const char kProduct[] = "Chrome_Android";
diff --git a/chromium/patches/patch-chrome_browser_media_webrtc_webrtc__log__uploader.cc b/chromium/patches/patch-chrome_browser_media_webrtc_webrtc__log__uploader.cc
index 610308b972..bf693466ef 100644
--- a/chromium/patches/patch-chrome_browser_media_webrtc_webrtc__log__uploader.cc
+++ b/chromium/patches/patch-chrome_browser_media_webrtc_webrtc__log__uploader.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- chrome/browser/media/webrtc/webrtc_log_uploader.cc.orig 2020-07-24 02:37:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/media/webrtc/webrtc_log_uploader.cc.orig 2024-07-24 02:44:27.599906200 +0000
+++ chrome/browser/media/webrtc/webrtc_log_uploader.cc
-@@ -354,6 +354,8 @@ void WebRtcLogUploader::SetupMultipart(
+@@ -101,7 +101,7 @@ std::string GetLogUploadProduct() {
+ const char product[] = "Chrome_Mac";
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ #if !defined(ADDRESS_SANITIZER)
+ const char product[] = "Chrome_Linux";
#else
- const char product[] = "Chrome_Linux_ASan";
- #endif
-+#elif defined(OS_NETBSD)
-+ const char product[] = "Chrome_NetBSD";
- #elif defined(OS_ANDROID)
- const char product[] = "Chrome_Android";
- #elif defined(OS_CHROMEOS)
diff --git a/chromium/patches/patch-chrome_browser_media_webrtc_webrtc__logging__controller.cc b/chromium/patches/patch-chrome_browser_media_webrtc_webrtc__logging__controller.cc
index 5051f8cf62..8455b55e59 100644
--- a/chromium/patches/patch-chrome_browser_media_webrtc_webrtc__logging__controller.cc
+++ b/chromium/patches/patch-chrome_browser_media_webrtc_webrtc__logging__controller.cc
@@ -1,22 +1,39 @@
$NetBSD$
---- chrome/browser/media/webrtc/webrtc_logging_controller.cc.orig 2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/media/webrtc/webrtc_logging_controller.cc.orig 2024-07-24 02:44:27.599906200 +0000
+++ chrome/browser/media/webrtc/webrtc_logging_controller.cc
-@@ -23,7 +23,7 @@
- #include "content/public/browser/browser_context.h"
+@@ -25,10 +25,10 @@
+ #include "components/webrtc_logging/browser/text_log_list.h"
#include "content/public/browser/render_process_host.h"
--#if defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "content/public/browser/child_process_security_policy.h"
#include "storage/browser/file_system/isolated_context.h"
- #endif // defined(OS_LINUX) || defined(OS_CHROMEOS)
-@@ -272,7 +272,7 @@ void WebRtcLoggingController::StartEvent
+-#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+
+ using webrtc_event_logging::WebRtcEventLogManager;
+
+@@ -288,7 +288,7 @@ void WebRtcLoggingController::StartEvent
web_app_id, callback);
}
--#if defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
void WebRtcLoggingController::GetLogsDirectory(
- const LogsDirectoryCallback& callback,
- const LogsDirectoryErrorCallback& error_callback) {
+ LogsDirectoryCallback callback,
+ LogsDirectoryErrorCallback error_callback) {
+@@ -334,7 +334,7 @@ void WebRtcLoggingController::GrantLogsD
+ FROM_HERE,
+ base::BindOnce(std::move(callback), file_system.id(), registered_name));
+ }
+-#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+
+ void WebRtcLoggingController::OnRtpPacket(
+ base::HeapArray<uint8_t> packet_header,
diff --git a/chromium/patches/patch-chrome_browser_media_webrtc_webrtc__logging__controller.h b/chromium/patches/patch-chrome_browser_media_webrtc_webrtc__logging__controller.h
index d86e01caaa..a81263f613 100644
--- a/chromium/patches/patch-chrome_browser_media_webrtc_webrtc__logging__controller.h
+++ b/chromium/patches/patch-chrome_browser_media_webrtc_webrtc__logging__controller.h
@@ -1,22 +1,26 @@
$NetBSD$
---- chrome/browser/media/webrtc/webrtc_logging_controller.h.orig 2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/media/webrtc/webrtc_logging_controller.h.orig 2024-07-24 02:44:27.603906400 +0000
+++ chrome/browser/media/webrtc/webrtc_logging_controller.h
-@@ -129,7 +129,7 @@ class WebRtcLoggingController
+@@ -133,7 +133,7 @@ class WebRtcLoggingController
size_t web_app_id,
const StartEventLoggingCallback& callback);
--#if defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// Ensures that the WebRTC Logs directory exists and then grants render
// process access to the 'WebRTC Logs' directory, and invokes |callback| with
// the ids necessary to create a DirectoryEntry object.
-@@ -188,7 +188,7 @@ class WebRtcLoggingController
- bool success,
- const std::string& error_message);
+@@ -197,7 +197,7 @@ class WebRtcLoggingController
+
+ content::BrowserContext* GetBrowserContext() const;
--#if defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// Grants the render process access to the 'WebRTC Logs' directory, and
// invokes |callback| with the ids necessary to create a DirectoryEntry
// object. If the |logs_path| couldn't be created or found, |error_callback|
diff --git a/chromium/patches/patch-chrome_browser_memory__details.cc b/chromium/patches/patch-chrome_browser_memory__details.cc
index 53e2b31447..4cca0fcad3 100644
--- a/chromium/patches/patch-chrome_browser_memory__details.cc
+++ b/chromium/patches/patch-chrome_browser_memory__details.cc
@@ -1,22 +1,26 @@
$NetBSD$
---- chrome/browser/memory_details.cc.orig 2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/memory_details.cc.orig 2024-07-24 02:44:27.615907700 +0000
+++ chrome/browser/memory_details.cc
@@ -38,7 +38,7 @@
#include "services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation.h"
#include "ui/base/l10n/l10n_util.h"
--#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
+-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_BSD)
#include "content/public/browser/zygote_host/zygote_host_linux.h"
#endif
-@@ -339,7 +339,7 @@ void MemoryDetails::CollectChildInfoOnUI
- process.titles.push_back(title);
+@@ -334,7 +334,7 @@ void MemoryDetails::CollectChildInfoOnUI
+ });
}
--#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
+-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_BSD)
if (content::ZygoteHost::GetInstance()->IsZygotePid(process.pid)) {
process.process_type = content::PROCESS_TYPE_ZYGOTE;
}
diff --git a/chromium/patches/patch-chrome_browser_memory__details__linux.cc b/chromium/patches/patch-chrome_browser_memory__details__linux.cc
deleted file mode 100644
index 369234e9b5..0000000000
--- a/chromium/patches/patch-chrome_browser_memory__details__linux.cc
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
---- chrome/browser/memory_details_linux.cc.orig 2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/memory_details_linux.cc
-@@ -69,8 +69,10 @@ ProcessData GetProcessDataMemoryInformat
-
- std::unique_ptr<base::ProcessMetrics> metrics(
- base::ProcessMetrics::CreateProcessMetrics(pid));
-+#if !defined(OS_BSD)
- pmi.num_open_fds = metrics->GetOpenFdCount();
- pmi.open_fds_soft_limit = metrics->GetOpenFdSoftLimit();
-+#endif
-
- process_data.processes.push_back(pmi);
- }
diff --git a/chromium/patches/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc b/chromium/patches/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc
index cce0ef34d3..d42429b790 100644
--- a/chromium/patches/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc
+++ b/chromium/patches/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc
@@ -1,14 +1,61 @@
$NetBSD$
---- chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc.orig 2020-07-15 18:56:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc.orig 2024-07-24 02:44:27.619908000 +0000
+++ chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc
-@@ -50,7 +50,9 @@
+@@ -83,8 +83,10 @@
- #if defined(OS_LINUX) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if defined(__GLIBC__) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++#if defined(__GLIBC__) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
++#if !BUILDFLAG(IS_BSD)
#include <gnu/libc-version.h>
+#endif
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
#include "base/linux_util.h"
#include "base/strings/string_split.h"
- #include "base/strings/string_util.h"
+@@ -108,7 +110,7 @@
+ #include "chromeos/crosapi/cpp/crosapi_constants.h"
+ #endif // BUILDFLAG(IS_CHROMEOS_LACROS)
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/metrics/pressure/pressure_metrics_reporter.h"
+ #endif // BUILDFLAG(IS_LINUX)
+
+@@ -117,7 +119,7 @@
+ #include "components/user_manager/user_manager.h"
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH)
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "components/power_metrics/system_power_monitor.h"
+ #endif
+
+@@ -864,7 +866,7 @@ void RecordStartupMetrics() {
+
+ // Record whether Chrome is the default browser or not.
+ // Disabled on Linux due to hanging browser tests, see crbug.com/1216328.
+-#if !BUILDFLAG(IS_LINUX)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD)
+ shell_integration::DefaultWebClientState default_state =
+ shell_integration::GetDefaultBrowser();
+ base::UmaHistogramEnumeration("DefaultBrowser.State", default_state,
+@@ -1163,11 +1165,11 @@ void ChromeBrowserMainExtraPartsMetrics:
+ }
+ #endif // !BUILDFLAG(IS_ANDROID)
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ pressure_metrics_reporter_ = std::make_unique<PressureMetricsReporter>();
+ #endif // BUILDFLAG(IS_LINUX)
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ base::trace_event::TraceLog::GetInstance()->AddEnabledStateObserver(
+ power_metrics::SystemPowerMonitor::GetInstance());
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
diff --git a/chromium/patches/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.h b/chromium/patches/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.h
new file mode 100644
index 0000000000..7cbfd9135f
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.h.orig 2024-07-24 02:44:27.619908000 +0000
++++ chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.h
+@@ -29,7 +29,7 @@ class PowerMetricsReporter;
+ class ProcessMonitor;
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ class PressureMetricsReporter;
+ #endif // BUILDFLAG(IS_LINUX)
+
+@@ -119,7 +119,7 @@ class ChromeBrowserMainExtraPartsMetrics
+ performance_intervention_metrics_reporter_;
+ #endif // !BUILDFLAG(IS_ANDROID)
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Reports pressure metrics.
+ std::unique_ptr<PressureMetricsReporter> pressure_metrics_reporter_;
+ #endif // BUILDFLAG(IS_LINUX)
diff --git a/chromium/patches/patch-chrome_browser_metrics_chrome__metrics__service__client.cc b/chromium/patches/patch-chrome_browser_metrics_chrome__metrics__service__client.cc
index 48c370dd15..e6f0806e45 100644
--- a/chromium/patches/patch-chrome_browser_metrics_chrome__metrics__service__client.cc
+++ b/chromium/patches/patch-chrome_browser_metrics_chrome__metrics__service__client.cc
@@ -1,22 +1,94 @@
$NetBSD$
---- chrome/browser/metrics/chrome_metrics_service_client.cc.orig 2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/metrics/chrome_metrics_service_client.cc.orig 2024-07-24 02:44:27.623908500 +0000
+++ chrome/browser/metrics/chrome_metrics_service_client.cc
-@@ -685,7 +685,7 @@ void ChromeMetricsServiceClient::Registe
- #endif // defined(OS_WIN)
+@@ -195,11 +195,11 @@
+ #include "chrome/notification_helper/notification_helper_constants.h"
+ #endif
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "components/metrics/motherboard_metrics_provider.h"
+ #endif
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID)
+ #include "chrome/browser/metrics/chrome_metrics_service_crash_reporter.h"
+ #endif
+
+@@ -212,7 +212,7 @@
+ #include "chrome/browser/metrics/power/power_metrics_provider_mac.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/metrics/bluetooth_metrics_provider.h"
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+
+@@ -534,7 +534,7 @@ void ChromeMetricsServiceClient::Registe
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH)
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_MAC)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ metrics::structured::StructuredMetricsService::RegisterPrefs(registry);
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
-- (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+ ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
+ #if !BUILDFLAG(IS_CHROMEOS_ASH)
+@@ -706,7 +706,7 @@ void ChromeMetricsServiceClient::Initial
+ RegisterUKMProviders();
+ }
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_CHROMEOS_ASH)
++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ metrics::structured::Recorder::GetInstance()->SetUiTaskRunner(
+ base::SequencedTaskRunner::GetCurrentDefault());
+ #endif
+@@ -757,7 +757,7 @@ void ChromeMetricsServiceClient::Registe
+ metrics_service_->RegisterMetricsProvider(
+ std::make_unique<metrics::CPUMetricsProvider>());
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ metrics_service_->RegisterMetricsProvider(
+ std::make_unique<metrics::MotherboardMetricsProvider>());
+ #endif
+@@ -842,7 +842,7 @@ void ChromeMetricsServiceClient::Registe
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
+- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_BSD)
metrics_service_->RegisterMetricsProvider(
std::make_unique<DesktopPlatformFeaturesMetricsProvider>());
- #endif // defined(OS_WIN) || defined(OS_MACOSX) || \
-@@ -951,7 +951,7 @@ bool ChromeMetricsServiceClient::Registe
- }
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || (BUILDFLAG(IS_LINUX) ||
+@@ -944,7 +944,7 @@ void ChromeMetricsServiceClient::Registe
+ std::make_unique<PowerMetricsProvider>());
#endif
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
-- (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+ ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ metrics_service_->RegisterMetricsProvider(
+ metrics::CreateDesktopSessionMetricsProvider());
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || (BUILDFLAG(IS_LINUX)
+@@ -1131,7 +1131,7 @@ bool ChromeMetricsServiceClient::Registe
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
+- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_BSD)
// This creates the DesktopProfileSessionDurationsServices if it didn't exist
// already.
metrics::DesktopProfileSessionDurationsServiceFactory::GetForBrowserContext(
+@@ -1465,7 +1465,7 @@ void ChromeMetricsServiceClient::CreateS
+ recorder =
+ std::make_unique<metrics::structured::AshStructuredMetricsRecorder>(
+ cros_system_profile_provider_.get());
+-#elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+
+ // Make sure that Structured Metrics recording delegates have been created
+ // before the service is created. This is handled in other places for ChromeOS
diff --git a/chromium/patches/patch-chrome_browser_metrics_perf_cpu__identity.cc b/chromium/patches/patch-chrome_browser_metrics_perf_cpu__identity.cc
new file mode 100644
index 0000000000..5abb9e5275
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_metrics_perf_cpu__identity.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/metrics/perf/cpu_identity.cc.orig 2024-07-24 02:44:27.631909100 +0000
++++ chrome/browser/metrics/perf/cpu_identity.cc
+@@ -147,7 +147,7 @@ CPUIdentity GetCPUIdentity() {
+ result.release =
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
+ base::SysInfo::KernelVersion();
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ base::SysInfo::OperatingSystemVersion();
+ #else
+ #error "Unsupported configuration"
diff --git a/chromium/patches/patch-chrome_browser_metrics_power_process__metrics__recorder__util.cc b/chromium/patches/patch-chrome_browser_metrics_power_process__metrics__recorder__util.cc
new file mode 100644
index 0000000000..d65e6d85ef
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_metrics_power_process__metrics__recorder__util.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/metrics/power/process_metrics_recorder_util.cc.orig 2024-07-24 02:44:27.635909600 +0000
++++ chrome/browser/metrics/power/process_metrics_recorder_util.cc
+@@ -65,7 +65,7 @@ void RecordProcessHistograms(const char*
+ const ProcessMonitor::Metrics& metrics) {
+ RecordAverageCPUUsage(histogram_suffix, metrics.cpu_usage);
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_AIX)
++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD)
+ base::UmaHistogramCounts10000(
+ base::StrCat({"PerformanceMonitor.IdleWakeups2.", histogram_suffix}),
+ metrics.idle_wakeups);
diff --git a/chromium/patches/patch-chrome_browser_metrics_power_process__monitor.cc b/chromium/patches/patch-chrome_browser_metrics_power_process__monitor.cc
new file mode 100644
index 0000000000..be83c3b8a8
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_metrics_power_process__monitor.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/metrics/power/process_monitor.cc.orig 2024-07-24 02:44:27.635909600 +0000
++++ chrome/browser/metrics/power/process_monitor.cc
+@@ -64,7 +64,7 @@ ProcessMonitor::Metrics SampleMetrics(ba
+ process_metrics.GetPlatformIndependentCPUUsage());
+
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_AIX)
++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD)
+ metrics.idle_wakeups = process_metrics.GetIdleWakeupsPerSecond();
+ #endif
+ #if BUILDFLAG(IS_MAC)
+@@ -82,7 +82,7 @@ void ScaleMetrics(ProcessMonitor::Metric
+ }
+
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_AIX)
++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD)
+ metrics->idle_wakeups *= factor;
+ #endif
+
+@@ -157,7 +157,7 @@ ProcessMonitor::Metrics& operator+=(Proc
+ }
+
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_AIX)
++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD)
+ lhs.idle_wakeups += rhs.idle_wakeups;
+ #endif
+
diff --git a/chromium/patches/patch-chrome_browser_metrics_power_process__monitor.h b/chromium/patches/patch-chrome_browser_metrics_power_process__monitor.h
new file mode 100644
index 0000000000..12aebc4922
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_metrics_power_process__monitor.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/metrics/power/process_monitor.h.orig 2024-07-24 02:44:27.635909600 +0000
++++ chrome/browser/metrics/power/process_monitor.h
+@@ -76,7 +76,7 @@ class ProcessMonitor : public content::B
+ std::optional<double> cpu_usage;
+
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_AIX)
++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD)
+ // Returns the number of average idle cpu wakeups per second since the last
+ // time the metric was sampled.
+ int idle_wakeups = 0;
diff --git a/chromium/patches/patch-chrome_browser_metrics_process__memory__metrics__emitter.cc b/chromium/patches/patch-chrome_browser_metrics_process__memory__metrics__emitter.cc
deleted file mode 100644
index 55aba4390d..0000000000
--- a/chromium/patches/patch-chrome_browser_metrics_process__memory__metrics__emitter.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- chrome/browser/metrics/process_memory_metrics_emitter.cc.orig 2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/metrics/process_memory_metrics_emitter.cc
-@@ -492,7 +492,7 @@ void EmitProcessUmaAndUkm(const GlobalMe
-
- builder->SetPrivateMemoryFootprint(pmd.os_dump().private_footprint_kb / kKiB);
- builder->SetSharedMemoryFootprint(pmd.os_dump().shared_footprint_kb / kKiB);
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
- builder->SetPrivateSwapFootprint(pmd.os_dump().private_footprint_swap_kb /
- kKiB);
- #endif
-@@ -515,7 +515,7 @@ void EmitProcessUmaAndUkm(const GlobalMe
- MEMORY_METRICS_HISTOGRAM_MB(std::string(kMemoryHistogramPrefix) +
- process_name + ".SharedMemoryFootprint",
- pmd.os_dump().shared_footprint_kb / kKiB);
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
- MEMORY_METRICS_HISTOGRAM_MB(std::string(kMemoryHistogramPrefix) +
- process_name + ".PrivateSwapFootprint",
- pmd.os_dump().private_footprint_swap_kb / kKiB);
diff --git a/chromium/patches/patch-chrome_browser_native__file__system_chrome__native__file__system__permission__context.cc b/chromium/patches/patch-chrome_browser_native__file__system_chrome__native__file__system__permission__context.cc
deleted file mode 100644
index ae8a660a01..0000000000
--- a/chromium/patches/patch-chrome_browser_native__file__system_chrome__native__file__system__permission__context.cc
+++ /dev/null
@@ -1,19 +0,0 @@
-$NetBSD$
-
---- chrome/browser/native_file_system/chrome_native_file_system_permission_context.cc.orig 2020-07-08 21:41:47.000000000 +0000
-+++ chrome/browser/native_file_system/chrome_native_file_system_permission_context.cc
-@@ -120,12 +120,13 @@ const struct {
- {base::DIR_APP_DATA, nullptr, true},
- {base::DIR_HOME, FILE_PATH_LITERAL("Library"), true},
- #endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // On Linux also block access to devices via /dev, as well as security
- // sensitive data in /sys and /proc.
- {kNoBasePathKey, FILE_PATH_LITERAL("/dev"), true},
- {kNoBasePathKey, FILE_PATH_LITERAL("/sys"), true},
- {kNoBasePathKey, FILE_PATH_LITERAL("/proc"), true},
-+ {kNoBasePathKey, FILE_PATH_LITERAL("/kern"), true},
- // And block all of ~/.config, matching the similar restrictions on mac
- // and windows.
- {base::DIR_HOME, FILE_PATH_LITERAL(".config"), true},
diff --git a/chromium/patches/patch-chrome_browser_net_system__network__context__manager.cc b/chromium/patches/patch-chrome_browser_net_system__network__context__manager.cc
index 65f7f7eba3..a085f7e901 100644
--- a/chromium/patches/patch-chrome_browser_net_system__network__context__manager.cc
+++ b/chromium/patches/patch-chrome_browser_net_system__network__context__manager.cc
@@ -1,49 +1,180 @@
$NetBSD$
---- chrome/browser/net/system_network_context_manager.cc.orig 2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/net/system_network_context_manager.cc.orig 2024-07-24 02:44:27.695915500 +0000
+++ chrome/browser/net/system_network_context_manager.cc
-@@ -77,7 +77,7 @@
- #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
- #endif // defined(OS_CHROMEOS)
+@@ -97,7 +97,7 @@
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
#include "chrome/common/chrome_paths_internal.h"
- #include "chrome/grit/chromium_strings.h"
+ #include "chrome/grit/branded_strings.h"
#include "ui/base/l10n/l10n_util.h"
-@@ -140,7 +140,7 @@ network::mojom::HttpAuthDynamicParamsPtr
- auth_dynamic_params->enable_negotiate_port =
- local_state->GetBoolean(prefs::kEnableAuthNegotiatePort);
+@@ -141,7 +141,7 @@ SystemNetworkContextManager* g_system_ne
+ // received a failed launch for a sandboxed network service.
+ bool g_previously_failed_to_launch_sandboxed_service = false;
+
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Whether kerberos library loading will work in the network service due to the
+ // sandbox.
+ bool g_network_service_will_allow_gssapi_library_load = false;
+@@ -149,7 +149,7 @@ bool g_network_service_will_allow_gssapi
+ const char* kGssapiDesiredPref =
+ #if BUILDFLAG(IS_CHROMEOS)
+ prefs::kKerberosEnabled;
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ prefs::kReceivedHttpAuthNegotiateHeader;
+ #endif
+ #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+@@ -195,7 +195,7 @@ network::mojom::HttpAuthDynamicParamsPtr
+ auth_dynamic_params->basic_over_http_enabled =
+ local_state->GetBoolean(prefs::kBasicAuthOverHttpEnabled);
--#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
auth_dynamic_params->delegate_by_kdc_policy =
local_state->GetBoolean(prefs::kAuthNegotiateDelegateByKdcPolicy);
- #endif // defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_CHROMEOS)
-@@ -355,7 +355,7 @@ SystemNetworkContextManager::SystemNetwo
- pref_change_registrar_.Add(prefs::kEnableAuthNegotiatePort,
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS)
+@@ -210,7 +210,7 @@ network::mojom::HttpAuthDynamicParamsPtr
+ local_state->GetString(prefs::kAuthAndroidNegotiateAccountType);
+ #endif // BUILDFLAG(IS_ANDROID)
+
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ auth_dynamic_params->allow_gssapi_library_load =
+ local_state->GetBoolean(kGssapiDesiredPref);
+ #endif // BUILDFLAG(IS_CHROMEOS)
+@@ -220,7 +220,7 @@ network::mojom::HttpAuthDynamicParamsPtr
+
+ void OnNewHttpAuthDynamicParams(
+ network::mojom::HttpAuthDynamicParamsPtr& params) {
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // The kerberos library is incompatible with the network service sandbox, so
+ // if library loading is now enabled, the network service needs to be
+ // restarted. It will be restarted unsandboxed because is
+@@ -262,11 +262,11 @@ NetworkSandboxState IsNetworkSandboxEnab
+ if (g_previously_failed_to_launch_sandboxed_service) {
+ return NetworkSandboxState::kDisabledBecauseOfFailedLaunch;
+ }
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ auto* local_state = g_browser_process->local_state();
+ #endif
+
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // The network service sandbox and the kerberos library are incompatible.
+ // If kerberos is enabled by policy, disable the network service sandbox.
+ if (g_network_service_will_allow_gssapi_library_load ||
+@@ -282,7 +282,7 @@ NetworkSandboxState IsNetworkSandboxEnab
+ }
+ #endif // BUILDFLAG(IS_WIN)
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (local_state &&
+ local_state->HasPrefPath(prefs::kNetworkServiceSandboxEnabled)) {
+ return local_state->GetBoolean(prefs::kNetworkServiceSandboxEnabled)
+@@ -512,7 +512,7 @@ void SystemNetworkContextManager::Delete
+ g_system_network_context_manager = nullptr;
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ SystemNetworkContextManager::GssapiLibraryLoadObserver::
+ GssapiLibraryLoadObserver(SystemNetworkContextManager* owner)
+ : owner_(owner) {}
+@@ -570,7 +570,7 @@ SystemNetworkContextManager::SystemNetwo
+ pref_change_registrar_.Add(prefs::kAllHttpAuthSchemesAllowedForOrigins,
auth_pref_callback);
--#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
pref_change_registrar_.Add(prefs::kAuthNegotiateDelegateByKdcPolicy,
auth_pref_callback);
- #endif // defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_CHROMEOS)
-@@ -405,7 +405,7 @@ void SystemNetworkContextManager::Regist
- registry->RegisterStringPref(prefs::kAuthServerWhitelist, std::string());
- registry->RegisterStringPref(prefs::kAuthNegotiateDelegateWhitelist,
- std::string());
--#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS)
+@@ -584,7 +584,7 @@ SystemNetworkContextManager::SystemNetwo
+ auth_pref_callback);
+ #endif // BUILDFLAG(IS_ANDROID)
+
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ pref_change_registrar_.Add(kGssapiDesiredPref, auth_pref_callback);
+ #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+
+@@ -610,7 +610,7 @@ SystemNetworkContextManager::SystemNetwo
+ #endif
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ pref_change_registrar_.Add(
+ prefs::kEnforceLocalAnchorConstraintsEnabled,
+ base::BindRepeating(&SystemNetworkContextManager::
+@@ -665,7 +665,7 @@ void SystemNetworkContextManager::Regist
+ registry->RegisterBooleanPref(prefs::kKerberosEnabled, false);
+ #endif // BUILDFLAG(IS_CHROMEOS_LACROS)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
registry->RegisterBooleanPref(prefs::kAuthNegotiateDelegateByKdcPolicy,
false);
- #endif // defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_CHROMEOS)
-@@ -491,7 +491,7 @@ void SystemNetworkContextManager::OnNetw
- // NetworkContext is created, but before anything has the chance to use it.
- stub_resolver_config_reader_.UpdateNetworkService(true /* record_metrics */);
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS)
+@@ -689,7 +689,7 @@ void SystemNetworkContextManager::Regist
+ registry->RegisterIntegerPref(prefs::kMaxConnectionsPerProxy, -1);
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ // Note that the default value is not relevant because the pref is only
+ // evaluated when it is managed.
+ registry->RegisterBooleanPref(prefs::kEnforceLocalAnchorConstraintsEnabled,
+@@ -698,11 +698,11 @@ void SystemNetworkContextManager::Regist
+
+ registry->RegisterListPref(prefs::kExplicitlyAllowedNetworkPorts);
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ registry->RegisterBooleanPref(prefs::kNetworkServiceSandboxEnabled, true);
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ registry->RegisterBooleanPref(prefs::kReceivedHttpAuthNegotiateHeader, false);
+ #endif // BUILDFLAG(IS_LINUX)
+
+@@ -755,7 +755,7 @@ void SystemNetworkContextManager::OnNetw
+ OnNewHttpAuthDynamicParams(http_auth_dynamic_params);
+ network_service->ConfigureHttpAuthPrefs(std::move(http_auth_dynamic_params));
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ gssapi_library_loader_observer_.Install(network_service);
+ #endif // BUILDFLAG(IS_LINUX)
+
+@@ -970,7 +970,7 @@ bool SystemNetworkContextManager::IsNetw
+ break;
+ }
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- const base::CommandLine& command_line =
- *base::CommandLine::ForCurrentProcess();
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (!enabled) {
+ g_network_service_will_allow_gssapi_library_load = true;
+ }
+@@ -1057,7 +1057,7 @@ void SystemNetworkContextManager::Update
+ }
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ void SystemNetworkContextManager::UpdateEnforceLocalAnchorConstraintsEnabled() {
+ const PrefService::Preference* enforce_local_anchor_constraints_enabled_pref =
+ local_state_->FindPreference(
diff --git a/chromium/patches/patch-chrome_browser_net_system__network__context__manager.h b/chromium/patches/patch-chrome_browser_net_system__network__context__manager.h
new file mode 100644
index 0000000000..03ba4d751b
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_net_system__network__context__manager.h
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/net/system_network_context_manager.h.orig 2024-07-24 02:44:27.695915500 +0000
++++ chrome/browser/net/system_network_context_manager.h
+@@ -197,7 +197,7 @@ class SystemNetworkContextManager {
+ class URLLoaderFactoryForSystem;
+ class NetworkProcessLaunchWatcher;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ class GssapiLibraryLoadObserver
+ : public network::mojom::GssapiLibraryLoadObserver {
+ public:
+@@ -233,7 +233,7 @@ class SystemNetworkContextManager {
+ void UpdateExplicitlyAllowedNetworkPorts();
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ // Applies the current value of the kEnforceLocalAnchorConstraintsEnabled
+ // pref to the enforcement state.
+ void UpdateEnforceLocalAnchorConstraintsEnabled();
+@@ -285,7 +285,7 @@ class SystemNetworkContextManager {
+ std::unique_ptr<NetworkAnnotationMonitor> network_annotation_monitor_;
+ #endif // BUILDFLAG(IS_CHROMEOS)
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ GssapiLibraryLoadObserver gssapi_library_loader_observer_{this};
+ #endif // BUILDFLAG(IS_LINUX)
+
diff --git a/chromium/patches/patch-chrome_browser_new__tab__page_modules_file__suggestion_drive__service.cc b/chromium/patches/patch-chrome_browser_new__tab__page_modules_file__suggestion_drive__service.cc
new file mode 100644
index 0000000000..2b5b6d3018
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_new__tab__page_modules_file__suggestion_drive__service.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/new_tab_page/modules/file_suggestion/drive_service.cc.orig 2024-07-24 02:44:27.699916000 +0000
++++ chrome/browser/new_tab_page/modules/file_suggestion/drive_service.cc
+@@ -32,7 +32,7 @@
+ #include "services/network/public/cpp/resource_request.h"
+
+ namespace {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ constexpr char kPlatform[] = "LINUX";
+ #elif BUILDFLAG(IS_WIN)
+ constexpr char kPlatform[] = "WINDOWS";
diff --git a/chromium/patches/patch-chrome_browser_new__tab__page_new__tab__page__util.cc b/chromium/patches/patch-chrome_browser_new__tab__page_new__tab__page__util.cc
new file mode 100644
index 0000000000..68a8abc445
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_new__tab__page_new__tab__page__util.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/new_tab_page/new_tab_page_util.cc.orig 2024-07-24 02:44:27.707916500 +0000
++++ chrome/browser/new_tab_page/new_tab_page_util.cc
+@@ -20,7 +20,7 @@ bool IsOsSupportedForCart() {
+ }
+
+ bool IsOsSupportedForDrive() {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return true;
+ #else
+ return false;
diff --git a/chromium/patches/patch-chrome_browser_notifications_notification__display__service__impl.cc b/chromium/patches/patch-chrome_browser_notifications_notification__display__service__impl.cc
index b52730c46f..0433c30534 100644
--- a/chromium/patches/patch-chrome_browser_notifications_notification__display__service__impl.cc
+++ b/chromium/patches/patch-chrome_browser_notifications_notification__display__service__impl.cc
@@ -1,40 +1,44 @@
$NetBSD$
---- chrome/browser/notifications/notification_display_service_impl.cc.orig 2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/notifications/notification_display_service_impl.cc.orig 2024-07-24 02:44:27.723918200 +0000
+++ chrome/browser/notifications/notification_display_service_impl.cc
-@@ -36,7 +36,7 @@
- #include "chrome/browser/notifications/notification_platform_bridge_message_center.h"
+@@ -32,7 +32,7 @@
#endif
--#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_BSD)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
#include "chrome/browser/send_tab_to_self/desktop_notification_handler.h"
+ #include "chrome/browser/sharing/sharing_notification_handler.h"
#endif
-
-@@ -49,7 +49,7 @@ namespace {
-
- #if !defined(OS_CHROMEOS)
- bool NativeNotificationsEnabled(Profile* profile) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- if (profile) {
- PrefService* prefs = profile->GetPrefs();
- if (!prefs->GetBoolean(prefs::kAllowNativeNotifications))
-@@ -131,7 +131,7 @@ NotificationDisplayServiceImpl* Notifica
+@@ -65,7 +65,7 @@ NotificationDisplayServiceImpl* Notifica
// static
void NotificationDisplayServiceImpl::RegisterProfilePrefs(
user_prefs::PrefRegistrySyncable* registry) {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- registry->RegisterBooleanPref(prefs::kAllowNativeNotifications, true);
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ registry->RegisterBooleanPref(prefs::kAllowSystemNotifications, true);
#endif
}
-@@ -148,7 +148,7 @@ NotificationDisplayServiceImpl::Notifica
- AddNotificationHandler(NotificationHandler::Type::WEB_PERSISTENT,
+@@ -81,7 +81,7 @@ NotificationDisplayServiceImpl::Notifica
std::make_unique<PersistentNotificationHandler>());
--#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_BSD)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
AddNotificationHandler(
NotificationHandler::Type::SEND_TAB_TO_SELF,
std::make_unique<send_tab_to_self::DesktopNotificationHandler>(
+@@ -89,7 +89,7 @@ NotificationDisplayServiceImpl::Notifica
+ #endif
+
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ AddNotificationHandler(
+ NotificationHandler::Type::TAILORED_SECURITY,
+ std::make_unique<safe_browsing::TailoredSecurityNotificationHandler>());
diff --git a/chromium/patches/patch-chrome_browser_notifications_notification__platform__bridge__delegator.cc b/chromium/patches/patch-chrome_browser_notifications_notification__platform__bridge__delegator.cc
new file mode 100644
index 0000000000..834d09c2c0
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_notifications_notification__platform__bridge__delegator.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/notifications/notification_platform_bridge_delegator.cc.orig 2024-07-24 02:44:27.727918400 +0000
++++ chrome/browser/notifications/notification_platform_bridge_delegator.cc
+@@ -57,7 +57,7 @@ bool SystemNotificationsEnabled(Profile*
+ #elif BUILDFLAG(IS_WIN)
+ return NotificationPlatformBridgeWin::SystemNotificationEnabled();
+ #else
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (profile) {
+ // Prefs take precedence over flags.
+ PrefService* prefs = profile->GetPrefs();
diff --git a/chromium/patches/patch-chrome_browser_password__manager_chrome__password__manager__client.cc b/chromium/patches/patch-chrome_browser_password__manager_chrome__password__manager__client.cc
index b979aaa943..5e52287abf 100644
--- a/chromium/patches/patch-chrome_browser_password__manager_chrome__password__manager__client.cc
+++ b/chromium/patches/patch-chrome_browser_password__manager_chrome__password__manager__client.cc
@@ -1,13 +1,26 @@
$NetBSD$
---- chrome/browser/password_manager/chrome_password_manager_client.cc.orig 2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/password_manager/chrome_password_manager_client.cc.orig 2024-07-24 02:44:27.871932500 +0000
+++ chrome/browser/password_manager/chrome_password_manager_client.cc
-@@ -95,7 +95,7 @@
- #include "net/base/url_util.h"
- #include "net/cert/cert_status_flags.h"
- #include "services/metrics/public/cpp/ukm_recorder.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
- #include "url/url_constants.h"
+@@ -560,7 +560,7 @@ void ChromePasswordManagerClient::
+
+ bool ChromePasswordManagerClient::CanUseBiometricAuthForFilling(
+ device_reauth::DeviceAuthenticator* authenticator) {
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (!GetLocalStatePrefs() || !GetPrefs() || !authenticator) {
+ return false;
+ }
+@@ -786,7 +786,7 @@ void ChromePasswordManagerClient::Notify
+ }
- #if BUILDFLAG(FULL_SAFE_BROWSING)
+ void ChromePasswordManagerClient::NotifyKeychainError() {
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ PasswordsClientUIDelegate* manage_passwords_ui_controller =
+ PasswordsClientUIDelegateFromWebContents(web_contents());
+ manage_passwords_ui_controller->OnKeychainError();
diff --git a/chromium/patches/patch-chrome_browser_password__manager_password__reuse__manager__factory.cc b/chromium/patches/patch-chrome_browser_password__manager_password__reuse__manager__factory.cc
new file mode 100644
index 0000000000..b5c99d8fd6
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_password__manager_password__reuse__manager__factory.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/password_manager/password_reuse_manager_factory.cc.orig 2024-07-24 02:44:27.879933000 +0000
++++ chrome/browser/password_manager/password_reuse_manager_factory.cc
+@@ -138,7 +138,7 @@ PasswordReuseManagerFactory::BuildServic
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_LACROS)
++ BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ std::unique_ptr<password_manager::PasswordReuseManagerSigninNotifier>
+ notifier = std::make_unique<
+ password_manager::PasswordReuseManagerSigninNotifierImpl>(
diff --git a/chromium/patches/patch-chrome_browser_password__manager_password__store__factory.cc b/chromium/patches/patch-chrome_browser_password__manager_password__store__factory.cc
deleted file mode 100644
index 35f58bfcef..0000000000
--- a/chromium/patches/patch-chrome_browser_password__manager_password__store__factory.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/password_manager/password_store_factory.cc.orig 2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/password_manager/password_store_factory.cc
-@@ -193,7 +193,7 @@ PasswordStoreFactory::BuildServiceInstan
- base::TimeDelta::FromSeconds(20));
-
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
-- (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+ ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
- std::unique_ptr<password_manager::PasswordStoreSigninNotifier> notifier =
- std::make_unique<password_manager::PasswordStoreSigninNotifierImpl>(
- IdentityManagerFactory::GetForProfile(profile));
diff --git a/chromium/patches/patch-chrome_browser_performance__monitor_process__metrics__history.cc b/chromium/patches/patch-chrome_browser_performance__monitor_process__metrics__history.cc
deleted file mode 100644
index 83ea9c4e94..0000000000
--- a/chromium/patches/patch-chrome_browser_performance__monitor_process__metrics__history.cc
+++ /dev/null
@@ -1,40 +0,0 @@
-$NetBSD$
-
---- chrome/browser/performance_monitor/process_metrics_history.cc.orig 2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/performance_monitor/process_metrics_history.cc
-@@ -47,7 +47,7 @@ void ProcessMetricsHistory::SampleMetric
- #if defined(OS_WIN)
- disk_usage_ = process_metrics_->GetDiskUsageBytesPerSecond();
- #endif
--#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_AIX)
-+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_AIX) || defined(OS_BSD)
- idle_wakeups_ = process_metrics_->GetIdleWakeupsPerSecond();
- #endif
- #if defined(OS_MACOSX)
-@@ -90,7 +90,7 @@ void ProcessMetricsHistory::UpdateHistog
- kDiskUsageHistogramMin, kDiskUsageHistogramMax,
- kDiskUsageHistogramBucketCount);
- #endif
--#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_AIX)
-+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_AIX) || defined(OS_BSD)
- UMA_HISTOGRAM_COUNTS_10000(
- "PerformanceMonitor.IdleWakeups.BrowserProcess", idle_wakeups_);
- #endif
-@@ -111,7 +111,7 @@ void ProcessMetricsHistory::UpdateHistog
- UMA_HISTOGRAM_BOOLEAN("PerformanceMonitor.HighCPU.RendererProcess",
- true);
- }
--#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_AIX)
-+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_AIX) || defined(OS_BSD)
- UMA_HISTOGRAM_COUNTS_10000(
- "PerformanceMonitor.IdleWakeups.RendererProcess", idle_wakeups_);
- #endif
-@@ -131,7 +131,7 @@ void ProcessMetricsHistory::UpdateHistog
- kHistogramBucketCount);
- if (cpu_usage_ > kHighCPUUtilizationThreshold)
- UMA_HISTOGRAM_BOOLEAN("PerformanceMonitor.HighCPU.GPUProcess", true);
--#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_AIX)
-+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_AIX) || defined(OS_BSD)
- UMA_HISTOGRAM_COUNTS_10000("PerformanceMonitor.IdleWakeups.GPUProcess",
- idle_wakeups_);
- #endif
diff --git a/chromium/patches/patch-chrome_browser_performance__monitor_process__metrics__history.h b/chromium/patches/patch-chrome_browser_performance__monitor_process__metrics__history.h
deleted file mode 100644
index afed0e71db..0000000000
--- a/chromium/patches/patch-chrome_browser_performance__monitor_process__metrics__history.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/performance_monitor/process_metrics_history.h.orig 2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/performance_monitor/process_metrics_history.h
-@@ -71,7 +71,7 @@ class ProcessMetricsHistory {
- uint64_t disk_usage_ = 0;
- #endif
-
--#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_AIX)
-+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_AIX) || defined(OS_BSD)
- int idle_wakeups_ = 0;
- #endif
- #if defined(OS_MACOSX)
diff --git a/chromium/patches/patch-chrome_browser_platform__util__linux.cc b/chromium/patches/patch-chrome_browser_platform__util__linux.cc
new file mode 100644
index 0000000000..15d2485342
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_platform__util__linux.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/platform_util_linux.cc.orig 2024-07-24 02:44:27.919937100 +0000
++++ chrome/browser/platform_util_linux.cc
+@@ -300,7 +300,9 @@ void OnLaunchOptionsCreated(const std::s
+ argv.push_back(command);
+ argv.push_back(arg);
+ options.current_directory = working_directory;
++#if !BUILDFLAG(IS_BSD)
+ options.allow_new_privs = true;
++#endif
+ // xdg-open can fall back on mailcap which eventually might plumb through
+ // to a command that needs a terminal. Set the environment variable telling
+ // it that we definitely don't have a terminal available and that it should
diff --git a/chromium/patches/patch-chrome_browser_plugins_plugin__info__host__impl.cc b/chromium/patches/patch-chrome_browser_plugins_plugin__info__host__impl.cc
deleted file mode 100644
index 33387fb35f..0000000000
--- a/chromium/patches/patch-chrome_browser_plugins_plugin__info__host__impl.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/plugins/plugin_info_host_impl.cc.orig 2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/plugins/plugin_info_host_impl.cc
-@@ -382,7 +382,7 @@ void PluginInfoHostImpl::ComponentPlugin
- std::unique_ptr<component_updater::ComponentInfo> cus_plugin_info) {
- if (cus_plugin_info) {
- output->status = chrome::mojom::PluginStatus::kComponentUpdateRequired;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- if (cus_plugin_info->version != base::Version("0")) {
- output->status = chrome::mojom::PluginStatus::kRestartRequired;
- }
diff --git a/chromium/patches/patch-chrome_browser_plugins_plugins__resource__service.cc b/chromium/patches/patch-chrome_browser_plugins_plugins__resource__service.cc
deleted file mode 100644
index ddf8ed5a7b..0000000000
--- a/chromium/patches/patch-chrome_browser_plugins_plugins__resource__service.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/plugins/plugins_resource_service.cc.orig 2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/plugins/plugins_resource_service.cc
-@@ -62,7 +62,7 @@ GURL GetPluginsServerURL() {
- filename = "plugins_win.json";
- #elif defined(OS_CHROMEOS)
- filename = "plugins_chromeos.json";
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- filename = "plugins_linux.json";
- #elif defined(OS_MACOSX)
- filename = "plugins_mac.json";
diff --git a/chromium/patches/patch-chrome_browser_policy_browser__signin__policy__handler.cc b/chromium/patches/patch-chrome_browser_policy_browser__signin__policy__handler.cc
index 0544a0c857..a42cab2e10 100644
--- a/chromium/patches/patch-chrome_browser_policy_browser__signin__policy__handler.cc
+++ b/chromium/patches/patch-chrome_browser_policy_browser__signin__policy__handler.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- chrome/browser/policy/browser_signin_policy_handler.cc.orig 2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/policy/browser_signin_policy_handler.cc.orig 2024-07-24 02:44:27.927937700 +0000
+++ chrome/browser/policy/browser_signin_policy_handler.cc
-@@ -52,7 +52,7 @@ void BrowserSigninPolicyHandler::ApplyPo
- }
- switch (static_cast<BrowserSigninMode>(int_value)) {
- case BrowserSigninMode::kForced:
--#if !defined(OS_LINUX)
-+#if !defined(OS_LINUX) && !defined(OS_BSD)
- prefs->SetValue(prefs::kForceBrowserSignin, base::Value(true));
+@@ -45,7 +45,7 @@ void BrowserSigninPolicyHandler::ApplyPo
+ policies.GetValue(policy_name(), base::Value::Type::INTEGER);
+ switch (static_cast<BrowserSigninMode>(value->GetInt())) {
+ case BrowserSigninMode::kForced:
+-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD)
+ prefs->SetValue(prefs::kForceBrowserSignin, base::Value(true));
#endif
- FALLTHROUGH;
+ [[fallthrough]];
diff --git a/chromium/patches/patch-chrome_browser_policy_chrome__browser__cloud__management__controller.cc b/chromium/patches/patch-chrome_browser_policy_chrome__browser__cloud__management__controller.cc
deleted file mode 100644
index 6ceec86c23..0000000000
--- a/chromium/patches/patch-chrome_browser_policy_chrome__browser__cloud__management__controller.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/policy/chrome_browser_cloud_management_controller.cc.orig 2020-07-24 02:37:47.000000000 +0000
-+++ chrome/browser/policy/chrome_browser_cloud_management_controller.cc
-@@ -228,7 +228,7 @@ ChromeBrowserCloudManagementController::
- storage_delegate = std::make_unique<BrowserDMTokenStorageWin>();
- #elif defined(OS_MACOSX)
- storage_delegate = std::make_unique<BrowserDMTokenStorageMac>();
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- storage_delegate = std::make_unique<BrowserDMTokenStorageLinux>();
- #else
- NOT_REACHED();
diff --git a/chromium/patches/patch-chrome_browser_policy_chrome__browser__cloud__management__controller__desktop.cc b/chromium/patches/patch-chrome_browser_policy_chrome__browser__cloud__management__controller__desktop.cc
new file mode 100644
index 0000000000..0c84fea733
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_policy_chrome__browser__cloud__management__controller__desktop.cc
@@ -0,0 +1,44 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/policy/chrome_browser_cloud_management_controller_desktop.cc.orig 2024-07-24 02:44:27.931938200 +0000
++++ chrome/browser/policy/chrome_browser_cloud_management_controller_desktop.cc
+@@ -50,7 +50,7 @@
+ #include "chrome/browser/policy/browser_dm_token_storage_mac.h"
+ #endif // BUILDFLAG(IS_MAC)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/policy/browser_dm_token_storage_linux.h"
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+
+@@ -59,7 +59,7 @@
+ #include "chrome/install_static/install_util.h"
+ #endif // BUILDFLAG(IS_WIN)
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/connectors/device_trust/key_management/browser/device_trust_key_manager_impl.h"
+ #include "chrome/browser/enterprise/connectors/device_trust/key_management/browser/key_rotation_launcher.h"
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
+@@ -87,7 +87,7 @@ void ChromeBrowserCloudManagementControl
+
+ #if BUILDFLAG(IS_MAC)
+ storage_delegate = std::make_unique<BrowserDMTokenStorageMac>();
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ storage_delegate = std::make_unique<BrowserDMTokenStorageLinux>();
+ #elif BUILDFLAG(IS_WIN)
+ storage_delegate = std::make_unique<BrowserDMTokenStorageWin>();
+@@ -255,7 +255,7 @@ ChromeBrowserCloudManagementControllerDe
+
+ std::unique_ptr<enterprise_connectors::DeviceTrustKeyManager>
+ ChromeBrowserCloudManagementControllerDesktop::CreateDeviceTrustKeyManager() {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ auto* browser_dm_token_storage = BrowserDMTokenStorage::Get();
+ auto* device_management_service = GetDeviceManagementService();
+ auto shared_url_loader_factory = GetSharedURLLoaderFactory();
diff --git a/chromium/patches/patch-chrome_browser_policy_configuration__policy__handler__list__factory.cc b/chromium/patches/patch-chrome_browser_policy_configuration__policy__handler__list__factory.cc
new file mode 100644
index 0000000000..e328a19feb
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_policy_configuration__policy__handler__list__factory.cc
@@ -0,0 +1,260 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/policy/configuration_policy_handler_list_factory.cc.orig 2024-07-24 02:44:27.935938600 +0000
++++ chrome/browser/policy/configuration_policy_handler_list_factory.cc
+@@ -235,19 +235,19 @@
+ #include "components/spellcheck/browser/pref_names.h"
+ #endif // BUILDFLAG(ENABLE_SPELLCHECK)
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/idle/action.h"
+ #include "chrome/browser/enterprise/signin/enterprise_signin_prefs.h"
+ #include "components/device_signals/core/browser/pref_names.h" // nogncheck due to crbug.com/1125897
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ #include "components/enterprise/idle/idle_timeout_policy_handler.h"
+ #endif
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/privacy_sandbox/privacy_sandbox_policy_handler.h"
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
+ // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
+@@ -261,13 +261,13 @@
+ #endif // BUILDFLAG(ENTERPRISE_CLIENT_CERTIFICATES)
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_ASH)
++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/policy/battery_saver_policy_handler.h"
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
+ // BUILDFLAG(IS_CHROMEOS_ASH)
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "components/search_engines/site_search_policy_handler.h"
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
+ // BUILDFLAG(IS_CHROMEOS)
+@@ -872,7 +872,7 @@ const PolicyToPreferenceMapEntry kSimple
+ prefs::kManagedDefaultGeolocationSetting,
+ base::Value::Type::INTEGER },
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) \
+- || BUILDFLAG(IS_MAC)
++ || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ { key::kRequireOnlineRevocationChecksForLocalAnchors,
+ prefs::kCertRevocationCheckingRequiredLocalAnchors,
+ base::Value::Type::BOOLEAN },
+@@ -881,7 +881,7 @@ const PolicyToPreferenceMapEntry kSimple
+ base::Value::Type::BOOLEAN },
+ #endif // #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+ // || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ { key::kFullscreenAllowed,
+ prefs::kFullscreenAllowed,
+ base::Value::Type::BOOLEAN },
+@@ -1692,7 +1692,7 @@ const PolicyToPreferenceMapEntry kSimple
+ base::Value::Type::STRING },
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH)
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ { key::kGSSAPILibraryName,
+ prefs::kGSSAPILibraryName,
+ base::Value::Type::STRING },
+@@ -1746,7 +1746,7 @@ const PolicyToPreferenceMapEntry kSimple
+ base::Value::Type::BOOLEAN },
+ #endif // BUILDFLAG(IS_WIN)
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ { key::kNetworkServiceSandboxEnabled,
+ prefs::kNetworkServiceSandboxEnabled,
+ base::Value::Type::BOOLEAN },
+@@ -1772,12 +1772,12 @@ const PolicyToPreferenceMapEntry kSimple
+ prefs::kTotalMemoryLimitMb,
+ base::Value::Type::INTEGER },
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ { key::kBackgroundModeEnabled,
+ prefs::kBackgroundModeEnabled,
+ base::Value::Type::BOOLEAN },
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ { key::kUnmanagedDeviceSignalsConsentFlowEnabled,
+ device_signals::prefs::kUnmanagedDeviceSignalsConsentFlowEnabled,
+ base::Value::Type::BOOLEAN },
+@@ -1785,7 +1785,7 @@ const PolicyToPreferenceMapEntry kSimple
+ prefs::kProfileSeparationDomainExceptionList,
+ base::Value::Type::LIST },
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ { key::kDefaultBrowserSettingEnabled,
+ prefs::kDefaultBrowserSettingEnabled,
+ base::Value::Type::BOOLEAN },
+@@ -1797,7 +1797,7 @@ const PolicyToPreferenceMapEntry kSimple
+ base::Value::Type::BOOLEAN },
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) \
+- || BUILDFLAG(IS_CHROMEOS)
++ || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ { key::kAutoplayAllowed,
+ prefs::kAutoplayAllowed,
+ base::Value::Type::BOOLEAN },
+@@ -1898,7 +1898,7 @@ const PolicyToPreferenceMapEntry kSimple
+ base::Value::Type::BOOLEAN },
+ #endif // !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ { key::kAlternativeBrowserPath,
+ browser_switcher::prefs::kAlternativeBrowserPath,
+ base::Value::Type::STRING },
+@@ -2003,7 +2003,7 @@ const PolicyToPreferenceMapEntry kSimple
+ base::Value::Type::LIST },
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ { key::kAuthNegotiateDelegateByKdcPolicy,
+ prefs::kAuthNegotiateDelegateByKdcPolicy,
+ base::Value::Type::BOOLEAN },
+@@ -2028,7 +2028,7 @@ const PolicyToPreferenceMapEntry kSimple
+ #endif // BUILDFLAG(ENABLE_EXTENSIONS)
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ { key::kEnforceLocalAnchorConstraintsEnabled,
+ prefs::kEnforceLocalAnchorConstraintsEnabled,
+ base::Value::Type::BOOLEAN },
+@@ -2086,7 +2086,7 @@ const PolicyToPreferenceMapEntry kSimple
+ ash::prefs::kUrlParameterToAutofillSAMLUsername,
+ base::Value::Type::STRING },
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ { key::kTabDiscardingExceptions,
+ performance_manager::user_tuning::prefs::kManagedTabDiscardingExceptions,
+ base::Value::Type::LIST },
+@@ -2115,7 +2115,7 @@ const PolicyToPreferenceMapEntry kSimple
+ prefs::kUiAutomationProviderEnabled,
+ base::Value::Type::BOOLEAN },
+ #endif // BUILDFLAG(IS_WIN)
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ { key::kOutOfProcessSystemDnsResolutionEnabled,
+ prefs::kOutOfProcessSystemDnsResolutionEnabled,
+ base::Value::Type::BOOLEAN },
+@@ -2155,7 +2155,7 @@ const PolicyToPreferenceMapEntry kSimple
+ base::Value::Type::INTEGER },
+ #endif
+ #if BUILDFLAG(ENABLE_EXTENSIONS)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ { key::kExtensionInstallTypeBlocklist,
+ extensions::pref_names::kExtensionInstallTypeBlocklist,
+ base::Value::Type::LIST},
+@@ -2176,7 +2176,7 @@ const PolicyToPreferenceMapEntry kSimple
+ optimization_guide::model_execution::prefs::kWallpaperSearchEnterprisePolicyAllowed,
+ base::Value::Type::INTEGER},
+ #endif
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ { key::kChromeForTestingAllowed,
+ prefs::kChromeForTestingAllowed,
+ base::Value::Type::BOOLEAN },
+@@ -2304,7 +2304,7 @@ std::unique_ptr<ConfigurationPolicyHandl
+ // Policies for all platforms - End
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_ASH)
++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ handlers->AddHandler(std::make_unique<IntRangePolicyHandler>(
+ key::kMemorySaverModeSavings,
+ performance_manager::user_tuning::prefs::kMemorySaverModeAggressiveness,
+@@ -2320,7 +2320,7 @@ std::unique_ptr<ConfigurationPolicyHandl
+ // BUILDFLAG(IS_CHROMEOS_ASH)
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ handlers->AddHandler(
+ std::make_unique<SiteSearchPolicyHandler>(chrome_schema));
+
+@@ -2526,7 +2526,7 @@ std::unique_ptr<ConfigurationPolicyHandl
+ #endif // BUILDFLAG(IS_ANDROID)
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ handlers->AddHandler(
+ std::make_unique<enterprise_idle::IdleTimeoutPolicyHandler>());
+ handlers->AddHandler(
+@@ -2584,7 +2584,7 @@ std::unique_ptr<ConfigurationPolicyHandl
+ key::kBrowsingDataLifetime, browsing_data::prefs::kBrowsingDataLifetime,
+ chrome_schema));
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ handlers->AddHandler(std::make_unique<LocalSyncPolicyHandler>());
+ handlers->AddHandler(std::make_unique<ThemeColorPolicyHandler>());
+ handlers->AddHandler(
+@@ -2698,7 +2698,7 @@ std::unique_ptr<ConfigurationPolicyHandl
+ std::vector<std::unique_ptr<ConfigurationPolicyHandler>>
+ signin_legacy_policies;
+ #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \
+- BUILDFLAG(IS_LINUX)
++ BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ signin_legacy_policies.push_back(std::make_unique<SimplePolicyHandler>(
+ key::kForceBrowserSignin, prefs::kForceBrowserSignin,
+ base::Value::Type::BOOLEAN));
+@@ -3055,7 +3055,7 @@ std::unique_ptr<ConfigurationPolicyHandl
+ #endif
+
+ #if BUILDFLAG(ENABLE_SPELLCHECK)
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ handlers->AddHandler(std::make_unique<SpellcheckLanguagePolicyHandler>());
+ handlers->AddHandler(
+ std::make_unique<SpellcheckLanguageBlocklistPolicyHandler>(
+@@ -3063,7 +3063,7 @@ std::unique_ptr<ConfigurationPolicyHandl
+ #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
+ #endif // BUILDFLAG(ENABLE_SPELLCHECK)
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ handlers->AddHandler(std::make_unique<SimplePolicyHandler>(
+ key::kAllowSystemNotifications, prefs::kAllowSystemNotifications,
+ base::Value::Type::BOOLEAN));
+@@ -3081,7 +3081,7 @@ std::unique_ptr<ConfigurationPolicyHandl
+ first_party_sets::FirstPartySetsOverridesPolicyHandler>(
+ key::kRelatedWebsiteSetsOverrides, chrome_schema)));
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ handlers->AddHandler(std::make_unique<PrivacySandboxPolicyHandler>());
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
+ // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
+@@ -3104,7 +3104,7 @@ std::unique_ptr<ConfigurationPolicyHandl
+ base::Value::Type::BOOLEAN)));
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_ASH)
++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ handlers->AddHandler(std::make_unique<BatterySaverPolicyHandler>());
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
+ // BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/chromium/patches/patch-chrome_browser_policy_device__management__service__configuration.cc b/chromium/patches/patch-chrome_browser_policy_device__management__service__configuration.cc
new file mode 100644
index 0000000000..7bf8287d14
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_policy_device__management__service__configuration.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/policy/device_management_service_configuration.cc.orig 2024-07-24 02:44:27.939939000 +0000
++++ chrome/browser/policy/device_management_service_configuration.cc
+@@ -24,7 +24,7 @@
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
+ ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \
+- !BUILDFLAG(IS_ANDROID))
++ !BUILDFLAG(IS_ANDROID)) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/connectors/common.h"
+ #include "chrome/browser/enterprise/connectors/connectors_service.h"
+ #endif
+@@ -102,7 +102,7 @@ DeviceManagementServiceConfiguration::Ge
+ content::BrowserContext* context) const {
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
+ ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \
+- !BUILDFLAG(IS_ANDROID))
++ !BUILDFLAG(IS_ANDROID)) || BUILDFLAG(IS_BSD)
+ auto* service =
+ enterprise_connectors::ConnectorsServiceFactory::GetForBrowserContext(
+ context);
diff --git a/chromium/patches/patch-chrome_browser_policy_policy__value__and__status__aggregator.cc b/chromium/patches/patch-chrome_browser_policy_policy__value__and__status__aggregator.cc
new file mode 100644
index 0000000000..89fafdaea0
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_policy_policy__value__and__status__aggregator.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/policy/policy_value_and_status_aggregator.cc.orig 2024-07-24 02:44:27.955940500 +0000
++++ chrome/browser/policy/policy_value_and_status_aggregator.cc
+@@ -53,7 +53,7 @@
+ #include "chrome/browser/policy/value_provider/extension_policies_value_provider.h"
+ #endif // BUILDFLAG(ENABLE_EXTENSIONS)
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "components/policy/core/common/cloud/profile_cloud_policy_manager.h"
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+
diff --git a/chromium/patches/patch-chrome_browser_prefs_browser__prefs.cc b/chromium/patches/patch-chrome_browser_prefs_browser__prefs.cc
index aaac2b0fc6..8b5fcba04b 100644
--- a/chromium/patches/patch-chrome_browser_prefs_browser__prefs.cc
+++ b/chromium/patches/patch-chrome_browser_prefs_browser__prefs.cc
@@ -1,22 +1,63 @@
$NetBSD$
---- chrome/browser/prefs/browser_prefs.cc.orig 2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/prefs/browser_prefs.cc.orig 2024-07-24 02:44:27.983943200 +0000
+++ chrome/browser/prefs/browser_prefs.cc
-@@ -385,7 +385,7 @@
+@@ -489,18 +489,18 @@
+ #endif
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_ASH)
++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ #include "components/device_signals/core/browser/pref_names.h" // nogncheck due to crbug.com/1125897
#endif
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
-- (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+ ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \
+ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
#include "chrome/browser/browser_switcher/browser_switcher_prefs.h"
#endif
-@@ -1100,7 +1100,7 @@ void RegisterProfilePrefs(user_prefs::Pr
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/signin/enterprise_signin_prefs.h"
#endif
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
-- (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+ ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
- browser_switcher::BrowserSwitcherPrefs::RegisterProfilePrefs(registry);
+@@ -535,7 +535,7 @@
+ #include "chrome/browser/sessions/session_service_log.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/color/system_theme.h"
+ #endif
+
+@@ -1953,7 +1953,7 @@ void RegisterLocalState(PrefRegistrySimp
+ true);
+ #endif // BUILDFLAG(ENABLE_PDF)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ registry->RegisterBooleanPref(prefs::kChromeForTestingAllowed, true);
+ #endif
+
+@@ -2309,12 +2309,12 @@ void RegisterProfilePrefs(user_prefs::Pr
#endif
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_ASH)
++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ device_signals::RegisterProfilePrefs(registry);
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
+ // BUILDFLAG(IS_CHROMEOS_ASH)
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ browser_switcher::BrowserSwitcherPrefs::RegisterProfilePrefs(registry);
+ enterprise_signin::RegisterProfilePrefs(registry);
+ #endif
diff --git a/chromium/patches/patch-chrome_browser_prefs_pref__service__incognito__allowlist.cc b/chromium/patches/patch-chrome_browser_prefs_pref__service__incognito__allowlist.cc
index 3eb052b487..08416cee07 100644
--- a/chromium/patches/patch-chrome_browser_prefs_pref__service__incognito__allowlist.cc
+++ b/chromium/patches/patch-chrome_browser_prefs_pref__service__incognito__allowlist.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- chrome/browser/prefs/pref_service_incognito_allowlist.cc.orig 2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/prefs/pref_service_incognito_allowlist.cc.orig 2024-07-24 02:44:27.987943600 +0000
+++ chrome/browser/prefs/pref_service_incognito_allowlist.cc
-@@ -135,7 +135,7 @@ const char* const kPersistentPrefNames[]
+@@ -186,7 +186,7 @@ const char* const kPersistentPrefNames[]
prefs::kShowFullscreenToolbar,
#endif
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
// Toggleing custom frames affects all open windows in the profile, hence
// should be written to the regular profile when changed in incognito mode.
prefs::kUseCustomChromeFrame,
diff --git a/chromium/patches/patch-chrome_browser_printing_print__backend__service__manager.cc b/chromium/patches/patch-chrome_browser_printing_print__backend__service__manager.cc
new file mode 100644
index 0000000000..5ccf82fd52
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_printing_print__backend__service__manager.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/printing/print_backend_service_manager.cc.orig 2024-07-24 02:44:27.999945000 +0000
++++ chrome/browser/printing/print_backend_service_manager.cc
+@@ -35,7 +35,7 @@
+ #include "printing/printing_context.h"
+ #include "printing/printing_features.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "content/public/common/content_switches.h"
+ #endif
+
+@@ -862,7 +862,7 @@ PrintBackendServiceManager::GetServiceFr
+ host.BindNewPipeAndPassReceiver(),
+ content::ServiceProcessHost::Options()
+ .WithDisplayName(IDS_UTILITY_PROCESS_PRINT_BACKEND_SERVICE_NAME)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ .WithExtraCommandLineSwitches({switches::kMessageLoopTypeUi})
+ #endif
+ .Pass());
+@@ -1039,7 +1039,7 @@ PrintBackendServiceManager::DetermineIdl
+ return kNoClientsRegisteredResetOnIdleTimeout;
+
+ case ClientType::kQueryWithUi:
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // No need to update if there were other query with UI clients.
+ if (HasQueryWithUiClientForRemoteId(remote_id)) {
+ return std::nullopt;
diff --git a/chromium/patches/patch-chrome_browser_printing_printer__query.cc b/chromium/patches/patch-chrome_browser_printing_printer__query.cc
new file mode 100644
index 0000000000..6f91be16a0
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_printing_printer__query.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/printing/printer_query.cc.orig 2024-07-24 02:44:28.007945500 +0000
++++ chrome/browser/printing/printer_query.cc
+@@ -341,7 +341,7 @@ void PrinterQuery::UpdatePrintSettings(b
+ crash_key = std::make_unique<crash_keys::ScopedPrinterInfo>(
+ printer_name, print_backend->GetPrinterDriverInfo(printer_name));
+
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(USE_CUPS)
++#if (BUILDFLAG(IS_BSD) || BUILDFLAG(IS_LINUX)) && BUILDFLAG(USE_CUPS)
+ PrinterBasicInfo basic_info;
+ if (print_backend->GetPrinterBasicInfo(printer_name, &basic_info) ==
+ mojom::ResultCode::kSuccess) {
diff --git a/chromium/patches/patch-chrome_browser_process__singleton__posix.cc b/chromium/patches/patch-chrome_browser_process__singleton__posix.cc
index 09c74265d4..5e2c15bc96 100644
--- a/chromium/patches/patch-chrome_browser_process__singleton__posix.cc
+++ b/chromium/patches/patch-chrome_browser_process__singleton__posix.cc
@@ -1,36 +1,26 @@
$NetBSD$
---- chrome/browser/process_singleton_posix.cc.orig 2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/process_singleton_posix.cc.orig 2024-07-24 02:44:28.043949100 +0000
+++ chrome/browser/process_singleton_posix.cc
-@@ -94,11 +94,11 @@
- #include "net/base/network_interfaces.h"
+@@ -97,7 +97,7 @@
#include "ui/base/l10n/l10n_util.h"
+ #include "ui/base/resource/scoped_startup_resource_bundle.h"
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "chrome/browser/ui/process_singleton_dialog_linux.h"
#endif
--#if defined(TOOLKIT_VIEWS) && defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if defined(TOOLKIT_VIEWS) && (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- #include "ui/views/linux_ui/linux_ui.h"
- #endif
-
-@@ -295,7 +295,7 @@ bool DisplayProfileInUseError(const base
+@@ -355,7 +355,7 @@ bool DisplayProfileInUseError(const base
if (g_disable_prompt)
return g_user_opted_unlock_in_use_profile;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- base::string16 relaunch_button_text = l10n_util::GetStringUTF16(
- IDS_PROFILE_IN_USE_LINUX_RELAUNCH);
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ std::u16string relaunch_button_text =
+ l10n_util::GetStringUTF16(IDS_PROFILE_IN_USE_LINUX_RELAUNCH);
return ShowProcessSingletonDialog(error, relaunch_button_text);
-@@ -871,7 +871,7 @@ ProcessSingleton::NotifyResult ProcessSi
- SendRemoteProcessInteractionResultHistogram(REMOTE_PROCESS_SHUTTING_DOWN);
- return PROCESS_NONE;
- } else if (strncmp(buf, kACKToken, base::size(kACKToken) - 1) == 0) {
--#if defined(TOOLKIT_VIEWS) && defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if defined(TOOLKIT_VIEWS) && (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- // Likely NULL in unit tests.
- views::LinuxUI* linux_ui = views::LinuxUI::instance();
- if (linux_ui)
diff --git a/chromium/patches/patch-chrome_browser_profiles_chrome__browser__main__extra__parts__profiles.cc b/chromium/patches/patch-chrome_browser_profiles_chrome__browser__main__extra__parts__profiles.cc
index cbde705b00..f417b92a37 100644
--- a/chromium/patches/patch-chrome_browser_profiles_chrome__browser__main__extra__parts__profiles.cc
+++ b/chromium/patches/patch-chrome_browser_profiles_chrome__browser__main__extra__parts__profiles.cc
@@ -1,13 +1,123 @@
$NetBSD$
---- chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc.orig 2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc.orig 2024-07-24 02:44:28.051950000 +0000
+++ chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
-@@ -310,7 +310,7 @@ void ChromeBrowserMainExtraPartsProfiles
- media_router::MediaRouterUIServiceFactory::GetInstance();
+@@ -335,7 +335,7 @@
+ #include "chromeos/constants/chromeos_features.h"
+ #endif
+
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/policy/messaging_layer/util/manual_test_heartbeat_event_factory.h"
+ #endif
+
+@@ -420,18 +420,18 @@
+ #endif
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_ASH)
++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/connectors/device_trust/device_trust_connector_service_factory.h"
+ #include "chrome/browser/enterprise/connectors/device_trust/device_trust_service_factory.h"
+ #include "chrome/browser/enterprise/signals/user_permission_service_factory.h"
+ #endif
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/idle/idle_service_factory.h"
+ #endif
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/browser_switcher/browser_switcher_service_factory.h"
+ #include "chrome/browser/enterprise/client_certificates/certificate_provisioning_service_factory.h"
+ #include "chrome/browser/enterprise/client_certificates/certificate_store_factory.h"
+@@ -671,7 +671,7 @@ void ChromeBrowserMainExtraPartsProfiles
+ DiceBoundSessionCookieServiceFactory::GetInstance();
+ #endif // BUILDFLAG(ENABLE_DICE_SUPPORT)
+ #endif // BUILDFLAG(ENABLE_BOUND_SESSION_CREDENTIALS)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ browser_switcher::BrowserSwitcherServiceFactory::GetInstance();
+ #endif
+ browser_sync::UserEventServiceFactory::GetInstance();
+@@ -799,32 +799,32 @@ void ChromeBrowserMainExtraPartsProfiles
+ enterprise_connectors::ConnectorsServiceFactory::GetInstance();
+ #endif
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_ASH)
++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ enterprise_connectors::DeviceTrustConnectorServiceFactory::GetInstance();
+ enterprise_connectors::DeviceTrustServiceFactory::GetInstance();
+ #endif
+ #if BUILDFLAG(ENTERPRISE_CONTENT_ANALYSIS)
+ enterprise_connectors::ExtensionInstallEventRouterFactory::GetInstance();
+ #endif
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ enterprise_connectors::LocalBinaryUploadServiceFactory::GetInstance();
+ #endif
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ enterprise_idle::IdleServiceFactory::GetInstance();
#endif
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
-- (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+ ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
+ #if !BUILDFLAG(IS_CHROMEOS_ASH)
+ enterprise_reporting::CloudProfileReportingServiceFactory::GetInstance();
+ #endif
+ enterprise_reporting::LegacyTechServiceFactory::GetInstance();
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ enterprise_signals::SignalsAggregatorFactory::GetInstance();
+ #endif
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_ASH)
++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ enterprise_signals::UserPermissionServiceFactory::GetInstance();
+ #endif
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ enterprise_signin::EnterpriseSigninServiceFactory::GetInstance();
+ #endif
+ #if BUILDFLAG(ENABLE_SESSION_SERVICE)
+@@ -952,7 +952,7 @@ void ChromeBrowserMainExtraPartsProfiles
+ #endif
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \
+ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
metrics::DesktopProfileSessionDurationsServiceFactory::GetInstance();
#endif
- ModelTypeStoreServiceFactory::GetInstance();
+@@ -1058,7 +1058,7 @@ void ChromeBrowserMainExtraPartsProfiles
+ #if BUILDFLAG(IS_CHROMEOS)
+ policy::PolicyCertServiceFactory::GetInstance();
+ #endif
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ policy::ProfileTokenPolicyWebSigninServiceFactory::GetInstance();
+ policy::UserPolicyOidcSigninServiceFactory::GetInstance();
+ #endif
+@@ -1101,7 +1101,7 @@ void ChromeBrowserMainExtraPartsProfiles
+ #if !BUILDFLAG(IS_CHROMEOS_ASH) && !BUILDFLAG(IS_ANDROID)
+ ProfileStatisticsFactory::GetInstance();
+ #endif
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ ProfileTokenWebSigninInterceptorFactory::GetInstance();
+ OidcAuthenticationSigninInterceptorFactory::GetInstance();
+ #endif
+@@ -1120,7 +1120,7 @@ void ChromeBrowserMainExtraPartsProfiles
+ #endif
+ ReduceAcceptLanguageFactory::GetInstance();
+ RendererUpdaterFactory::GetInstance();
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ reporting::ManualTestHeartbeatEventFactory::GetInstance();
+ #endif
+ #if BUILDFLAG(IS_CHROMEOS_LACROS)
diff --git a/chromium/patches/patch-chrome_browser_profiles_profile__attributes__entry.cc b/chromium/patches/patch-chrome_browser_profiles_profile__attributes__entry.cc
deleted file mode 100644
index 4d751208da..0000000000
--- a/chromium/patches/patch-chrome_browser_profiles_profile__attributes__entry.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/profiles/profile_attributes_entry.cc.orig 2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/profiles/profile_attributes_entry.cc
-@@ -137,7 +137,7 @@ void ProfileAttributesEntry::Initialize(
- if (is_force_signin_enabled_) {
- if (!IsAuthenticated())
- is_force_signin_profile_locked_ = true;
--#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_WIN)
-+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_WIN) || defined(OS_BSD)
- } else if (IsSigninRequired()) {
- // Profiles that require signin in the absence of an enterprise policy are
- // left-overs from legacy supervised users. Just unlock them, so users can
diff --git a/chromium/patches/patch-chrome_browser_profiles_profile__impl.cc b/chromium/patches/patch-chrome_browser_profiles_profile__impl.cc
new file mode 100644
index 0000000000..b9a00cf5b3
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_profiles_profile__impl.cc
@@ -0,0 +1,46 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/profiles/profile_impl.cc.orig 2024-07-24 02:44:28.059950600 +0000
++++ chrome/browser/profiles/profile_impl.cc
+@@ -265,6 +265,10 @@
+ #include "chrome/browser/spellchecker/spellcheck_service.h"
+ #endif
+
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
++#endif
++
+ using bookmarks::BookmarkModel;
+ using content::BrowserThread;
+ using content::DownloadManagerDelegate;
+@@ -600,7 +604,7 @@ void ProfileImpl::LoadPrefsForNormalStar
+ #else
+ {
+ #endif // BUILDFLAG(IS_CHROMEOS_LACROS)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ ProfileManager* profile_manager = g_browser_process->profile_manager();
+ ProfileAttributesEntry* entry =
+ profile_manager->GetProfileAttributesStorage()
+@@ -901,7 +905,17 @@ void ProfileImpl::DoFinalInit(CreateMode
+ }
+
+ base::FilePath ProfileImpl::last_selected_directory() {
++#if BUILDFLAG(IS_OPENBSD)
++ // If unveil(2) is used, force the file dialog directory to something we
++ // know is available.
++ auto* sandbox = sandbox::policy::SandboxLinux::GetInstance();
++ if (sandbox->unveil_initialized())
++ return GetPrefs()->GetFilePath(prefs::kDownloadDefaultDirectory);
++ else
++ return GetPrefs()->GetFilePath(prefs::kSelectFileLastDirectory);
++#else
+ return GetPrefs()->GetFilePath(prefs::kSelectFileLastDirectory);
++#endif
+ }
+
+ void ProfileImpl::set_last_selected_directory(const base::FilePath& path) {
diff --git a/chromium/patches/patch-chrome_browser_profiles_profiles__state.cc b/chromium/patches/patch-chrome_browser_profiles_profiles__state.cc
new file mode 100644
index 0000000000..ee02b5c285
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_profiles_profiles__state.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/profiles/profiles_state.cc.orig 2024-07-24 02:44:28.067951400 +0000
++++ chrome/browser/profiles/profiles_state.cc
+@@ -196,7 +196,7 @@ bool IsGuestModeRequested(const base::Co
+ PrefService* local_state,
+ bool show_warning) {
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || \
+- BUILDFLAG(IS_MAC)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ DCHECK(local_state);
+
+ // Check if guest mode enforcement commandline switch or policy are provided.
+@@ -243,7 +243,7 @@ bool IsGuestModeEnabled() {
+ return false;
+ }
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ // If there are any supervised profiles, disable guest mode.
+ if (base::FeatureList::IsEnabled(
+ supervised_user::kHideGuestModeForSupervisedUsers) &&
+@@ -259,7 +259,7 @@ bool IsGuestModeEnabled() {
+ }
+
+ bool IsGuestModeEnabled(const Profile& profile) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ if (base::FeatureList::IsEnabled(
+ supervised_user::kHideGuestModeForSupervisedUsers)) {
+ ProfileAttributesEntry* profile_attributes =
diff --git a/chromium/patches/patch-chrome_browser_renderer__context__menu_render__view__context__menu.cc b/chromium/patches/patch-chrome_browser_renderer__context__menu_render__view__context__menu.cc
deleted file mode 100644
index 44fffda7ea..0000000000
--- a/chromium/patches/patch-chrome_browser_renderer__context__menu_render__view__context__menu.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- chrome/browser/renderer_context_menu/render_view_context_menu.cc.orig 2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/renderer_context_menu/render_view_context_menu.cc
-@@ -1655,7 +1655,7 @@ void RenderViewContextMenu::AppendEditab
- // 'Undo' and 'Redo' for text input with no suggestions and no text selected.
- // We make an exception for OS X as context clicking will select the closest
- // word. In this case both items are always shown.
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_BSD)
- menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_UNDO,
- IDS_CONTENT_CONTEXT_UNDO);
- menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_REDO,
-@@ -1697,7 +1697,7 @@ void RenderViewContextMenu::AppendLangua
- if (!use_spelling)
- return;
-
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_BSD)
- menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_LANGUAGE_SETTINGS,
- IDS_CONTENT_CONTEXT_LANGUAGE_SETTINGS);
- #else
-@@ -2038,7 +2038,7 @@ bool RenderViewContextMenu::IsCommandIdE
- case IDC_CHECK_SPELLING_WHILE_TYPING:
- return prefs->GetBoolean(spellcheck::prefs::kSpellCheckEnable);
-
--#if !defined(OS_MACOSX) && defined(OS_POSIX)
-+#if !defined(OS_MACOSX) && defined(OS_POSIX) && !defined(OS_BSD)
- // TODO(suzhe): this should not be enabled for password fields.
- case IDC_INPUT_METHODS_MENU:
- return true;
diff --git a/chromium/patches/patch-chrome_browser_renderer__preferences__util.cc b/chromium/patches/patch-chrome_browser_renderer__preferences__util.cc
index 73bb1426f9..765fe267b3 100644
--- a/chromium/patches/patch-chrome_browser_renderer__preferences__util.cc
+++ b/chromium/patches/patch-chrome_browser_renderer__preferences__util.cc
@@ -1,31 +1,35 @@
$NetBSD$
---- chrome/browser/renderer_preferences_util.cc.orig 2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/renderer_preferences_util.cc.orig 2024-07-24 02:44:28.123957000 +0000
+++ chrome/browser/renderer_preferences_util.cc
-@@ -31,7 +31,7 @@
- #include "ui/base/cocoa/defaults_utils.h"
+@@ -39,7 +39,7 @@
+ #include "ui/views/controls/textfield/textfield.h"
#endif
--#if defined(USE_AURA) && defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if defined(USE_AURA) && (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if defined(USE_AURA) && BUILDFLAG(IS_LINUX)
++#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD))
#include "chrome/browser/themes/theme_service.h"
#include "chrome/browser/themes/theme_service_factory.h"
- #include "ui/views/linux_ui/linux_ui.h"
-@@ -146,7 +146,7 @@ void UpdateFromSystemSettings(blink::moj
- prefs->caret_blink_interval = interval;
+ #include "ui/linux/linux_ui.h"
+@@ -154,7 +154,7 @@ void UpdateFromSystemSettings(blink::Ren
+ prefs->caret_blink_interval = views::Textfield::GetCaretBlinkInterval();
#endif
--#if defined(USE_AURA) && defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if defined(USE_AURA) && (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- views::LinuxUI* linux_ui = views::LinuxUI::instance();
- if (linux_ui) {
+-#if defined(USE_AURA) && BUILDFLAG(IS_LINUX)
++#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD))
+ auto* linux_ui_theme = ui::LinuxUiTheme::GetForProfile(profile);
+ if (linux_ui_theme) {
if (ThemeServiceFactory::GetForProfile(profile)->UsingSystemTheme()) {
-@@ -165,7 +165,7 @@ void UpdateFromSystemSettings(blink::moj
- }
+@@ -177,7 +177,7 @@ void UpdateFromSystemSettings(blink::Ren
#endif
--#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_WIN)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_WIN) || defined(OS_BSD)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+- BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
content::UpdateFontRendererPreferencesFromSystemSettings(prefs);
#endif
diff --git a/chromium/patches/patch-chrome_browser_resources_settings_appearance__page_appearance__browser__proxy.js b/chromium/patches/patch-chrome_browser_resources_settings_appearance__page_appearance__browser__proxy.js
deleted file mode 100644
index 46a99b8754..0000000000
--- a/chromium/patches/patch-chrome_browser_resources_settings_appearance__page_appearance__browser__proxy.js
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- chrome/browser/resources/settings/appearance_page/appearance_browser_proxy.js.orig 2020-07-08 21:40:35.000000000 +0000
-+++ chrome/browser/resources/settings/appearance_page/appearance_browser_proxy.js
-@@ -23,7 +23,7 @@ export class AppearanceBrowserProxy {
-
- useDefaultTheme() {}
-
-- // <if expr="is_linux and not chromeos">
-+ // <if expr="is_posix and not chromeos">
- useSystemTheme() {}
-
- // </if>
-@@ -63,7 +63,7 @@ export class AppearanceBrowserProxyImpl
- chrome.send('useDefaultTheme');
- }
-
-- // <if expr="is_linux and not chromeos">
-+ // <if expr="is_posix and not chromeos">
- /** @override */
- useSystemTheme() {
- chrome.send('useSystemTheme');
diff --git a/chromium/patches/patch-chrome_browser_resources_settings_appearance__page_appearance__page.html b/chromium/patches/patch-chrome_browser_resources_settings_appearance__page_appearance__page.html
deleted file mode 100644
index c3c9514c55..0000000000
--- a/chromium/patches/patch-chrome_browser_resources_settings_appearance__page_appearance__page.html
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- chrome/browser/resources/settings/appearance_page/appearance_page.html.orig 2020-07-08 21:40:35.000000000 +0000
-+++ chrome/browser/resources/settings/appearance_page/appearance_page.html
-@@ -27,7 +27,7 @@
- <cr-link-row class="first" hidden="[[!pageVisibility.setTheme]]"
- label="$i18n{themes}" sub-label="[[themeSublabel_]]"
- on-click="openThemeUrl_" external></cr-link-row>
--<if expr="not is_linux or chromeos">
-+<if expr="not is_posix or chromeos">
- <template is="dom-if" if="[[prefs.extensions.theme.id.value]]">
- <div class="separator"></div>
- <cr-button id="useDefault" on-click="onUseDefaultTap_">
-@@ -35,7 +35,7 @@
- </cr-button>
- </template>
- </if>
--<if expr="is_linux and not chromeos">
-+<if expr="is_posix and not chromeos">
- <div class="settings-row continuation"
- hidden="[[!showThemesSecondary_(
- prefs.extensions.theme.id.value, useSystemTheme_)]]"
-@@ -99,7 +99,7 @@
- pref="{{prefs.bookmark_bar.show_on_all_tabs}}"
- label="$i18n{showBookmarksBar}">
- </settings-toggle-button>
--<if expr="is_linux and not chromeos">
-+<if expr="is_posix and not chromeos">
- <div class="hr" hidden="[[!pageVisibility.bookmarksBar]]"></div>
- <settings-toggle-button
- pref="{{prefs.browser.custom_chrome_frame}}"
diff --git a/chromium/patches/patch-chrome_browser_resources_settings_appearance__page_appearance__page.js b/chromium/patches/patch-chrome_browser_resources_settings_appearance__page_appearance__page.js
deleted file mode 100644
index 509c7464c5..0000000000
--- a/chromium/patches/patch-chrome_browser_resources_settings_appearance__page_appearance__page.js
+++ /dev/null
@@ -1,35 +0,0 @@
-$NetBSD$
-
---- chrome/browser/resources/settings/appearance_page/appearance_page.js.orig 2020-07-08 21:40:35.000000000 +0000
-+++ chrome/browser/resources/settings/appearance_page/appearance_page.js
-@@ -137,7 +137,7 @@ Polymer({
- 'defaultFontSizeChanged_(prefs.webkit.webprefs.default_font_size.value)',
- 'themeChanged_(prefs.extensions.theme.id.value, useSystemTheme_)',
-
-- // <if expr="is_linux and not chromeos">
-+ // <if expr="is_posix and not chromeos">
- // NOTE: this pref only exists on Linux.
- 'useSystemThemePrefChanged_(prefs.extensions.theme.use_system.value)',
- // </if>
-@@ -222,7 +222,7 @@ Polymer({
- this.appearanceBrowserProxy_.useDefaultTheme();
- },
-
-- // <if expr="is_linux and not chromeos">
-+ // <if expr="is_posix and not chromeos">
- /**
- * @param {boolean} useSystemTheme
- * @private
-@@ -299,10 +299,10 @@ Polymer({
- }
-
- let i18nId;
-- // <if expr="is_linux and not chromeos">
-+ // <if expr="is_posix and not chromeos">
- i18nId = useSystemTheme ? 'systemTheme' : 'classicTheme';
- // </if>
-- // <if expr="not is_linux or chromeos">
-+ // <if expr="not is_posix or chromeos">
- i18nId = 'chooseFromWebStore';
- // </if>
- this.themeSublabel_ = this.i18n(i18nId);
diff --git a/chromium/patches/patch-chrome_browser_resources_settings_autofill__page_passwords__shared.css b/chromium/patches/patch-chrome_browser_resources_settings_autofill__page_passwords__shared.css
new file mode 100644
index 0000000000..37542353da
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_resources_settings_autofill__page_passwords__shared.css
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/resources/settings/autofill_page/passwords_shared.css.orig 2024-07-24 02:44:28.628005700 +0000
++++ chrome/browser/resources/settings/autofill_page/passwords_shared.css
+@@ -100,7 +100,7 @@ cr-input.password-input::part(input),
+ * necessary to prevent Chrome from using the operating system's font
+ * instead of the Material Design font.
+ * TODO(dbeam): why not font: inherit? */
+-<if expr="is_linux or is_chromeos">
++<if expr="is_posix or is_chromeos">
+ font-family: 'DejaVu Sans Mono', monospace;
+ </if>
+ <if expr="is_win">
diff --git a/chromium/patches/patch-chrome_browser_resources_signin_signin__shared.css b/chromium/patches/patch-chrome_browser_resources_signin_signin__shared.css
new file mode 100644
index 0000000000..cac84a220c
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_resources_signin_signin__shared.css
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/resources/signin/signin_shared.css.orig 2024-07-24 02:44:28.692011800 +0000
++++ chrome/browser/resources/signin/signin_shared.css
+@@ -54,7 +54,7 @@ a {
+ border-radius: var(--scrollbar-width);
+ }
+
+-<if expr="is_macosx or is_linux or is_chromeos">
++<if expr="is_macosx or is_posix or is_chromeos">
+ .action-container {
+ flex-flow: row-reverse;
+ justify-content: flex-start;
diff --git a/chromium/patches/patch-chrome_browser_safe__browsing_cloud__content__scanning_binary__upload__service.cc b/chromium/patches/patch-chrome_browser_safe__browsing_cloud__content__scanning_binary__upload__service.cc
new file mode 100644
index 0000000000..df5b6c478f
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_safe__browsing_cloud__content__scanning_binary__upload__service.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/safe_browsing/cloud_content_scanning/binary_upload_service.cc.orig 2024-07-24 02:44:28.728015400 +0000
++++ chrome/browser/safe_browsing/cloud_content_scanning/binary_upload_service.cc
+@@ -18,7 +18,7 @@
+ #include "net/base/url_util.h"
+ #include "third_party/abseil-cpp/absl/types/variant.h"
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/connectors/analysis/local_binary_upload_service_factory.h"
+ #endif
+
+@@ -434,7 +434,7 @@ BinaryUploadService* BinaryUploadService
+ Profile* profile,
+ const enterprise_connectors::AnalysisSettings& settings) {
+ // Local content analysis is supported only on desktop platforms.
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (settings.cloud_or_local_settings.is_cloud_analysis()) {
+ return CloudBinaryUploadServiceFactory::GetForProfile(profile);
+ } else {
diff --git a/chromium/patches/patch-chrome_browser_safe__browsing_cloud__content__scanning_deep__scanning__utils.cc b/chromium/patches/patch-chrome_browser_safe__browsing_cloud__content__scanning_deep__scanning__utils.cc
new file mode 100644
index 0000000000..67147b026e
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_safe__browsing_cloud__content__scanning_deep__scanning__utils.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_utils.cc.orig 2024-07-24 02:44:28.728015400 +0000
++++ chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_utils.cc
+@@ -16,7 +16,7 @@
+ #include "components/crash/core/common/crash_key.h"
+ #include "components/signin/public/identity_manager/identity_manager.h"
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/signin/enterprise_signin_prefs.h"
+ #include "components/prefs/pref_service.h"
+ #endif
+@@ -416,7 +416,7 @@ std::string GetProfileEmail(Profile* pro
+ std::string email =
+ GetProfileEmail(IdentityManagerFactory::GetForProfile(profile));
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (email.empty()) {
+ email = profile->GetPrefs()->GetString(
+ enterprise_signin::prefs::kProfileUserEmail);
diff --git a/chromium/patches/patch-chrome_browser_safe__browsing_incident__reporting_incident__reporting__service.cc b/chromium/patches/patch-chrome_browser_safe__browsing_incident__reporting_incident__reporting__service.cc
index 6c5dd41c2b..0f8db645fe 100644
--- a/chromium/patches/patch-chrome_browser_safe__browsing_incident__reporting_incident__reporting__service.cc
+++ b/chromium/patches/patch-chrome_browser_safe__browsing_incident__reporting_incident__reporting__service.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc.orig 2020-07-08 21:40:35.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc.orig 2024-07-24 02:44:28.748017300 +0000
+++ chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc
-@@ -672,7 +672,7 @@ void IncidentReportingService::OnEnviron
- environment_collection_pending_ = false;
+@@ -694,7 +694,7 @@ void IncidentReportingService::OnEnviron
// Process::Current().CreationTime() is missing on some platforms.
--#if defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
base::TimeDelta uptime =
first_incident_time_ - base::Process::Current().CreationTime();
environment_data->mutable_process()->set_uptime_msec(uptime.InMilliseconds());
diff --git a/chromium/patches/patch-chrome_browser_screen__ai_screen__ai__install__state.cc b/chromium/patches/patch-chrome_browser_screen__ai_screen__ai__install__state.cc
new file mode 100644
index 0000000000..ea3271f368
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_screen__ai_screen__ai__install__state.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/screen_ai/screen_ai_install_state.cc.orig 2024-07-24 02:44:28.772019600 +0000
++++ chrome/browser/screen_ai/screen_ai_install_state.cc
+@@ -17,7 +17,7 @@
+ #include "services/screen_ai/public/cpp/utilities.h"
+ #include "ui/accessibility/accessibility_features.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "base/cpu.h"
+ #include "base/files/file_util.h"
+ #endif
+@@ -27,7 +27,7 @@ const int kScreenAICleanUpDelayInDays =
+ const char kMinExpectedVersion[] = "124.2";
+
+ bool IsDeviceCompatible() {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #if defined(ARCH_CPU_X86_FAMILY)
+ // Check if the CPU has the required instruction set to run the Screen AI
+ // library.
diff --git a/chromium/patches/patch-chrome_browser_screen__ai_screen__ai__service__router.cc b/chromium/patches/patch-chrome_browser_screen__ai_screen__ai__service__router.cc
new file mode 100644
index 0000000000..5a35fd21dc
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_screen__ai_screen__ai__service__router.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/screen_ai/screen_ai_service_router.cc.orig 2024-07-24 02:44:28.772019600 +0000
++++ chrome/browser/screen_ai/screen_ai_service_router.cc
+@@ -284,7 +284,7 @@ void ScreenAIServiceRouter::LaunchIfNotR
+ base::FilePath binary_path = state_instance->get_component_binary_path();
+ #if BUILDFLAG(IS_WIN)
+ std::vector<base::FilePath> preload_libraries = {binary_path};
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ std::vector<std::string> extra_switches = {
+ base::StringPrintf("--%s=%s", screen_ai::GetBinaryPathSwitch(),
+ binary_path.MaybeAsASCII().c_str())};
+@@ -298,7 +298,7 @@ void ScreenAIServiceRouter::LaunchIfNotR
+ .WithPreloadedLibraries(
+ preload_libraries,
+ content::ServiceProcessHostPreloadLibraries::GetPassKey())
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ .WithExtraCommandLineSwitches(extra_switches)
+ #endif // BUILDFLAG(IS_WIN)
+ .Pass());
diff --git a/chromium/patches/patch-chrome_browser_search_search__suggest_search__suggest__service.cc b/chromium/patches/patch-chrome_browser_search_search__suggest_search__suggest__service.cc
deleted file mode 100644
index 70803d2883..0000000000
--- a/chromium/patches/patch-chrome_browser_search_search__suggest_search__suggest__service.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/search/search_suggest/search_suggest_service.cc.orig 2020-07-08 21:40:35.000000000 +0000
-+++ chrome/browser/search/search_suggest/search_suggest_service.cc
-@@ -21,7 +21,7 @@
- #include "components/prefs/scoped_user_pref_update.h"
- #include "components/signin/public/identity_manager/accounts_in_cookie_jar_info.h"
- #include "components/signin/public/identity_manager/identity_manager.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
-
- namespace {
-
diff --git a/chromium/patches/patch-chrome_browser_send__tab__to__self_receiving__ui__handler__registry.cc b/chromium/patches/patch-chrome_browser_send__tab__to__self_receiving__ui__handler__registry.cc
index 922d12019b..e86a5128cc 100644
--- a/chromium/patches/patch-chrome_browser_send__tab__to__self_receiving__ui__handler__registry.cc
+++ b/chromium/patches/patch-chrome_browser_send__tab__to__self_receiving__ui__handler__registry.cc
@@ -1,22 +1,26 @@
$NetBSD$
---- chrome/browser/send_tab_to_self/receiving_ui_handler_registry.cc.orig 2020-07-08 21:40:35.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/send_tab_to_self/receiving_ui_handler_registry.cc.orig 2024-07-24 02:44:28.800022400 +0000
+++ chrome/browser/send_tab_to_self/receiving_ui_handler_registry.cc
-@@ -11,7 +11,7 @@
- #include "chrome/browser/profiles/profile.h"
- #include "chrome/browser/send_tab_to_self/receiving_ui_handler.h"
+@@ -15,7 +15,7 @@
+ #include "components/send_tab_to_self/features.h"
--#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_BSD)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
#include "chrome/browser/send_tab_to_self/desktop_notification_handler.h"
+ #include "chrome/browser/ui/send_tab_to_self/send_tab_to_self_toolbar_icon_controller.h"
#endif
-
-@@ -32,7 +32,7 @@ ReceivingUiHandlerRegistry* ReceivingUiH
- // Instantiates all the handlers relevant to this platform.
- void ReceivingUiHandlerRegistry::InstantiatePlatformSpecificHandlers(
+@@ -47,7 +47,7 @@ SendTabToSelfToolbarIconController*
+ ReceivingUiHandlerRegistry::GetToolbarButtonControllerForProfile(
Profile* profile) {
--#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_BSD)
- applicable_handlers_.push_back(
- std::make_unique<send_tab_to_self::DesktopNotificationHandler>(profile));
- #elif defined(OS_ANDROID)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ for (const std::unique_ptr<ReceivingUiHandler>& handler :
+ applicable_handlers_) {
+ auto* button_controller =
diff --git a/chromium/patches/patch-chrome_browser_send__tab__to__self_send__tab__to__self__client__service.cc b/chromium/patches/patch-chrome_browser_send__tab__to__self_send__tab__to__self__client__service.cc
index c2be444b94..2ecea0d356 100644
--- a/chromium/patches/patch-chrome_browser_send__tab__to__self_send__tab__to__self__client__service.cc
+++ b/chromium/patches/patch-chrome_browser_send__tab__to__self_send__tab__to__self__client__service.cc
@@ -1,13 +1,26 @@
$NetBSD$
---- chrome/browser/send_tab_to_self/send_tab_to_self_client_service.cc.orig 2020-07-08 21:40:35.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/send_tab_to_self/send_tab_to_self_client_service.cc.orig 2024-07-24 02:44:28.800022400 +0000
+++ chrome/browser/send_tab_to_self/send_tab_to_self_client_service.cc
-@@ -40,7 +40,7 @@ void SendTabToSelfClientService::SendTab
- void SendTabToSelfClientService::EntriesAddedRemotely(
+@@ -16,7 +16,7 @@
+ #include "components/send_tab_to_self/send_tab_to_self_model.h"
+
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/send_tab_to_self/send_tab_to_self_toolbar_icon_controller.h"
+ #endif
+
+@@ -50,7 +50,7 @@ void SendTabToSelfClientService::Entries
const std::vector<const SendTabToSelfEntry*>& new_entries) {
for (const std::unique_ptr<ReceivingUiHandler>& handler : GetHandlers()) {
--#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_BSD)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
// Only respond to notifications corresponding to this service's profile
// for these OSes; mobile does not have a Profile.
// Cast note: on desktop, handlers are guaranteed to be the derived class
diff --git a/chromium/patches/patch-chrome_browser_sessions_session__restore.cc b/chromium/patches/patch-chrome_browser_sessions_session__restore.cc
new file mode 100644
index 0000000000..d62a4d4030
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_sessions_session__restore.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/sessions/session_restore.cc.orig 2024-07-24 02:44:28.808023200 +0000
++++ chrome/browser/sessions/session_restore.cc
+@@ -99,7 +99,7 @@
+ #include "chrome/browser/web_applications/web_app_registrar.h"
+ #endif // BUILDFLAG(IS_CHROMEOS)
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/webui/whats_new/whats_new_fetcher.h"
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+
+@@ -1040,7 +1040,7 @@ class SessionRestoreImpl : public Browse
+ bool is_first_tab = true;
+ for (const auto& startup_tab : startup_tabs) {
+ const GURL& url = startup_tab.url;
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (url == whats_new::GetWebUIStartupURL()) {
+ whats_new::StartWhatsNewFetch(browser);
+ continue;
diff --git a/chromium/patches/patch-chrome_browser_sharing_shared__clipboard_feature__flags.cc b/chromium/patches/patch-chrome_browser_sharing_shared__clipboard_feature__flags.cc
deleted file mode 100644
index 244b4140c5..0000000000
--- a/chromium/patches/patch-chrome_browser_sharing_shared__clipboard_feature__flags.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/sharing/shared_clipboard/feature_flags.cc.orig 2020-07-08 21:40:35.000000000 +0000
-+++ chrome/browser/sharing/shared_clipboard/feature_flags.cc
-@@ -8,7 +8,7 @@ const base::Feature kSharedClipboardUI{"
- base::FEATURE_DISABLED_BY_DEFAULT};
-
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
-- defined(OS_CHROMEOS)
-+ defined(OS_CHROMEOS) || defined(OS_BSD)
- const base::Feature kRemoteCopyReceiver{"RemoteCopyReceiver",
- base::FEATURE_ENABLED_BY_DEFAULT};
-
diff --git a/chromium/patches/patch-chrome_browser_sharing_shared__clipboard_feature__flags.h b/chromium/patches/patch-chrome_browser_sharing_shared__clipboard_feature__flags.h
deleted file mode 100644
index b87fc27a2b..0000000000
--- a/chromium/patches/patch-chrome_browser_sharing_shared__clipboard_feature__flags.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/sharing/shared_clipboard/feature_flags.h.orig 2020-07-08 21:40:35.000000000 +0000
-+++ chrome/browser/sharing/shared_clipboard/feature_flags.h
-@@ -15,7 +15,7 @@
- extern const base::Feature kSharedClipboardUI;
-
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
-- defined(OS_CHROMEOS)
-+ defined(OS_CHROMEOS) || defined(OS_BSD)
- // Feature to enable handling remote copy messages.
- extern const base::Feature kRemoteCopyReceiver;
-
diff --git a/chromium/patches/patch-chrome_browser_sharing_sharing__device__registration.cc b/chromium/patches/patch-chrome_browser_sharing_sharing__device__registration.cc
index bc0586c9f0..403c45f514 100644
--- a/chromium/patches/patch-chrome_browser_sharing_sharing__device__registration.cc
+++ b/chromium/patches/patch-chrome_browser_sharing_sharing__device__registration.cc
@@ -1,22 +1,17 @@
$NetBSD$
---- chrome/browser/sharing/sharing_device_registration.cc.orig 2020-07-08 21:40:35.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/sharing/sharing_device_registration.cc.orig 2024-07-24 02:44:28.840026100 +0000
+++ chrome/browser/sharing/sharing_device_registration.cc
-@@ -329,7 +329,7 @@ bool SharingDeviceRegistration::IsSmsFet
+@@ -331,7 +331,7 @@ bool SharingDeviceRegistration::IsSmsFet
bool SharingDeviceRegistration::IsRemoteCopySupported() const {
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
-- defined(OS_CHROMEOS)
-+ defined(OS_CHROMEOS) || defined(OS_BSD)
- return base::FeatureList::IsEnabled(kRemoteCopyReceiver);
- #else
- return false;
-@@ -338,7 +338,7 @@ bool SharingDeviceRegistration::IsRemote
-
- bool SharingDeviceRegistration::IsPeerConnectionSupported() const {
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
-- defined(OS_CHROMEOS)
-+ defined(OS_CHROMEOS) || defined(OS_BSD)
- return base::FeatureList::IsEnabled(kSharingPeerConnectionReceiver);
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ return true;
#else
return false;
diff --git a/chromium/patches/patch-chrome_browser_sharing_sharing__handler__registry__impl.cc b/chromium/patches/patch-chrome_browser_sharing_sharing__handler__registry__impl.cc
index 25930b3e1e..ca9e83d1e5 100644
--- a/chromium/patches/patch-chrome_browser_sharing_sharing__handler__registry__impl.cc
+++ b/chromium/patches/patch-chrome_browser_sharing_sharing__handler__registry__impl.cc
@@ -1,22 +1,26 @@
$NetBSD$
---- chrome/browser/sharing/sharing_handler_registry_impl.cc.orig 2020-07-08 21:40:35.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/sharing/sharing_handler_registry_impl.cc.orig 2024-07-24 02:44:28.844026600 +0000
+++ chrome/browser/sharing/sharing_handler_registry_impl.cc
-@@ -25,7 +25,7 @@
- #endif // defined(OS_ANDROID)
+@@ -22,7 +22,7 @@
+ #endif // BUILDFLAG(IS_ANDROID)
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
-- defined(OS_CHROMEOS)
-+ defined(OS_CHROMEOS) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "chrome/browser/sharing/shared_clipboard/remote_copy_message_handler.h"
- #endif // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
- // defined(OS_CHROMEOS)
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || (BUILDFLAG(IS_LINUX) ||
+ // BUILDFLAG(IS_CHROMEOS_LACROS)) BUILDFLAG(IS_CHROMEOS)
@@ -74,7 +74,7 @@ SharingHandlerRegistryImpl::SharingHandl
- }
+ #endif // !BUILDFLAG(IS_ANDROID)
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
-- defined(OS_CHROMEOS)
-+ defined(OS_CHROMEOS) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
if (sharing_device_registration->IsRemoteCopySupported()) {
AddSharingHandler(
std::make_unique<RemoteCopyMessageHandler>(profile),
diff --git a/chromium/patches/patch-chrome_browser_sharing_sharing__service.cc b/chromium/patches/patch-chrome_browser_sharing_sharing__service.cc
deleted file mode 100644
index 92f81c8df8..0000000000
--- a/chromium/patches/patch-chrome_browser_sharing_sharing__service.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/sharing/sharing_service.cc.orig 2020-07-08 21:40:35.000000000 +0000
-+++ chrome/browser/sharing/sharing_service.cc
-@@ -31,7 +31,7 @@ SharingMessageSender::DelegateType GetSe
- const syncer::DeviceInfo& device,
- const chrome_browser_sharing::SharingMessage& message) {
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
-- defined(OS_CHROMEOS)
-+ defined(OS_CHROMEOS) || defined(OS_BSD)
- // Messages other than SharedClipboard are always sent via FCM.
- if (message.payload_case() !=
- chrome_browser_sharing::SharingMessage::kSharedClipboardMessage) {
diff --git a/chromium/patches/patch-chrome_browser_sharing_webrtc_webrtc__flags.cc b/chromium/patches/patch-chrome_browser_sharing_webrtc_webrtc__flags.cc
deleted file mode 100644
index 8bcdb1dac0..0000000000
--- a/chromium/patches/patch-chrome_browser_sharing_webrtc_webrtc__flags.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/sharing/webrtc/webrtc_flags.cc.orig 2020-07-08 21:40:35.000000000 +0000
-+++ chrome/browser/sharing/webrtc/webrtc_flags.cc
-@@ -5,7 +5,7 @@
- #include "chrome/browser/sharing/webrtc/webrtc_flags.h"
-
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
-- defined(OS_CHROMEOS)
-+ defined(OS_CHROMEOS) || defined(OS_BSD)
- const base::Feature kSharingPeerConnectionReceiver{
- "SharingPeerConnectionReceiver", base::FEATURE_DISABLED_BY_DEFAULT};
-
diff --git a/chromium/patches/patch-chrome_browser_sharing_webrtc_webrtc__flags.h b/chromium/patches/patch-chrome_browser_sharing_webrtc_webrtc__flags.h
deleted file mode 100644
index b554429d60..0000000000
--- a/chromium/patches/patch-chrome_browser_sharing_webrtc_webrtc__flags.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/sharing/webrtc/webrtc_flags.h.orig 2020-07-08 21:40:35.000000000 +0000
-+++ chrome/browser/sharing/webrtc/webrtc_flags.h
-@@ -9,7 +9,7 @@
- #include "build/build_config.h"
-
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
-- defined(OS_CHROMEOS)
-+ defined(OS_CHROMEOS) || defined(OS_BSD)
- // Feature flag to enable receiving PeerConnection requests.
- extern const base::Feature kSharingPeerConnectionReceiver;
-
diff --git a/chromium/patches/patch-chrome_browser_shortcuts_icon__badging.cc b/chromium/patches/patch-chrome_browser_shortcuts_icon__badging.cc
new file mode 100644
index 0000000000..271a0e213b
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_shortcuts_icon__badging.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/shortcuts/icon_badging.cc.orig 2024-07-24 02:44:28.852027400 +0000
++++ chrome/browser/shortcuts/icon_badging.cc
+@@ -59,7 +59,7 @@ enum class BadgeSize {
+ constexpr ShortcutSize kSizesNeededForShortcutCreation[] = {
+ ShortcutSize::k16, ShortcutSize::k32, ShortcutSize::k128,
+ ShortcutSize::k256, ShortcutSize::k512};
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ constexpr ShortcutSize kSizesNeededForShortcutCreation[] = {ShortcutSize::k32,
+ ShortcutSize::k128};
+ #elif BUILDFLAG(IS_WIN)
diff --git a/chromium/patches/patch-chrome_browser_signin_signin__util.cc b/chromium/patches/patch-chrome_browser_signin_signin__util.cc
index 8dfd9608ea..6ec6dc1cf4 100644
--- a/chromium/patches/patch-chrome_browser_signin_signin__util.cc
+++ b/chromium/patches/patch-chrome_browser_signin_signin__util.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- chrome/browser/signin/signin_util.cc.orig 2020-07-08 21:40:35.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/signin/signin_util.cc.orig 2024-07-24 02:44:28.880030200 +0000
+++ chrome/browser/signin/signin_util.cc
-@@ -34,7 +34,7 @@
- #include "google_apis/gaia/gaia_auth_util.h"
- #include "ui/base/l10n/l10n_util.h"
+@@ -81,7 +81,7 @@ CookiesMover::CookiesMover(base::WeakPtr
+ CookiesMover::~CookiesMover() = default;
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
- #include "chrome/browser/ui/browser_finder.h"
- #include "chrome/browser/ui/browser_list.h"
- #include "chrome/browser/ui/browser_list_observer.h"
+ void CookiesMover::StartMovingCookies() {
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ bool allow_cookies_to_be_moved = base::FeatureList::IsEnabled(
+ profile_management::features::kThirdPartyProfileManagement);
+ #else
diff --git a/chromium/patches/patch-chrome_browser_supervised__user_supervised__user__extensions__delegate__impl.cc b/chromium/patches/patch-chrome_browser_supervised__user_supervised__user__extensions__delegate__impl.cc
new file mode 100644
index 0000000000..9a624239ff
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_supervised__user_supervised__user__extensions__delegate__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/supervised_user/supervised_user_extensions_delegate_impl.cc.orig 2024-07-24 02:44:28.932035200 +0000
++++ chrome/browser/supervised_user/supervised_user_extensions_delegate_impl.cc
+@@ -196,7 +196,7 @@ void SupervisedUserExtensionsDelegateImp
+ return;
+ }
+ }
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ CHECK(contents.value());
+ content::WebContents* web_contents = contents.value().get();
+ if (CanInstallExtensions()) {
diff --git a/chromium/patches/patch-chrome_browser_supervised__user_supervised__user__extensions__manager.cc b/chromium/patches/patch-chrome_browser_supervised__user_supervised__user__extensions__manager.cc
new file mode 100644
index 0000000000..fea0fbb8d1
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_supervised__user_supervised__user__extensions__manager.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/supervised_user/supervised_user_extensions_manager.cc.orig 2024-07-24 02:44:28.932035200 +0000
++++ chrome/browser/supervised_user/supervised_user_extensions_manager.cc
+@@ -359,7 +359,7 @@ void SupervisedUserExtensionsManager::
+ ActivateManagementPolicyAndUpdateRegistration() {
+ SetActiveForSupervisedUsers();
+ UpdateManagementPolicyRegistration();
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ MaybeMarkExtensionsLocallyParentApproved();
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+ }
+@@ -476,7 +476,7 @@ bool SupervisedUserExtensionsManager::Sh
+ return false;
+ }
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void SupervisedUserExtensionsManager::
+ MaybeMarkExtensionsLocallyParentApproved() {
+ supervised_user::LocallyParentApprovedExtensionsMigrationState
diff --git a/chromium/patches/patch-chrome_browser_supervised__user_supervised__user__extensions__manager.h b/chromium/patches/patch-chrome_browser_supervised__user_supervised__user__extensions__manager.h
new file mode 100644
index 0000000000..5786090bca
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_supervised__user_supervised__user__extensions__manager.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/supervised_user/supervised_user_extensions_manager.h.orig 2024-07-24 02:44:28.932035200 +0000
++++ chrome/browser/supervised_user/supervised_user_extensions_manager.h
+@@ -154,7 +154,7 @@ class SupervisedUserExtensionsManager :
+ // launched.
+ bool ShouldBlockExtension(const std::string& extension_id) const;
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Triggers an one-time migration of the present extensions as parent-approved
+ // when the feature
+ // `kEnableSupervisedUserSkipParentApprovalToInstallExtensions` becomes
diff --git a/chromium/patches/patch-chrome_browser_supervised__user_supervised__user__metrics__service__factory.cc b/chromium/patches/patch-chrome_browser_supervised__user_supervised__user__metrics__service__factory.cc
new file mode 100644
index 0000000000..5df82380fc
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_supervised__user_supervised__user__metrics__service__factory.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/supervised_user/supervised_user_metrics_service_factory.cc.orig 2024-07-24 02:44:28.932035200 +0000
++++ chrome/browser/supervised_user/supervised_user_metrics_service_factory.cc
+@@ -14,7 +14,7 @@
+ #include "components/supervised_user/core/browser/supervised_user_service.h"
+ #include "content/public/browser/browser_context.h"
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/supervised_user/linux_mac_windows/supervised_user_extensions_metrics_delegate_impl.h"
+ #endif
+
+@@ -55,7 +55,7 @@ KeyedService* SupervisedUserMetricsServi
+ std::unique_ptr<supervised_user::SupervisedUserMetricsService ::
+ SupervisedUserMetricsServiceExtensionDelegate>
+ extensions_metrics_delegate = nullptr;
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ extensions_metrics_delegate =
+ std::make_unique<SupervisedUserExtensionsMetricsDelegateImpl>(
+ extensions::ExtensionRegistry::Get(profile), *profile->GetPrefs());
diff --git a/chromium/patches/patch-chrome_browser_supervised__user_supervised__user__navigation__observer.cc b/chromium/patches/patch-chrome_browser_supervised__user_supervised__user__navigation__observer.cc
new file mode 100644
index 0000000000..fc753fe94e
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_supervised__user_supervised__user__navigation__observer.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/supervised_user/supervised_user_navigation_observer.cc.orig 2024-07-24 02:44:28.932035200 +0000
++++ chrome/browser/supervised_user/supervised_user_navigation_observer.cc
+@@ -47,7 +47,7 @@
+ #include "chrome/browser/supervised_user/android/supervised_user_web_content_handler_impl.h"
+ #elif BUILDFLAG(IS_CHROMEOS)
+ #include "chrome/browser/supervised_user/chromeos/supervised_user_web_content_handler_impl.h"
+-#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/supervised_user/linux_mac_windows/supervised_user_web_content_handler_impl.h"
+ #endif
+
+@@ -67,7 +67,7 @@ std::unique_ptr<supervised_user::WebCont
+ #elif BUILDFLAG(IS_ANDROID)
+ return std::make_unique<SupervisedUserWebContentHandlerImpl>(
+ web_contents, frame_id, navigation_id);
+-#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ return std::make_unique<SupervisedUserWebContentHandlerImpl>(
+ web_contents, frame_id, navigation_id);
+ #endif
diff --git a/chromium/patches/patch-chrome_browser_sync_chrome__sync__client.cc b/chromium/patches/patch-chrome_browser_sync_chrome__sync__client.cc
index b08b2eabbc..5034d8390a 100644
--- a/chromium/patches/patch-chrome_browser_sync_chrome__sync__client.cc
+++ b/chromium/patches/patch-chrome_browser_sync_chrome__sync__client.cc
@@ -1,13 +1,44 @@
$NetBSD$
---- chrome/browser/sync/chrome_sync_client.cc.orig 2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/sync/chrome_sync_client.cc.orig 2024-07-24 02:44:28.940035800 +0000
+++ chrome/browser/sync/chrome_sync_client.cc
-@@ -449,7 +449,7 @@ ChromeSyncClient::CreateDataTypeControll
+@@ -116,7 +116,7 @@
+ #endif // BUILDFLAG(ENABLE_SPELLCHECK)
+
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/tabs/saved_tab_groups/saved_tab_group_keyed_service.h"
+ #include "chrome/browser/ui/tabs/saved_tab_groups/saved_tab_group_service_factory.h"
+ #elif BUILDFLAG(IS_ANDROID)
+@@ -475,7 +475,7 @@ ChromeSyncClient::CreateModelTypeControl
+ // platforms.
+ bool enable_tab_group_sync = false;
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ enable_tab_group_sync = true;
+ #elif BUILDFLAG(IS_ANDROID)
+ enable_tab_group_sync =
+@@ -514,7 +514,7 @@ ChromeSyncClient::CreateModelTypeControl
// Chrome prefers OS provided spell checkers where they exist. So only sync the
// custom dictionary on platforms that typically don't provide one.
--#if defined(OS_LINUX) || defined(OS_WIN)
-+#if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_BSD)
- // Dictionary sync is enabled by default.
- if (!disabled_types.Has(syncer::DICTIONARY) &&
- GetPrefService()->GetBoolean(spellcheck::prefs::kSpellCheckEnable)) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ // Dictionary sync is enabled by default.
+ if (GetPrefService()->GetBoolean(spellcheck::prefs::kSpellCheckEnable)) {
+ controllers.push_back(
+@@ -671,7 +671,7 @@ ChromeSyncClient::GetControllerDelegateF
+ switch (type) {
+ case syncer::SAVED_TAB_GROUP: {
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ auto* keyed_service =
+ tab_groups::SavedTabGroupServiceFactory::GetForProfile(profile_);
+ CHECK(keyed_service);
diff --git a/chromium/patches/patch-chrome_browser_sync_device__info__sync__client__impl.cc b/chromium/patches/patch-chrome_browser_sync_device__info__sync__client__impl.cc
new file mode 100644
index 0000000000..e23871a09c
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_sync_device__info__sync__client__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/sync/device_info_sync_client_impl.cc.orig 2024-07-24 02:44:28.940035800 +0000
++++ chrome/browser/sync/device_info_sync_client_impl.cc
+@@ -41,7 +41,7 @@ std::string DeviceInfoSyncClientImpl::Ge
+ // included in lacros-chrome once build flag switch of lacros-chrome is
+ // complete.
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
+- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
+ syncer::SyncPrefs prefs(profile_->GetPrefs());
+ if (prefs.IsLocalSyncEnabled()) {
+ return "local_device";
diff --git a/chromium/patches/patch-chrome_browser_sync_sync__service__factory.cc b/chromium/patches/patch-chrome_browser_sync_sync__service__factory.cc
new file mode 100644
index 0000000000..01cdb7fc05
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_sync_sync__service__factory.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/sync/sync_service_factory.cc.orig 2024-07-24 02:44:28.944036200 +0000
++++ chrome/browser/sync/sync_service_factory.cc
+@@ -84,7 +84,7 @@
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH)
+
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/tabs/saved_tab_groups/saved_tab_group_service_factory.h"
+ #elif BUILDFLAG(IS_ANDROID)
+ #include "chrome/browser/tab_group_sync/tab_group_sync_service_factory.h"
+@@ -135,7 +135,7 @@ std::unique_ptr<KeyedService> BuildSyncS
+ // TODO(crbug.com/40118868): Reassess whether the following block needs to be
+ // included in lacros-chrome once build flag switch of lacros-chrome is
+ // complete.
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \
+ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
+ syncer::SyncPrefs prefs(profile->GetPrefs());
+ local_sync_backend_enabled = prefs.IsLocalSyncEnabled();
+@@ -274,7 +274,7 @@ SyncServiceFactory::SyncServiceFactory()
+ DependsOn(ProfilePasswordStoreFactory::GetInstance());
+ DependsOn(PowerBookmarkServiceFactory::GetInstance());
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ DependsOn(tab_groups::SavedTabGroupServiceFactory::GetInstance());
+ #elif BUILDFLAG(IS_ANDROID)
+ DependsOn(tab_groups::TabGroupSyncServiceFactory::GetInstance());
diff --git a/chromium/patches/patch-chrome_browser_sync_sync__service__util.cc b/chromium/patches/patch-chrome_browser_sync_sync__service__util.cc
new file mode 100644
index 0000000000..3faf523f9b
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_sync_sync__service__util.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/sync/sync_service_util.cc.orig 2024-07-24 02:44:28.944036200 +0000
++++ chrome/browser/sync/sync_service_util.cc
+@@ -9,7 +9,7 @@
+ #include "components/sync/base/features.h"
+
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "components/variations/service/variations_service.h"
+ #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ||
+ // BUILDFLAG(IS_WIN)
+@@ -21,7 +21,7 @@ bool IsDesktopEnUSLocaleOnlySyncPollFeat
+ }
+
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ std::string country_code;
+ auto* variations_service = g_browser_process->variations_service();
+ if (variations_service) {
diff --git a/chromium/patches/patch-chrome_browser_task__manager_sampling_task__group.cc b/chromium/patches/patch-chrome_browser_task__manager_sampling_task__group.cc
index 7539391eb2..18ad25b186 100644
--- a/chromium/patches/patch-chrome_browser_task__manager_sampling_task__group.cc
+++ b/chromium/patches/patch-chrome_browser_task__manager_sampling_task__group.cc
@@ -1,40 +1,44 @@
$NetBSD$
---- chrome/browser/task_manager/sampling/task_group.cc.orig 2020-07-08 21:40:35.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/task_manager/sampling/task_group.cc.orig 2024-07-24 02:44:29.040045500 +0000
+++ chrome/browser/task_manager/sampling/task_group.cc
-@@ -32,7 +32,7 @@ const int kBackgroundRefreshTypesMask =
- #if defined(OS_WIN)
+@@ -38,7 +38,7 @@ const int kBackgroundRefreshTypesMask =
+ #if BUILDFLAG(IS_WIN)
REFRESH_TYPE_START_TIME | REFRESH_TYPE_CPU_TIME |
- #endif // defined(OS_WIN)
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+ #endif // BUILDFLAG(IS_WIN)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
REFRESH_TYPE_FD_COUNT |
- #endif // defined(OS_LINUX) || defined(OS_MACOSX)
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
#if BUILDFLAG(ENABLE_NACL)
-@@ -113,7 +113,7 @@ TaskGroup::TaskGroup(
+@@ -123,7 +123,7 @@ TaskGroup::TaskGroup(
#if BUILDFLAG(ENABLE_NACL)
nacl_debug_stub_port_(nacl::kGdbDebugStubPortUnknown),
#endif // BUILDFLAG(ENABLE_NACL)
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
open_fd_count_(-1),
- #endif // defined(OS_LINUX) || defined(OS_MACOSX)
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
idle_wakeups_per_second_(-1),
-@@ -128,7 +128,7 @@ TaskGroup::TaskGroup(
- weak_ptr_factory_.GetWeakPtr()),
- base::Bind(&TaskGroup::OnIdleWakeupsRefreshDone,
- weak_ptr_factory_.GetWeakPtr()),
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
- base::Bind(&TaskGroup::OnOpenFdCountRefreshDone,
- weak_ptr_factory_.GetWeakPtr()),
- #endif // defined(OS_LINUX) || defined(OS_MACOSX)
-@@ -299,7 +299,7 @@ void TaskGroup::OnRefreshNaClDebugStubPo
+@@ -142,7 +142,7 @@ TaskGroup::TaskGroup(
+ weak_ptr_factory_.GetWeakPtr()),
+ base::BindRepeating(&TaskGroup::OnIdleWakeupsRefreshDone,
+ weak_ptr_factory_.GetWeakPtr()),
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ base::BindRepeating(&TaskGroup::OnOpenFdCountRefreshDone,
+ weak_ptr_factory_.GetWeakPtr()),
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
+@@ -322,7 +322,7 @@ void TaskGroup::OnRefreshNaClDebugStubPo
}
#endif // BUILDFLAG(ENABLE_NACL)
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
void TaskGroup::OnOpenFdCountRefreshDone(int open_fd_count) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
diff --git a/chromium/patches/patch-chrome_browser_task__manager_sampling_task__group.h b/chromium/patches/patch-chrome_browser_task__manager_sampling_task__group.h
index 8a9fc7f9c7..026f4b1274 100644
--- a/chromium/patches/patch-chrome_browser_task__manager_sampling_task__group.h
+++ b/chromium/patches/patch-chrome_browser_task__manager_sampling_task__group.h
@@ -1,40 +1,44 @@
$NetBSD$
---- chrome/browser/task_manager/sampling/task_group.h.orig 2020-07-08 21:40:35.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/task_manager/sampling/task_group.h.orig 2024-07-24 02:44:29.040045500 +0000
+++ chrome/browser/task_manager/sampling/task_group.h
-@@ -39,7 +39,7 @@ constexpr int kUnsupportedVMRefreshFlags
+@@ -44,7 +44,7 @@ constexpr int kUnsupportedVMRefreshFlags
REFRESH_TYPE_WEBCACHE_STATS | REFRESH_TYPE_NETWORK_USAGE |
REFRESH_TYPE_NACL | REFRESH_TYPE_IDLE_WAKEUPS | REFRESH_TYPE_HANDLES |
REFRESH_TYPE_START_TIME | REFRESH_TYPE_CPU_TIME | REFRESH_TYPE_PRIORITY |
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
REFRESH_TYPE_FD_COUNT |
#endif
REFRESH_TYPE_HARD_FAULTS;
-@@ -122,7 +122,7 @@ class TaskGroup {
- int nacl_debug_stub_port() const { return nacl_debug_stub_port_; }
+@@ -152,7 +152,7 @@ class TaskGroup {
+ }
#endif // BUILDFLAG(ENABLE_NACL)
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
int open_fd_count() const { return open_fd_count_; }
- #endif // defined(OS_LINUX) || defined(OS_MACOSX)
-
-@@ -138,7 +138,7 @@ class TaskGroup {
+ void set_open_fd_count(int open_fd_count) { open_fd_count_ = open_fd_count; }
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
+@@ -172,7 +172,7 @@ class TaskGroup {
void RefreshNaClDebugStubPort(int child_process_unique_id);
void OnRefreshNaClDebugStubPortDone(int port);
#endif
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
void OnOpenFdCountRefreshDone(int open_fd_count);
- #endif // defined(OS_LINUX) || defined(OS_MACOSX)
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
-@@ -209,7 +209,7 @@ class TaskGroup {
+@@ -244,7 +244,7 @@ class TaskGroup {
#if BUILDFLAG(ENABLE_NACL)
int nacl_debug_stub_port_;
#endif // BUILDFLAG(ENABLE_NACL)
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
// The number of file descriptors currently open by the process.
int open_fd_count_;
- #endif // defined(OS_LINUX) || defined(OS_MACOSX)
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
diff --git a/chromium/patches/patch-chrome_browser_task__manager_sampling_task__group__sampler.cc b/chromium/patches/patch-chrome_browser_task__manager_sampling_task__group__sampler.cc
index 21d4f121a9..e15190b62d 100644
--- a/chromium/patches/patch-chrome_browser_task__manager_sampling_task__group__sampler.cc
+++ b/chromium/patches/patch-chrome_browser_task__manager_sampling_task__group__sampler.cc
@@ -1,49 +1,53 @@
$NetBSD$
---- chrome/browser/task_manager/sampling/task_group_sampler.cc.orig 2020-07-08 21:40:35.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/task_manager/sampling/task_group_sampler.cc.orig 2024-07-24 02:44:29.040045500 +0000
+++ chrome/browser/task_manager/sampling/task_group_sampler.cc
-@@ -43,7 +43,7 @@ TaskGroupSampler::TaskGroupSampler(
+@@ -46,7 +46,7 @@ TaskGroupSampler::TaskGroupSampler(
const OnCpuRefreshCallback& on_cpu_refresh,
const OnSwappedMemRefreshCallback& on_swapped_mem_refresh,
const OnIdleWakeupsCallback& on_idle_wakeups,
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
const OnOpenFdCountCallback& on_open_fd_count,
- #endif // defined(OS_LINUX) || defined(OS_MACOSX)
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
const OnProcessPriorityCallback& on_process_priority)
-@@ -53,7 +53,7 @@ TaskGroupSampler::TaskGroupSampler(
+@@ -56,7 +56,7 @@ TaskGroupSampler::TaskGroupSampler(
on_cpu_refresh_callback_(on_cpu_refresh),
on_swapped_mem_refresh_callback_(on_swapped_mem_refresh),
on_idle_wakeups_callback_(on_idle_wakeups),
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
on_open_fd_count_callback_(on_open_fd_count),
- #endif // defined(OS_LINUX) || defined(OS_MACOSX)
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
on_process_priority_callback_(on_process_priority) {
-@@ -85,7 +85,7 @@ void TaskGroupSampler::Refresh(int64_t r
+@@ -86,7 +86,7 @@ void TaskGroupSampler::Refresh(int64_t r
base::BindOnce(on_swapped_mem_refresh_callback_));
}
--#if defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
if (TaskManagerObserver::IsResourceRefreshEnabled(REFRESH_TYPE_IDLE_WAKEUPS,
refresh_flags)) {
- base::PostTaskAndReplyWithResult(
-@@ -95,7 +95,7 @@ void TaskGroupSampler::Refresh(int64_t r
+ blocking_pool_runner_->PostTaskAndReplyWithResult(
+@@ -96,7 +96,7 @@ void TaskGroupSampler::Refresh(int64_t r
}
- #endif // defined(OS_MACOSX) || defined(OS_LINUX)
+ #endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
if (TaskManagerObserver::IsResourceRefreshEnabled(REFRESH_TYPE_FD_COUNT,
refresh_flags)) {
- base::PostTaskAndReplyWithResult(
-@@ -145,7 +145,7 @@ int TaskGroupSampler::RefreshIdleWakeups
+ blocking_pool_runner_->PostTaskAndReplyWithResult(
+@@ -150,7 +150,7 @@ int TaskGroupSampler::RefreshIdleWakeups
return process_metrics_->GetIdleWakeupsPerSecond();
}
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
int TaskGroupSampler::RefreshOpenFdCount() {
- DCHECK(worker_pool_sequenced_checker_.CalledOnValidSequence());
+ DCHECK_CALLED_ON_VALID_SEQUENCE(worker_pool_sequenced_checker_);
diff --git a/chromium/patches/patch-chrome_browser_task__manager_sampling_task__group__sampler.h b/chromium/patches/patch-chrome_browser_task__manager_sampling_task__group__sampler.h
index b2cfd47d08..f72d589c50 100644
--- a/chromium/patches/patch-chrome_browser_task__manager_sampling_task__group__sampler.h
+++ b/chromium/patches/patch-chrome_browser_task__manager_sampling_task__group__sampler.h
@@ -1,40 +1,44 @@
$NetBSD$
---- chrome/browser/task_manager/sampling/task_group_sampler.h.orig 2020-07-08 21:40:35.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/task_manager/sampling/task_group_sampler.h.orig 2024-07-24 02:44:29.040045500 +0000
+++ chrome/browser/task_manager/sampling/task_group_sampler.h
-@@ -32,7 +32,7 @@ class TaskGroupSampler : public base::Re
- using OnCpuRefreshCallback = base::Callback<void(double)>;
- using OnSwappedMemRefreshCallback = base::Callback<void(int64_t)>;
- using OnIdleWakeupsCallback = base::Callback<void(int)>;
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
- using OnOpenFdCountCallback = base::Callback<void(int)>;
- #endif // defined(OS_LINUX) || defined(OS_MACOSX)
- using OnProcessPriorityCallback = base::Callback<void(bool)>;
+@@ -31,7 +31,7 @@ class TaskGroupSampler : public base::Re
+ using OnCpuRefreshCallback = base::RepeatingCallback<void(double)>;
+ using OnSwappedMemRefreshCallback = base::RepeatingCallback<void(int64_t)>;
+ using OnIdleWakeupsCallback = base::RepeatingCallback<void(int)>;
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ using OnOpenFdCountCallback = base::RepeatingCallback<void(int)>;
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
+ using OnProcessPriorityCallback =
@@ -43,7 +43,7 @@ class TaskGroupSampler : public base::Re
const OnCpuRefreshCallback& on_cpu_refresh,
const OnSwappedMemRefreshCallback& on_memory_refresh,
const OnIdleWakeupsCallback& on_idle_wakeups,
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
const OnOpenFdCountCallback& on_open_fd_count,
- #endif // defined(OS_LINUX) || defined(OS_MACOSX)
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
const OnProcessPriorityCallback& on_process_priority);
-@@ -60,7 +60,7 @@ class TaskGroupSampler : public base::Re
+@@ -63,7 +63,7 @@ class TaskGroupSampler : public base::Re
double RefreshCpuUsage();
int64_t RefreshSwappedMem();
int RefreshIdleWakeupsPerSecond();
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
int RefreshOpenFdCount();
- #endif // defined(OS_LINUX) || defined(OS_MACOSX)
- bool RefreshProcessPriority();
-@@ -84,7 +84,7 @@ class TaskGroupSampler : public base::Re
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
+ base::Process::Priority RefreshProcessPriority();
+@@ -87,7 +87,7 @@ class TaskGroupSampler : public base::Re
const OnCpuRefreshCallback on_cpu_refresh_callback_;
const OnSwappedMemRefreshCallback on_swapped_mem_refresh_callback_;
const OnIdleWakeupsCallback on_idle_wakeups_callback_;
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
const OnOpenFdCountCallback on_open_fd_count_callback_;
- #endif // defined(OS_LINUX) || defined(OS_MACOSX)
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
const OnProcessPriorityCallback on_process_priority_callback_;
diff --git a/chromium/patches/patch-chrome_browser_task__manager_sampling_task__manager__impl.cc b/chromium/patches/patch-chrome_browser_task__manager_sampling_task__manager__impl.cc
index 88b119db19..5394745c90 100644
--- a/chromium/patches/patch-chrome_browser_task__manager_sampling_task__manager__impl.cc
+++ b/chromium/patches/patch-chrome_browser_task__manager_sampling_task__manager__impl.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- chrome/browser/task_manager/sampling/task_manager_impl.cc.orig 2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/task_manager/sampling/task_manager_impl.cc.orig 2024-07-24 02:44:29.040045500 +0000
+++ chrome/browser/task_manager/sampling/task_manager_impl.cc
-@@ -229,7 +229,7 @@ void TaskManagerImpl::GetUSERHandles(Tas
+@@ -218,7 +218,7 @@ void TaskManagerImpl::GetUSERHandles(Tas
}
int TaskManagerImpl::GetOpenFdCount(TaskId task_id) const {
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
return GetTaskGroupByTaskId(task_id)->open_fd_count();
#else
return -1;
diff --git a/chromium/patches/patch-chrome_browser_task__manager_task__manager__observer.h b/chromium/patches/patch-chrome_browser_task__manager_task__manager__observer.h
index 37c6d45ac7..32e3f2ecd7 100644
--- a/chromium/patches/patch-chrome_browser_task__manager_task__manager__observer.h
+++ b/chromium/patches/patch-chrome_browser_task__manager_task__manager__observer.h
@@ -1,13 +1,17 @@
$NetBSD$
---- chrome/browser/task_manager/task_manager_observer.h.orig 2020-07-08 21:40:35.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/task_manager/task_manager_observer.h.orig 2024-07-24 02:44:29.040045500 +0000
+++ chrome/browser/task_manager/task_manager_observer.h
-@@ -43,7 +43,7 @@ enum RefreshType {
+@@ -47,7 +47,7 @@ enum RefreshType {
// or backgrounded.
REFRESH_TYPE_PRIORITY = 1 << 13,
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
// For observers interested in getting the number of open file descriptors of
// processes.
REFRESH_TYPE_FD_COUNT = 1 << 14,
diff --git a/chromium/patches/patch-chrome_browser_themes_theme__helper.cc b/chromium/patches/patch-chrome_browser_themes_theme__helper.cc
new file mode 100644
index 0000000000..4b5b77746d
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_themes_theme__helper.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/themes/theme_helper.cc.orig 2024-07-24 02:44:29.048046400 +0000
++++ chrome/browser/themes/theme_helper.cc
+@@ -18,7 +18,7 @@
+ #include "ui/gfx/image/image.h"
+ #include "ui/native_theme/native_theme.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/linux/linux_ui.h"
+ #endif
+
diff --git a/chromium/patches/patch-chrome_browser_themes_theme__service.cc b/chromium/patches/patch-chrome_browser_themes_theme__service.cc
new file mode 100644
index 0000000000..9789725740
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_themes_theme__service.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/themes/theme_service.cc.orig 2024-07-24 02:44:29.048046400 +0000
++++ chrome/browser/themes/theme_service.cc
+@@ -70,7 +70,7 @@
+ #include "extensions/browser/extension_registry_observer.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/linux/linux_ui.h"
+ #include "ui/ozone/public/ozone_platform.h" // nogncheck
+ #endif
+@@ -326,7 +326,7 @@ CustomThemeSupplier* ThemeService::GetTh
+ }
+
+ bool ThemeService::ShouldUseCustomFrame() const {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (!ui::OzonePlatform::GetInstance()
+ ->GetPlatformRuntimeProperties()
+ .supports_server_side_window_decorations) {
diff --git a/chromium/patches/patch-chrome_browser_themes_theme__service__aura__linux.cc b/chromium/patches/patch-chrome_browser_themes_theme__service__aura__linux.cc
new file mode 100644
index 0000000000..90b80e1de1
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_themes_theme__service__aura__linux.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/themes/theme_service_aura_linux.cc.orig 2024-07-24 02:44:29.048046400 +0000
++++ chrome/browser/themes/theme_service_aura_linux.cc
+@@ -24,7 +24,7 @@ namespace {
+ ui::SystemTheme ValidateSystemTheme(ui::SystemTheme system_theme) {
+ switch (system_theme) {
+ case ui::SystemTheme::kDefault:
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ case ui::SystemTheme::kGtk:
+ case ui::SystemTheme::kQt:
+ #endif
diff --git a/chromium/patches/patch-chrome_browser_themes_theme__service__factory.cc b/chromium/patches/patch-chrome_browser_themes_theme__service__factory.cc
index 254882f826..b3c36bd933 100644
--- a/chromium/patches/patch-chrome_browser_themes_theme__service__factory.cc
+++ b/chromium/patches/patch-chrome_browser_themes_theme__service__factory.cc
@@ -1,31 +1,43 @@
$NetBSD$
---- chrome/browser/themes/theme_service_factory.cc.orig 2020-07-08 21:40:35.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/themes/theme_service_factory.cc.orig 2024-07-24 02:44:29.048046400 +0000
+++ chrome/browser/themes/theme_service_factory.cc
-@@ -22,7 +22,7 @@
- #include "chrome/browser/themes/theme_helper_win.h"
- #endif
+@@ -27,11 +27,11 @@
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS) || defined(OS_BSD)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
#include "chrome/browser/themes/theme_service_aura_linux.h"
- #include "ui/views/linux_ui/linux_ui.h"
#endif
-@@ -77,7 +77,7 @@ ThemeServiceFactory::~ThemeServiceFactor
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/linux/linux_ui_factory.h"
+ #endif
+
+@@ -103,7 +103,7 @@ ThemeServiceFactory::~ThemeServiceFactor
KeyedService* ThemeServiceFactory::BuildServiceInstanceFor(
content::BrowserContext* profile) const {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
using ThemeService = ThemeServiceAuraLinux;
#endif
-@@ -89,7 +89,7 @@ KeyedService* ThemeServiceFactory::Build
-
- void ThemeServiceFactory::RegisterProfilePrefs(
+@@ -117,9 +117,9 @@ void ThemeServiceFactory::RegisterProfil
user_prefs::PrefRegistrySyncable* registry) {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- bool default_uses_system_theme = false;
-
- const views::LinuxUI* linux_ui = views::LinuxUI::instance();
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ ui::SystemTheme default_system_theme = ui::SystemTheme::kDefault;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ default_system_theme = ui::GetDefaultSystemTheme();
+ #endif
+ registry->RegisterIntegerPref(prefs::kSystemTheme,
diff --git a/chromium/patches/patch-chrome_browser_tracing_crash__service__uploader.cc b/chromium/patches/patch-chrome_browser_tracing_crash__service__uploader.cc
deleted file mode 100644
index f9b96f5f96..0000000000
--- a/chromium/patches/patch-chrome_browser_tracing_crash__service__uploader.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/tracing/crash_service_uploader.cc.orig 2020-07-08 21:40:35.000000000 +0000
-+++ chrome/browser/tracing/crash_service_uploader.cc
-@@ -158,6 +158,8 @@ void TraceCrashServiceUploader::DoCompre
- const char product[] = "Chrome_ChromeOS";
- #elif defined(OS_LINUX)
- const char product[] = "Chrome_Linux";
-+#elif defined(OS_NETBSD)
-+ const char product[] = "Chrome_NetBSD";
- #elif defined(OS_ANDROID)
- const char product[] = "Chrome_Android";
- #else
diff --git a/chromium/patches/patch-chrome_browser_ui_BUILD.gn b/chromium/patches/patch-chrome_browser_ui_BUILD.gn
deleted file mode 100644
index 0c33c000c4..0000000000
--- a/chromium/patches/patch-chrome_browser_ui_BUILD.gn
+++ /dev/null
@@ -1,60 +0,0 @@
-$NetBSD$
-
---- chrome/browser/ui/BUILD.gn.orig 2020-07-15 18:56:45.000000000 +0000
-+++ chrome/browser/ui/BUILD.gn
-@@ -622,13 +622,18 @@ static_library("ui") {
- deps += [ "//components/autofill/content/browser/webauthn" ]
- }
-
-- if (!is_fuchsia) {
-+ if (!is_fuchsia && !is_bsd) {
- # TODO(crbug.com/753619): Enable crash reporting on Fuchsia.
- deps += [
- "//components/crash/core/app",
- "//components/crash/core/browser",
- ]
- }
-+ if (is_bsd) {
-+ deps += [
-+ "//components/crash/core/browser",
-+ ]
-+ }
-
- if (is_win || is_android || is_linux) {
- sources += [
-@@ -1505,7 +1510,7 @@ static_library("ui") {
- ]
- }
-
-- if (is_linux && !is_chromeos) {
-+ if ((is_linux || is_bsd) && !is_chromeos) {
- deps += [ "//ui/base/ime/linux" ]
- }
-
-@@ -3019,7 +3024,7 @@ static_library("ui") {
- # to fail on this variant. Since this target is only referenced (but not
- # compiled) on this variant, it's okay to add this "incorrect" dependency
- # to Cast Linux builds so that `gn check` passes.
-- if (toolkit_views || (is_chromecast && is_linux)) {
-+ if (toolkit_views || (is_chromecast && (is_linux || is_bsd))) {
- public_deps += [
- "//ui/views",
- "//ui/views/controls/webview",
-@@ -3105,7 +3110,7 @@ static_library("ui") {
- }
- }
-
-- if (is_linux) { # Both desktop Linux and ChromeOS.
-+ if (is_linux || is_bsd) { # Both desktop Linux and ChromeOS.
- sources += [
- "certificate_dialogs.cc",
- "certificate_dialogs.h",
-@@ -3909,7 +3914,7 @@ static_library("ui") {
- ]
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "views/process_singleton_dialog_linux.cc",
- "views/status_icons/status_tray_linux.cc",
diff --git a/chromium/patches/patch-chrome_browser_ui_actions_chrome__action__id.h b/chromium/patches/patch-chrome_browser_ui_actions_chrome__action__id.h
new file mode 100644
index 0000000000..cd091d4ece
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_actions_chrome__action__id.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/actions/chrome_action_id.h.orig 2024-07-24 02:44:29.092050600 +0000
++++ chrome/browser/ui/actions/chrome_action_id.h
+@@ -515,7 +515,7 @@
+ IDC_CONTENT_CONTEXT_QUICK_ANSWERS_INLINE_ANSWER) \
+ E(kActionContentContextQuickAnswersInlineQuery, \
+ IDC_CONTENT_CONTEXT_QUICK_ANSWERS_INLINE_QUERY)
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #define CHROME_PLATFORM_SPECIFIC_ACTION_IDS \
+ E(kUseSystemTitleBar, IDC_USE_SYSTEM_TITLE_BAR) \
+ E(kRestoreWindow, IDC_RESTORE_WINDOW)
diff --git a/chromium/patches/patch-chrome_browser_ui_autofill_payments_desktop__payments__window__manager.cc b/chromium/patches/patch-chrome_browser_ui_autofill_payments_desktop__payments__window__manager.cc
new file mode 100644
index 0000000000..d402c0ba6d
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_autofill_payments_desktop__payments__window__manager.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/autofill/payments/desktop_payments_window_manager.cc.orig 2024-07-24 02:44:29.500090100 +0000
++++ chrome/browser/ui/autofill/payments/desktop_payments_window_manager.cc
+@@ -49,7 +49,7 @@ gfx::Rect GetPopupSizeForVcn3ds() {
+ DesktopPaymentsWindowManager::DesktopPaymentsWindowManager(
+ ContentAutofillClient* client)
+ : client_(CHECK_DEREF(client)) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ scoped_observation_.Observe(BrowserList::GetInstance());
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
+ }
+@@ -109,7 +109,7 @@ void DesktopPaymentsWindowManager::WebCo
+ }
+ }
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ void DesktopPaymentsWindowManager::OnBrowserSetLastActive(Browser* browser) {
+ // If there is an ongoing payments window manager pop-up flow, and the
+ // original tab's WebContents become active, activate the pop-up's
diff --git a/chromium/patches/patch-chrome_browser_ui_autofill_payments_desktop__payments__window__manager.h b/chromium/patches/patch-chrome_browser_ui_autofill_payments_desktop__payments__window__manager.h
new file mode 100644
index 0000000000..70f59f0980
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_autofill_payments_desktop__payments__window__manager.h
@@ -0,0 +1,44 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/autofill/payments/desktop_payments_window_manager.h.orig 2024-07-24 02:44:29.500090100 +0000
++++ chrome/browser/ui/autofill/payments/desktop_payments_window_manager.h
+@@ -14,7 +14,7 @@
+ #include "components/autofill/core/browser/payments/payments_window_manager.h"
+ #include "content/public/browser/web_contents_observer.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ #include "base/scoped_observation.h"
+ #include "chrome/browser/ui/browser_list.h"
+ #include "chrome/browser/ui/browser_list_observer.h"
+@@ -39,7 +39,7 @@ class PaymentsWindowUserConsentDialogCon
+ // WebContents of the original tab that the pop-up is created in. If there is a
+ // pop-up currently present, `this` will observe the WebContents of that pop-up.
+ class DesktopPaymentsWindowManager : public PaymentsWindowManager,
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ public BrowserListObserver,
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
+ public content::WebContentsObserver {
+@@ -58,7 +58,7 @@ class DesktopPaymentsWindowManager : pub
+ content::NavigationHandle* navigation_handle) override;
+ void WebContentsDestroyed() override;
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ // BrowserListObserver:
+ void OnBrowserSetLastActive(Browser* browser) override;
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
+@@ -136,7 +136,7 @@ class DesktopPaymentsWindowManager : pub
+ std::unique_ptr<PaymentsWindowUserConsentDialogControllerImpl>
+ payments_window_user_consent_dialog_controller_;
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ base::ScopedObservation<BrowserList, BrowserListObserver> scoped_observation_{
+ this};
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
diff --git a/chromium/patches/patch-chrome_browser_ui_browser.h b/chromium/patches/patch-chrome_browser_ui_browser.h
new file mode 100644
index 0000000000..9e5845d672
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_browser.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/browser.h.orig 2024-07-24 02:44:29.512091400 +0000
++++ chrome/browser/ui/browser.h
+@@ -339,7 +339,7 @@ class Browser : public TabStripModelObse
+ std::optional<int64_t> display_id;
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // When the browser window is shown, the desktop environment is notified
+ // using this ID. In response, the desktop will stop playing the "waiting
+ // for startup" animation (if any).
diff --git a/chromium/patches/patch-chrome_browser_ui_browser__command__controller.cc b/chromium/patches/patch-chrome_browser_ui_browser__command__controller.cc
index 2233c7d6bb..cc0f9c1667 100644
--- a/chromium/patches/patch-chrome_browser_ui_browser__command__controller.cc
+++ b/chromium/patches/patch-chrome_browser_ui_browser__command__controller.cc
@@ -1,40 +1,86 @@
$NetBSD$
---- chrome/browser/ui/browser_command_controller.cc.orig 2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/browser_command_controller.cc.orig 2024-07-24 02:44:29.516091600 +0000
+++ chrome/browser/ui/browser_command_controller.cc
-@@ -83,7 +83,7 @@
- #include "components/session_manager/core/session_manager.h"
+@@ -129,7 +129,7 @@
+ #include "components/user_manager/user_manager.h"
#endif
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- #include "ui/base/ime/linux/text_edit_key_bindings_delegate_auralinux.h" // nogncheck
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/base/ime/text_input_flags.h"
+ #include "ui/linux/linux_ui.h"
+ #endif
+@@ -138,7 +138,7 @@
+ #include "ui/ozone/public/ozone_platform.h"
#endif
-@@ -254,7 +254,7 @@ bool BrowserCommandController::IsReserve
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/shortcuts/desktop_shortcuts_utils.h"
+ #endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
+
+@@ -315,7 +315,7 @@ bool BrowserCommandController::IsReserve
#endif
}
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
// If this key was registered by the user as a content editing hotkey, then
// it is not reserved.
- ui::TextEditKeyBindingsDelegateAuraLinux* delegate =
-@@ -480,7 +480,7 @@ bool BrowserCommandController::ExecuteCo
- break;
- #endif
+ auto* linux_ui = ui::LinuxUi::instance();
+@@ -567,7 +567,7 @@ bool BrowserCommandController::ExecuteCo
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
case IDC_MINIMIZE_WINDOW:
browser_->window()->Minimize();
break;
-@@ -953,7 +953,7 @@ void BrowserCommandController::InitComma
- command_updater_.UpdateCommandEnabled(IDC_VISIT_DESKTOP_OF_LRU_USER_4, true);
- command_updater_.UpdateCommandEnabled(IDC_VISIT_DESKTOP_OF_LRU_USER_5, true);
+@@ -579,7 +579,7 @@ bool BrowserCommandController::ExecuteCo
+ break;
#endif
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ case IDC_USE_SYSTEM_TITLE_BAR: {
+ PrefService* prefs = profile()->GetPrefs();
+ prefs->SetBoolean(prefs::kUseCustomChromeFrame,
+@@ -773,7 +773,7 @@ bool BrowserCommandController::ExecuteCo
+ break;
+ case IDC_CREATE_SHORTCUT:
+ base::RecordAction(base::UserMetricsAction("CreateShortcut"));
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (base::FeatureList::IsEnabled(features::kShortcutsNotApps)) {
+ chrome::CreateDesktopShortcutForActiveWebContents(browser_);
+ } else {
+@@ -1282,12 +1282,12 @@ void BrowserCommandController::InitComma
+ #endif
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
command_updater_.UpdateCommandEnabled(IDC_MINIMIZE_WINDOW, true);
command_updater_.UpdateCommandEnabled(IDC_MAXIMIZE_WINDOW, true);
command_updater_.UpdateCommandEnabled(IDC_RESTORE_WINDOW, true);
+ #endif
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool use_system_title_bar = true;
+ #if BUILDFLAG(IS_OZONE)
+ use_system_title_bar = ui::OzonePlatform::GetInstance()
+@@ -1602,7 +1602,7 @@ void BrowserCommandController::UpdateCom
+ bool can_create_web_app = web_app::CanCreateWebApp(browser_);
+ command_updater_.UpdateCommandEnabled(IDC_INSTALL_PWA, can_create_web_app);
+
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ if (base::FeatureList::IsEnabled(features::kShortcutsNotApps)) {
+ command_updater_.UpdateCommandEnabled(
+ IDC_CREATE_SHORTCUT, shortcuts::CanCreateDesktopShortcut(browser_));
diff --git a/chromium/patches/patch-chrome_browser_ui_browser__commands.cc b/chromium/patches/patch-chrome_browser_ui_browser__commands.cc
new file mode 100644
index 0000000000..229c53dad1
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_browser__commands.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/browser_commands.cc.orig 2024-07-24 02:44:29.516091600 +0000
++++ chrome/browser/ui/browser_commands.cc
+@@ -2001,7 +2001,7 @@ void OpenUpdateChromeDialog(Browser* bro
+ } else if (UpgradeDetector::GetInstance()->is_outdated_install_no_au()) {
+ UpgradeDetector::GetInstance()->NotifyOutdatedInstallNoAutoUpdate();
+ } else {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (base::FeatureList::IsEnabled(features::kFewerUpdateConfirmations)) {
+ chrome::AttemptRelaunch();
+ return;
diff --git a/chromium/patches/patch-chrome_browser_ui_browser__ui__prefs.cc b/chromium/patches/patch-chrome_browser_ui_browser__ui__prefs.cc
new file mode 100644
index 0000000000..fcbf2a10ea
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_browser__ui__prefs.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/browser_ui_prefs.cc.orig 2024-07-24 02:44:29.524092400 +0000
++++ chrome/browser/ui/browser_ui_prefs.cc
+@@ -175,7 +175,7 @@ void RegisterBrowserUserPrefs(user_prefs
+ registry->RegisterDictionaryPref(prefs::kHttpsUpgradeFallbacks);
+ registry->RegisterDictionaryPref(prefs::kHttpsUpgradeNavigations);
+ registry->RegisterBooleanPref(prefs::kHttpsOnlyModeAutoEnabled, false);
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ registry->RegisterStringPref(prefs::kEnterpriseLogoUrl, std::string());
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
+ }
diff --git a/chromium/patches/patch-chrome_browser_ui_browser__view__prefs.cc b/chromium/patches/patch-chrome_browser_ui_browser__view__prefs.cc
index 7b9d4f8a2a..a9dc894ebe 100644
--- a/chromium/patches/patch-chrome_browser_ui_browser__view__prefs.cc
+++ b/chromium/patches/patch-chrome_browser_ui_browser__view__prefs.cc
@@ -1,22 +1,26 @@
$NetBSD$
---- chrome/browser/ui/browser_view_prefs.cc.orig 2020-07-08 21:40:35.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/browser_view_prefs.cc.orig 2024-07-24 02:44:29.524092400 +0000
+++ chrome/browser/ui/browser_view_prefs.cc
-@@ -26,7 +26,7 @@ namespace {
- // Old values: 0 = SHRINK (default), 1 = STACKED.
- const char kTabStripLayoutType[] = "tab_strip_layout_type";
+@@ -15,7 +15,7 @@
+
+ namespace {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
bool GetCustomFramePrefDefault() {
- #if defined(USE_OZONE)
- if (features::IsUsingOzonePlatform()) {
-@@ -51,7 +51,7 @@ void RegisterBrowserViewLocalPrefs(PrefR
+ #if BUILDFLAG(IS_OZONE)
+ return ui::OzonePlatform::GetInstance()
+@@ -31,7 +31,7 @@ bool GetCustomFramePrefDefault() {
void RegisterBrowserViewProfilePrefs(
user_prefs::PrefRegistrySyncable* registry) {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
registry->RegisterBooleanPref(prefs::kUseCustomChromeFrame,
GetCustomFramePrefDefault());
- #endif // defined(OS_LINUX) && defined(!OS_CHROMEOS)
+ #endif
diff --git a/chromium/patches/patch-chrome_browser_ui_chrome__pages.cc b/chromium/patches/patch-chrome_browser_ui_chrome__pages.cc
new file mode 100644
index 0000000000..7f45a19ed4
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_chrome__pages.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/chrome_pages.cc.orig 2024-07-24 02:44:29.524092400 +0000
++++ chrome/browser/ui/chrome_pages.cc
+@@ -86,7 +86,7 @@
+ #include "components/signin/public/identity_manager/identity_manager.h"
+ #endif
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/web_applications/web_app_utils.h"
+ #endif
+
+@@ -379,7 +379,7 @@ void ShowChromeTips(Browser* browser) {
+ ShowSingletonTab(browser, GURL(kChromeTipsURL));
+ }
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void ShowChromeWhatsNew(Browser* browser) {
+ ShowSingletonTab(browser, GURL(kChromeUIWhatsNewURL));
+ }
+@@ -721,7 +721,7 @@ void ShowShortcutCustomizationApp(Profil
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH)
+ }
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void ShowWebAppSettingsImpl(Browser* browser,
+ Profile* profile,
+ const std::string& app_id,
diff --git a/chromium/patches/patch-chrome_browser_ui_chrome__pages.h b/chromium/patches/patch-chrome_browser_ui_chrome__pages.h
new file mode 100644
index 0000000000..250a570931
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_chrome__pages.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/chrome_pages.h.orig 2024-07-24 02:44:29.524092400 +0000
++++ chrome/browser/ui/chrome_pages.h
+@@ -39,7 +39,7 @@ namespace signin {
+ enum class ConsentLevel;
+ } // namespace signin
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ namespace web_app {
+ enum class AppSettingsPageEntryPoint;
+ } // namespace web_app
+@@ -196,7 +196,7 @@ void ShowShortcutCustomizationApp(Profil
+ const std::string& category);
+ #endif
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Show chrome://app-settings/<app-id> page.
+ void ShowWebAppSettings(Browser* browser,
+ const std::string& app_id,
diff --git a/chromium/patches/patch-chrome_browser_ui_color_native__chrome__color__mixer.cc b/chromium/patches/patch-chrome_browser_ui_color_native__chrome__color__mixer.cc
new file mode 100644
index 0000000000..c876531675
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_color_native__chrome__color__mixer.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/color/native_chrome_color_mixer.cc.orig 2024-07-24 02:44:29.544094300 +0000
++++ chrome/browser/ui/color/native_chrome_color_mixer.cc
+@@ -7,7 +7,7 @@
+ #include "build/build_config.h"
+
+ #if !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_MAC) && \
+- !BUILDFLAG(IS_WIN)
++ !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_BSD)
+ void AddNativeChromeColorMixer(ui::ColorProvider* provider,
+ const ui::ColorProviderKey& key) {}
+ #endif
diff --git a/chromium/patches/patch-chrome_browser_ui_exclusive__access_exclusive__access__bubble.cc b/chromium/patches/patch-chrome_browser_ui_exclusive__access_exclusive__access__bubble.cc
deleted file mode 100644
index bd3b6857b6..0000000000
--- a/chromium/patches/patch-chrome_browser_ui_exclusive__access_exclusive__access__bubble.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/ui/exclusive_access/exclusive_access_bubble.cc.orig 2020-07-08 21:40:35.000000000 +0000
-+++ chrome/browser/ui/exclusive_access/exclusive_access_bubble.cc
-@@ -16,7 +16,7 @@
-
- // NOTE(koz): Linux doesn't use the thick shadowed border, so we add padding
- // here.
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- const int ExclusiveAccessBubble::kPaddingPx = 8;
- #else
- const int ExclusiveAccessBubble::kPaddingPx = 15;
diff --git a/chromium/patches/patch-chrome_browser_ui_omnibox_omnibox__pedal__implementations.cc b/chromium/patches/patch-chrome_browser_ui_omnibox_omnibox__pedal__implementations.cc
new file mode 100644
index 0000000000..ff2225c15d
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_omnibox_omnibox__pedal__implementations.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/omnibox/omnibox_pedal_implementations.cc.orig 2024-07-24 02:44:29.596099400 +0000
++++ chrome/browser/ui/omnibox/omnibox_pedal_implementations.cc
+@@ -1978,7 +1978,7 @@ const gfx::VectorIcon& GetSharingHubVect
+ return omnibox::kShareMacChromeRefreshIcon;
+ #elif BUILDFLAG(IS_WIN)
+ return omnibox::kShareWinChromeRefreshIcon;
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return omnibox::kShareLinuxChromeRefreshIcon;
+ #else
+ return omnibox::kShareChromeRefreshIcon;
diff --git a/chromium/patches/patch-chrome_browser_ui_passwords_bubble__controllers_relaunch__chrome__bubble__controller.cc b/chromium/patches/patch-chrome_browser_ui_passwords_bubble__controllers_relaunch__chrome__bubble__controller.cc
new file mode 100644
index 0000000000..b1eb9425dd
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_passwords_bubble__controllers_relaunch__chrome__bubble__controller.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/passwords/bubble_controllers/relaunch_chrome_bubble_controller.cc.orig 2024-07-24 02:44:29.608100700 +0000
++++ chrome/browser/ui/passwords/bubble_controllers/relaunch_chrome_bubble_controller.cc
+@@ -44,7 +44,7 @@ std::u16string RelaunchChromeBubbleContr
+ #if BUILDFLAG(IS_MAC)
+ ? IDS_PASSWORD_MANAGER_RELAUNCH_CHROME_BUBBLE_TITLE_BRANDED
+ : IDS_PASSWORD_MANAGER_RELAUNCH_CHROME_BUBBLE_TITLE_NON_BRANDED
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ ? IDS_PASSWORD_MANAGER_RELAUNCH_CHROME_BUBBLE_TITLE_LINUX_BRANDED
+ : IDS_PASSWORD_MANAGER_RELAUNCH_CHROME_BUBBLE_TITLE_LINUX_NON_BRANDED
+ #endif
+@@ -57,7 +57,7 @@ std::u16string RelaunchChromeBubbleContr
+ #if BUILDFLAG(IS_MAC)
+ ? IDS_PASSWORD_MANAGER_RELAUNCH_CHROME_BUBBLE_DESCRIPTION_BRANDED
+ : IDS_PASSWORD_MANAGER_RELAUNCH_CHROME_BUBBLE_DESCRIPTION_NON_BRANDED
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ ? IDS_PASSWORD_MANAGER_RELAUNCH_CHROME_BUBBLE_DESCRIPTION_LINUX_BRANDED
+ : IDS_PASSWORD_MANAGER_RELAUNCH_CHROME_BUBBLE_DESCRIPTION_LINUX_NON_BRANDED
+ #endif
diff --git a/chromium/patches/patch-chrome_browser_ui_passwords_manage__passwords__ui__controller.cc b/chromium/patches/patch-chrome_browser_ui_passwords_manage__passwords__ui__controller.cc
new file mode 100644
index 0000000000..7f428317bf
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_passwords_manage__passwords__ui__controller.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/passwords/manage_passwords_ui_controller.cc.orig 2024-07-24 02:44:29.608100700 +0000
++++ chrome/browser/ui/passwords/manage_passwords_ui_controller.cc
+@@ -97,7 +97,7 @@ namespace {
+
+ using Logger = autofill::SavePasswordProgressLogger;
+
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Should be kept in sync with constant declared in
+ // bubble_controllers/relaunch_chrome_bubble_controller.cc.
+ constexpr int kMaxNumberOfTimesKeychainErrorBubbleIsShown = 3;
+@@ -504,7 +504,7 @@ void ManagePasswordsUIController::OnBiom
+ }
+
+ void ManagePasswordsUIController::OnKeychainError() {
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ CHECK(!dialog_controller_);
+ PrefService* prefs =
+ Profile::FromBrowserContext(web_contents()->GetBrowserContext())
diff --git a/chromium/patches/patch-chrome_browser_ui_sad__tab.cc b/chromium/patches/patch-chrome_browser_ui_sad__tab.cc
index 2a0165150a..b9eea7b728 100644
--- a/chromium/patches/patch-chrome_browser_ui_sad__tab.cc
+++ b/chromium/patches/patch-chrome_browser_ui_sad__tab.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- chrome/browser/ui/sad_tab.cc.orig 2020-07-08 21:40:35.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/sad_tab.cc.orig 2024-07-24 02:44:29.628102500 +0000
+++ chrome/browser/ui/sad_tab.cc
-@@ -188,7 +188,7 @@ std::vector<int> SadTab::GetSubMessages(
+@@ -176,7 +176,7 @@ std::vector<int> SadTab::GetSubMessages(
// Only show Incognito suggestion if not already in Incognito mode.
if (!web_contents_->GetBrowserContext()->IsOffTheRecord())
message_ids.insert(message_ids.begin(), IDS_SAD_TAB_RELOAD_INCOGNITO);
--#if defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// Note: on macOS, Linux and ChromeOS, the first bullet is either one of
// IDS_SAD_TAB_RELOAD_CLOSE_TABS or IDS_SAD_TAB_RELOAD_CLOSE_NOTABS
// followed by one of the above suggestions.
diff --git a/chromium/patches/patch-chrome_browser_ui_sharing__hub_sharing__hub__bubble__controller.h b/chromium/patches/patch-chrome_browser_ui_sharing__hub_sharing__hub__bubble__controller.h
new file mode 100644
index 0000000000..95a7d37947
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_sharing__hub_sharing__hub__bubble__controller.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/sharing_hub/sharing_hub_bubble_controller.h.orig 2024-07-24 02:44:29.640103800 +0000
++++ chrome/browser/ui/sharing_hub/sharing_hub_bubble_controller.h
+@@ -36,7 +36,7 @@ class SharingHubBubbleController {
+ // Returns true if the omnibox icon should be shown.
+ virtual bool ShouldOfferOmniboxIcon() = 0;
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // This method returns the set of first-party actions, which are actions
+ // internal to Chrome. Third-party actions (those outside Chrome) are
+ // currently not supported.
diff --git a/chromium/patches/patch-chrome_browser_ui_signin_signin__view__controller.cc b/chromium/patches/patch-chrome_browser_ui_signin_signin__view__controller.cc
new file mode 100644
index 0000000000..6ed0abbf7a
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_signin_signin__view__controller.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/signin/signin_view_controller.cc.orig 2024-07-24 02:44:29.644104000 +0000
++++ chrome/browser/ui/signin/signin_view_controller.cc
+@@ -492,7 +492,7 @@ void SigninViewController::ShowModalMana
+ signin::SigninChoiceCallback process_user_choice_callback,
+ base::OnceClosure done_callback) {
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_LACROS)
++ BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ CloseModalSignin();
+ dialog_ = std::make_unique<SigninModalDialogImpl>(
+ SigninViewControllerDelegate::CreateManagedUserNoticeDelegate(
diff --git a/chromium/patches/patch-chrome_browser_ui_signin_signin__view__controller__delegate.h b/chromium/patches/patch-chrome_browser_ui_signin_signin__view__controller__delegate.h
new file mode 100644
index 0000000000..a3f7036c1a
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_signin_signin__view__controller__delegate.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/signin/signin_view_controller_delegate.h.orig 2024-07-24 02:44:29.644104000 +0000
++++ chrome/browser/ui/signin/signin_view_controller_delegate.h
+@@ -83,7 +83,7 @@ class SigninViewControllerDelegate {
+ #endif // BUILDFLAG(ENABLE_DICE_SUPPORT) || BUILDFLAG(IS_CHROMEOS_LACROS)
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_LACROS)
++ BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ // Returns a platform-specific SigninViewContolllerDelegate instance that
+ // displays the managed user notice modal dialog. The returned object
+ // should delete itself when the window it's managing is closed.
diff --git a/chromium/patches/patch-chrome_browser_ui_startup_bad__flags__prompt.cc b/chromium/patches/patch-chrome_browser_ui_startup_bad__flags__prompt.cc
index 98f7f83ab6..50e915f06e 100644
--- a/chromium/patches/patch-chrome_browser_ui_startup_bad__flags__prompt.cc
+++ b/chromium/patches/patch-chrome_browser_ui_startup_bad__flags__prompt.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- chrome/browser/ui/startup/bad_flags_prompt.cc.orig 2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/startup/bad_flags_prompt.cc.orig 2024-07-24 02:44:29.644104000 +0000
+++ chrome/browser/ui/startup/bad_flags_prompt.cc
-@@ -88,7 +88,7 @@ static const char* kBadFlags[] = {
- extensions::switches::kExtensionsOnChromeURLs,
- #endif
+@@ -107,7 +107,7 @@ const char* const kBadFlags[] = {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
// Speech dispatcher is buggy, it can crash and it can make Chrome freeze.
// http://crbug.com/327295
switches::kEnableSpeechDispatcher,
diff --git a/chromium/patches/patch-chrome_browser_ui_startup_startup__browser__creator.cc b/chromium/patches/patch-chrome_browser_ui_startup_startup__browser__creator.cc
index f462eb908c..fc8d1d6f1a 100644
--- a/chromium/patches/patch-chrome_browser_ui_startup_startup__browser__creator.cc
+++ b/chromium/patches/patch-chrome_browser_ui_startup_startup__browser__creator.cc
@@ -1,22 +1,44 @@
$NetBSD$
---- chrome/browser/ui/startup/startup_browser_creator.cc.orig 2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/startup/startup_browser_creator.cc.orig 2024-07-24 02:44:29.648104400 +0000
+++ chrome/browser/ui/startup/startup_browser_creator.cc
-@@ -303,7 +303,7 @@ bool IsSilentLaunchEnabled(const base::C
- // true, send a warning if guest mode is requested but not allowed by policy.
- bool IsGuestModeEnforced(const base::CommandLine& command_line,
- bool show_warning) {
--#if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_BSD)
- PrefService* service = g_browser_process->local_state();
- DCHECK(service);
+@@ -137,7 +137,7 @@
+ #include "chrome/credential_provider/common/gcp_strings.h"
+ #endif // BUILDFLAG(IS_WIN)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/headless/headless_mode_util.h"
+ #include "chrome/browser/ui/startup/web_app_info_recorder_utils.h"
+ #include "components/headless/policy/headless_mode_policy.h"
+@@ -966,7 +966,7 @@ bool StartupBrowserCreator::ProcessCmdLi
+ TRACE_EVENT0("startup", "StartupBrowserCreator::ProcessCmdLineImpl");
+ ComputeAndRecordLaunchMode(command_line);
-@@ -687,7 +687,7 @@ bool StartupBrowserCreator::ProcessCmdLi
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ if (headless::IsHeadlessMode() &&
+ headless::HeadlessModePolicy::IsHeadlessModeDisabled(
+ g_browser_process->local_state())) {
+@@ -1079,7 +1079,7 @@ bool StartupBrowserCreator::ProcessCmdLi
+ silent_launch = true;
}
- #endif // OS_CHROMEOS
--#if defined(TOOLKIT_VIEWS) && defined(USE_X11)
-+#if defined(TOOLKIT_VIEWS) && defined(USE_X11) && !defined(OS_BSD)
- // TODO(https://crbug.com/1097696): make it available on ozone/linux.
- if (!features::IsUsingOzonePlatform())
- ui::TouchFactory::SetTouchDeviceListFromCommandLine();
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ // Writes open and installed web apps to the specified file without
+ // launching a new browser window or tab.
+ if (base::FeatureList::IsEnabled(features::kListWebAppsSwitch) &&
+@@ -1289,7 +1289,7 @@ bool StartupBrowserCreator::ProcessCmdLi
+ CHECK_EQ(profile_info.mode, StartupProfileMode::kBrowserWindow)
+ << "Failed launch with app: couldn't pick a profile";
+ std::string app_id = command_line.GetSwitchValueASCII(switches::kAppId);
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // If Chrome Apps are deprecated and |app_id| is a Chrome App, display the
+ // deprecation UI instead of launching the app.
+ if (apps::OpenDeprecatedApplicationPrompt(privacy_safe_profile, app_id))
diff --git a/chromium/patches/patch-chrome_browser_ui_startup_startup__browser__creator__impl.cc b/chromium/patches/patch-chrome_browser_ui_startup_startup__browser__creator__impl.cc
new file mode 100644
index 0000000000..7681e78e7f
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_startup_startup__browser__creator__impl.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/startup/startup_browser_creator_impl.cc.orig 2024-07-24 02:44:29.652104900 +0000
++++ chrome/browser/ui/startup/startup_browser_creator_impl.cc
+@@ -86,7 +86,7 @@
+ #include "chromeos/startup/browser_params_proxy.h"
+ #endif
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/webui/whats_new/whats_new_fetcher.h"
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+
+@@ -237,7 +237,7 @@ Browser* StartupBrowserCreatorImpl::Open
+ // at the state of the MessageLoop.
+ Browser::CreateParams params = Browser::CreateParams(profile_, false);
+ params.creation_source = Browser::CreationSource::kStartupCreator;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ params.startup_id =
+ command_line_->GetSwitchValueASCII("desktop-startup-id");
+ #endif
+@@ -267,7 +267,7 @@ Browser* StartupBrowserCreatorImpl::Open
+ continue;
+ }
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Start the What's New fetch but don't add the tab at this point. The tab
+ // will open as the foreground tab only if the remote content can be
+ // retrieved successfully. This prevents needing to automatically close the
diff --git a/chromium/patches/patch-chrome_browser_ui_startup_startup__tab__provider.cc b/chromium/patches/patch-chrome_browser_ui_startup_startup__tab__provider.cc
new file mode 100644
index 0000000000..9ae188a634
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_startup_startup__tab__provider.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/startup/startup_tab_provider.cc.orig 2024-07-24 02:44:29.652104900 +0000
++++ chrome/browser/ui/startup/startup_tab_provider.cc
+@@ -61,7 +61,7 @@
+ #include "extensions/browser/extension_registry.h"
+ #endif // !BUILDFLAG(IS_ANDROID)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/headless/headless_mode_util.h"
+ #endif
+
+@@ -105,7 +105,7 @@ bool ValidateUrl(const GURL& url) {
+ #if BUILDFLAG(IS_CHROMEOS_LACROS)
+ // In ChromeOS, allow any URL pattern that matches chrome:// scheme.
+ url_scheme_is_chrome = url.SchemeIs(content::kChromeUIScheme);
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ // In Headless mode, allow any URL pattern that matches chrome:// scheme if
+ // the user explicitly allowed it.
+ if (headless::IsHeadlessMode() && url.SchemeIs(content::kChromeUIScheme)) {
diff --git a/chromium/patches/patch-chrome_browser_ui_tab__helpers.cc b/chromium/patches/patch-chrome_browser_ui_tab__helpers.cc
index 9467bb7791..772ef40ca2 100644
--- a/chromium/patches/patch-chrome_browser_ui_tab__helpers.cc
+++ b/chromium/patches/patch-chrome_browser_ui_tab__helpers.cc
@@ -1,27 +1,32 @@
$NetBSD$
---- chrome/browser/ui/tab_helpers.cc.orig 2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/tab_helpers.cc.orig 2024-07-24 02:44:29.656105300 +0000
+++ chrome/browser/ui/tab_helpers.cc
-@@ -142,7 +142,7 @@
- #include "chrome/browser/ui/app_list/search/cros_action_history/cros_action_recorder_tab_tracker.h"
+@@ -243,7 +243,7 @@
#endif
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "chrome/browser/ui/blocked_content/framebust_block_tab_helper.h"
+ #include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/hats/hats_helper.h"
- #endif
-@@ -385,11 +385,11 @@ void TabHelpers::AttachTabHelpers(WebCon
- #endif
-
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
-- (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+ ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
+@@ -721,12 +721,12 @@ void TabHelpers::AttachTabHelpers(WebCon
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
+- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
metrics::DesktopSessionDurationObserver::CreateForWebContents(web_contents);
#endif
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
if (base::FeatureList::IsEnabled(
- features::kHappinessTrackingSurveysForDesktop) ||
- base::FeatureList::IsEnabled(
+ features::kHappinessTrackingSurveysForDesktopDemo) ||
+ base::FeatureList::IsEnabled(features::kTrustSafetySentimentSurvey) ||
diff --git a/chromium/patches/patch-chrome_browser_ui_tabs_features.cc b/chromium/patches/patch-chrome_browser_ui_tabs_features.cc
new file mode 100644
index 0000000000..4e82cc86e2
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_tabs_features.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/tabs/features.cc.orig 2024-07-24 02:44:29.660105700 +0000
++++ chrome/browser/ui/tabs/features.cc
+@@ -16,7 +16,7 @@ BASE_FEATURE(kTabSearchPositionSetting,
+ bool CanShowTabSearchPositionSetting() {
+ // Mac and other platforms will always have the tab search position in the
+ // correct location, cros/linux/win git the user the option to change.
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ return base::FeatureList::IsEnabled(kTabSearchPositionSetting);
+ #else
+ return false;
diff --git a/chromium/patches/patch-chrome_browser_ui_tabs_tab__strip__prefs.cc b/chromium/patches/patch-chrome_browser_ui_tabs_tab__strip__prefs.cc
new file mode 100644
index 0000000000..6849994455
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_tabs_tab__strip__prefs.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/tabs/tab_strip_prefs.cc.orig 2024-07-24 02:44:29.672106700 +0000
++++ chrome/browser/ui/tabs/tab_strip_prefs.cc
+@@ -20,7 +20,7 @@ namespace tabs {
+
+ bool GetDefaultTabSearchRightAligned() {
+ // These platforms are all left aligned, the others should be right.
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ return false;
+ #else
+ return true;
diff --git a/chromium/patches/patch-chrome_browser_ui_task__manager_task__manager__columns.cc b/chromium/patches/patch-chrome_browser_ui_task__manager_task__manager__columns.cc
index 31dbf5cc95..c1bdb51457 100644
--- a/chromium/patches/patch-chrome_browser_ui_task__manager_task__manager__columns.cc
+++ b/chromium/patches/patch-chrome_browser_ui_task__manager_task__manager__columns.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- chrome/browser/ui/task_manager/task_manager_columns.cc.orig 2020-07-08 21:40:36.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/task_manager/task_manager_columns.cc.orig 2024-07-24 02:44:29.676107200 +0000
+++ chrome/browser/ui/task_manager/task_manager_columns.cc
@@ -93,7 +93,7 @@ const TableColumnData kColumns[] = {
- base::size("100000") * kCharWidth, -1, true, false, false},
+ std::size("100000") * kCharWidth, -1, true, false, false},
#endif
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
{IDS_TASK_MANAGER_OPEN_FD_COUNT_COLUMN, ui::TableColumn::RIGHT, -1, 0,
- base::size("999") * kCharWidth, -1, true, false, false},
- #endif // defined(OS_LINUX) || defined(OS_MACOSX)
+ std::size("999") * kCharWidth, -1, true, false, false},
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
diff --git a/chromium/patches/patch-chrome_browser_ui_task__manager_task__manager__table__model.cc b/chromium/patches/patch-chrome_browser_ui_task__manager_task__manager__table__model.cc
index b278271f82..fa6dee1c7f 100644
--- a/chromium/patches/patch-chrome_browser_ui_task__manager_task__manager__table__model.cc
+++ b/chromium/patches/patch-chrome_browser_ui_task__manager_task__manager__table__model.cc
@@ -1,31 +1,35 @@
$NetBSD$
---- chrome/browser/ui/task_manager/task_manager_table_model.cc.orig 2020-07-08 21:40:36.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/task_manager/task_manager_table_model.cc.orig 2024-07-24 02:44:29.676107200 +0000
+++ chrome/browser/ui/task_manager/task_manager_table_model.cc
-@@ -450,7 +450,7 @@ base::string16 TaskManagerTableModel::Ge
+@@ -454,7 +454,7 @@ std::u16string TaskManagerTableModel::Ge
? stringifier_->backgrounded_string()
: stringifier_->foregrounded_string();
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
case IDS_TASK_MANAGER_OPEN_FD_COUNT_COLUMN: {
const int fd_count = observed_task_manager()->GetOpenFdCount(tasks_[row]);
return fd_count >= 0 ? base::FormatNumber(fd_count)
-@@ -616,7 +616,7 @@ int TaskManagerTableModel::CompareValues
+@@ -621,7 +621,7 @@ int TaskManagerTableModel::CompareValues
return BooleanCompare(is_proc1_bg, is_proc2_bg);
}
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
case IDS_TASK_MANAGER_OPEN_FD_COUNT_COLUMN: {
const int proc1_fd_count =
observed_task_manager()->GetOpenFdCount(tasks_[row1]);
-@@ -790,7 +790,7 @@ void TaskManagerTableModel::UpdateRefres
+@@ -806,7 +806,7 @@ void TaskManagerTableModel::UpdateRefres
type = REFRESH_TYPE_KEEPALIVE_COUNT;
break;
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
case IDS_TASK_MANAGER_OPEN_FD_COUNT_COLUMN:
type = REFRESH_TYPE_FD_COUNT;
break;
diff --git a/chromium/patches/patch-chrome_browser_ui_test_popup__browsertest.cc b/chromium/patches/patch-chrome_browser_ui_test_popup__browsertest.cc
new file mode 100644
index 0000000000..7bc6a9436e
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_test_popup__browsertest.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/test/popup_browsertest.cc.orig 2024-07-24 02:44:29.676107200 +0000
++++ chrome/browser/ui/test/popup_browsertest.cc
+@@ -74,7 +74,7 @@ IN_PROC_BROWSER_TEST_F(PopupTest, OpenLe
+ const display::Display display = GetDisplayNearestBrowser(popup);
+ gfx::Rect expected(popup->window()->GetBounds().size());
+ expected.AdjustToFit(display.work_area());
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // TODO(crbug.com/40815883) Desktop Linux window bounds are inaccurate.
+ expected.Outset(50);
+ EXPECT_TRUE(expected.Contains(popup->window()->GetBounds()))
+@@ -106,7 +106,7 @@ IN_PROC_BROWSER_TEST_F(PopupTest, OpenCl
+ // The popup should be constrained to the opener's available display space.
+ EXPECT_EQ(display, GetDisplayNearestBrowser(popup));
+ gfx::Rect work_area(display.work_area());
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // TODO(crbug.com/40815883) Desktop Linux bounds flakily extend outside the
+ // work area on trybots, when opening with excessive width and height, e.g.:
+ // width=${screen.availWidth+300},height=${screen.availHeight+300} yields:
diff --git a/chromium/patches/patch-chrome_browser_ui_test_test__browser__ui.cc b/chromium/patches/patch-chrome_browser_ui_test_test__browser__ui.cc
new file mode 100644
index 0000000000..bbeea6fc5b
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_test_test__browser__ui.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/test/test_browser_ui.cc.orig 2024-07-24 02:44:29.676107200 +0000
++++ chrome/browser/ui/test/test_browser_ui.cc
+@@ -22,7 +22,7 @@
+
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \
+ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
+ #include "content/public/common/content_switches.h"
+ #include "ui/base/test/skia_gold_matching_algorithm.h"
+@@ -39,7 +39,7 @@
+ // TODO(crbug.com/40625383) support Mac for pixel tests.
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_WIN) || (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++#if BUILDFLAG(IS_WIN) || (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
+ #define SUPPORTS_PIXEL_TEST
+ #endif
+
diff --git a/chromium/patches/patch-chrome_browser_ui_ui__features.cc b/chromium/patches/patch-chrome_browser_ui_ui__features.cc
new file mode 100644
index 0000000000..ec3f47dc48
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_ui__features.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/ui_features.cc.orig 2024-07-24 02:44:29.688108400 +0000
++++ chrome/browser/ui/ui_features.cc
+@@ -120,7 +120,7 @@ BASE_FEATURE(kEvDetailsInPageInfo,
+ "EvDetailsInPageInfo",
+ base::FEATURE_ENABLED_BY_DEFAULT);
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Enables the feature to remove the last confirmation dialog when relaunching
+ // to update Chrome.
+ BASE_FEATURE(kFewerUpdateConfirmations,
+@@ -426,7 +426,7 @@ BASE_FEATURE(kTopChromeWebUIUsesSpareRen
+ "TopChromeWebUIUsesSpareRenderer",
+ base::FEATURE_ENABLED_BY_DEFAULT);
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Enables alternate update-related text to be displayed in browser app menu
+ // button, menu item and confirmation dialog.
+ BASE_FEATURE(kUpdateTextOptions,
diff --git a/chromium/patches/patch-chrome_browser_ui_ui__features.h b/chromium/patches/patch-chrome_browser_ui_ui__features.h
new file mode 100644
index 0000000000..e8da93a3b7
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_ui__features.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/ui_features.h.orig 2024-07-24 02:44:29.688108400 +0000
++++ chrome/browser/ui/ui_features.h
+@@ -85,7 +85,7 @@ BASE_DECLARE_FEATURE(kAccessCodeCastUI);
+
+ BASE_DECLARE_FEATURE(kEvDetailsInPageInfo);
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ BASE_DECLARE_FEATURE(kFewerUpdateConfirmations);
+ #endif
+
+@@ -256,7 +256,7 @@ bool IsToolbarPinningEnabled();
+
+ BASE_DECLARE_FEATURE(kTopChromeWebUIUsesSpareRenderer);
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ BASE_DECLARE_FEATURE(kUpdateTextOptions);
+ extern const base::FeatureParam<int> kUpdateTextOptionNumber;
+ #endif
diff --git a/chromium/patches/patch-chrome_browser_ui_views_accelerator__table.cc b/chromium/patches/patch-chrome_browser_ui_views_accelerator__table.cc
index 1b54f5629e..af6aa2a9f8 100644
--- a/chromium/patches/patch-chrome_browser_ui_views_accelerator__table.cc
+++ b/chromium/patches/patch-chrome_browser_ui_views_accelerator__table.cc
@@ -1,31 +1,49 @@
$NetBSD$
---- chrome/browser/ui/views/accelerator_table.cc.orig 2020-07-08 21:40:36.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/accelerator_table.cc.orig 2024-07-24 02:44:29.692108600 +0000
+++ chrome/browser/ui/views/accelerator_table.cc
-@@ -52,7 +52,7 @@ const AcceleratorMapping kAcceleratorMap
+@@ -72,11 +72,11 @@ const AcceleratorMapping kAcceleratorMap
{ui::VKEY_S, ui::EF_PLATFORM_ACCELERATOR, IDC_SAVE_PAGE},
{ui::VKEY_9, ui::EF_PLATFORM_ACCELERATOR, IDC_SELECT_LAST_TAB},
{ui::VKEY_NUMPAD9, ui::EF_PLATFORM_ACCELERATOR, IDC_SELECT_LAST_TAB},
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
{ui::VKEY_9, ui::EF_ALT_DOWN, IDC_SELECT_LAST_TAB},
{ui::VKEY_NUMPAD9, ui::EF_ALT_DOWN, IDC_SELECT_LAST_TAB},
+ #endif // BUILDFLAG(IS_LINUX)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
{ui::VKEY_NEXT, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, IDC_MOVE_TAB_NEXT},
-@@ -82,7 +82,7 @@ const AcceleratorMapping kAcceleratorMap
+ {ui::VKEY_PRIOR, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN,
+ IDC_MOVE_TAB_PREVIOUS},
+@@ -104,7 +104,7 @@ const AcceleratorMapping kAcceleratorMap
{ui::VKEY_NUMPAD7, ui::EF_PLATFORM_ACCELERATOR, IDC_SELECT_TAB_6},
{ui::VKEY_8, ui::EF_PLATFORM_ACCELERATOR, IDC_SELECT_TAB_7},
{ui::VKEY_NUMPAD8, ui::EF_PLATFORM_ACCELERATOR, IDC_SELECT_TAB_7},
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
{ui::VKEY_1, ui::EF_ALT_DOWN, IDC_SELECT_TAB_0},
{ui::VKEY_NUMPAD1, ui::EF_ALT_DOWN, IDC_SELECT_TAB_0},
{ui::VKEY_2, ui::EF_ALT_DOWN, IDC_SELECT_TAB_1},
-@@ -126,7 +126,7 @@ const AcceleratorMapping kAcceleratorMap
+@@ -154,7 +154,7 @@ const AcceleratorMapping kAcceleratorMap
IDC_SHOW_AVATAR_MENU},
- // Platform-specific key maps.
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+ // Platform-specific key maps.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
{ui::VKEY_BROWSER_BACK, ui::EF_NONE, IDC_BACK},
{ui::VKEY_BROWSER_FORWARD, ui::EF_NONE, IDC_FORWARD},
{ui::VKEY_BROWSER_HOME, ui::EF_NONE, IDC_HOME},
+@@ -249,7 +249,7 @@ const AcceleratorMapping kAcceleratorMap
+ #endif // !BUILDFLAG(IS_CHROMEOS)
+ #endif // !BUILDFLAG(IS_MAC)
+ #if BUILDFLAG(ENABLE_SCREEN_AI_SERVICE) && \
+- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD))
+ {ui::VKEY_S, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN,
+ IDC_CONTENT_CONTEXT_RUN_LAYOUT_EXTRACTION},
+ #endif
diff --git a/chromium/patches/patch-chrome_browser_ui_views_apps_chrome__native__app__window__views__aura.cc b/chromium/patches/patch-chrome_browser_ui_views_apps_chrome__native__app__window__views__aura.cc
new file mode 100644
index 0000000000..935fefd036
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_apps_chrome__native__app__window__views__aura.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/apps/chrome_native_app_window_views_aura.cc.orig 2024-07-24 02:44:29.696109000 +0000
++++ chrome/browser/ui/views/apps/chrome_native_app_window_views_aura.cc
+@@ -19,7 +19,7 @@
+ #include "ui/gfx/image/image_skia.h"
+ #include "ui/views/widget/widget.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/shell_integration_linux.h"
+ #endif
+
+@@ -55,7 +55,7 @@ void ChromeNativeAppWindowViewsAura::OnB
+ const AppWindow::CreateParams& create_params,
+ views::Widget::InitParams* init_params,
+ views::Widget* widget) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ std::string app_name =
+ web_app::GenerateApplicationNameFromAppId(app_window()->extension_id());
+ // Set up a custom WM_CLASS for app windows. This allows task switchers in
diff --git a/chromium/patches/patch-chrome_browser_ui_views_chrome__browser__main__extra__parts__views.cc b/chromium/patches/patch-chrome_browser_ui_views_chrome__browser__main__extra__parts__views.cc
index 684da9e64a..1cfe8ce953 100644
--- a/chromium/patches/patch-chrome_browser_ui_views_chrome__browser__main__extra__parts__views.cc
+++ b/chromium/patches/patch-chrome_browser_ui_views_chrome__browser__main__extra__parts__views.cc
@@ -1,22 +1,26 @@
$NetBSD$
---- chrome/browser/ui/views/chrome_browser_main_extra_parts_views.cc.orig 2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/chrome_browser_main_extra_parts_views.cc.orig 2024-07-24 02:44:29.728112200 +0000
+++ chrome/browser/ui/views/chrome_browser_main_extra_parts_views.cc
-@@ -32,7 +32,7 @@
+@@ -38,7 +38,7 @@
#include "ui/wm/core/wm_state.h"
#endif // defined(USE_AURA)
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
-@@ -99,7 +99,7 @@ void ChromeBrowserMainExtraPartsViews::P
- devtools_server_->tracing_agent());
- }
+@@ -131,7 +131,7 @@ void ChromeBrowserMainExtraPartsViews::P
+ return controller;
+ }));
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
// On the Linux desktop, we want to prevent the user from logging in as root,
// so that we don't destroy the profile. Now that we have some minimal ui
// initialized, check to see if we're running as root and bail if we are.
diff --git a/chromium/patches/patch-chrome_browser_ui_views_chrome__views__delegate.h b/chromium/patches/patch-chrome_browser_ui_views_chrome__views__delegate.h
index 3927136d60..304ec85ffe 100644
--- a/chromium/patches/patch-chrome_browser_ui_views_chrome__views__delegate.h
+++ b/chromium/patches/patch-chrome_browser_ui_views_chrome__views__delegate.h
@@ -1,13 +1,22 @@
$NetBSD$
---- chrome/browser/ui/views/chrome_views_delegate.h.orig 2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/chrome_views_delegate.h.orig 2024-07-24 02:44:29.728112200 +0000
+++ chrome/browser/ui/views/chrome_views_delegate.h
-@@ -44,7 +44,7 @@ class ChromeViewsDelegate : public views
- HICON GetSmallWindowIcon() const override;
- int GetAppbarAutohideEdges(HMONITOR monitor,
+@@ -59,11 +59,11 @@ class ChromeViewsDelegate : public views
base::OnceClosure callback) override;
--#elif defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#elif (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- gfx::ImageSkia* GetDefaultWindowIcon() const override;
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
bool WindowManagerProvidesTitleBar(bool maximized) override;
#endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ gfx::ImageSkia* GetDefaultWindowIcon() const override;
+ #endif
+
diff --git a/chromium/patches/patch-chrome_browser_ui_views_chrome__views__delegate__linux.cc b/chromium/patches/patch-chrome_browser_ui_views_chrome__views__delegate__linux.cc
new file mode 100644
index 0000000000..e1df7d7823
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_chrome__views__delegate__linux.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/chrome_views_delegate_linux.cc.orig 2024-07-24 02:44:29.728112200 +0000
++++ chrome/browser/ui/views/chrome_views_delegate_linux.cc
+@@ -26,7 +26,7 @@ bool IsDesktopEnvironmentUnity() {
+ return desktop_env == base::nix::DESKTOP_ENVIRONMENT_UNITY;
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ int GetWindowIconResourceId() {
+ #if BUILDFLAG(GOOGLE_CHROME_BRANDING)
+ switch (chrome::GetChannel()) {
+@@ -80,7 +80,7 @@ views::NativeWidget* ChromeViewsDelegate
+ delegate);
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ gfx::ImageSkia* ChromeViewsDelegate::GetDefaultWindowIcon() const {
+ ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
+ return rb.GetImageSkiaNamed(GetWindowIconResourceId());
diff --git a/chromium/patches/patch-chrome_browser_ui_views_compose_compose__dialog__view.cc b/chromium/patches/patch-chrome_browser_ui_views_compose_compose__dialog__view.cc
new file mode 100644
index 0000000000..a38f7275d8
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_compose_compose__dialog__view.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/compose/compose_dialog_view.cc.orig 2024-07-24 02:44:29.732112600 +0000
++++ chrome/browser/ui/views/compose/compose_dialog_view.cc
+@@ -159,7 +159,7 @@ void ComposeDialogView::OnBeforeBubbleWi
+ views::Widget::InitParams* params,
+ views::Widget* widget) const {
+ WebUIBubbleDialogView::OnBeforeBubbleWidgetInit(params, widget);
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // In linux, windows may be clipped to their anchors' bounds,
+ // resulting in visual errors, unless they use accelerated rendering. See
+ // crbug.com/1445770 for details.
diff --git a/chromium/patches/patch-chrome_browser_ui_views_download_download__item__view.cc b/chromium/patches/patch-chrome_browser_ui_views_download_download__item__view.cc
deleted file mode 100644
index 94c6229618..0000000000
--- a/chromium/patches/patch-chrome_browser_ui_views_download_download__item__view.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- chrome/browser/ui/views/download/download_item_view.cc.orig 2020-07-08 21:40:36.000000000 +0000
-+++ chrome/browser/ui/views/download/download_item_view.cc
-@@ -207,7 +207,7 @@ class TransparentButton : public views::
- };
-
- int GetFilenameStyle(const views::StyledLabel& label) {
--#if !defined(OS_LINUX)
-+#if !defined(OS_LINUX) && !defined(OS_BSD)
- if (base::FeatureList::IsEnabled(safe_browsing::kUseNewDownloadWarnings))
- return STYLE_EMPHASIZED;
- #endif
-@@ -276,7 +276,7 @@ DownloadItemView::DownloadItemView(Downl
- open_button_ = AddChildView(std::move(open_button));
-
- int file_name_style = views::style::STYLE_PRIMARY;
--#if !defined(OS_LINUX)
-+#if !defined(OS_LINUX) && !defined(OS_BSD)
- if (base::FeatureList::IsEnabled(safe_browsing::kUseNewDownloadWarnings))
- file_name_style = STYLE_EMPHASIZED;
- #endif
diff --git a/chromium/patches/patch-chrome_browser_ui_views_first__run__dialog.cc b/chromium/patches/patch-chrome_browser_ui_views_first__run__dialog.cc
deleted file mode 100644
index 0e6712cf3a..0000000000
--- a/chromium/patches/patch-chrome_browser_ui_views_first__run__dialog.cc
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
---- chrome/browser/ui/views/first_run_dialog.cc.orig 2020-07-08 21:41:47.000000000 +0000
-+++ chrome/browser/ui/views/first_run_dialog.cc
-@@ -114,8 +114,10 @@ void FirstRunDialog::Done() {
- bool FirstRunDialog::Accept() {
- GetWidget()->Hide();
-
-+#if !defined(OS_BSD)
- ChangeMetricsReportingStateWithReply(report_crashes_->GetChecked(),
- base::Bind(&InitCrashReporterIfEnabled));
-+#endif
-
- if (make_default_->GetChecked())
- shell_integration::SetAsDefaultBrowser();
diff --git a/chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame.cc b/chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame.cc
index f11c8cf731..f5f44d7f36 100644
--- a/chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame.cc
+++ b/chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame.cc
@@ -1,30 +1,62 @@
$NetBSD$
---- chrome/browser/ui/views/frame/browser_frame.cc.orig 2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/frame/browser_frame.cc.orig 2024-07-24 02:44:29.772116400 +0000
+++ chrome/browser/ui/views/frame/browser_frame.cc
-@@ -38,14 +38,14 @@
+@@ -54,7 +54,7 @@
#include "components/user_manager/user_manager.h"
#endif
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
#include "ui/display/screen.h"
+ #include "ui/linux/linux_ui.h"
#endif
+@@ -89,7 +89,7 @@ class ThemeChangedObserver : public view
+ };
- namespace {
-
- bool IsUsingGtkTheme(Profile* profile) {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ bool IsUsingLinuxSystemTheme(Profile* profile) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
return ThemeServiceFactory::GetForProfile(profile)->UsingSystemTheme();
#else
return false;
-@@ -218,7 +218,7 @@ const ui::NativeTheme* BrowserFrame::Get
+@@ -184,7 +184,7 @@ void BrowserFrame::InitBrowserFrame() {
+
+ Init(std::move(params));
- void BrowserFrame::OnNativeWidgetWorkspaceChanged() {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ SelectNativeTheme();
+ #else
+ SetNativeTheme(ui::NativeTheme::GetInstanceForNativeUi());
+@@ -370,7 +370,7 @@ void BrowserFrame::OnNativeWidgetWorkspa
chrome::SaveWindowWorkspace(browser_view_->browser(), GetWorkspace());
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ chrome::SaveWindowVisibleOnAllWorkspaces(browser_view_->browser(),
+ IsVisibleOnAllWorkspaces());
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
// If the window was sent to a different workspace, prioritize it if
// it was sent to the current workspace and deprioritize it
// otherwise. This is done by MoveBrowsersInWorkspaceToFront()
+@@ -563,7 +563,7 @@ void BrowserFrame::OnMenuClosed() {
+ }
+
+ void BrowserFrame::SelectNativeTheme() {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Use the regular NativeTheme instance if running incognito mode, regardless
+ // of system theme (gtk, qt etc).
+ ui::NativeTheme* native_theme = ui::NativeTheme::GetInstanceForNativeUi();
+@@ -604,7 +604,7 @@ void BrowserFrame::OnTouchUiChanged() {
+ bool BrowserFrame::RegenerateFrameOnThemeChange(
+ BrowserThemeChangeType theme_change_type) {
+ bool need_regenerate = false;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // System and user theme changes can both change frame buttons, so the frame
+ // always needs to be regenerated on Linux.
+ need_regenerate = true;
diff --git a/chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame.h b/chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame.h
new file mode 100644
index 0000000000..52bee0d889
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/frame/browser_frame.h.orig 2024-07-24 02:44:29.772116400 +0000
++++ chrome/browser/ui/views/frame/browser_frame.h
+@@ -65,7 +65,7 @@ class BrowserFrame : public views::Widge
+
+ ~BrowserFrame() override;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Returns whether the frame is in a tiled state.
+ bool tiled() const { return tiled_; }
+ void set_tiled(bool tiled) { tiled_ = tiled; }
+@@ -225,7 +225,7 @@ class BrowserFrame : public views::Widge
+ // contents for smoother dragging.
+ TabDragKind tab_drag_kind_ = TabDragKind::kNone;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool tiled_ = false;
+ #endif
+
diff --git a/chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame__view__layout__linux.cc b/chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame__view__layout__linux.cc
new file mode 100644
index 0000000000..af99a227dc
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame__view__layout__linux.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/frame/browser_frame_view_layout_linux.cc.orig 2024-07-24 02:44:29.772116400 +0000
++++ chrome/browser/ui/views/frame/browser_frame_view_layout_linux.cc
+@@ -53,7 +53,7 @@ gfx::Insets BrowserFrameViewLayoutLinux:
+ OpaqueBrowserFrameViewLayout::RestoredFrameBorderInsets());
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const bool tiled = delegate_->IsTiled();
+ #else
+ const bool tiled = false;
diff --git a/chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame__view__layout__linux__native.cc b/chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame__view__layout__linux__native.cc
new file mode 100644
index 0000000000..3be33c54ad
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame__view__layout__linux__native.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/frame/browser_frame_view_layout_linux_native.cc.orig 2024-07-24 02:44:29.776116800 +0000
++++ chrome/browser/ui/views/frame/browser_frame_view_layout_linux_native.cc
+@@ -18,7 +18,7 @@ BrowserFrameViewLayoutLinuxNative::~Brow
+
+ ui::WindowFrameProvider* BrowserFrameViewLayoutLinuxNative::GetFrameProvider()
+ const {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const bool tiled = delegate_->IsTiled();
+ #else
+ const bool tiled = false;
diff --git a/chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame__view__linux.cc b/chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame__view__linux.cc
new file mode 100644
index 0000000000..0dafeffc79
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame__view__linux.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/frame/browser_frame_view_linux.cc.orig 2024-07-24 02:44:29.776116800 +0000
++++ chrome/browser/ui/views/frame/browser_frame_view_linux.cc
+@@ -60,7 +60,7 @@ gfx::ShadowValues BrowserFrameViewLinux:
+
+ void BrowserFrameViewLinux::PaintRestoredFrameBorder(
+ gfx::Canvas* canvas) const {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const bool tiled = frame()->tiled();
+ #else
+ const bool tiled = false;
+@@ -104,7 +104,7 @@ void BrowserFrameViewLinux::OnWindowButt
+ }
+
+ float BrowserFrameViewLinux::GetRestoredCornerRadiusDip() const {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const bool tiled = frame()->tiled();
+ #else
+ const bool tiled = false;
diff --git a/chromium/patches/patch-chrome_browser_ui_views_frame_browser__non__client__frame__view__factory__views.cc b/chromium/patches/patch-chrome_browser_ui_views_frame_browser__non__client__frame__view__factory__views.cc
new file mode 100644
index 0000000000..f591deb5a9
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_frame_browser__non__client__frame__view__factory__views.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/frame/browser_non_client_frame_view_factory_views.cc.orig 2024-07-24 02:44:29.776116800 +0000
++++ chrome/browser/ui/views/frame/browser_non_client_frame_view_factory_views.cc
+@@ -16,7 +16,7 @@
+ #include "chrome/browser/ui/views/frame/browser_frame_view_win.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/views/frame/browser_frame_view_layout_linux.h"
+ #include "chrome/browser/ui/views/frame/browser_frame_view_layout_linux_native.h"
+ #include "chrome/browser/ui/views/frame/browser_frame_view_linux_native.h"
+@@ -33,7 +33,7 @@ namespace {
+ std::unique_ptr<OpaqueBrowserFrameView> CreateOpaqueBrowserFrameView(
+ BrowserFrame* frame,
+ BrowserView* browser_view) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ auto* profile = browser_view->browser()->profile();
+ auto* linux_ui_theme = ui::LinuxUiTheme::GetForProfile(profile);
+ auto* theme_service_factory = ThemeServiceFactory::GetForProfile(profile);
diff --git a/chromium/patches/patch-chrome_browser_ui_views_frame_browser__view.cc b/chromium/patches/patch-chrome_browser_ui_views_frame_browser__view.cc
index b3ba93705d..b17bf2cde6 100644
--- a/chromium/patches/patch-chrome_browser_ui_views_frame_browser__view.cc
+++ b/chromium/patches/patch-chrome_browser_ui_views_frame_browser__view.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- chrome/browser/ui/views/frame/browser_view.cc.orig 2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/frame/browser_view.cc.orig 2024-07-24 02:44:29.780117300 +0000
+++ chrome/browser/ui/views/frame/browser_view.cc
-@@ -1766,7 +1766,7 @@ void BrowserView::UserChangedTheme(Brows
- const bool should_use_native_frame = frame_->ShouldUseNativeFrame();
-
- bool must_regenerate_frame;
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- // GTK and user theme changes can both change frame buttons, so the frame
- // always needs to be regenerated on Linux.
- must_regenerate_frame = true;
+@@ -2240,7 +2240,7 @@ void BrowserView::TabDraggingStatusChang
+ // CrOS cleanup is done.
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++#if !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
+ contents_web_view_->SetFastResize(is_dragging);
+ if (!is_dragging) {
+ // When tab dragging is ended, we need to make sure the web contents get
diff --git a/chromium/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.cc b/chromium/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.cc
index 2e8c57483d..fd06483406 100644
--- a/chromium/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.cc
+++ b/chromium/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.cc
@@ -1,31 +1,44 @@
$NetBSD$
---- chrome/browser/ui/views/frame/opaque_browser_frame_view.cc.orig 2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/frame/opaque_browser_frame_view.cc.orig 2024-07-24 02:44:29.788118100 +0000
+++ chrome/browser/ui/views/frame/opaque_browser_frame_view.cc
-@@ -48,7 +48,7 @@
+@@ -54,7 +54,7 @@
#include "ui/views/window/vector_icons/vector_icons.h"
#include "ui/views/window/window_shape.h"
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "ui/views/controls/menu/menu_runner.h"
#endif
-@@ -349,7 +349,7 @@ void OpaqueBrowserFrameView::ButtonPress
- } else if (sender == close_button_) {
- frame()->CloseWithReason(views::Widget::ClosedReason::kCloseButtonClicked);
- } else if (sender == window_icon_) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // TODO(pbos): Figure out / document why this is Linux only. This needs a
- // comment.
- views::MenuRunner menu_runner(frame()->GetSystemMenuModel(),
-@@ -478,7 +478,7 @@ bool OpaqueBrowserFrameView::EverHasVisi
-
- OpaqueBrowserFrameView::FrameButtonStyle
+@@ -564,7 +564,7 @@ OpaqueBrowserFrameView::FrameButtonStyle
OpaqueBrowserFrameView::GetFrameButtonStyle() const {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
return FrameButtonStyle::kMdButton;
#else
return FrameButtonStyle::kImageButton;
+@@ -583,7 +583,7 @@ bool OpaqueBrowserFrameView::ShouldDrawR
+ return false;
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool OpaqueBrowserFrameView::IsTiled() const {
+ return frame()->tiled();
+ }
+@@ -782,7 +782,7 @@ gfx::Rect OpaqueBrowserFrameView::GetIco
+ }
+
+ void OpaqueBrowserFrameView::WindowIconPressed() {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Chrome OS doesn't show the window icon, and Windows handles this on its own
+ // due to the hit test being HTSYSMENU.
+ menu_runner_ = std::make_unique<views::MenuRunner>(
diff --git a/chromium/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.h b/chromium/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.h
new file mode 100644
index 0000000000..d9b9f624d8
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/frame/opaque_browser_frame_view.h.orig 2024-07-24 02:44:29.788118100 +0000
++++ chrome/browser/ui/views/frame/opaque_browser_frame_view.h
+@@ -115,7 +115,7 @@ class OpaqueBrowserFrameView : public Br
+ void UpdateWindowControlsOverlay(
+ const gfx::Rect& bounding_rect) const override;
+ bool ShouldDrawRestoredFrameShadow() const override;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool IsTiled() const override;
+ #endif
+ int WebAppButtonHeight() const override;
+@@ -232,7 +232,7 @@ class OpaqueBrowserFrameView : public Br
+ // Background painter for the window frame.
+ std::unique_ptr<views::FrameBackground> frame_background_;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ std::unique_ptr<views::MenuRunner> menu_runner_;
+ #endif
+
diff --git a/chromium/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view__layout__delegate.h b/chromium/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view__layout__delegate.h
new file mode 100644
index 0000000000..e60c14b813
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view__layout__delegate.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/frame/opaque_browser_frame_view_layout_delegate.h.orig 2024-07-24 02:44:29.788118100 +0000
++++ chrome/browser/ui/views/frame/opaque_browser_frame_view_layout_delegate.h
+@@ -10,7 +10,7 @@
+ #include "build/build_config.h"
+ #include "build/chromeos_buildflags.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ #include "ui/base/ui_base_types.h"
+ #endif
+
+@@ -94,7 +94,7 @@ class OpaqueBrowserFrameViewLayoutDelega
+ // Returns true if a client-side shadow should be drawn for restored windows.
+ virtual bool ShouldDrawRestoredFrameShadow() const = 0;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Returns whether the window is in a tiled state.
+ virtual bool IsTiled() const = 0;
+ #endif
diff --git a/chromium/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view__platform__specific.cc b/chromium/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view__platform__specific.cc
deleted file mode 100644
index 2ef4abe2fe..0000000000
--- a/chromium/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view__platform__specific.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/ui/views/frame/opaque_browser_frame_view_platform_specific.cc.orig 2020-07-08 21:40:36.000000000 +0000
-+++ chrome/browser/ui/views/frame/opaque_browser_frame_view_platform_specific.cc
-@@ -6,7 +6,7 @@
-
- #include "build/build_config.h"
-
--#if !defined(OS_LINUX)
-+#if !defined(OS_LINUX) && !defined(OS_BSD)
-
- // static
- std::unique_ptr<OpaqueBrowserFrameViewPlatformSpecific>
diff --git a/chromium/patches/patch-chrome_browser_ui_views_frame_picture__in__picture__browser__frame__view.cc b/chromium/patches/patch-chrome_browser_ui_views_frame_picture__in__picture__browser__frame__view.cc
new file mode 100644
index 0000000000..a649dfee37
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_frame_picture__in__picture__browser__frame__view.cc
@@ -0,0 +1,98 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/frame/picture_in_picture_browser_frame_view.cc.orig 2024-07-24 02:44:29.788118100 +0000
++++ chrome/browser/ui/views/frame/picture_in_picture_browser_frame_view.cc
+@@ -58,7 +58,7 @@
+ #include "ui/aura/window.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/themes/theme_service.h"
+ #include "chrome/browser/themes/theme_service_factory.h"
+ #include "chrome/browser/ui/views/frame/browser_frame_view_paint_utils_linux.h"
+@@ -90,7 +90,7 @@ constexpr int kContentSettingIconSize =
+ // The height of the controls bar at the top of the window.
+ constexpr int kTopControlsHeight = 34;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Frame border when window shadow is not drawn.
+ constexpr int kFrameBorderThickness = 4;
+ #endif
+@@ -182,7 +182,7 @@ class WindowEventObserver : public ui::E
+
+ gfx::Rect input_bounds = pip_browser_frame_view_->GetLocalBounds();
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Calculate input bounds for Linux. This is needed because the input bounds
+ // is not necessary the same as the local bounds on Linux.
+ if (pip_browser_frame_view_->ShouldDrawFrameShadow()) {
+@@ -578,7 +578,7 @@ PictureInPictureBrowserFrameView::Pictur
+ AddChildView(std::move(auto_pip_setting_overlay));
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ auto* profile = browser_view->browser()->profile();
+ auto* linux_ui_theme = ui::LinuxUiTheme::GetForProfile(profile);
+ auto* theme_service_factory = ThemeServiceFactory::GetForProfile(profile);
+@@ -800,7 +800,7 @@ void PictureInPictureBrowserFrameView::O
+ for (ContentSettingImageView* view : content_setting_views_)
+ view->SetIconColor(color_provider->GetColor(kColorPipWindowForeground));
+
+-#if !BUILDFLAG(IS_LINUX)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD)
+ // On Linux the top bar background will be drawn in OnPaint().
+ top_bar_container_view_->SetBackground(views::CreateSolidBackground(
+ color_provider->GetColor(kColorPipWindowTopBarBackground)));
+@@ -882,7 +882,7 @@ void PictureInPictureBrowserFrameView::R
+ BrowserNonClientFrameView::RemovedFromWidget();
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ gfx::Insets PictureInPictureBrowserFrameView::MirroredFrameBorderInsets()
+ const {
+ auto border = FrameBorderInsets();
+@@ -1138,7 +1138,7 @@ void PictureInPictureBrowserFrameView::A
+ // views::View implementations:
+
+ void PictureInPictureBrowserFrameView::OnPaint(gfx::Canvas* canvas) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Draw the PiP window frame borders and shadows, including the top bar
+ // background.
+ if (window_frame_provider_) {
+@@ -1272,7 +1272,7 @@ void PictureInPictureBrowserFrameView::U
+ }
+
+ gfx::Insets PictureInPictureBrowserFrameView::FrameBorderInsets() const {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (window_frame_provider_) {
+ const auto insets = window_frame_provider_->GetFrameThicknessDip();
+ const bool tiled = frame()->tiled();
+@@ -1290,7 +1290,7 @@ gfx::Insets PictureInPictureBrowserFrame
+ }
+
+ gfx::Insets PictureInPictureBrowserFrameView::ResizeBorderInsets() const {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return FrameBorderInsets();
+ #elif !BUILDFLAG(IS_CHROMEOS_ASH)
+ return gfx::Insets(kResizeBorder);
+@@ -1311,7 +1311,7 @@ gfx::Size PictureInPictureBrowserFrameVi
+ top_height + border_thickness.bottom());
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool PictureInPictureBrowserFrameView::ShouldDrawFrameShadow() const {
+ return static_cast<DesktopBrowserFrameAuraLinux*>(
+ frame()->native_browser_frame())
diff --git a/chromium/patches/patch-chrome_browser_ui_views_frame_picture__in__picture__browser__frame__view.h b/chromium/patches/patch-chrome_browser_ui_views_frame_picture__in__picture__browser__frame__view.h
new file mode 100644
index 0000000000..4433849541
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_frame_picture__in__picture__browser__frame__view.h
@@ -0,0 +1,53 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/frame/picture_in_picture_browser_frame_view.h.orig 2024-07-24 02:44:29.788118100 +0000
++++ chrome/browser/ui/views/frame/picture_in_picture_browser_frame_view.h
+@@ -27,7 +27,7 @@
+ #include "ui/views/layout/flex_layout_view.h"
+ #include "ui/views/widget/widget_observer.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/linux/window_frame_provider.h"
+ #endif
+
+@@ -35,7 +35,7 @@
+ // parent window, so to prevent cutting off important dialogs we resize the
+ // picture-in-picture window to fit them. While ChromeOS Ash also uses Aura, it
+ // does not have this issue so we do not resize on ChromeOS Ash.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ #define RESIZE_DOCUMENT_PICTURE_IN_PICTURE_TO_DIALOG 1
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ||
+ // BUILDFLAG(IS_CHROMEOS_LACROS)
+@@ -101,7 +101,7 @@ class PictureInPictureBrowserFrameView
+ void Layout(PassKey) override;
+ void AddedToWidget() override;
+ void RemovedFromWidget() override;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ gfx::Insets MirroredFrameBorderInsets() const override;
+ gfx::Insets GetInputInsets() const override;
+ SkRRect GetRestoredClipRegion() const override;
+@@ -192,7 +192,7 @@ class PictureInPictureBrowserFrameView
+ // Returns true if there's an overlay view that's currently shown.
+ bool IsOverlayViewVisible() const;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Returns whether a client-side shadow should be drawn for the window.
+ bool ShouldDrawFrameShadow() const;
+
+@@ -368,7 +368,7 @@ class PictureInPictureBrowserFrameView
+ // `top_bar_color_animation_`.
+ std::optional<SkColor> current_foreground_color_;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Used to draw window frame borders and shadow on Linux when GTK theme is
+ // enabled.
+ raw_ptr<ui::WindowFrameProvider> window_frame_provider_ = nullptr;
diff --git a/chromium/patches/patch-chrome_browser_ui_views_frame_system__menu__model__builder.cc b/chromium/patches/patch-chrome_browser_ui_views_frame_system__menu__model__builder.cc
index 607118308d..b5c34f03bc 100644
--- a/chromium/patches/patch-chrome_browser_ui_views_frame_system__menu__model__builder.cc
+++ b/chromium/patches/patch-chrome_browser_ui_views_frame_system__menu__model__builder.cc
@@ -1,31 +1,35 @@
$NetBSD$
---- chrome/browser/ui/views/frame/system_menu_model_builder.cc.orig 2020-07-08 21:40:36.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/frame/system_menu_model_builder.cc.orig 2024-07-24 02:44:29.788118100 +0000
+++ chrome/browser/ui/views/frame/system_menu_model_builder.cc
-@@ -62,7 +62,7 @@ void SystemMenuModelBuilder::BuildMenu(u
-
- void SystemMenuModelBuilder::BuildSystemMenuForBrowserWindow(
+@@ -75,7 +75,7 @@ void SystemMenuModelBuilder::BuildSystem
ui::SimpleMenuModel* model) {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && !BUILDFLAG(IS_CHROMEOS_LACROS)
model->AddItemWithStringId(IDC_MINIMIZE_WINDOW, IDS_MINIMIZE_WINDOW_MENU);
model->AddItemWithStringId(IDC_MAXIMIZE_WINDOW, IDS_MAXIMIZE_WINDOW_MENU);
model->AddItemWithStringId(IDC_RESTORE_WINDOW, IDS_RESTORE_WINDOW_MENU);
-@@ -75,7 +75,7 @@ void SystemMenuModelBuilder::BuildSystem
- model->AddSeparator(ui::NORMAL_SEPARATOR);
- model->AddItemWithStringId(IDC_TASK_MANAGER, IDS_TASK_MANAGER);
+@@ -91,7 +91,7 @@ void SystemMenuModelBuilder::BuildSystem
}
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && !BUILDFLAG(IS_CHROMEOS_LACROS)
model->AddSeparator(ui::NORMAL_SEPARATOR);
- model->AddCheckItemWithStringId(IDC_USE_SYSTEM_TITLE_BAR,
- IDS_SHOW_WINDOW_DECORATIONS_MENU);
-@@ -113,7 +113,7 @@ void SystemMenuModelBuilder::BuildSystem
+ bool supports_server_side_decorations = true;
+ #if BUILDFLAG(IS_OZONE) && !BUILDFLAG(IS_CHROMEOS)
+@@ -147,7 +147,7 @@ void SystemMenuModelBuilder::BuildSystem
model->AddSeparator(ui::NORMAL_SEPARATOR);
model->AddItemWithStringId(IDC_TASK_MANAGER, IDS_TASK_MANAGER);
}
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
model->AddSeparator(ui::NORMAL_SEPARATOR);
model->AddItemWithStringId(IDC_CLOSE_WINDOW, IDS_CLOSE);
#endif
diff --git a/chromium/patches/patch-chrome_browser_ui_views_frame_system__menu__model__delegate.cc b/chromium/patches/patch-chrome_browser_ui_views_frame_system__menu__model__delegate.cc
index a2683d605d..e906e3f26c 100644
--- a/chromium/patches/patch-chrome_browser_ui_views_frame_system__menu__model__delegate.cc
+++ b/chromium/patches/patch-chrome_browser_ui_views_frame_system__menu__model__delegate.cc
@@ -1,31 +1,35 @@
$NetBSD$
---- chrome/browser/ui/views/frame/system_menu_model_delegate.cc.orig 2020-07-08 21:40:36.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/frame/system_menu_model_delegate.cc.orig 2024-07-24 02:44:29.788118100 +0000
+++ chrome/browser/ui/views/frame/system_menu_model_delegate.cc
-@@ -15,7 +15,7 @@
- #include "components/sessions/core/tab_restore_service.h"
- #include "ui/base/l10n/l10n_util.h"
+@@ -21,7 +21,7 @@
+ #include "chromeos/ui/frame/desks/move_to_desks_menu_model.h"
+ #endif
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
#include "chrome/common/pref_names.h"
#include "components/prefs/pref_service.h"
#endif
-@@ -30,7 +30,7 @@ SystemMenuModelDelegate::SystemMenuModel
+@@ -36,7 +36,7 @@ SystemMenuModelDelegate::SystemMenuModel
SystemMenuModelDelegate::~SystemMenuModelDelegate() {}
bool SystemMenuModelDelegate::IsCommandIdChecked(int command_id) const {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
if (command_id == IDC_USE_SYSTEM_TITLE_BAR) {
PrefService* prefs = browser_->profile()->GetPrefs();
return !prefs->GetBoolean(prefs::kUseCustomChromeFrame);
-@@ -44,7 +44,7 @@ bool SystemMenuModelDelegate::IsCommandI
- }
-
+@@ -58,7 +58,7 @@ bool SystemMenuModelDelegate::IsCommandI
bool SystemMenuModelDelegate::IsCommandIdVisible(int command_id) const {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
bool is_maximized = browser_->window()->IsMaximized();
switch (command_id) {
case IDC_MAXIMIZE_WINDOW:
diff --git a/chromium/patches/patch-chrome_browser_ui_views_frame_tab__strip__region__view.cc b/chromium/patches/patch-chrome_browser_ui_views_frame_tab__strip__region__view.cc
new file mode 100644
index 0000000000..cb0f81a064
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_frame_tab__strip__region__view.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/frame/tab_strip_region_view.cc.orig 2024-07-24 02:44:29.788118100 +0000
++++ chrome/browser/ui/views/frame/tab_strip_region_view.cc
+@@ -200,7 +200,7 @@ TabStripRegionView::TabStripRegionView(s
+
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag
+ // switch of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ // The New Tab Button can be middle-clicked on Linux.
+ new_tab_button_->SetTriggerableEventFlags(
+ new_tab_button_->GetTriggerableEventFlags() |
diff --git a/chromium/patches/patch-chrome_browser_ui_views_hung__renderer__view.cc b/chromium/patches/patch-chrome_browser_ui_views_hung__renderer__view.cc
index 4485fc87ff..668ff4b613 100644
--- a/chromium/patches/patch-chrome_browser_ui_views_hung__renderer__view.cc
+++ b/chromium/patches/patch-chrome_browser_ui_views_hung__renderer__view.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- chrome/browser/ui/views/hung_renderer_view.cc.orig 2020-07-08 21:40:36.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/hung_renderer_view.cc.orig 2024-07-24 02:44:29.796118700 +0000
+++ chrome/browser/ui/views/hung_renderer_view.cc
-@@ -425,7 +425,7 @@ void HungRendererDialogView::ForceCrashH
+@@ -406,7 +406,7 @@ void HungRendererDialogView::ForceCrashH
content::RenderProcessHost* rph =
hung_pages_table_model_->GetRenderWidgetHost()->GetProcess();
if (rph) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// A generic |CrashDumpHungChildProcess()| is not implemented for Linux.
// Instead we send an explicit IPC to crash on the renderer's IO thread.
rph->ForceCrash();
diff --git a/chromium/patches/patch-chrome_browser_ui_views_omnibox_omnibox__view__views.cc b/chromium/patches/patch-chrome_browser_ui_views_omnibox_omnibox__view__views.cc
new file mode 100644
index 0000000000..09ba9f416d
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_omnibox_omnibox__view__views.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/omnibox/omnibox_view_views.cc.orig 2024-07-24 02:44:29.824121500 +0000
++++ chrome/browser/ui/views/omnibox/omnibox_view_views.cc
+@@ -1962,7 +1962,7 @@ void OmniboxViewViews::MaybeAddSendTabTo
+ }
+
+ void OmniboxViewViews::OnPopupOpened() {
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // It's not great for promos to overlap the omnibox if the user opens the
+ // drop-down after showing the promo. This especially causes issues on Mac and
+ // Linux due to z-order/rendering issues, see crbug.com/1225046 and
diff --git a/chromium/patches/patch-chrome_browser_ui_views_passwords_password__bubble__view__base.cc b/chromium/patches/patch-chrome_browser_ui_views_passwords_password__bubble__view__base.cc
new file mode 100644
index 0000000000..93678f6507
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_passwords_password__bubble__view__base.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/passwords/password_bubble_view_base.cc.orig 2024-07-24 02:44:29.840123200 +0000
++++ chrome/browser/ui/views/passwords/password_bubble_view_base.cc
+@@ -34,7 +34,7 @@
+ #include "ui/base/metadata/metadata_impl_macros.h"
+ #include "ui/views/controls/button/button.h"
+
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/views/passwords/password_relaunch_chrome_view.h"
+ #endif
+
+@@ -133,7 +133,7 @@ PasswordBubbleViewBase* PasswordBubbleVi
+ } else if (model_state ==
+ password_manager::ui::NOTIFY_RECEIVED_SHARED_CREDENTIALS) {
+ view = new SharedPasswordsNotificationView(web_contents, anchor_view);
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ } else if (model_state == password_manager::ui::KEYCHAIN_ERROR_STATE) {
+ view = new RelaunchChromeView(
+ web_contents, anchor_view,
diff --git a/chromium/patches/patch-chrome_browser_ui_views_profiles_profile__menu__view.cc b/chromium/patches/patch-chrome_browser_ui_views_profiles_profile__menu__view.cc
new file mode 100644
index 0000000000..b665a9bc84
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_profiles_profile__menu__view.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/profiles/profile_menu_view.cc.orig 2024-07-24 02:44:29.868125700 +0000
++++ chrome/browser/ui/views/profiles/profile_menu_view.cc
+@@ -83,7 +83,7 @@
+ #include "ui/strings/grit/ui_strings.h"
+ #include "ui/views/accessibility/view_accessibility.h"
+
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/signin/enterprise_signin_prefs.h"
+ #endif
+
+@@ -577,7 +577,7 @@ void ProfileMenuView::BuildIdentity() {
+ badge_image_model, menu_title_, menu_subtitle_, management_label);
+ } else {
+ std::string profile_user_display_name, profile_user_email;
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ profile_user_display_name = profile->GetPrefs()->GetString(
+ enterprise_signin::prefs::kProfileUserDisplayName);
+ profile_user_email = profile->GetPrefs()->GetString(
diff --git a/chromium/patches/patch-chrome_browser_ui_views_profiles_profile__menu__view__base.cc b/chromium/patches/patch-chrome_browser_ui_views_profiles_profile__menu__view__base.cc
new file mode 100644
index 0000000000..3641a9d79a
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_profiles_profile__menu__view__base.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/profiles/profile_menu_view_base.cc.orig 2024-07-24 02:44:29.872126000 +0000
++++ chrome/browser/ui/views/profiles/profile_menu_view_base.cc
+@@ -687,7 +687,7 @@ void ProfileMenuViewBase::SetProfileIden
+
+ // TODO(crbug.com/40118868): Revisit once build flag switch of lacros-chrome is
+ // complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ // crbug.com/1161166: Orca does not read the accessible window title of the
+ // bubble, so we duplicate it in the top-level menu item. To be revisited
+ // after considering other options, including fixes on the AT side.
diff --git a/chromium/patches/patch-chrome_browser_ui_views_profiles_signin__view__controller__delegate__views.cc b/chromium/patches/patch-chrome_browser_ui_views_profiles_signin__view__controller__delegate__views.cc
new file mode 100644
index 0000000000..517245ffa1
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_profiles_signin__view__controller__delegate__views.cc
@@ -0,0 +1,53 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/profiles/signin_view_controller_delegate_views.cc.orig 2024-07-24 02:44:29.876126500 +0000
++++ chrome/browser/ui/views/profiles/signin_view_controller_delegate_views.cc
+@@ -58,7 +58,7 @@ namespace {
+
+ const int kModalDialogWidth = 448;
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_LACROS)
++ BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ const int kManagedUserNoticeConfirmationDialogWidth = 512;
+ const int kManagedUserNoticeConfirmationDialogHeight = 576;
+ const int kManagedUserNoticeConfirmationUpdatedDialogWidth = 900;
+@@ -184,7 +184,7 @@ SigninViewControllerDelegateViews::Creat
+ #endif // BUILDFLAG(ENABLE_DICE_SUPPORT) || BUILDFLAG(IS_CHROMEOS_LACROS)
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_LACROS)
++ BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ // static
+ std::unique_ptr<views::WebView>
+ SigninViewControllerDelegateViews::CreateManagedUserNoticeConfirmationWebView(
+@@ -346,7 +346,7 @@ SigninViewControllerDelegateViews::Signi
+ SetButtons(ui::DIALOG_BUTTON_NONE);
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_LACROS)
++ BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ // On the local profile creation dialog, cancelling the dialog (for instance
+ // through the VKEY_ESCAPE accelerator) should delete the profile.
+ if (delete_profile_on_cancel) {
+@@ -436,7 +436,7 @@ void SigninViewControllerDelegateViews::
+ }
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_LACROS)
++ BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ void SigninViewControllerDelegateViews::DeleteProfileOnCancel() {
+ ProfileAttributesEntry* entry =
+ g_browser_process->profile_manager()
+@@ -510,7 +510,7 @@ SigninViewControllerDelegate::CreateProf
+ #endif // BUILDFLAG(ENABLE_DICE_SUPPORT) || BUILDFLAG(IS_CHROMEOS_LACROS)
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_LACROS)
++ BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ // static
+ SigninViewControllerDelegate*
+ SigninViewControllerDelegate::CreateManagedUserNoticeDelegate(
diff --git a/chromium/patches/patch-chrome_browser_ui_views_profiles_signin__view__controller__delegate__views.h b/chromium/patches/patch-chrome_browser_ui_views_profiles_signin__view__controller__delegate__views.h
new file mode 100644
index 0000000000..1638bf755e
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_profiles_signin__view__controller__delegate__views.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/profiles/signin_view_controller_delegate_views.h.orig 2024-07-24 02:44:29.876126500 +0000
++++ chrome/browser/ui/views/profiles/signin_view_controller_delegate_views.h
+@@ -75,7 +75,7 @@ class SigninViewControllerDelegateViews
+ #endif // BUILDFLAG(ENABLE_DICE_SUPPORT) || BUILDFLAG(IS_CHROMEOS_LACROS)
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_LACROS)
++ BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ static std::unique_ptr<views::WebView>
+ CreateManagedUserNoticeConfirmationWebView(
+ Browser* browser,
+@@ -141,7 +141,7 @@ class SigninViewControllerDelegateViews
+ InitializeSigninWebDialogUI initialize_signin_web_dialog_ui);
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_LACROS)
++ BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ // Deletes the ephemeral profile when cancelling the local profile creation
+ // dialog.
+ void DeleteProfileOnCancel();
diff --git a/chromium/patches/patch-chrome_browser_ui_views_side__panel_BUILD.gn b/chromium/patches/patch-chrome_browser_ui_views_side__panel_BUILD.gn
new file mode 100644
index 0000000000..615d6da2e3
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_side__panel_BUILD.gn
@@ -0,0 +1,46 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/side_panel/BUILD.gn.orig 2024-07-24 02:44:29.888127800 +0000
++++ chrome/browser/ui/views/side_panel/BUILD.gn
+@@ -172,7 +172,9 @@ static_library("side_panel") {
+ "//chrome/app:generated_resources",
+ "//chrome/app:generated_resources_grit",
+ "//chrome/app/vector_icons",
++ "//chrome/browser/cart:mojo_bindings",
+ "//chrome/browser/companion/core",
++ "//chrome/browser/companion/visual_query",
+ "//chrome/browser/favicon",
+ "//chrome/browser/lens/region_search",
+ "//chrome/browser/profiles",
+@@ -181,8 +183,11 @@ static_library("side_panel") {
+ "//chrome/browser/search_engines",
+ "//chrome/browser/themes",
+ "//chrome/browser/ui:browser_element_identifiers",
++ "//chrome/browser/ui:webui_name_variants",
+ "//chrome/browser/ui/actions",
+ "//chrome/browser/ui/browser_window",
++ "//chrome/browser/ui/webui/side_panel/bookmarks:mojo_bindings",
++ "//chrome/browser/ui/webui/side_panel/reading_list:mojo_bindings",
+ "//chrome/common",
+ "//chrome/common:constants",
+ "//chrome/common/extensions/api",
+@@ -198,6 +203,7 @@ static_library("side_panel") {
+ "//components/lens:features",
+ "//components/omnibox/browser:vector_icons",
+ "//components/optimization_guide/core:features",
++ "//components/page_image_service/mojom:mojo_bindings",
+ "//components/performance_manager",
+ "//components/pref_registry",
+ "//components/search",
+@@ -222,5 +228,7 @@ static_library("side_panel") {
+ "//ui/gfx:color_utils",
+ "//ui/gfx/geometry:geometry_skia",
+ "//ui/webui",
++ "//ui/webui/resources/cr_components/commerce:mojo_bindings",
++ "//ui/webui/resources/cr_components/help_bubble:mojo_bindings",
+ ]
+ }
diff --git a/chromium/patches/patch-chrome_browser_ui_views_tabs_new__tab__button.cc b/chromium/patches/patch-chrome_browser_ui_views_tabs_new__tab__button.cc
deleted file mode 100644
index b9ab57940b..0000000000
--- a/chromium/patches/patch-chrome_browser_ui_views_tabs_new__tab__button.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/ui/views/tabs/new_tab_button.cc.orig 2020-07-08 21:40:36.000000000 +0000
-+++ chrome/browser/ui/views/tabs/new_tab_button.cc
-@@ -84,7 +84,7 @@ class NewTabButton::HighlightPathGenerat
- NewTabButton::NewTabButton(TabStrip* tab_strip, views::ButtonListener* listener)
- : views::ImageButton(listener), tab_strip_(tab_strip) {
- set_animate_on_state_change(true);
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- set_triggerable_event_flags(triggerable_event_flags() |
- ui::EF_MIDDLE_MOUSE_BUTTON);
- #endif
diff --git a/chromium/patches/patch-chrome_browser_ui_views_tabs_tab.cc b/chromium/patches/patch-chrome_browser_ui_views_tabs_tab.cc
index c9316adbc4..cd3fff9eab 100644
--- a/chromium/patches/patch-chrome_browser_ui_views_tabs_tab.cc
+++ b/chromium/patches/patch-chrome_browser_ui_views_tabs_tab.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- chrome/browser/ui/views/tabs/tab.cc.orig 2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/tabs/tab.cc.orig 2024-07-24 02:44:29.916130500 +0000
+++ chrome/browser/ui/views/tabs/tab.cc
-@@ -596,7 +596,7 @@ void Tab::MaybeUpdateHoverStatus(const u
- if (mouse_hovered_ || !GetWidget()->IsMouseEventsEnabled())
+@@ -611,7 +611,7 @@ void Tab::MaybeUpdateHoverStatus(const u
return;
+ }
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// Move the hit test area for hovering up so that it is not overlapped by tab
// hover cards when they are shown.
- // TODO(crbug/978134): Once Linux/CrOS widget transparency is solved, remove
+ // TODO(crbug.com/41467565): Once Linux/CrOS widget transparency is solved,
diff --git a/chromium/patches/patch-chrome_browser_ui_views_tabs_tab__drag__controller.cc b/chromium/patches/patch-chrome_browser_ui_views_tabs_tab__drag__controller.cc
index ec2ab1002c..c1a8edd58f 100644
--- a/chromium/patches/patch-chrome_browser_ui_views_tabs_tab__drag__controller.cc
+++ b/chromium/patches/patch-chrome_browser_ui_views_tabs_tab__drag__controller.cc
@@ -1,31 +1,62 @@
$NetBSD$
---- chrome/browser/ui/views/tabs/tab_drag_controller.cc.orig 2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/tabs/tab_drag_controller.cc.orig 2024-07-24 02:44:29.916130500 +0000
+++ chrome/browser/ui/views/tabs/tab_drag_controller.cc
-@@ -445,7 +445,7 @@ void TabDragController::Init(TabDragCont
+@@ -95,7 +95,7 @@
+ #include "components/remote_cocoa/browser/window.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/aura/client/drag_drop_client.h"
+ #endif
+
+@@ -215,7 +215,7 @@ bool IsWindowDragUsingSystemDragDropAllo
+
+ void UpdateSystemDnDDragImage(TabDragContext* attached_context,
+ const gfx::ImageSkia& image) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ aura::Window* root_window =
+ attached_context->GetWidget()->GetNativeWindow()->GetRootWindow();
+ if (aura::client::GetDragDropClient(root_window)) {
+@@ -405,7 +405,7 @@ TabDragController::Liveness TabDragContr
// synchronous on desktop Linux, so use that.
- // - Chrome OS
+ // - ChromeOS Ash
// Releasing capture on Ash cancels gestures so avoid it.
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- can_release_capture_ = false;
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ ref->can_release_capture_ = false;
#endif
- start_point_in_screen_ = gfx::Point(source_view_offset, mouse_offset.y());
-@@ -890,7 +890,7 @@ TabDragController::DragBrowserToNewTabSt
- else
- SetCapture(target_context);
+ ref->start_point_in_screen_ =
+@@ -1070,7 +1070,7 @@ TabDragController::DragBrowserToNewTabSt
--#if !defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if (!defined(OS_LINUX) && !defined(OS_BSD)) || defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++#if !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
// EndMoveLoop is going to snap the window back to its original location.
// Hide it so users don't see this. Hiding a window in Linux aura causes
// it to lose capture so skip it.
-@@ -2080,7 +2080,7 @@ TabDragController::Liveness TabDragContr
- if (dragged_window)
- exclude.insert(dragged_window);
+@@ -2179,7 +2179,7 @@ void TabDragController::CompleteDrag() {
+ }
+
+ // If source window was maximized - maximize the new window as well.
+-#if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_MAC)
++#if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD)
+ // Keeping maximized state breaks snap to Grid on Windows when dragging
+ // tabs from maximized windows. TODO:(crbug.com/727051) Explore doing this
+ // for other desktop OS's. kMaximizedStateRetainedOnTabDrag in
+@@ -2608,7 +2608,7 @@ TabDragController::Liveness TabDragContr
}
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
// Exclude windows which are pending deletion via Browser::TabStripEmpty().
// These windows can be returned in the Linux Aura port because the browser
// window which was used for dragging is not hidden once all of its tabs are
diff --git a/chromium/patches/patch-chrome_browser_ui_views_tabs_tab__hover__card__bubble__view.cc b/chromium/patches/patch-chrome_browser_ui_views_tabs_tab__hover__card__bubble__view.cc
new file mode 100644
index 0000000000..5ce854f3b4
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_tabs_tab__hover__card__bubble__view.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/tabs/tab_hover_card_bubble_view.cc.orig 2024-07-24 02:44:29.920130700 +0000
++++ chrome/browser/ui/views/tabs/tab_hover_card_bubble_view.cc
+@@ -374,7 +374,7 @@ TabHoverCardBubbleView::TabHoverCardBubb
+ // not become active. Setting this to false creates the need to explicitly
+ // hide the hovercard on press, touch, and keyboard events.
+ SetCanActivate(false);
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ set_accept_events(false);
+ #endif
+
diff --git a/chromium/patches/patch-chrome_browser_ui_views_tabs_tab__style__views.cc b/chromium/patches/patch-chrome_browser_ui_views_tabs_tab__style__views.cc
new file mode 100644
index 0000000000..273ae2d2f5
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_tabs_tab__style__views.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/tabs/tab_style_views.cc.orig 2024-07-24 02:44:29.928131600 +0000
++++ chrome/browser/ui/views/tabs/tab_style_views.cc
+@@ -502,7 +502,7 @@ float GM2TabStyleViews::GetCurrentActive
+ if (!IsHoverAnimationActive()) {
+ return base_opacity;
+ }
+- return std::lerp(base_opacity, GetHoverOpacity(), GetHoverAnimationValue());
++ return std::lerp(base_opacity, GetHoverOpacity(), static_cast<float>(GetHoverAnimationValue()));
+ }
+
+ TabActive GM2TabStyleViews::GetApparentActiveState() const {
diff --git a/chromium/patches/patch-chrome_browser_ui_views_user__education_browser__user__education__service.cc b/chromium/patches/patch-chrome_browser_ui_views_user__education_browser__user__education__service.cc
new file mode 100644
index 0000000000..273e4f2e0a
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_user__education_browser__user__education__service.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/user_education/browser_user_education_service.cc.orig 2024-07-24 02:44:29.944133000 +0000
++++ chrome/browser/ui/views/user_education/browser_user_education_service.cc
+@@ -1007,7 +1007,7 @@ void MaybeRegisterChromeFeaturePromos(
+ FeaturePromoSpecification::AcceleratorInfo())
+ .SetBubbleArrow(HelpBubbleArrow::kTopLeft)));
+
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ // kIPHDesktopPWAsLinkCapturingLaunch:
+ registry.RegisterFeature(std::move(
+ FeaturePromoSpecification::CreateForCustomAction(
diff --git a/chromium/patches/patch-chrome_browser_ui_views_web__apps_web__app__integration__test__driver.cc b/chromium/patches/patch-chrome_browser_ui_views_web__apps_web__app__integration__test__driver.cc
new file mode 100644
index 0000000000..dd926cff8a
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_web__apps_web__app__integration__test__driver.cc
@@ -0,0 +1,89 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/web_apps/web_app_integration_test_driver.cc.orig 2024-07-24 02:44:29.960134700 +0000
++++ chrome/browser/ui/views/web_apps/web_app_integration_test_driver.cc
+@@ -515,7 +515,7 @@ std::string GetFileExtension(FileExtensi
+ }
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ SiteConfig GetSiteConfigurationFromAppName(const std::string& app_name) {
+ SiteConfig config;
+ bool is_app_found = false;
+@@ -2103,7 +2103,7 @@ void WebAppIntegrationTestDriver::Delete
+ if (app_name.empty()) {
+ app_name = GetSiteConfiguration(site).app_name;
+ }
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ ASSERT_TRUE(override_registration_->test_override().IsShortcutCreated(
+ profile(), app_id, app_name));
+ ASSERT_TRUE(
+@@ -3433,7 +3433,7 @@ void WebAppIntegrationTestDriver::CheckR
+ app_state->id, app_state->name);
+ ASSERT_TRUE(icon_color.has_value());
+ ASSERT_THAT(site_config.icon_color, testing::Eq(icon_color.value()));
+-#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ ASSERT_TRUE(override_registration_->test_override().IsRunOnOsLoginEnabled(
+ profile(), app_state->id, app_state->name));
+ #endif
+@@ -3448,7 +3448,7 @@ void WebAppIntegrationTestDriver::CheckR
+ GetAppBySiteMode(after_state_change_action_state_.get(), profile(), site);
+ ASSERT_TRUE(app_state);
+ base::ScopedAllowBlockingForTesting allow_blocking;
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ ASSERT_FALSE(override_registration_->test_override().IsRunOnOsLoginEnabled(
+ profile(), app_state->id, app_state->name));
+ #endif
+@@ -3458,7 +3458,7 @@ void WebAppIntegrationTestDriver::CheckR
+ void WebAppIntegrationTestDriver::CheckSiteHandlesFile(
+ Site site,
+ FileExtension file_extension) {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (!BeforeStateCheckAction(__FUNCTION__)) {
+ return;
+ }
+@@ -3474,7 +3474,7 @@ void WebAppIntegrationTestDriver::CheckS
+ void WebAppIntegrationTestDriver::CheckSiteNotHandlesFile(
+ Site site,
+ FileExtension file_extension) {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (!BeforeStateCheckAction(__FUNCTION__)) {
+ return;
+ }
+@@ -4288,7 +4288,7 @@ base::FilePath WebAppIntegrationTestDriv
+ base::FilePath shortcut_dir,
+ const std::string& app_name,
+ const webapps::AppId& app_id) {
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ return override_registration_->test_override().GetShortcutPath(
+ profile(), shortcut_dir, app_id, app_name);
+ #else
+@@ -4488,7 +4488,7 @@ bool WebAppIntegrationTestDriver::IsShor
+ const webapps::AppId& id) {
+ base::ScopedAllowBlockingForTesting allow_blocking;
+ bool is_shortcut_and_icon_correct = false;
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool is_shortcut_correct =
+ override_registration_->test_override().IsShortcutCreated(profile, id,
+ name);
+@@ -4532,7 +4532,7 @@ bool WebAppIntegrationTestDriver::DoIcon
+ do_icon_colors_match =
+ (expected_icon_pixel_color == shortcut_pixel_color_apps_folder.value());
+ }
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ SkColor expected_icon_pixel_color =
+ GetSiteConfigurationFromAppName(name).icon_color;
+ std::optional<SkColor> actual_color_install_icon_size =
diff --git a/chromium/patches/patch-chrome_browser_ui_web__applications_web__app__dialogs.h b/chromium/patches/patch-chrome_browser_ui_web__applications_web__app__dialogs.h
new file mode 100644
index 0000000000..5fee390d47
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_web__applications_web__app__dialogs.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/web_applications/web_app_dialogs.h.orig 2024-07-24 02:44:29.976136200 +0000
++++ chrome/browser/ui/web_applications/web_app_dialogs.h
+@@ -22,7 +22,7 @@
+ #include "ui/gfx/native_widget_types.h"
+
+ static_assert(BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
+- BUILDFLAG(IS_CHROMEOS));
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD));
+
+ class GURL;
+ class Profile;
diff --git a/chromium/patches/patch-chrome_browser_ui_web__applications_web__app__ui__manager__impl.cc b/chromium/patches/patch-chrome_browser_ui_web__applications_web__app__ui__manager__impl.cc
new file mode 100644
index 0000000000..f1354ed5a0
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_web__applications_web__app__ui__manager__impl.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/web_applications/web_app_ui_manager_impl.cc.orig 2024-07-24 02:44:29.980136600 +0000
++++ chrome/browser/ui/web_applications/web_app_ui_manager_impl.cc
+@@ -577,7 +577,7 @@ void WebAppUiManagerImpl::MaybeShowIPHPr
+ content::WebContents* web_contents,
+ Profile* profile,
+ const std::string& app_id) {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ WebAppProvider* provider = WebAppProvider::GetForWebApps(profile);
+ CHECK(provider);
+
+@@ -797,7 +797,7 @@ void WebAppUiManagerImpl::ClearWebAppSit
+ }
+ }
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void WebAppUiManagerImpl::ShowIPHPromoForAppsLaunchedViaLinkCapturing(
+ const Browser* browser,
+ const webapps::AppId& app_id,
diff --git a/chromium/patches/patch-chrome_browser_ui_web__applications_web__app__ui__manager__impl.h b/chromium/patches/patch-chrome_browser_ui_web__applications_web__app__ui__manager__impl.h
new file mode 100644
index 0000000000..cc6d2f12fc
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_web__applications_web__app__ui__manager__impl.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/web_applications/web_app_ui_manager_impl.h.orig 2024-07-24 02:44:29.980136600 +0000
++++ chrome/browser/ui/web_applications/web_app_ui_manager_impl.h
+@@ -222,7 +222,7 @@ class WebAppUiManagerImpl : public Brows
+ UninstallCompleteCallback uninstall_complete_callback,
+ webapps::UninstallResultCode uninstall_code);
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void ShowIPHPromoForAppsLaunchedViaLinkCapturing(const Browser* browser,
+ const webapps::AppId& app_id,
+ bool is_activated);
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_about__ui.cc b/chromium/patches/patch-chrome_browser_ui_webui_about__ui.cc
deleted file mode 100644
index dd2437b0db..0000000000
--- a/chromium/patches/patch-chrome_browser_ui_webui_about__ui.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- chrome/browser/ui/webui/about_ui.cc.orig 2020-07-08 21:40:36.000000000 +0000
-+++ chrome/browser/ui/webui/about_ui.cc
-@@ -564,7 +564,7 @@ std::string ChromeURLs() {
- return html;
- }
-
--#if defined(OS_LINUX) || defined(OS_OPENBSD)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- std::string AboutLinuxProxyConfig() {
- std::string data;
- AppendHeader(&data, 0,
-@@ -620,7 +620,7 @@ void AboutUIHTMLSource::StartDataRequest
- response =
- ui::ResourceBundle::GetSharedInstance().LoadDataResourceString(idr);
- }
--#if defined(OS_LINUX) || defined(OS_OPENBSD)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- } else if (source_name_ == chrome::kChromeUILinuxProxyConfigHost) {
- response = AboutLinuxProxyConfig();
- #endif
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_about_about__ui.cc b/chromium/patches/patch-chrome_browser_ui_webui_about_about__ui.cc
new file mode 100644
index 0000000000..4f8c41fbc4
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_webui_about_about__ui.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/webui/about/about_ui.cc.orig 2024-07-24 02:44:29.984137000 +0000
++++ chrome/browser/ui/webui/about/about_ui.cc
+@@ -593,7 +593,7 @@ std::string ChromeURLs(content::BrowserC
+ return html;
+ }
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ std::string AboutLinuxProxyConfig() {
+ std::string data;
+ AppendHeader(&data,
+@@ -648,7 +648,7 @@ void AboutUIHTMLSource::StartDataRequest
+ response =
+ ui::ResourceBundle::GetSharedInstance().LoadDataResourceString(idr);
+ }
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ } else if (source_name_ == chrome::kChromeUILinuxProxyConfigHost) {
+ response = AboutLinuxProxyConfig();
+ #endif
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_app__home_app__home__page__handler.cc b/chromium/patches/patch-chrome_browser_ui_webui_app__home_app__home__page__handler.cc
new file mode 100644
index 0000000000..54825bd08f
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_webui_app__home_app__home__page__handler.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/webui/app_home/app_home_page_handler.cc.orig 2024-07-24 02:44:29.988137500 +0000
++++ chrome/browser/ui/webui/app_home/app_home_page_handler.cc
+@@ -61,7 +61,7 @@
+ #include "ui/base/window_open_disposition_utils.h"
+ #include "url/gurl.h"
+
+-static_assert(BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX));
++static_assert(BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD));
+
+ using content::WebUI;
+ using extensions::Extension;
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_app__home_app__home__page__handler.h b/chromium/patches/patch-chrome_browser_ui_webui_app__home_app__home__page__handler.h
new file mode 100644
index 0000000000..6774e1dd5b
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_webui_app__home_app__home__page__handler.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/webui/app_home/app_home_page_handler.h.orig 2024-07-24 02:44:29.988137500 +0000
++++ chrome/browser/ui/webui/app_home/app_home_page_handler.h
+@@ -24,7 +24,7 @@
+ #include "mojo/public/cpp/bindings/receiver.h"
+ #include "mojo/public/cpp/bindings/remote.h"
+
+-static_assert(BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX));
++static_assert(BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD));
+
+ class ExtensionEnableFlow;
+
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc b/chromium/patches/patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc
index 24fab9c0f5..6fc7245ce3 100644
--- a/chromium/patches/patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc
+++ b/chromium/patches/patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc
@@ -1,57 +1,120 @@
$NetBSD$
---- chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc.orig 2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc.orig 2024-07-24 02:44:30.072145500 +0000
+++ chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
-@@ -234,11 +234,11 @@
- #include "chrome/browser/ui/webui/conflicts/conflicts_ui.h"
+@@ -191,7 +191,7 @@
+ #include "chrome/browser/ui/webui/chromeos/chrome_url_disabled/chrome_url_disabled_ui.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/webui/webui_js_error/webui_js_error_ui.h"
#endif
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+@@ -216,21 +216,21 @@
+ #endif
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "chrome/browser/ui/webui/discards/discards_ui.h"
#endif
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
#include "chrome/browser/ui/webui/sandbox/sandbox_internals_ui.h"
#endif
-@@ -382,7 +382,7 @@ bool IsAboutUI(const GURL& url) {
- #if !defined(OS_ANDROID)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_ASH)
++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/webui/connectors_internals/connectors_internals_ui.h"
+ #endif
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/webui/whats_new/whats_new_ui.h"
+ #include "chrome/browser/ui/webui/whats_new/whats_new_util.h"
+ #endif
+@@ -384,7 +384,7 @@ bool IsAboutUI(const GURL& url) {
+ #if !BUILDFLAG(IS_ANDROID)
|| url.host_piece() == chrome::kChromeUITermsHost
#endif
--#if defined(OS_LINUX) || defined(OS_OPENBSD)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
|| url.host_piece() == chrome::kChromeUILinuxProxyConfigHost
#endif
- #if defined(OS_CHROMEOS)
-@@ -755,7 +755,7 @@ WebUIFactoryFunction GetWebUIFactoryFunc
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
+@@ -591,7 +591,7 @@ WebUIFactoryFunction GetWebUIFactoryFunc
+ if (url.host_piece() == chrome::kChromeUIMobileSetupHost)
+ return &NewWebUI<ash::cellular_setup::MobileSetupUI>;
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ if (url.host_piece() == chrome::kChromeUIWebUIJsErrorHost)
+ return &NewWebUI<WebUIJsErrorUI>;
+ #endif
+@@ -647,7 +647,7 @@ WebUIFactoryFunction GetWebUIFactoryFunc
if (url.host_piece() == chrome::kChromeUINaClHost)
return &NewWebUI<NaClUI>;
#endif
--#if (defined(OS_LINUX) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA)
-+#if ((defined(OS_LINUX) || defined(OS_BSD)) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA)
+-#if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \
++#if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && \
+ defined(TOOLKIT_VIEWS)) || \
+ defined(USE_AURA)
if (url.host_piece() == chrome::kChromeUITabModalConfirmDialogHost)
- return &NewWebUI<ConstrainedWebDialogUI>;
- #endif
-@@ -803,17 +803,17 @@ WebUIFactoryFunction GetWebUIFactoryFunc
- return &NewWebUI<media_router::MediaRouterInternalsUI>;
+@@ -678,7 +678,7 @@ WebUIFactoryFunction GetWebUIFactoryFunc
+ if (url.host_piece() == chrome::kChromeUIWebuiGalleryHost) {
+ return &NewWebUI<WebuiGalleryUI>;
+ }
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (url.host_piece() == chrome::kChromeUIWhatsNewHost &&
+ whats_new::IsEnabled()) {
+ return &NewWebUI<WhatsNewUI>;
+@@ -697,26 +697,26 @@ WebUIFactoryFunction GetWebUIFactoryFunc
}
#endif
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
if (url.host_piece() == chrome::kChromeUISandboxHost) {
return &NewWebUI<SandboxInternalsUI>;
}
#endif
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_ASH)
++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ if (url.host_piece() == chrome::kChromeUIConnectorsInternalsHost)
+ return &NewWebUI<enterprise_connectors::ConnectorsInternalsUI>;
+ #endif
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
if (url.host_piece() == chrome::kChromeUIDiscardsHost)
return &NewWebUI<DiscardsUI>;
#endif
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
-- (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+ ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
if (url.host_piece() == chrome::kChromeUIBrowserSwitchHost)
return &NewWebUI<BrowserSwitchUI>;
#endif
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (url.host_piece() == chrome::kChromeUIWebAppSettingsHost)
+ return &NewWebUI<WebAppSettingsUI>;
+ #endif
+@@ -955,7 +955,7 @@ base::RefCountedMemory* ChromeWebUIContr
+ if (page_url.host_piece() == chrome::kChromeUINewTabPageHost)
+ return NewTabPageUI::GetFaviconResourceBytes(scale_factor);
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (page_url.host_piece() == chrome::kChromeUIWhatsNewHost)
+ return WhatsNewUI::GetFaviconResourceBytes(scale_factor);
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_connectors__internals_device__trust__utils.cc b/chromium/patches/patch-chrome_browser_ui_webui_connectors__internals_device__trust__utils.cc
new file mode 100644
index 0000000000..ff19202cf3
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_webui_connectors__internals_device__trust__utils.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/webui/connectors_internals/device_trust_utils.cc.orig 2024-07-24 02:44:30.076146000 +0000
++++ chrome/browser/ui/webui/connectors_internals/device_trust_utils.cc
+@@ -7,7 +7,7 @@
+ #include "build/build_config.h"
+ #include "components/enterprise/buildflags/buildflags.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ #include "base/base64url.h"
+ #include "chrome/browser/browser_process.h"
+ #include "chrome/browser/policy/chrome_browser_policy_connector.h"
+@@ -38,7 +38,7 @@ namespace enterprise_connectors::utils {
+
+ namespace {
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+
+ connectors_internals::mojom::KeyTrustLevel ParseTrustLevel(
+ BPKUR::KeyTrustLevel trust_level) {
+@@ -173,7 +173,7 @@ connectors_internals::mojom::Certificate
+ } // namespace
+
+ connectors_internals::mojom::KeyInfoPtr GetKeyInfo() {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ auto* key_manager = g_browser_process->browser_policy_connector()
+ ->chrome_browser_cloud_management_controller()
+ ->GetDeviceTrustKeyManager();
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_management_management__ui.cc b/chromium/patches/patch-chrome_browser_ui_webui_management_management__ui.cc
new file mode 100644
index 0000000000..71e54a118e
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_webui_management_management__ui.cc
@@ -0,0 +1,22 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/webui/management/management_ui.cc.orig 2024-07-24 02:44:30.096147800 +0000
++++ chrome/browser/ui/webui/management/management_ui.cc
+@@ -100,11 +100,11 @@ content::WebUIDataSource* CreateAndAddMa
+ {kManagementOnFileTransferVisibleData,
+ IDS_MANAGEMENT_FILE_TRANSFER_VISIBLE_DATA},
+ #endif // BUILDFLAG(IS_CHROMEOS)
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ {kManagementScreenCaptureEvent, IDS_MANAGEMENT_SCREEN_CAPTURE_EVENT},
+ {kManagementScreenCaptureData, IDS_MANAGEMENT_SCREEN_CAPTURE_DATA},
+ #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ {kManagementDeviceSignalsDisclosure,
+ IDS_MANAGEMENT_DEVICE_SIGNALS_DISCLOSURE},
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_management_management__ui__constants.cc b/chromium/patches/patch-chrome_browser_ui_webui_management_management__ui__constants.cc
new file mode 100644
index 0000000000..1e84cfbe1a
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_webui_management_management__ui__constants.cc
@@ -0,0 +1,23 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/webui/management/management_ui_constants.cc.orig 2024-07-24 02:44:30.100148200 +0000
++++ chrome/browser/ui/webui/management/management_ui_constants.cc
+@@ -78,12 +78,12 @@ const char kProfileReportingBrowser[] =
+ const char kProfileReportingExtension[] = "profileReportingExtension";
+ const char kProfileReportingPolicy[] = "profileReportingPolicy";
+
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const char kManagementScreenCaptureEvent[] = "managementScreenCaptureEvent";
+ const char kManagementScreenCaptureData[] = "managementScreenCaptureData";
+ #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const char kManagementDeviceSignalsDisclosure[] =
+ "managementDeviceSignalsDisclosure";
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_management_management__ui__constants.h b/chromium/patches/patch-chrome_browser_ui_webui_management_management__ui__constants.h
new file mode 100644
index 0000000000..2b0547d97e
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_webui_management_management__ui__constants.h
@@ -0,0 +1,25 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/webui/management/management_ui_constants.h.orig 2024-07-24 02:44:30.100148200 +0000
++++ chrome/browser/ui/webui/management/management_ui_constants.h
+@@ -8,14 +8,14 @@
+ #include "build/build_config.h"
+ #include "build/chromeos_buildflags.h"
+
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Constants defining the IDs for the localized strings sent to the page as
+ // load time data.
+ extern const char kManagementScreenCaptureEvent[];
+ extern const char kManagementScreenCaptureData[];
+ #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ extern const char kManagementDeviceSignalsDisclosure[];
+ #endif // #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_management_management__ui__handler.cc b/chromium/patches/patch-chrome_browser_ui_webui_management_management__ui__handler.cc
new file mode 100644
index 0000000000..676a3c9aca
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_webui_management_management__ui__handler.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/webui/management/management_ui_handler.cc.orig 2024-07-24 02:44:30.100148200 +0000
++++ chrome/browser/ui/webui/management/management_ui_handler.cc
+@@ -58,7 +58,7 @@
+ #include "ui/base/l10n/l10n_util.h"
+ #include "ui/base/webui/web_ui_util.h"
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/signals/user_permission_service_factory.h"
+ #include "components/device_signals/core/browser/user_permission_service.h" // nogncheck
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+@@ -354,7 +354,7 @@ void ManagementUIHandler::AddReportingIn
+ report_sources->Append(std::move(data));
+ }
+ }
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Insert the device signals consent disclosure at the end of browser
+ // reporting section.
+ auto* user_permission_service = GetUserPermissionService();
+@@ -532,7 +532,7 @@ policy::PolicyService* ManagementUIHandl
+ ->policy_service();
+ }
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ device_signals::UserPermissionService*
+ ManagementUIHandler::GetUserPermissionService() {
+ return enterprise_signals::UserPermissionServiceFactory::GetForProfile(
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_management_management__ui__handler.h b/chromium/patches/patch-chrome_browser_ui_webui_management_management__ui__handler.h
new file mode 100644
index 0000000000..1c2b6334ae
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_webui_management_management__ui__handler.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/webui/management/management_ui_handler.h.orig 2024-07-24 02:44:30.100148200 +0000
++++ chrome/browser/ui/webui/management/management_ui_handler.h
+@@ -31,7 +31,7 @@ namespace policy {
+ class PolicyService;
+ } // namespace policy
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ namespace device_signals {
+ class UserPermissionService;
+ } // namespace device_signals
+@@ -72,7 +72,7 @@ class ManagementUIHandler : public conte
+ base::Value::List GetManagedWebsitesInfo(Profile* profile) const;
+ base::Value::List GetApplicationsInfo(Profile* profile) const;
+ virtual policy::PolicyService* GetPolicyService();
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ virtual device_signals::UserPermissionService* GetUserPermissionService();
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_password__manager_promo__cards__handler.cc b/chromium/patches/patch-chrome_browser_ui_webui_password__manager_promo__cards__handler.cc
new file mode 100644
index 0000000000..4637c2a2d2
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_webui_password__manager_promo__cards__handler.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/webui/password_manager/promo_cards_handler.cc.orig 2024-07-24 02:44:30.260163800 +0000
++++ chrome/browser/ui/webui/password_manager/promo_cards_handler.cc
+@@ -28,7 +28,7 @@
+ #include "chrome/browser/ui/webui/password_manager/promo_cards/web_password_manager_promo.h"
+ #endif
+
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/webui/password_manager/promo_cards/relaunch_chrome_promo.h"
+ #endif
+
+@@ -71,7 +71,7 @@ std::vector<std::unique_ptr<PasswordProm
+ .get()));
+ #endif
+
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ promo_cards.push_back(
+ std::make_unique<RelaunchChromePromo>(profile->GetPrefs()));
+ #endif
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_password__manager_promo__cards_relaunch__chrome__promo.cc b/chromium/patches/patch-chrome_browser_ui_webui_password__manager_promo__cards_relaunch__chrome__promo.cc
new file mode 100644
index 0000000000..e4f44f943c
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_webui_password__manager_promo__cards_relaunch__chrome__promo.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/webui/password_manager/promo_cards/relaunch_chrome_promo.cc.orig 2024-07-24 02:44:30.260163800 +0000
++++ chrome/browser/ui/webui/password_manager/promo_cards/relaunch_chrome_promo.cc
+@@ -37,7 +37,7 @@ std::u16string RelaunchChromePromo::GetT
+ return l10n_util::GetStringUTF16(
+ #if BUILDFLAG(IS_MAC)
+ IDS_PASSWORD_MANAGER_UI_RELAUNCH_CHROME_PROMO_CARD_TITLE
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ IDS_PASSWORD_MANAGER_UI_RELAUNCH_CHROME_PROMO_CARD_TITLE_LINUX
+ #endif
+ );
+@@ -47,7 +47,7 @@ std::u16string RelaunchChromePromo::GetD
+ return l10n_util::GetStringUTF16(
+ #if BUILDFLAG(IS_MAC)
+ IDS_PASSWORD_MANAGER_UI_RELAUNCH_CHROME_PROMO_CARD_DESCRIPTION
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ IDS_PASSWORD_MANAGER_UI_RELAUNCH_CHROME_PROMO_CARD_DESCRIPTION_LINUX
+ #endif
+ );
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_searchbox_searchbox__handler.cc b/chromium/patches/patch-chrome_browser_ui_webui_searchbox_searchbox__handler.cc
new file mode 100644
index 0000000000..4ab87eac47
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_webui_searchbox_searchbox__handler.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/webui/searchbox/searchbox_handler.cc.orig 2024-07-24 02:44:30.276165200 +0000
++++ chrome/browser/ui/webui/searchbox/searchbox_handler.cc
+@@ -105,7 +105,7 @@ const char* kMacShareIconResourceName =
+ #elif BUILDFLAG(IS_WIN)
+ const char* kWinShareIconResourceName =
+ "//resources/cr_components/searchbox/icons/win_share.svg";
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const char* kLinuxShareIconResourceName =
+ "//resources/cr_components/searchbox/icons/share.svg";
+ #else
+@@ -165,7 +165,7 @@ static void DefineChromeRefreshRealboxIc
+ #elif BUILDFLAG(IS_WIN)
+ kWinShareIconResourceName =
+ "//resources/cr_components/searchbox/icons/win_share_cr23.svg";
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ kLinuxShareIconResourceName =
+ "//resources/cr_components/searchbox/icons/share_cr23.svg";
+ #else
+@@ -671,7 +671,7 @@ std::string SearchboxHandler::ActionVect
+ icon.name == omnibox::kShareWinChromeRefreshIcon.name) {
+ return kWinShareIconResourceName;
+ }
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (icon.name == omnibox::kShareIcon.name ||
+ icon.name == omnibox::kShareLinuxChromeRefreshIcon.name) {
+ return kLinuxShareIconResourceName;
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_settings_accessibility__main__handler.cc b/chromium/patches/patch-chrome_browser_ui_webui_settings_accessibility__main__handler.cc
new file mode 100644
index 0000000000..d2015f4747
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_webui_settings_accessibility__main__handler.cc
@@ -0,0 +1,52 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/webui/settings/accessibility_main_handler.cc.orig 2024-07-24 02:44:30.276165200 +0000
++++ chrome/browser/ui/webui/settings/accessibility_main_handler.cc
+@@ -19,7 +19,7 @@
+ #include "content/public/browser/web_contents.h"
+ #include "content/public/browser/web_ui.h"
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ #include "ui/accessibility/accessibility_features.h"
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
+
+@@ -39,7 +39,7 @@ void AccessibilityMainHandler::RegisterM
+ base::BindRepeating(
+ &AccessibilityMainHandler::HandleCheckAccessibilityImageLabels,
+ base::Unretained(this)));
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ web_ui()->RegisterMessageCallback(
+ "getScreenAiInstallState",
+ base::BindRepeating(
+@@ -56,7 +56,7 @@ void AccessibilityMainHandler::OnJavascr
+ base::Unretained(this)));
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH)
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ if (features::IsPdfOcrEnabled() || features::IsMainNodeAnnotationsEnabled()) {
+ CHECK(!component_ready_observer_.IsObserving());
+ component_ready_observer_.Observe(
+@@ -70,14 +70,14 @@ void AccessibilityMainHandler::OnJavascr
+ accessibility_subscription_ = {};
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH)
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ if (features::IsPdfOcrEnabled() || features::IsMainNodeAnnotationsEnabled()) {
+ component_ready_observer_.Reset();
+ }
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
+ }
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ void AccessibilityMainHandler::DownloadProgressChanged(double progress) {
+ CHECK_GE(progress, 0.0);
+ CHECK_LE(progress, 1.0);
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_settings_accessibility__main__handler.h b/chromium/patches/patch-chrome_browser_ui_webui_settings_accessibility__main__handler.h
new file mode 100644
index 0000000000..00659f8895
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_webui_settings_accessibility__main__handler.h
@@ -0,0 +1,53 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/webui/settings/accessibility_main_handler.h.orig 2024-07-24 02:44:30.276165200 +0000
++++ chrome/browser/ui/webui/settings/accessibility_main_handler.h
+@@ -13,7 +13,7 @@
+ #include "chrome/browser/ash/accessibility/accessibility_manager.h"
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH)
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ #include "base/scoped_observation.h"
+ #include "chrome/browser/screen_ai/screen_ai_install_state.h"
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
+@@ -24,7 +24,7 @@ namespace settings {
+ // chrome://settings/accessibility.
+ class AccessibilityMainHandler
+ : public ::settings::SettingsPageUIHandler
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ ,
+ public screen_ai::ScreenAIInstallState::Observer
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
+@@ -40,7 +40,7 @@ class AccessibilityMainHandler
+ void OnJavascriptAllowed() override;
+ void OnJavascriptDisallowed() override;
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ // screen_ai::ScreenAIInstallState::Observer:
+ void DownloadProgressChanged(double progress) override;
+ void StateChanged(screen_ai::ScreenAIInstallState::State state) override;
+@@ -50,7 +50,7 @@ class AccessibilityMainHandler
+ void HandleGetScreenReaderState(const base::Value::List& args);
+ void HandleCheckAccessibilityImageLabels(const base::Value::List& args);
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ void HandleGetScreenAIInstallState(const base::Value::List& args);
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
+
+@@ -63,7 +63,7 @@ class AccessibilityMainHandler
+ base::CallbackListSubscription accessibility_subscription_;
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH)
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ base::ScopedObservation<screen_ai::ScreenAIInstallState,
+ screen_ai::ScreenAIInstallState::Observer>
+ component_ready_observer_{this};
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_settings_appearance__handler.cc b/chromium/patches/patch-chrome_browser_ui_webui_settings_appearance__handler.cc
index a0d73d1256..7473ba36c4 100644
--- a/chromium/patches/patch-chrome_browser_ui_webui_settings_appearance__handler.cc
+++ b/chromium/patches/patch-chrome_browser_ui_webui_settings_appearance__handler.cc
@@ -1,22 +1,17 @@
$NetBSD$
---- chrome/browser/ui/webui/settings/appearance_handler.cc.orig 2020-07-08 21:40:36.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/webui/settings/appearance_handler.cc.orig 2024-07-24 02:44:30.276165200 +0000
+++ chrome/browser/ui/webui/settings/appearance_handler.cc
-@@ -27,7 +27,7 @@ void AppearanceHandler::RegisterMessages
+@@ -28,7 +28,7 @@ void AppearanceHandler::RegisterMessages
"useDefaultTheme",
- base::BindRepeating(&AppearanceHandler::HandleUseDefaultTheme,
- base::Unretained(this)));
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ base::BindRepeating(&AppearanceHandler::HandleUseTheme,
+ base::Unretained(this), ui::SystemTheme::kDefault));
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
web_ui()->RegisterMessageCallback(
- "useSystemTheme",
- base::BindRepeating(&AppearanceHandler::HandleUseSystemTheme,
-@@ -39,7 +39,7 @@ void AppearanceHandler::HandleUseDefault
- ThemeServiceFactory::GetForProfile(profile_)->UseDefaultTheme();
- }
-
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- void AppearanceHandler::HandleUseSystemTheme(const base::ListValue* args) {
- if (profile_->IsSupervised())
- NOTREACHED();
+ "useGtkTheme",
+ base::BindRepeating(&AppearanceHandler::HandleUseTheme,
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_settings_appearance__handler.h b/chromium/patches/patch-chrome_browser_ui_webui_settings_appearance__handler.h
deleted file mode 100644
index 3989c23b5d..0000000000
--- a/chromium/patches/patch-chrome_browser_ui_webui_settings_appearance__handler.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/ui/webui/settings/appearance_handler.h.orig 2020-07-08 21:40:36.000000000 +0000
-+++ chrome/browser/ui/webui/settings/appearance_handler.h
-@@ -36,7 +36,7 @@ class AppearanceHandler : public Setting
- // Changes the UI theme of the browser to the default theme.
- void HandleUseDefaultTheme(const base::ListValue* args);
-
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- // Changes the UI theme of the browser to the system (GTK+) theme.
- void HandleUseSystemTheme(const base::ListValue* args);
- #endif
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_settings_settings__localized__strings__provider.cc b/chromium/patches/patch-chrome_browser_ui_webui_settings_settings__localized__strings__provider.cc
index ef99adb396..dfd817942d 100644
--- a/chromium/patches/patch-chrome_browser_ui_webui_settings_settings__localized__strings__provider.cc
+++ b/chromium/patches/patch-chrome_browser_ui_webui_settings_settings__localized__strings__provider.cc
@@ -1,13 +1,71 @@
$NetBSD$
---- chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc.orig 2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc.orig 2024-07-24 02:44:30.288166500 +0000
+++ chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
-@@ -332,7 +332,7 @@ void AddAppearanceStrings(content::WebUI
- {"minimumFont", IDS_SETTINGS_MINIMUM_FONT_SIZE_LABEL},
- {"tiny", IDS_SETTINGS_TINY_FONT_SIZE},
- {"huge", IDS_SETTINGS_HUGE_FONT_SIZE},
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- {"systemTheme", IDS_SETTINGS_SYSTEM_THEME},
- {"useSystemTheme", IDS_SETTINGS_USE_SYSTEM_THEME},
- {"classicTheme", IDS_SETTINGS_CLASSIC_THEME},
+@@ -142,7 +142,7 @@
+ #include "chrome/browser/ui/chrome_pages.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && !BUILDFLAG(IS_CHROMEOS_LACROS)
+ #include "ui/display/screen.h"
+ #endif
+
+@@ -161,7 +161,7 @@
+ #include "chrome/browser/ui/webui/certificate_manager_localized_strings_provider.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/linux/linux_ui_factory.h"
+ #include "ui/ozone/public/ozone_platform.h"
+ #endif
+@@ -280,7 +280,7 @@ void AddA11yStrings(content::WebUIDataSo
+ {"focusHighlightLabel",
+ IDS_SETTINGS_ACCESSIBILITY_FOCUS_HIGHLIGHT_DESCRIPTION},
+ #endif
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ {"overscrollHistoryNavigationTitle",
+ IDS_SETTINGS_OVERSCROLL_HISTORY_NAVIGATION_TITLE},
+ {"overscrollHistoryNavigationSubtitle",
+@@ -303,7 +303,7 @@ void AddA11yStrings(content::WebUIDataSo
+ html_source->AddLocalizedStrings(kLocalizedStrings);
+
+ #if (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)) && \
+- BUILDFLAG(ENABLE_SCREEN_AI_SERVICE)
++ BUILDFLAG(ENABLE_SCREEN_AI_SERVICE) || BUILDFLAG(IS_BSD)
+ html_source->AddBoolean(
+ "mainNodeAnnotationsEnabled",
+ base::FeatureList::IsEnabled(features::kMainNodeAnnotations));
+@@ -422,7 +422,7 @@ void AddAppearanceStrings(content::WebUI
+ {"huge", IDS_SETTINGS_HUGE_FONT_SIZE},
+ {"uiFeatureAlignLeft", IDS_SETTINGS_UI_FEATURE_ALIGN_LEFT},
+ {"uiFeatureAlignRight", IDS_SETTINGS_UI_FEATURE_ALIGN_RIGHT},
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ {"gtkTheme", IDS_SETTINGS_GTK_THEME},
+ {"useGtkTheme", IDS_SETTINGS_USE_GTK_THEME},
+ {"qtTheme", IDS_SETTINGS_QT_THEME},
+@@ -432,7 +432,7 @@ void AddAppearanceStrings(content::WebUI
+ #else
+ {"resetToDefaultTheme", IDS_SETTINGS_RESET_TO_DEFAULT_THEME},
+ #endif
+-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && !BUILDFLAG(IS_CHROMEOS_LACROS)
+ {"showWindowDecorations", IDS_SHOW_WINDOW_DECORATIONS},
+ #endif
+ #if BUILDFLAG(IS_MAC)
+@@ -458,7 +458,7 @@ void AddAppearanceStrings(content::WebUI
+
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && !BUILDFLAG(IS_CHROMEOS_LACROS)
+ bool show_custom_chrome_frame = ui::OzonePlatform::GetInstance()
+ ->GetPlatformRuntimeProperties()
+ .supports_server_side_window_decorations;
diff --git a/chromium/patches/patch-chrome_browser_ui_window__sizer_window__sizer.cc b/chromium/patches/patch-chrome_browser_ui_window__sizer_window__sizer.cc
new file mode 100644
index 0000000000..a2e36ab092
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_window__sizer_window__sizer.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/window_sizer/window_sizer.cc.orig 2024-07-24 02:44:30.328170300 +0000
++++ chrome/browser/ui/window_sizer/window_sizer.cc
+@@ -210,7 +210,7 @@ void WindowSizer::GetBrowserWindowBounds
+ browser, window_bounds, show_state);
+ }
+
+-#if !BUILDFLAG(IS_LINUX)
++#if !BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Linux has its own implementation, see WindowSizerLinux.
+ // static
+ void WindowSizer::GetBrowserWindowBoundsAndShowState(
diff --git a/chromium/patches/patch-chrome_browser_visited__url__ranking_visited__url__ranking__service__factory.cc b/chromium/patches/patch-chrome_browser_visited__url__ranking_visited__url__ranking__service__factory.cc
new file mode 100644
index 0000000000..214d05afbc
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_visited__url__ranking_visited__url__ranking__service__factory.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/visited_url_ranking/visited_url_ranking_service_factory.cc.orig 2024-07-24 02:44:30.348172200 +0000
++++ chrome/browser/visited_url_ranking/visited_url_ranking_service_factory.cc
+@@ -39,7 +39,7 @@
+ #include "components/visited_url_ranking/public/visited_url_ranking_service.h"
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/visited_url_ranking/desktop_tab_model_url_visit_data_fetcher.h"
+ #elif BUILDFLAG(IS_ANDROID)
+ #include "chrome/browser/visited_url_ranking/android_tab_model_url_visit_data_fetcher.h"
+@@ -99,7 +99,7 @@ VisitedURLRankingServiceFactory::BuildSe
+
+ std::map<Fetcher, std::unique_ptr<URLVisitDataFetcher>> data_fetchers;
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ data_fetchers.emplace(
+ Fetcher::kTabModel,
+ std::make_unique<visited_url_ranking::DesktopTabModelURLVisitDataFetcher>(
diff --git a/chromium/patches/patch-chrome_browser_web__applications_components_web__app__file__handler__registration.h b/chromium/patches/patch-chrome_browser_web__applications_components_web__app__file__handler__registration.h
deleted file mode 100644
index fa72e973b3..0000000000
--- a/chromium/patches/patch-chrome_browser_web__applications_components_web__app__file__handler__registration.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/web_applications/components/web_app_file_handler_registration.h.orig 2020-07-08 21:40:36.000000000 +0000
-+++ chrome/browser/web_applications/components/web_app_file_handler_registration.h
-@@ -38,7 +38,7 @@ void RegisterFileHandlersWithOs(const Ap
- // If a shim app was required, also removes the shim app.
- void UnregisterFileHandlersWithOs(const AppId& app_id, Profile* profile);
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- using RegisterMimeTypesOnLinuxCallback =
- base::OnceCallback<bool(base::FilePath profile_path,
- std::string file_contents)>;
diff --git a/chromium/patches/patch-chrome_browser_web__applications_components_web__app__shortcut.cc b/chromium/patches/patch-chrome_browser_web__applications_components_web__app__shortcut.cc
deleted file mode 100644
index e14ba0ff17..0000000000
--- a/chromium/patches/patch-chrome_browser_web__applications_components_web__app__shortcut.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/web_applications/components/web_app_shortcut.cc.orig 2020-07-08 21:40:36.000000000 +0000
-+++ chrome/browser/web_applications/components/web_app_shortcut.cc
-@@ -34,7 +34,7 @@ namespace {
-
- #if defined(OS_MACOSX)
- const int kDesiredIconSizesForShortcut[] = {16, 32, 128, 256, 512};
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- // Linux supports icons of any size. FreeDesktop Icon Theme Specification states
- // that "Minimally you should install a 48x48 icon in the hicolor theme."
- const int kDesiredIconSizesForShortcut[] = {16, 32, 48, 128, 256, 512};
diff --git a/chromium/patches/patch-chrome_browser_web__applications_extension__status__utils.h b/chromium/patches/patch-chrome_browser_web__applications_extension__status__utils.h
new file mode 100644
index 0000000000..2b1f3bc795
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_web__applications_extension__status__utils.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/web_applications/extension_status_utils.h.orig 2024-07-24 02:44:30.380175400 +0000
++++ chrome/browser/web_applications/extension_status_utils.h
+@@ -55,7 +55,7 @@ bool IsExternalExtensionUninstalled(cont
+ bool ClearExternalExtensionUninstalled(content::BrowserContext* context,
+ const std::string& extension_id);
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // If this method returns true, then |extension_id| will not be launchable.
+ //
+ // The eventual goal is that this method should return true for all hosted apps,
diff --git a/chromium/patches/patch-chrome_browser_web__applications_extensions_bookmark__app__finalizer__utils.cc b/chromium/patches/patch-chrome_browser_web__applications_extensions_bookmark__app__finalizer__utils.cc
deleted file mode 100644
index 391460b1f7..0000000000
--- a/chromium/patches/patch-chrome_browser_web__applications_extensions_bookmark__app__finalizer__utils.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/web_applications/extensions/bookmark_app_finalizer_utils.cc.orig 2020-07-08 21:40:36.000000000 +0000
-+++ chrome/browser/web_applications/extensions/bookmark_app_finalizer_utils.cc
-@@ -15,7 +15,7 @@ namespace {
-
- #if !defined(OS_CHROMEOS)
- bool CanOsAddDesktopShortcuts() {
--#if defined(OS_LINUX) || defined(OS_WIN)
-+#if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_BSD)
- return true;
- #else
- return false;
diff --git a/chromium/patches/patch-chrome_browser_web__applications_extensions_extension__status__utils.cc b/chromium/patches/patch-chrome_browser_web__applications_extensions_extension__status__utils.cc
new file mode 100644
index 0000000000..a3c385f2b8
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_web__applications_extensions_extension__status__utils.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/web_applications/extensions/extension_status_utils.cc.orig 2024-07-24 02:44:30.380175400 +0000
++++ chrome/browser/web_applications/extensions/extension_status_utils.cc
+@@ -25,7 +25,7 @@ namespace {
+
+ const char* g_preinstalled_app_for_testing = nullptr;
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // TODO(b/268221237): Remove this allow-list.
+ const char kDefaultAllowedExtensionIds[] =
+ "alhngdkjgnedakdlnamimgfihgkmenbh,"
+@@ -113,7 +113,7 @@ bool ClearExternalExtensionUninstalled(c
+ extension_id);
+ }
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool IsExtensionUnsupportedDeprecatedApp(content::BrowserContext* context,
+ const std::string& extension_id) {
+ if (testing::g_enable_chrome_apps_for_testing) {
diff --git a/chromium/patches/patch-chrome_browser_web__applications_os__integration_os__integration__manager.cc b/chromium/patches/patch-chrome_browser_web__applications_os__integration_os__integration__manager.cc
new file mode 100644
index 0000000000..9c525234d1
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_web__applications_os__integration_os__integration__manager.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/web_applications/os_integration/os_integration_manager.cc.orig 2024-07-24 02:44:30.404177700 +0000
++++ chrome/browser/web_applications/os_integration/os_integration_manager.cc
+@@ -651,7 +651,7 @@ std::unique_ptr<ShortcutInfo> OsIntegrat
+ }
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const std::vector<WebAppShortcutsMenuItemInfo>& shortcuts_menu_item_infos =
+ app->shortcuts_menu_item_infos();
+ DCHECK_LE(shortcuts_menu_item_infos.size(), kMaxApplicationDockMenuItems);
diff --git a/chromium/patches/patch-chrome_browser_web__applications_os__integration_os__integration__test__override.h b/chromium/patches/patch-chrome_browser_web__applications_os__integration_os__integration__test__override.h
new file mode 100644
index 0000000000..d5af8b8e02
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_web__applications_os__integration_os__integration__test__override.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/web_applications/os_integration/os_integration_test_override.h.orig 2024-07-24 02:44:30.404177700 +0000
++++ chrome/browser/web_applications/os_integration/os_integration_test_override.h
+@@ -99,7 +99,7 @@ class OsIntegrationTestOverride
+ virtual base::FilePath chrome_apps_folder() = 0;
+ virtual void EnableOrDisablePathOnLogin(const base::FilePath& file_path,
+ bool enable_on_login) = 0;
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ virtual base::Environment* environment() = 0;
+ #endif
+
diff --git a/chromium/patches/patch-chrome_browser_web__applications_os__integration_run__on__os__login__sub__manager.cc b/chromium/patches/patch-chrome_browser_web__applications_os__integration_run__on__os__login__sub__manager.cc
new file mode 100644
index 0000000000..3a8683ffc3
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_web__applications_os__integration_run__on__os__login__sub__manager.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/web_applications/os_integration/run_on_os_login_sub_manager.cc.orig 2024-07-24 02:44:30.404177700 +0000
++++ chrome/browser/web_applications/os_integration/run_on_os_login_sub_manager.cc
+@@ -54,7 +54,7 @@ proto::RunOnOsLoginMode ConvertWebAppRun
+ // different from other platforms, see web_app_run_on_os_login_manager.h for
+ // more info.
+ bool DoesRunOnOsLoginRequireExecution() {
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return base::FeatureList::IsEnabled(features::kDesktopPWAsRunOnOsLogin);
+ #else
+ return false;
diff --git a/chromium/patches/patch-chrome_browser_web__applications_os__integration_shortcut__sub__manager.cc b/chromium/patches/patch-chrome_browser_web__applications_os__integration_shortcut__sub__manager.cc
new file mode 100644
index 0000000000..cf12ae2781
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_web__applications_os__integration_shortcut__sub__manager.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/web_applications/os_integration/shortcut_sub_manager.cc.orig 2024-07-24 02:44:30.408178000 +0000
++++ chrome/browser/web_applications/os_integration/shortcut_sub_manager.cc
+@@ -186,7 +186,7 @@ void ShortcutSubManager::Execute(
+ return;
+ }
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ // Protocol handler update detection. Shortcuts need to be updated in this
+ // case on Linux & Mac because the shortcut itself includes the protocol
+ // handling metadata.
diff --git a/chromium/patches/patch-chrome_browser_web__applications_os__integration_web__app__file__handler__registration.h b/chromium/patches/patch-chrome_browser_web__applications_os__integration_web__app__file__handler__registration.h
new file mode 100644
index 0000000000..7493fd2fe8
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_web__applications_os__integration_web__app__file__handler__registration.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/web_applications/os_integration/web_app_file_handler_registration.h.orig 2024-07-24 02:44:30.408178000 +0000
++++ chrome/browser/web_applications/os_integration/web_app_file_handler_registration.h
+@@ -43,7 +43,7 @@ void UnregisterFileHandlersWithOs(const
+ const base::FilePath& profile_path,
+ ResultCallback callback);
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Exposed for testing purposes. Register the set of
+ // MIME-type-to-file-extensions mappings corresponding to |file_handlers|. File
+ // I/O and callouts to the Linux shell are performed asynchronously.
diff --git a/chromium/patches/patch-chrome_browser_web__applications_os__integration_web__app__shortcut.cc b/chromium/patches/patch-chrome_browser_web__applications_os__integration_web__app__shortcut.cc
new file mode 100644
index 0000000000..75aadc91ad
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_web__applications_os__integration_web__app__shortcut.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/web_applications/os_integration/web_app_shortcut.cc.orig 2024-07-24 02:44:30.408178000 +0000
++++ chrome/browser/web_applications/os_integration/web_app_shortcut.cc
+@@ -65,7 +65,7 @@ namespace {
+
+ #if BUILDFLAG(IS_MAC)
+ const int kDesiredIconSizesForShortcut[] = {16, 32, 128, 256, 512};
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Linux supports icons of any size. FreeDesktop Icon Theme Specification states
+ // that "Minimally you should install a 48x48 icon in the hicolor theme."
+ const int kDesiredIconSizesForShortcut[] = {16, 32, 48, 128, 256, 512};
+@@ -227,7 +227,7 @@ std::unique_ptr<ShortcutInfo> BuildShort
+
+ // TODO(crbug.com/40257107): Implement tests on Linux for using shortcuts_menu
+ // actions.
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const std::vector<WebAppShortcutsMenuItemInfo>& shortcuts_menu_item_infos =
+ CreateShortcutsMenuItemInfos(state.shortcut_menus());
+ DCHECK_LE(shortcuts_menu_item_infos.size(), kMaxApplicationDockMenuItems);
diff --git a/chromium/patches/patch-chrome_browser_web__applications_os__integration_web__app__shortcut.h b/chromium/patches/patch-chrome_browser_web__applications_os__integration_web__app__shortcut.h
new file mode 100644
index 0000000000..474672a93a
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_web__applications_os__integration_web__app__shortcut.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/web_applications/os_integration/web_app_shortcut.h.orig 2024-07-24 02:44:30.408178000 +0000
++++ chrome/browser/web_applications/os_integration/web_app_shortcut.h
+@@ -21,7 +21,7 @@
+ #include "ui/gfx/image/image_family.h"
+ #include "url/gurl.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/web_applications/os_integration/web_app_shortcut_linux.h"
+ #endif // BUILDFLAG(IS_LINUX)
+
+@@ -70,7 +70,7 @@ struct ShortcutInfo {
+ std::set<std::string> file_handler_extensions;
+ std::set<std::string> file_handler_mime_types;
+ std::set<std::string> protocol_handlers;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ std::set<DesktopActionInfo> actions;
+ #endif // BUILDFLAG(IS_LINUX)
+
diff --git a/chromium/patches/patch-chrome_browser_web__applications_policy_web__app__policy__manager.cc b/chromium/patches/patch-chrome_browser_web__applications_policy_web__app__policy__manager.cc
new file mode 100644
index 0000000000..9641ab2c59
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_web__applications_policy_web__app__policy__manager.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/web_applications/policy/web_app_policy_manager.cc.orig 2024-07-24 02:44:30.412178500 +0000
++++ chrome/browser/web_applications/policy/web_app_policy_manager.cc
+@@ -101,7 +101,7 @@ namespace web_app {
+
+ BASE_FEATURE(kDesktopPWAsForceUnregisterOSIntegration,
+ "DesktopPWAsForceUnregisterOSIntegration",
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+ base::FEATURE_DISABLED_BY_DEFAULT
diff --git a/chromium/patches/patch-chrome_browser_web__applications_test_os__integration__test__override__impl.cc b/chromium/patches/patch-chrome_browser_web__applications_test_os__integration__test__override__impl.cc
new file mode 100644
index 0000000000..522f7b7f56
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_web__applications_test_os__integration__test__override__impl.cc
@@ -0,0 +1,125 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/web_applications/test/os_integration_test_override_impl.cc.orig 2024-07-24 02:44:30.420179400 +0000
++++ chrome/browser/web_applications/test/os_integration_test_override_impl.cc
+@@ -46,7 +46,7 @@
+ #include "third_party/skia/include/core/SkBitmap.h"
+ #include "third_party/skia/include/core/SkColor.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "base/nix/xdg_util.h"
+ #endif
+
+@@ -131,7 +131,7 @@ std::vector<std::wstring> GetFileExtensi
+ }
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Performs a blocking read of app icons from the disk.
+ SkColor IconManagerReadIconTopLeftColorForSize(WebAppIconManager& icon_manager,
+ const webapps::AppId& app_id,
+@@ -266,7 +266,7 @@ bool OsIntegrationTestOverrideImpl::Simu
+ GetShortcutPath(profile, chrome_apps_folder(), app_id, app_name);
+ CHECK(base::PathExists(app_folder_shortcut_path));
+ return base::DeletePathRecursively(app_folder_shortcut_path);
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ base::FilePath desktop_shortcut_path =
+ GetShortcutPath(profile, desktop(), app_id, app_name);
+ LOG(INFO) << desktop_shortcut_path;
+@@ -306,7 +306,7 @@ bool OsIntegrationTestOverrideImpl::Dele
+ }
+ #endif // BUILDFLAG(IS_WIN)
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool OsIntegrationTestOverrideImpl::DeleteDesktopDirOnLinux() {
+ if (desktop_.IsValid()) {
+ return desktop_.Delete();
+@@ -320,7 +320,7 @@ bool OsIntegrationTestOverrideImpl::IsRu
+ Profile* profile,
+ const webapps::AppId& app_id,
+ const std::string& app_name) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ std::string shortcut_filename =
+ "chrome-" + app_id + "-" + profile->GetBaseName().value() + ".desktop";
+ return base::PathExists(startup().Append(shortcut_filename));
+@@ -376,7 +376,7 @@ bool OsIntegrationTestOverrideImpl::IsFi
+ is_file_handled =
+ shell_integration::CanApplicationHandleURL(app_path, test_file_url);
+ base::DeleteFile(test_file_path);
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ base::FilePath user_applications_dir = applications();
+ bool database_update_called = false;
+ for (const LinuxFileRegistration& command : linux_file_registration_) {
+@@ -419,7 +419,7 @@ OsIntegrationTestOverrideImpl::GetShortc
+ return std::nullopt;
+ }
+ return GetIconTopLeftColorFromShortcutFile(shortcut_path);
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ WebAppProvider* provider = WebAppProvider::GetForLocalAppsUnchecked(profile);
+ if (!provider) {
+ return std::nullopt;
+@@ -469,7 +469,7 @@ base::FilePath OsIntegrationTestOverride
+ app_installed_profiles.end()) {
+ return shortcut_path;
+ }
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ std::string shortcut_filename =
+ "chrome-" + app_id + "-" + profile->GetBaseName().value() + ".desktop";
+ base::FilePath shortcut_path = shortcut_dir.Append(shortcut_filename);
+@@ -495,7 +495,7 @@ bool OsIntegrationTestOverrideImpl::IsSh
+ base::FilePath app_shortcut_path =
+ GetShortcutPath(profile, chrome_apps_folder(), app_id, app_name);
+ return base::PathExists(app_shortcut_path);
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ base::FilePath desktop_shortcut_path =
+ GetShortcutPath(profile, desktop(), app_id, app_name);
+ return base::PathExists(desktop_shortcut_path);
+@@ -683,7 +683,7 @@ void OsIntegrationTestOverrideImpl::Enab
+ }
+ #endif // BUILDFLAG(IS_MAC)
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ base::FilePath OsIntegrationTestOverrideImpl::desktop() {
+ return desktop_.GetPath();
+ }
+@@ -734,7 +734,7 @@ OsIntegrationTestOverrideImpl::OsIntegra
+ success = chrome_apps_folder_.CreateUniqueTempDirUnderPath(
+ outer_temp_dir_.GetPath());
+ CHECK(success);
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ success = desktop_.CreateUniqueTempDirUnderPath(outer_temp_dir_.GetPath());
+ CHECK(success);
+ success = startup_.CreateUniqueTempDirUnderPath(outer_temp_dir_.GetPath());
+@@ -747,7 +747,7 @@ OsIntegrationTestOverrideImpl::OsIntegra
+ CHECK(success);
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ auto callback = base::BindRepeating([](base::FilePath filename_in,
+ std::string xdg_command,
+ std::string file_contents) {
+@@ -819,7 +819,7 @@ OsIntegrationTestOverrideImpl::~OsIntegr
+ EXPECT_TRUE(!startup_.IsValid() || startup_.Delete());
+ #elif BUILDFLAG(IS_MAC)
+ EXPECT_TRUE(!chrome_apps_folder_.IsValid() || chrome_apps_folder_.Delete());
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ EXPECT_TRUE(!desktop_.IsValid() || desktop_.Delete());
+ EXPECT_TRUE(!startup_.IsValid() || startup_.Delete());
+ EXPECT_TRUE(!xdg_data_home_dir_.IsValid() || xdg_data_home_dir_.Delete());
diff --git a/chromium/patches/patch-chrome_browser_web__applications_test_os__integration__test__override__impl.h b/chromium/patches/patch-chrome_browser_web__applications_test_os__integration__test__override__impl.h
new file mode 100644
index 0000000000..fc1ed4fb98
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_web__applications_test_os__integration__test__override__impl.h
@@ -0,0 +1,44 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/web_applications/test/os_integration_test_override_impl.h.orig 2024-07-24 02:44:30.420179400 +0000
++++ chrome/browser/web_applications/test/os_integration_test_override_impl.h
+@@ -40,7 +40,7 @@ class ShellLinkItem;
+
+ namespace web_app {
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ struct LinuxFileRegistration {
+ base::FilePath file_name;
+ std::string xdg_command;
+@@ -122,7 +122,7 @@ class OsIntegrationTestOverrideImpl : pu
+ bool DeleteApplicationMenuDirOnWin();
+ #endif // BUILDFLAG(IS_WIN)
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool DeleteDesktopDirOnLinux();
+ #endif // BUILDFLAG(IS_LINUX)
+
+@@ -242,7 +242,7 @@ class OsIntegrationTestOverrideImpl : pu
+ base::FilePath chrome_apps_folder() override;
+ void EnableOrDisablePathOnLogin(const base::FilePath& file_path,
+ bool enable_on_login) override;
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ base::FilePath desktop();
+ base::FilePath startup();
+ base::FilePath applications();
+@@ -322,7 +322,7 @@ class OsIntegrationTestOverrideImpl : pu
+ base::ScopedTempDir chrome_apps_folder_;
+ std::map<base::FilePath, bool> startup_enabled_;
+
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ base::ScopedTempDir desktop_;
+ base::ScopedTempDir startup_;
+ base::ScopedTempDir xdg_data_home_dir_;
diff --git a/chromium/patches/patch-chrome_browser_web__applications_web__app__helpers.cc b/chromium/patches/patch-chrome_browser_web__applications_web__app__helpers.cc
new file mode 100644
index 0000000000..09225efe37
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_web__applications_web__app__helpers.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/web_applications/web_app_helpers.cc.orig 2024-07-24 02:44:30.428180000 +0000
++++ chrome/browser/web_applications/web_app_helpers.cc
+@@ -145,7 +145,7 @@ bool IsValidWebAppUrl(const GURL& app_ur
+ return false;
+
+ bool allow_extension_apps = true;
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Stop allowing apps to be extension urls when the shortcuts are separated -
+ // they can be extension urls instead.
+ allow_extension_apps =
diff --git a/chromium/patches/patch-chrome_browser_web__applications_web__app__install__info.h b/chromium/patches/patch-chrome_browser_web__applications_web__app__install__info.h
new file mode 100644
index 0000000000..2f12e3fef3
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_web__applications_web__app__install__info.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/web_applications/web_app_install_info.h.orig 2024-07-24 02:44:30.428180000 +0000
++++ chrome/browser/web_applications/web_app_install_info.h
+@@ -38,7 +38,7 @@
+ #include "url/gurl.h"
+
+ static_assert(BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
+- BUILDFLAG(IS_CHROMEOS));
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD));
+
+ namespace web_app {
+
diff --git a/chromium/patches/patch-chrome_browser_webauthn_chrome__authenticator__request__delegate.cc b/chromium/patches/patch-chrome_browser_webauthn_chrome__authenticator__request__delegate.cc
new file mode 100644
index 0000000000..238dd121eb
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_webauthn_chrome__authenticator__request__delegate.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/webauthn/chrome_authenticator_request_delegate.cc.orig 2024-07-24 02:44:30.448181900 +0000
++++ chrome/browser/webauthn/chrome_authenticator_request_delegate.cc
+@@ -972,7 +972,7 @@ void ChromeAuthenticatorRequestDelegate:
+ g_observer->ConfiguringCable(request_type);
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // No caBLEv1 on Linux. It tends to crash bluez.
+ if (base::Contains(pairings_from_extension,
+ device::CableDiscoveryData::Version::V1,
diff --git a/chromium/patches/patch-chrome_browser_webauthn_enclave__manager.cc b/chromium/patches/patch-chrome_browser_webauthn_enclave__manager.cc
new file mode 100644
index 0000000000..97ef31355f
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_webauthn_enclave__manager.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/webauthn/enclave_manager.cc.orig 2024-07-24 02:44:30.452182300 +0000
++++ chrome/browser/webauthn/enclave_manager.cc
+@@ -646,7 +646,7 @@ base::flat_set<std::string> GetGaiaIDs(
+ }
+
+ std::string UserVerifyingLabelToString(crypto::UserVerifyingKeyLabel label) {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return label;
+ #else
+ return std::string("placeholder");
+@@ -655,7 +655,7 @@ std::string UserVerifyingLabelToString(c
+
+ std::optional<crypto::UserVerifyingKeyLabel> UserVerifyingKeyLabelFromString(
+ std::string saved_label) {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return saved_label;
+ #else
+ return std::nullopt;
diff --git a/chromium/patches/patch-chrome_common_BUILD.gn b/chromium/patches/patch-chrome_common_BUILD.gn
deleted file mode 100644
index 2912b5d327..0000000000
--- a/chromium/patches/patch-chrome_common_BUILD.gn
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD$
-
---- chrome/common/BUILD.gn.orig 2020-07-08 21:41:47.000000000 +0000
-+++ chrome/common/BUILD.gn
-@@ -271,6 +271,11 @@ static_library("common") {
- public_deps += [ "//ppapi/shared_impl" ]
- }
-
-+ if (is_bsd) {
-+ #sources -= [ "component_flash_hint_file_linux.cc" ]
-+ deps -= [ "//components/crash/core/app" ]
-+ }
-+
- if (enable_extensions) {
- sources += [
- "cast_messages.cc",
diff --git a/chromium/patches/patch-chrome_common_channel__info.h b/chromium/patches/patch-chrome_common_channel__info.h
index 3bc2954d73..5084f19308 100644
--- a/chromium/patches/patch-chrome_common_channel__info.h
+++ b/chromium/patches/patch-chrome_common_channel__info.h
@@ -1,13 +1,26 @@
$NetBSD$
---- chrome/common/channel_info.h.orig 2020-07-08 21:40:36.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/channel_info.h.orig 2024-07-24 02:44:30.488186000 +0000
+++ chrome/common/channel_info.h
-@@ -61,7 +61,7 @@ bool IsSideBySideCapable();
+@@ -12,7 +12,7 @@
+ #include "build/build_config.h"
+ #include "build/chromeos_buildflags.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ namespace base {
+ class Environment;
+ }
+@@ -100,7 +100,7 @@ void ClearChannelIdForTesting();
std::string GetChannelSuffixForDataDir();
#endif
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ std::string GetChannelSuffixForExtraFlagsEnvVarName();
+
// Returns the channel-specific filename of the desktop shortcut used to launch
- // the browser.
- std::string GetDesktopName(base::Environment* env);
diff --git a/chromium/patches/patch-chrome_common_channel__info__posix.cc b/chromium/patches/patch-chrome_common_channel__info__posix.cc
index 3493b5dd9d..5e896bc881 100644
--- a/chromium/patches/patch-chrome_common_channel__info__posix.cc
+++ b/chromium/patches/patch-chrome_common_channel__info__posix.cc
@@ -1,13 +1,26 @@
$NetBSD$
---- chrome/common/channel_info_posix.cc.orig 2020-07-08 21:40:36.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/channel_info_posix.cc.orig 2024-07-24 02:44:30.488186000 +0000
+++ chrome/common/channel_info_posix.cc
-@@ -67,7 +67,7 @@ std::string GetChannelSuffixForDataDir()
+@@ -93,7 +93,7 @@ std::string GetChannelSuffixForDataDir()
}
}
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ std::string GetChannelSuffixForExtraFlagsEnvVarName() {
+ #if BUILDFLAG(GOOGLE_CHROME_BRANDING)
+ const auto channel_state = GetChannelImpl();
+@@ -121,7 +121,7 @@ std::string GetChannelSuffixForExtraFlag
+
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
std::string GetDesktopName(base::Environment* env) {
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
// Google Chrome packaged as a snap is a special case: the application name
diff --git a/chromium/patches/patch-chrome_common_chrome__content__client.cc b/chromium/patches/patch-chrome_common_chrome__content__client.cc
deleted file mode 100644
index 27597f2568..0000000000
--- a/chromium/patches/patch-chrome_common_chrome__content__client.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- chrome/common/chrome_content_client.cc.orig 2020-07-08 21:41:47.000000000 +0000
-+++ chrome/common/chrome_content_client.cc
-@@ -65,7 +65,7 @@
- #include "ui/base/resource/resource_bundle.h"
- #include "url/url_constants.h"
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include <fcntl.h>
- #include "chrome/common/component_flash_hint_file_linux.h"
- #include "sandbox/linux/services/credentials.h"
-@@ -294,7 +294,7 @@ bool GetComponentUpdatedPepperFlash(cont
-
- return TryCreatePepperFlashInfo(flash_filename, plugin);
- }
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- // This method is used on Linux only because of architectural differences in how
- // it loads the component updated flash plugin, and not because the other
- // platforms do not support component updated flash. On other platforms, the
-@@ -557,7 +557,7 @@ void ChromeContentClient::AddPepperPlugi
- std::vector<std::unique_ptr<content::PepperPluginInfo>> flash_versions;
-
- // Get component updated flash for desktop Linux and Chrome OS.
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // Depending on the sandbox configuration, the file system
- // is not always available. If it is not available, do not try and load any
- // flash plugin. The flash player, if any, preloaded before the sandbox
diff --git a/chromium/patches/patch-chrome_common_chrome__features.cc b/chromium/patches/patch-chrome_common_chrome__features.cc
index 45307b3a88..c5a6b54477 100644
--- a/chromium/patches/patch-chrome_common_chrome__features.cc
+++ b/chromium/patches/patch-chrome_common_chrome__features.cc
@@ -1,13 +1,62 @@
$NetBSD$
---- chrome/common/chrome_features.cc.orig 2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/chrome_features.cc.orig 2024-07-24 02:44:30.492186300 +0000
+++ chrome/common/chrome_features.cc
-@@ -70,7 +70,7 @@ const base::Feature kAsyncDns {
+@@ -81,7 +81,7 @@ BASE_FEATURE(kUseAdHocSigningForWebAppSh
+ #endif // BUILDFLAG(IS_MAC)
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Enables or disables the Autofill survey triggered by opening a prompt to
+ // save address info.
+ BASE_FEATURE(kAutofillAddressSurvey,
+@@ -99,7 +99,7 @@ BASE_FEATURE(kAutofillPasswordSurvey,
+ base::FEATURE_DISABLED_BY_DEFAULT);
#endif
- };
--#if defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// Enables the Restart background mode optimization. When all Chrome UI is
// closed and it goes in the background, allows to restart the browser to
// discard memory.
+@@ -277,7 +277,7 @@ BASE_FEATURE(kDesktopPWAsElidedExtension
+ BASE_FEATURE(kDesktopPWAsRunOnOsLogin,
+ "DesktopPWAsRunOnOsLogin",
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+ base::FEATURE_DISABLED_BY_DEFAULT
+@@ -319,7 +319,7 @@ BASE_FEATURE(kDesktopPWAsTabStripSetting
+ "DesktopPWAsTabStripSettings",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Controls whether Chrome Apps are supported. See https://crbug.com/1221251.
+ // If the feature is disabled, Chrome Apps continue to work. If enabled, Chrome
+ // Apps will not launch and will be marked in the UI as deprecated.
+@@ -876,7 +876,7 @@ BASE_FEATURE(kKAnonymityServiceStorage,
+ "KAnonymityServiceStorage",
+ base::FEATURE_ENABLED_BY_DEFAULT);
+
+-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)
++#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)) || BUILDFLAG(IS_BSD)
+ BASE_FEATURE(kLinuxLowMemoryMonitor,
+ "LinuxLowMemoryMonitor",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+@@ -889,7 +889,7 @@ constexpr base::FeatureParam<int> kLinux
+ &kLinuxLowMemoryMonitor, "critical_level", 255};
+ #endif // BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ BASE_FEATURE(kListWebAppsSwitch,
+ "ListWebAppsSwitch",
+ base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/chromium/patches/patch-chrome_common_chrome__features.h b/chromium/patches/patch-chrome_common_chrome__features.h
index bd6e4879c0..271c6d55ee 100644
--- a/chromium/patches/patch-chrome_common_chrome__features.h
+++ b/chromium/patches/patch-chrome_common_chrome__features.h
@@ -1,13 +1,51 @@
$NetBSD$
---- chrome/common/chrome_features.h.orig 2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/chrome_features.h.orig 2024-07-24 02:44:30.492186300 +0000
+++ chrome/common/chrome_features.h
-@@ -63,7 +63,7 @@ extern const base::Feature kAppServiceAd
+@@ -60,13 +60,13 @@ BASE_DECLARE_FEATURE(kUseAdHocSigningFor
+ #endif // BUILDFLAG(IS_MAC)
- COMPONENT_EXPORT(CHROME_FEATURES) extern const base::Feature kAsyncDns;
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(CHROME_FEATURES) BASE_DECLARE_FEATURE(kAutofillAddressSurvey);
+ COMPONENT_EXPORT(CHROME_FEATURES) BASE_DECLARE_FEATURE(kAutofillCardSurvey);
+ COMPONENT_EXPORT(CHROME_FEATURES) BASE_DECLARE_FEATURE(kAutofillPasswordSurvey);
+ #endif
--#if defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(CHROME_FEATURES)
+ BASE_DECLARE_FEATURE(kBackgroundModeAllowRestart);
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+@@ -193,7 +193,7 @@ BASE_DECLARE_FEATURE(kDesktopPWAsPrevent
+ COMPONENT_EXPORT(CHROME_FEATURES)
+ BASE_DECLARE_FEATURE(kDesktopPWAsTabStripSettings);
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(CHROME_FEATURES) BASE_DECLARE_FEATURE(kChromeAppsDeprecation);
+ COMPONENT_EXPORT(CHROME_FEATURES)
+ BASE_DECLARE_FEATURE(kShortcutsNotApps);
+@@ -529,7 +529,7 @@ BASE_DECLARE_FEATURE(kKAnonymityServiceO
COMPONENT_EXPORT(CHROME_FEATURES)
- extern const base::Feature kBackgroundModeAllowRestart;
- #endif // defined(OS_WIN) || defined(OS_LINUX)
+ BASE_DECLARE_FEATURE(kKAnonymityServiceStorage);
+
+-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)
++#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(CHROME_FEATURES) BASE_DECLARE_FEATURE(kLinuxLowMemoryMonitor);
+ COMPONENT_EXPORT(CHROME_FEATURES)
+ extern const base::FeatureParam<int> kLinuxLowMemoryMonitorModerateLevel;
+@@ -537,7 +537,7 @@ COMPONENT_EXPORT(CHROME_FEATURES)
+ extern const base::FeatureParam<int> kLinuxLowMemoryMonitorCriticalLevel;
+ #endif // BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(CHROME_FEATURES) BASE_DECLARE_FEATURE(kListWebAppsSwitch);
+ #endif
+
diff --git a/chromium/patches/patch-chrome_common_chrome__paths.cc b/chromium/patches/patch-chrome_common_chrome__paths.cc
index 0680686b14..e05eb3fac8 100644
--- a/chromium/patches/patch-chrome_common_chrome__paths.cc
+++ b/chromium/patches/patch-chrome_common_chrome__paths.cc
@@ -1,58 +1,90 @@
$NetBSD$
---- chrome/common/chrome_paths.cc.orig 2020-07-15 18:55:52.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/chrome_paths.cc.orig 2024-07-24 02:44:30.492186300 +0000
+++ chrome/common/chrome_paths.cc
-@@ -52,14 +52,14 @@ const base::FilePath::CharType kPepperFl
- FILE_PATH_LITERAL("Internet Plug-Ins/PepperFlashPlayer");
+@@ -30,7 +30,7 @@
+ #include "base/apple/foundation_util.h"
+ #endif
+
+-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC)
+ #include "components/policy/core/common/policy_paths.h"
#endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+@@ -52,14 +52,14 @@
+
+ namespace {
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// The path to the external extension <id>.json files.
// /usr/share seems like a good choice, see: http://www.pathname.com/fhs/
const base::FilePath::CharType kFilepathSinglePrefExtensions[] =
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
- FILE_PATH_LITERAL("/usr/share/google-chrome/extensions");
-+ FILE_PATH_LITERAL("@PREFIX@/share/google-chrome/extensions");
++ FILE_PATH_LITERAL("@PREFIX@/share/chromium/extensions");
#else
- FILE_PATH_LITERAL("/usr/share/chromium/extensions");
+ FILE_PATH_LITERAL("@PREFIX@/share/chromium/extensions");
#endif // BUILDFLAG(GOOGLE_CHROME_BRANDING)
- // The path to the hint file that tells the pepper plugin loader
-@@ -205,7 +205,7 @@ bool PathProvider(int key, base::FilePat
- return false;
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+@@ -225,7 +225,7 @@ bool PathProvider(int key, base::FilePat
+ }
break;
case chrome::DIR_DEFAULT_DOWNLOADS_SAFE:
--#if defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
- if (!GetUserDownloadsDirectorySafe(&cur))
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ if (!GetUserDownloadsDirectorySafe(&cur)) {
return false;
+ }
+@@ -541,7 +541,7 @@ bool PathProvider(int key, base::FilePat
+ return false;
+ }
+ break;
+-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC)
+ case chrome::DIR_POLICY_FILES: {
+ cur = base::FilePath(policy::kPolicyPath);
break;
-@@ -505,7 +505,7 @@ bool PathProvider(int key, base::FilePat
+@@ -552,7 +552,7 @@ bool PathProvider(int key, base::FilePat
+ #if BUILDFLAG(IS_CHROMEOS_ASH) || \
+ ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) && \
+ BUILDFLAG(CHROMIUM_BRANDING)) || \
+- BUILDFLAG(IS_MAC)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ case chrome::DIR_USER_EXTERNAL_EXTENSIONS: {
+ if (!base::PathService::Get(chrome::DIR_USER_DATA, &cur)) {
+ return false;
+@@ -561,7 +561,7 @@ bool PathProvider(int key, base::FilePat
break;
}
#endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
case chrome::DIR_STANDALONE_EXTERNAL_EXTENSIONS: {
cur = base::FilePath(kFilepathSinglePrefExtensions);
break;
-@@ -540,7 +540,7 @@ bool PathProvider(int key, base::FilePat
- #endif
+@@ -599,7 +599,7 @@ bool PathProvider(int key, base::FilePat
break;
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+ #if BUILDFLAG(ENABLE_EXTENSIONS) && \
+- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC))
++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD))
case chrome::DIR_NATIVE_MESSAGING:
- #if defined(OS_MACOSX)
+ #if BUILDFLAG(IS_MAC)
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
-@@ -574,7 +574,7 @@ bool PathProvider(int key, base::FilePat
- cur = cur.Append(kGCMStoreDirname);
- break;
- #endif // !defined(OS_ANDROID)
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- case chrome::FILE_COMPONENT_FLASH_HINT:
- if (!base::PathService::Get(
- chrome::DIR_COMPONENT_UPDATED_PEPPER_FLASH_PLUGIN, &cur)) {
+@@ -613,6 +613,9 @@ bool PathProvider(int key, base::FilePat
+ #if BUILDFLAG(GOOGLE_CHROME_BRANDING)
+ cur = base::FilePath(
+ FILE_PATH_LITERAL("/etc/opt/chrome/native-messaging-hosts"));
++#elif BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
++ cur = base::FilePath(FILE_PATH_LITERAL(
++ "@PREFIX@/etc/chromium/native-messaging-hosts"));
+ #else
+ cur = base::FilePath(
+ FILE_PATH_LITERAL("/etc/chromium/native-messaging-hosts"));
diff --git a/chromium/patches/patch-chrome_common_chrome__paths.h b/chromium/patches/patch-chrome_common_chrome__paths.h
index a73b6fa2f6..ff1d134b79 100644
--- a/chromium/patches/patch-chrome_common_chrome__paths.h
+++ b/chromium/patches/patch-chrome_common_chrome__paths.h
@@ -1,49 +1,35 @@
$NetBSD$
---- chrome/common/chrome_paths.h.orig 2020-07-08 21:40:36.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/chrome_paths.h.orig 2024-07-24 02:44:30.492186300 +0000
+++ chrome/common/chrome_paths.h
-@@ -51,7 +51,7 @@ enum {
- // contains subdirectories.
- #endif
- #if defined(OS_CHROMEOS) || \
-- (defined(OS_LINUX) && BUILDFLAG(CHROMIUM_BRANDING)) || defined(OS_MACOSX)
-+ ((defined(OS_LINUX) || defined(OS_BSD)) && BUILDFLAG(CHROMIUM_BRANDING)) || defined(OS_MACOSX)
+@@ -59,7 +59,7 @@ enum {
+ #if BUILDFLAG(IS_CHROMEOS_ASH) || \
+ ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) && \
+ BUILDFLAG(CHROMIUM_BRANDING)) || \
+- BUILDFLAG(IS_MAC)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
DIR_USER_EXTERNAL_EXTENSIONS, // Directory for per-user external extensions
// on Chrome Mac and Chromium Linux.
// On Chrome OS, this path is used for OEM
-@@ -59,7 +59,7 @@ enum {
+@@ -67,7 +67,7 @@ enum {
// create it.
#endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
DIR_STANDALONE_EXTERNAL_EXTENSIONS, // Directory for 'per-extension'
// definition manifest files that
// describe extensions which are to be
-@@ -91,7 +91,7 @@ enum {
- DIR_PNACL_BASE, // Full path to the base dir for PNaCl.
- DIR_PNACL_COMPONENT, // Full path to the latest PNaCl version
- // (subdir of DIR_PNACL_BASE).
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- DIR_BUNDLED_WIDEVINE_CDM, // Full path to the directory containing the
- // bundled Widevine CDM.
- #if !defined(OS_CHROMEOS)
-@@ -120,7 +120,7 @@ enum {
- DIR_SUPERVISED_USER_INSTALLED_WHITELISTS, // Directory where sanitized
- // supervised user whitelists are
- // installed.
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+@@ -126,7 +126,7 @@ enum {
+
+ #endif
+ #if BUILDFLAG(ENABLE_EXTENSIONS) && \
+- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC))
++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD))
DIR_NATIVE_MESSAGING, // System directory where native messaging host
// manifest files are stored.
DIR_USER_NATIVE_MESSAGING, // Directory with Native Messaging Hosts
-@@ -135,7 +135,7 @@ enum {
- DIR_GEN_TEST_DATA, // Directory where generated test data resides.
- DIR_TEST_DATA, // Directory where unit test data resides.
- DIR_TEST_TOOLS, // Directory where unit test tools reside.
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- FILE_COMPONENT_FLASH_HINT, // A file in a known location that points to
- // the component updated flash plugin.
- #endif // defined(OS_LINUX)
diff --git a/chromium/patches/patch-chrome_common_chrome__paths__internal.h b/chromium/patches/patch-chrome_common_chrome__paths__internal.h
index 8346bc3cbf..e2690378ee 100644
--- a/chromium/patches/patch-chrome_common_chrome__paths__internal.h
+++ b/chromium/patches/patch-chrome_common_chrome__paths__internal.h
@@ -1,13 +1,17 @@
$NetBSD$
---- chrome/common/chrome_paths_internal.h.orig 2020-07-08 21:40:36.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/chrome_paths_internal.h.orig 2024-07-24 02:44:30.492186300 +0000
+++ chrome/common/chrome_paths_internal.h
-@@ -45,7 +45,7 @@ void GetUserCacheDirectory(const base::F
+@@ -43,7 +43,7 @@ void GetUserCacheDirectory(const base::F
// Get the path to the user's documents directory.
bool GetUserDocumentsDirectory(base::FilePath* result);
--#if defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// Gets the path to a safe default download directory for a user.
bool GetUserDownloadsDirectorySafe(base::FilePath* result);
#endif
diff --git a/chromium/patches/patch-chrome_common_chrome__switches.cc b/chromium/patches/patch-chrome_common_chrome__switches.cc
index b6a69f15f6..f0d79de065 100644
--- a/chromium/patches/patch-chrome_common_chrome__switches.cc
+++ b/chromium/patches/patch-chrome_common_chrome__switches.cc
@@ -1,13 +1,25 @@
$NetBSD$
---- chrome/common/chrome_switches.cc.orig 2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/chrome_switches.cc.orig 2024-07-24 02:44:30.492186300 +0000
+++ chrome/common/chrome_switches.cc
-@@ -834,7 +834,7 @@ const char kAllowNaClFileHandleAPI[]
- const char kAllowNaClSocketAPI[] = "allow-nacl-socket-api";
+@@ -867,14 +867,14 @@ const char kAllowNaClSocketAPI[] = "allo
#endif
--#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_BSD)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
const char kEnableNewAppMenuIcon[] = "enable-new-app-menu-icon";
// Causes the browser to launch directly in guest mode.
+ const char kGuest[] = "guest";
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ // Writes open and installed web apps for each profile to the specified file
+ // without launching a new browser window or tab. Pass a absolute file path to
+ // specify where to output the information. Can be used together with optional
diff --git a/chromium/patches/patch-chrome_common_chrome__switches.h b/chromium/patches/patch-chrome_common_chrome__switches.h
index b0a4224a42..cdeb5d2e83 100644
--- a/chromium/patches/patch-chrome_common_chrome__switches.h
+++ b/chromium/patches/patch-chrome_common_chrome__switches.h
@@ -1,13 +1,23 @@
$NetBSD$
---- chrome/common/chrome_switches.h.orig 2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/chrome_switches.h.orig 2024-07-24 02:44:30.492186300 +0000
+++ chrome/common/chrome_switches.h
-@@ -255,7 +255,7 @@ extern const char kAllowNaClFileHandleAP
- extern const char kAllowNaClSocketAPI[];
+@@ -274,12 +274,12 @@ extern const char kAllowNaClSocketAPI[];
#endif
--#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_BSD)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
extern const char kEnableNewAppMenuIcon[];
extern const char kGuest[];
#endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ extern const char kListApps[];
+ extern const char kProfileBaseName[];
+ extern const char kProfileManagementAttributes[];
diff --git a/chromium/patches/patch-chrome_common_component__flash__hint__file__linux.h b/chromium/patches/patch-chrome_common_component__flash__hint__file__linux.h
deleted file mode 100644
index c514b56f2b..0000000000
--- a/chromium/patches/patch-chrome_common_component__flash__hint__file__linux.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/common/component_flash_hint_file_linux.h.orig 2020-07-24 02:37:49.000000000 +0000
-+++ chrome/common/component_flash_hint_file_linux.h
-@@ -7,7 +7,7 @@
-
- #include "build/build_config.h"
-
--#if !defined(OS_LINUX)
-+#if !defined(OS_LINUX) && !defined(OS_BSD)
- #error "This file only applies to the Linux component update of Flash."
- #endif // !defined(OS_LINUX)
-
diff --git a/chromium/patches/patch-chrome_common_extensions_api_api__sources.gni b/chromium/patches/patch-chrome_common_extensions_api_api__sources.gni
deleted file mode 100644
index 702f3eab1c..0000000000
--- a/chromium/patches/patch-chrome_common_extensions_api_api__sources.gni
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/common/extensions/api/api_sources.gni.orig 2020-07-08 21:40:36.000000000 +0000
-+++ chrome/common/extensions/api/api_sources.gni
-@@ -112,7 +112,7 @@ if (is_chromeos) {
- "printing_metrics.idl",
- ]
- }
--} else if (is_linux || is_win) {
-+} else if (is_linux || is_win || is_bsd) {
- schema_sources_ += [ "input_ime.json" ]
- }
-
diff --git a/chromium/patches/patch-chrome_common_extensions_command.cc b/chromium/patches/patch-chrome_common_extensions_command.cc
deleted file mode 100644
index 37d97b9c52..0000000000
--- a/chromium/patches/patch-chrome_common_extensions_command.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/common/extensions/command.cc.orig 2020-07-08 21:40:36.000000000 +0000
-+++ chrome/common/extensions/command.cc
-@@ -293,7 +293,7 @@ std::string Command::CommandPlatform() {
- return values::kKeybindingPlatformMac;
- #elif defined(OS_CHROMEOS)
- return values::kKeybindingPlatformChromeOs;
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- return values::kKeybindingPlatformLinux;
- #else
- return "";
diff --git a/chromium/patches/patch-chrome_common_extensions_permissions_chrome__permission__message__rules.cc b/chromium/patches/patch-chrome_common_extensions_permissions_chrome__permission__message__rules.cc
new file mode 100644
index 0000000000..cad92706db
--- /dev/null
+++ b/chromium/patches/patch-chrome_common_extensions_permissions_chrome__permission__message__rules.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/extensions/permissions/chrome_permission_message_rules.cc.orig 2024-07-24 02:44:30.524189200 +0000
++++ chrome/common/extensions/permissions/chrome_permission_message_rules.cc
+@@ -285,7 +285,7 @@ int GetEnterpriseReportingPrivatePermiss
+ }
+ #if BUILDFLAG(IS_WIN)
+ return IDS_EXTENSION_PROMPT_WARNING_ENTERPRISE_REPORTING_PRIVATE_ENABLED_WIN;
+-#elif BUILDFLAG(IS_LINUX) or BUILDFLAG(IS_MAC)
++#elif BUILDFLAG(IS_LINUX) or BUILDFLAG(IS_MAC) or BUILDFLAG(IS_BSD)
+ return IDS_EXTENSION_PROMPT_WARNING_ENTERPRISE_REPORTING_PRIVATE_ENABLED_LINUX_AND_MACOS;
+ #else
+ return IDS_EXTENSION_PROMPT_WARNING_ENTERPRISE_REPORTING_PRIVATE;
diff --git a/chromium/patches/patch-chrome_common_features.gni b/chromium/patches/patch-chrome_common_features.gni
deleted file mode 100644
index 07e0965b14..0000000000
--- a/chromium/patches/patch-chrome_common_features.gni
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/common/features.gni.orig 2020-07-08 21:41:47.000000000 +0000
-+++ chrome/common/features.gni
-@@ -49,7 +49,7 @@ declare_args() {
- (is_desktop_linux && use_dbus) || is_chromeos
-
- enable_one_click_signin =
-- is_win || is_mac || (is_linux && !is_chromeos && !is_chromecast)
-+ is_win || is_mac || ((is_linux || is_bsd) && !is_chromeos && !is_chromecast)
-
- enable_service_discovery = (enable_mdns && !is_android) || is_mac
-
diff --git a/chromium/patches/patch-chrome_common_media_cdm__host__file__path.cc b/chromium/patches/patch-chrome_common_media_cdm__host__file__path.cc
index 09386ffa58..142c513034 100644
--- a/chromium/patches/patch-chrome_common_media_cdm__host__file__path.cc
+++ b/chromium/patches/patch-chrome_common_media_cdm__host__file__path.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- chrome/common/media/cdm_host_file_path.cc.orig 2020-07-08 21:40:37.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/media/cdm_host_file_path.cc.orig 2024-07-24 02:44:30.528189700 +0000
+++ chrome/common/media/cdm_host_file_path.cc
-@@ -95,7 +95,7 @@ void AddCdmHostFilePaths(
+@@ -90,7 +90,7 @@ void AddCdmHostFilePaths(
cdm_host_file_paths->emplace_back(chrome_framework_path,
chrome_framework_sig_path);
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
base::FilePath chrome_exe_dir;
if (!base::PathService::Get(base::DIR_EXE, &chrome_exe_dir))
diff --git a/chromium/patches/patch-chrome_common_media_cdm__registration.cc b/chromium/patches/patch-chrome_common_media_cdm__registration.cc
new file mode 100644
index 0000000000..f9e0725e40
--- /dev/null
+++ b/chromium/patches/patch-chrome_common_media_cdm__registration.cc
@@ -0,0 +1,62 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/media/cdm_registration.cc.orig 2024-07-24 02:44:30.528189700 +0000
++++ chrome/common/media/cdm_registration.cc
+@@ -33,7 +33,7 @@
+ #if BUILDFLAG(ENABLE_WIDEVINE)
+ #include "components/cdm/common/cdm_manifest.h"
+ #include "third_party/widevine/cdm/widevine_cdm_common.h" // nogncheck
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "base/native_library.h"
+ #include "chrome/common/chrome_paths.h"
+ #include "chrome/common/media/component_widevine_cdm_hint_file_linux.h"
+@@ -86,7 +86,7 @@ void ReportLacrosUMA(LacrosBundledWidevi
+
+ #if (BUILDFLAG(BUNDLE_WIDEVINE_CDM) || \
+ BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT)) && \
+- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD))
+ // Create a CdmInfo for a Widevine CDM, using |version|, |cdm_library_path|, and
+ // |capability|.
+ std::unique_ptr<content::CdmInfo> CreateWidevineCdmInfo(
+@@ -131,7 +131,7 @@ std::unique_ptr<content::CdmInfo> Create
+ // BUILDFLAG(IS_CHROMEOS))
+
+ #if BUILDFLAG(BUNDLE_WIDEVINE_CDM) && \
+- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD))
+ // On Linux/ChromeOS we have to preload the CDM since it uses the zygote
+ // sandbox. On Windows and Mac, CDM registration is handled by Component
+ // Update (as the CDM can be loaded only when needed).
+@@ -185,7 +185,7 @@ std::unique_ptr<content::CdmInfo> GetAsh
+ #endif // BUILDFLAG(IS_CHROMEOS_LACROS)
+
+ #if (BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT) && \
+- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH))) || \
++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD))) || \
+ BUILDFLAG(IS_CHROMEOS_LACROS)
+ // This code checks to see if Component Updater picked a version of the Widevine
+ // CDM to be used last time it ran. (Component Updater may choose the bundled
+@@ -232,7 +232,7 @@ void AddSoftwareSecureWidevine(std::vect
+ /*supports_sub_key_systems=*/false, kWidevineCdmDisplayName,
+ kWidevineCdmType, base::Version(), base::FilePath());
+
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #if defined(WIDEVINE_CDM_MIN_GLIBC_VERSION)
+ base::Version glibc_version(gnu_get_libc_version());
+ DCHECK(glibc_version.IsValid());
+@@ -493,7 +493,7 @@ void RegisterCdmInfo(std::vector<content
+ }
+
+ #if BUILDFLAG(ENABLE_WIDEVINE) && \
+- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH))
++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD))
+ std::vector<content::CdmInfo> GetSoftwareSecureWidevine() {
+ std::vector<content::CdmInfo> cdms;
+ AddSoftwareSecureWidevine(&cdms);
diff --git a/chromium/patches/patch-chrome_common_media_cdm__registration.h b/chromium/patches/patch-chrome_common_media_cdm__registration.h
new file mode 100644
index 0000000000..502ccdf357
--- /dev/null
+++ b/chromium/patches/patch-chrome_common_media_cdm__registration.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/media/cdm_registration.h.orig 2024-07-24 02:44:30.528189700 +0000
++++ chrome/common/media/cdm_registration.h
+@@ -16,7 +16,7 @@
+ void RegisterCdmInfo(std::vector<content::CdmInfo>* cdms);
+
+ #if BUILDFLAG(ENABLE_WIDEVINE) && \
+- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH))
++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD))
+ // Returns the software secure Widevine CDM, if one exists.
+ std::vector<content::CdmInfo> GetSoftwareSecureWidevine();
+ #endif
diff --git a/chromium/patches/patch-chrome_common_media_component__widevine__cdm__hint__file__linux.h b/chromium/patches/patch-chrome_common_media_component__widevine__cdm__hint__file__linux.h
new file mode 100644
index 0000000000..0ae28ebfb3
--- /dev/null
+++ b/chromium/patches/patch-chrome_common_media_component__widevine__cdm__hint__file__linux.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/media/component_widevine_cdm_hint_file_linux.h.orig 2024-07-24 02:44:30.528189700 +0000
++++ chrome/common/media/component_widevine_cdm_hint_file_linux.h
+@@ -17,7 +17,7 @@
+
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
++#if !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD))
+ #error "This file only applies to desktop Linux and ChromeOS."
+ #endif
+
diff --git a/chromium/patches/patch-chrome_common_pref__names.cc b/chromium/patches/patch-chrome_common_pref__names.cc
deleted file mode 100644
index 94cdac43f3..0000000000
--- a/chromium/patches/patch-chrome_common_pref__names.cc
+++ /dev/null
@@ -1,49 +0,0 @@
-$NetBSD$
-
---- chrome/common/pref_names.cc.orig 2020-07-08 21:41:47.000000000 +0000
-+++ chrome/common/pref_names.cc
-@@ -1081,7 +1081,7 @@ const char kForceYouTubeRestrict[] = "se
- // only using an account that belongs to one of the domains from this pref.
- const char kAllowedDomainsForApps[] = "settings.allowed_domains_for_apps";
-
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- // Linux specific preference on whether we should match the system theme.
- const char kUsesSystemTheme[] = "extensions.theme.use_system";
- #endif
-@@ -1224,7 +1224,7 @@ const char kShowUpdatePromotionInfoBar[]
- "browser.show_update_promotion_info_bar";
- #endif
-
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- // Boolean that is false if we should show window manager decorations. If
- // true, we draw a custom chrome frame (thicker title bar and blue border).
- const char kUseCustomChromeFrame[] = "browser.custom_chrome_frame";
-@@ -1667,7 +1667,7 @@ const char kDownloadDefaultDirectory[] =
- // upgrade a unsafe location to a safe location.
- const char kDownloadDirUpgraded[] = "download.directory_upgrade";
-
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
- const char kOpenPdfDownloadInSystemReader[] =
- "download.open_pdf_in_system_reader";
- #endif
-@@ -1982,7 +1982,7 @@ const char kGloballyScopeHTTPAuthCacheEn
- const char kAmbientAuthenticationInPrivateModesEnabled[] =
- "auth.ambient_auth_in_private_modes";
-
--#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_CHROMEOS) || defined(OS_BSD)
- // Boolean that specifies whether OK-AS-DELEGATE flag from KDC is respected
- // along with kAuthNegotiateDelegateWhitelist.
- const char kAuthNegotiateDelegateByKdcPolicy[] =
-@@ -2908,7 +2908,7 @@ const char kAutoplayWhitelist[] = "media
- const char kBlockAutoplayEnabled[] = "media.block_autoplay";
- #endif // !defined(OS_ANDROID)
-
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- // Boolean that indicates if native notifications are allowed to be used in
- // place of Chrome notifications.
- const char kAllowNativeNotifications[] = "native_notifications.allowed";
diff --git a/chromium/patches/patch-chrome_common_pref__names.h b/chromium/patches/patch-chrome_common_pref__names.h
index d5149bead2..d0ea5d1ef7 100644
--- a/chromium/patches/patch-chrome_common_pref__names.h
+++ b/chromium/patches/patch-chrome_common_pref__names.h
@@ -1,49 +1,97 @@
$NetBSD$
---- chrome/common/pref_names.h.orig 2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/pref_names.h.orig 2024-07-24 02:44:30.536190500 +0000
+++ chrome/common/pref_names.h
-@@ -349,7 +349,7 @@ extern const char kHistoryMenuPromoShown
- extern const char kForceGoogleSafeSearch[];
- extern const char kForceYouTubeRestrict[];
- extern const char kAllowedDomainsForApps[];
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- extern const char kUsesSystemTheme[];
+@@ -1340,7 +1340,7 @@ inline constexpr char kUseAshProxy[] = "
+
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ // Linux specific preference on whether we should match the system theme.
+ inline constexpr char kSystemTheme[] = "extensions.theme.system_theme";
#endif
- extern const char kCurrentThemePackFilename[];
-@@ -380,7 +380,7 @@ extern const char kDefaultBrowserSetting
- #if defined(OS_MACOSX)
- extern const char kShowUpdatePromotionInfoBar[];
+@@ -1483,7 +1483,7 @@ inline constexpr char kShowUpdatePromoti
+ "browser.show_update_promotion_info_bar";
#endif
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- extern const char kUseCustomChromeFrame[];
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Boolean that is false if we should show window manager decorations. If
+ // true, we draw a custom chrome frame (thicker title bar and blue border).
+ inline constexpr char kUseCustomChromeFrame[] = "browser.custom_chrome_frame";
+@@ -2088,7 +2088,7 @@ inline constexpr char kDownloadDefaultDi
+ inline constexpr char kDownloadDirUpgraded[] = "download.directory_upgrade";
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_MAC)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ inline constexpr char kOpenPdfDownloadInSystemReader[] =
+ "download.open_pdf_in_system_reader";
#endif
- #if BUILDFLAG(ENABLE_PLUGINS)
-@@ -555,7 +555,7 @@ extern const char kDownloadExtensionsToO
- extern const char kDownloadExtensionsToOpenByPolicy[];
- extern const char kDownloadAllowedURLsForOpenByPolicy[];
- extern const char kDownloadDirUpgraded[];
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
- extern const char kOpenPdfDownloadInSystemReader[];
+@@ -2528,14 +2528,14 @@ inline constexpr char kMediaStorageIdSal
+ inline constexpr char kMediaCdmOriginData[] = "media.cdm.origin_data";
+ #endif // BUILDFLAG(IS_WIN)
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // A boolean pref to determine whether or not the network service is running
+ // sandboxed.
+ inline constexpr char kNetworkServiceSandboxEnabled[] =
+ "net.network_service_sandbox";
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Records whether the user has seen an HTTP auth "negotiate" header.
+ inline constexpr char kReceivedHttpAuthNegotiateHeader[] =
+ "net.received_http_auth_negotiate_headers";
+@@ -2613,7 +2613,7 @@ inline constexpr char kAmbientAuthentica
+ inline constexpr char kBasicAuthOverHttpEnabled[] =
+ "auth.basic_over_http_enabled";
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Boolean that specifies whether OK-AS-DELEGATE flag from KDC is respected
+ // along with kAuthNegotiateDelegateAllowlist.
+ inline constexpr char kAuthNegotiateDelegateByKdcPolicy[] =
+@@ -3133,7 +3133,7 @@ inline constexpr char kDeviceWeeklySched
+
+ #endif // BUILDFLAG(IS_CHROMEOS)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ // Defines administrator-set availability of Chrome for Testing.
+ inline constexpr char kChromeForTestingAllowed[] = "chrome_for_testing.allowed";
#endif
- #if defined(OS_ANDROID)
-@@ -775,7 +775,7 @@ extern const char kAllowCrossOriginAuthP
- extern const char kGloballyScopeHTTPAuthCacheEnabled[];
- extern const char kAmbientAuthenticationInPrivateModesEnabled[];
-
--#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_CHROMEOS) || defined(OS_BSD)
- extern const char kAuthNegotiateDelegateByKdcPolicy[];
- #endif // defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_CHROMEOS)
-
-@@ -1009,7 +1009,7 @@ extern const char kAutoplayWhitelist[];
- extern const char kBlockAutoplayEnabled[];
+@@ -3706,7 +3706,7 @@ inline constexpr char kFileOrDirectoryPi
+ inline constexpr char kSandboxExternalProtocolBlocked[] =
+ "profile.sandbox_external_protocol_blocked";
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Boolean that indicates if system notifications are allowed to be used in
+ // place of Chrome notifications.
+ inline constexpr char kAllowSystemNotifications[] =
+@@ -3755,7 +3755,7 @@ inline constexpr char kCACertificateMana
#endif
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- extern const char kAllowNativeNotifications[];
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ inline constexpr char kEnforceLocalAnchorConstraintsEnabled[] =
+ "enforce_local_anchor_constraints_enabled";
+ #endif
+@@ -4063,7 +4063,7 @@ inline constexpr char kPrintingOAuth2Aut
+ "printing.oauth2_authorization_servers";
#endif
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // If this exists and is true, Chrome may run system DNS resolution out of the
+ // network process. If false, Chrome will run system DNS resolution in the
+ // network process. If non-existent, Chrome will decide where to run system DNS
diff --git a/chromium/patches/patch-chrome_common_url__constants.h b/chromium/patches/patch-chrome_common_url__constants.h
new file mode 100644
index 0000000000..ac76d0f1c9
--- /dev/null
+++ b/chromium/patches/patch-chrome_common_url__constants.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/url_constants.h.orig 2024-07-24 02:44:30.544191400 +0000
++++ chrome/common/url_constants.h
+@@ -907,7 +907,7 @@ inline constexpr char kOutdatedPluginLea
+ inline constexpr char kPhoneHubPermissionLearnMoreURL[] =
+ "https://support.google.com/chromebook?p=multidevice";
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // "Learn more" URL for the chrome apps deprecation dialog.
+ inline constexpr char kChromeAppsDeprecationLearnMoreURL[] =
+ "https://support.google.com/chrome?p=chrome_app_deprecation";
diff --git a/chromium/patches/patch-chrome_common_webui__url__constants.cc b/chromium/patches/patch-chrome_common_webui__url__constants.cc
index e35dad68d2..02f7545944 100644
--- a/chromium/patches/patch-chrome_common_webui__url__constants.cc
+++ b/chromium/patches/patch-chrome_common_webui__url__constants.cc
@@ -1,50 +1,109 @@
$NetBSD$
---- chrome/common/webui_url_constants.cc.orig 2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/webui_url_constants.cc.orig 2024-07-24 02:44:30.544191400 +0000
+++ chrome/common/webui_url_constants.cc
-@@ -317,7 +317,7 @@ bool IsSystemWebUIHost(base::StringPiece
- }
- #endif // defined(OS_CHROMEOS)
+@@ -259,7 +259,7 @@ const char kChromeUIVersionURL[] = "chro
+ const char kChromeUIWelcomeHost[] = "welcome";
+ const char kChromeUIWelcomeURL[] = "chrome://welcome/";
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const char kChromeUIWhatsNewHost[] = "whats-new";
+ const char kChromeUIWhatsNewURL[] = "chrome://whats-new/";
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+@@ -523,18 +523,18 @@ const char kOsUISystemURL[] = "os://syst
+ const char kOsUIVersionURL[] = "os://version";
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ const char kChromeUIWebUIJsErrorHost[] = "webuijserror";
+ const char kChromeUIWebUIJsErrorURL[] = "chrome://webuijserror/";
+ #endif
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_ASH)
++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ const char kChromeUIConnectorsInternalsHost[] = "connectors-internals";
+ #endif
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
const char kChromeUIDiscardsHost[] = "discards";
const char kChromeUIDiscardsURL[] = "chrome://discards/";
- const char kChromeUIHatsHost[] = "hats";
-@@ -334,17 +334,17 @@ const char kChromeUINearbyShareURL[] = "
- const char kChromeUILinuxProxyConfigHost[] = "linux-proxy-config";
+ #endif
+@@ -549,14 +549,14 @@ const char kChromeUILinuxProxyConfigHost
#endif
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
const char kChromeUISandboxHost[] = "sandbox";
#endif
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
-- (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+ ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
+- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
const char kChromeUIBrowserSwitchHost[] = "browser-switch";
const char kChromeUIBrowserSwitchURL[] = "chrome://browser-switch/";
+ const char kChromeUIIntroHost[] = "intro";
+@@ -575,7 +575,7 @@ const char kChromeUIProfilePickerUrl[] =
+ const char kChromeUIProfilePickerStartupQuery[] = "startup";
#endif
--#if (defined(OS_LINUX) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA)
-+#if ((defined(OS_LINUX) || defined(OS_BSD)) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA)
+-#if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \
++#if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && \
+ defined(TOOLKIT_VIEWS)) || \
+ defined(USE_AURA)
const char kChromeUITabModalConfirmDialogHost[] = "tab-modal-confirm-dialog";
+@@ -654,7 +654,7 @@ const char kTrackingProtectionSubPagePat
+ const char kCookiesSubPagePath[] = "/cookies";
#endif
-@@ -510,13 +510,13 @@ const char* const kChromeHostURLs[] = {
- kChromeUIInternetDetailDialogHost,
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const char kChromeUIWebAppSettingsURL[] = "chrome://app-settings/";
+ const char kChromeUIWebAppSettingsHost[] = "app-settings";
+ #endif
+@@ -802,21 +802,21 @@ const char* const kChromeHostURLs[] = {
kChromeUIAssistantOptInHost,
#endif
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_ASH)
++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ kChromeUIConnectorsInternalsHost,
+ #endif
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
kChromeUIDiscardsHost,
#endif
- #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ kChromeUIWebAppSettingsHost,
+ #endif
+ #if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_ANDROID)
kChromeUILinuxProxyConfigHost,
#endif
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
kChromeUISandboxHost,
#endif
- #if defined(OS_WIN)
+ #if BUILDFLAG(IS_WIN)
+@@ -883,7 +883,7 @@ const char* const kChromeDebugURLs[] = {
+ blink::kChromeUIGpuJavaCrashURL,
+ kChromeUIJavaCrashURL,
+ #endif
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ kChromeUIWebUIJsErrorURL,
+ #endif
+ kChromeUIQuitURL,
diff --git a/chromium/patches/patch-chrome_common_webui__url__constants.h b/chromium/patches/patch-chrome_common_webui__url__constants.h
index f1381a3bfc..06fd415c8e 100644
--- a/chromium/patches/patch-chrome_common_webui__url__constants.h
+++ b/chromium/patches/patch-chrome_common_webui__url__constants.h
@@ -1,34 +1,62 @@
$NetBSD$
---- chrome/common/webui_url_constants.h.orig 2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/webui_url_constants.h.orig 2024-07-24 02:44:30.544191400 +0000
+++ chrome/common/webui_url_constants.h
-@@ -276,7 +276,7 @@ bool IsSystemWebUIHost(base::StringPiece
+@@ -438,23 +438,23 @@ extern const char kOsUISystemURL[];
+ extern const char kOsUIVersionURL[];
+ #endif
- #endif // defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ extern const char kChromeUIWebUIJsErrorHost[];
+ extern const char kChromeUIWebUIJsErrorURL[];
+ #endif
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_ASH)
++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ extern const char kChromeUIConnectorsInternalsHost[];
+ #endif
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
extern const char kChromeUIDiscardsHost[];
extern const char kChromeUIDiscardsURL[];
- extern const char kChromeUIHatsHost[];
-@@ -293,17 +293,17 @@ extern const char kChromeUINearbyShareUR
- extern const char kChromeUILinuxProxyConfigHost[];
#endif
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ extern const char kChromeUIWebAppSettingsURL[];
+ extern const char kChromeUIWebAppSettingsHost[];
+ extern const char kChromeUIWhatsNewHost[];
+@@ -471,14 +471,14 @@ extern const char kChromeUILinuxProxyCon
+ #endif
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
extern const char kChromeUISandboxHost[];
#endif
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
-- (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+ ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
+- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
extern const char kChromeUIBrowserSwitchHost[];
extern const char kChromeUIBrowserSwitchURL[];
+ extern const char kChromeUIIntroHost[];
+@@ -494,7 +494,7 @@ extern const char kChromeUIProfilePicker
+ extern const char kChromeUIProfilePickerStartupQuery[];
#endif
--#if (defined(OS_LINUX) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA)
-+#if ((defined(OS_LINUX) || defined(OS_BSD)) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA)
+-#if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \
++#if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && \
+ defined(TOOLKIT_VIEWS)) || \
+ defined(USE_AURA)
extern const char kChromeUITabModalConfirmDialogHost[];
- #endif
-
diff --git a/chromium/patches/patch-chrome_enterprise__companion_enterprise__companion__client.cc b/chromium/patches/patch-chrome_enterprise__companion_enterprise__companion__client.cc
new file mode 100644
index 0000000000..5ad4aae15b
--- /dev/null
+++ b/chromium/patches/patch-chrome_enterprise__companion_enterprise__companion__client.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/enterprise_companion/enterprise_companion_client.cc.orig 2024-07-24 02:44:30.576194300 +0000
++++ chrome/enterprise_companion/enterprise_companion_client.cc
+@@ -9,7 +9,7 @@ namespace enterprise_companion {
+ mojo::NamedPlatformChannel::ServerName GetServerName() {
+ #if BUILDFLAG(IS_MAC)
+ return "org.chromium.ChromeEnterpriseCompanion.service";
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return "/run/Chromium/ChromeEnterpriseCompanion/service.sk";
+ #elif BUILDFLAG(IS_WIN)
+ return L"ChromeEnterpriseCompanionService";
diff --git a/chromium/patches/patch-chrome_enterprise__companion_lock.cc b/chromium/patches/patch-chrome_enterprise__companion_lock.cc
new file mode 100644
index 0000000000..db311b06bc
--- /dev/null
+++ b/chromium/patches/patch-chrome_enterprise__companion_lock.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/enterprise_companion/lock.cc.orig 2024-07-24 02:44:30.576194300 +0000
++++ chrome/enterprise_companion/lock.cc
+@@ -16,7 +16,7 @@
+
+ namespace {
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ constexpr char kLockName[] = "/ChromeEnterpriseCompanion.lock";
+ #elif BUILDFLAG(IS_MAC)
+ constexpr char kLockName[] = "org.chromium.ChromeEnterpriseCompanion.lock";
+@@ -41,7 +41,7 @@ CSecurityDesc GetAdminDaclSecurityDescri
+ namespace enterprise_companion {
+
+ std::unique_ptr<ScopedLock> CreateScopedLock() {
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return named_system_lock::ScopedLock::Create(kLockName, base::Seconds(0));
+ #elif BUILDFLAG(IS_WIN)
+ CSecurityAttributes sa =
diff --git a/chromium/patches/patch-chrome_renderer_BUILD.gn b/chromium/patches/patch-chrome_renderer_BUILD.gn
deleted file mode 100644
index 328b758910..0000000000
--- a/chromium/patches/patch-chrome_renderer_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/renderer/BUILD.gn.orig 2020-07-15 18:56:46.000000000 +0000
-+++ chrome/renderer/BUILD.gn
-@@ -244,7 +244,7 @@ static_library("renderer") {
- "//ppapi/shared_impl",
- ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- deps += [ "//components/services/font/public/cpp" ]
- }
- }
diff --git a/chromium/patches/patch-chrome_renderer_pepper_pepper__flash__font__file__host.cc b/chromium/patches/patch-chrome_renderer_pepper_pepper__flash__font__file__host.cc
deleted file mode 100644
index b7f6eba69f..0000000000
--- a/chromium/patches/patch-chrome_renderer_pepper_pepper__flash__font__file__host.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- chrome/renderer/pepper/pepper_flash_font_file_host.cc.orig 2020-07-08 21:40:37.000000000 +0000
-+++ chrome/renderer/pepper/pepper_flash_font_file_host.cc
-@@ -15,7 +15,7 @@
- #include "ppapi/proxy/ppapi_messages.h"
- #include "ppapi/proxy/serialized_structs.h"
-
--#if defined(OS_LINUX) || defined(OS_OPENBSD)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "components/services/font/public/cpp/font_loader.h"
- #include "content/public/common/common_sandbox_support_linux.h"
- #elif defined(OS_WIN)
-@@ -29,7 +29,7 @@ PepperFlashFontFileHost::PepperFlashFont
- const ppapi::proxy::SerializedFontDescription& description,
- PP_PrivateFontCharset charset)
- : ResourceHost(host->GetPpapiHost(), instance, resource) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // The global SkFontConfigInterface is configured and initialized with a
- // SkFontconfigInterface compatible font_service::FontLoader in
- // RendererBlinkPlatformImpl (called from RenderThreadImpl::Init) at startup
-@@ -74,7 +74,7 @@ bool PepperFlashFontFileHost::GetFontDat
- void* buffer,
- size_t* length) {
- bool result = false;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- if (font_file_.IsValid()) {
- result = content::GetFontTable(font_file_.GetPlatformFile(), table,
- 0 /* offset */,
diff --git a/chromium/patches/patch-chrome_renderer_pepper_pepper__flash__font__file__host.h b/chromium/patches/patch-chrome_renderer_pepper_pepper__flash__font__file__host.h
deleted file mode 100644
index 07784c1f77..0000000000
--- a/chromium/patches/patch-chrome_renderer_pepper_pepper__flash__font__file__host.h
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- chrome/renderer/pepper/pepper_flash_font_file_host.h.orig 2020-07-08 21:40:37.000000000 +0000
-+++ chrome/renderer/pepper/pepper_flash_font_file_host.h
-@@ -14,7 +14,7 @@
- #include "ppapi/c/private/pp_private_font_charset.h"
- #include "ppapi/host/resource_host.h"
-
--#if defined(OS_LINUX) || defined(OS_OPENBSD)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "base/files/file.h"
- #elif defined(OS_WIN)
- #include "third_party/skia/include/core/SkRefCnt.h"
-@@ -50,7 +50,7 @@ class PepperFlashFontFileHost : public p
- uint32_t table);
- bool GetFontData(uint32_t table, void* buffer, size_t* length);
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- base::File font_file_;
- #elif defined(OS_WIN)
- sk_sp<SkTypeface> typeface_;
diff --git a/chromium/patches/patch-chrome_service_cloud__print_print__system.cc b/chromium/patches/patch-chrome_service_cloud__print_print__system.cc
deleted file mode 100644
index 910ca636fb..0000000000
--- a/chromium/patches/patch-chrome_service_cloud__print_print__system.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/service/cloud_print/print_system.cc.orig 2020-07-08 21:40:37.000000000 +0000
-+++ chrome/service/cloud_print/print_system.cc
-@@ -36,7 +36,7 @@ std::string PrintSystem::GenerateProxyId
- return base::GenerateGUID();
- }
-
--#if defined(OS_LINUX) && !defined(USE_CUPS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(USE_CUPS)
- scoped_refptr<PrintSystem> PrintSystem::CreateInstance(
- const base::DictionaryValue*) {
- return nullptr;
diff --git a/chromium/patches/patch-chrome_services_printing_print__backend__service__impl.cc b/chromium/patches/patch-chrome_services_printing_print__backend__service__impl.cc
new file mode 100644
index 0000000000..e88656f95c
--- /dev/null
+++ b/chromium/patches/patch-chrome_services_printing_print__backend__service__impl.cc
@@ -0,0 +1,53 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/services/printing/print_backend_service_impl.cc.orig 2024-07-24 02:44:30.676204000 +0000
++++ chrome/services/printing/print_backend_service_impl.cc
+@@ -49,7 +49,7 @@
+ #include "printing/backend/cups_connection_pool.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "base/no_destructor.h"
+ #include "ui/linux/linux_ui.h"
+ #include "ui/linux/linux_ui_delegate_stub.h"
+@@ -76,7 +76,7 @@ namespace printing {
+
+ namespace {
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void InstantiateLinuxUiDelegate() {
+ // TODO(crbug.com/40561724) Until a real UI can be used in a utility process,
+ // need to use the stub version.
+@@ -85,7 +85,7 @@ void InstantiateLinuxUiDelegate() {
+ #endif
+
+ scoped_refptr<base::SequencedTaskRunner> GetPrintingTaskRunner() {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Use task runner associated with equivalent of UI thread. Needed for calls
+ // made through `PrintDialogLinuxInterface` to properly execute.
+ CHECK(base::SequencedTaskRunner::HasCurrentDefault());
+@@ -469,7 +469,7 @@ void PrintBackendServiceImpl::Init(
+ // `InitCommon()`.
+ InitializeProcessForPrinting();
+ print_backend_ = PrintBackend::CreateInstance(locale);
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Test framework already initializes the UI, so this should not go in
+ // `InitCommon()`. Additionally, low-level Linux UI is not needed when tests
+ // are using `TestPrintingContext`.
+@@ -690,7 +690,7 @@ void PrintBackendServiceImpl::UpdatePrin
+ crash_keys_ = std::make_unique<crash_keys::ScopedPrinterInfo>(
+ *printer_name, print_backend_->GetPrinterDriverInfo(*printer_name));
+
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(USE_CUPS)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(USE_CUPS)
+ // Try to fill in advanced settings based upon basic info options.
+ PrinterBasicInfo basic_info;
+ if (print_backend_->GetPrinterBasicInfo(*printer_name, &basic_info) ==
diff --git a/chromium/patches/patch-chrome_services_speech_audio__source__fetcher__impl.cc b/chromium/patches/patch-chrome_services_speech_audio__source__fetcher__impl.cc
new file mode 100644
index 0000000000..9860378a86
--- /dev/null
+++ b/chromium/patches/patch-chrome_services_speech_audio__source__fetcher__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/services/speech/audio_source_fetcher_impl.cc.orig 2024-07-24 02:44:30.692205700 +0000
++++ chrome/services/speech/audio_source_fetcher_impl.cc
+@@ -132,7 +132,7 @@ void AudioSourceFetcherImpl::Start(
+
+ // TODO(crbug.com/40753481): Check implementation / sandbox policy on Mac and
+ // Windows.
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ is_started_ = true;
+ // Initialize the AudioCapturerSource with |this| as the CaptureCallback,
+ // get the parameters for the device ID, then start audio capture.
diff --git a/chromium/patches/patch-chrome_test_BUILD.gn b/chromium/patches/patch-chrome_test_BUILD.gn
deleted file mode 100644
index 13a464be24..0000000000
--- a/chromium/patches/patch-chrome_test_BUILD.gn
+++ /dev/null
@@ -1,220 +0,0 @@
-$NetBSD$
-
---- chrome/test/BUILD.gn.orig 2020-06-25 09:32:36.000000000 +0000
-+++ chrome/test/BUILD.gn
-@@ -268,7 +268,7 @@ static_library("test_support") {
- ]
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- public_deps += [ "//crypto:platform" ]
- }
-
-@@ -333,7 +333,7 @@ static_library("test_support") {
- ]
- }
-
-- if (is_win || is_mac || (is_linux && !is_chromeos)) {
-+ if (is_win || is_mac || (is_linux && !is_chromeos) || is_bsd) {
- public_deps += [ "//ui/base:pixel_diff_test_support" ]
- sources += [
- "pixel/browser_skia_gold_pixel_diff.cc",
-@@ -1609,7 +1609,7 @@ if (!is_android) {
- }
- }
-
-- if (is_win || is_linux) {
-+ if (is_win || is_linux || is_bsd) {
- sources += [ "../browser/nacl_host/test/nacl_gdb_browsertest.cc" ]
- data_deps += [ "//chrome/browser/nacl_host/test:mock_nacl_gdb" ]
- }
-@@ -2069,7 +2069,7 @@ if (!is_android) {
- }
- }
-
-- if (is_linux && !is_component_build) {
-+ if ((is_linux || is_bsd) && !is_component_build) {
- # Set rpath to find the CDM adapter even in a non-component build.
- configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
- }
-@@ -2682,7 +2682,7 @@ if (!is_android) {
- ]
- deps += [ "//components/wifi:test_support" ]
- }
-- if (is_linux || is_win) {
-+ if (is_linux || is_win || is_bsd) {
- sources += [
- # This test is for the spelling options submenu that's only for Windows,
- # ChromeOS, and Linux.
-@@ -2693,7 +2693,7 @@ if (!is_android) {
- sources -= [ "../common/time_format_browsertest.cc" ]
- }
-
-- if (is_mac || is_win || (is_linux && !is_chromeos)) {
-+ if (is_mac || is_win || (is_linux && !is_chromeos) || is_bsd) {
- sources += [
- # Tests for non mobile and non CrOS (includes Linux, Win, Mac).
- "../browser/browser_switcher/browser_switcher_browsertest.cc",
-@@ -2734,7 +2734,7 @@ if (!is_android) {
- ]
- }
- }
-- if (is_linux && is_asan && is_lsan) {
-+ if ((is_linux || is_bsd) && is_asan && is_lsan) {
- # TODO(crbug.com/793426): Fix the flakiness on Linux Asan Lsan bot.
- sources -= [ "../browser/media/encrypted_media_browsertest.cc" ]
- }
-@@ -2813,7 +2813,7 @@ if (!is_android) {
- }
- }
-
-- if (is_chromeos || (is_linux && use_dbus)) {
-+ if (is_chromeos || ((is_linux || is_bsd) && use_dbus)) {
- sources += [ "../browser/extensions/api/bluetooth_low_energy/bluetooth_low_energy_apitest.cc" ]
- }
-
-@@ -2843,7 +2843,7 @@ if (!is_android) {
- }
- }
-
--if (is_linux || is_mac || is_win) {
-+if (is_linux || is_mac || is_win || is_bsd) {
- import("//tools/binary_size/sizes.gni")
-
- group("browser_tests_apprtc") {
-@@ -2977,7 +2977,7 @@ group("telemetry_perf_webview_tests") {
- group("angle_perftests") {
- testonly = true
- data_deps = [ "//testing:run_perf_test" ]
-- if (is_win || is_linux || is_android) {
-+ if (is_win || is_linux || is_android || is_bsd) {
- data_deps += [ "//third_party/angle/src/tests:angle_perftests" ]
- }
- }
-@@ -3649,7 +3649,7 @@ test("unit_tests") {
- ]
- }
-
-- if (is_win || is_mac || (is_linux && !is_chromeos)) {
-+ if (is_win || is_mac || (is_linux && !is_chromeos) || is_bsd) {
- sources += [ "../test/pixel/browser_skia_gold_pixel_diff_unittest.cc" ]
- }
-
-@@ -3714,7 +3714,7 @@ test("unit_tests") {
- "$root_gen_dir/chrome/android/chrome_apk_paks/resources.pak",
- ]
- }
-- if (is_linux || is_win) {
-+ if (is_linux || is_win || is_bsd) {
- data_deps += [ "//chrome:packed_resources" ]
- }
- if (is_win) {
-@@ -5012,7 +5012,7 @@ test("unit_tests") {
- "//ui/wm",
- ]
- }
-- if (!is_chromeos && is_linux) {
-+ if (!is_chromeos && (is_linux || is_bsd)) {
- sources += [
- "../browser/shell_integration_linux_unittest.cc",
- "../browser/upgrade_detector/get_installed_version_linux_unittest.cc",
-@@ -5267,7 +5267,7 @@ test("unit_tests") {
- } else {
- sources -= [ "../browser/password_manager/password_store_x_unittest.cc" ]
- }
-- if (is_linux && use_aura) {
-+ if ((is_linux || is_bsd) && use_aura) {
- deps += [ "//ui/aura:test_support" ]
- if (use_dbus) {
- deps += [ "//dbus:test_support" ]
-@@ -5511,7 +5511,7 @@ test("unit_tests") {
- "../browser/ui/views/sync/profile_signin_confirmation_dialog_views_unittest.cc",
- ]
- }
-- if ((is_linux && !is_chromeos) || is_win) {
-+ if ((is_linux && !is_chromeos) || is_win || is_bsd) {
- sources +=
- [ "../browser/notifications/popups_only_ui_controller_unittest.cc" ]
- }
-@@ -5567,7 +5567,7 @@ test("unit_tests") {
- sources += [ "../browser/extensions/blacklist_unittest.cc" ]
- }
-
-- if (is_win || is_mac || (is_linux && !is_chromeos)) {
-+ if (is_win || is_mac || (is_linux && !is_chromeos) || is_bsd) {
- sources += [
- "../browser/browser_switcher/alternative_browser_driver_unittest.cc",
- "../browser/browser_switcher/browser_switcher_navigation_throttle_unittest.cc",
-@@ -5884,7 +5884,7 @@ if (!is_android) {
- }
-
- configs += [ "//build/config:precompiled_headers" ]
-- if (is_linux && !is_component_build) {
-+ if ((is_linux || is_bsd) && !is_component_build) {
- configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
- }
-
-@@ -5909,7 +5909,7 @@ if (!is_android) {
- "$root_out_dir/test_page.css.mock-http-headers",
- ]
- data += js2gtest_js_libraries
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- data += [ "$root_out_dir/libppapi_tests.so" ]
- }
-
-@@ -5971,7 +5971,7 @@ if (!is_android) {
- "//third_party/mesa_headers",
- "//ui/resources:ui_test_pak_data",
- ]
-- if (is_linux || is_win) {
-+ if (is_linux || is_win || is_bsd) {
- data_deps += [ "//chrome:packed_resources" ]
- }
-
-@@ -6031,7 +6031,7 @@ if (!is_android) {
- "//ui/views:views_interactive_ui_tests",
- "//ui/views/controls/webview:test_support",
- ]
-- if (is_linux && !is_chromeos) {
-+ if ((is_linux || is_bsd) && !is_chromeos) {
- # Desktop linux.
- sources -= [
- # TODO(port): This times out. Attempts have been made to fix the
-@@ -6170,7 +6170,7 @@ if (!is_android) {
- configs += [ "//build/config/linux/atk" ]
- }
-
-- if (is_linux && !is_chromeos) {
-+ if ((is_linux || is_bsd) && !is_chromeos) {
- deps += [ "//ui/base/ime/linux" ]
- }
-
-@@ -6204,7 +6204,7 @@ test("chrome_app_unittests") {
- "//components/heap_profiling/in_process",
- "//components/safe_browsing:buildflags",
- ]
-- if (!is_fuchsia) {
-+ if (!is_fuchsia && !is_bsd) {
- # TODO(crbug.com/753619): Enable crash reporting on Fuchsia.
- deps += [ "//third_party/breakpad:client" ]
- }
-@@ -6509,7 +6509,7 @@ if (!is_fuchsia && !is_android) {
- "//third_party/mesa_headers",
- ]
-
-- if (is_linux || is_win) {
-+ if (is_linux || is_win || is_bsd) {
- data_deps += [ "//chrome:packed_resources" ]
- }
-
-@@ -6702,7 +6702,7 @@ if (!is_fuchsia && !is_android) {
- "//third_party/catapult/web_page_replay_go/deterministic.js",
- ]
-
-- if (is_linux || is_win) {
-+ if (is_linux || is_win || is_bsd) {
- data_deps = [ "//chrome:packed_resources" ]
- }
-
diff --git a/chromium/patches/patch-chrome_test_base_chrome__test__launcher.cc b/chromium/patches/patch-chrome_test_base_chrome__test__launcher.cc
deleted file mode 100644
index 11f93cf33a..0000000000
--- a/chromium/patches/patch-chrome_test_base_chrome__test__launcher.cc
+++ /dev/null
@@ -1,49 +0,0 @@
-$NetBSD$
-
---- chrome/test/base/chrome_test_launcher.cc.orig 2020-07-08 21:40:37.000000000 +0000
-+++ chrome/test/base/chrome_test_launcher.cc
-@@ -47,7 +47,7 @@
- #include "ui/base/test/ui_controls_aura.h"
- #endif
-
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
- #include "chrome/app/chrome_crash_reporter_client.h"
- #endif
-
-@@ -61,7 +61,7 @@
- #endif
-
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
-- (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+ ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
- #include "chrome/browser/first_run/scoped_relaunch_chrome_browser_override.h"
- #include "chrome/browser/upgrade_detector/installed_version_poller.h"
- #include "testing/gtest/include/gtest/gtest.h"
-@@ -79,7 +79,7 @@ int ChromeTestSuiteRunner::RunTestSuite(
- content::ContentTestSuiteBase::RegisterInProcessThreads();
- #endif
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
-- (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+ ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
- InstalledVersionPoller::ScopedDisableForTesting disable_polling(
- InstalledVersionPoller::MakeScopedDisableForTesting());
- #endif
-@@ -201,7 +201,7 @@ int LaunchChromeTests(size_t parallel_jo
- if (command_line.HasSwitch(switches::kLaunchAsBrowser))
- sampling_profiler = std::make_unique<MainThreadStackSamplingProfiler>();
-
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
- ChromeCrashReporterClient::Create();
- #elif defined(OS_WIN)
- // We leak this pointer intentionally. The crash client needs to outlive
-@@ -229,7 +229,7 @@ int LaunchChromeTests(size_t parallel_jo
- }
-
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
-- (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+ ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
- // Cause a test failure for any test that triggers an unexpected relaunch.
- // Tests that fail here should likely be restructured to put the "before
- // relaunch" code into a PRE_ test with its own
diff --git a/chromium/patches/patch-chrome_test_base_in__process__browser__test.cc b/chromium/patches/patch-chrome_test_base_in__process__browser__test.cc
deleted file mode 100644
index ee5d5ccd9a..0000000000
--- a/chromium/patches/patch-chrome_test_base_in__process__browser__test.cc
+++ /dev/null
@@ -1,42 +0,0 @@
-$NetBSD$
-
---- chrome/test/base/in_process_browser_test.cc.orig 2020-07-08 21:40:37.000000000 +0000
-+++ chrome/test/base/in_process_browser_test.cc
-@@ -6,6 +6,10 @@
-
- #include <utility>
-
-+#if defined(OS_BSD)
-+#include <signal.h>
-+#endif
-+
- #include "base/auto_reset.h"
- #include "base/bind.h"
- #include "base/command_line.h"
-@@ -105,7 +109,7 @@
- #include "ui/events/test/event_generator.h"
- #endif // defined(OS_CHROMEOS)
-
--#if !defined(OS_CHROMEOS) && defined(OS_LINUX)
-+#if !defined(OS_CHROMEOS) && (defined(OS_LINUX) || defined(OS_BSD))
- #include "ui/views/test/test_desktop_screen_x11.h"
- #endif
-
-@@ -282,7 +286,7 @@ void InProcessBrowserTest::SetUp() {
- // Cookies). Without this on Mac and Linux, many tests will hang waiting for a
- // user to approve KeyChain/kwallet access. On Windows this is not needed as
- // OS APIs never block.
--#if defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
- OSCryptMocker::SetUp();
- #endif
-
-@@ -344,7 +348,7 @@ void InProcessBrowserTest::TearDown() {
- com_initializer_.reset();
- #endif
- BrowserTestBase::TearDown();
--#if defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
- OSCryptMocker::TearDown();
- #endif
-
diff --git a/chromium/patches/patch-chrome_test_base_interactive__ui__tests__main.cc b/chromium/patches/patch-chrome_test_base_interactive__ui__tests__main.cc
deleted file mode 100644
index c2bd42a476..0000000000
--- a/chromium/patches/patch-chrome_test_base_interactive__ui__tests__main.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- chrome/test/base/interactive_ui_tests_main.cc.orig 2020-07-08 21:40:37.000000000 +0000
-+++ chrome/test/base/interactive_ui_tests_main.cc
-@@ -16,7 +16,7 @@
- #if defined(USE_AURA)
- #include "ui/aura/test/ui_controls_factory_aura.h"
- #include "ui/base/test/ui_controls_aura.h"
--#if defined(USE_OZONE) && defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if defined(USE_OZONE) && (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- #include "ui/base/ui_base_features.h"
- #include "ui/ozone/public/ozone_platform.h"
- #endif
-@@ -53,7 +53,7 @@ class InteractiveUITestSuite : public Ch
- com_initializer_.reset(new base::win::ScopedCOMInitializer());
- ui_controls::InstallUIControlsAura(
- aura::test::CreateUIControlsAura(nullptr));
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- #if defined(USE_OZONE)
- if (features::IsUsingOzonePlatform()) {
- ui::OzonePlatform::InitParams params;
diff --git a/chromium/patches/patch-chrome_test_base_scoped__channel__override__posix.cc b/chromium/patches/patch-chrome_test_base_scoped__channel__override__posix.cc
new file mode 100644
index 0000000000..1fcec5cf63
--- /dev/null
+++ b/chromium/patches/patch-chrome_test_base_scoped__channel__override__posix.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/test/base/scoped_channel_override_posix.cc.orig 2024-07-24 02:44:30.732209400 +0000
++++ chrome/test/base/scoped_channel_override_posix.cc
+@@ -45,7 +45,7 @@ std::string GetVersionExtra(ScopedChanne
+ return "beta";
+ case ScopedChannelOverride::Channel::kDev:
+ return "unstable";
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ case ScopedChannelOverride::Channel::kCanary:
+ return "canary";
+ #endif // BUILDFLAG(IS_LINUX)
diff --git a/chromium/patches/patch-chrome_test_base_test__browser__window.h b/chromium/patches/patch-chrome_test_base_test__browser__window.h
deleted file mode 100644
index 5d723c0a90..0000000000
--- a/chromium/patches/patch-chrome_test_base_test__browser__window.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/test/base/test_browser_window.h.orig 2020-07-08 21:40:37.000000000 +0000
-+++ chrome/test/base/test_browser_window.h
-@@ -178,7 +178,7 @@ class TestBrowserWindow : public Browser
- bool is_source_keyboard) override {}
-
- #if defined(OS_CHROMEOS) || defined(OS_MACOSX) || defined(OS_WIN) || \
-- defined(OS_LINUX)
-+ defined(OS_LINUX) || defined(OS_BSD)
- void ShowHatsBubble(const std::string& site_id) override {}
- #endif
-
diff --git a/chromium/patches/patch-chrome_test_base_testing__browser__process.h b/chromium/patches/patch-chrome_test_base_testing__browser__process.h
deleted file mode 100644
index a325cb908d..0000000000
--- a/chromium/patches/patch-chrome_test_base_testing__browser__process.h
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD$
-
---- chrome/test/base/testing_browser_process.h.orig 2020-07-08 21:40:37.000000000 +0000
-+++ chrome/test/base/testing_browser_process.h
-@@ -119,8 +119,10 @@ class TestingBrowserProcess : public Bro
- DownloadRequestLimiter* download_request_limiter() override;
- StartupData* startup_data() override;
-
--#if (defined(OS_WIN) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
-+#if (defined(OS_WIN) || (defined(OS_LINUX)) && !defined(OS_CHROMEOS)
- void StartAutoupdateTimer() override {}
-+#elif defined(OS_BSD)
-+ void StartAutoupdateTimer() {}
- #endif
-
- component_updater::ComponentUpdateService* component_updater() override;
diff --git a/chromium/patches/patch-chrome_test_chromedriver_chrome__launcher.cc b/chromium/patches/patch-chrome_test_chromedriver_chrome__launcher.cc
index d2bd78b606..914acd2f67 100644
--- a/chromium/patches/patch-chrome_test_chromedriver_chrome__launcher.cc
+++ b/chromium/patches/patch-chrome_test_chromedriver_chrome__launcher.cc
@@ -1,15 +1,16 @@
$NetBSD$
---- chrome/test/chromedriver/chrome_launcher.cc.orig 2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/test/chromedriver/chrome_launcher.cc.orig 2024-07-24 02:44:30.748211100 +0000
+++ chrome/test/chromedriver/chrome_launcher.cc
-@@ -69,6 +69,10 @@
- #include "chrome/test/chromedriver/keycode_text_conversion.h"
- #endif
-
-+#if defined(OS_BSD)
+@@ -73,6 +73,7 @@
+ #include <fcntl.h>
+ #include <sys/stat.h>
+ #include <sys/types.h>
+#include <sys/wait.h>
-+#endif
-+
- namespace {
-
- const char* const kCommonSwitches[] = {
+ #include <unistd.h>
+ #elif BUILDFLAG(IS_WIN)
+ #include <windows.h>
diff --git a/chromium/patches/patch-chrome_test_chromedriver_chrome_chrome__finder.cc b/chromium/patches/patch-chrome_test_chromedriver_chrome_chrome__finder.cc
index 23fbd20538..376785e16c 100644
--- a/chromium/patches/patch-chrome_test_chromedriver_chrome_chrome__finder.cc
+++ b/chromium/patches/patch-chrome_test_chromedriver_chrome_chrome__finder.cc
@@ -1,22 +1,35 @@
$NetBSD$
---- chrome/test/chromedriver/chrome/chrome_finder.cc.orig 2020-07-08 21:40:37.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/test/chromedriver/chrome/chrome_finder.cc.orig 2024-07-24 02:44:30.736209900 +0000
+++ chrome/test/chromedriver/chrome/chrome_finder.cc
-@@ -50,7 +50,7 @@ void GetApplicationDirs(std::vector<base
+@@ -58,7 +58,7 @@ void GetApplicationDirs(std::vector<base
installation_locations[i].Append(L"Chromium\\Application"));
}
}
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
void GetApplicationDirs(std::vector<base::FilePath>* locations) {
// TODO: Respect users' PATH variables.
// Until then, we use an approximation of the most common defaults.
-@@ -136,7 +136,7 @@ bool FindChrome(base::FilePath* browser_
- #if defined(OS_WIN) || defined(OS_MACOSX)
- base::FilePath(chrome::kBrowserProcessExecutablePath),
- base::FilePath(chrome::kBrowserProcessExecutablePathChromium)
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- base::FilePath("google-chrome"),
+@@ -125,7 +125,7 @@ std::vector<base::FilePath> GetChromePro
+ chrome::kGoogleChromeForTestingBrowserProcessExecutablePath),
+ base::FilePath(chrome::kGoogleChromeBrowserProcessExecutablePath),
+ base::FilePath(chrome::kChromiumBrowserProcessExecutablePath),
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
base::FilePath(chrome::kBrowserProcessExecutablePath),
- base::FilePath(chrome::kBrowserProcessExecutablePathChromium),
+ base::FilePath("chrome"), // Chrome for Testing or Google Chrome
+ base::FilePath("google-chrome"), base::FilePath("chromium"),
+@@ -141,7 +141,7 @@ std::vector<base::FilePath> GetHeadlessS
+ return {
+ #if BUILDFLAG(IS_WIN)
+ base::FilePath(FILE_PATH_LITERAL("chrome-headless-shell.exe")),
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ base::FilePath("chrome-headless-shell"),
+ #else
+ // it will compile but won't work on other OSes
diff --git a/chromium/patches/patch-chrome_test_chromedriver_key__converter__unittest.cc b/chromium/patches/patch-chrome_test_chromedriver_key__converter__unittest.cc
index 8b116b9983..6f6a7cbdde 100644
--- a/chromium/patches/patch-chrome_test_chromedriver_key__converter__unittest.cc
+++ b/chromium/patches/patch-chrome_test_chromedriver_key__converter__unittest.cc
@@ -1,40 +1,26 @@
$NetBSD$
---- chrome/test/chromedriver/key_converter_unittest.cc.orig 2020-07-08 21:40:37.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/test/chromedriver/key_converter_unittest.cc.orig 2024-07-24 02:44:30.752211300 +0000
+++ chrome/test/chromedriver/key_converter_unittest.cc
-@@ -277,7 +277,7 @@ TEST(KeyConverter, AllShorthandKeys) {
- ->Generate(&key_events);
- builder.Generate(&key_events);
- builder.SetKeyCode(ui::VKEY_TAB);
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- builder.SetText("\t", "\t")->Generate(&key_events);
- #else
- builder.SetText(std::string(), std::string());
-@@ -285,7 +285,7 @@ TEST(KeyConverter, AllShorthandKeys) {
- key_events.push_back(builder.SetType(kKeyUpEventType)->Build());
- #endif
- builder.SetKeyCode(ui::VKEY_BACK);
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- builder.SetText("\b", "\b")->Generate(&key_events);
- #else
- builder.SetText(std::string(), std::string());
-@@ -296,7 +296,7 @@ TEST(KeyConverter, AllShorthandKeys) {
- CheckEventsReleaseModifiers("\n\r\n\t\b ", key_events);
+@@ -246,7 +246,7 @@ TEST(KeyConverter, ToggleModifiers) {
+ CheckEventsReleaseModifiers(keys, key_events);
}
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// Fails on bots: crbug.com/174962
#define MAYBE_AllEnglishKeyboardSymbols DISABLED_AllEnglishKeyboardSymbols
#else
-@@ -353,7 +353,7 @@ TEST(KeyConverter, AllEnglishKeyboardTex
+@@ -303,7 +303,7 @@ TEST(KeyConverter, AllEnglishKeyboardTex
TEST(KeyConverter, AllSpecialWebDriverKeysOnEnglishKeyboard) {
ui::ScopedKeyboardLayout keyboard_layout(ui::KEYBOARD_LAYOUT_ENGLISH_US);
const char kTextForKeys[] = {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
0, 0, 0, 0, '\t', 0, '\r', '\r', 0, 0, 0, 0, 0,
#else
0, 0, 0, 0, 0, 0, '\r', '\r', 0, 0, 0, 0, 0,
diff --git a/chromium/patches/patch-chrome_test_chromedriver_keycode__text__conversion__unittest.cc b/chromium/patches/patch-chrome_test_chromedriver_keycode__text__conversion__unittest.cc
new file mode 100644
index 0000000000..9e27f0eec0
--- /dev/null
+++ b/chromium/patches/patch-chrome_test_chromedriver_keycode__text__conversion__unittest.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/test/chromedriver/keycode_text_conversion_unittest.cc.orig 2024-07-24 02:44:30.752211300 +0000
++++ chrome/test/chromedriver/keycode_text_conversion_unittest.cc
+@@ -67,7 +67,7 @@ std::string ConvertKeyCodeToTextNoError(
+
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ // Fails on bots: crbug.com/174962
+ #define MAYBE_KeyCodeToText DISABLED_KeyCodeToText
+ #else
+@@ -104,7 +104,7 @@ TEST(KeycodeTextConversionTest, MAYBE_Ke
+
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ // Fails on bots: crbug.com/174962
+ #define MAYBE_CharToKeyCode DISABLED_CharToKeyCode
+ #else
diff --git a/chromium/patches/patch-chrome_updater_configurator.cc b/chromium/patches/patch-chrome_updater_configurator.cc
new file mode 100644
index 0000000000..e2bd11dbd4
--- /dev/null
+++ b/chromium/patches/patch-chrome_updater_configurator.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/updater/configurator.cc.orig 2024-07-24 02:44:32.248356300 +0000
++++ chrome/updater/configurator.cc
+@@ -67,7 +67,7 @@ Configurator::Configurator(scoped_refptr
+ return std::nullopt;
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
+ }()) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // On Linux creating the NetworkFetcherFactory requires performing blocking IO
+ // to load an external library. This should be done when the configurator is
+ // created.
diff --git a/chromium/patches/patch-chrome_updater_lock.cc b/chromium/patches/patch-chrome_updater_lock.cc
new file mode 100644
index 0000000000..63865929fd
--- /dev/null
+++ b/chromium/patches/patch-chrome_updater_lock.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/updater/lock.cc.orig 2024-07-24 02:44:32.256357200 +0000
++++ chrome/updater/lock.cc
+@@ -26,7 +26,7 @@ namespace updater {
+ std::unique_ptr<ScopedLock> CreateScopedLock(const std::string& name,
+ UpdaterScope scope,
+ base::TimeDelta timeout) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return named_system_lock::ScopedLock::Create(
+ base::StrCat({"/" PRODUCT_FULLNAME_STRING, name,
+ UpdaterScopeToString(scope), ".lock"}),
diff --git a/chromium/patches/patch-chrome_updater_util_posix__util.cc b/chromium/patches/patch-chrome_updater_util_posix__util.cc
new file mode 100644
index 0000000000..6d84c8ecaa
--- /dev/null
+++ b/chromium/patches/patch-chrome_updater_util_posix__util.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/updater/util/posix_util.cc.orig 2024-07-24 02:44:32.320363300 +0000
++++ chrome/updater/util/posix_util.cc
+@@ -20,7 +20,7 @@
+ #include "chrome/updater/updater_branding.h"
+ #include "chrome/updater/util/util.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/updater/util/linux_util.h"
+ #endif
+
diff --git a/chromium/patches/patch-chrome_utility_services.cc b/chromium/patches/patch-chrome_utility_services.cc
new file mode 100644
index 0000000000..53b8b11148
--- /dev/null
+++ b/chromium/patches/patch-chrome_utility_services.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chrome/utility/services.cc.orig 2024-07-24 02:44:32.340365200 +0000
++++ chrome/utility/services.cc
+@@ -57,7 +57,7 @@
+ #include "chrome/services/system_signals/mac/mac_system_signals_service.h"
+ #endif // BUILDFLAG(IS_MAC)
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/services/system_signals/linux/linux_system_signals_service.h"
+ #endif // BUILDFLAG(IS_LINUX)
+
+@@ -214,7 +214,7 @@ auto RunMacNotificationService(
+ }
+ #endif // BUILDFLAG(IS_MAC)
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ auto RunSystemSignalsService(
+ mojo::PendingReceiver<device_signals::mojom::SystemSignalsService>
+ receiver) {
+@@ -481,7 +481,7 @@ void RegisterMainThreadServices(mojo::Se
+ services.Add(RunWindowsIconReader);
+ #endif // BUILDFLAG(IS_WIN)
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ services.Add(RunSystemSignalsService);
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+
diff --git a/chromium/patches/patch-chromecast_BUILD.gn b/chromium/patches/patch-chromecast_BUILD.gn
deleted file mode 100644
index 9ffdfa8808..0000000000
--- a/chromium/patches/patch-chromecast_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chromecast/BUILD.gn.orig 2020-07-15 18:56:46.000000000 +0000
-+++ chromecast/BUILD.gn
-@@ -123,7 +123,7 @@ cast_test_group("cast_tests") {
- filters += [ sandbox_linux_unittests_filter ]
- }
-
-- if (is_linux || is_fuchsia) {
-+ if (is_linux || is_fuchsia || is_bsd) {
- tests += [ "//chromecast/media/cma/backend:cast_audio_backend_unittests" ]
- cast_audio_backend_unittests_filter = {
- test_name = "cast_audio_backend_unittests"
diff --git a/chromium/patches/patch-chromecast_bindings_BUILD.gn b/chromium/patches/patch-chromecast_bindings_BUILD.gn
deleted file mode 100644
index 52dd1f9ea9..0000000000
--- a/chromium/patches/patch-chromecast_bindings_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- chromecast/bindings/BUILD.gn.orig 2020-07-15 18:56:46.000000000 +0000
-+++ chromecast/bindings/BUILD.gn
-@@ -52,7 +52,7 @@ if (is_fuchsia) {
- }
- }
-
--if (is_linux || is_android) {
-+if (is_linux || is_android || is_bsd) {
- source_set("bindings_manager_cast") {
- sources = [
- "bindings_manager_cast.cc",
-@@ -99,7 +99,7 @@ if (is_linux || is_android) {
- source_set("browsertests") {
- testonly = true
- deps = []
-- if (is_linux || is_android) {
-+ if (is_linux || is_android || is_bsd) {
- deps += [ "//chromecast/bindings:browsertests_cast" ]
- }
- }
diff --git a/chromium/patches/patch-chromecast_browser_BUILD.gn b/chromium/patches/patch-chromecast_browser_BUILD.gn
deleted file mode 100644
index a7cce2f28c..0000000000
--- a/chromium/patches/patch-chromecast_browser_BUILD.gn
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- chromecast/browser/BUILD.gn.orig 2020-07-15 18:56:46.000000000 +0000
-+++ chromecast/browser/BUILD.gn
-@@ -249,7 +249,7 @@ cast_source_set("browser") {
- ]
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "cast_system_memory_pressure_evaluator.cc",
- "cast_system_memory_pressure_evaluator.h",
-@@ -408,7 +408,7 @@ cast_source_set("browser") {
- ]
- }
-
-- if (is_linux && use_ozone) {
-+ if ((is_linux || is_bsd) && use_ozone) {
- sources += [
- "exo/cast_wm_helper.cc",
- "exo/cast_wm_helper.h",
-@@ -592,7 +592,7 @@ cast_source_set("unittests") {
- ]
- }
-
-- if (is_linux && use_ozone) {
-+ if ((is_linux || is_bsd) && use_ozone) {
- sources += [ "webview/webview_window_manager_unittest.cc" ]
- deps += [
- "//chromecast/graphics",
diff --git a/chromium/patches/patch-chromecast_browser_cast__browser__main__parts.cc b/chromium/patches/patch-chromecast_browser_cast__browser__main__parts.cc
index 015e3b9d41..34bcb3712f 100644
--- a/chromium/patches/patch-chromecast_browser_cast__browser__main__parts.cc
+++ b/chromium/patches/patch-chromecast_browser_cast__browser__main__parts.cc
@@ -1,40 +1,44 @@
$NetBSD$
---- chromecast/browser/cast_browser_main_parts.cc.orig 2020-07-08 21:40:38.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chromecast/browser/cast_browser_main_parts.cc.orig 2024-07-24 02:44:32.364367500 +0000
+++ chromecast/browser/cast_browser_main_parts.cc
-@@ -75,7 +75,7 @@
- #include "ui/base/ui_base_switches.h"
- #include "ui/gl/gl_switches.h"
+@@ -94,7 +94,7 @@
+ #include "ui/ozone/public/ozone_platform.h"
+ #endif // BUILDFLAG(IS_OZONE)
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include <fontconfig/fontconfig.h>
#include <signal.h>
#include <sys/prctl.h>
-@@ -272,7 +272,7 @@ class CastViewsDelegate : public views::
+@@ -267,7 +267,7 @@ class CastViewsDelegate : public views::
#endif // defined(USE_AURA)
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
base::FilePath GetApplicationFontsDir() {
std::unique_ptr<base::Environment> env(base::Environment::Create());
-@@ -317,7 +317,7 @@ const DefaultCommandLineSwitch kDefaultS
+@@ -313,7 +313,7 @@ const DefaultCommandLineSwitch kDefaultS
{cc::switches::kDisableThreadedAnimation, ""},
- #endif // defined(OS_ANDROID)
+ #endif // BUILDFLAG(IS_ANDROID)
#endif // BUILDFLAG(IS_CAST_AUDIO_ONLY)
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#if defined(ARCH_CPU_X86_FAMILY)
// This is needed for now to enable the x11 Ozone platform to work with
// current Linux/NVidia OpenGL drivers.
-@@ -484,7 +484,7 @@ void CastBrowserMainParts::ToolkitInitia
+@@ -490,7 +490,7 @@ void CastBrowserMainParts::ToolkitInitia
views_delegate_ = std::make_unique<CastViewsDelegate>();
#endif // defined(USE_AURA)
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
base::FilePath dir_font = GetApplicationFontsDir();
- const FcChar8 *dir_font_char8 = reinterpret_cast<const FcChar8*>(dir_font.value().data());
- if (!FcConfigAppFontAddDir(gfx::GetGlobalFontConfig(), dir_font_char8)) {
+ const FcChar8* dir_font_char8 =
+ reinterpret_cast<const FcChar8*>(dir_font.value().data());
diff --git a/chromium/patches/patch-chromecast_browser_cast__content__browser__client.cc b/chromium/patches/patch-chromecast_browser_cast__content__browser__client.cc
index 6357948127..b0f076ceca 100644
--- a/chromium/patches/patch-chromecast_browser_cast__content__browser__client.cc
+++ b/chromium/patches/patch-chromecast_browser_cast__content__browser__client.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- chromecast/browser/cast_content_browser_client.cc.orig 2020-07-08 21:40:38.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chromecast/browser/cast_content_browser_client.cc.orig 2024-07-24 02:44:32.364367500 +0000
+++ chromecast/browser/cast_content_browser_client.cc
-@@ -475,7 +475,7 @@ void CastContentBrowserClient::AppendExt
+@@ -431,7 +431,7 @@ void CastContentBrowserClient::AppendExt
switches::kAudioOutputChannels));
}
} else if (process_type == switches::kGpuProcess) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// Necessary for accelerated 2d canvas. By default on Linux, Chromium
// assumes GLES2 contexts can be lost to a power-save mode, which breaks GPU
// canvas apps.
diff --git a/chromium/patches/patch-chromecast_browser_metrics_BUILD.gn b/chromium/patches/patch-chromecast_browser_metrics_BUILD.gn
deleted file mode 100644
index 25d3b88d2d..0000000000
--- a/chromium/patches/patch-chromecast_browser_metrics_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chromecast/browser/metrics/BUILD.gn.orig 2020-07-08 21:40:38.000000000 +0000
-+++ chromecast/browser/metrics/BUILD.gn
-@@ -32,7 +32,7 @@ cast_source_set("metrics") {
- "//third_party/metrics_proto",
- ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "external_metrics.cc",
- "external_metrics.h",
diff --git a/chromium/patches/patch-chromecast_browser_tts_tts__controller__impl.cc b/chromium/patches/patch-chromecast_browser_tts_tts__controller__impl.cc
deleted file mode 100644
index 0f0f61720d..0000000000
--- a/chromium/patches/patch-chromecast_browser_tts_tts__controller__impl.cc
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD$
-
---- chromecast/browser/tts/tts_controller_impl.cc.orig 2020-07-08 21:40:38.000000000 +0000
-+++ chromecast/browser/tts/tts_controller_impl.cc
-@@ -390,7 +390,11 @@ int TtsControllerImpl::QueueSize() {
- }
-
- TtsPlatformImpl* TtsControllerImpl::GetPlatformImpl() {
-+#if defined(OS_BSD)
-+ return NULL;
-+#else
- return platform_impl_.get();
-+#endif
- }
-
- std::string TtsControllerImpl::GetApplicationLocale() const {
diff --git a/chromium/patches/patch-chromecast_cast__core_runtime_browser_runtime__application__service__impl.cc b/chromium/patches/patch-chromecast_cast__core_runtime_browser_runtime__application__service__impl.cc
new file mode 100644
index 0000000000..a3ddfe2185
--- /dev/null
+++ b/chromium/patches/patch-chromecast_cast__core_runtime_browser_runtime__application__service__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chromecast/cast_core/runtime/browser/runtime_application_service_impl.cc.orig 2024-07-24 02:44:32.384369600 +0000
++++ chromecast/cast_core/runtime/browser/runtime_application_service_impl.cc
+@@ -336,7 +336,7 @@ CastWebView::Scoped RuntimeApplicationSe
+ GetFlagEntry(feature::kCastCoreIsRemoteControlMode,
+ config_.extra_features(), /*default_value=*/false);
+ params->enabled_for_dev = IsEnabledForDev();
+-#if BUILDFLAG(ENABLE_CAST_RECEIVER) && BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(ENABLE_CAST_RECEIVER) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD))
+ // cast_receiver::ApplicationControlsImpl constructs an instance of
+ // url_rewrite::UrlRequestRewriteRulesManager. CastWebContentsImpl should NOT
+ // construct its own instance, or UrlRequestRulesReceiver will crash when a
diff --git a/chromium/patches/patch-chromecast_chromecast.gni b/chromium/patches/patch-chromecast_chromecast.gni
deleted file mode 100644
index b671fc954f..0000000000
--- a/chromium/patches/patch-chromecast_chromecast.gni
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- chromecast/chromecast.gni.orig 2020-07-15 18:56:46.000000000 +0000
-+++ chromecast/chromecast.gni
-@@ -114,7 +114,7 @@ declare_args() {
-
- # Set to true to enable external Mojo services to communicate with services
- # within cast_shell.
-- enable_external_mojo_services = is_linux
-+ enable_external_mojo_services = is_linux || is_bsd
-
- # Support Perfetto tracing of processes that depend on entry points in
- # //chromecast/external_mojo/external_service_support
-@@ -124,7 +124,7 @@ declare_args() {
- audio_input_sample_rate = 16000
-
- # Whether use unix sockets in Cast input/output stream.
-- use_unix_sockets = is_linux
-+ use_unix_sockets = is_linux || is_bsd
-
- # Set to true to enable audio capture service for audio input.
- enable_audio_capture_service = false
diff --git a/chromium/patches/patch-chromecast_external__mojo_public_cpp_external__mojo__broker.cc b/chromium/patches/patch-chromecast_external__mojo_public_cpp_external__mojo__broker.cc
deleted file mode 100644
index 332b366ee5..0000000000
--- a/chromium/patches/patch-chromecast_external__mojo_public_cpp_external__mojo__broker.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- chromecast/external_mojo/public/cpp/external_mojo_broker.cc.orig 2020-07-08 21:41:47.000000000 +0000
-+++ chromecast/external_mojo/public/cpp/external_mojo_broker.cc
-@@ -7,7 +7,7 @@
- #include <map>
- #include <utility>
-
--#if OS_LINUX
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include <sys/stat.h>
- #endif
-
-@@ -400,7 +400,7 @@ ExternalMojoBroker::ExternalMojoBroker(c
- named_channel.TakeServerEndpoint();
- DCHECK(server_endpoint.is_valid());
-
--#if OS_LINUX
-+#if defined(OS_LINUX) || defined(OS_BSD)
- chmod(broker_path.c_str(), 0770);
- #endif
-
diff --git a/chromium/patches/patch-chromecast_media_base_default__monotonic__clock.cc b/chromium/patches/patch-chromecast_media_base_default__monotonic__clock.cc
new file mode 100644
index 0000000000..8083bfe672
--- /dev/null
+++ b/chromium/patches/patch-chromecast_media_base_default__monotonic__clock.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- chromecast/media/base/default_monotonic_clock.cc.orig 2024-07-24 02:44:32.416372500 +0000
++++ chromecast/media/base/default_monotonic_clock.cc
+@@ -11,7 +11,7 @@
+ #include "base/time/time.h"
+ #include "build/build_config.h"
+
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "chromecast/media/base/buildflags.h"
+ #endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) ||
+ // BUILDFLAG(IS_CHROMEOS)
+@@ -28,7 +28,7 @@ std::unique_ptr<MonotonicClock> Monotoni
+ return std::make_unique<DefaultMonotonicClock>();
+ }
+
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ int64_t MonotonicClockNow() {
+ timespec now = {0, 0};
+ #if BUILDFLAG(MEDIA_CLOCK_MONOTONIC_RAW)
diff --git a/chromium/patches/patch-chromecast_net_BUILD.gn b/chromium/patches/patch-chromecast_net_BUILD.gn
deleted file mode 100644
index c0074a2619..0000000000
--- a/chromium/patches/patch-chromecast_net_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chromecast/net/BUILD.gn.orig 2020-07-15 18:55:53.000000000 +0000
-+++ chromecast/net/BUILD.gn
-@@ -11,7 +11,7 @@ cast_source_set("net") {
- "net_util_cast.h",
- ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "network_change_notifier_factory_cast.cc",
- "network_change_notifier_factory_cast.h",
diff --git a/chromium/patches/patch-chromecast_renderer_cast__content__renderer__client.cc b/chromium/patches/patch-chromecast_renderer_cast__content__renderer__client.cc
deleted file mode 100644
index c93a9e57e7..0000000000
--- a/chromium/patches/patch-chromecast_renderer_cast__content__renderer__client.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chromecast/renderer/cast_content_renderer_client.cc.orig 2020-07-08 21:41:47.000000000 +0000
-+++ chromecast/renderer/cast_content_renderer_client.cc
-@@ -207,7 +207,7 @@ void CastContentRendererClient::RenderFr
- dispatcher->OnRenderFrameCreated(render_frame);
- #endif
-
--#if defined(OS_LINUX) && defined(USE_OZONE)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && defined(USE_OZONE)
- // JsChannelBindings destroys itself when the RenderFrame is destroyed.
- JsChannelBindings::Create(render_frame);
- #endif
diff --git a/chromium/patches/patch-components_BUILD.gn b/chromium/patches/patch-components_BUILD.gn
deleted file mode 100644
index bdeabe975e..0000000000
--- a/chromium/patches/patch-components_BUILD.gn
+++ /dev/null
@@ -1,47 +0,0 @@
-$NetBSD$
-
---- components/BUILD.gn.orig 2020-07-15 18:56:46.000000000 +0000
-+++ components/BUILD.gn
-@@ -45,7 +45,7 @@ if (is_ios) {
- # no tests will run) and add a reference here. You can add more than one unit
- # test target if convenient.
- test("components_unittests") {
-- if (is_android || is_linux || is_mac || is_win) {
-+ if (is_android || is_linux || is_mac || is_win || is_bsd) {
- data = [ "test/data/" ]
- }
-
-@@ -194,9 +194,13 @@ test("components_unittests") {
- }
-
- if (!is_fuchsia) {
-+ if (!is_bsd) {
-+ deps += [
-+ "//components/browser_sync:unit_tests",
-+ "//components/send_tab_to_self:unit_tests",
-+ ]
-+ }
- deps += [
-- "//components/browser_sync:unit_tests",
-- "//components/send_tab_to_self:unit_tests",
- "//components/sync_device_info:unit_tests",
- "//components/sync_sessions:unit_tests",
- "//components/update_client:unit_tests",
-@@ -313,7 +317,7 @@ test("components_unittests") {
- deps += [ ":components_tests_pak_bundle_data" ]
- }
-
-- if (is_mac || is_linux) {
-+ if (is_mac || is_linux || is_bsd) {
- data_deps += [ "//content/shell:pak" ]
- }
-
-@@ -663,7 +667,7 @@ if (!is_ios && !is_fuchsia) {
- ]
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- # content_extractor_browsertest is a standalone content extraction tool built as
- # a MANUAL component_browsertest.
- sources += [ "dom_distiller/standalone/content_extractor_browsertest.cc" ]
diff --git a/chromium/patches/patch-components_autofill__payments__strings.grdp b/chromium/patches/patch-components_autofill__payments__strings.grdp
deleted file mode 100644
index 0eed3793da..0000000000
--- a/chromium/patches/patch-components_autofill__payments__strings.grdp
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/autofill_payments_strings.grdp.orig 2020-07-15 18:55:54.000000000 +0000
-+++ components/autofill_payments_strings.grdp
-@@ -116,7 +116,7 @@
- <message name="IDS_AUTOFILL_FIX_FLOW_PROMPT_SAVE_CARD_LABEL" desc="Text to show on the button to save the card to Google when the fix flow dialog is shown after the Autofill save card prompt." formatter_data="android_java">
- Save card
- </message>
-- <if expr="is_linux and not chromeos">
-+ <if expr="is_posix and not chromeos">
- <then>
- <message name="IDS_AUTOFILL_SAVE_CARD_PROMPT_TITLE_TO_CLOUD" desc="Title text for the Autofill save card prompt when the card is to be saved by uploading it to Google Payments and also saved locally. The prompt can be either a bubble or an infobar.">
- Do you want to save this card to your Google Account?
diff --git a/chromium/patches/patch-components_autofill_content_renderer_password__form__conversion__utils.cc b/chromium/patches/patch-components_autofill_content_renderer_password__form__conversion__utils.cc
deleted file mode 100644
index 98dba56175..0000000000
--- a/chromium/patches/patch-components_autofill_content_renderer_password__form__conversion__utils.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/autofill/content/renderer/password_form_conversion_utils.cc.orig 2020-07-08 21:40:39.000000000 +0000
-+++ components/autofill/content/renderer/password_form_conversion_utils.cc
-@@ -19,7 +19,7 @@
- #include "third_party/blink/public/web/web_form_control_element.h"
- #include "third_party/blink/public/web/web_input_element.h"
- #include "third_party/blink/public/web/web_local_frame.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
- #include "url/gurl.h"
-
- using blink::WebElement;
diff --git a/chromium/patches/patch-components_autofill_core_browser_autofill__external__delegate.cc b/chromium/patches/patch-components_autofill_core_browser_autofill__external__delegate.cc
deleted file mode 100644
index 8718bf99f2..0000000000
--- a/chromium/patches/patch-components_autofill_core_browser_autofill__external__delegate.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/autofill/core/browser/autofill_external_delegate.cc.orig 2020-07-08 21:40:39.000000000 +0000
-+++ components/autofill/core/browser/autofill_external_delegate.cc
-@@ -122,7 +122,7 @@ void AutofillExternalDelegate::OnSuggest
- // Append the "Hide Suggestions" menu item for only Autofill Address and
- // Autocomplete popups.
- #if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || \
-- defined(OS_CHROMEOS)
-+ defined(OS_CHROMEOS) || defined(OS_BSD)
- if (base::FeatureList::IsEnabled(
- features::kAutofillEnableHideSuggestionsUI)) {
- // If the user has selected a suggestion, it indicates the suggestions are
diff --git a/chromium/patches/patch-components_autofill_core_browser_payments__data__manager.cc b/chromium/patches/patch-components_autofill_core_browser_payments__data__manager.cc
new file mode 100644
index 0000000000..560a023ff0
--- /dev/null
+++ b/chromium/patches/patch-components_autofill_core_browser_payments__data__manager.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/autofill/core/browser/payments_data_manager.cc.orig 2024-07-24 02:44:33.288457200 +0000
++++ components/autofill/core/browser/payments_data_manager.cc
+@@ -1065,7 +1065,7 @@ bool PaymentsDataManager::ShouldShowCard
+ // The feature is only for Linux, Windows, Mac, and Fuchsia.
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || \
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) || \
+ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FUCHSIA)
+ // This option should only be shown for users that have not enabled the Sync
+ // Feature and that have server credit cards available.
diff --git a/chromium/patches/patch-components_autofill_core_browser_personal__data__manager.cc b/chromium/patches/patch-components_autofill_core_browser_personal__data__manager.cc
deleted file mode 100644
index f176b45093..0000000000
--- a/chromium/patches/patch-components_autofill_core_browser_personal__data__manager.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- components/autofill/core/browser/personal_data_manager.cc.orig 2020-07-08 21:40:39.000000000 +0000
-+++ components/autofill/core/browser/personal_data_manager.cc
-@@ -1916,7 +1916,7 @@ bool PersonalDataManager::IsServerCard(c
-
- bool PersonalDataManager::ShouldShowCardsFromAccountOption() const {
- // The feature is only for Linux, Windows and Mac.
--#if (!defined(OS_LINUX) && !defined(OS_WIN) && !defined(OS_MACOSX)) || \
-+#if (!defined(OS_LINUX) && !defined(OS_WIN) && !defined(OS_MACOSX) && !defined(OS_BSD)) || \
- defined(OS_CHROMEOS)
- return false;
- #else
-@@ -1940,7 +1940,7 @@ bool PersonalDataManager::ShouldShowCard
-
- // The option should only be shown if the user has not already opted-in.
- return !is_opted_in;
--#endif // (!defined(OS_LINUX) && !defined(OS_WIN) && !defined(OS_MACOSX)) ||
-+#endif // (!defined(OS_LINUX) && !defined(OS_WIN) && !defined(OS_MACOSX) && !defined(OS_BSD)) ||
- // defined(OS_CHROMEOS)
- }
-
diff --git a/chromium/patches/patch-components_autofill_core_common_autofill__features.cc b/chromium/patches/patch-components_autofill_core_common_autofill__features.cc
new file mode 100644
index 0000000000..642f801e13
--- /dev/null
+++ b/chromium/patches/patch-components_autofill_core_common_autofill__features.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/autofill/core/common/autofill_features.cc.orig 2024-07-24 02:44:33.320460000 +0000
++++ components/autofill/core/common/autofill_features.cc
+@@ -661,7 +661,7 @@ BASE_FEATURE(kAutofillTextAreaChangeEven
+ // Enabled by default for Mac and Windows platforms.
+ BASE_FEATURE(kAutofillContentEditableChangeEvents,
+ "AutofillContentEditableChangeEvents",
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+ base::FEATURE_DISABLED_BY_DEFAULT
diff --git a/chromium/patches/patch-components_autofill_core_common_autofill__payments__features.cc b/chromium/patches/patch-components_autofill_core_common_autofill__payments__features.cc
index e6ca232da4..edac6c6aae 100644
--- a/chromium/patches/patch-components_autofill_core_common_autofill__payments__features.cc
+++ b/chromium/patches/patch-components_autofill_core_common_autofill__payments__features.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- components/autofill/core/common/autofill_payments_features.cc.orig 2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/autofill/core/common/autofill_payments_features.cc.orig 2024-07-24 02:44:33.320460000 +0000
+++ components/autofill/core/common/autofill_payments_features.cc
-@@ -124,7 +124,7 @@ const base::Feature kAutofillUpstreamAll
-
+@@ -248,7 +248,7 @@ BASE_FEATURE(kAutofillSyncEwalletAccount
bool ShouldShowImprovedUserConsentForCreditCardSave() {
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
-- (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+ ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || \
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD) || \
+ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
// The new user consent UI is fully launched on MacOS, Windows and Linux.
return true;
- #else
diff --git a/chromium/patches/patch-components_autofill_core_common_autofill__util.cc b/chromium/patches/patch-components_autofill_core_common_autofill__util.cc
index 7c15e8226c..8f000ccf8f 100644
--- a/chromium/patches/patch-components_autofill_core_common_autofill__util.cc
+++ b/chromium/patches/patch-components_autofill_core_common_autofill__util.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- components/autofill/core/common/autofill_util.cc.orig 2020-07-08 21:40:39.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/autofill/core/common/autofill_util.cc.orig 2024-07-24 02:44:33.320460000 +0000
+++ components/autofill/core/common/autofill_util.cc
-@@ -213,7 +213,7 @@ bool SanitizedFieldIsEmpty(const base::s
- }
+@@ -132,7 +132,7 @@ bool SanitizedFieldIsEmpty(const std::u1
bool ShouldAutoselectFirstSuggestionOnArrowDown() {
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
return true;
#else
return false;
diff --git a/chromium/patches/patch-components_commerce_core_commerce__feature__list.cc b/chromium/patches/patch-components_commerce_core_commerce__feature__list.cc
new file mode 100644
index 0000000000..823e22fc33
--- /dev/null
+++ b/chromium/patches/patch-components_commerce_core_commerce__feature__list.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/commerce/core/commerce_feature_list.cc.orig 2024-07-24 02:44:33.564484000 +0000
++++ components/commerce/core/commerce_feature_list.cc
+@@ -168,7 +168,7 @@ BASE_FEATURE(kPriceInsights,
+ "PriceInsights",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ BASE_FEATURE(kPriceInsightsRegionLaunched,
+ "PriceInsightsRegionLaunched",
+ base::FEATURE_ENABLED_BY_DEFAULT);
+@@ -244,7 +244,7 @@ const base::FeatureParam<bool> kDeleteAl
+
+ BASE_FEATURE(kShoppingList, "ShoppingList", base::FEATURE_DISABLED_BY_DEFAULT);
+ #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_IOS)
++ BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_IOS) || BUILDFLAG(IS_BSD)
+ BASE_FEATURE(kShoppingListRegionLaunched,
+ "ShoppingListRegionLaunched",
+ base::FEATURE_ENABLED_BY_DEFAULT);
diff --git a/chromium/patches/patch-components_constrained__window_constrained__window__views.cc b/chromium/patches/patch-components_constrained__window_constrained__window__views.cc
new file mode 100644
index 0000000000..9c999d9213
--- /dev/null
+++ b/chromium/patches/patch-components_constrained__window_constrained__window__views.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/constrained_window/constrained_window_views.cc.orig 2024-07-24 02:44:33.596487000 +0000
++++ components/constrained_window/constrained_window_views.cc
+@@ -360,7 +360,7 @@ bool SupportsGlobalScreenCoordinates() {
+ }
+
+ bool PlatformClipsChildrenToViewport() {
+-#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return true;
+ #else
+ return false;
diff --git a/chromium/patches/patch-components_content__settings_core_browser_website__settings__registry.cc b/chromium/patches/patch-components_content__settings_core_browser_website__settings__registry.cc
index a88b959bcf..a2f1801b48 100644
--- a/chromium/patches/patch-components_content__settings_core_browser_website__settings__registry.cc
+++ b/chromium/patches/patch-components_content__settings_core_browser_website__settings__registry.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- components/content_settings/core/browser/website_settings_registry.cc.orig 2020-07-08 21:40:39.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/content_settings/core/browser/website_settings_registry.cc.orig 2024-07-24 02:44:33.612488500 +0000
+++ components/content_settings/core/browser/website_settings_registry.cc
-@@ -66,7 +66,7 @@ const WebsiteSettingsInfo* WebsiteSettin
- #if defined(OS_WIN)
+@@ -67,7 +67,7 @@ const WebsiteSettingsInfo* WebsiteSettin
+ #if BUILDFLAG(IS_WIN)
if (!(platform & PLATFORM_WINDOWS))
return nullptr;
--#elif defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#elif (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
if (!(platform & PLATFORM_LINUX))
return nullptr;
- #elif defined(OS_MACOSX) && !defined(OS_IOS)
+ #elif BUILDFLAG(IS_MAC)
diff --git a/chromium/patches/patch-components_cookie__config_cookie__store__util.cc b/chromium/patches/patch-components_cookie__config_cookie__store__util.cc
index 3286d34bc9..f5e1b78b18 100644
--- a/chromium/patches/patch-components_cookie__config_cookie__store__util.cc
+++ b/chromium/patches/patch-components_cookie__config_cookie__store__util.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- components/cookie_config/cookie_store_util.cc.orig 2020-07-08 21:40:39.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/cookie_config/cookie_store_util.cc.orig 2024-07-24 02:44:33.624489500 +0000
+++ components/cookie_config/cookie_store_util.cc
-@@ -11,7 +11,7 @@
-
+@@ -12,7 +12,7 @@
namespace cookie_config {
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
namespace {
// Use the operating system's mechanisms to encrypt cookies before writing
diff --git a/chromium/patches/patch-components_crash_content_browser_BUILD.gn b/chromium/patches/patch-components_crash_content_browser_BUILD.gn
deleted file mode 100644
index d43d74262c..0000000000
--- a/chromium/patches/patch-components_crash_content_browser_BUILD.gn
+++ /dev/null
@@ -1,20 +0,0 @@
-$NetBSD$
-
---- components/crash/content/browser/BUILD.gn.orig 2020-06-25 09:31:26.000000000 +0000
-+++ components/crash/content/browser/BUILD.gn
-@@ -42,13 +42,13 @@ source_set("browser") {
- deps += [ "//third_party/crashpad/crashpad/client" ]
- }
-
-- if (!is_android) {
-+ if (!is_android && !is_bsd) {
- deps += [ "//third_party/breakpad:client" ]
- }
-
- # This is not in the GYP build but this target includes breakpad client
- # headers, so add the dependency here.
-- if ((is_posix && !is_ios) || is_fuchsia) {
-+ if ((is_posix && !is_ios && !is_bsd) || is_fuchsia) {
- configs += [ "//third_party/breakpad:client_config" ]
- public_configs = [ "//third_party/breakpad:client_config" ]
- }
diff --git a/chromium/patches/patch-components_crash_core_app_BUILD.gn b/chromium/patches/patch-components_crash_core_app_BUILD.gn
new file mode 100644
index 0000000000..a5175cd979
--- /dev/null
+++ b/chromium/patches/patch-components_crash_core_app_BUILD.gn
@@ -0,0 +1,49 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/crash/core/app/BUILD.gn.orig 2024-07-24 02:44:33.628490000 +0000
++++ components/crash/core/app/BUILD.gn
+@@ -82,6 +82,10 @@ static_library("app") {
+ ]
+ }
+
++ if (is_bsd) {
++ sources -= [ "crashpad.cc" ]
++ }
++
+ defines = [ "CRASH_IMPLEMENTATION" ]
+
+ public_deps = [ ":lib" ]
+@@ -95,7 +99,7 @@ static_library("app") {
+ "//third_party/crashpad/crashpad/util",
+ ]
+
+- if (is_linux || is_chromeos) {
++ if ((is_linux || is_chromeos) && !is_bsd) {
+ sources += [ "crashpad_linux.cc" ]
+ data_deps = [ ":chrome_crashpad_handler" ]
+ }
+@@ -115,7 +119,7 @@ static_library("app") {
+ libs = [ "log" ]
+ }
+
+- if (is_android || is_linux || is_chromeos) {
++ if ((is_android || is_linux || is_chromeos) && !is_bsd) {
+ deps += [
+ "//base:base_static",
+ "//components/crash/core/common",
+@@ -246,11 +250,6 @@ if (is_mac || is_android || is_linux ||
+ executable("chrome_crashpad_handler") {
+ sources = [ "chrome_crashpad_handler.cc" ]
+
+- deps = [
+- ":crashpad_handler_main",
+- "//third_party/crashpad/crashpad/handler",
+- ]
+-
+ if (is_mac && (is_component_build || is_asan)) {
+ ldflags = [
+ # The handler is in
diff --git a/chromium/patches/patch-components_crash_core_app_chrome__crashpad__handler.cc b/chromium/patches/patch-components_crash_core_app_chrome__crashpad__handler.cc
new file mode 100644
index 0000000000..f44ab6ae69
--- /dev/null
+++ b/chromium/patches/patch-components_crash_core_app_chrome__crashpad__handler.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/crash/core/app/chrome_crashpad_handler.cc.orig 2024-07-24 02:44:33.628490000 +0000
++++ components/crash/core/app/chrome_crashpad_handler.cc
+@@ -6,5 +6,9 @@
+ extern "C" int CrashpadHandlerMain(int argc, char* argv[]);
+
+ int main(int argc, char* argv[]) {
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
++ return -1;
++#else
+ return CrashpadHandlerMain(argc, argv);
++#endif
+ }
diff --git a/chromium/patches/patch-components_crash_core_app_crashpad__handler__main.cc b/chromium/patches/patch-components_crash_core_app_crashpad__handler__main.cc
new file mode 100644
index 0000000000..f1e130a94b
--- /dev/null
+++ b/chromium/patches/patch-components_crash_core_app_crashpad__handler__main.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/crash/core/app/crashpad_handler_main.cc.orig 2024-07-24 02:44:33.632490400 +0000
++++ components/crash/core/app/crashpad_handler_main.cc
+@@ -10,7 +10,7 @@
+ #include "third_party/crashpad/crashpad/handler/handler_main.h"
+ #include "third_party/crashpad/crashpad/handler/user_stream_data_source.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ #include "components/stability_report/user_stream_data_source_posix.h"
+ #endif
+
+@@ -31,7 +31,7 @@ __attribute__((visibility("default"), us
+ char* argv[]) {
+ crashpad::UserStreamDataSources user_stream_data_sources;
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ user_stream_data_sources.push_back(
+ std::make_unique<stability_report::UserStreamDataSourcePosix>());
+ #endif
diff --git a/chromium/patches/patch-components_crash_core_browser_crash__upload__list__crashpad.cc b/chromium/patches/patch-components_crash_core_browser_crash__upload__list__crashpad.cc
new file mode 100644
index 0000000000..74b1aa9f81
--- /dev/null
+++ b/chromium/patches/patch-components_crash_core_browser_crash__upload__list__crashpad.cc
@@ -0,0 +1,32 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/crash/core/browser/crash_upload_list_crashpad.cc.orig 2024-07-24 02:44:33.632490400 +0000
++++ components/crash/core/browser/crash_upload_list_crashpad.cc
+@@ -38,7 +38,9 @@ CrashUploadListCrashpad::~CrashUploadLis
+ std::vector<std::unique_ptr<UploadList::UploadInfo>>
+ CrashUploadListCrashpad::LoadUploadList() {
+ std::vector<crash_reporter::Report> reports;
++#if !BUILDFLAG(IS_BSD)
+ crash_reporter::GetReports(&reports);
++#endif
+
+ std::vector<std::unique_ptr<UploadInfo>> uploads;
+ for (const crash_reporter::Report& report : reports) {
+@@ -52,9 +54,13 @@ CrashUploadListCrashpad::LoadUploadList(
+
+ void CrashUploadListCrashpad::ClearUploadList(const base::Time& begin,
+ const base::Time& end) {
++#if !BUILDFLAG(IS_BSD)
+ crash_reporter::ClearReportsBetween(begin, end);
++#endif
+ }
+
+ void CrashUploadListCrashpad::RequestSingleUpload(const std::string& local_id) {
++#if !BUILDFLAG(IS_BSD)
+ crash_reporter::RequestSingleCrashUpload(local_id);
++#endif
+ }
diff --git a/chromium/patches/patch-components_crash_core_common_BUILD.gn b/chromium/patches/patch-components_crash_core_common_BUILD.gn
index 34c4138a31..e9c264a96d 100644
--- a/chromium/patches/patch-components_crash_core_common_BUILD.gn
+++ b/chromium/patches/patch-components_crash_core_common_BUILD.gn
@@ -1,8 +1,12 @@
$NetBSD$
---- components/crash/core/common/BUILD.gn.orig 2020-06-25 09:31:26.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/crash/core/common/BUILD.gn.orig 2024-07-24 02:44:33.632490400 +0000
+++ components/crash/core/common/BUILD.gn
-@@ -7,7 +7,7 @@ import("//components/gwp_asan/buildflags
+@@ -9,7 +9,7 @@ import("//components/gwp_asan/buildflags
declare_args() {
# If set to true, this will stub out and disable the entire crash key system.
@@ -11,23 +15,3 @@ $NetBSD$
}
group("common") {
-@@ -108,7 +108,9 @@ target(crash_key_target_type, "crash_key
- ]
- }
-
-- deps += [ "//third_party/breakpad:client" ]
-+ if (!is_bsd) {
-+ deps += [ "//third_party/breakpad:client" ]
-+ }
- if (use_combined_annotations) {
- public_deps += [ "//third_party/crashpad/crashpad/client" ]
- }
-@@ -184,7 +186,7 @@ source_set("unit_tests") {
- sources += [ "crash_key_breakpad_ios_unittest.cc" ]
- deps += [ "//third_party/breakpad:client" ]
- include_dirs = [ "//third_party/breakpad/breakpad/src/" ]
-- } else if (!is_mac && !is_win && !is_fuchsia && !is_android) {
-+ } else if (!is_mac && !is_win && !is_fuchsia && !is_android && !is_bsd) {
- include_dirs = [ "//third_party/breakpad/breakpad/src/" ]
- sources += [ "crash_key_breakpad_unittest.cc" ]
- }
diff --git a/chromium/patches/patch-components_cronet_BUILD.gn b/chromium/patches/patch-components_cronet_BUILD.gn
deleted file mode 100644
index 38d92e4e52..0000000000
--- a/chromium/patches/patch-components_cronet_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- components/cronet/BUILD.gn.orig 2020-07-15 18:55:54.000000000 +0000
-+++ components/cronet/BUILD.gn
-@@ -158,7 +158,7 @@ if (is_android) {
-
- defines = [ "CRONET_TESTS_IMPLEMENTATION" ]
-
-- if (is_linux && !is_component_build) {
-+ if ((is_linux || is_bsd) && !is_component_build) {
- public_configs = [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
- }
- }
-@@ -253,7 +253,7 @@ if (is_android) {
- "//components/cronet",
- "//components/cronet/native:cronet_native_headers",
- ]
-- if (is_linux && !is_component_build) {
-+ if ((is_linux || is_bsd) && !is_component_build) {
- public_configs = [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
- }
- }
diff --git a/chromium/patches/patch-components_device__signals_core_browser_mock__signals__aggregator.h b/chromium/patches/patch-components_device__signals_core_browser_mock__signals__aggregator.h
new file mode 100644
index 0000000000..41825b140f
--- /dev/null
+++ b/chromium/patches/patch-components_device__signals_core_browser_mock__signals__aggregator.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/device_signals/core/browser/mock_signals_aggregator.h.orig 2024-07-24 02:44:33.856512000 +0000
++++ components/device_signals/core/browser/mock_signals_aggregator.h
+@@ -17,7 +17,7 @@ class MockSignalsAggregator : public Sig
+ MockSignalsAggregator();
+ ~MockSignalsAggregator() override;
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ MOCK_METHOD(void,
+ GetSignalsForUser,
+ (const UserContext&,
diff --git a/chromium/patches/patch-components_device__signals_core_browser_signals__aggregator.h b/chromium/patches/patch-components_device__signals_core_browser_signals__aggregator.h
new file mode 100644
index 0000000000..3a7b7764ac
--- /dev/null
+++ b/chromium/patches/patch-components_device__signals_core_browser_signals__aggregator.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/device_signals/core/browser/signals_aggregator.h.orig 2024-07-24 02:44:33.856512000 +0000
++++ components/device_signals/core/browser/signals_aggregator.h
+@@ -22,7 +22,7 @@ class SignalsAggregator : public KeyedSe
+
+ ~SignalsAggregator() override = default;
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Will asynchronously collect signals whose names are specified in the
+ // `request` object, and will also use a `user_context` to validate that the
+ // user has permissions to the device's signals. Invokes `callback` with the
diff --git a/chromium/patches/patch-components_device__signals_core_browser_signals__aggregator__impl.cc b/chromium/patches/patch-components_device__signals_core_browser_signals__aggregator__impl.cc
new file mode 100644
index 0000000000..a96ad6ac67
--- /dev/null
+++ b/chromium/patches/patch-components_device__signals_core_browser_signals__aggregator__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/device_signals/core/browser/signals_aggregator_impl.cc.orig 2024-07-24 02:44:33.856512000 +0000
++++ components/device_signals/core/browser/signals_aggregator_impl.cc
+@@ -65,7 +65,7 @@ SignalsAggregatorImpl::SignalsAggregator
+
+ SignalsAggregatorImpl::~SignalsAggregatorImpl() = default;
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void SignalsAggregatorImpl::GetSignalsForUser(
+ const UserContext& user_context,
+ const SignalsAggregationRequest& request,
diff --git a/chromium/patches/patch-components_device__signals_core_browser_signals__aggregator__impl.h b/chromium/patches/patch-components_device__signals_core_browser_signals__aggregator__impl.h
new file mode 100644
index 0000000000..da809e445d
--- /dev/null
+++ b/chromium/patches/patch-components_device__signals_core_browser_signals__aggregator__impl.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/device_signals/core/browser/signals_aggregator_impl.h.orig 2024-07-24 02:44:33.856512000 +0000
++++ components/device_signals/core/browser/signals_aggregator_impl.h
+@@ -29,7 +29,7 @@ class SignalsAggregatorImpl : public Sig
+ ~SignalsAggregatorImpl() override;
+
+ // SignalsAggregator:
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void GetSignalsForUser(const UserContext& user_context,
+ const SignalsAggregationRequest& request,
+ GetSignalsCallback callback) override;
diff --git a/chromium/patches/patch-components_device__signals_core_browser_user__permission__service.h b/chromium/patches/patch-components_device__signals_core_browser_user__permission__service.h
new file mode 100644
index 0000000000..3f316aee53
--- /dev/null
+++ b/chromium/patches/patch-components_device__signals_core_browser_user__permission__service.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/device_signals/core/browser/user_permission_service.h.orig 2024-07-24 02:44:33.856512000 +0000
++++ components/device_signals/core/browser/user_permission_service.h
+@@ -57,7 +57,7 @@ class UserPermissionService : public Key
+ // missing.
+ virtual bool ShouldCollectConsent() const = 0;
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Will verify whether context-aware signals can be collected
+ // on behalf of the user represented by `user_context`. Returns `kGranted` if
+ // collection is allowed.
diff --git a/chromium/patches/patch-components_device__signals_core_browser_user__permission__service__impl.cc b/chromium/patches/patch-components_device__signals_core_browser_user__permission__service__impl.cc
new file mode 100644
index 0000000000..fcdff4b269
--- /dev/null
+++ b/chromium/patches/patch-components_device__signals_core_browser_user__permission__service__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/device_signals/core/browser/user_permission_service_impl.cc.orig 2024-07-24 02:44:33.856512000 +0000
++++ components/device_signals/core/browser/user_permission_service_impl.cc
+@@ -87,7 +87,7 @@ bool UserPermissionServiceImpl::ShouldCo
+ consent_required_by_dependent_policy;
+ }
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ UserPermission UserPermissionServiceImpl::CanUserCollectSignals(
+ const UserContext& user_context) const {
+ // Return "unknown user" if no user ID was given.
diff --git a/chromium/patches/patch-components_device__signals_core_browser_user__permission__service__impl.h b/chromium/patches/patch-components_device__signals_core_browser_user__permission__service__impl.h
new file mode 100644
index 0000000000..8fc601f2cc
--- /dev/null
+++ b/chromium/patches/patch-components_device__signals_core_browser_user__permission__service__impl.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/device_signals/core/browser/user_permission_service_impl.h.orig 2024-07-24 02:44:33.856512000 +0000
++++ components/device_signals/core/browser/user_permission_service_impl.h
+@@ -38,7 +38,7 @@ class UserPermissionServiceImpl : public
+
+ // UserPermissionService:
+ bool ShouldCollectConsent() const override;
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ UserPermission CanUserCollectSignals(
+ const UserContext& user_context) const override;
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX
diff --git a/chromium/patches/patch-components_device__signals_core_common_signals__features.cc b/chromium/patches/patch-components_device__signals_core_common_signals__features.cc
new file mode 100644
index 0000000000..de1db911da
--- /dev/null
+++ b/chromium/patches/patch-components_device__signals_core_common_signals__features.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/device_signals/core/common/signals_features.cc.orig 2024-07-24 02:44:33.860512500 +0000
++++ components/device_signals/core/common/signals_features.cc
+@@ -46,7 +46,7 @@ bool IsNewFunctionEnabled(NewEvFunction
+ }
+
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_CHROMEOS_ASH)
++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ // Enables the triggering of device signals consent dialog when conditions met
+ // This feature also requires UnmanagedDeviceSignalsConsentFlowEnabled policy to
+ // be enabled
diff --git a/chromium/patches/patch-components_device__signals_core_common_signals__features.h b/chromium/patches/patch-components_device__signals_core_common_signals__features.h
new file mode 100644
index 0000000000..a3617ace76
--- /dev/null
+++ b/chromium/patches/patch-components_device__signals_core_common_signals__features.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/device_signals/core/common/signals_features.h.orig 2024-07-24 02:44:33.860512500 +0000
++++ components/device_signals/core/common/signals_features.h
+@@ -28,7 +28,7 @@ enum class NewEvFunction { kFileSystemIn
+ bool IsNewFunctionEnabled(NewEvFunction new_ev_function);
+
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_CHROMEOS_ASH)
++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ BASE_DECLARE_FEATURE(kDeviceSignalsConsentDialog);
+
+ // Returns true if device signals consent dialog has been enabled for
diff --git a/chromium/patches/patch-components_device__signals_core_system__signals_platform__delegate.cc b/chromium/patches/patch-components_device__signals_core_system__signals_platform__delegate.cc
new file mode 100644
index 0000000000..f19ae80e84
--- /dev/null
+++ b/chromium/patches/patch-components_device__signals_core_system__signals_platform__delegate.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/device_signals/core/system_signals/platform_delegate.cc.orig 2024-07-24 02:44:33.860512500 +0000
++++ components/device_signals/core/system_signals/platform_delegate.cc
+@@ -11,7 +11,7 @@ namespace device_signals {
+
+ bool CustomFilePathComparator::operator()(const base::FilePath& a,
+ const base::FilePath& b) const {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // On Linux, the file system is case sensitive.
+ return a < b;
+ #else
diff --git a/chromium/patches/patch-components_device__signals_test_signals__contract.cc b/chromium/patches/patch-components_device__signals_test_signals__contract.cc
new file mode 100644
index 0000000000..4ab7d6726a
--- /dev/null
+++ b/chromium/patches/patch-components_device__signals_test_signals__contract.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/device_signals/test/signals_contract.cc.orig 2024-07-24 02:44:33.864513000 +0000
++++ components/device_signals/test/signals_contract.cc
+@@ -212,7 +212,7 @@ GetSignalsContract() {
+ base::BindRepeating(VerifyUnset, names::kCrowdStrike);
+ #endif
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ contract[names::kAllowScreenLock] =
+ base::BindRepeating(VerifyUnset, names::kAllowScreenLock);
+ contract[names::kImei] = base::BindRepeating(VerifyUnset, names::kImei);
diff --git a/chromium/patches/patch-components_discardable__memory_service_discardable__shared__memory__manager.cc b/chromium/patches/patch-components_discardable__memory_service_discardable__shared__memory__manager.cc
index 8cfbee9ed0..5c93797877 100644
--- a/chromium/patches/patch-components_discardable__memory_service_discardable__shared__memory__manager.cc
+++ b/chromium/patches/patch-components_discardable__memory_service_discardable__shared__memory__manager.cc
@@ -1,22 +1,17 @@
$NetBSD$
---- components/discardable_memory/service/discardable_shared_memory_manager.cc.orig 2020-07-08 21:40:39.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/discardable_memory/service/discardable_shared_memory_manager.cc.orig 2024-07-24 02:44:33.868513300 +0000
+++ components/discardable_memory/service/discardable_shared_memory_manager.cc
-@@ -33,7 +33,7 @@
- #include "components/discardable_memory/common/discardable_shared_memory_heap.h"
- #include "mojo/public/cpp/bindings/self_owned_receiver.h"
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "base/files/file_path.h"
- #include "base/files/file_util.h"
- #include "base/metrics/histogram_macros.h"
-@@ -176,7 +176,7 @@ int64_t GetDefaultMemoryLimit() {
- max_default_memory_limit /= 8;
+@@ -176,7 +176,7 @@ uint64_t GetDefaultMemoryLimit() {
+ // Limits the number of FDs used to 32, assuming a 4MB allocation size.
+ uint64_t max_default_memory_limit = 128 * kMegabyte;
+ #else
+- uint64_t max_default_memory_limit = 512 * kMegabyte;
++ uint64_t max_default_memory_limit = 128 * kMegabyte;
#endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- base::FilePath shmem_dir;
- if (base::GetShmemTempDir(false, &shmem_dir)) {
- int64_t shmem_dir_amount_of_free_space =
+ // Use 1/8th of discardable memory on low-end devices.
diff --git a/chromium/patches/patch-components_download_internal_common_base__file.cc b/chromium/patches/patch-components_download_internal_common_base__file.cc
deleted file mode 100644
index 372b7bd439..0000000000
--- a/chromium/patches/patch-components_download_internal_common_base__file.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/download/internal/common/base_file.cc.orig 2020-07-08 21:40:39.000000000 +0000
-+++ components/download/internal/common/base_file.cc
-@@ -604,7 +604,7 @@ GURL GetEffectiveAuthorityURL(const GURL
-
- } // namespace
-
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
-
- DownloadInterruptReason BaseFile::AnnotateWithSourceInformationSync(
- const std::string& client_guid,
diff --git a/chromium/patches/patch-components_embedder__support_user__agent__utils.cc b/chromium/patches/patch-components_embedder__support_user__agent__utils.cc
new file mode 100644
index 0000000000..26fd68c48e
--- /dev/null
+++ b/chromium/patches/patch-components_embedder__support_user__agent__utils.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/embedder_support/user_agent_utils.cc.orig 2024-07-24 02:44:33.940520300 +0000
++++ components/embedder_support/user_agent_utils.cc
+@@ -445,6 +445,9 @@ std::string GetPlatformForUAMetadata() {
+ # else
+ return "Chromium OS";
+ # endif
++#elif BUILDFLAG(IS_BSD)
++ // The internet is weird...
++ return "Linux";
+ #else
+ return std::string(version_info::GetOSType());
+ #endif
diff --git a/chromium/patches/patch-components_embedder__support_user__agent__utils__unittest.cc b/chromium/patches/patch-components_embedder__support_user__agent__utils__unittest.cc
new file mode 100644
index 0000000000..c33b2bac7b
--- /dev/null
+++ b/chromium/patches/patch-components_embedder__support_user__agent__utils__unittest.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/embedder_support/user_agent_utils_unittest.cc.orig 2024-07-24 02:44:33.940520300 +0000
++++ components/embedder_support/user_agent_utils_unittest.cc
+@@ -71,7 +71,7 @@ const char kDesktop[] =
+ "X11; CrOS x86_64 14541.0.0"
+ #elif BUILDFLAG(IS_FUCHSIA)
+ "Fuchsia"
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ "X11; Linux x86_64"
+ #elif BUILDFLAG(IS_MAC)
+ "Macintosh; Intel Mac OS X 10_15_7"
+@@ -171,7 +171,7 @@ void CheckUserAgentStringOrdering(bool m
+ ASSERT_EQ("CrOS", pieces[0]);
+ ASSERT_EQ("x86_64", pieces[1]);
+ ASSERT_EQ("14541.0.0", pieces[2]);
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Post-UA Reduction there is a single <unifiedPlatform> value for Linux:
+ // X11; Linux x86_64
+ ASSERT_EQ(2u, pieces.size());
+@@ -727,7 +727,7 @@ TEST_F(UserAgentUtilsTest, UserAgentMeta
+ #endif
+ #elif BUILDFLAG(IS_ANDROID)
+ EXPECT_EQ(metadata.platform, "Android");
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ EXPECT_EQ(metadata.platform, "Linux");
+ #elif BUILDFLAG(IS_FREEBSD)
+ EXPECT_EQ(metadata.platform, "FreeBSD");
diff --git a/chromium/patches/patch-components_enterprise_watermarking_watermark.cc b/chromium/patches/patch-components_enterprise_watermarking_watermark.cc
new file mode 100644
index 0000000000..448d7737ee
--- /dev/null
+++ b/chromium/patches/patch-components_enterprise_watermarking_watermark.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/enterprise/watermarking/watermark.cc.orig 2024-07-24 02:44:33.956521700 +0000
++++ components/enterprise/watermarking/watermark.cc
+@@ -23,7 +23,7 @@ gfx::Font WatermarkFont() {
+ "Segoe UI",
+ #elif BUILDFLAG(IS_MAC)
+ "SF Pro Text",
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ "Ubuntu",
+ #elif BUILDFLAG(IS_CHROMEOS)
+ "Google Sans",
+@@ -34,7 +34,7 @@ gfx::Font WatermarkFont() {
+ }
+
+ gfx::Font::Weight WatermarkFontWeight() {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return gfx::Font::Weight::SEMIBOLD;
+ #else
+ return gfx::Font::Weight::MEDIUM;
diff --git a/chromium/patches/patch-components_exo_BUILD.gn b/chromium/patches/patch-components_exo_BUILD.gn
deleted file mode 100644
index fc574e076f..0000000000
--- a/chromium/patches/patch-components_exo_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/exo/BUILD.gn.orig 2020-07-15 18:56:46.000000000 +0000
-+++ components/exo/BUILD.gn
-@@ -296,7 +296,7 @@ test("exo_unittests") {
-
- data_deps = []
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- deps += [ "//components/exo/wayland:unit_tests" ]
- }
-
diff --git a/chromium/patches/patch-components_eye__dropper_eye__dropper__view.cc b/chromium/patches/patch-components_eye__dropper_eye__dropper__view.cc
new file mode 100644
index 0000000000..b7ba18f67a
--- /dev/null
+++ b/chromium/patches/patch-components_eye__dropper_eye__dropper__view.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/eye_dropper/eye_dropper_view.cc.orig 2024-07-24 02:44:34.008526800 +0000
++++ components/eye_dropper/eye_dropper_view.cc
+@@ -202,7 +202,7 @@ EyeDropperView::EyeDropperView(gfx::Nati
+ // EyeDropper/WidgetDelegate.
+ set_owned_by_client();
+ SetPreferredSize(GetSize());
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Use TYPE_MENU for Linux to ensure that the eye dropper view is displayed
+ // above the color picker.
+ views::Widget::InitParams params(
diff --git a/chromium/patches/patch-components_feature__engagement_public_event__constants.cc b/chromium/patches/patch-components_feature__engagement_public_event__constants.cc
index 6b6e178f14..7b0d11318d 100644
--- a/chromium/patches/patch-components_feature__engagement_public_event__constants.cc
+++ b/chromium/patches/patch-components_feature__engagement_public_event__constants.cc
@@ -1,20 +1,17 @@
$NetBSD$
---- components/feature_engagement/public/event_constants.cc.orig 2020-07-08 21:40:39.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/feature_engagement/public/event_constants.cc.orig 2024-07-24 02:44:34.032529000 +0000
+++ components/feature_engagement/public/event_constants.cc
-@@ -12,13 +12,13 @@ namespace feature_engagement {
+@@ -11,7 +11,7 @@ namespace feature_engagement {
namespace events {
- #if defined(OS_IOS) || defined(OS_WIN) || defined(OS_MACOSX) || \
-- defined(OS_LINUX) || defined(OS_CHROMEOS)
-+ defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
const char kNewTabOpened[] = "new_tab_opened";
- #endif // defined(OS_IOS) || defined(OS_WIN) || defined(OS_MACOSX) ||
- // defined(OS_LINUX) || defined(OS_CHROMEOS)
-
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
-- defined(OS_CHROMEOS)
-+ defined(OS_CHROMEOS) || defined(OS_BSD)
const char kSixthTabOpened[] = "sixth_tab_opened";
const char kTabGroupCreated[] = "tab_group_created";
-
diff --git a/chromium/patches/patch-components_feature__engagement_public_event__constants.h b/chromium/patches/patch-components_feature__engagement_public_event__constants.h
index b285538645..5a743ff66a 100644
--- a/chromium/patches/patch-components_feature__engagement_public_event__constants.h
+++ b/chromium/patches/patch-components_feature__engagement_public_event__constants.h
@@ -1,22 +1,17 @@
$NetBSD$
---- components/feature_engagement/public/event_constants.h.orig 2020-07-08 21:40:39.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/feature_engagement/public/event_constants.h.orig 2024-07-24 02:44:34.032529000 +0000
+++ components/feature_engagement/public/event_constants.h
@@ -14,7 +14,7 @@ namespace events {
- // Desktop and IOS.
- #if defined(OS_IOS) || defined(OS_WIN) || defined(OS_MACOSX) || \
-- defined(OS_LINUX) || defined(OS_CHROMEOS)
-+ defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+ // Desktop
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
// The user has explicitly opened a new tab via an entry point from inside of
// Chrome.
extern const char kNewTabOpened[];
-@@ -23,7 +23,7 @@ extern const char kNewTabOpened[];
-
- // Desktop
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
-- defined(OS_CHROMEOS)
-+ defined(OS_CHROMEOS) || defined(OS_BSD)
- // A new tab was opened when 5 (or more) tabs were already open.
- extern const char kSixthTabOpened[];
- // The user made a new tab group.
diff --git a/chromium/patches/patch-components_feature__engagement_public_feature__configurations.cc b/chromium/patches/patch-components_feature__engagement_public_feature__configurations.cc
new file mode 100644
index 0000000000..242fc5200d
--- /dev/null
+++ b/chromium/patches/patch-components_feature__engagement_public_feature__configurations.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/feature_engagement/public/feature_configurations.cc.orig 2024-07-24 02:44:34.036529500 +0000
++++ components/feature_engagement/public/feature_configurations.cc
+@@ -99,7 +99,7 @@ std::optional<FeatureConfig> CreateNewUs
+
+ std::optional<FeatureConfig> GetClientSideFeatureConfig(
+ const base::Feature* feature) {
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+
+ // The IPH bubble for link capturing has a trigger set to ANY so that it
+ // always shows up. The per app specific guardrails are independently stored
+@@ -118,7 +118,7 @@ std::optional<FeatureConfig> GetClientSi
+
+ #endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ if (kIPHPasswordsAccountStorageFeature.name == feature->name) {
+ std::optional<FeatureConfig> config = FeatureConfig();
+ config->valid = true;
+@@ -1607,7 +1607,7 @@ std::optional<FeatureConfig> GetClientSi
+
+ #endif // BUILDFLAG(IS_ANDROID)
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || \
+ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
+
+ if (kIPHAutofillCreditCardBenefitFeature.name == feature->name) {
diff --git a/chromium/patches/patch-components_feature__engagement_public_feature__constants.cc b/chromium/patches/patch-components_feature__engagement_public_feature__constants.cc
index d8beba75f6..40cf63757d 100644
--- a/chromium/patches/patch-components_feature__engagement_public_feature__constants.cc
+++ b/chromium/patches/patch-components_feature__engagement_public_feature__constants.cc
@@ -1,13 +1,36 @@
$NetBSD$
---- components/feature_engagement/public/feature_constants.cc.orig 2020-07-08 21:40:39.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/feature_engagement/public/feature_constants.cc.orig 2024-07-24 02:44:34.036529500 +0000
+++ components/feature_engagement/public/feature_constants.cc
-@@ -15,7 +15,7 @@ const base::Feature kIPHDummyFeature{"IP
- base::FEATURE_DISABLED_BY_DEFAULT};
+@@ -18,7 +18,7 @@ BASE_FEATURE(kIPHDemoMode, "IPH_DemoMode
+ BASE_FEATURE(kIPHDummyFeature, "IPH_Dummy", base::FEATURE_DISABLED_BY_DEFAULT);
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ BASE_FEATURE(kEsbDownloadRowPromoFeature,
+ "EsbDownloadRowPromo",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+@@ -626,7 +626,8 @@ BASE_FEATURE(kDefaultBrowserTriggerCrite
+ #endif // BUILDFLAG(IS_IOS)
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || \
++ BUILDFLAG(IS_BSD)
+ BASE_FEATURE(kIPHAutofillCreditCardBenefitFeature,
+ "IPH_AutofillCreditCardBenefit",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+@@ -757,7 +758,7 @@ BASE_FEATURE(kIPHScalableIphGamingFeatur
+ base::FEATURE_DISABLED_BY_DEFAULT);
+ #endif
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
-- defined(OS_CHROMEOS)
-+ defined(OS_CHROMEOS) || defined(OS_BSD)
- const base::Feature kIPHDesktopTabGroupsNewGroupFeature{
- "IPH_DesktopTabGroupsNewGroup", base::FEATURE_DISABLED_BY_DEFAULT};
- const base::Feature kIPHFocusModeFeature{"IPH_FocusMode",
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // This can be enabled by default, as the DesktopPWAsLinkCapturing
+ // flag is needed for the IPH linked to this feature to work, and
+ // use-cases to show the IPH are guarded by that flag.
diff --git a/chromium/patches/patch-components_feature__engagement_public_feature__constants.h b/chromium/patches/patch-components_feature__engagement_public_feature__constants.h
index ff437d0c12..48f7d3a961 100644
--- a/chromium/patches/patch-components_feature__engagement_public_feature__constants.h
+++ b/chromium/patches/patch-components_feature__engagement_public_feature__constants.h
@@ -1,13 +1,36 @@
$NetBSD$
---- components/feature_engagement/public/feature_constants.h.orig 2020-07-08 21:40:39.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/feature_engagement/public/feature_constants.h.orig 2024-07-24 02:44:34.036529500 +0000
+++ components/feature_engagement/public/feature_constants.h
-@@ -18,7 +18,7 @@ extern const base::Feature kIPHDemoMode;
- extern const base::Feature kIPHDummyFeature;
-
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
-- defined(OS_CHROMEOS)
-+ defined(OS_CHROMEOS) || defined(OS_BSD)
- extern const base::Feature kIPHDesktopTabGroupsNewGroupFeature;
- extern const base::Feature kIPHFocusModeFeature;
- extern const base::Feature kIPHGlobalMediaControlsFeature;
+@@ -20,7 +20,7 @@ BASE_DECLARE_FEATURE(kIPHDemoMode);
+ BASE_DECLARE_FEATURE(kIPHDummyFeature);
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ BASE_DECLARE_FEATURE(kEsbDownloadRowPromoFeature);
+ BASE_DECLARE_FEATURE(kIPHBatterySaverModeFeature);
+ BASE_DECLARE_FEATURE(kIPHCompanionSidePanelFeature);
+@@ -259,7 +259,8 @@ BASE_DECLARE_FEATURE(kDefaultBrowserTrig
+ #endif // BUILDFLAG(IS_IOS)
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || \
++ BUILDFLAG(IS_BSD)
+ BASE_DECLARE_FEATURE(kIPHAutofillCreditCardBenefitFeature);
+ BASE_DECLARE_FEATURE(kIPHAutofillExternalAccountProfileSuggestionFeature);
+ BASE_DECLARE_FEATURE(kIPHAutofillManualFallbackFeature);
+@@ -308,7 +309,7 @@ BASE_DECLARE_FEATURE(kIPHScalableIphHelp
+ BASE_DECLARE_FEATURE(kIPHScalableIphGamingFeature);
+ #endif
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ BASE_DECLARE_FEATURE(kIPHDesktopPWAsLinkCapturingLaunch);
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+
diff --git a/chromium/patches/patch-components_feature__engagement_public_feature__list.cc b/chromium/patches/patch-components_feature__engagement_public_feature__list.cc
index e5a1dce049..ccb583ad5c 100644
--- a/chromium/patches/patch-components_feature__engagement_public_feature__list.cc
+++ b/chromium/patches/patch-components_feature__engagement_public_feature__list.cc
@@ -1,13 +1,36 @@
$NetBSD$
---- components/feature_engagement/public/feature_list.cc.orig 2020-07-08 21:40:39.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/feature_engagement/public/feature_list.cc.orig 2024-07-24 02:44:34.036529500 +0000
+++ components/feature_engagement/public/feature_list.cc
-@@ -62,7 +62,7 @@ const base::Feature* const kAllFeatures[
- &kIPHBadgedTranslateManualTriggerFeature,
- #endif // defined(OS_IOS)
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
-- defined(OS_CHROMEOS)
-+ defined(OS_CHROMEOS) || defined(OS_BSD)
- &kIPHDesktopTabGroupsNewGroupFeature,
- &kIPHFocusModeFeature,
- &kIPHGlobalMediaControlsFeature,
+@@ -152,7 +152,7 @@ const base::Feature* const kAllFeatures[
+ &kIPHiOSSavedTabGroupClosed,
+ #endif // BUILDFLAG(IS_IOS)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ &kEsbDownloadRowPromoFeature,
+ &kIPHBatterySaverModeFeature,
+ &kIPHCompanionSidePanelFeature,
+@@ -218,7 +218,8 @@ const base::Feature* const kAllFeatures[
+ // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || \
++ BUILDFLAG(IS_BSD)
+ &kIPHAutofillCreditCardBenefitFeature,
+ &kIPHAutofillExternalAccountProfileSuggestionFeature,
+ &kIPHAutofillManualFallbackFeature,
+@@ -267,7 +268,7 @@ const base::Feature* const kAllFeatures[
+ &kIPHScalableIphGamingFeature,
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH)
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ &kIPHDesktopPWAsLinkCapturingLaunch,
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+
diff --git a/chromium/patches/patch-components_feature__engagement_public_feature__list.h b/chromium/patches/patch-components_feature__engagement_public_feature__list.h
index 9e037600df..fedd055e5c 100644
--- a/chromium/patches/patch-components_feature__engagement_public_feature__list.h
+++ b/chromium/patches/patch-components_feature__engagement_public_feature__list.h
@@ -1,22 +1,64 @@
$NetBSD$
---- components/feature_engagement/public/feature_list.h.orig 2020-07-08 21:40:39.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/feature_engagement/public/feature_list.h.orig 2024-07-24 02:44:34.036529500 +0000
+++ components/feature_engagement/public/feature_list.h
-@@ -116,7 +116,7 @@ DEFINE_VARIATION_PARAM(kIPHBadgedTransla
- #endif // defined(OS_IOS)
+@@ -273,7 +273,7 @@ DEFINE_VARIATION_PARAM(kIPHiOSSavedTabGr
+ #endif // BUILDFLAG(IS_IOS)
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ DEFINE_VARIATION_PARAM(kEsbDownloadRowPromoFeature, "EsbDownloadRowPromo");
+ DEFINE_VARIATION_PARAM(kIPHBatterySaverModeFeature, "IPH_BatterySaverMode");
+ DEFINE_VARIATION_PARAM(kIPHCompanionSidePanelFeature, "IPH_CompanionSidePanel");
+@@ -383,7 +383,8 @@ DEFINE_VARIATION_PARAM(kIPHTabGroupsSave
+ // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || \
++ BUILDFLAG(IS_BSD)
+ DEFINE_VARIATION_PARAM(kIPHAutofillCreditCardBenefitFeature,
+ "IPH_AutofillCreditCardBenefit");
+ DEFINE_VARIATION_PARAM(kIPHAutofillExternalAccountProfileSuggestionFeature,
+@@ -470,7 +471,7 @@ DEFINE_VARIATION_PARAM(kIPHScalableIphHe
+ DEFINE_VARIATION_PARAM(kIPHScalableIphGamingFeature, "IPH_ScalableIphGaming");
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH)
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ DEFINE_VARIATION_PARAM(kIPHDesktopPWAsLinkCapturingLaunch,
+ "IPH_DesktopPWAsLinkCapturingLaunch");
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+@@ -626,7 +627,7 @@ constexpr flags_ui::FeatureEntry::Featur
+ VARIATION_ENTRY(kIPHiOSOverflowMenuCustomizationFeature),
+ VARIATION_ENTRY(kIPHiOSSavedTabGroupClosed),
+ #elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ VARIATION_ENTRY(kIPHBatterySaverModeFeature),
+ VARIATION_ENTRY(kIPHCompanionSidePanelFeature),
+ VARIATION_ENTRY(kIPHCompanionSidePanelRegionSearchFeature),
+@@ -686,7 +687,8 @@ constexpr flags_ui::FeatureEntry::Featur
+ // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || \
++ BUILDFLAG(IS_BSD)
+ VARIATION_ENTRY(kIPHAutofillCreditCardBenefitFeature),
+ VARIATION_ENTRY(kIPHAutofillExternalAccountProfileSuggestionFeature),
+ VARIATION_ENTRY(kIPHAutofillManualFallbackFeature),
+@@ -735,7 +737,7 @@ constexpr flags_ui::FeatureEntry::Featur
+ VARIATION_ENTRY(kIPHScalableIphGamingFeature),
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH)
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ VARIATION_ENTRY(kIPHDesktopPWAsLinkCapturingLaunch),
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
-- defined(OS_CHROMEOS)
-+ defined(OS_CHROMEOS) || defined(OS_BSD)
- DEFINE_VARIATION_PARAM(kIPHDesktopTabGroupsNewGroupFeature,
- "IPH_DesktopTabGroupsNewGroup");
- DEFINE_VARIATION_PARAM(kIPHFocusModeFeature, "IPH_FocusMode");
-@@ -184,7 +184,7 @@ constexpr flags_ui::FeatureEntry::Featur
- VARIATION_ENTRY(kIPHBadgedReadingListFeature),
- VARIATION_ENTRY(kIPHBadgedTranslateManualTriggerFeature),
- #elif defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
-- defined(OS_CHROMEOS)
-+ defined(OS_CHROMEOS) || defined(OS_BSD)
- VARIATION_ENTRY(kIPHDesktopTabGroupsNewGroupFeature),
- VARIATION_ENTRY(kIPHFocusModeFeature),
- VARIATION_ENTRY(kIPHGlobalMediaControls),
diff --git a/chromium/patches/patch-components_feed_core_proto_v2_wire_version.proto b/chromium/patches/patch-components_feed_core_proto_v2_wire_version.proto
new file mode 100644
index 0000000000..f3e5c8b575
--- /dev/null
+++ b/chromium/patches/patch-components_feed_core_proto_v2_wire_version.proto
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/feed/core/proto/v2/wire/version.proto.orig 2024-07-24 02:44:34.040530000 +0000
++++ components/feed/core/proto/v2/wire/version.proto
+@@ -25,8 +25,8 @@ message Version {
+ BETA = 3;
+ RELEASE = 4;
+ }
+- optional int32 major = 1;
+- optional int32 minor = 2;
++ optional int32 gmajor = 1;
++ optional int32 gminor = 2;
+ optional int32 build = 3;
+ optional int32 revision = 4;
+ optional Architecture architecture = 5;
diff --git a/chromium/patches/patch-components_feed_core_v2_feed__network__impl__unittest.cc b/chromium/patches/patch-components_feed_core_v2_feed__network__impl__unittest.cc
new file mode 100644
index 0000000000..5acd9116b7
--- /dev/null
+++ b/chromium/patches/patch-components_feed_core_v2_feed__network__impl__unittest.cc
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/feed/core/v2/feed_network_impl_unittest.cc.orig 2024-07-24 02:44:34.044530400 +0000
++++ components/feed/core/v2/feed_network_impl_unittest.cc
+@@ -753,8 +753,8 @@ TEST_F(FeedNetworkTest, SendApiRequest_D
+
+ EXPECT_EQ(feedwire::ClientInfo::CHROME_ANDROID, client_info.app_type());
+ EXPECT_EQ(feedwire::Version::RELEASE, client_info.app_version().build_type());
+- EXPECT_EQ(1, client_info.app_version().major());
+- EXPECT_EQ(2, client_info.app_version().minor());
++ EXPECT_EQ(1, client_info.app_version().gmajor());
++ EXPECT_EQ(2, client_info.app_version().gminor());
+ EXPECT_EQ(3, client_info.app_version().build());
+ EXPECT_EQ(4, client_info.app_version().revision());
+ EXPECT_FALSE(client_info.chrome_client_info().start_surface());
diff --git a/chromium/patches/patch-components_feed_core_v2_proto__util.cc b/chromium/patches/patch-components_feed_core_v2_proto__util.cc
new file mode 100644
index 0000000000..0c29f71da3
--- /dev/null
+++ b/chromium/patches/patch-components_feed_core_v2_proto__util.cc
@@ -0,0 +1,30 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/feed/core/v2/proto_util.cc.orig 2024-07-24 02:44:34.048530800 +0000
++++ components/feed/core/v2/proto_util.cc
+@@ -93,8 +93,8 @@ feedwire::Version GetPlatformVersionMess
+
+ int32_t major, minor, revision;
+ base::SysInfo::OperatingSystemVersionNumbers(&major, &minor, &revision);
+- result.set_major(major);
+- result.set_minor(minor);
++ result.set_gmajor(major);
++ result.set_gminor(minor);
+ result.set_revision(revision);
+ #if BUILDFLAG(IS_ANDROID)
+ result.set_api_version(base::android::BuildInfo::GetInstance()->sdk_int());
+@@ -109,8 +109,8 @@ feedwire::Version GetAppVersionMessage(c
+ // Chrome's version is in the format: MAJOR,MINOR,BUILD,PATCH.
+ const std::vector<uint32_t>& numbers = chrome_info.version.components();
+ if (numbers.size() > 3) {
+- result.set_major(static_cast<int32_t>(numbers[0]));
+- result.set_minor(static_cast<int32_t>(numbers[1]));
++ result.set_gmajor(static_cast<int32_t>(numbers[0]));
++ result.set_gminor(static_cast<int32_t>(numbers[1]));
+ result.set_build(static_cast<int32_t>(numbers[2]));
+ result.set_revision(static_cast<int32_t>(numbers[3]));
+ }
diff --git a/chromium/patches/patch-components_feed_core_v2_proto__util__unittest.cc b/chromium/patches/patch-components_feed_core_v2_proto__util__unittest.cc
new file mode 100644
index 0000000000..de6e951ec2
--- /dev/null
+++ b/chromium/patches/patch-components_feed_core_v2_proto__util__unittest.cc
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/feed/core/v2/proto_util_unittest.cc.orig 2024-07-24 02:44:34.048530800 +0000
++++ components/feed/core/v2/proto_util_unittest.cc
+@@ -44,8 +44,8 @@ TEST(ProtoUtilTest, CreateClientInfo) {
+ feedwire::ClientInfo result = CreateClientInfo(request_metadata);
+ EXPECT_EQ(feedwire::ClientInfo::CHROME_ANDROID, result.app_type());
+ EXPECT_EQ(feedwire::Version::RELEASE, result.app_version().build_type());
+- EXPECT_EQ(1, result.app_version().major());
+- EXPECT_EQ(2, result.app_version().minor());
++ EXPECT_EQ(1, result.app_version().gmajor());
++ EXPECT_EQ(2, result.app_version().gminor());
+ EXPECT_EQ(3, result.app_version().build());
+ EXPECT_EQ(4, result.app_version().revision());
+ EXPECT_FALSE(result.chrome_client_info().start_surface());
diff --git a/chromium/patches/patch-components_feed_core_v2_test_proto__printer.cc b/chromium/patches/patch-components_feed_core_v2_test_proto__printer.cc
new file mode 100644
index 0000000000..e04359da9a
--- /dev/null
+++ b/chromium/patches/patch-components_feed_core_v2_test_proto__printer.cc
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/feed/core/v2/test/proto_printer.cc.orig 2024-07-24 02:44:34.056531400 +0000
++++ components/feed/core/v2/test/proto_printer.cc
+@@ -158,8 +158,8 @@ class TextProtoPrinter {
+ }
+ TextProtoPrinter& operator<<(const feedwire::Version& v) {
+ BeginMessage();
+- PRINT_FIELD(major);
+- PRINT_FIELD(minor);
++ PRINT_FIELD(gmajor);
++ PRINT_FIELD(gminor);
+ PRINT_FIELD(build);
+ PRINT_FIELD(revision);
+ PRINT_FIELD(architecture);
diff --git a/chromium/patches/patch-components_feedback_anonymizer__tool.cc b/chromium/patches/patch-components_feedback_anonymizer__tool.cc
deleted file mode 100644
index 709a6ff4e7..0000000000
--- a/chromium/patches/patch-components_feedback_anonymizer__tool.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/feedback/anonymizer_tool.cc.orig 2020-07-08 21:40:39.000000000 +0000
-+++ components/feedback/anonymizer_tool.cc
-@@ -15,7 +15,7 @@
- #include "base/threading/thread_restrictions.h"
- #include "content/public/browser/browser_thread.h"
- #include "net/base/ip_address.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
-
- using re2::RE2;
-
diff --git a/chromium/patches/patch-components_flags__ui_flags__state.cc b/chromium/patches/patch-components_flags__ui_flags__state.cc
index f616a098f8..209f6ffa62 100644
--- a/chromium/patches/patch-components_flags__ui_flags__state.cc
+++ b/chromium/patches/patch-components_flags__ui_flags__state.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- components/flags_ui/flags_state.cc.orig 2020-07-08 21:40:39.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/flags_ui/flags_state.cc.orig 2024-07-24 02:44:34.072533100 +0000
+++ components/flags_ui/flags_state.cc
-@@ -684,7 +684,7 @@ int FlagsState::GetCurrentPlatform() {
- return kOsWin;
- #elif defined(OS_CHROMEOS) // Needs to be before the OS_LINUX check.
+@@ -749,7 +749,7 @@ unsigned short FlagsState::GetCurrentPla
return kOsCrOS;
--#elif defined(OS_LINUX) || defined(OS_OPENBSD)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+ #elif BUILDFLAG(IS_CHROMEOS_LACROS)
+ return kOsLacros;
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_OPENBSD)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
return kOsLinux;
- #elif defined(OS_ANDROID)
+ #elif BUILDFLAG(IS_ANDROID)
return kOsAndroid;
diff --git a/chromium/patches/patch-components_gcm__driver_gcm__client.h b/chromium/patches/patch-components_gcm__driver_gcm__client.h
deleted file mode 100644
index aff0d79bb0..0000000000
--- a/chromium/patches/patch-components_gcm__driver_gcm__client.h
+++ /dev/null
@@ -1,12 +0,0 @@
-$NetBSD$
-
---- components/gcm_driver/gcm_client.h.orig 2020-07-08 21:40:39.000000000 +0000
-+++ components/gcm_driver/gcm_client.h
-@@ -87,6 +87,7 @@ class GCMClient {
- PLATFORM_CROS,
- PLATFORM_IOS,
- PLATFORM_ANDROID,
-+ PLATFORM_BSD,
- PLATFORM_UNSPECIFIED
- };
-
diff --git a/chromium/patches/patch-components_gcm__driver_gcm__client__impl.cc b/chromium/patches/patch-components_gcm__driver_gcm__client__impl.cc
deleted file mode 100644
index de83c34375..0000000000
--- a/chromium/patches/patch-components_gcm__driver_gcm__client__impl.cc
+++ /dev/null
@@ -1,14 +0,0 @@
-$NetBSD$
-
---- components/gcm_driver/gcm_client_impl.cc.orig 2020-07-08 21:40:39.000000000 +0000
-+++ components/gcm_driver/gcm_client_impl.cc
-@@ -135,6 +135,9 @@ void ToCheckinProtoVersion(
- case GCMClient::PLATFORM_CROS:
- platform = checkin_proto::ChromeBuildProto_Platform_PLATFORM_CROS;
- break;
-+ case GCMClient::PLATFORM_BSD:
-+ platform = checkin_proto::ChromeBuildProto_Platform_PLATFORM_LINUX;
-+ break;
- case GCMClient::PLATFORM_UNSPECIFIED:
- // For unknown platform, return as LINUX.
- platform = checkin_proto::ChromeBuildProto_Platform_PLATFORM_LINUX;
diff --git a/chromium/patches/patch-components_gwp__asan_BUILD.gn b/chromium/patches/patch-components_gwp__asan_BUILD.gn
index f25c346f22..e9f88bcd99 100644
--- a/chromium/patches/patch-components_gwp__asan_BUILD.gn
+++ b/chromium/patches/patch-components_gwp__asan_BUILD.gn
@@ -1,13 +1,17 @@
$NetBSD$
---- components/gwp_asan/BUILD.gn.orig 2020-07-15 18:55:54.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/gwp_asan/BUILD.gn.orig 2024-07-24 02:44:34.104536000 +0000
+++ components/gwp_asan/BUILD.gn
-@@ -14,7 +14,7 @@ test("gwp_asan_unittests") {
- "//components/gwp_asan/common:unit_tests",
+@@ -15,7 +15,7 @@ test("gwp_asan_unittests") {
"//testing/gtest",
+ "//third_party/boringssl",
]
-- if (is_win || is_mac || is_linux || is_android) {
-+ if (is_win || is_mac || is_linux || is_android || is_bsd) {
+- if (is_win || is_mac || is_linux || is_chromeos || is_android) {
++ if ((is_win || is_mac || is_linux || is_chromeos || is_android) && !is_bsd) {
deps += [
"//components/gwp_asan/client:unit_tests",
"//components/gwp_asan/crash_handler:unit_tests",
diff --git a/chromium/patches/patch-components_gwp__asan_client_guarded__page__allocator__posix.cc b/chromium/patches/patch-components_gwp__asan_client_guarded__page__allocator__posix.cc
new file mode 100644
index 0000000000..b0906909c4
--- /dev/null
+++ b/chromium/patches/patch-components_gwp__asan_client_guarded__page__allocator__posix.cc
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/gwp_asan/client/guarded_page_allocator_posix.cc.orig 2024-07-24 02:44:34.104536000 +0000
++++ components/gwp_asan/client/guarded_page_allocator_posix.cc
+@@ -35,8 +35,9 @@ void GuardedPageAllocator::MarkPageInacc
+ // mmap() a PROT_NONE page over the address to release it to the system, if
+ // we used mprotect() here the system would count pages in the quarantine
+ // against the RSS.
++ // MAP_ANONYMOUS requires the fd to be -1 on !linux
+ void* err = mmap(ptr, state_.page_size, PROT_NONE,
+- MAP_FIXED | MAP_ANONYMOUS | MAP_PRIVATE, 0, 0);
++ MAP_FIXED | MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
+ PCHECK(err == ptr) << "mmap";
+ }
+
diff --git a/chromium/patches/patch-components_gwp__asan_client_gwp__asan.cc b/chromium/patches/patch-components_gwp__asan_client_gwp__asan.cc
new file mode 100644
index 0000000000..0e0af0c347
--- /dev/null
+++ b/chromium/patches/patch-components_gwp__asan_client_gwp__asan.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/gwp_asan/client/gwp_asan.cc.orig 2024-07-24 02:44:34.104536000 +0000
++++ components/gwp_asan/client/gwp_asan.cc
+@@ -75,7 +75,7 @@ namespace {
+ // ProcessSamplingBoost is the multiplier to increase the
+ // ProcessSamplingProbability in scenarios where we want to perform additional
+ // testing (e.g., on canary/dev builds).
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ constexpr int kDefaultMaxAllocations = 50;
+ constexpr int kDefaultMaxMetadata = 210;
+ constexpr int kDefaultTotalPages = kCpuIs64Bit ? 2048 : kDefaultMaxMetadata * 2;
diff --git a/chromium/patches/patch-components_gwp__asan_client_gwp__asan__features.cc b/chromium/patches/patch-components_gwp__asan_client_gwp__asan__features.cc
new file mode 100644
index 0000000000..34190fee5d
--- /dev/null
+++ b/chromium/patches/patch-components_gwp__asan_client_gwp__asan__features.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/gwp_asan/client/gwp_asan_features.cc.orig 2024-07-24 02:44:34.104536000 +0000
++++ components/gwp_asan/client/gwp_asan_features.cc
+@@ -9,7 +9,7 @@
+ namespace gwp_asan::internal {
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || \
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) || \
+ (BUILDFLAG(IS_ANDROID) && defined(ARCH_CPU_64_BITS))
+ constexpr base::FeatureState kDefaultEnabled = base::FEATURE_ENABLED_BY_DEFAULT;
+ #else
diff --git a/chromium/patches/patch-components_gwp__asan_crash__handler_crash__analyzer.cc b/chromium/patches/patch-components_gwp__asan_crash__handler_crash__analyzer.cc
new file mode 100644
index 0000000000..f33169f445
--- /dev/null
+++ b/chromium/patches/patch-components_gwp__asan_crash__handler_crash__analyzer.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/gwp_asan/crash_handler/crash_analyzer.cc.orig 2024-07-24 02:44:34.108536500 +0000
++++ components/gwp_asan/crash_handler/crash_analyzer.cc
+@@ -30,7 +30,7 @@
+ #include "third_party/crashpad/crashpad/snapshot/process_snapshot.h"
+ #include "third_party/crashpad/crashpad/util/process/process_memory.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ #include <signal.h>
+ #elif BUILDFLAG(IS_APPLE)
+ #include <mach/exception_types.h>
+@@ -90,7 +90,7 @@ bool CrashAnalyzer::GetExceptionInfo(
+
+ crashpad::VMAddress CrashAnalyzer::GetAccessAddress(
+ const crashpad::ExceptionSnapshot& exception) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ if (exception.Exception() == SIGSEGV || exception.Exception() == SIGBUS)
+ return exception.ExceptionAddress();
+ #elif BUILDFLAG(IS_APPLE)
diff --git a/chromium/patches/patch-components_keyed__service_core_dependency__graph__unittest.cc b/chromium/patches/patch-components_keyed__service_core_dependency__graph__unittest.cc
deleted file mode 100644
index ff09386e3d..0000000000
--- a/chromium/patches/patch-components_keyed__service_core_dependency__graph__unittest.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/keyed_service/core/dependency_graph_unittest.cc.orig 2020-07-08 21:40:39.000000000 +0000
-+++ components/keyed_service/core/dependency_graph_unittest.cc
-@@ -9,7 +9,7 @@
- #include "components/keyed_service/core/dependency_graph.h"
- #include "components/keyed_service/core/dependency_node.h"
- #include "testing/gtest/include/gtest/gtest.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
-
- namespace {
-
diff --git a/chromium/patches/patch-components_live__caption_caption__util.cc b/chromium/patches/patch-components_live__caption_caption__util.cc
new file mode 100644
index 0000000000..394c6d76e0
--- /dev/null
+++ b/chromium/patches/patch-components_live__caption_caption__util.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/live_caption/caption_util.cc.orig 2024-07-24 02:44:34.216547000 +0000
++++ components/live_caption/caption_util.cc
+@@ -144,7 +144,7 @@ std::string GetCaptionSettingsUrl() {
+ return "chrome://os-settings/audioAndCaptions";
+ #endif // BUILDFLAG(IS_CHROMEOS)
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return "chrome://settings/captions";
+ #endif // BUILDFLAG(IS_LINUX)
+
diff --git a/chromium/patches/patch-components_live__caption_caption__util.h b/chromium/patches/patch-components_live__caption_caption__util.h
new file mode 100644
index 0000000000..971bcb1d83
--- /dev/null
+++ b/chromium/patches/patch-components_live__caption_caption__util.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/live_caption/caption_util.h.orig 2024-07-24 02:44:34.216547000 +0000
++++ components/live_caption/caption_util.h
+@@ -15,7 +15,7 @@ class PrefService;
+ namespace captions {
+
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || \
+- BUILDFLAG(IS_MAC)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ extern const char kCaptionSettingsUrl[];
+ #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ||
+ // BUILDFLAG(IS_MAC)
diff --git a/chromium/patches/patch-components_media__router_common_media__source.cc b/chromium/patches/patch-components_media__router_common_media__source.cc
new file mode 100644
index 0000000000..8ddd621c23
--- /dev/null
+++ b/chromium/patches/patch-components_media__router_common_media__source.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/media_router/common/media_source.cc.orig 2024-07-24 02:44:34.256550800 +0000
++++ components/media_router/common/media_source.cc
+@@ -57,7 +57,7 @@ bool IsSystemAudioCaptureSupported() {
+ if (!media::IsSystemLoopbackCaptureSupported()) {
+ return false;
+ }
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return base::FeatureList::IsEnabled(media::kPulseaudioLoopbackForCast);
+ #else
+ return true;
diff --git a/chromium/patches/patch-components_media__router_common_providers_cast_channel_cast__message__util.cc b/chromium/patches/patch-components_media__router_common_providers_cast_channel_cast__message__util.cc
new file mode 100644
index 0000000000..7865c97f84
--- /dev/null
+++ b/chromium/patches/patch-components_media__router_common_providers_cast_channel_cast__message__util.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/media_router/common/providers/cast/channel/cast_message_util.cc.orig 2024-07-24 02:44:34.264551600 +0000
++++ components/media_router/common/providers/cast/channel/cast_message_util.cc
+@@ -169,7 +169,7 @@ int GetVirtualConnectPlatformValue() {
+ return 4;
+ #elif BUILDFLAG(IS_CHROMEOS_ASH)
+ return 5;
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ return 6;
+ #else
+ return 0;
diff --git a/chromium/patches/patch-components_metrics_BUILD.gn b/chromium/patches/patch-components_metrics_BUILD.gn
deleted file mode 100644
index fa69248812..0000000000
--- a/chromium/patches/patch-components_metrics_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- components/metrics/BUILD.gn.orig 2020-06-25 09:31:27.000000000 +0000
-+++ components/metrics/BUILD.gn
-@@ -399,7 +405,7 @@ static_library("demographics_test_suppor
- ]
- }
-
--if (is_linux) {
-+if (is_linux || is_bsd) {
- static_library("serialization") {
- sources = [
- "serialization/metric_sample.cc",
-@@ -491,7 +497,7 @@ source_set("unit_tests") {
- ]
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [ "serialization/serialization_utils_unittest.cc" ]
- deps += [ ":serialization" ]
- }
diff --git a/chromium/patches/patch-components_metrics_drive__metrics__provider__linux.cc b/chromium/patches/patch-components_metrics_drive__metrics__provider__linux.cc
index fe7a0ed65b..fafe9f6f2b 100644
--- a/chromium/patches/patch-components_metrics_drive__metrics__provider__linux.cc
+++ b/chromium/patches/patch-components_metrics_drive__metrics__provider__linux.cc
@@ -1,12 +1,16 @@
$NetBSD$
---- components/metrics/drive_metrics_provider_linux.cc.orig 2020-07-08 21:40:39.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/metrics/drive_metrics_provider_linux.cc.orig 2024-07-24 02:44:34.288554000 +0000
+++ components/metrics/drive_metrics_provider_linux.cc
@@ -4,7 +4,13 @@
#include "components/metrics/drive_metrics_provider.h"
-+#if defined(OS_BSD)
++#if BUILDFLAG(IS_BSD)
+#include <sys/types.h>
+#define MAJOR(dev) major(dev)
+#define MINOR(dev) minor(dev)
diff --git a/chromium/patches/patch-components_metrics_metrics__log.cc b/chromium/patches/patch-components_metrics_metrics__log.cc
index 7889325937..40474a0380 100644
--- a/chromium/patches/patch-components_metrics_metrics__log.cc
+++ b/chromium/patches/patch-components_metrics_metrics__log.cc
@@ -1,13 +1,44 @@
$NetBSD$
---- components/metrics/metrics_log.cc.orig 2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/metrics/metrics_log.cc.orig 2024-07-24 02:44:34.292554400 +0000
+++ components/metrics/metrics_log.cc
-@@ -215,7 +215,7 @@ void MetricsLog::RecordCoreSystemProfile
+@@ -56,7 +56,7 @@
+ #include "base/win/current_module.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "base/environment.h"
+ #include "base/nix/xdg_util.h"
+ #endif
+@@ -146,7 +146,7 @@ void RecordCurrentTime(
+ }
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ metrics::SystemProfileProto::OS::XdgSessionType ToProtoSessionType(
+ base::nix::SessionType session_type) {
+ switch (session_type) {
+@@ -415,7 +415,7 @@ void MetricsLog::RecordCoreSystemProfile
// OperatingSystemVersion refers to the ChromeOS release version.
- #if defined(OS_CHROMEOS)
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
os->set_kernel_version(base::SysInfo::KernelVersion());
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
// Linux operating system version is copied over into kernel version to be
// consistent.
os->set_kernel_version(base::SysInfo::OperatingSystemVersion());
+@@ -432,7 +432,7 @@ void MetricsLog::RecordCoreSystemProfile
+ os->set_build_number(base::SysInfo::GetIOSBuildNumber());
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ std::unique_ptr<base::Environment> env = base::Environment::Create();
+ os->set_xdg_session_type(ToProtoSessionType(base::nix::GetSessionType(*env)));
+ os->set_xdg_current_desktop(
diff --git a/chromium/patches/patch-components_metrics_motherboard.cc b/chromium/patches/patch-components_metrics_motherboard.cc
new file mode 100644
index 0000000000..7edbc21361
--- /dev/null
+++ b/chromium/patches/patch-components_metrics_motherboard.cc
@@ -0,0 +1,16 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/metrics/motherboard.cc.orig 2024-07-24 02:44:34.300555200 +0000
++++ components/metrics/motherboard.cc
+@@ -1,6 +1,7 @@
+ // Copyright 2022 The Chromium Authors
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
++// CHECK
+
+ #include "components/metrics/motherboard.h"
+
diff --git a/chromium/patches/patch-components_metrics_system__memory__stats__recorder__linux.cc b/chromium/patches/patch-components_metrics_system__memory__stats__recorder__linux.cc
deleted file mode 100644
index 59a813398b..0000000000
--- a/chromium/patches/patch-components_metrics_system__memory__stats__recorder__linux.cc
+++ /dev/null
@@ -1,20 +0,0 @@
-$NetBSD$
-
---- components/metrics/system_memory_stats_recorder_linux.cc.orig 2020-07-08 21:40:39.000000000 +0000
-+++ components/metrics/system_memory_stats_recorder_linux.cc
-@@ -30,6 +30,7 @@ namespace metrics {
- UMA_HISTOGRAM_LINEAR(name, sample, 2500, 50)
-
- void RecordMemoryStats(RecordMemoryStatsType type) {
-+#if !defined(OS_BSD)
- base::SystemMemoryInfoKB memory;
- if (!base::GetSystemMemoryInfo(&memory))
- return;
-@@ -81,6 +82,7 @@ void RecordMemoryStats(RecordMemoryStats
- break;
- }
- }
-+#endif
- }
-
- } // namespace metrics
diff --git a/chromium/patches/patch-components_named__mojo__ipc__server_connection__info.h b/chromium/patches/patch-components_named__mojo__ipc__server_connection__info.h
new file mode 100644
index 0000000000..05248b7f00
--- /dev/null
+++ b/chromium/patches/patch-components_named__mojo__ipc__server_connection__info.h
@@ -0,0 +1,33 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/named_mojo_ipc_server/connection_info.h.orig 2024-07-24 02:44:34.340559000 +0000
++++ components/named_mojo_ipc_server/connection_info.h
+@@ -14,8 +14,14 @@
+ #include "base/win/scoped_handle.h"
+ #elif BUILDFLAG(IS_MAC)
+ #include <bsm/libbsm.h>
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include <sys/socket.h>
++#if defined(__NetBSD__)
++#include <sys/un.h>
++#define ucred unpcbid
++#define SO_PEERCRED LOCAL_PEEREID
++#define pid unp_pid
++#endif
+ #endif
+
+ namespace named_mojo_ipc_server {
+@@ -33,7 +39,7 @@ struct ConnectionInfo {
+ std::optional<base::win::ScopedHandle> impersonation_token{};
+ #elif BUILDFLAG(IS_MAC)
+ audit_token_t audit_token{};
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ ucred credentials{};
+ #endif
+ };
diff --git a/chromium/patches/patch-components_named__mojo__ipc__server_named__mojo__ipc__server__client__util.cc b/chromium/patches/patch-components_named__mojo__ipc__server_named__mojo__ipc__server__client__util.cc
new file mode 100644
index 0000000000..a9879ae2aa
--- /dev/null
+++ b/chromium/patches/patch-components_named__mojo__ipc__server_named__mojo__ipc__server__client__util.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/named_mojo_ipc_server/named_mojo_ipc_server_client_util.cc.orig 2024-07-24 02:44:34.340559000 +0000
++++ components/named_mojo_ipc_server/named_mojo_ipc_server_client_util.cc
+@@ -22,7 +22,7 @@ namespace named_mojo_ipc_server {
+ // static
+ mojo::PlatformChannelEndpoint ConnectToServer(
+ const mojo::NamedPlatformChannel::ServerName& server_name) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ return mojo::NamedPlatformChannel::ConnectToServer(server_name);
+ #elif BUILDFLAG(IS_MAC)
+ mojo::PlatformChannelEndpoint endpoint =
diff --git a/chromium/patches/patch-components_named__system__lock_lock.h b/chromium/patches/patch-components_named__system__lock_lock.h
new file mode 100644
index 0000000000..0bf56bffc2
--- /dev/null
+++ b/chromium/patches/patch-components_named__system__lock_lock.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/named_system_lock/lock.h.orig 2024-07-24 02:44:34.340559000 +0000
++++ components/named_system_lock/lock.h
+@@ -38,7 +38,7 @@ class ScopedLock {
+ // may acquire that lock. The lock name has different meanings per platform:
+ // Linux: A shared memory object name starting with `/`. E.g. `/MyApp.lock`.
+ // Mac: A bootstrap service name (see `man bootstrap_check_in`).
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ static std::unique_ptr<ScopedLock> Create(const std::string& name,
+ base::TimeDelta timeout);
+ #elif BUILDFLAG(IS_WIN)
diff --git a/chromium/patches/patch-components_neterror_resources_neterror.js b/chromium/patches/patch-components_neterror_resources_neterror.js
index b4b62ad154..911edb0faa 100644
--- a/chromium/patches/patch-components_neterror_resources_neterror.js
+++ b/chromium/patches/patch-components_neterror_resources_neterror.js
@@ -1,13 +1,17 @@
$NetBSD$
---- components/neterror/resources/neterror.js.orig 2020-07-08 21:40:39.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/neterror/resources/neterror.js.orig 2024-07-24 02:44:34.348559900 +0000
+++ components/neterror/resources/neterror.js
-@@ -204,7 +204,7 @@ function setUpCachedButton(buttonStrings
- }
+@@ -142,7 +142,7 @@ function detailsButtonClick() {
let primaryControlOnLeft = true;
--// <if expr="is_macosx or is_ios or is_linux or is_android">
-+// <if expr="is_macosx or is_ios or is_linux or is_android or is_bsd">
+ // clang-format off
+-// <if expr="is_macosx or is_ios or is_linux or is_chromeos or is_android">
++// <if expr="is_macosx or is_ios or is_posix or is_chromeos or is_android">
+ // clang-format on
primaryControlOnLeft = false;
// </if>
-
diff --git a/chromium/patches/patch-components_network__session__configurator_browser_network__session__configurator.cc b/chromium/patches/patch-components_network__session__configurator_browser_network__session__configurator.cc
index 0d522be706..a169f57708 100644
--- a/chromium/patches/patch-components_network__session__configurator_browser_network__session__configurator.cc
+++ b/chromium/patches/patch-components_network__session__configurator_browser_network__session__configurator.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- components/network_session_configurator/browser/network_session_configurator.cc.orig 2020-07-08 21:40:39.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/network_session_configurator/browser/network_session_configurator.cc.orig 2024-07-24 02:44:34.348559900 +0000
+++ components/network_session_configurator/browser/network_session_configurator.cc
-@@ -717,7 +717,7 @@ net::URLRequestContextBuilder::HttpCache
- }
- #endif // #if !defined(OS_ANDROID)
-
--#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+@@ -825,7 +825,7 @@ net::URLRequestContextBuilder::HttpCache
+ // backport, having it behave differently than in stable would be a bigger
+ // problem. TODO: Does this work in later macOS releases?
+ #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_MAC)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
return net::URLRequestContextBuilder::HttpCacheParams::DISK_SIMPLE;
#else
return net::URLRequestContextBuilder::HttpCacheParams::DISK_BLOCKFILE;
diff --git a/chromium/patches/patch-components_network__session__configurator_browser_network__session__configurator__unittest.cc b/chromium/patches/patch-components_network__session__configurator_browser_network__session__configurator__unittest.cc
new file mode 100644
index 0000000000..7b9a89fa1f
--- /dev/null
+++ b/chromium/patches/patch-components_network__session__configurator_browser_network__session__configurator__unittest.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/network_session_configurator/browser/network_session_configurator_unittest.cc.orig 2024-07-24 02:44:34.352560300 +0000
++++ components/network_session_configurator/browser/network_session_configurator_unittest.cc
+@@ -782,7 +782,7 @@ TEST_F(NetworkSessionConfiguratorTest, H
+
+ TEST_F(NetworkSessionConfiguratorTest, DefaultCacheBackend) {
+ #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_MAC)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ EXPECT_EQ(net::URLRequestContextBuilder::HttpCacheParams::DISK_SIMPLE,
+ ChooseCacheType());
+ #else
diff --git a/chromium/patches/patch-components_new__or__sad__tab__strings.grdp b/chromium/patches/patch-components_new__or__sad__tab__strings.grdp
deleted file mode 100644
index 2eb99d9818..0000000000
--- a/chromium/patches/patch-components_new__or__sad__tab__strings.grdp
+++ /dev/null
@@ -1,49 +0,0 @@
-$NetBSD$
-
---- components/new_or_sad_tab_strings.grdp.orig 2020-07-08 21:40:39.000000000 +0000
-+++ components/new_or_sad_tab_strings.grdp
-@@ -51,7 +51,7 @@
- Open page in a new Incognito window (⇧⌘N)
- </message>
- </if>
-- <if expr="is_win or is_linux or chromeos">
-+ <if expr="is_win or is_posix or chromeos">
- <message name="IDS_SAD_TAB_RELOAD_INCOGNITO" desc="One of the bullet points displayed on the web page if a reload failed to fix the issue, advising the user to open the web page in Chrome's Incognito mode.">
- Open page in a new Incognito window (Ctrl-Shift-N)
- </message>
-@@ -66,7 +66,7 @@
- Close other tabs or apps
- </message>
- </if>
-- <if expr="is_linux and not chromeos">
-+ <if expr="is_posix and not chromeos">
- <message name="IDS_SAD_TAB_RELOAD_CLOSE_TABS" desc="One of the bullet points displayed on the web page if a reload failed to fix the issue, advising the user to close other Chrome tabs or programs running on their computer.">
- Close other tabs or programs
- </message>
-@@ -76,7 +76,7 @@
- Close other apps
- </message>
- </if>
-- <if expr="is_linux and not chromeos">
-+ <if expr="is_posix and not chromeos">
- <message name="IDS_SAD_TAB_RELOAD_CLOSE_NOTABS" desc="One of the bullet points displayed on the web page if a reload failed to fix the issue, advising the user to close other programs running on their computer (Linux).">
- Close other programs
- </message>
-@@ -91,7 +91,7 @@
- Restart Chromium
- </message>
- </if>
-- <if expr="is_win or is_linux or is_macosx or chromeos">
-+ <if expr="is_win or is_posix or is_macosx or chromeos">
- <message name="IDS_SAD_TAB_RELOAD_RESTART_DEVICE" desc="One of the bullet points displayed on the web page if a reload failed to fix the issue, advising the user to restart their computer.">
- Restart your computer
- </message>
-@@ -106,7 +106,7 @@
- Learn more
- </message>
- </if>
-- <if expr="is_win or is_linux or is_macosx or chromeos">
-+ <if expr="is_win or is_posix or is_macosx or chromeos">
- <message name="IDS_SAD_TAB_ERROR_CODE" desc="The message displayed on the crashed web page indicating the type of the crash.">
- Error code: <ph name="ERROR_CODE">$1<ex>STATUS_ACCESS_VIOLATION</ex></ph>
- </message>
diff --git a/chromium/patches/patch-components_optimization__guide_core_optimization__guide__util.cc b/chromium/patches/patch-components_optimization__guide_core_optimization__guide__util.cc
new file mode 100644
index 0000000000..50562a2838
--- /dev/null
+++ b/chromium/patches/patch-components_optimization__guide_core_optimization__guide__util.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/optimization_guide/core/optimization_guide_util.cc.orig 2024-07-24 02:44:34.488573300 +0000
++++ components/optimization_guide/core/optimization_guide_util.cc
+@@ -35,7 +35,7 @@ optimization_guide::proto::Platform GetP
+ return optimization_guide::proto::PLATFORM_CHROMEOS;
+ #elif BUILDFLAG(IS_ANDROID)
+ return optimization_guide::proto::PLATFORM_ANDROID;
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return optimization_guide::proto::PLATFORM_LINUX;
+ #else
+ return optimization_guide::proto::PLATFORM_UNDEFINED;
diff --git a/chromium/patches/patch-components_os__crypt_os__crypt.h b/chromium/patches/patch-components_os__crypt_os__crypt.h
deleted file mode 100644
index f0b7ae29a7..0000000000
--- a/chromium/patches/patch-components_os__crypt_os__crypt.h
+++ /dev/null
@@ -1,38 +0,0 @@
-$NetBSD$
-
---- components/os_crypt/os_crypt.h.orig 2020-07-08 21:40:40.000000000 +0000
-+++ components/os_crypt/os_crypt.h
-@@ -15,7 +15,7 @@
- #include "base/strings/string16.h"
- #include "build/build_config.h"
-
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- class KeyStorageLinux;
- #endif // defined(OS_LINUX) && !defined(OS_CHROMEOS)
-
-@@ -34,13 +34,13 @@ struct Config;
- // true for Linux, if a password management tool is available.
- class OSCrypt {
- public:
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- // Set the configuration of OSCrypt.
- static COMPONENT_EXPORT(OS_CRYPT) void SetConfig(
- std::unique_ptr<os_crypt::Config> config);
- #endif // defined(OS_LINUX) && !defined(OS_CHROMEOS)
-
--#if defined(OS_MACOSX) || (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+#if defined(OS_MACOSX) || ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
- // On Linux returns true iff the real secret key (not hardcoded one) is
- // available. On MacOS returns true if Keychain is available (for mock
- // Keychain it returns true if not using locked Keychain, false if using
-@@ -131,7 +131,7 @@ class OSCrypt {
- DISALLOW_IMPLICIT_CONSTRUCTORS(OSCrypt);
- };
-
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- // For unit testing purposes, inject methods to be used.
- // |get_key_storage_mock| provides the desired |KeyStorage| implementation.
- // If the provider returns |nullptr|, a hardcoded password will be used.
diff --git a/chromium/patches/patch-components_os__crypt_os__crypt__unittest.cc b/chromium/patches/patch-components_os__crypt_os__crypt__unittest.cc
deleted file mode 100644
index a9d71a51f1..0000000000
--- a/chromium/patches/patch-components_os__crypt_os__crypt__unittest.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/os_crypt/os_crypt_unittest.cc.orig 2020-07-08 21:40:40.000000000 +0000
-+++ components/os_crypt/os_crypt_unittest.cc
-@@ -18,7 +18,7 @@
- #include "components/os_crypt/os_crypt_mocker.h"
- #include "testing/gtest/include/gtest/gtest.h"
-
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- #include "components/os_crypt/os_crypt_mocker_linux.h"
- #endif
-
diff --git a/chromium/patches/patch-components_os__crypt_sync_libsecret__util__linux.cc b/chromium/patches/patch-components_os__crypt_sync_libsecret__util__linux.cc
new file mode 100644
index 0000000000..7d2520dbdc
--- /dev/null
+++ b/chromium/patches/patch-components_os__crypt_sync_libsecret__util__linux.cc
@@ -0,0 +1,33 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/os_crypt/sync/libsecret_util_linux.cc.orig 2024-07-24 02:44:34.504574800 +0000
++++ components/os_crypt/sync/libsecret_util_linux.cc
+@@ -99,16 +99,22 @@ bool LibsecretLoader::EnsureLibsecretLoa
+
+ // static
+ bool LibsecretLoader::LoadLibsecret() {
++#if BUILDFLAG(IS_BSD)
++ const char* kSecretLib = "libsecret-1.so";
++#else
++ const char* kSecretLib = "libsecret-1.so.0";
++#endif
++
+ if (libsecret_loaded_)
+ return true;
+
+- static void* handle = dlopen("libsecret-1.so.0", RTLD_NOW | RTLD_GLOBAL);
++ static void* handle = dlopen(kSecretLib, RTLD_NOW | RTLD_GLOBAL);
+ if (!handle) {
+ // We wanted to use libsecret, but we couldn't load it. Warn, because
+ // either the user asked for this, or we autodetected it incorrectly. (Or
+ // the system has broken libraries, which is also good to warn about.)
+ // TODO(crbug.com/40467093): Channel this message to the user-facing log
+- VLOG(1) << "Could not load libsecret-1.so.0: " << dlerror();
++ VLOG(1) << "Could not load " << kSecretLib << ": " << dlerror();
+ return false;
+ }
+
diff --git a/chromium/patches/patch-components_os__crypt_sync_os__crypt.h b/chromium/patches/patch-components_os__crypt_sync_os__crypt.h
new file mode 100644
index 0000000000..60d8c3d335
--- /dev/null
+++ b/chromium/patches/patch-components_os__crypt_sync_os__crypt.h
@@ -0,0 +1,78 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/os_crypt/sync/os_crypt.h.orig 2024-07-24 02:44:34.504574800 +0000
++++ components/os_crypt/sync/os_crypt.h
+@@ -14,7 +14,7 @@
+ #include "build/build_config.h"
+ #include "build/chromecast_buildflags.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ class KeyStorageLinux;
+ #endif // BUILDFLAG(IS_LINUX)
+
+@@ -23,7 +23,7 @@ class PrefRegistrySimple;
+ class PrefService;
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_APPLE)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
+ namespace crypto {
+ class SymmetricKey;
+ }
+@@ -36,7 +36,7 @@ struct Config;
+ // Temporary interface due to OSCrypt refactor. See OSCryptImpl for descriptions
+ // of what each function does.
+ namespace OSCrypt {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(OS_CRYPT)
+ void SetConfig(std::unique_ptr<os_crypt::Config> config);
+ #endif // BUILDFLAG(IS_LINUX)
+@@ -81,7 +81,7 @@ COMPONENT_EXPORT(OS_CRYPT) void UseMockK
+ COMPONENT_EXPORT(OS_CRYPT) void SetLegacyEncryptionForTesting(bool legacy);
+ COMPONENT_EXPORT(OS_CRYPT) void ResetStateForTesting();
+ #endif // BUILDFLAG(IS_WIN)
+-#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS))
++#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS)) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(OS_CRYPT)
+ void UseMockKeyStorageForTesting(
+ base::OnceCallback<std::unique_ptr<KeyStorageLinux>()>
+@@ -108,7 +108,7 @@ class COMPONENT_EXPORT(OS_CRYPT) OSCrypt
+ // Returns singleton instance of OSCryptImpl.
+ static OSCryptImpl* GetInstance();
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Set the configuration of OSCryptImpl.
+ // This method, or SetRawEncryptionKey(), must be called before using
+ // EncryptString() and DecryptString().
+@@ -200,7 +200,7 @@ class COMPONENT_EXPORT(OS_CRYPT) OSCrypt
+ void ResetStateForTesting();
+ #endif
+
+-#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS))
++#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS)) || BUILDFLAG(IS_BSD)
+ // For unit testing purposes, inject methods to be used.
+ // |storage_provider_factory| provides the desired |KeyStorage|
+ // implementation. If the provider returns |nullptr|, a hardcoded password
+@@ -225,13 +225,13 @@ class COMPONENT_EXPORT(OS_CRYPT) OSCrypt
+ crypto::SymmetricKey* GetEncryptionKey();
+ #endif // BUILDFLAG(IS_APPLE)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_APPLE)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
+ // This lock is used to make the GetEncryptionKey and
+ // GetRawEncryptionKey methods thread-safe.
+ static base::Lock& GetLock();
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_APPLE)
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Create the KeyStorage. Will be null if no service is found. A Config must
+ // be set before every call to this method.
+ std::unique_ptr<KeyStorageLinux> CreateKeyStorage();
diff --git a/chromium/patches/patch-components_paint__preview_browser_paint__preview__client.cc b/chromium/patches/patch-components_paint__preview_browser_paint__preview__client.cc
new file mode 100644
index 0000000000..6557416fdb
--- /dev/null
+++ b/chromium/patches/patch-components_paint__preview_browser_paint__preview__client.cc
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/paint_preview/browser/paint_preview_client.cc.orig 2024-07-24 02:44:34.548579200 +0000
++++ components/paint_preview/browser/paint_preview_client.cc
+@@ -313,8 +313,8 @@ void PaintPreviewClient::CapturePaintPre
+ metadata->set_version(kPaintPreviewVersion);
+ auto* chromeVersion = metadata->mutable_chrome_version();
+ const auto& current_chrome_version = version_info::GetVersion();
+- chromeVersion->set_major(current_chrome_version.components()[0]);
+- chromeVersion->set_minor(current_chrome_version.components()[1]);
++ chromeVersion->set_gmajor(current_chrome_version.components()[0]);
++ chromeVersion->set_gminor(current_chrome_version.components()[1]);
+ chromeVersion->set_build(current_chrome_version.components()[2]);
+ chromeVersion->set_patch(current_chrome_version.components()[3]);
+ document_data.callback = std::move(callback);
diff --git a/chromium/patches/patch-components_paint__preview_browser_paint__preview__client__unittest.cc b/chromium/patches/patch-components_paint__preview_browser_paint__preview__client__unittest.cc
new file mode 100644
index 0000000000..b9f5b75ac8
--- /dev/null
+++ b/chromium/patches/patch-components_paint__preview_browser_paint__preview__client__unittest.cc
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/paint_preview/browser/paint_preview_client_unittest.cc.orig 2024-07-24 02:44:34.548579200 +0000
++++ components/paint_preview/browser/paint_preview_client_unittest.cc
+@@ -174,8 +174,8 @@ TEST_P(PaintPreviewClientRenderViewHostT
+ metadata->set_version(kPaintPreviewVersion);
+ auto* chromeVersion = metadata->mutable_chrome_version();
+ const auto& current_chrome_version = version_info::GetVersion();
+- chromeVersion->set_major(current_chrome_version.components()[0]);
+- chromeVersion->set_minor(current_chrome_version.components()[1]);
++ chromeVersion->set_gmajor(current_chrome_version.components()[0]);
++ chromeVersion->set_gminor(current_chrome_version.components()[1]);
+ chromeVersion->set_build(current_chrome_version.components()[2]);
+ chromeVersion->set_patch(current_chrome_version.components()[3]);
+ PaintPreviewFrameProto* main_frame = expected_proto.mutable_root_frame();
diff --git a/chromium/patches/patch-components_paint__preview_common_proto_paint__preview.proto b/chromium/patches/patch-components_paint__preview_common_proto_paint__preview.proto
new file mode 100644
index 0000000000..6beef1e89d
--- /dev/null
+++ b/chromium/patches/patch-components_paint__preview_common_proto_paint__preview.proto
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/paint_preview/common/proto/paint_preview.proto.orig 2024-07-24 02:44:34.552579600 +0000
++++ components/paint_preview/common/proto/paint_preview.proto
+@@ -82,8 +82,8 @@ message PaintPreviewFrameProto {
+ // Stores Chrome version.
+ // NEXT_TAG = 5
+ message ChromeVersionProto {
+- optional uint64 major = 1;
+- optional uint64 minor = 2;
++ optional uint64 gmajor = 1;
++ optional uint64 gminor = 2;
+ optional uint64 build = 3;
+ optional uint64 patch = 4;
+ }
diff --git a/chromium/patches/patch-components_paint__preview_player_player__compositor__delegate.cc b/chromium/patches/patch-components_paint__preview_player_player__compositor__delegate.cc
new file mode 100644
index 0000000000..7695564ac3
--- /dev/null
+++ b/chromium/patches/patch-components_paint__preview_player_player__compositor__delegate.cc
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/paint_preview/player/player_compositor_delegate.cc.orig 2024-07-24 02:44:34.560580300 +0000
++++ components/paint_preview/player/player_compositor_delegate.cc
+@@ -435,8 +435,8 @@ void PlayerCompositorDelegate::ValidateP
+ auto chrome_version = capture_result_->proto.metadata().chrome_version();
+ const auto& current_chrome_version = version_info::GetVersion();
+ if (capture_result_->proto.metadata().has_chrome_version() &&
+- chrome_version.major() == current_chrome_version.components()[0] &&
+- chrome_version.minor() == current_chrome_version.components()[1] &&
++ chrome_version.gmajor() == current_chrome_version.components()[0] &&
++ chrome_version.gminor() == current_chrome_version.components()[1] &&
+ chrome_version.build() == current_chrome_version.components()[2] &&
+ chrome_version.patch() == current_chrome_version.components()[3]) {
+ paint_preview_service_->GetFileMixin()->GetAXTreeUpdate(
diff --git a/chromium/patches/patch-components_password__manager_core_browser_BUILD.gn b/chromium/patches/patch-components_password__manager_core_browser_BUILD.gn
deleted file mode 100644
index f3686c26c2..0000000000
--- a/chromium/patches/patch-components_password__manager_core_browser_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/password_manager/core/browser/BUILD.gn.orig 2020-07-15 18:56:46.000000000 +0000
-+++ components/password_manager/core/browser/BUILD.gn
-@@ -617,7 +617,7 @@ source_set("unit_tests") {
- ]
- }
-
-- if (is_win || is_mac || is_linux || is_chromeos) {
-+ if (is_win || is_mac || is_linux || is_chromeos || is_bsd) {
- sources += [ "hash_password_manager_unittest.cc" ]
- }
-
diff --git a/chromium/patches/patch-components_password__manager_core_browser_features_password__features.cc b/chromium/patches/patch-components_password__manager_core_browser_features_password__features.cc
new file mode 100644
index 0000000000..73a34f4203
--- /dev/null
+++ b/chromium/patches/patch-components_password__manager_core_browser_features_password__features.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/password_manager/core/browser/features/password_features.cc.orig 2024-07-24 02:44:34.568581000 +0000
++++ components/password_manager/core/browser/features/password_features.cc
+@@ -33,7 +33,7 @@ BASE_FEATURE(kBiometricTouchToFill,
+ #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS) // Desktop
+ BASE_FEATURE(kButterOnDesktopFollowup,
+ "ButterOnDesktopFollowup",
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ base::FEATURE_ENABLED_BY_DEFAULT);
+ #else
+ base::FEATURE_DISABLED_BY_DEFAULT);
+@@ -46,7 +46,7 @@ BASE_FEATURE(kClearUndecryptablePassword
+
+ BASE_FEATURE(kClearUndecryptablePasswordsOnSync,
+ "ClearUndecryptablePasswordsInSync",
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_IOS)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_IOS) || BUILDFLAG(IS_BSD)
+ base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+ base::FEATURE_DISABLED_BY_DEFAULT
+@@ -108,7 +108,7 @@ BASE_FEATURE(kPasswordManualFallbackAvai
+ "PasswordManualFallbackAvailable",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ BASE_FEATURE(kRestartToGainAccessToKeychain,
+ "RestartToGainAccessToKeychain",
+ #if BUILDFLAG(IS_MAC)
diff --git a/chromium/patches/patch-components_password__manager_core_browser_features_password__features.h b/chromium/patches/patch-components_password__manager_core_browser_features_password__features.h
new file mode 100644
index 0000000000..ff850a3d57
--- /dev/null
+++ b/chromium/patches/patch-components_password__manager_core_browser_features_password__features.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/password_manager/core/browser/features/password_features.h.orig 2024-07-24 02:44:34.568581000 +0000
++++ components/password_manager/core/browser/features/password_features.h
+@@ -93,7 +93,7 @@ BASE_DECLARE_FEATURE(kPasswordManagerLog
+ // Enables triggering password suggestions through the context menu.
+ BASE_DECLARE_FEATURE(kPasswordManualFallbackAvailable);
+
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Enables "Needs access to keychain, restart chrome" bubble and banner.
+ BASE_DECLARE_FEATURE(kRestartToGainAccessToKeychain);
+ #endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
diff --git a/chromium/patches/patch-components_password__manager_core_browser_password__form__manager.cc b/chromium/patches/patch-components_password__manager_core_browser_password__form__manager.cc
new file mode 100644
index 0000000000..6498b37e47
--- /dev/null
+++ b/chromium/patches/patch-components_password__manager_core_browser_password__form__manager.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/password_manager/core/browser/password_form_manager.cc.orig 2024-07-24 02:44:34.588583000 +0000
++++ components/password_manager/core/browser/password_form_manager.cc
+@@ -58,7 +58,7 @@
+ #include "components/webauthn/android/webauthn_cred_man_delegate.h"
+ #endif // BUILDFLAG(IS_ANDROID)
+
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "components/os_crypt/sync/os_crypt.h"
+ #endif
+
+@@ -229,7 +229,7 @@ bool ShouldUploadCrowdsourcingVotes(cons
+ return false;
+ }
+
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool ShouldShowKeychainErrorBubble(
+ std::optional<PasswordStoreBackendError> backend_error) {
+ if (!backend_error.has_value()) {
+@@ -880,7 +880,7 @@ void PasswordFormManager::OnFetchComplet
+ error.value().type);
+ }
+
+-#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (ShouldShowKeychainErrorBubble(
+ form_fetcher_->GetProfileStoreBackendError())) {
+ client_->NotifyKeychainError();
diff --git a/chromium/patches/patch-components_password__manager_core_browser_password__manager.cc b/chromium/patches/patch-components_password__manager_core_browser_password__manager.cc
new file mode 100644
index 0000000000..8b42c92b3b
--- /dev/null
+++ b/chromium/patches/patch-components_password__manager_core_browser_password__manager.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/password_manager/core/browser/password_manager.cc.orig 2024-07-24 02:44:34.592583400 +0000
++++ components/password_manager/core/browser/password_manager.cc
+@@ -386,7 +386,7 @@ void PasswordManager::RegisterProfilePre
+ prefs::kAutofillableCredentialsAccountStoreLoginDatabase, false);
+ #endif // BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS)
+ registry->RegisterBooleanPref(prefs::kPasswordSharingEnabled, true);
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ registry->RegisterIntegerPref(prefs::kRelaunchChromeBubbleDismissedCounter,
+ 0);
+ #endif
diff --git a/chromium/patches/patch-components_password__manager_core_browser_password__manager__client.h b/chromium/patches/patch-components_password__manager_core_browser_password__manager__client.h
new file mode 100644
index 0000000000..34de843011
--- /dev/null
+++ b/chromium/patches/patch-components_password__manager_core_browser_password__manager__client.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/password_manager/core/browser/password_manager_client.h.orig 2024-07-24 02:44:34.592583400 +0000
++++ components/password_manager/core/browser/password_manager_client.h
+@@ -30,7 +30,7 @@
+ #include "net/cert/cert_status_flags.h"
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "base/i18n/rtl.h"
+ #include "components/password_manager/core/browser/password_cross_domain_confirmation_popup_controller.h"
+ #include "ui/gfx/geometry/rect_f.h"
+@@ -517,7 +517,7 @@ class PasswordManagerClient {
+ virtual void RefreshPasswordManagerSettingsIfNeeded() const;
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Creates and show the cross domain confirmation popup.
+ virtual std::unique_ptr<PasswordCrossDomainConfirmationPopupController>
+ ShowCrossDomainConfirmationPopup(const gfx::RectF& element_bounds,
diff --git a/chromium/patches/patch-components_password__manager_core_browser_password__manager__switches.cc b/chromium/patches/patch-components_password__manager_core_browser_password__manager__switches.cc
new file mode 100644
index 0000000000..8307e630c6
--- /dev/null
+++ b/chromium/patches/patch-components_password__manager_core_browser_password__manager__switches.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/password_manager/core/browser/password_manager_switches.cc.orig 2024-07-24 02:44:34.596583800 +0000
++++ components/password_manager/core/browser/password_manager_switches.cc
+@@ -6,7 +6,7 @@
+
+ namespace password_manager {
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Specifies which encryption storage backend to use. Possible values are
+ // kwallet, kwallet5, kwallet6, gnome-libsecret, basic.
+ // Any other value will lead to Chrome detecting the best backend automatically.
diff --git a/chromium/patches/patch-components_password__manager_core_browser_password__manager__switches.h b/chromium/patches/patch-components_password__manager_core_browser_password__manager__switches.h
new file mode 100644
index 0000000000..ab950c5fdd
--- /dev/null
+++ b/chromium/patches/patch-components_password__manager_core_browser_password__manager__switches.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/password_manager/core/browser/password_manager_switches.h.orig 2024-07-24 02:44:34.596583800 +0000
++++ components/password_manager/core/browser/password_manager_switches.h
+@@ -10,7 +10,7 @@
+
+ namespace password_manager {
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ extern const char kPasswordStore[];
+ extern const char kEnableEncryptionSelection[];
+ #endif // BUILDFLAG(IS_LINUX)
diff --git a/chromium/patches/patch-components_password__manager_core_browser_password__manual__fallback__flow.cc b/chromium/patches/patch-components_password__manager_core_browser_password__manual__fallback__flow.cc
new file mode 100644
index 0000000000..b3f7bc4bcb
--- /dev/null
+++ b/chromium/patches/patch-components_password__manager_core_browser_password__manual__fallback__flow.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/password_manager/core/browser/password_manual_fallback_flow.cc.orig 2024-07-24 02:44:34.596583800 +0000
++++ components/password_manager/core/browser/password_manual_fallback_flow.cc
+@@ -192,7 +192,7 @@ void PasswordManualFallbackFlow::DidAcce
+ payload.password));
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ if (payload.is_cross_domain) {
+ cross_domain_confirmation_popup_controller_ =
+ password_client_->ShowCrossDomainConfirmationPopup(
diff --git a/chromium/patches/patch-components_password__manager_core_browser_password__manual__fallback__flow.h b/chromium/patches/patch-components_password__manager_core_browser_password__manual__fallback__flow.h
new file mode 100644
index 0000000000..e2ea804ddf
--- /dev/null
+++ b/chromium/patches/patch-components_password__manager_core_browser_password__manual__fallback__flow.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/password_manager/core/browser/password_manual_fallback_flow.h.orig 2024-07-24 02:44:34.596583800 +0000
++++ components/password_manager/core/browser/password_manual_fallback_flow.h
+@@ -18,7 +18,7 @@
+ #include "components/password_manager/core/browser/ui/saved_passwords_presenter.h"
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "components/password_manager/core/browser/password_cross_domain_confirmation_popup_controller.h"
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ||
+ // BUILDFLAG(IS_CHROMEOS)
+@@ -159,7 +159,7 @@ class PasswordManualFallbackFlow : publi
+ std::unique_ptr<device_reauth::DeviceAuthenticator> authenticator_;
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ std::unique_ptr<PasswordCrossDomainConfirmationPopupController>
+ cross_domain_confirmation_popup_controller_;
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ||
diff --git a/chromium/patches/patch-components_password__manager_core_browser_password__store_login__database.cc b/chromium/patches/patch-components_password__manager_core_browser_password__store_login__database.cc
new file mode 100644
index 0000000000..1c459aa50a
--- /dev/null
+++ b/chromium/patches/patch-components_password__manager_core_browser_password__store_login__database.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/password_manager/core/browser/password_store/login_database.cc.orig 2024-07-24 02:44:34.604584700 +0000
++++ components/password_manager/core/browser/password_store/login_database.cc
+@@ -1020,7 +1020,7 @@ void RecordShouldDeleteUndecryptablePass
+ }
+
+ bool ShouldDeleteUndecryptablePasswords() {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ std::string user_data_dir_string;
+ std::unique_ptr<base::Environment> environment(base::Environment::Create());
+ // On Linux user data directory ca be specified using an env variable. If it
+@@ -1039,7 +1039,7 @@ bool ShouldDeleteUndecryptablePasswords(
+ return false;
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (command_line->HasSwitch(password_manager::kPasswordStore)) {
+ RecordShouldDeleteUndecryptablePasswordsMetric(
+ ShouldDeleteUndecryptablePasswordsResult::
diff --git a/chromium/patches/patch-components_password__manager_core_browser_password__store_login__database__async__helper.cc b/chromium/patches/patch-components_password__manager_core_browser_password__store_login__database__async__helper.cc
new file mode 100644
index 0000000000..6b6e74ce28
--- /dev/null
+++ b/chromium/patches/patch-components_password__manager_core_browser_password__store_login__database__async__helper.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/password_manager/core/browser/password_store/login_database_async_helper.cc.orig 2024-07-24 02:44:34.604584700 +0000
++++ components/password_manager/core/browser/password_store/login_database_async_helper.cc
+@@ -149,7 +149,7 @@ LoginsResultOrError LoginDatabaseAsyncHe
+ std::vector<PasswordForm> matched_forms;
+ if (!login_db_ ||
+ !login_db_->GetLogins(form, include_psl, &matched_forms)) {
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return PasswordStoreBackendError(
+ OSCrypt::IsEncryptionAvailable()
+ ? PasswordStoreBackendErrorType::kUncategorized
diff --git a/chromium/patches/patch-components_password__manager_core_browser_password__store_login__database__unittest.cc b/chromium/patches/patch-components_password__manager_core_browser_password__store_login__database__unittest.cc
new file mode 100644
index 0000000000..3b6a9cd5d4
--- /dev/null
+++ b/chromium/patches/patch-components_password__manager_core_browser_password__store_login__database__unittest.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/password_manager/core/browser/password_store/login_database_unittest.cc.orig 2024-07-24 02:44:34.604584700 +0000
++++ components/password_manager/core/browser/password_store/login_database_unittest.cc
+@@ -2141,7 +2141,7 @@ INSTANTIATE_TEST_SUITE_P(MigrationToVCur
+ testing::Values(1, 2, 3, 24));
+
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_IOS) || \
+- BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ class LoginDatabaseUndecryptableLoginsTest : public testing::Test {
+ protected:
+ LoginDatabaseUndecryptableLoginsTest() = default;
diff --git a/chromium/patches/patch-components_password__manager_core_browser_stub__password__manager__client.cc b/chromium/patches/patch-components_password__manager_core_browser_stub__password__manager__client.cc
new file mode 100644
index 0000000000..ae816db8d6
--- /dev/null
+++ b/chromium/patches/patch-components_password__manager_core_browser_stub__password__manager__client.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/password_manager/core/browser/stub_password_manager_client.cc.orig 2024-07-24 02:44:34.616585700 +0000
++++ components/password_manager/core/browser/stub_password_manager_client.cc
+@@ -175,7 +175,7 @@ version_info::Channel StubPasswordManage
+ }
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ std::unique_ptr<
+ password_manager::PasswordCrossDomainConfirmationPopupController>
+ StubPasswordManagerClient::ShowCrossDomainConfirmationPopup(
diff --git a/chromium/patches/patch-components_password__manager_core_browser_stub__password__manager__client.h b/chromium/patches/patch-components_password__manager_core_browser_stub__password__manager__client.h
new file mode 100644
index 0000000000..9bba2f24bf
--- /dev/null
+++ b/chromium/patches/patch-components_password__manager_core_browser_stub__password__manager__client.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/password_manager/core/browser/stub_password_manager_client.h.orig 2024-07-24 02:44:34.616585700 +0000
++++ components/password_manager/core/browser/stub_password_manager_client.h
+@@ -74,7 +74,7 @@ class StubPasswordManagerClient : public
+ MockPasswordFeatureManager* GetPasswordFeatureManager();
+ version_info::Channel GetChannel() const override;
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ std::unique_ptr<
+ password_manager::PasswordCrossDomainConfirmationPopupController>
+ ShowCrossDomainConfirmationPopup(
diff --git a/chromium/patches/patch-components_password__manager_core_common_password__manager__pref__names.h b/chromium/patches/patch-components_password__manager_core_common_password__manager__pref__names.h
new file mode 100644
index 0000000000..0f64888251
--- /dev/null
+++ b/chromium/patches/patch-components_password__manager_core_common_password__manager__pref__names.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/password_manager/core/common/password_manager_pref_names.h.orig 2024-07-24 02:44:34.624586600 +0000
++++ components/password_manager/core/common/password_manager_pref_names.h
+@@ -358,7 +358,7 @@ inline constexpr char kAutofillableCrede
+ inline constexpr char kPasswordSharingEnabled[] =
+ "password_manager.password_sharing_enabled";
+
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Integer pref indicating how many times relaunch Chrome bubble was dismissed.
+ inline constexpr char kRelaunchChromeBubbleDismissedCounter[] =
+ "password_manager.relaunch_chrome_bubble_dismissed_counter";
diff --git a/chromium/patches/patch-components_performance__manager_public_features.h b/chromium/patches/patch-components_performance__manager_public_features.h
new file mode 100644
index 0000000000..009fad7ae0
--- /dev/null
+++ b/chromium/patches/patch-components_performance__manager_public_features.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/performance_manager/public/features.h.orig 2024-07-24 02:44:34.700594000 +0000
++++ components/performance_manager/public/features.h
+@@ -21,7 +21,7 @@ BASE_DECLARE_FEATURE(kRunOnMainThreadSyn
+
+ #if !BUILDFLAG(IS_ANDROID)
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #define URGENT_DISCARDING_FROM_PERFORMANCE_MANAGER() false
+ #else
+ #define URGENT_DISCARDING_FROM_PERFORMANCE_MANAGER() true
diff --git a/chromium/patches/patch-components_permissions_prediction__service_prediction__common.cc b/chromium/patches/patch-components_permissions_prediction__service_prediction__common.cc
new file mode 100644
index 0000000000..08c075c635
--- /dev/null
+++ b/chromium/patches/patch-components_permissions_prediction__service_prediction__common.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/permissions/prediction_service/prediction_common.cc.orig 2024-07-24 02:44:34.752599000 +0000
++++ components/permissions/prediction_service/prediction_common.cc
+@@ -33,7 +33,7 @@ int BucketizeValue(int count) {
+
+ ClientFeatures_Platform GetCurrentPlatformProto() {
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_MAC)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ return permissions::ClientFeatures_Platform_PLATFORM_DESKTOP;
+ #elif BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
+ return permissions::ClientFeatures_Platform_PLATFORM_MOBILE;
+@@ -44,7 +44,7 @@ ClientFeatures_Platform GetCurrentPlatfo
+
+ ClientFeatures_PlatformEnum GetCurrentPlatformEnumProto() {
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_MAC)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ return permissions::ClientFeatures_PlatformEnum_PLATFORM_DESKTOP_V2;
+ #elif BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
+ return permissions::ClientFeatures_PlatformEnum_PLATFORM_MOBILE_V2;
diff --git a/chromium/patches/patch-components_plugins_renderer_plugin__placeholder.cc b/chromium/patches/patch-components_plugins_renderer_plugin__placeholder.cc
deleted file mode 100644
index 58616bf2a8..0000000000
--- a/chromium/patches/patch-components_plugins_renderer_plugin__placeholder.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/plugins/renderer/plugin_placeholder.cc.orig 2020-07-08 21:40:40.000000000 +0000
-+++ components/plugins/renderer/plugin_placeholder.cc
-@@ -17,7 +17,7 @@
- #include "third_party/blink/public/web/web_plugin_container.h"
- #include "third_party/blink/public/web/web_script_source.h"
- #include "third_party/blink/public/web/web_serialized_script_value.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
-
- namespace plugins {
-
diff --git a/chromium/patches/patch-components_policy_BUILD.gn b/chromium/patches/patch-components_policy_BUILD.gn
deleted file mode 100644
index 5005a78f09..0000000000
--- a/chromium/patches/patch-components_policy_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/policy/BUILD.gn.orig 2020-07-15 18:55:55.000000000 +0000
-+++ components/policy/BUILD.gn
-@@ -19,7 +19,7 @@ gen_policy_templates_local = false
- # enable these flags (but don't check that in!).
- gen_policy_templates_common = true
- gen_policy_templates_win = is_win
--gen_policy_templates_linux = is_linux
-+gen_policy_templates_linux = is_linux || is_bsd
- gen_policy_templates_android = is_android
- gen_policy_templates_mac = is_mac
- gen_policy_templates_chromeos = is_chromeos
diff --git a/chromium/patches/patch-components_policy_core_browser_policy__pref__mapping__test.cc b/chromium/patches/patch-components_policy_core_browser_policy__pref__mapping__test.cc
new file mode 100644
index 0000000000..4bbf8970ee
--- /dev/null
+++ b/chromium/patches/patch-components_policy_core_browser_policy__pref__mapping__test.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/policy/core/browser/policy_pref_mapping_test.cc.orig 2024-07-24 02:44:34.776601300 +0000
++++ components/policy/core/browser/policy_pref_mapping_test.cc
+@@ -411,7 +411,7 @@ class PolicyTestCase {
+ const std::string os("chromeos_lacros");
+ #elif BUILDFLAG(IS_IOS)
+ const std::string os("ios");
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const std::string os("linux");
+ #elif BUILDFLAG(IS_MAC)
+ const std::string os("mac");
diff --git a/chromium/patches/patch-components_policy_core_common_BUILD.gn b/chromium/patches/patch-components_policy_core_common_BUILD.gn
deleted file mode 100644
index a9c3e13e21..0000000000
--- a/chromium/patches/patch-components_policy_core_common_BUILD.gn
+++ /dev/null
@@ -1,40 +0,0 @@
-$NetBSD$
-
---- components/policy/core/common/BUILD.gn.orig 2020-07-15 18:55:55.000000000 +0000
-+++ components/policy/core/common/BUILD.gn
-@@ -204,7 +204,7 @@ jumbo_source_set("internal") {
- }
-
- # Compile on Linux for fuzzer and since code is reused on Chrome OS.
-- if (is_win || is_linux) {
-+ if (is_win || is_linux || is_bsd) {
- sources += [
- "preg_parser.cc",
- "preg_parser.h",
-@@ -403,7 +403,7 @@ source_set("unit_tests") {
- "schema_unittest.cc",
- "values_util_unittest.cc",
- ]
-- if (is_win || is_linux) {
-+ if (is_win || is_linux || is_bsd) {
- sources += [
- "preg_parser_unittest.cc",
- "registry_dict_unittest.cc",
-@@ -459,7 +459,7 @@ source_set("unit_tests") {
- configs += [ "//build/config/compiler:enable_arc" ]
- }
- }
-- if (is_win || is_linux) {
-+ if (is_win || is_linux || is_bsd) {
- # Needed by policy_loader_win_unittest.cc and preg_parser_unittest.cc
- data = [ "//chrome/test/data/policy/" ]
- }
-@@ -489,7 +489,7 @@ source_set("unit_tests") {
- }
- }
-
--if (is_win || is_linux) {
-+if (is_win || is_linux || is_bsd) {
- fuzzer_test("preg_parser_fuzzer") {
- sources = [ "preg_parser_fuzzer.cc" ]
- seed_corpus = "//chrome/test/data/policy/gpo/fuzzer_corpus"
diff --git a/chromium/patches/patch-components_policy_core_common_cloud_cloud__policy__client.cc b/chromium/patches/patch-components_policy_core_common_cloud_cloud__policy__client.cc
new file mode 100644
index 0000000000..dfcfc5bfd6
--- /dev/null
+++ b/chromium/patches/patch-components_policy_core_common_cloud_cloud__policy__client.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/policy/core/common/cloud/cloud_policy_client.cc.orig 2024-07-24 02:44:34.780601700 +0000
++++ components/policy/core/common/cloud/cloud_policy_client.cc
+@@ -647,7 +647,7 @@ void CloudPolicyClient::FetchPolicy(Poli
+ fetch_request->set_invalidation_payload(invalidation_payload_);
+ }
+ }
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Only set browser device identifier for CBCM Chrome cloud policy on
+ // desktop.
+ if (type_to_fetch.first ==
diff --git a/chromium/patches/patch-components_policy_core_common_cloud_cloud__policy__util.cc b/chromium/patches/patch-components_policy_core_common_cloud_cloud__policy__util.cc
index 7d8149e0c2..ac7fdd4023 100644
--- a/chromium/patches/patch-components_policy_core_common_cloud_cloud__policy__util.cc
+++ b/chromium/patches/patch-components_policy_core_common_cloud_cloud__policy__util.cc
@@ -1,62 +1,61 @@
$NetBSD$
---- components/policy/core/common/cloud/cloud_policy_util.cc.orig 2020-07-15 18:55:55.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/policy/core/common/cloud/cloud_policy_util.cc.orig 2024-07-24 02:44:34.784602000 +0000
+++ components/policy/core/common/cloud/cloud_policy_util.cc
-@@ -16,7 +16,7 @@
- #include <wincred.h>
+@@ -20,7 +20,7 @@
#endif
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS) || defined(OS_MACOSX)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS) || defined(OS_MACOSX)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || \
+- BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
#include <pwd.h>
#include <sys/types.h>
#include <unistd.h>
-@@ -31,7 +31,7 @@
+@@ -35,10 +35,15 @@
#import <SystemConfiguration/SCDynamicStoreCopySpecific.h>
#endif
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
#include <limits.h> // For HOST_NAME_MAX
#endif
-@@ -62,7 +62,7 @@
- #include "base/system/sys_info.h"
- #endif
++#if BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
++#include <sys/param.h>
++#define HOST_NAME_MAX MAXHOSTNAMELEN
++#endif
++
+ #include <algorithm>
+ #include <utility>
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- #include "base/system/sys_info.h"
- #endif
+@@ -88,7 +93,7 @@ namespace em = enterprise_management;
-@@ -76,6 +76,12 @@ std::string GetMachineName() {
+ std::string GetMachineName() {
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || \
+- BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ char hostname[HOST_NAME_MAX];
if (gethostname(hostname, HOST_NAME_MAX) == 0) // Success.
return hostname;
- return std::string();
-+#elif defined(OS_NETBSD)
-+ int len = sysconf(_SC_HOST_NAME_MAX);
-+ char hostname[len];
-+ if (gethostname(hostname, _SC_HOST_NAME_MAX) == 0) // Success.
-+ return hostname;
-+ return std::string();
- #elif defined(OS_MACOSX)
- // TODO(crbug.com/1024115): Find a different replacement for -[NSHost
- // currentHost] on iOS.
-@@ -125,7 +131,7 @@ std::string GetMachineName() {
- }
+@@ -145,7 +150,7 @@ std::string GetMachineName() {
std::string GetOSVersion() {
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_APPLE) || \
+- BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
return base::SysInfo::OperatingSystemVersion();
- #elif defined(OS_WIN)
+ #elif BUILDFLAG(IS_WIN)
base::win::OSInfo::VersionNumber version_number =
-@@ -148,7 +154,7 @@ std::string GetOSArchitecture() {
+@@ -168,7 +173,7 @@ std::string GetOSArchitecture() {
}
std::string GetOSUsername() {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS) || defined(OS_MACOSX)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS) || defined(OS_MACOSX)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_APPLE)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
struct passwd* creds = getpwuid(getuid());
if (!creds || !creds->pw_name)
return std::string();
diff --git a/chromium/patches/patch-components_policy_core_common_policy__loader__common.cc b/chromium/patches/patch-components_policy_core_common_policy__loader__common.cc
new file mode 100644
index 0000000000..472bf1e576
--- /dev/null
+++ b/chromium/patches/patch-components_policy_core_common_policy__loader__common.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/policy/core/common/policy_loader_common.cc.orig 2024-07-24 02:44:34.800603600 +0000
++++ components/policy/core/common/policy_loader_common.cc
+@@ -46,7 +46,7 @@ const char* kSensitivePolicies[] = {
+ key::kDefaultSearchProviderEnabled,
+ key::kSafeBrowsingEnabled,
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ key::kAutoOpenFileTypes,
+ key::kHomepageIsNewTabPage,
+ key::kPasswordProtectionChangePasswordURL,
+@@ -56,7 +56,7 @@ const char* kSensitivePolicies[] = {
+ key::kSafeBrowsingAllowlistDomains,
+ key::kSiteSearchSettings,
+ #endif
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ key::kCommandLineFlagSecurityWarningsEnabled,
+ #endif
+ #if !BUILDFLAG(IS_IOS)
diff --git a/chromium/patches/patch-components_policy_core_common_policy__paths.cc b/chromium/patches/patch-components_policy_core_common_policy__paths.cc
new file mode 100644
index 0000000000..d4ef28f65e
--- /dev/null
+++ b/chromium/patches/patch-components_policy_core_common_policy__paths.cc
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/policy/core/common/policy_paths.cc.orig 2024-07-24 02:44:34.804604000 +0000
++++ components/policy/core/common/policy_paths.cc
+@@ -17,6 +17,10 @@ namespace policy {
+ const char kPolicyPath[] = "/etc/opt/chrome/policies";
+ #elif BUILDFLAG(GOOGLE_CHROME_FOR_TESTING_BRANDING)
+ const char kPolicyPath[] = "/etc/opt/chrome_for_testing/policies";
++#elif BUILDFLAG(IS_FREEBSD)
++const char kPolicyPath[] = "/usr/local/etc/chromium/policies";
++#elif BUILDFLAG(IS_NETBSD)
++const char kPolicyPath[] = "@PKG_SYSCONFBASE@/chromium/policies";
+ #else
+ const char kPolicyPath[] = "/etc/chromium/policies";
+ #endif // BUILDFLAG(GOOGLE_CHROME_BRANDING)
diff --git a/chromium/patches/patch-components_policy_core_common_policy__utils.cc b/chromium/patches/patch-components_policy_core_common_policy__utils.cc
new file mode 100644
index 0000000000..a905140e25
--- /dev/null
+++ b/chromium/patches/patch-components_policy_core_common_policy__utils.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/policy/core/common/policy_utils.cc.orig 2024-07-24 02:44:34.804604000 +0000
++++ components/policy/core/common/policy_utils.cc
+@@ -28,7 +28,7 @@ bool IsPolicyTestingEnabled(PrefService*
+ return true;
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (channel == version_info::Channel::DEV) {
+ return true;
+ }
diff --git a/chromium/patches/patch-components_policy_core_common_schema.cc b/chromium/patches/patch-components_policy_core_common_schema.cc
deleted file mode 100644
index aec5bc3107..0000000000
--- a/chromium/patches/patch-components_policy_core_common_schema.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/policy/core/common/schema.cc.orig 2020-07-08 21:40:40.000000000 +0000
-+++ components/policy/core/common/schema.cc
-@@ -24,7 +24,7 @@
- #include "base/strings/stringprintf.h"
- #include "components/policy/core/common/json_schema_constants.h"
- #include "components/policy/core/common/schema_internal.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
-
- namespace schema = json_schema_constants;
-
diff --git a/chromium/patches/patch-components_policy_tools_generate__policy__source.py b/chromium/patches/patch-components_policy_tools_generate__policy__source.py
index f699987f32..a290eb03cc 100644
--- a/chromium/patches/patch-components_policy_tools_generate__policy__source.py
+++ b/chromium/patches/patch-components_policy_tools_generate__policy__source.py
@@ -1,23 +1,20 @@
$NetBSD$
---- components/policy/tools/generate_policy_source.py.orig 2020-07-08 21:40:40.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/policy/tools/generate_policy_source.py.orig 2024-07-24 02:44:35.108633300 +0000
+++ components/policy/tools/generate_policy_source.py
-@@ -38,7 +38,8 @@ PLATFORM_STRINGS = {
+@@ -38,9 +38,9 @@ PLATFORM_STRINGS = {
+ 'ios': ['ios'],
+ 'fuchsia': ['fuchsia'],
'chrome.win': ['win'],
- 'chrome.linux': ['linux'],
+- 'chrome.linux': ['linux'],
++ 'chrome.linux': ['linux', 'openbsd', 'freebsd', 'netbsd'],
'chrome.mac': ['mac'],
- 'chrome.*': ['win', 'mac', 'linux'],
-+ 'chrome.netbsd': ['netbsd'],
-+ 'chrome.*': ['win', 'mac', 'linux', 'netbsd'],
- 'chrome.win7': ['win']
++ 'chrome.*': ['win', 'mac', 'linux', 'openbsd', 'freebsd', 'netbsd'],
+ 'chrome.win7': ['win'],
}
-@@ -305,7 +306,7 @@ def main():
- '--target-platform',
- dest='target_platform',
- help='the platform the generated code should run on - can be one of'
-- '(win, mac, linux, chromeos, fuchsia)',
-+ '(win, mac, linux, chromeos, fuchsia, netbsd)',
- metavar='PLATFORM')
- parser.add_argument(
- '--policy-templates-file',
diff --git a/chromium/patches/patch-components_power__metrics_BUILD.gn b/chromium/patches/patch-components_power__metrics_BUILD.gn
new file mode 100644
index 0000000000..1b1d9230fb
--- /dev/null
+++ b/chromium/patches/patch-components_power__metrics_BUILD.gn
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/power_metrics/BUILD.gn.orig 2024-07-24 02:44:35.128635400 +0000
++++ components/power_metrics/BUILD.gn
+@@ -41,7 +41,7 @@ static_library("power_metrics") {
+ ldflags = [ "/DELAYLOAD:setupapi.dll" ]
+ }
+
+- if (is_linux || is_chromeos) {
++ if ((is_linux && !is_bsd) || is_chromeos) {
+ sources += [
+ "energy_metrics_provider_linux.cc",
+ "energy_metrics_provider_linux.h",
diff --git a/chromium/patches/patch-components_power__metrics_energy__metrics__provider.cc b/chromium/patches/patch-components_power__metrics_energy__metrics__provider.cc
new file mode 100644
index 0000000000..48aab7b3bf
--- /dev/null
+++ b/chromium/patches/patch-components_power__metrics_energy__metrics__provider.cc
@@ -0,0 +1,27 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/power_metrics/energy_metrics_provider.cc.orig 2024-07-24 02:44:35.128635400 +0000
++++ components/power_metrics/energy_metrics_provider.cc
+@@ -9,6 +9,8 @@
+ #include "components/power_metrics/energy_metrics_provider_win.h"
+ #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ #include "components/power_metrics/energy_metrics_provider_linux.h"
++#elif BUILDFLAG(IS_BSD)
++#include "base/notreached.h"
+ #endif // BUILDFLAG(IS_WIN)
+
+ namespace power_metrics {
+@@ -22,6 +24,9 @@ std::unique_ptr<EnergyMetricsProvider> E
+ return EnergyMetricsProviderWin::Create();
+ #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ return EnergyMetricsProviderLinux::Create();
++#elif BUILDFLAG(IS_BSD)
++ NOTIMPLEMENTED();
++ return nullptr;
+ #else
+ return nullptr;
+ #endif // BUILDFLAG(IS_WIN)
diff --git a/chromium/patches/patch-components_previews_core_previews__features.cc b/chromium/patches/patch-components_previews_core_previews__features.cc
deleted file mode 100644
index 1d4ad1c851..0000000000
--- a/chromium/patches/patch-components_previews_core_previews__features.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/previews/core/previews_features.cc.orig 2020-07-08 21:40:40.000000000 +0000
-+++ components/previews/core/previews_features.cc
-@@ -14,7 +14,7 @@ namespace features {
- // are enabled are controlled by other features.
- const base::Feature kPreviews {
- "Previews",
--#if defined(OS_ANDROID) || defined(OS_LINUX)
-+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD)
- // Previews allowed for Android (but also allow on Linux for dev/debug).
- base::FEATURE_ENABLED_BY_DEFAULT
- #else // !defined(OS_ANDROID) || defined(OS_LINUX)
diff --git a/chromium/patches/patch-components_safe__browsing_content_common_file__type__policies__unittest.cc b/chromium/patches/patch-components_safe__browsing_content_common_file__type__policies__unittest.cc
new file mode 100644
index 0000000000..5730ca02f6
--- /dev/null
+++ b/chromium/patches/patch-components_safe__browsing_content_common_file__type__policies__unittest.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/safe_browsing/content/common/file_type_policies_unittest.cc.orig 2024-07-24 02:44:35.296651600 +0000
++++ components/safe_browsing/content/common/file_type_policies_unittest.cc
+@@ -139,7 +139,7 @@ TEST_F(FileTypePoliciesTest, UnpackResou
+ EXPECT_EQ(DownloadFileType::FULL_PING, file_type.ping_setting());
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ EXPECT_EQ(DownloadFileType::ALLOW_ON_USER_GESTURE,
+ file_type.platform_settings(0).danger_level());
+ EXPECT_EQ(DownloadFileType::DISALLOW_AUTO_OPEN,
diff --git a/chromium/patches/patch-components_safe__browsing_content_resources_gen__file__type__proto.py b/chromium/patches/patch-components_safe__browsing_content_resources_gen__file__type__proto.py
new file mode 100644
index 0000000000..ea45afa30a
--- /dev/null
+++ b/chromium/patches/patch-components_safe__browsing_content_resources_gen__file__type__proto.py
@@ -0,0 +1,27 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/safe_browsing/content/resources/gen_file_type_proto.py.orig 2024-07-24 02:44:35.300652000 +0000
++++ components/safe_browsing/content/resources/gen_file_type_proto.py
+@@ -38,6 +38,9 @@ def PlatformTypes():
+ "fuchsia":
+ download_file_types_pb2.DownloadFileType.PLATFORM_TYPE_FUCHSIA,
+ "linux": download_file_types_pb2.DownloadFileType.PLATFORM_TYPE_LINUX,
++ "openbsd": download_file_types_pb2.DownloadFileType.PLATFORM_TYPE_LINUX,
++ "freebsd": download_file_types_pb2.DownloadFileType.PLATFORM_TYPE_LINUX,
++ "netbsd": download_file_types_pb2.DownloadFileType.PLATFORM_TYPE_LINUX,
+ "mac": download_file_types_pb2.DownloadFileType.PLATFORM_TYPE_MAC,
+ "win": download_file_types_pb2.DownloadFileType.PLATFORM_TYPE_WINDOWS,
+ }
+@@ -181,7 +184,7 @@ class DownloadFileTypeProtoGenerator(Bin
+ '-t',
+ '--type',
+ help='The platform type. One of android, chromeos, ' +
+- 'linux, mac, win')
++ 'linux, mac, win, openbsd, freebsd, netbsd')
+
+ def AddExtraCommandLineArgsForVirtualEnvRun(self, opts, command):
+ if opts.type is not None:
diff --git a/chromium/patches/patch-components_safe__browsing_core_browser_db_v4__protocol__manager__util.cc b/chromium/patches/patch-components_safe__browsing_core_browser_db_v4__protocol__manager__util.cc
new file mode 100644
index 0000000000..1e30d2d511
--- /dev/null
+++ b/chromium/patches/patch-components_safe__browsing_core_browser_db_v4__protocol__manager__util.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/safe_browsing/core/browser/db/v4_protocol_manager_util.cc.orig 2024-07-24 02:44:35.308652900 +0000
++++ components/safe_browsing/core/browser/db/v4_protocol_manager_util.cc
+@@ -118,7 +118,7 @@ std::ostream& operator<<(std::ostream& o
+ PlatformType GetCurrentPlatformType() {
+ #if BUILDFLAG(IS_WIN)
+ return WINDOWS_PLATFORM;
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ return LINUX_PLATFORM;
+ #elif BUILDFLAG(IS_IOS)
+ return IOS_PLATFORM;
diff --git a/chromium/patches/patch-components_safe__browsing_core_browser_realtime_url__lookup__service__base.cc b/chromium/patches/patch-components_safe__browsing_core_browser_realtime_url__lookup__service__base.cc
new file mode 100644
index 0000000000..93db645b03
--- /dev/null
+++ b/chromium/patches/patch-components_safe__browsing_core_browser_realtime_url__lookup__service__base.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/safe_browsing/core/browser/realtime/url_lookup_service_base.cc.orig 2024-07-24 02:44:35.316653500 +0000
++++ components/safe_browsing/core/browser/realtime/url_lookup_service_base.cc
+@@ -108,7 +108,7 @@ RTLookupRequest::OSType GetRTLookupReque
+ return RTLookupRequest::OS_TYPE_FUCHSIA;
+ #elif BUILDFLAG(IS_IOS)
+ return RTLookupRequest::OS_TYPE_IOS;
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return RTLookupRequest::OS_TYPE_LINUX;
+ #elif BUILDFLAG(IS_MAC)
+ return RTLookupRequest::OS_TYPE_MAC;
diff --git a/chromium/patches/patch-components_safe__browsing_core_common_features.cc b/chromium/patches/patch-components_safe__browsing_core_common_features.cc
new file mode 100644
index 0000000000..7139fd309f
--- /dev/null
+++ b/chromium/patches/patch-components_safe__browsing_core_common_features.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/safe_browsing/core/common/features.cc.orig 2024-07-24 02:44:35.324654300 +0000
++++ components/safe_browsing/core/common/features.cc
+@@ -168,7 +168,7 @@ BASE_FEATURE(kGooglePlayProtectPrompt,
+ BASE_FEATURE(kHashPrefixRealTimeLookups,
+ "SafeBrowsingHashPrefixRealTimeLookups",
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_IOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_IOS) || BUILDFLAG(IS_BSD)
+ base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+ base::FEATURE_DISABLED_BY_DEFAULT
+@@ -253,7 +253,7 @@ constexpr base::FeatureParam<int> kRefer
+ BASE_FEATURE(kSafeBrowsingAsyncRealTimeCheck,
+ "SafeBrowsingAsyncRealTimeCheck",
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+ base::FEATURE_DISABLED_BY_DEFAULT
diff --git a/chromium/patches/patch-components_safe__browsing_core_resources_BUILD.gn b/chromium/patches/patch-components_safe__browsing_core_resources_BUILD.gn
deleted file mode 100644
index 7fc81b2510..0000000000
--- a/chromium/patches/patch-components_safe__browsing_core_resources_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/safe_browsing/core/resources/BUILD.gn.orig 2020-06-25 09:31:28.000000000 +0000
-+++ components/safe_browsing/core/resources/BUILD.gn
-@@ -30,6 +30,8 @@ action("make_file_types_protobuf") {
- target_arch = "mac"
- } else if (is_linux) {
- target_arch = "linux"
-+ } else if (is_netbsd) {
-+ target_arch = "netbsd"
- } else {
- # This will cause the script to fail.
- target_arch = "unknown_target_arch"
diff --git a/chromium/patches/patch-components_safe__browsing_core_resources_gen__file__type__proto.py b/chromium/patches/patch-components_safe__browsing_core_resources_gen__file__type__proto.py
deleted file mode 100644
index 093dd972e9..0000000000
--- a/chromium/patches/patch-components_safe__browsing_core_resources_gen__file__type__proto.py
+++ /dev/null
@@ -1,21 +0,0 @@
-$NetBSD$
-
---- components/safe_browsing/core/resources/gen_file_type_proto.py.orig 2020-07-08 21:40:41.000000000 +0000
-+++ components/safe_browsing/core/resources/gen_file_type_proto.py
-@@ -31,6 +31,7 @@ def PlatformTypes():
- "android": download_file_types_pb2.DownloadFileType.PLATFORM_ANDROID,
- "chromeos": download_file_types_pb2.DownloadFileType.PLATFORM_CHROME_OS,
- "linux": download_file_types_pb2.DownloadFileType.PLATFORM_LINUX,
-+ "netbsd": download_file_types_pb2.DownloadFileType.PLATFORM_LINUX,
- "mac": download_file_types_pb2.DownloadFileType.PLATFORM_MAC,
- "win": download_file_types_pb2.DownloadFileType.PLATFORM_WINDOWS,
- }
-@@ -169,7 +170,7 @@ class DownloadFileTypeProtoGenerator(Bin
- 'Outfile must have a %d for version and %s for platform.')
- parser.add_option('-t', '--type',
- help='The platform type. One of android, chromeos, ' +
-- 'linux, mac, win')
-+ 'linux, mac, win, netbsd')
-
- def AddExtraCommandLineArgsForVirtualEnvRun(self, opts, command):
- if opts.type is not None:
diff --git a/chromium/patches/patch-components_search__engines_search__engine__choice_search__engine__choice__service.cc b/chromium/patches/patch-components_search__engines_search__engine__choice_search__engine__choice__service.cc
new file mode 100644
index 0000000000..1b1c1840e6
--- /dev/null
+++ b/chromium/patches/patch-components_search__engines_search__engine__choice_search__engine__choice__service.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/search_engines/search_engine_choice/search_engine_choice_service.cc.orig 2024-07-24 02:44:35.344656200 +0000
++++ components/search_engines/search_engine_choice/search_engine_choice_service.cc
+@@ -580,7 +580,7 @@ void SearchEngineChoiceService::ProcessP
+
+ int SearchEngineChoiceService::GetCountryIdInternal() {
+ // `country_codes::kCountryIDAtInstall` may not be set yet.
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // On Android, ChromeOS and Linux, `country_codes::kCountryIDAtInstall` is
+ // computed asynchronously using platform-specific signals, and may not be
+ // available yet.
diff --git a/chromium/patches/patch-components_search__engines_template__url__service.cc b/chromium/patches/patch-components_search__engines_template__url__service.cc
new file mode 100644
index 0000000000..383fcb9e10
--- /dev/null
+++ b/chromium/patches/patch-components_search__engines_template__url__service.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/search_engines/template_url_service.cc.orig 2024-07-24 02:44:35.348656700 +0000
++++ components/search_engines/template_url_service.cc
+@@ -3121,7 +3121,7 @@ bool TemplateURLService::MatchesDefaultS
+ std::unique_ptr<EnterpriseSiteSearchManager>
+ TemplateURLService::GetEnterpriseSiteSearchManager(PrefService* prefs) {
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ return base::FeatureList::IsEnabled(omnibox::kSiteSearchSettingsPolicy)
+ ? std::make_unique<EnterpriseSiteSearchManager>(
+ prefs, base::BindRepeating(
diff --git a/chromium/patches/patch-components_security__interstitials_content_captive__portal__blocking__page.cc b/chromium/patches/patch-components_security__interstitials_content_captive__portal__blocking__page.cc
deleted file mode 100644
index 66e9beba0b..0000000000
--- a/chromium/patches/patch-components_security__interstitials_content_captive__portal__blocking__page.cc
+++ /dev/null
@@ -1,20 +0,0 @@
-$NetBSD$
-
---- components/security_interstitials/content/captive_portal_blocking_page.cc.orig 2020-07-08 21:40:41.000000000 +0000
-+++ components/security_interstitials/content/captive_portal_blocking_page.cc
-@@ -106,7 +106,7 @@ std::string CaptivePortalBlockingPage::G
- wifi_service->GetConnectedNetworkSSID(&ssid, &error);
- if (!error.empty())
- return std::string();
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- ssid = net::GetWifiSSID();
- #elif defined(OS_ANDROID)
- ssid = net::android::GetWifiSSID();
-@@ -236,4 +236,4 @@ void CaptivePortalBlockingPage::CommandR
- NOTREACHED() << "Command " << cmd
- << " isn't handled by the captive portal interstitial.";
- }
--}
-\ No newline at end of file
-+}
diff --git a/chromium/patches/patch-components_security__interstitials_content_utils.cc b/chromium/patches/patch-components_security__interstitials_content_utils.cc
index 5f0dfa2991..ca00bdf7cd 100644
--- a/chromium/patches/patch-components_security__interstitials_content_utils.cc
+++ b/chromium/patches/patch-components_security__interstitials_content_utils.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- components/security_interstitials/content/utils.cc.orig 2020-07-08 21:40:41.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/security_interstitials/content/utils.cc.orig 2024-07-24 02:44:35.360657700 +0000
+++ components/security_interstitials/content/utils.cc
-@@ -31,7 +31,7 @@ void LaunchDateAndTimeSettings() {
- #if defined(OS_ANDROID)
+@@ -38,7 +38,7 @@ void LaunchDateAndTimeSettings() {
+ #if BUILDFLAG(IS_ANDROID)
JNIEnv* env = base::android::AttachCurrentThread();
Java_DateAndTimeSettingsHelper_openDateAndTimeSettings(env);
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
struct ClockCommand {
const char* const pathname;
const char* const argument;
diff --git a/chromium/patches/patch-components_segmentation__platform_embedder_default__model_cross__device__user__segment.cc b/chromium/patches/patch-components_segmentation__platform_embedder_default__model_cross__device__user__segment.cc
new file mode 100644
index 0000000000..fa7ddeb14d
--- /dev/null
+++ b/chromium/patches/patch-components_segmentation__platform_embedder_default__model_cross__device__user__segment.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/segmentation_platform/embedder/default_model/cross_device_user_segment.cc.orig 2024-07-24 02:44:35.372659000 +0000
++++ components/segmentation_platform/embedder/default_model/cross_device_user_segment.cc
+@@ -148,7 +148,7 @@ void CrossDeviceUserSegment::ExecuteMode
+ // Check for current device type and subtract it from the device count
+ // calculation.
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ desktop_count -= 1;
+ #elif BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)
+ if (ui::GetDeviceFormFactor() == ui::DEVICE_FORM_FACTOR_TABLET) {
diff --git a/chromium/patches/patch-components_services_font_BUILD.gn b/chromium/patches/patch-components_services_font_BUILD.gn
deleted file mode 100644
index f2d1edfec7..0000000000
--- a/chromium/patches/patch-components_services_font_BUILD.gn
+++ /dev/null
@@ -1,19 +0,0 @@
-$NetBSD$
-
---- components/services/font/BUILD.gn.orig 2020-06-25 09:31:28.000000000 +0000
-+++ components/services/font/BUILD.gn
-@@ -26,12 +26,12 @@ source_set("lib") {
-
- public_deps = [ "//skia" ]
-
-- if (is_linux && enable_plugins) {
-+ if ((is_linux || is_bsd) && enable_plugins) {
- deps += [ ":ppapi_fontconfig_matching" ]
- }
- }
-
--if (is_linux && enable_plugins) {
-+if ((is_linux || is_bsd) && enable_plugins) {
- source_set("ppapi_fontconfig_matching") {
- sources = [
- "ppapi_fontconfig_matching.cc",
diff --git a/chromium/patches/patch-components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.cc b/chromium/patches/patch-components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.cc
index 46f5478890..b247c25f97 100644
--- a/chromium/patches/patch-components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.cc
+++ b/chromium/patches/patch-components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.cc
@@ -1,31 +1,35 @@
$NetBSD$
---- components/services/paint_preview_compositor/paint_preview_compositor_collection_impl.cc.orig 2020-07-08 21:40:41.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/services/paint_preview_compositor/paint_preview_compositor_collection_impl.cc.orig 2024-07-24 02:44:35.428664400 +0000
+++ components/services/paint_preview_compositor/paint_preview_compositor_collection_impl.cc
-@@ -15,7 +15,7 @@
+@@ -22,7 +22,7 @@
- #if defined(OS_WIN)
+ #if BUILDFLAG(IS_WIN)
#include "content/public/child/dwrite_font_proxy_init_win.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "components/services/font/public/cpp/font_loader.h"
#endif
-@@ -35,7 +35,7 @@ PaintPreviewCompositorCollectionImpl::Pa
+@@ -79,7 +79,7 @@ PaintPreviewCompositorCollectionImpl::Pa
// Initialize font access for Skia.
- #if defined(OS_WIN)
+ #if BUILDFLAG(IS_WIN)
content::InitializeDWriteFontProxy();
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
mojo::PendingRemote<font_service::mojom::FontService> font_service;
content::UtilityThread::Get()->BindHostReceiver(
font_service.InitWithNewPipeAndPassReceiver());
-@@ -54,7 +54,7 @@ PaintPreviewCompositorCollectionImpl::Pa
- // encoding to PNG or we could provide our own codec implementations.
+@@ -102,7 +102,7 @@ PaintPreviewCompositorCollectionImpl::Pa
+ base::BindOnce([] { skia::DefaultFontMgr(); }));
// Sanity check that fonts are working.
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// No WebSandbox is provided on Linux so the local fonts aren't accessible.
// This is fine since since the subsetted fonts are provided in the SkPicture.
// However, we still need to check that the SkFontMgr starts as it is used by
diff --git a/chromium/patches/patch-components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.h b/chromium/patches/patch-components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.h
deleted file mode 100644
index 62fc7e2c99..0000000000
--- a/chromium/patches/patch-components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.h
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- components/services/paint_preview_compositor/paint_preview_compositor_collection_impl.h.orig 2020-07-08 21:40:41.000000000 +0000
-+++ components/services/paint_preview_compositor/paint_preview_compositor_collection_impl.h
-@@ -20,7 +20,7 @@
- #include "mojo/public/cpp/bindings/pending_receiver.h"
- #include "mojo/public/cpp/bindings/receiver.h"
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "components/services/font/public/cpp/font_loader.h"
- #include "third_party/skia/include/core/SkRefCnt.h"
- #endif
-@@ -74,7 +74,7 @@ class PaintPreviewCompositorCollectionIm
- std::unique_ptr<PaintPreviewCompositorImpl>>
- compositors_;
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- sk_sp<font_service::FontLoader> font_loader_;
- #endif
-
diff --git a/chromium/patches/patch-components_signin_features.gni b/chromium/patches/patch-components_signin_features.gni
deleted file mode 100644
index 12b4869c80..0000000000
--- a/chromium/patches/patch-components_signin_features.gni
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/signin/features.gni.orig 2020-07-15 18:55:55.000000000 +0000
-+++ components/signin/features.gni
-@@ -3,7 +3,7 @@
- # found in the LICENSE file.
-
- # Dice is supported on the platform (but not necessarily enabled).
--enable_dice_support = (is_linux && !is_chromeos) || is_mac || is_win
-+enable_dice_support = ((is_linux || is_bsd) && !is_chromeos) || is_mac || is_win
-
- # Mirror is enabled and other account consistency mechanisms are not available.
- enable_mirror = is_android || is_ios
diff --git a/chromium/patches/patch-components_signin_public_base_signin__switches.cc b/chromium/patches/patch-components_signin_public_base_signin__switches.cc
new file mode 100644
index 0000000000..76e855d493
--- /dev/null
+++ b/chromium/patches/patch-components_signin_public_base_signin__switches.cc
@@ -0,0 +1,31 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/signin/public/base/signin_switches.cc.orig 2024-07-24 02:44:35.496671000 +0000
++++ components/signin/public/base/signin_switches.cc
+@@ -129,11 +129,11 @@ bool IsExplicitBrowserSigninUIOnDesktopE
+ }
+
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || \
+- BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)
++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS) || BUILDFLAG(IS_BSD)
+
+ // Desktop and Android are being launched (enabled by default), iOS is pending.
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || \
+- BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ #define MINOR_MODE_FEATURE_DEFAULT_STATUS base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+ #define MINOR_MODE_FEATURE_DEFAULT_STATUS base::FEATURE_DISABLED_BY_DEFAULT
+@@ -147,7 +147,7 @@ constexpr int kMinorModeRestrictionsFetc
+ #if BUILDFLAG(IS_ANDROID)
+ // Based on Signin.AccountCapabilities.UserVisibleLatency
+ 1000;
+-#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ // Based on Signin.SyncOptIn.PreSyncConfirmationLatency
+ 1000;
+ #elif BUILDFLAG(IS_IOS)
diff --git a/chromium/patches/patch-components_signin_public_base_signin__switches.h b/chromium/patches/patch-components_signin_public_base_signin__switches.h
new file mode 100644
index 0000000000..64550452f0
--- /dev/null
+++ b/chromium/patches/patch-components_signin_public_base_signin__switches.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/signin/public/base/signin_switches.h.orig 2024-07-24 02:44:35.496671000 +0000
++++ components/signin/public/base/signin_switches.h
+@@ -112,7 +112,7 @@ bool IsExplicitBrowserSigninUIOnDesktopE
+
+ // Controls the view mode for (history) sync screen.
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || \
+- BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)
++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(SIGNIN_SWITCHES)
+ BASE_DECLARE_FEATURE(kMinorModeRestrictionsForHistorySyncOptIn);
+
diff --git a/chromium/patches/patch-components_soda_soda__util.cc b/chromium/patches/patch-components_soda_soda__util.cc
new file mode 100644
index 0000000000..89044f2ba6
--- /dev/null
+++ b/chromium/patches/patch-components_soda_soda__util.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/soda/soda_util.cc.orig 2024-07-24 02:44:35.512672400 +0000
++++ components/soda/soda_util.cc
+@@ -20,7 +20,7 @@
+ #include "base/win/windows_version.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) && defined(ARCH_CPU_X86_FAMILY)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(ARCH_CPU_X86_FAMILY)
+ #include "base/cpu.h"
+ #endif
+
+@@ -45,7 +45,7 @@ bool IsSupportedChromeOS() {
+ }
+ #endif // BUILDFLAG(IS_CHROMEOS)
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool IsSupportedLinux() {
+ #if defined(ARCH_CPU_X86_FAMILY)
+ // Check if the CPU has the required instruction set to run the Speech
+@@ -76,7 +76,7 @@ bool IsSupportedWin() {
+ bool IsOnDeviceSpeechRecognitionSupported() {
+ #if BUILDFLAG(IS_CHROMEOS)
+ return IsSupportedChromeOS();
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return IsSupportedLinux();
+ #elif BUILDFLAG(IS_WIN)
+ return IsSupportedWin();
diff --git a/chromium/patches/patch-components_startup__metric__utils_common_startup__metric__utils.cc b/chromium/patches/patch-components_startup__metric__utils_common_startup__metric__utils.cc
new file mode 100644
index 0000000000..b184099f52
--- /dev/null
+++ b/chromium/patches/patch-components_startup__metric__utils_common_startup__metric__utils.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/startup_metric_utils/common/startup_metric_utils.cc.orig 2024-07-24 02:44:35.524673700 +0000
++++ components/startup_metric_utils/common/startup_metric_utils.cc
+@@ -85,7 +85,7 @@ base::TimeTicks CommonStartupMetricRecor
+ // Enabling this logic on OS X causes a significant performance regression.
+ // TODO(crbug.com/40464036): Remove IS_APPLE ifdef once priority changes are
+ // ignored on Mac main thread.
+-#if !BUILDFLAG(IS_APPLE)
++#if !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD)
+ static bool statics_initialized = false;
+ if (!statics_initialized) {
+ statics_initialized = true;
diff --git a/chromium/patches/patch-components_storage__monitor_BUILD.gn b/chromium/patches/patch-components_storage__monitor_BUILD.gn
index 29dd2bc57f..9eccfdb810 100644
--- a/chromium/patches/patch-components_storage__monitor_BUILD.gn
+++ b/chromium/patches/patch-components_storage__monitor_BUILD.gn
@@ -1,25 +1,26 @@
$NetBSD$
---- components/storage_monitor/BUILD.gn.orig 2020-06-25 09:31:28.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/storage_monitor/BUILD.gn.orig 2024-07-24 02:44:35.524673700 +0000
+++ components/storage_monitor/BUILD.gn
-@@ -79,6 +79,11 @@ static_library("storage_monitor") {
- } else {
- sources += [ "storage_monitor_dummy.cc" ]
+@@ -77,7 +77,7 @@ static_library("storage_monitor") {
+ deps += [ "//services/device/public/mojom" ]
}
-+ } else if (is_netbsd) {
-+ sources += [
-+ "storage_monitor_netbsd.cc",
-+ "storage_monitor_netbsd.h",
-+ ]
- }
-
- if (use_udev) {
-@@ -154,7 +159,7 @@ source_set("unit_tests") {
- "mtp_manager_client_chromeos_unittest.cc",
+ } else if (is_linux || is_chromeos_lacros) {
+- if (use_udev) {
++ if (use_udev && !is_bsd) {
+ sources += [
+ "mtab_watcher_linux.cc",
+ "mtab_watcher_linux.h",
+@@ -184,7 +184,7 @@ source_set("unit_tests") {
"storage_monitor_chromeos_unittest.cc",
]
-- } else if (is_linux) {
-+ } else if (is_linux || is_bsd) {
+ }
+- } else if (is_linux || is_chromeos_lacros) {
++ } else if ((is_linux || is_chromeos_lacros) && !is_bsd) {
+ if (use_udev) {
sources += [ "storage_monitor_linux_unittest.cc" ]
}
- }
diff --git a/chromium/patches/patch-components_storage__monitor_removable__device__constants.cc b/chromium/patches/patch-components_storage__monitor_removable__device__constants.cc
index c859bdb270..2242dca128 100644
--- a/chromium/patches/patch-components_storage__monitor_removable__device__constants.cc
+++ b/chromium/patches/patch-components_storage__monitor_removable__device__constants.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- components/storage_monitor/removable_device_constants.cc.orig 2020-07-08 21:40:41.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/storage_monitor/removable_device_constants.cc.orig 2024-07-24 02:44:35.528674100 +0000
+++ components/storage_monitor/removable_device_constants.cc
@@ -10,7 +10,7 @@ namespace storage_monitor {
const char kFSUniqueIdPrefix[] = "UUID:";
const char kVendorModelSerialPrefix[] = "VendorModelSerial:";
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
const char kVendorModelVolumeStoragePrefix[] = "VendorModelVolumeStorage:";
#endif
diff --git a/chromium/patches/patch-components_storage__monitor_removable__device__constants.h b/chromium/patches/patch-components_storage__monitor_removable__device__constants.h
index 3f658d9db0..6c3259d0b4 100644
--- a/chromium/patches/patch-components_storage__monitor_removable__device__constants.h
+++ b/chromium/patches/patch-components_storage__monitor_removable__device__constants.h
@@ -1,13 +1,17 @@
$NetBSD$
---- components/storage_monitor/removable_device_constants.h.orig 2020-07-08 21:40:41.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/storage_monitor/removable_device_constants.h.orig 2024-07-24 02:44:35.528674100 +0000
+++ components/storage_monitor/removable_device_constants.h
-@@ -15,7 +15,7 @@ namespace storage_monitor {
+@@ -14,7 +14,7 @@ namespace storage_monitor {
extern const char kFSUniqueIdPrefix[];
extern const char kVendorModelSerialPrefix[];
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
extern const char kVendorModelVolumeStoragePrefix[];
#endif
diff --git a/chromium/patches/patch-components_storage__monitor_storage__monitor__netbsd.cc b/chromium/patches/patch-components_storage__monitor_storage__monitor__netbsd.cc
deleted file mode 100644
index 32f822cae2..0000000000
--- a/chromium/patches/patch-components_storage__monitor_storage__monitor__netbsd.cc
+++ /dev/null
@@ -1,59 +0,0 @@
-$NetBSD$
-
---- components/storage_monitor/storage_monitor_netbsd.cc.orig 2020-07-12 14:12:07.439398430 +0000
-+++ components/storage_monitor/storage_monitor_netbsd.cc
-@@ -0,0 +1,54 @@
-+// Copyright 2014 The Chromium Authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+// StorageMonitorNetBSD implementation.
-+
-+#include "components/storage_monitor/storage_monitor_netbsd.h"
-+
-+#include <stdio.h>
-+
-+#include <list>
-+
-+#include "base/bind.h"
-+#include "base/metrics/histogram.h"
-+#include "base/process/kill.h"
-+#include "base/process/launch.h"
-+#include "base/stl_util.h"
-+#include "base/strings/string_number_conversions.h"
-+#include "base/strings/string_util.h"
-+#include "base/strings/utf_string_conversions.h"
-+#include "components/storage_monitor/media_storage_util.h"
-+#include "components/storage_monitor/removable_device_constants.h"
-+#include "components/storage_monitor/storage_info.h"
-+
-+using content::BrowserThread;
-+
-+namespace storage_monitor {
-+
-+namespace {
-+
-+} // namespace
-+
-+StorageMonitorNetBSD::StorageMonitorNetBSD() {
-+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
-+}
-+
-+StorageMonitorNetBSD::~StorageMonitorNetBSD() {
-+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
-+}
-+
-+void StorageMonitorNetBSD::Init() {
-+}
-+
-+bool StorageMonitorNetBSD::GetStorageInfoForPath(
-+ const base::FilePath& path,
-+ StorageInfo* device_info) const {
-+ return false; // TODO
-+}
-+
-+StorageMonitor* StorageMonitor::CreateInternal() {
-+ return new StorageMonitorNetBSD();
-+}
-+
-+} // namespace storage_monitor
diff --git a/chromium/patches/patch-components_storage__monitor_storage__monitor__netbsd.h b/chromium/patches/patch-components_storage__monitor_storage__monitor__netbsd.h
deleted file mode 100644
index 2fe4837c13..0000000000
--- a/chromium/patches/patch-components_storage__monitor_storage__monitor__netbsd.h
+++ /dev/null
@@ -1,50 +0,0 @@
-$NetBSD$
-
---- components/storage_monitor/storage_monitor_netbsd.h.orig 2020-07-12 14:12:09.343916180 +0000
-+++ components/storage_monitor/storage_monitor_netbsd.h
-@@ -0,0 +1,45 @@
-+// Copyright 2014 The Chromium Authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+// StorageMonitorNetBSD processes mount point change events, notifies listeners
-+// about the addition and deletion of media devices, and answers queries about
-+// mounted devices.
-+// StorageMonitorNetBSD lives on the UI thread, and uses ???
-+// the FILE thread to get mount point change events.
-+
-+#ifndef COMPONENTS_STORAGE_MONITOR_STORAGE_MONITOR_NETBSD_H_
-+#define COMPONENTS_STORAGE_MONITOR_STORAGE_MONITOR_NETBSD_H_
-+
-+#include <map>
-+#include <string>
-+
-+#include "base/compiler_specific.h"
-+#include "base/files/file_path.h"
-+#include "base/files/file_path_watcher.h"
-+#include "base/memory/weak_ptr.h"
-+#include "components/storage_monitor/storage_monitor.h"
-+#include "content/public/browser/browser_thread.h"
-+
-+namespace storage_monitor {
-+
-+class StorageMonitorNetBSD : public StorageMonitor {
-+ public:
-+ // Should only be called by browser start up code.
-+ // Use StorageMonitor::GetInstance() instead.
-+ explicit StorageMonitorNetBSD();
-+ virtual ~StorageMonitorNetBSD();
-+
-+ // Must be called for StorageMonitorNetBSD to work.
-+ virtual void Init() override;
-+ private:
-+ // StorageMonitor implementation.
-+ virtual bool GetStorageInfoForPath(const base::FilePath& path,
-+ StorageInfo* device_info) const override;
-+
-+ DISALLOW_COPY_AND_ASSIGN(StorageMonitorNetBSD);
-+};
-+
-+} // namespace storage_monitor
-+
-+#endif // COMPONENTS_STORAGE_MONITOR_STORAGE_MONITOR_FREEBSD_H_
diff --git a/chromium/patches/patch-components_supervised__user_core_browser_supervised__user__metrics__service.cc b/chromium/patches/patch-components_supervised__user_core_browser_supervised__user__metrics__service.cc
new file mode 100644
index 0000000000..acadf12f3c
--- /dev/null
+++ b/chromium/patches/patch-components_supervised__user_core_browser_supervised__user__metrics__service.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/supervised_user/core/browser/supervised_user_metrics_service.cc.orig 2024-07-24 02:44:35.884708600 +0000
++++ components/supervised_user/core/browser/supervised_user_metrics_service.cc
+@@ -47,7 +47,7 @@ SupervisedUserMetricsService::Supervised
+ extensions_metrics_delegate_(std::move(extensions_metrics_delegate)) {
+ DCHECK(pref_service_);
+ DCHECK(url_filter_);
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ CHECK(extensions_metrics_delegate_)
+ << "Extensions metrics delegate must exist on Win/Linux/Mac";
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
diff --git a/chromium/patches/patch-components_supervised__user_core_browser_supervised__user__preferences.cc b/chromium/patches/patch-components_supervised__user_core_browser_supervised__user__preferences.cc
new file mode 100644
index 0000000000..d89d9e57ef
--- /dev/null
+++ b/chromium/patches/patch-components_supervised__user_core_browser_supervised__user__preferences.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/supervised_user/core/browser/supervised_user_preferences.cc.orig 2024-07-24 02:44:35.888709000 +0000
++++ components/supervised_user/core/browser/supervised_user_preferences.cc
+@@ -153,7 +153,7 @@ void RegisterProfilePrefs(PrefRegistrySi
+ static_cast<int>(FirstTimeInterstitialBannerState::kUnknown));
+ registry->RegisterBooleanPref(prefs::kChildAccountStatusKnown, false);
+ #if BUILDFLAG(ENABLE_EXTENSIONS) && \
+- (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX))
++ (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD))
+ registry->RegisterIntegerPref(
+ prefs::kLocallyParentApprovedExtensionsMigrationState,
+ static_cast<int>(
diff --git a/chromium/patches/patch-components_supervised__user_core_browser_supervised__user__service.cc b/chromium/patches/patch-components_supervised__user_core_browser_supervised__user__service.cc
new file mode 100644
index 0000000000..0d65618f63
--- /dev/null
+++ b/chromium/patches/patch-components_supervised__user_core_browser_supervised__user__service.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/supervised_user/core/browser/supervised_user_service.cc.orig 2024-07-24 02:44:35.888709000 +0000
++++ components/supervised_user/core/browser/supervised_user_service.cc
+@@ -175,7 +175,7 @@ FirstTimeInterstitialBannerState Supervi
+ const FirstTimeInterstitialBannerState original_state) {
+ FirstTimeInterstitialBannerState target_state = original_state;
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_IOS)
++ BUILDFLAG(IS_IOS) || BUILDFLAG(IS_BSD)
+ if (original_state != FirstTimeInterstitialBannerState::kSetupComplete &&
+ can_show_first_time_interstitial_banner_) {
+ target_state = FirstTimeInterstitialBannerState::kNeedToShow;
diff --git a/chromium/patches/patch-components_supervised__user_core_common_features.cc b/chromium/patches/patch-components_supervised__user_core_common_features.cc
new file mode 100644
index 0000000000..2d7b2cbb9e
--- /dev/null
+++ b/chromium/patches/patch-components_supervised__user_core_common_features.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/supervised_user/core/common/features.cc.orig 2024-07-24 02:44:35.892709300 +0000
++++ components/supervised_user/core/common/features.cc
+@@ -59,7 +59,7 @@ BASE_FEATURE(kUpdatedSupervisedUserExten
+ "UpdatedSupervisedUserExtensionApprovalStrings",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ BASE_FEATURE(kEnableExtensionsPermissionsForSupervisedUsersOnDesktop,
+ "EnableExtensionsPermissionsForSupervisedUsersOnDesktop",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+@@ -74,7 +74,7 @@ bool IsSupervisedUserSkipParentApprovalT
+ #if BUILDFLAG(IS_CHROMEOS)
+ return base::FeatureList::IsEnabled(
+ kEnableSupervisedUserSkipParentApprovalToInstallExtensions);
+-#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ bool skipParentApprovalEnabled = base::FeatureList::IsEnabled(
+ kEnableSupervisedUserSkipParentApprovalToInstallExtensions);
+ bool permissionExtensionsForSupervisedUsersEnabled =
+@@ -101,7 +101,7 @@ BASE_FEATURE(kCustomWebSignInInterceptFo
+ "CustomWebSignInInterceptForSupervisedUsers",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ BASE_FEATURE(kHideGuestModeForSupervisedUsers,
+ "HideGuestModeForSupervisedUsers",
+ base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/chromium/patches/patch-components_supervised__user_core_common_features.h b/chromium/patches/patch-components_supervised__user_core_common_features.h
new file mode 100644
index 0000000000..76321341c3
--- /dev/null
+++ b/chromium/patches/patch-components_supervised__user_core_common_features.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/supervised_user/core/common/features.h.orig 2024-07-24 02:44:35.892709300 +0000
++++ components/supervised_user/core/common/features.h
+@@ -25,7 +25,7 @@ BASE_DECLARE_FEATURE(
+ // Applies new informative strings during the parental extension approval flow.
+ BASE_DECLARE_FEATURE(kUpdatedSupervisedUserExtensionApprovalStrings);
+
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ BASE_DECLARE_FEATURE(kEnableExtensionsPermissionsForSupervisedUsersOnDesktop);
+ #endif
+
+@@ -53,7 +53,7 @@ bool IsSupervisedUserSkipParentApprovalT
+ // Only affects Desktop platforms.
+ BASE_DECLARE_FEATURE(kCustomWebSignInInterceptForSupervisedUsers);
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ // This hides the following guest mode entry points for supervised users:
+ //
+ // * In the Profile menu for supervised profiles
diff --git a/chromium/patches/patch-components_supervised__user_core_common_pref__names.h b/chromium/patches/patch-components_supervised__user_core_common_pref__names.h
new file mode 100644
index 0000000000..16431c19e3
--- /dev/null
+++ b/chromium/patches/patch-components_supervised__user_core_common_pref__names.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/supervised_user/core/common/pref_names.h.orig 2024-07-24 02:44:35.892709300 +0000
++++ components/supervised_user/core/common/pref_names.h
+@@ -137,7 +137,7 @@ inline constexpr char kFirstTimeIntersti
+ "profile.managed.banner_state";
+
+ #if BUILDFLAG(ENABLE_EXTENSIONS)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // An integer pref that stores the current state of the local extension
+ // parent approval migration when the feature
+ // `kEnableSupervisedUserSkipParentApprovalToInstallExtensions` becomes enabled.
diff --git a/chromium/patches/patch-components_sync__device__info_local__device__info__util.cc b/chromium/patches/patch-components_sync__device__info_local__device__info__util.cc
index 62f59a7df6..6377d6f4af 100644
--- a/chromium/patches/patch-components_sync__device__info_local__device__info__util.cc
+++ b/chromium/patches/patch-components_sync__device__info_local__device__info__util.cc
@@ -1,13 +1,35 @@
$NetBSD$
---- components/sync_device_info/local_device_info_util.cc.orig 2020-07-08 21:40:41.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/sync_device_info/local_device_info_util.cc.orig 2024-07-24 02:44:35.980718000 +0000
+++ components/sync_device_info/local_device_info_util.cc
-@@ -19,7 +19,7 @@ std::string GetPersonalizableDeviceNameI
+@@ -84,7 +84,7 @@ void OnMachineStatisticsLoaded(LocalDevi
sync_pb::SyncEnums::DeviceType GetLocalDeviceType() {
- #if defined(OS_CHROMEOS)
+ #if BUILDFLAG(IS_CHROMEOS)
return sync_pb::SyncEnums_DeviceType_TYPE_CROS;
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
return sync_pb::SyncEnums_DeviceType_TYPE_LINUX;
- #elif defined(OS_ANDROID) || defined(OS_IOS)
+ #elif BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)
+ switch (ui::GetDeviceFormFactor()) {
+@@ -109,7 +109,7 @@ DeviceInfo::OsType GetLocalDeviceOSType(
+ return DeviceInfo::OsType::kChromeOsAsh;
+ #elif BUILDFLAG(IS_CHROMEOS_LACROS)
+ return DeviceInfo::OsType::kChromeOsLacros;
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return DeviceInfo::OsType::kLinux;
+ #elif BUILDFLAG(IS_ANDROID)
+ return DeviceInfo::OsType::kAndroid;
+@@ -128,7 +128,7 @@ DeviceInfo::OsType GetLocalDeviceOSType(
+
+ DeviceInfo::FormFactor GetLocalDeviceFormFactor() {
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ return DeviceInfo::FormFactor::kDesktop;
+ #elif BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)
return ui::GetDeviceFormFactor() == ui::DEVICE_FORM_FACTOR_TABLET
diff --git a/chromium/patches/patch-components_sync__device__info_local__device__info__util__linux.cc b/chromium/patches/patch-components_sync__device__info_local__device__info__util__linux.cc
index e5d64fd09d..8a3238477f 100644
--- a/chromium/patches/patch-components_sync__device__info_local__device__info__util__linux.cc
+++ b/chromium/patches/patch-components_sync__device__info_local__device__info__util__linux.cc
@@ -1,17 +1,20 @@
$NetBSD$
---- components/sync_device_info/local_device_info_util_linux.cc.orig 2020-07-15 18:55:55.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/sync_device_info/local_device_info_util_linux.cc.orig 2024-07-24 02:44:35.980718000 +0000
+++ components/sync_device_info/local_device_info_util_linux.cc
-@@ -36,6 +36,12 @@ std::string GetChromeOSDeviceNameFromTyp
+@@ -9,6 +9,11 @@
+
+ #include "base/linux_util.h"
+
++#if defined(__FreeBSD__) || defined(__NetBSD__)
++#include <sys/param.h>
++#define HOST_NAME_MAX MAXHOSTNAMELEN
++#endif
++
+ namespace syncer {
+
std::string GetPersonalizableDeviceNameInternal() {
- #if defined(OS_CHROMEOS)
- return GetChromeOSDeviceNameFromType();
-+#elif defined(__NetBSD__)
-+ int len = sysconf(_SC_HOST_NAME_MAX);
-+ char hostname[len];
-+ if (gethostname(hostname, _SC_HOST_NAME_MAX) == 0) // Success.
-+ return hostname;
-+ return base::GetLinuxDistro();
- #else
- char hostname[HOST_NAME_MAX];
- if (gethostname(hostname, HOST_NAME_MAX) == 0) // Success.
diff --git a/chromium/patches/patch-components_sync_base_sync__util.cc b/chromium/patches/patch-components_sync_base_sync__util.cc
new file mode 100644
index 0000000000..60724015ff
--- /dev/null
+++ b/chromium/patches/patch-components_sync_base_sync__util.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/sync/base/sync_util.cc.orig 2024-07-24 02:44:35.900710000 +0000
++++ components/sync/base/sync_util.cc
+@@ -45,6 +45,8 @@ std::string GetSystemString() {
+ system = "FREEBSD ";
+ #elif BUILDFLAG(IS_OPENBSD)
+ system = "OPENBSD ";
++#elif BUILDFLAG(IS_NETBSD)
++ system = "NETBSD ";
+ #elif BUILDFLAG(IS_MAC)
+ system = "MAC ";
+ #endif
diff --git a/chromium/patches/patch-components_system__cpu_cpu__probe.cc b/chromium/patches/patch-components_system__cpu_cpu__probe.cc
new file mode 100644
index 0000000000..e50897e52e
--- /dev/null
+++ b/chromium/patches/patch-components_system__cpu_cpu__probe.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/system_cpu/cpu_probe.cc.orig 2024-07-24 02:44:35.996719400 +0000
++++ components/system_cpu/cpu_probe.cc
+@@ -30,6 +30,9 @@ std::unique_ptr<CpuProbe> CpuProbe::Crea
+ return CpuProbeWin::Create();
+ #elif BUILDFLAG(IS_MAC)
+ return CpuProbeMac::Create();
++#elif BUILDFLAG(IS_BSD)
++ NOTIMPLEMENTED();
++ return nullptr;
+ #else
+ return nullptr;
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
diff --git a/chromium/patches/patch-components_translate_core_common_translate__util.cc b/chromium/patches/patch-components_translate_core_common_translate__util.cc
new file mode 100644
index 0000000000..058b676ff1
--- /dev/null
+++ b/chromium/patches/patch-components_translate_core_common_translate__util.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/translate/core/common/translate_util.cc.orig 2024-07-24 02:44:36.484766700 +0000
++++ components/translate/core/common/translate_util.cc
+@@ -21,7 +21,7 @@ const char kSecurityOrigin[] = "https://
+ BASE_FEATURE(kTFLiteLanguageDetectionEnabled,
+ "TFLiteLanguageDetectionEnabled",
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || \
+- BUILDFLAG(IS_MAC) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS) || BUILDFLAG(IS_BSD)
+ base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+ base::FEATURE_DISABLED_BY_DEFAULT
diff --git a/chromium/patches/patch-components_update__client_update__query__params.cc b/chromium/patches/patch-components_update__client_update__query__params.cc
index 0c24d65a4b..ca1ca02046 100644
--- a/chromium/patches/patch-components_update__client_update__query__params.cc
+++ b/chromium/patches/patch-components_update__client_update__query__params.cc
@@ -1,10 +1,14 @@
$NetBSD$
---- components/update_client/update_query_params.cc.orig 2020-07-08 21:40:41.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/update_client/update_query_params.cc.orig 2024-07-24 02:44:36.528771000 +0000
+++ components/update_client/update_query_params.cc
-@@ -39,6 +39,10 @@ const char kOs[] =
+@@ -42,6 +42,10 @@ const char kOs[] =
"fuchsia";
- #elif defined(OS_OPENBSD)
+ #elif BUILDFLAG(IS_OPENBSD)
"openbsd";
+#elif defined(OS_FREEBSD)
+ "freebsd";
diff --git a/chromium/patches/patch-components_url__formatter_spoof__checks_idn__spoof__checker.cc b/chromium/patches/patch-components_url__formatter_spoof__checks_idn__spoof__checker.cc
index 7db771e985..bf7b5d020d 100644
--- a/chromium/patches/patch-components_url__formatter_spoof__checks_idn__spoof__checker.cc
+++ b/chromium/patches/patch-components_url__formatter_spoof__checks_idn__spoof__checker.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- components/url_formatter/spoof_checks/idn_spoof_checker.cc.orig 2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/url_formatter/spoof_checks/idn_spoof_checker.cc.orig 2024-07-24 02:44:36.532771300 +0000
+++ components/url_formatter/spoof_checks/idn_spoof_checker.cc
-@@ -291,7 +291,7 @@ IDNSpoofChecker::IDNSpoofChecker() {
+@@ -294,7 +294,7 @@ IDNSpoofChecker::IDNSpoofChecker() {
// The ideal fix would be to change the omnibox font used for Thai. In
// that case, the Linux-only list should be revisited and potentially
// removed.
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
"[ทนบพรหเแ๐ดลปฟม]",
#else
"[บพเแ๐]",
diff --git a/chromium/patches/patch-components_url__matcher_regex__set__matcher.cc b/chromium/patches/patch-components_url__matcher_regex__set__matcher.cc
deleted file mode 100644
index 006ba5e022..0000000000
--- a/chromium/patches/patch-components_url__matcher_regex__set__matcher.cc
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
---- components/url_matcher/regex_set_matcher.cc.orig 2020-07-08 21:40:41.000000000 +0000
-+++ components/url_matcher/regex_set_matcher.cc
-@@ -12,8 +12,8 @@
- #include "base/logging.h"
- #include "base/strings/string_util.h"
- #include "components/url_matcher/substring_set_matcher.h"
--#include "third_party/re2/src/re2/filtered_re2.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/filtered_re2.h>
-+#include <re2/re2.h>
-
- namespace url_matcher {
-
diff --git a/chromium/patches/patch-components_url__matcher_url__matcher__factory.cc b/chromium/patches/patch-components_url__matcher_url__matcher__factory.cc
deleted file mode 100644
index 0fe33c429c..0000000000
--- a/chromium/patches/patch-components_url__matcher_url__matcher__factory.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/url_matcher/url_matcher_factory.cc.orig 2020-07-08 21:40:41.000000000 +0000
-+++ components/url_matcher/url_matcher_factory.cc
-@@ -16,7 +16,7 @@
- #include "base/values.h"
- #include "components/url_matcher/url_matcher_constants.h"
- #include "components/url_matcher/url_matcher_helpers.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
-
- namespace url_matcher {
-
diff --git a/chromium/patches/patch-components_user__education_views_help__bubble__view.cc b/chromium/patches/patch-components_user__education_views_help__bubble__view.cc
new file mode 100644
index 0000000000..542a03c85f
--- /dev/null
+++ b/chromium/patches/patch-components_user__education_views_help__bubble__view.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/user_education/views/help_bubble_view.cc.orig 2024-07-24 02:44:36.556773700 +0000
++++ components/user_education/views/help_bubble_view.cc
+@@ -997,7 +997,7 @@ gfx::Rect HelpBubbleView::GetAnchorRect(
+ void HelpBubbleView::OnBeforeBubbleWidgetInit(views::Widget::InitParams* params,
+ views::Widget* widget) const {
+ BubbleDialogDelegateView::OnBeforeBubbleWidgetInit(params, widget);
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Help bubbles anchored to menus may be clipped to their anchors' bounds,
+ // resulting in visual errors, unless they use accelerated rendering. See
+ // crbug.com/1445770 for details. This also applies to bubbles anchored to
diff --git a/chromium/patches/patch-components_variations_service_variations__service.cc b/chromium/patches/patch-components_variations_service_variations__service.cc
new file mode 100644
index 0000000000..c097738cc7
--- /dev/null
+++ b/chromium/patches/patch-components_variations_service_variations__service.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/variations/service/variations_service.cc.orig 2024-07-24 02:44:36.728790300 +0000
++++ components/variations/service/variations_service.cc
+@@ -101,7 +101,7 @@ std::string GetPlatformString() {
+ return "android";
+ #elif BUILDFLAG(IS_FUCHSIA)
+ return "fuchsia";
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || BUILDFLAG(IS_SOLARIS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || BUILDFLAG(IS_SOLARIS) || BUILDFLAG(IS_BSD)
+ // Default BSD and SOLARIS to Linux to not break those builds, although these
+ // platforms are not officially supported by Chrome.
+ return "linux";
diff --git a/chromium/patches/patch-components_visited__url__ranking_public_url__visit__util.cc b/chromium/patches/patch-components_visited__url__ranking_public_url__visit__util.cc
new file mode 100644
index 0000000000..bd5855e175
--- /dev/null
+++ b/chromium/patches/patch-components_visited__url__ranking_public_url__visit__util.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/visited_url_ranking/public/url_visit_util.cc.orig 2024-07-24 02:44:36.752792600 +0000
++++ components/visited_url_ranking/public/url_visit_util.cc
+@@ -54,7 +54,7 @@ PlatformType GetPlatformInput() {
+ return PlatformType::kWindows;
+ #elif BUILDFLAG(IS_MAC)
+ return PlatformType::kMac;
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return PlatformType::kLinux;
+ #elif BUILDFLAG(IS_IOS)
+ return PlatformType::kIos;
diff --git a/chromium/patches/patch-components_viz_common_features.cc b/chromium/patches/patch-components_viz_common_features.cc
index fc2f53d327..e327d03c9b 100644
--- a/chromium/patches/patch-components_viz_common_features.cc
+++ b/chromium/patches/patch-components_viz_common_features.cc
@@ -1,13 +1,26 @@
$NetBSD$
---- components/viz/common/features.cc.orig 2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/viz/common/features.cc.orig 2024-07-24 02:44:36.760793400 +0000
+++ components/viz/common/features.cc
-@@ -20,7 +20,7 @@ const base::Feature kUseSkiaForGLReadbac
- base::FEATURE_ENABLED_BY_DEFAULT};
+@@ -263,7 +263,7 @@ BASE_FEATURE(kBufferQueueImageSetPurgeab
+ "BufferQueueImageSetPurgeable",
+ base::FEATURE_ENABLED_BY_DEFAULT);
+
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // On platforms using SkiaOutputDeviceBufferQueue and not yet universally using
+ // SkiaRenderer-allocated images, when this is true SkiaRenderer will allocate
+ // and maintain a buffer queue of images for the root render pass, instead of
+@@ -559,7 +559,7 @@ bool ShouldOnBeginFrameThrottleVideo() {
+ return base::FeatureList::IsEnabled(features::kOnBeginFrameThrottleVideo);
+ }
- // Use the SkiaRenderer.
--#if defined(OS_LINUX) && !(defined(OS_CHROMEOS) || BUILDFLAG(IS_CHROMECAST))
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !(defined(OS_CHROMEOS) || BUILDFLAG(IS_CHROMECAST))
- const base::Feature kUseSkiaRenderer{"UseSkiaRenderer",
- base::FEATURE_ENABLED_BY_DEFAULT};
- #else
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool ShouldRendererAllocateImages() {
+ return base::FeatureList::IsEnabled(kRendererAllocatesImages);
+ }
diff --git a/chromium/patches/patch-components_viz_common_features.h b/chromium/patches/patch-components_viz_common_features.h
new file mode 100644
index 0000000000..a677654339
--- /dev/null
+++ b/chromium/patches/patch-components_viz_common_features.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/viz/common/features.h.orig 2024-07-24 02:44:36.760793400 +0000
++++ components/viz/common/features.h
+@@ -75,7 +75,7 @@ VIZ_COMMON_EXPORT BASE_DECLARE_FEATURE(k
+ VIZ_COMMON_EXPORT BASE_DECLARE_FEATURE(kAllowUndamagedNonrootRenderPassToSkip);
+ VIZ_COMMON_EXPORT BASE_DECLARE_FEATURE(
+ kAllowForceMergeRenderPassWithRequireOverlayQuads);
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ VIZ_COMMON_EXPORT BASE_DECLARE_FEATURE(kRendererAllocatesImages);
+ #endif
+ VIZ_COMMON_EXPORT BASE_DECLARE_FEATURE(kBufferQueueImageSetPurgeable);
+@@ -136,7 +136,7 @@ VIZ_COMMON_EXPORT std::optional<double>
+ VIZ_COMMON_EXPORT std::optional<double> IsDynamicSchedulerEnabledForClients();
+ VIZ_COMMON_EXPORT int MaxOverlaysConsidered();
+ VIZ_COMMON_EXPORT bool ShouldOnBeginFrameThrottleVideo();
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ VIZ_COMMON_EXPORT bool ShouldRendererAllocateImages();
+ #endif
+ VIZ_COMMON_EXPORT bool IsOnBeginFrameAcksEnabled();
diff --git a/chromium/patches/patch-components_viz_common_gpu_dawn__context__provider.cc b/chromium/patches/patch-components_viz_common_gpu_dawn__context__provider.cc
deleted file mode 100644
index b16ebe0832..0000000000
--- a/chromium/patches/patch-components_viz_common_gpu_dawn__context__provider.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/viz/common/gpu/dawn_context_provider.cc.orig 2020-07-08 21:40:41.000000000 +0000
-+++ components/viz/common/gpu/dawn_context_provider.cc
-@@ -17,7 +17,7 @@ namespace {
- dawn_native::BackendType GetDefaultBackendType() {
- #if defined(OS_WIN)
- return dawn_native::BackendType::D3D12;
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- return dawn_native::BackendType::Vulkan;
- #else
- NOTREACHED();
diff --git a/chromium/patches/patch-components_viz_host_host__display__client.cc b/chromium/patches/patch-components_viz_host_host__display__client.cc
index 88ebf75b32..e5add8d6bc 100644
--- a/chromium/patches/patch-components_viz_host_host__display__client.cc
+++ b/chromium/patches/patch-components_viz_host_host__display__client.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- components/viz/host/host_display_client.cc.orig 2020-07-08 21:40:41.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/viz/host/host_display_client.cc.orig 2024-07-24 02:44:36.776795000 +0000
+++ components/viz/host/host_display_client.cc
-@@ -56,7 +56,7 @@ void HostDisplayClient::CreateLayeredWin
+@@ -65,7 +65,7 @@ void HostDisplayClient::AddChildWindowTo
}
#endif
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11)
void HostDisplayClient::DidCompleteSwapWithNewSize(const gfx::Size& size) {
NOTIMPLEMENTED();
}
diff --git a/chromium/patches/patch-components_viz_host_host__display__client.h b/chromium/patches/patch-components_viz_host_host__display__client.h
index 90cf5abd82..ef8d15cbd3 100644
--- a/chromium/patches/patch-components_viz_host_host__display__client.h
+++ b/chromium/patches/patch-components_viz_host_host__display__client.h
@@ -1,13 +1,17 @@
$NetBSD$
---- components/viz/host/host_display_client.h.orig 2020-07-08 21:40:41.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/viz/host/host_display_client.h.orig 2024-07-24 02:44:36.780795300 +0000
+++ components/viz/host/host_display_client.h
-@@ -43,7 +43,7 @@ class VIZ_HOST_EXPORT HostDisplayClient
- mojo::PendingReceiver<mojom::LayeredWindowUpdater> receiver) override;
+@@ -52,7 +52,7 @@ class VIZ_HOST_EXPORT HostDisplayClient
+ void AddChildWindowToBrowser(gpu::SurfaceHandle child_window) override;
#endif
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11)
void DidCompleteSwapWithNewSize(const gfx::Size& size) override;
- #endif
+ #endif // BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
diff --git a/chromium/patches/patch-components_viz_service_display__embedder_skia__output__device__buffer__queue.cc b/chromium/patches/patch-components_viz_service_display__embedder_skia__output__device__buffer__queue.cc
new file mode 100644
index 0000000000..e2df18eb89
--- /dev/null
+++ b/chromium/patches/patch-components_viz_service_display__embedder_skia__output__device__buffer__queue.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/viz/service/display_embedder/skia_output_device_buffer_queue.cc.orig 2024-07-24 02:44:36.812798500 +0000
++++ components/viz/service/display_embedder/skia_output_device_buffer_queue.cc
+@@ -174,7 +174,7 @@ SkiaOutputDeviceBufferQueue::SkiaOutputD
+ capabilities_.only_invalidates_damage_rect = false;
+ capabilities_.number_of_buffers = 3;
+
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ capabilities_.renderer_allocates_images =
+ ::features::ShouldRendererAllocateImages();
+ #else
diff --git a/chromium/patches/patch-components_viz_service_display__embedder_skia__output__surface__impl.cc b/chromium/patches/patch-components_viz_service_display__embedder_skia__output__surface__impl.cc
new file mode 100644
index 0000000000..eb17e462f2
--- /dev/null
+++ b/chromium/patches/patch-components_viz_service_display__embedder_skia__output__surface__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/viz/service/display_embedder/skia_output_surface_impl.cc.orig 2024-07-24 02:44:36.816799000 +0000
++++ components/viz/service/display_embedder/skia_output_surface_impl.cc
+@@ -1546,7 +1546,7 @@ GrBackendFormat SkiaOutputSurfaceImpl::G
+ ->GetVulkanPhysicalDevice(),
+ VK_IMAGE_TILING_OPTIMAL, vk_format,
+ si_format, yuv_color_space, ycbcr_info);
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Textures that were allocated _on linux_ with ycbcr info came from
+ // VaapiVideoDecoder, which exports using DRM format modifiers.
+ return GrBackendFormats::MakeVk(gr_ycbcr_info,
diff --git a/chromium/patches/patch-components_viz_service_display__embedder_software__output__surface.cc b/chromium/patches/patch-components_viz_service_display__embedder_software__output__surface.cc
index 9662415564..1c146e16a1 100644
--- a/chromium/patches/patch-components_viz_service_display__embedder_software__output__surface.cc
+++ b/chromium/patches/patch-components_viz_service_display__embedder_software__output__surface.cc
@@ -1,22 +1,26 @@
$NetBSD$
---- components/viz/service/display_embedder/software_output_surface.cc.orig 2020-07-08 21:40:41.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/viz/service/display_embedder/software_output_surface.cc.orig 2024-07-24 02:44:36.816799000 +0000
+++ components/viz/service/display_embedder/software_output_surface.cc
-@@ -114,7 +114,7 @@ void SoftwareOutputSurface::SwapBuffersC
- base::TimeTicks now = base::TimeTicks::Now();
- base::TimeDelta interval_to_next_refresh =
+@@ -124,7 +124,7 @@ void SoftwareOutputSurface::SwapBuffersC
now.SnappedToNextTick(refresh_timebase_, refresh_interval_) - now;
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
if (needs_swap_size_notifications_)
client_->DidSwapWithSize(pixel_size);
#endif
-@@ -143,7 +143,7 @@ gfx::OverlayTransform SoftwareOutputSurf
- return gfx::OVERLAY_TRANSFORM_NONE;
- }
+@@ -153,7 +153,7 @@ gfx::OverlayTransform SoftwareOutputSurf
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
void SoftwareOutputSurface::SetNeedsSwapSizeNotifications(
bool needs_swap_size_notifications) {
needs_swap_size_notifications_ = needs_swap_size_notifications;
diff --git a/chromium/patches/patch-components_viz_service_display__embedder_software__output__surface.h b/chromium/patches/patch-components_viz_service_display__embedder_software__output__surface.h
index 829c45d940..af5660dc78 100644
--- a/chromium/patches/patch-components_viz_service_display__embedder_software__output__surface.h
+++ b/chromium/patches/patch-components_viz_service_display__embedder_software__output__surface.h
@@ -1,22 +1,26 @@
$NetBSD$
---- components/viz/service/display_embedder/software_output_surface.h.orig 2020-07-08 21:40:41.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/viz/service/display_embedder/software_output_surface.h.orig 2024-07-24 02:44:36.816799000 +0000
+++ components/viz/service/display_embedder/software_output_surface.h
-@@ -49,7 +49,7 @@ class VIZ_SERVICE_EXPORT SoftwareOutputS
- UpdateVSyncParametersCallback callback) override;
- void SetDisplayTransformHint(gfx::OverlayTransform transform) override {}
+@@ -47,7 +47,7 @@ class VIZ_SERVICE_EXPORT SoftwareOutputS
gfx::OverlayTransform GetDisplayTransform() override;
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
void SetNeedsSwapSizeNotifications(
bool needs_swap_size_notifications) override;
#endif
-@@ -72,7 +72,7 @@ class VIZ_SERVICE_EXPORT SoftwareOutputS
- std::queue<std::vector<ui::LatencyInfo>> stored_latency_info_;
- ui::LatencyTracker latency_tracker_;
+@@ -70,7 +70,7 @@ class VIZ_SERVICE_EXPORT SoftwareOutputS
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
bool needs_swap_size_notifications_ = false;
#endif
diff --git a/chromium/patches/patch-components_viz_service_display_skia__renderer.cc b/chromium/patches/patch-components_viz_service_display_skia__renderer.cc
new file mode 100644
index 0000000000..918a9175be
--- /dev/null
+++ b/chromium/patches/patch-components_viz_service_display_skia__renderer.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/viz/service/display/skia_renderer.cc.orig 2024-07-24 02:44:36.804797600 +0000
++++ components/viz/service/display/skia_renderer.cc
+@@ -1422,7 +1422,7 @@ void SkiaRenderer::ClearFramebuffer() {
+ if (current_frame()->current_render_pass->has_transparent_background) {
+ ClearCanvas(SkColors::kTransparent);
+ } else {
+-#if DCHECK_IS_ON() && !BUILDFLAG(IS_LINUX)
++#if DCHECK_IS_ON() && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD)
+ // On DEBUG builds, opaque render passes are cleared to blue
+ // to easily see regions that were not drawn on the screen.
+ // ClearCavas() call causes slight pixel difference, so linux-ref and
diff --git a/chromium/patches/patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.cc b/chromium/patches/patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.cc
index 8b070359aa..478414e1ae 100644
--- a/chromium/patches/patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.cc
+++ b/chromium/patches/patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.cc
@@ -1,22 +1,26 @@
$NetBSD$
---- components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc.orig 2020-07-08 21:40:41.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc.orig 2024-07-24 02:44:36.824799500 +0000
+++ components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc
-@@ -50,7 +50,7 @@ RootCompositorFrameSinkImpl::Create(
+@@ -111,7 +111,7 @@ RootCompositorFrameSinkImpl::Create(
output_surface->SetNeedsSwapSizeNotifications(
params->send_swap_size_notifications);
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11)
// For X11, we need notify client about swap completion after resizing, so the
// client can use it for synchronize with X11 WM.
output_surface->SetNeedsSwapSizeNotifications(true);
-@@ -448,7 +448,7 @@ void RootCompositorFrameSinkImpl::Displa
- #if defined(OS_ANDROID)
- if (display_client_)
+@@ -656,7 +656,7 @@ void RootCompositorFrameSinkImpl::Displa
+ if (display_client_ && enable_swap_completion_callback_) {
display_client_->DidCompleteSwapWithSize(pixel_size);
--#elif defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#elif (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ }
+-#elif BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
++#elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11)
if (display_client_ && pixel_size != last_swap_pixel_size_) {
last_swap_pixel_size_ = pixel_size;
display_client_->DidCompleteSwapWithNewSize(last_swap_pixel_size_);
diff --git a/chromium/patches/patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.h b/chromium/patches/patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.h
index ea9ca15049..b8a9d06c29 100644
--- a/chromium/patches/patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.h
+++ b/chromium/patches/patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.h
@@ -1,13 +1,17 @@
$NetBSD$
---- components/viz/service/frame_sinks/root_compositor_frame_sink_impl.h.orig 2020-07-08 21:40:41.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/viz/service/frame_sinks/root_compositor_frame_sink_impl.h.orig 2024-07-24 02:44:36.824799500 +0000
+++ components/viz/service/frame_sinks/root_compositor_frame_sink_impl.h
-@@ -157,7 +157,7 @@ class RootCompositorFrameSinkImpl : publ
- base::TimeDelta preferred_frame_interval_ =
- FrameRateDecider::UnspecifiedFrameInterval();
+@@ -209,7 +209,7 @@ class VIZ_SERVICE_EXPORT RootCompositorF
+ // See comments on `EvictionHandler`.
+ EvictionHandler eviction_handler_;
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11)
gfx::Size last_swap_pixel_size_;
- #endif
+ #endif // BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
diff --git a/chromium/patches/patch-components_viz_test_fake__display__client.cc b/chromium/patches/patch-components_viz_test_fake__display__client.cc
new file mode 100644
index 0000000000..75cef9234a
--- /dev/null
+++ b/chromium/patches/patch-components_viz_test_fake__display__client.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/viz/test/fake_display_client.cc.orig 2024-07-24 02:44:36.836800800 +0000
++++ components/viz/test/fake_display_client.cc
+@@ -27,7 +27,7 @@ void FakeDisplayClient::AddChildWindowTo
+ gpu::SurfaceHandle child_window) {}
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11)
+ void FakeDisplayClient::DidCompleteSwapWithNewSize(const gfx::Size& size) {}
+ #endif // BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
+
diff --git a/chromium/patches/patch-components_viz_test_fake__display__client.h b/chromium/patches/patch-components_viz_test_fake__display__client.h
new file mode 100644
index 0000000000..6826184b60
--- /dev/null
+++ b/chromium/patches/patch-components_viz_test_fake__display__client.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/viz/test/fake_display_client.h.orig 2024-07-24 02:44:36.836800800 +0000
++++ components/viz/test/fake_display_client.h
+@@ -36,7 +36,7 @@ class FakeDisplayClient : public mojom::
+ void AddChildWindowToBrowser(gpu::SurfaceHandle child_window) override;
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11)
+ void DidCompleteSwapWithNewSize(const gfx::Size& size) override;
+ #endif // BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
+
diff --git a/chromium/patches/patch-components_viz_test_fake__output__surface.cc b/chromium/patches/patch-components_viz_test_fake__output__surface.cc
deleted file mode 100644
index 5af4860c83..0000000000
--- a/chromium/patches/patch-components_viz_test_fake__output__surface.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/viz/test/fake_output_surface.cc.orig 2020-07-08 21:40:42.000000000 +0000
-+++ components/viz/test/fake_output_surface.cc
-@@ -111,7 +111,7 @@ gfx::OverlayTransform FakeOutputSurface:
- : gfx::OVERLAY_TRANSFORM_NONE;
- }
-
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- void FakeOutputSurface::SetNeedsSwapSizeNotifications(
- bool needs_swap_size_notifications) {}
- #endif
diff --git a/chromium/patches/patch-components_viz_test_fake__output__surface.h b/chromium/patches/patch-components_viz_test_fake__output__surface.h
deleted file mode 100644
index ac1a6f1bee..0000000000
--- a/chromium/patches/patch-components_viz_test_fake__output__surface.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/viz/test/fake_output_surface.h.orig 2020-07-08 21:40:42.000000000 +0000
-+++ components/viz/test/fake_output_surface.h
-@@ -82,7 +82,7 @@ class FakeOutputSurface : public OutputS
- UpdateVSyncParametersCallback callback) override;
- void SetDisplayTransformHint(gfx::OverlayTransform transform) override;
- gfx::OverlayTransform GetDisplayTransform() override;
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- void SetNeedsSwapSizeNotifications(
- bool needs_swap_size_notifications) override;
- #endif
diff --git a/chromium/patches/patch-components_viz_test_mock__display__client.h b/chromium/patches/patch-components_viz_test_mock__display__client.h
index 5e17be0ad6..98a2606e33 100644
--- a/chromium/patches/patch-components_viz_test_mock__display__client.h
+++ b/chromium/patches/patch-components_viz_test_mock__display__client.h
@@ -1,13 +1,17 @@
$NetBSD$
---- components/viz/test/mock_display_client.h.orig 2020-07-08 21:40:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- components/viz/test/mock_display_client.h.orig 2024-07-24 02:44:36.836800800 +0000
+++ components/viz/test/mock_display_client.h
-@@ -36,7 +36,7 @@ class MockDisplayClient : public mojom::
+@@ -43,7 +43,7 @@ class MockDisplayClient : public mojom::
MOCK_METHOD1(SetWideColorEnabled, void(bool enabled));
MOCK_METHOD1(SetPreferredRefreshRate, void(float refresh_rate));
#endif
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11)
MOCK_METHOD1(DidCompleteSwapWithNewSize, void(const gfx::Size&));
- #endif
+ #endif // BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
diff --git a/chromium/patches/patch-components_webcrypto_algorithms_test__helpers.cc b/chromium/patches/patch-components_webcrypto_algorithms_test__helpers.cc
deleted file mode 100644
index 0f863ded1a..0000000000
--- a/chromium/patches/patch-components_webcrypto_algorithms_test__helpers.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/webcrypto/algorithms/test_helpers.cc.orig 2020-07-08 21:40:42.000000000 +0000
-+++ components/webcrypto/algorithms/test_helpers.cc
-@@ -25,7 +25,7 @@
- #include "components/webcrypto/status.h"
- #include "third_party/blink/public/platform/web_crypto_algorithm_params.h"
- #include "third_party/blink/public/platform/web_crypto_key_algorithm.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
-
- namespace webcrypto {
-
diff --git a/chromium/patches/patch-content_app_BUILD.gn b/chromium/patches/patch-content_app_BUILD.gn
new file mode 100644
index 0000000000..b5aaf26d0c
--- /dev/null
+++ b/chromium/patches/patch-content_app_BUILD.gn
@@ -0,0 +1,21 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/app/BUILD.gn.orig 2024-07-24 02:44:36.948811500 +0000
++++ content/app/BUILD.gn
+@@ -96,9 +96,9 @@ source_set("content_main_runner_app") {
+ "//chromeos/startup:constants",
+ ]
+ }
+- if (build_tflite_with_xnnpack) {
+- deps += [ "//third_party/cpuinfo" ]
+- }
++# if (build_tflite_with_xnnpack) {
++# deps += [ "//third_party/cpuinfo" ]
++# }
+ }
+
+ source_set("app") {
diff --git a/chromium/patches/patch-content_app_content__main.cc b/chromium/patches/patch-content_app_content__main.cc
new file mode 100644
index 0000000000..9518e9a25e
--- /dev/null
+++ b/chromium/patches/patch-content_app_content__main.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/app/content_main.cc.orig 2024-07-24 02:44:36.948811500 +0000
++++ content/app/content_main.cc
+@@ -206,7 +206,7 @@ RunContentProcess(ContentMainParams para
+ #endif
+ base::EnableTerminationOnOutOfMemory();
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // The various desktop environments set this environment variable that
+ // allows the dbus client library to connect directly to the bus. When this
+ // variable is not set (test environments like xvfb-run), the dbus client
diff --git a/chromium/patches/patch-content_app_content__main__runner__impl.cc b/chromium/patches/patch-content_app_content__main__runner__impl.cc
index 05d5dddec8..6b22630858 100644
--- a/chromium/patches/patch-content_app_content__main__runner__impl.cc
+++ b/chromium/patches/patch-content_app_content__main__runner__impl.cc
@@ -1,40 +1,133 @@
$NetBSD$
---- content/app/content_main_runner_impl.cc.orig 2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/app/content_main_runner_impl.cc.orig 2024-07-24 02:44:36.948811500 +0000
+++ content/app/content_main_runner_impl.cc
-@@ -131,7 +131,7 @@
+@@ -149,18 +149,20 @@
+ #include "content/browser/posix_file_descriptor_info_impl.h"
+ #include "content/public/common/content_descriptors.h"
+
+-#if !BUILDFLAG(IS_MAC)
++#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD)
+ #include "content/public/common/zygote/zygote_fork_delegate_linux.h"
+ #endif
- #endif // OS_POSIX || OS_FUCHSIA
+ #endif // BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA)
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "base/files/file_path_watcher_inotify.h"
#include "base/native_library.h"
#include "base/rand_util.h"
#include "content/public/common/zygote/sandbox_support_linux.h"
-@@ -300,7 +300,7 @@ void InitializeZygoteSandboxForBrowserPr
++#if !BUILDFLAG(IS_BSD)
+ #include "sandbox/policy/linux/sandbox_linux.h"
++#endif
+ #include "third_party/boringssl/src/include/openssl/crypto.h"
+ #include "third_party/webrtc_overrides/init_webrtc.h" // nogncheck
+
+@@ -194,6 +196,10 @@
+ #include "media/base/media_switches.h"
+ #endif
+
++#if BUILDFLAG(IS_BSD)
++#include "base/system/sys_info.h"
++#endif
++
+ #if BUILDFLAG(IS_ANDROID)
+ #include "base/system/sys_info.h"
+ #include "content/browser/android/battery_metrics.h"
+@@ -389,7 +395,7 @@ void InitializeZygoteSandboxForBrowserPr
}
- #endif // BUILDFLAG(USE_ZYGOTE_HANDLE)
+ #endif // BUILDFLAG(USE_ZYGOTE)
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
- #if BUILDFLAG(ENABLE_PLUGINS)
+ #if BUILDFLAG(ENABLE_PPAPI)
// Loads the (native) libraries but does not initialize them (i.e., does not
-@@ -472,7 +472,7 @@ int RunZygote(ContentMainDelegate* deleg
- delegate->ZygoteStarting(&zygote_fork_delegates);
- media::InitializeMediaLibrary();
+@@ -427,7 +433,10 @@ void PreloadLibraryCdms() {
+
+ void PreSandboxInit() {
+ // Ensure the /dev/urandom is opened.
++ // we use arc4random
++#if !BUILDFLAG(IS_BSD)
+ base::GetUrandomFD();
++#endif
+
+ // May use sysinfo(), sched_getaffinity(), and open various /sys/ and /proc/
+ // files.
+@@ -439,9 +448,16 @@ void PreSandboxInit() {
+ // https://boringssl.googlesource.com/boringssl/+/HEAD/SANDBOXING.md
+ CRYPTO_pre_sandbox_init();
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- PreSandboxInit();
++#if BUILDFLAG(IS_BSD)
++ // "cache" the amount of physical memory before pledge(2)
++ base::SysInfo::AmountOfPhysicalMemoryMB();
++#endif
++
++#if !BUILDFLAG(IS_BSD)
+ // Pre-read /proc/sys/fs/inotify/max_user_watches so it doesn't have to be
+ // allowed by the sandbox.
+ base::GetMaxNumberOfInotifyWatches();
++#endif
+
+ #if BUILDFLAG(ENABLE_PPAPI)
+ // Ensure access to the Pepper plugins before the sandbox is turned on.
+@@ -889,11 +905,10 @@ int ContentMainRunnerImpl::Initialize(Co
+ base::GlobalDescriptors::kBaseDescriptor);
+ #endif // !BUILDFLAG(IS_ANDROID)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ g_fds->Set(kCrashDumpSignal,
+ kCrashDumpSignal + base::GlobalDescriptors::kBaseDescriptor);
+-#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ||
+- // BUILDFLAG(IS_OPENBSD)
++#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+
+ #endif // !BUILDFLAG(IS_WIN)
+
+@@ -1041,6 +1056,18 @@ int ContentMainRunnerImpl::Initialize(Co
+ process_type == switches::kZygoteProcess) {
+ PreSandboxInit();
+ }
++#elif BUILDFLAG(IS_BSD)
++ PreSandboxInit();
++#endif
++
++#if BUILDFLAG(IS_BSD)
++ if (process_type.empty()) {
++ sandbox::policy::SandboxLinux::Options sandbox_options;
++ sandbox::policy::SandboxLinux::GetInstance()->InitializeSandbox(
++ sandbox::policy::SandboxTypeFromCommandLine(
++ *base::CommandLine::ForCurrentProcess()),
++ sandbox::policy::SandboxLinux::PreSandboxHook(), sandbox_options);
++ }
#endif
-@@ -616,7 +616,7 @@ int ContentMainRunnerImpl::Initialize(co
- base::GlobalDescriptors::kBaseDescriptor);
- #endif // !OS_ANDROID
+ delegate_->SandboxInitialized(process_type);
+@@ -1114,7 +1141,7 @@ int NO_STACK_PROTECTOR ContentMainRunner
+ ->ReconfigureAfterFeatureListInit(process_type);
+ }
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // If dynamic Mojo Core is being used, ensure that it's loaded very early in
+ // the child/zygote process, before any sandbox is initialized. The library
+ // is not fully initialized with IPC support until a ChildProcess is later
+@@ -1150,6 +1177,11 @@ int NO_STACK_PROTECTOR ContentMainRunner
+
+ RegisterMainThreadFactories();
+
++#if BUILDFLAG(IS_BSD)
++ if (!process_type.empty())
++ PreSandboxInit();
++#endif
++
+ if (process_type.empty())
+ return RunBrowser(std::move(main_params), start_minimal_browser);
--#if defined(OS_LINUX) || defined(OS_OPENBSD)
-+#if defined(OS_LINUX)
- g_fds->Set(service_manager::kCrashDumpSignal,
- service_manager::kCrashDumpSignal +
- base::GlobalDescriptors::kBaseDescriptor);
diff --git a/chromium/patches/patch-content_browser_BUILD.gn b/chromium/patches/patch-content_browser_BUILD.gn
index 872c34a84f..06ee40cd76 100644
--- a/chromium/patches/patch-content_browser_BUILD.gn
+++ b/chromium/patches/patch-content_browser_BUILD.gn
@@ -1,71 +1,39 @@
$NetBSD$
---- content/browser/BUILD.gn.orig 2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/BUILD.gn.orig 2024-07-24 02:44:36.956812400 +0000
+++ content/browser/BUILD.gn
-@@ -2042,7 +2042,7 @@ jumbo_source_set("browser") {
- deps += [ "//ui/events" ]
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "font_service.cc",
- "font_service.h",
-@@ -2058,6 +2058,12 @@ jumbo_source_set("browser") {
+@@ -2375,6 +2375,14 @@ source_set("browser") {
]
}
-+ #if (is_bsd) {
-+ # deps -= [
-+ # "//services/service_manager/zygote",
-+ # ]
-+ #}
++ if (is_bsd) {
++ sources += [
++ "file_system_access/file_path_watcher/file_path_watcher_bsd.cc",
++ "file_system_access/file_path_watcher/file_path_watcher_kqueue.cc",
++ "file_system_access/file_path_watcher/file_path_watcher_kqueue.h",
++ ]
++ }
+
- if (is_desktop_linux) {
- sources += [ "speech/tts_linux.cc" ]
- deps += [ "//third_party/speech-dispatcher" ]
-@@ -2079,7 +2085,7 @@ jumbo_source_set("browser") {
- ]
- }
-
-- if (is_chromecast && is_linux) {
-+ if (is_chromecast && (is_linux || is_bsd)) {
+ if (is_linux || is_chromeos) {
sources += [
- "tracing/cast_tracing_agent.cc",
- "tracing/cast_tracing_agent.h",
-@@ -2315,7 +2321,7 @@ jumbo_source_set("browser") {
- } else if (use_pangocairo) {
- sources += [ "renderer_host/pepper/pepper_truetype_font_list_pango.cc" ]
- }
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- deps += [ "//components/services/font:ppapi_fontconfig_matching" ]
- }
- }
-@@ -2353,7 +2359,7 @@ jumbo_source_set("browser") {
- }
- }
-
-- if (is_linux && use_aura) {
-+ if ((is_linux || is_bsd) && use_aura) {
- deps += [ "//third_party/fontconfig" ]
- }
-
-@@ -2651,7 +2657,7 @@ jumbo_source_set("browser") {
- "renderer_host/render_widget_host_view_event_handler.h",
- ]
-
-- if (is_linux && !is_chromeos) {
-+ if ((is_linux || is_bsd) && !is_chromeos) {
- deps += [ "//ui/base/ime/linux" ]
- }
- } else { # Not aura.
-@@ -2689,7 +2695,7 @@ jumbo_source_set("browser") {
- ]
- }
-
-- if (is_linux && use_dbus) {
-+ if ((is_linux || is_bsd) && use_dbus) {
- deps += [ "//dbus" ]
- }
-
+ "child_process_launcher_helper_linux.cc",
+@@ -2413,6 +2421,15 @@ source_set("browser") {
+ deps += [ "//media/mojo/mojom/stable:stable_video_decoder" ]
+ }
+
++ if (is_bsd) {
++ sources -= [
++ "file_system_access/file_path_watcher/file_path_watcher_inotify.cc",
++ "file_system_access/file_path_watcher/file_path_watcher_inotify.h",
++ "sandbox_ipc_linux.cc",
++ "sandbox_ipc_linux.h",
++ ]
++ }
++
+ if (is_chromeos) {
+ sources += [
+ "handwriting/handwriting_recognition_service_impl_cros.cc",
diff --git a/chromium/patches/patch-content_browser_audio_audio__service.cc b/chromium/patches/patch-content_browser_audio_audio__service.cc
new file mode 100644
index 0000000000..278fd9b205
--- /dev/null
+++ b/chromium/patches/patch-content_browser_audio_audio__service.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/audio/audio_service.cc.orig 2024-07-24 02:44:37.020818700 +0000
++++ content/browser/audio/audio_service.cc
+@@ -32,7 +32,7 @@
+ #if BUILDFLAG(ENABLE_PASSTHROUGH_AUDIO_CODECS)
+ #include "ui/display/util/edid_parser.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/display/display_util.h"
+ #endif // BUILDFLAG(IS_LINUX)
+
+@@ -200,7 +200,7 @@ audio::mojom::AudioService& GetAudioServ
+ ->PostTaskAndReplyWithResult(
+ FROM_HERE, base::BindOnce(&ScanEdidBitstreams),
+ base::BindOnce(&LaunchAudioService, std::move(receiver)));
+-#elif BUILDFLAG(ENABLE_PASSTHROUGH_AUDIO_CODECS) && BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(ENABLE_PASSTHROUGH_AUDIO_CODECS) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD))
+ LaunchAudioService(
+ std::move(receiver),
+ ConvertEdidBitstreams(display::DisplayUtil::GetAudioFormats()));
diff --git a/chromium/patches/patch-content_browser_browser__child__process__host__impl.cc b/chromium/patches/patch-content_browser_browser__child__process__host__impl.cc
new file mode 100644
index 0000000000..ede3b8b6eb
--- /dev/null
+++ b/chromium/patches/patch-content_browser_browser__child__process__host__impl.cc
@@ -0,0 +1,25 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/browser_child_process_host_impl.cc.orig 2024-07-24 02:44:37.044821000 +0000
++++ content/browser/browser_child_process_host_impl.cc
+@@ -330,6 +330,7 @@ void BrowserChildProcessHostImpl::Launch
+ switches::kMojoCoreLibraryPath,
+ switches::kPerfettoDisableInterning,
+ switches::kTraceToConsole,
++ switches::kDisableUnveil,
+ };
+ cmd_line->CopySwitchesFrom(browser_command_line, kForwardSwitches);
+
+@@ -658,7 +659,7 @@ void BrowserChildProcessHostImpl::OnProc
+ ->child_process());
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ child_thread_type_switcher_.SetPid(process.Pid());
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+
diff --git a/chromium/patches/patch-content_browser_browser__child__process__host__impl.h b/chromium/patches/patch-content_browser_browser__child__process__host__impl.h
new file mode 100644
index 0000000000..bcb1e09456
--- /dev/null
+++ b/chromium/patches/patch-content_browser_browser__child__process__host__impl.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/browser_child_process_host_impl.h.orig 2024-07-24 02:44:37.044821000 +0000
++++ content/browser/browser_child_process_host_impl.h
+@@ -35,7 +35,7 @@
+ #include "base/win/object_watcher.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "content/browser/child_thread_type_switcher_linux.h"
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+
+@@ -273,7 +273,7 @@ class BrowserChildProcessHostImpl
+ std::unique_ptr<tracing::SystemTracingService> system_tracing_service_;
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ ChildThreadTypeSwitcher child_thread_type_switcher_;
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+
diff --git a/chromium/patches/patch-content_browser_browser__child__process__host__impl__receiver__bindings.cc b/chromium/patches/patch-content_browser_browser__child__process__host__impl__receiver__bindings.cc
new file mode 100644
index 0000000000..575d260ac9
--- /dev/null
+++ b/chromium/patches/patch-content_browser_browser__child__process__host__impl__receiver__bindings.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/browser_child_process_host_impl_receiver_bindings.cc.orig 2024-07-24 02:44:37.044821000 +0000
++++ content/browser/browser_child_process_host_impl_receiver_bindings.cc
+@@ -62,7 +62,7 @@ void BrowserChildProcessHostImpl::BindHo
+ }
+ }
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ if (auto r = receiver.As<mojom::ThreadTypeSwitcher>()) {
+ child_thread_type_switcher_.Bind(std::move(r));
+ return;
diff --git a/chromium/patches/patch-content_browser_browser__main__loop.cc b/chromium/patches/patch-content_browser_browser__main__loop.cc
index cb9637a37f..0f1dd33821 100644
--- a/chromium/patches/patch-content_browser_browser__main__loop.cc
+++ b/chromium/patches/patch-content_browser_browser__main__loop.cc
@@ -1,26 +1,43 @@
$NetBSD$
---- content/browser/browser_main_loop.cc.orig 2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/browser_main_loop.cc.orig 2024-07-24 02:44:37.044821000 +0000
+++ content/browser/browser_main_loop.cc
-@@ -240,6 +240,12 @@
+@@ -251,6 +251,12 @@
#include "mojo/public/cpp/bindings/lib/test_random_mojo_delays.h"
#endif
-+#if defined(OS_BSD)
++#if BUILDFLAG(IS_BSD)
+#include "content/browser/sandbox_host_linux.h"
-+#include "content/public/common/common_sandbox_support_linux.h"
-+#include "services/service_manager/sandbox/sandbox.h"
++#include "content/public/common/zygote/sandbox_support_linux.h"
++#include "sandbox/policy/sandbox.h"
+#endif
+
// One of the linux specific headers defines this as a macro.
#ifdef DestroyAll
#undef DestroyAll
-@@ -611,7 +617,7 @@ int BrowserMainLoop::EarlyInitialization
- #endif // !defined(OS_MACOSX)
+@@ -546,6 +552,12 @@ int BrowserMainLoop::EarlyInitialization
+ // by now since a thread to start the ServiceManager has been created
+ // before the browser main loop starts.
+ DCHECK(SandboxHostLinux::GetInstance()->IsInitialized());
++#elif BUILDFLAG(IS_BSD)
++ base::FileHandleMappingVector additional_remapped_fds;
++ base::LaunchOptions options;
++ SandboxHostLinux::GetInstance()->Init();
++ const int sfd = SandboxHostLinux::GetInstance()->GetChildSocket();
++ options.fds_to_remap.push_back(std::make_pair(sfd, GetSandboxFD()));
+ #endif
+
+ // GLib's spawning of new processes is buggy, so it's important that at this
+@@ -583,7 +595,7 @@ int BrowserMainLoop::EarlyInitialization
+ base::PlatformThread::SetCurrentThreadType(base::ThreadType::kCompositing);
- #if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \
-- defined(OS_ANDROID)
-+ defined(OS_ANDROID) || defined(OS_BSD)
+ #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
// We use quite a few file descriptors for our IPC as well as disk the disk
- // cache,and the default limit on the Mac is low (256), so bump it up.
+ // cache, and the default limit on Apple is low (256), so bump it up.
diff --git a/chromium/patches/patch-content_browser_child__process__launcher__helper.h b/chromium/patches/patch-content_browser_child__process__launcher__helper.h
new file mode 100644
index 0000000000..2086561946
--- /dev/null
+++ b/chromium/patches/patch-content_browser_child__process__launcher__helper.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/child_process_launcher_helper.h.orig 2024-07-24 02:44:37.064823000 +0000
++++ content/browser/child_process_launcher_helper.h
+@@ -297,7 +297,7 @@ class ChildProcessLauncherHelper
+ std::optional<base::ProcessId> process_id_ = std::nullopt;
+ #endif // BUILDFLAG(IS_CHROMEOS)
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // The priority of the process. The state is stored to avoid changing the
+ // setting repeatedly.
+ std::optional<base::Process::Priority> priority_;
diff --git a/chromium/patches/patch-content_browser_child__process__launcher__helper__linux.cc b/chromium/patches/patch-content_browser_child__process__launcher__helper__linux.cc
index b8aad05cf2..2a4dcd3306 100644
--- a/chromium/patches/patch-content_browser_child__process__launcher__helper__linux.cc
+++ b/chromium/patches/patch-content_browser_child__process__launcher__helper__linux.cc
@@ -1,35 +1,107 @@
$NetBSD$
---- content/browser/child_process_launcher_helper_linux.cc.orig 2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/child_process_launcher_helper_linux.cc.orig 2024-07-24 02:44:37.064823000 +0000
+++ content/browser/child_process_launcher_helper_linux.cc
-@@ -19,7 +19,9 @@
+@@ -22,7 +22,9 @@
#include "content/public/common/result_codes.h"
#include "content/public/common/sandboxed_process_launcher_delegate.h"
#include "content/public/common/zygote/sandbox_support_linux.h"
-+#if !defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
#include "content/public/common/zygote/zygote_handle.h"
+#endif
- #include "services/service_manager/sandbox/linux/sandbox_linux.h"
+ #include "sandbox/policy/linux/sandbox_linux.h"
namespace content {
-@@ -50,10 +52,12 @@ bool ChildProcessLauncherHelper::BeforeL
- options->fds_to_remap = files_to_register.GetMappingWithIDAdjustment(
- base::GlobalDescriptors::kBaseDescriptor);
-
-+#if !defined(OS_BSD)
- if (GetProcessType() == switches::kRendererProcess) {
- const int sandbox_fd = SandboxHostLinux::GetInstance()->GetChildSocket();
- options->fds_to_remap.push_back(std::make_pair(sandbox_fd, GetSandboxFD()));
- }
+@@ -47,14 +49,20 @@ ChildProcessLauncherHelper::GetFilesToMa
+ }
+
+ bool ChildProcessLauncherHelper::IsUsingLaunchOptions() {
++#if !BUILDFLAG(IS_BSD)
+ return !GetZygoteForLaunch();
++#else
++ return true;
++#endif
+ }
+
+ bool ChildProcessLauncherHelper::BeforeLaunchOnLauncherThread(
+ PosixFileDescriptorInfo& files_to_register,
+ base::LaunchOptions* options) {
+ if (options) {
++#if !BUILDFLAG(IS_BSD)
+ DCHECK(!GetZygoteForLaunch());
++#endif
+ // Convert FD mapping to FileHandleMappingVector
+ options->fds_to_remap = files_to_register.GetMappingWithIDAdjustment(
+ base::GlobalDescriptors::kBaseDescriptor);
+@@ -66,7 +74,9 @@ bool ChildProcessLauncherHelper::BeforeL
+
+ options->environment = delegate_->GetEnvironment();
+ } else {
++#if !BUILDFLAG(IS_BSD)
+ DCHECK(GetZygoteForLaunch());
+#endif
+ // Environment variables could be supported in the future, but are not
+ // currently supported when launching with the zygote.
+ DCHECK(delegate_->GetEnvironment().empty());
+@@ -83,6 +93,7 @@ ChildProcessLauncherHelper::LaunchProces
+ int* launch_result) {
+ *is_synchronous_launch = true;
+ Process process;
++#if !BUILDFLAG(IS_BSD)
+ ZygoteCommunication* zygote_handle = GetZygoteForLaunch();
+ if (zygote_handle) {
+ // TODO(crbug.com/40448989): If chrome supported multiple zygotes they could
+@@ -93,7 +104,6 @@ ChildProcessLauncherHelper::LaunchProces
+ GetProcessType());
+ *launch_result = LAUNCH_RESULT_SUCCESS;
+
+-#if !BUILDFLAG(IS_OPENBSD)
+ if (handle) {
+ // It could be a renderer process or an utility process.
+ int oom_score = content::kMiscOomScore;
+@@ -102,15 +112,17 @@ ChildProcessLauncherHelper::LaunchProces
+ oom_score = content::kLowestRendererOomScore;
+ ZygoteHostImpl::GetInstance()->AdjustRendererOOMScore(handle, oom_score);
+ }
+-#endif
- options->environment = delegate_->GetEnvironment();
+ process.process = base::Process(handle);
+ process.zygote = zygote_handle;
+ } else {
++#endif
+ process.process = base::LaunchProcess(*command_line(), *options);
+ *launch_result = process.process.IsValid() ? LAUNCH_RESULT_SUCCESS
+ : LAUNCH_RESULT_FAILURE;
++#if !BUILDFLAG(IS_BSD)
+ }
++#endif
-@@ -141,13 +145,17 @@ void ChildProcessLauncherHelper::ForceNo
+ #if BUILDFLAG(IS_CHROMEOS)
+ process_id_ = process.process.Pid();
+@@ -134,10 +146,14 @@ ChildProcessTerminationInfo ChildProcess
+ const ChildProcessLauncherHelper::Process& process,
+ bool known_dead) {
+ ChildProcessTerminationInfo info;
++#if !BUILDFLAG(IS_BSD)
+ if (process.zygote) {
+ info.status = process.zygote->GetTerminationStatus(
+ process.process.Handle(), known_dead, &info.exit_code);
+ } else if (known_dead) {
++#else
++ if (known_dead) {
++#endif
+ info.status = base::GetKnownDeadTerminationStatus(process.process.Handle(),
+ &info.exit_code);
+ } else {
+@@ -163,13 +179,17 @@ void ChildProcessLauncherHelper::ForceNo
DCHECK(CurrentlyOnProcessLauncherTaskRunner());
- process.process.Terminate(service_manager::RESULT_CODE_NORMAL_EXIT, false);
+ process.process.Terminate(RESULT_CODE_NORMAL_EXIT, false);
// On POSIX, we must additionally reap the child.
-+#if !defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
if (process.zygote) {
// If the renderer was created via a zygote, we have to proxy the reaping
// through the zygote process.
@@ -37,9 +109,23 @@ $NetBSD$
} else {
+#endif
base::EnsureProcessTerminated(std::move(process.process));
-+#if !defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
}
+#endif
}
void ChildProcessLauncherHelper::SetProcessPriorityOnLauncherThread(
+@@ -182,11 +202,13 @@ void ChildProcessLauncherHelper::SetProc
+ }
+ }
+
++#if !BUILDFLAG(IS_BSD)
+ ZygoteCommunication* ChildProcessLauncherHelper::GetZygoteForLaunch() {
+ return base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kNoZygote)
+ ? nullptr
+ : delegate_->GetZygote();
+ }
++#endif
+
+ base::File OpenFileToShare(const base::FilePath& path,
+ base::MemoryMappedFile::Region* region) {
diff --git a/chromium/patches/patch-content_browser_child__thread__type__switcher__linux.cc b/chromium/patches/patch-content_browser_child__thread__type__switcher__linux.cc
new file mode 100644
index 0000000000..805f7a49a8
--- /dev/null
+++ b/chromium/patches/patch-content_browser_child__thread__type__switcher__linux.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/child_thread_type_switcher_linux.cc.orig 2024-07-24 02:44:37.064823000 +0000
++++ content/browser/child_thread_type_switcher_linux.cc
+@@ -20,6 +20,9 @@ void SetThreadTypeOnLauncherThread(base:
+ base::ThreadType thread_type) {
+ DCHECK(CurrentlyOnProcessLauncherTaskRunner());
+
++#if BUILDFLAG(IS_BSD)
++ NOTIMPLEMENTED();
++#else
+ bool ns_pid_supported = false;
+ pid_t peer_tid = base::FindThreadID(peer_pid, ns_tid, &ns_pid_supported);
+ if (peer_tid == -1) {
+@@ -38,6 +41,7 @@ void SetThreadTypeOnLauncherThread(base:
+
+ base::PlatformThread::SetThreadType(peer_pid, peer_tid, thread_type,
+ base::IsViaIPC(true));
++#endif
+ }
+
+ } // namespace
diff --git a/chromium/patches/patch-content_browser_compositor_viz__process__transport__factory.cc b/chromium/patches/patch-content_browser_compositor_viz__process__transport__factory.cc
index 5001724bb9..0fa822ee82 100644
--- a/chromium/patches/patch-content_browser_compositor_viz__process__transport__factory.cc
+++ b/chromium/patches/patch-content_browser_compositor_viz__process__transport__factory.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- content/browser/compositor/viz_process_transport_factory.cc.orig 2020-07-08 21:40:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/compositor/viz_process_transport_factory.cc.orig 2024-07-24 02:44:37.068823300 +0000
+++ content/browser/compositor/viz_process_transport_factory.cc
-@@ -108,7 +108,7 @@ class HostDisplayClient : public viz::Ho
+@@ -110,7 +110,7 @@ class HostDisplayClient : public viz::Ho
HostDisplayClient& operator=(const HostDisplayClient&) = delete;
// viz::HostDisplayClient:
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11)
void DidCompleteSwapWithNewSize(const gfx::Size& size) override {
compositor_->OnCompleteSwapWithNewSize(size);
}
diff --git a/chromium/patches/patch-content_browser_devtools_devtools__frontend__host__impl.cc b/chromium/patches/patch-content_browser_devtools_devtools__frontend__host__impl.cc
new file mode 100644
index 0000000000..78ea6bceb5
--- /dev/null
+++ b/chromium/patches/patch-content_browser_devtools_devtools__frontend__host__impl.cc
@@ -0,0 +1,44 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/devtools/devtools_frontend_host_impl.cc.orig 2024-07-24 02:44:37.080824400 +0000
++++ content/browser/devtools/devtools_frontend_host_impl.cc
+@@ -27,7 +27,7 @@
+ #include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
+ #include "ui/base/webui/resource_path.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "components/crash/content/browser/error_reporting/javascript_error_report.h" // nogncheck
+ #include "components/crash/content/browser/error_reporting/js_error_report_processor.h" // nogncheck
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+@@ -42,7 +42,7 @@ const char kCompatibilityScriptSourceURL
+ "\n//# "
+ "sourceURL=devtools://devtools/bundled/devtools_compatibility.js";
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Remove the pieces of the URL we don't want to send back with the error
+ // reports. In particular, do not send query or fragments as those can have
+ // privacy-sensitive information in them.
+@@ -112,7 +112,7 @@ DevToolsFrontendHostImpl::DevToolsFronte
+ const HandleMessageCallback& handle_message_callback)
+ : web_contents_(WebContents::FromRenderFrameHost(frame_host)),
+ handle_message_callback_(handle_message_callback) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ Observe(web_contents_);
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ mojo::AssociatedRemote<blink::mojom::DevToolsFrontend> frontend;
+@@ -137,7 +137,7 @@ void DevToolsFrontendHostImpl::DispatchE
+ handle_message_callback_.Run(std::move(message));
+ }
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ void DevToolsFrontendHostImpl::OnDidAddMessageToConsole(
+ RenderFrameHost* source_frame,
+ blink::mojom::ConsoleMessageLevel log_level,
diff --git a/chromium/patches/patch-content_browser_devtools_devtools__frontend__host__impl.h b/chromium/patches/patch-content_browser_devtools_devtools__frontend__host__impl.h
new file mode 100644
index 0000000000..11826436d5
--- /dev/null
+++ b/chromium/patches/patch-content_browser_devtools_devtools__frontend__host__impl.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/devtools/devtools_frontend_host_impl.h.orig 2024-07-24 02:44:37.080824400 +0000
++++ content/browser/devtools/devtools_frontend_host_impl.h
+@@ -34,7 +34,7 @@ class DevToolsFrontendHostImpl : public
+
+ void BadMessageReceived() override;
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ void OnDidAddMessageToConsole(
+ RenderFrameHost* source_frame,
+ blink::mojom::ConsoleMessageLevel log_level,
diff --git a/chromium/patches/patch-content_browser_devtools_protocol_system__info__handler.cc b/chromium/patches/patch-content_browser_devtools_protocol_system__info__handler.cc
index d8c3d17104..fd1b38b71f 100644
--- a/chromium/patches/patch-content_browser_devtools_protocol_system__info__handler.cc
+++ b/chromium/patches/patch-content_browser_devtools_protocol_system__info__handler.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- content/browser/devtools/protocol/system_info_handler.cc.orig 2020-07-08 21:40:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/devtools/protocol/system_info_handler.cc.orig 2024-07-24 02:44:37.092825700 +0000
+++ content/browser/devtools/protocol/system_info_handler.cc
-@@ -47,7 +47,7 @@ std::unique_ptr<SystemInfo::Size> GfxSiz
- // Give the GPU process a few seconds to provide GPU info.
- // Linux Debug builds need more time -- see Issue 796437 and 1046598.
+@@ -51,7 +51,7 @@ std::unique_ptr<SystemInfo::Size> GfxSiz
+ // 1046598, and 1153667.
// Windows builds need more time -- see Issue 873112 and 1004472.
--#if (defined(OS_LINUX) && !defined(NDEBUG)) || defined(OS_WIN)
-+#if ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(NDEBUG)) || defined(OS_WIN)
- const int kGPUInfoWatchdogTimeoutMs = 30000;
+ // Mac builds need more time - see Issue angleproject:6182.
+-#if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !defined(NDEBUG)) || \
++#if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && !defined(NDEBUG)) || \
+ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_OZONE)
+ static constexpr int kGPUInfoWatchdogTimeoutMultiplierOS = 3;
#else
- const int kGPUInfoWatchdogTimeoutMs = 5000;
diff --git a/chromium/patches/patch-content_browser_file__system__access_file__path__watcher_file__path__watcher.h b/chromium/patches/patch-content_browser_file__system__access_file__path__watcher_file__path__watcher.h
new file mode 100644
index 0000000000..6ad85d3299
--- /dev/null
+++ b/chromium/patches/patch-content_browser_file__system__access_file__path__watcher_file__path__watcher.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/file_system_access/file_path_watcher/file_path_watcher.h.orig 2024-07-24 02:44:37.112827500 +0000
++++ content/browser/file_system_access/file_path_watcher/file_path_watcher.h
+@@ -125,7 +125,7 @@ class CONTENT_EXPORT FilePathWatcher {
+ Type type = Type::kNonRecursive;
+
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+- BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ // The callback will return the full path to a changed file instead of
+ // the watched path supplied as |path| when Watch is called.
+ // So the full path can be different from the watched path when a folder is
diff --git a/chromium/patches/patch-content_browser_file__system__access_file__path__watcher_file__path__watcher__bsd.cc b/chromium/patches/patch-content_browser_file__system__access_file__path__watcher_file__path__watcher__bsd.cc
new file mode 100644
index 0000000000..2cb1242a2d
--- /dev/null
+++ b/chromium/patches/patch-content_browser_file__system__access_file__path__watcher_file__path__watcher__bsd.cc
@@ -0,0 +1,64 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/file_system_access/file_path_watcher/file_path_watcher_bsd.cc.orig 2024-08-01 14:08:57.817126478 +0000
++++ content/browser/file_system_access/file_path_watcher/file_path_watcher_bsd.cc
+@@ -0,0 +1,55 @@
++// Copyright 2024 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "content/browser/file_system_access/file_path_watcher/file_path_watcher.h"
++
++#include <memory>
++
++#include "base/memory/ptr_util.h"
++#include "build/build_config.h"
++#include "content/browser/file_system_access/file_path_watcher/file_path_watcher_kqueue.h"
++
++namespace content {
++
++namespace {
++
++class FilePathWatcherImpl : public FilePathWatcher::PlatformDelegate {
++ public:
++ FilePathWatcherImpl() = default;
++ FilePathWatcherImpl(const FilePathWatcherImpl&) = delete;
++ FilePathWatcherImpl& operator=(const FilePathWatcherImpl&) = delete;
++ ~FilePathWatcherImpl() override = default;
++
++ bool Watch(const base::FilePath& path,
++ Type type,
++ const FilePathWatcher::Callback& callback) override {
++ DCHECK(!impl_.get());
++ if (type == Type::kRecursive) {
++ if (!FilePathWatcher::RecursiveWatchAvailable()) {
++ return false;
++ }
++ } else {
++ impl_ = std::make_unique<FilePathWatcherKQueue>();
++ }
++ DCHECK(impl_.get());
++ return impl_->Watch(path, type, callback);
++ }
++
++ void Cancel() override {
++ if (impl_.get()) {
++ impl_->Cancel();
++ }
++ set_cancelled();
++ }
++
++ private:
++ std::unique_ptr<PlatformDelegate> impl_;
++};
++
++} // namespace
++
++FilePathWatcher::FilePathWatcher()
++ : FilePathWatcher(std::make_unique<FilePathWatcherImpl>()) {}
++
++} // namespace content
diff --git a/chromium/patches/patch-content_browser_file__system__access_file__path__watcher_file__path__watcher__kqueue.h b/chromium/patches/patch-content_browser_file__system__access_file__path__watcher_file__path__watcher__kqueue.h
new file mode 100644
index 0000000000..5c9630c5ef
--- /dev/null
+++ b/chromium/patches/patch-content_browser_file__system__access_file__path__watcher_file__path__watcher__kqueue.h
@@ -0,0 +1,16 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/file_system_access/file_path_watcher/file_path_watcher_kqueue.h.orig 2024-07-24 02:44:37.116828000 +0000
++++ content/browser/file_system_access/file_path_watcher/file_path_watcher_kqueue.h
+@@ -5,6 +5,7 @@
+ #ifndef CONTENT_BROWSER_FILE_SYSTEM_ACCESS_FILE_PATH_WATCHER_FILE_PATH_WATCHER_KQUEUE_H_
+ #define CONTENT_BROWSER_FILE_SYSTEM_ACCESS_FILE_PATH_WATCHER_FILE_PATH_WATCHER_KQUEUE_H_
+
++#include <sys/time.h>
+ #include <sys/event.h>
+
+ #include <memory>
diff --git a/chromium/patches/patch-content_browser_file__system__access_file__system__access__local__path__watcher.cc b/chromium/patches/patch-content_browser_file__system__access_file__system__access__local__path__watcher.cc
new file mode 100644
index 0000000000..359b7382a0
--- /dev/null
+++ b/chromium/patches/patch-content_browser_file__system__access_file__system__access__local__path__watcher.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/file_system_access/file_system_access_local_path_watcher.cc.orig 2024-07-24 02:44:37.120828400 +0000
++++ content/browser/file_system_access/file_system_access_local_path_watcher.cc
+@@ -62,7 +62,7 @@ void FileSystemAccessLocalPathWatcher::I
+ FilePathWatcher::WatchOptions watch_options{
+ .type = scope().IsRecursive() ? FilePathWatcher::Type::kRecursive
+ : FilePathWatcher::Type::kNonRecursive,
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ // Note: `report_modified_path` is also present on Android
+ // and Fuchsia. Update this switch if support for watching
+ // the local file system is added on those platforms.
diff --git a/chromium/patches/patch-content_browser_font__access_font__enumeration__data__source.cc b/chromium/patches/patch-content_browser_font__access_font__enumeration__data__source.cc
new file mode 100644
index 0000000000..8abdcff799
--- /dev/null
+++ b/chromium/patches/patch-content_browser_font__access_font__enumeration__data__source.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/font_access/font_enumeration_data_source.cc.orig 2024-07-24 02:44:37.128829000 +0000
++++ content/browser/font_access/font_enumeration_data_source.cc
+@@ -16,7 +16,7 @@
+ #include "content/browser/font_access/font_enumeration_data_source_win.h"
+ #elif BUILDFLAG(IS_APPLE)
+ #include "content/browser/font_access/font_enumeration_data_source_mac.h"
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "content/browser/font_access/font_enumeration_data_source_linux.h"
+ #endif // BUILDFLAG(IS_WIN)
+
+@@ -61,7 +61,7 @@ std::unique_ptr<FontEnumerationDataSourc
+ return std::make_unique<FontEnumerationDataSourceWin>();
+ #elif BUILDFLAG(IS_APPLE)
+ return std::make_unique<FontEnumerationDataSourceMac>();
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ return std::make_unique<FontEnumerationDataSourceLinux>();
+ #else
+ return std::make_unique<FontEnumerationDataSourceNull>();
+@@ -76,7 +76,7 @@ bool FontEnumerationDataSource::IsOsSupp
+ return true;
+ #elif BUILDFLAG(IS_APPLE)
+ return true;
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ return true;
+ #else
+ return false;
diff --git a/chromium/patches/patch-content_browser_gpu_compositor__util.cc b/chromium/patches/patch-content_browser_gpu_compositor__util.cc
new file mode 100644
index 0000000000..03fc396995
--- /dev/null
+++ b/chromium/patches/patch-content_browser_gpu_compositor__util.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/gpu/compositor_util.cc.orig 2024-07-24 02:44:37.132829400 +0000
++++ content/browser/gpu/compositor_util.cc
+@@ -154,7 +154,7 @@ std::vector<GpuFeatureData> GetGpuFeatur
+ "video_decode",
+ SafeGetFeatureStatus(
+ gpu_feature_info, gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE,
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ !base::FeatureList::IsEnabled(media::kVaapiVideoDecodeLinux) ||
+ #endif // BUILDFLAG(IS_LINUX)
+ command_line.HasSwitch(switches::kDisableAcceleratedVideoDecode)),
+@@ -166,7 +166,7 @@ std::vector<GpuFeatureData> GetGpuFeatur
+ "video_encode",
+ SafeGetFeatureStatus(
+ gpu_feature_info, gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE,
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ !base::FeatureList::IsEnabled(media::kVaapiVideoEncodeLinux)),
+ #else
+ command_line.HasSwitch(switches::kDisableAcceleratedVideoEncode)),
diff --git a/chromium/patches/patch-content_browser_gpu_gpu__data__manager__impl.cc b/chromium/patches/patch-content_browser_gpu_gpu__data__manager__impl.cc
new file mode 100644
index 0000000000..ffbc571e86
--- /dev/null
+++ b/chromium/patches/patch-content_browser_gpu_gpu__data__manager__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/gpu/gpu_data_manager_impl.cc.orig 2024-07-24 02:44:37.132829400 +0000
++++ content/browser/gpu/gpu_data_manager_impl.cc
+@@ -397,7 +397,7 @@ void GpuDataManagerImpl::OnDisplayMetric
+ private_->OnDisplayMetricsChanged(display, changed_metrics);
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool GpuDataManagerImpl::IsGpuMemoryBufferNV12Supported() {
+ base::AutoLock auto_lock(lock_);
+ return private_->IsGpuMemoryBufferNV12Supported();
diff --git a/chromium/patches/patch-content_browser_gpu_gpu__data__manager__impl.h b/chromium/patches/patch-content_browser_gpu_gpu__data__manager__impl.h
new file mode 100644
index 0000000000..d5db8b118b
--- /dev/null
+++ b/chromium/patches/patch-content_browser_gpu_gpu__data__manager__impl.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/gpu/gpu_data_manager_impl.h.orig 2024-07-24 02:44:37.132829400 +0000
++++ content/browser/gpu/gpu_data_manager_impl.h
+@@ -219,7 +219,7 @@ class CONTENT_EXPORT GpuDataManagerImpl
+ void OnDisplayMetricsChanged(const display::Display& display,
+ uint32_t changed_metrics) override;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool IsGpuMemoryBufferNV12Supported();
+ void SetGpuMemoryBufferNV12Supported(bool supported);
+ #endif // BUILDFLAG(IS_LINUX)
diff --git a/chromium/patches/patch-content_browser_gpu_gpu__data__manager__impl__private.cc b/chromium/patches/patch-content_browser_gpu_gpu__data__manager__impl__private.cc
new file mode 100644
index 0000000000..062a63e2b8
--- /dev/null
+++ b/chromium/patches/patch-content_browser_gpu_gpu__data__manager__impl__private.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/gpu/gpu_data_manager_impl_private.cc.orig 2024-07-24 02:44:37.136829900 +0000
++++ content/browser/gpu/gpu_data_manager_impl_private.cc
+@@ -1697,7 +1697,7 @@ void GpuDataManagerImplPrivate::RecordCo
+ UMA_HISTOGRAM_ENUMERATION("GPU.CompositingMode", compositing_mode);
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool GpuDataManagerImplPrivate::IsGpuMemoryBufferNV12Supported() {
+ return is_gpu_memory_buffer_NV12_supported_;
+ }
diff --git a/chromium/patches/patch-content_browser_gpu_gpu__data__manager__impl__private.h b/chromium/patches/patch-content_browser_gpu_gpu__data__manager__impl__private.h
new file mode 100644
index 0000000000..4fa0b67ca2
--- /dev/null
+++ b/chromium/patches/patch-content_browser_gpu_gpu__data__manager__impl__private.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/gpu/gpu_data_manager_impl_private.h.orig 2024-07-24 02:44:37.136829900 +0000
++++ content/browser/gpu/gpu_data_manager_impl_private.h
+@@ -150,7 +150,7 @@ class CONTENT_EXPORT GpuDataManagerImplP
+ void OnDisplayMetricsChanged(const display::Display& display,
+ uint32_t changed_metrics);
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool IsGpuMemoryBufferNV12Supported();
+ void SetGpuMemoryBufferNV12Supported(bool supported);
+ #endif // BUILDFLAG(IS_LINUX)
+@@ -302,7 +302,7 @@ class CONTENT_EXPORT GpuDataManagerImplP
+ bool application_is_visible_ = true;
+
+ bool disable_gpu_compositing_ = false;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool is_gpu_memory_buffer_NV12_supported_ = false;
+ #endif // BUILDFLAG(IS_LINUX)
+ };
diff --git a/chromium/patches/patch-content_browser_gpu_gpu__memory__buffer__manager__singleton.cc b/chromium/patches/patch-content_browser_gpu_gpu__memory__buffer__manager__singleton.cc
new file mode 100644
index 0000000000..ef6c72c98a
--- /dev/null
+++ b/chromium/patches/patch-content_browser_gpu_gpu__memory__buffer__manager__singleton.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/gpu/gpu_memory_buffer_manager_singleton.cc.orig 2024-07-24 02:44:37.136829900 +0000
++++ content/browser/gpu/gpu_memory_buffer_manager_singleton.cc
+@@ -54,7 +54,7 @@ scoped_refptr<base::SingleThreadTaskRunn
+ #endif
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool IsGpuMemoryBufferNV12Supported() {
+ static bool is_computed = false;
+ static bool supported = false;
+@@ -117,7 +117,7 @@ void GpuMemoryBufferManagerSingleton::On
+ SetNativeConfigurations(std::move(configs));
+ }
+ #endif // BUILDFLAG(IS_OZONE_X11)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Dynamic check whether the NV12 format is supported as it may be
+ // inconsistent between the system GBM (Generic Buffer Management) and
+ // chromium miniGBM.
diff --git a/chromium/patches/patch-content_browser_gpu_gpu__process__host.cc b/chromium/patches/patch-content_browser_gpu_gpu__process__host.cc
index fc4ad719ca..a985636417 100644
--- a/chromium/patches/patch-content_browser_gpu_gpu__process__host.cc
+++ b/chromium/patches/patch-content_browser_gpu_gpu__process__host.cc
@@ -1,13 +1,25 @@
$NetBSD$
---- content/browser/gpu/gpu_process_host.cc.orig 2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/gpu/gpu_process_host.cc.orig 2024-07-24 02:44:37.136829900 +0000
+++ content/browser/gpu/gpu_process_host.cc
-@@ -1117,7 +1117,7 @@ bool GpuProcessHost::LaunchGpuProcess()
- std::unique_ptr<base::CommandLine> cmd_line =
- std::make_unique<base::CommandLine>(base::CommandLine::NO_PROGRAM);
- #else
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- int child_flags = gpu_launcher.empty() ? ChildProcessHost::CHILD_ALLOW_SELF
- : ChildProcessHost::CHILD_NORMAL;
- #elif defined(OS_MACOSX)
+@@ -273,6 +273,7 @@ static const char* const kSwitchNames[]
+ switches::kEnableLowEndDeviceMode,
+ switches::kDisableSkiaGraphite,
+ switches::kDisableLowEndDeviceMode,
++ switches::kDisableUnveil,
+ switches::kProfilingAtStart,
+ switches::kProfilingFile,
+ switches::kProfilingFlush,
+@@ -300,7 +301,7 @@ static const char* const kSwitchNames[]
+ switches::kOzoneDumpFile,
+ switches::kEnableNativeGpuMemoryBuffers,
+ #endif
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ switches::kX11Display,
+ switches::kNoXshm,
+ #endif
diff --git a/chromium/patches/patch-content_browser_media_frameless__media__interface__proxy.h b/chromium/patches/patch-content_browser_media_frameless__media__interface__proxy.h
new file mode 100644
index 0000000000..dbf30efe59
--- /dev/null
+++ b/chromium/patches/patch-content_browser_media_frameless__media__interface__proxy.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/media/frameless_media_interface_proxy.h.orig 2024-07-24 02:44:37.216837600 +0000
++++ content/browser/media/frameless_media_interface_proxy.h
+@@ -19,7 +19,7 @@
+ #include "mojo/public/cpp/bindings/receiver_set.h"
+ #include "mojo/public/cpp/bindings/remote.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "media/mojo/mojom/stable/stable_video_decoder.mojom.h"
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+
+@@ -105,7 +105,7 @@ class FramelessMediaInterfaceProxy final
+ // Connections to the renderer.
+ mojo::ReceiverSet<media::mojom::InterfaceFactory> receivers_;
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Connection to the StableVideoDecoderFactory that lives in a utility
+ // process. This is only used for out-of-process video decoding and only when
+ // the FramelessMediaInterfaceProxy is created without a RenderProcessHost
diff --git a/chromium/patches/patch-content_browser_media_media__keys__listener__manager__impl.cc b/chromium/patches/patch-content_browser_media_media__keys__listener__manager__impl.cc
new file mode 100644
index 0000000000..6ad8e466f2
--- /dev/null
+++ b/chromium/patches/patch-content_browser_media_media__keys__listener__manager__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/media/media_keys_listener_manager_impl.cc.orig 2024-07-24 02:44:37.220838000 +0000
++++ content/browser/media/media_keys_listener_manager_impl.cc
+@@ -333,7 +333,7 @@ void MediaKeysListenerManagerImpl::Start
+ return;
+ }
+
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_WIN)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)) || BUILDFLAG(IS_WIN)
+ // Create SystemMediaControls with the SingletonHwnd.
+ browser_system_media_controls_ =
+ system_media_controls::SystemMediaControls::Create(
diff --git a/chromium/patches/patch-content_browser_memory_swap__metrics__driver__impl__linux.cc b/chromium/patches/patch-content_browser_memory_swap__metrics__driver__impl__linux.cc
deleted file mode 100644
index 7f39e55579..0000000000
--- a/chromium/patches/patch-content_browser_memory_swap__metrics__driver__impl__linux.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- content/browser/memory/swap_metrics_driver_impl_linux.cc.orig 2020-07-08 21:40:42.000000000 +0000
-+++ content/browser/memory/swap_metrics_driver_impl_linux.cc
-@@ -43,6 +43,7 @@ SwapMetricsDriverImplLinux::~SwapMetrics
-
- SwapMetricsDriver::SwapMetricsUpdateResult
- SwapMetricsDriverImplLinux::UpdateMetricsInternal(base::TimeDelta interval) {
-+#if !defined(OS_BSD)
- base::VmStatInfo vmstat;
- if (!base::GetVmStatInfo(&vmstat)) {
- return SwapMetricsDriver::SwapMetricsUpdateResult::kSwapMetricsUpdateFailed;
-@@ -61,6 +62,9 @@ SwapMetricsDriverImplLinux::UpdateMetric
- delegate_->OnSwapOutCount(out_counts, interval);
-
- return SwapMetricsDriver::SwapMetricsUpdateResult::kSwapMetricsUpdateSuccess;
-+#else
-+ return SwapMetricsDriver::SwapMetricsUpdateResult::kSwapMetricsUpdateFailed;
-+#endif
- }
-
- } // namespace content
diff --git a/chromium/patches/patch-content_browser_network__service__instance__impl.cc b/chromium/patches/patch-content_browser_network__service__instance__impl.cc
new file mode 100644
index 0000000000..e3a834c856
--- /dev/null
+++ b/chromium/patches/patch-content_browser_network__service__instance__impl.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/network_service_instance_impl.cc.orig 2024-07-24 02:44:37.244840400 +0000
++++ content/browser/network_service_instance_impl.cc
+@@ -82,7 +82,7 @@
+ #include "content/browser/network/network_service_process_tracker_win.h"
+ #endif
+
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "content/browser/system_dns_resolution/system_dns_resolver.h"
+ #include "services/network/public/mojom/system_dns_resolution.mojom-forward.h"
+ #endif
+@@ -360,7 +360,7 @@ void CreateInProcessNetworkService(
+ std::move(receiver)));
+ }
+
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Runs a self-owned SystemDnsResolverMojoImpl. This is meant to run on a
+ // high-priority thread pool.
+ void RunSystemDnsResolverOnThreadPool(
+@@ -429,7 +429,7 @@ network::mojom::NetworkServiceParamsPtr
+ }
+ #endif // BUILDFLAG(IS_POSIX)
+
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (GetContentClient()
+ ->browser()
+ ->ShouldRunOutOfProcessSystemDnsResolution() &&
diff --git a/chromium/patches/patch-content_browser_ppapi__plugin__process__host.cc b/chromium/patches/patch-content_browser_ppapi__plugin__process__host.cc
deleted file mode 100644
index d3b06b30a7..0000000000
--- a/chromium/patches/patch-content_browser_ppapi__plugin__process__host.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- content/browser/ppapi_plugin_process_host.cc.orig 2020-07-08 21:41:48.000000000 +0000
-+++ content/browser/ppapi_plugin_process_host.cc
-@@ -365,7 +365,7 @@ bool PpapiPluginProcessHost::Init(const
- base::CommandLine::StringType plugin_launcher =
- browser_command_line.GetSwitchValueNative(switches::kPpapiPluginLauncher);
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- int flags = plugin_launcher.empty() ? ChildProcessHost::CHILD_ALLOW_SELF :
- ChildProcessHost::CHILD_NORMAL;
- #elif defined(OS_MACOSX)
diff --git a/chromium/patches/patch-content_browser_ppapi__plugin__process__host__receiver__bindings.cc b/chromium/patches/patch-content_browser_ppapi__plugin__process__host__receiver__bindings.cc
index 4ceec006c7..d17dbf59e2 100644
--- a/chromium/patches/patch-content_browser_ppapi__plugin__process__host__receiver__bindings.cc
+++ b/chromium/patches/patch-content_browser_ppapi__plugin__process__host__receiver__bindings.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- content/browser/ppapi_plugin_process_host_receiver_bindings.cc.orig 2020-07-08 21:40:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/ppapi_plugin_process_host_receiver_bindings.cc.orig 2024-07-24 02:44:37.256841400 +0000
+++ content/browser/ppapi_plugin_process_host_receiver_bindings.cc
@@ -8,7 +8,7 @@
#include "build/build_config.h"
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "components/services/font/public/mojom/font_service.mojom.h" // nogncheck
#include "content/browser/font_service.h" // nogncheck
#endif
@@ -15,8 +19,8 @@ $NetBSD$
void PpapiPluginProcessHost::BindHostReceiver(
mojo::GenericPendingReceiver receiver) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
if (auto font_receiver = receiver.As<font_service::mojom::FontService>())
ConnectToFontService(std::move(font_receiver));
#endif
diff --git a/chromium/patches/patch-content_browser_renderer__host_delegated__frame__host.cc b/chromium/patches/patch-content_browser_renderer__host_delegated__frame__host.cc
new file mode 100644
index 0000000000..62088a979f
--- /dev/null
+++ b/chromium/patches/patch-content_browser_renderer__host_delegated__frame__host.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/renderer_host/delegated_frame_host.cc.orig 2024-07-24 02:44:37.296845400 +0000
++++ content/browser/renderer_host/delegated_frame_host.cc
+@@ -318,7 +318,7 @@ void DelegatedFrameHost::EmbedSurface(
+
+ if (!primary_surface_id ||
+ primary_surface_id->local_surface_id() != local_surface_id_) {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ // On Windows and Linux, we would like to produce new content as soon as
+ // possible or the OS will create an additional black gutter. Until we can
+ // block resize on surface synchronization on these platforms, we will not
diff --git a/chromium/patches/patch-content_browser_renderer__host_input_input__device__change__observer.cc b/chromium/patches/patch-content_browser_renderer__host_input_input__device__change__observer.cc
index 5c674b8f10..576bc4fb7b 100644
--- a/chromium/patches/patch-content_browser_renderer__host_input_input__device__change__observer.cc
+++ b/chromium/patches/patch-content_browser_renderer__host_input_input__device__change__observer.cc
@@ -1,31 +1,35 @@
$NetBSD$
---- content/browser/renderer_host/input/input_device_change_observer.cc.orig 2020-07-08 21:40:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/renderer_host/input/input_device_change_observer.cc.orig 2024-07-24 02:44:37.304846000 +0000
+++ content/browser/renderer_host/input/input_device_change_observer.cc
-@@ -10,7 +10,7 @@
+@@ -9,7 +9,7 @@
- #if defined(OS_WIN)
+ #if BUILDFLAG(IS_WIN)
#include "ui/events/devices/input_device_observer_win.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "ui/events/devices/device_data_manager.h"
- #elif defined(OS_ANDROID)
+ #elif BUILDFLAG(IS_ANDROID)
#include "ui/events/devices/input_device_observer_android.h"
-@@ -22,7 +22,7 @@ InputDeviceChangeObserver::InputDeviceCh
+@@ -21,7 +21,7 @@ InputDeviceChangeObserver::InputDeviceCh
render_view_host_impl_ = rvhi;
- #if defined(OS_WIN)
+ #if BUILDFLAG(IS_WIN)
ui::InputDeviceObserverWin::GetInstance()->AddObserver(this);
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
ui::DeviceDataManager::GetInstance()->AddObserver(this);
- #elif defined(OS_ANDROID)
+ #elif BUILDFLAG(IS_ANDROID)
ui::InputDeviceObserverAndroid::GetInstance()->AddObserver(this);
-@@ -32,7 +32,7 @@ InputDeviceChangeObserver::InputDeviceCh
+@@ -31,7 +31,7 @@ InputDeviceChangeObserver::InputDeviceCh
InputDeviceChangeObserver::~InputDeviceChangeObserver() {
- #if defined(OS_WIN)
+ #if BUILDFLAG(IS_WIN)
ui::InputDeviceObserverWin::GetInstance()->RemoveObserver(this);
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
ui::DeviceDataManager::GetInstance()->RemoveObserver(this);
- #elif defined(OS_ANDROID)
+ #elif BUILDFLAG(IS_ANDROID)
ui::InputDeviceObserverAndroid::GetInstance()->RemoveObserver(this);
diff --git a/chromium/patches/patch-content_browser_renderer__host_media_service__video__capture__device__launcher.cc b/chromium/patches/patch-content_browser_renderer__host_media_service__video__capture__device__launcher.cc
new file mode 100644
index 0000000000..37fb257459
--- /dev/null
+++ b/chromium/patches/patch-content_browser_renderer__host_media_service__video__capture__device__launcher.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/renderer_host/media/service_video_capture_device_launcher.cc.orig 2024-07-24 02:44:37.320847700 +0000
++++ content/browser/renderer_host/media/service_video_capture_device_launcher.cc
+@@ -25,7 +25,7 @@
+ #include "media/base/media_switches.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "content/browser/gpu/gpu_data_manager_impl.h"
+ #endif
+
+@@ -173,7 +173,7 @@ void ServiceVideoCaptureDeviceLauncher::
+ }
+ #else
+ if (switches::IsVideoCaptureUseGpuMemoryBufferEnabled()) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // On Linux, additionally check whether the NV12 GPU memory buffer is
+ // supported.
+ if (GpuDataManagerImpl::GetInstance()->IsGpuMemoryBufferNV12Supported())
diff --git a/chromium/patches/patch-content_browser_renderer__host_pepper_pepper__file__io__host.cc b/chromium/patches/patch-content_browser_renderer__host_pepper_pepper__file__io__host.cc
index 3388b44ffb..9743261f81 100644
--- a/chromium/patches/patch-content_browser_renderer__host_pepper_pepper__file__io__host.cc
+++ b/chromium/patches/patch-content_browser_renderer__host_pepper_pepper__file__io__host.cc
@@ -1,22 +1,26 @@
$NetBSD$
---- content/browser/renderer_host/pepper/pepper_file_io_host.cc.orig 2020-07-08 21:40:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/renderer_host/pepper/pepper_file_io_host.cc.orig 2024-07-24 02:44:37.352850700 +0000
+++ content/browser/renderer_host/pepper/pepper_file_io_host.cc
-@@ -433,7 +433,7 @@ void PepperFileIOHost::OnLocalFileOpened
+@@ -462,7 +462,7 @@ void PepperFileIOHost::OnLocalFileOpened
ppapi::host::ReplyMessageContext reply_context,
const base::FilePath& path,
base::File::Error error_code) {
--#if defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// Quarantining a file before its contents are available is only supported on
// Windows and Linux.
if (!FileOpenForWrite(open_flags_) || error_code != base::File::FILE_OK) {
-@@ -454,7 +454,7 @@ void PepperFileIOHost::OnLocalFileOpened
+@@ -496,7 +496,7 @@ void PepperFileIOHost::OnLocalFileOpened
#endif
}
--#if defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
void PepperFileIOHost::OnLocalFileQuarantined(
ppapi::host::ReplyMessageContext reply_context,
const base::FilePath& path,
diff --git a/chromium/patches/patch-content_browser_renderer__host_render__message__filter.cc b/chromium/patches/patch-content_browser_renderer__host_render__message__filter.cc
deleted file mode 100644
index 99abead4a7..0000000000
--- a/chromium/patches/patch-content_browser_renderer__host_render__message__filter.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- content/browser/renderer_host/render_message_filter.cc.orig 2020-07-08 21:40:42.000000000 +0000
-+++ content/browser/renderer_host/render_message_filter.cc
-@@ -70,7 +70,7 @@
- #if defined(OS_MACOSX)
- #include "ui/accelerated_widget_mac/window_resize_helper_mac.h"
- #endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "base/linux_util.h"
- #include "base/threading/platform_thread.h"
- #endif
-@@ -117,7 +117,7 @@ void RenderMessageFilter::GenerateRoutin
- std::move(callback).Run(render_widget_helper_->GetNextRoutingID());
- }
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- void RenderMessageFilter::SetThreadPriorityOnFileThread(
- base::PlatformThreadId ns_tid,
- base::ThreadPriority priority) {
-@@ -138,7 +138,7 @@ void RenderMessageFilter::SetThreadPrior
- }
- #endif
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- void RenderMessageFilter::SetThreadPriority(int32_t ns_tid,
- base::ThreadPriority priority) {
- constexpr base::TaskTraits kTraits = {
diff --git a/chromium/patches/patch-content_browser_renderer__host_render__message__filter.h b/chromium/patches/patch-content_browser_renderer__host_render__message__filter.h
deleted file mode 100644
index e0497c032b..0000000000
--- a/chromium/patches/patch-content_browser_renderer__host_render__message__filter.h
+++ /dev/null
@@ -1,21 +0,0 @@
-$NetBSD$
-
---- content/browser/renderer_host/render_message_filter.h.orig 2020-07-08 21:40:42.000000000 +0000
-+++ content/browser/renderer_host/render_message_filter.h
-@@ -79,14 +79,14 @@ class CONTENT_EXPORT RenderMessageFilter
- // mojom::RenderMessageFilter:
- void GenerateRoutingID(GenerateRoutingIDCallback routing_id) override;
- void HasGpuProcess(HasGpuProcessCallback callback) override;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- void SetThreadPriority(int32_t ns_tid,
- base::ThreadPriority priority) override;
- #endif
-
- void OnResolveProxy(const GURL& url, IPC::Message* reply_msg);
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- void SetThreadPriorityOnFileThread(base::PlatformThreadId ns_tid,
- base::ThreadPriority priority);
- #endif
diff --git a/chromium/patches/patch-content_browser_renderer__host_render__process__host__impl.cc b/chromium/patches/patch-content_browser_renderer__host_render__process__host__impl.cc
index 7e8ebcd134..4105c8e15f 100644
--- a/chromium/patches/patch-content_browser_renderer__host_render__process__host__impl.cc
+++ b/chromium/patches/patch-content_browser_renderer__host_render__process__host__impl.cc
@@ -1,76 +1,70 @@
$NetBSD$
---- content/browser/renderer_host/render_process_host_impl.cc.orig 2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/renderer_host/render_process_host_impl.cc.orig 2024-07-24 02:44:37.376853000 +0000
+++ content/browser/renderer_host/render_process_host_impl.cc
-@@ -240,7 +240,7 @@
- #include "content/browser/gpu/gpu_data_manager_impl.h"
+@@ -224,7 +224,7 @@
+ #include "third_party/blink/public/mojom/android_font_lookup/android_font_lookup.mojom.h"
#endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include <sys/resource.h>
- #include <sys/time.h>
-@@ -1224,7 +1224,7 @@ static constexpr size_t kUnknownPlatform
+ #include "components/services/font/public/mojom/font_service.mojom.h" // nogncheck
+@@ -965,7 +965,7 @@ static constexpr size_t kUnknownPlatform
// to indicate failure and std::numeric_limits<size_t>::max() to indicate
// unlimited.
size_t GetPlatformProcessLimit() {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
struct rlimit limit;
if (getrlimit(RLIMIT_NPROC, &limit) != 0)
return kUnknownPlatformProcessLimit;
-@@ -1329,7 +1329,7 @@ class RenderProcessHostImpl::IOThreadHos
+@@ -1151,7 +1151,7 @@ class RenderProcessHostImpl::IOThreadHos
+ IOThreadHostImpl& operator=(const IOThreadHostImpl& other) = delete;
+
+ void SetPid(base::ProcessId child_pid) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ child_thread_type_switcher_.SetPid(child_pid);
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ }
+@@ -1172,7 +1172,7 @@ class RenderProcessHostImpl::IOThreadHos
return;
}
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
if (auto font_receiver = receiver.As<font_service::mojom::FontService>()) {
ConnectToFontService(std::move(font_receiver));
return;
-@@ -1763,7 +1763,7 @@ bool RenderProcessHostImpl::Init() {
- renderer_prefix =
- browser_command_line.GetSwitchValueNative(switches::kRendererCmdPrefix);
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- int flags = renderer_prefix.empty() ? ChildProcessHost::CHILD_ALLOW_SELF
- : ChildProcessHost::CHILD_NORMAL;
- #elif defined(OS_MACOSX)
-@@ -3269,7 +3269,7 @@ void RenderProcessHostImpl::PropagateBro
- service_manager::switches::kDisableInProcessStackTraces,
- service_manager::switches::kDisableSeccompFilterSandbox,
- service_manager::switches::kNoSandbox,
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- switches::kDisableDevShmUsage,
- #endif
- #if defined(OS_MACOSX)
-@@ -3681,7 +3681,7 @@ void RenderProcessHostImpl::OnChannelCon
- for (auto& observer : observers_)
- observer.RenderProcessReady(this);
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // Provide /proc/{renderer pid}/status and statm files for
- // MemoryUsageMonitor in blink.
- ProvideStatusFileForRenderer();
-@@ -4983,7 +4983,7 @@ void RenderProcessHostImpl::OnProcessLau
- for (auto& observer : observers_)
- observer.RenderProcessReady(this);
+@@ -1266,7 +1266,7 @@ class RenderProcessHostImpl::IOThreadHos
+ std::unique_ptr<service_manager::BinderRegistry> binders_;
+ mojo::Receiver<mojom::ChildProcessHost> receiver_{this};
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // Provide /proc/{renderer pid}/status and statm files for
- // MemoryUsageMonitor in blink.
- ProvideStatusFileForRenderer();
-@@ -5153,7 +5153,7 @@ void RenderProcessHost::InterceptBindHos
- GetBindHostReceiverInterceptor() = std::move(callback);
- }
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ mojo::Remote<media::mojom::VideoEncodeAcceleratorProviderFactory>
+ video_encode_accelerator_factory_remote_;
+ ChildThreadTypeSwitcher child_thread_type_switcher_;
+@@ -3429,7 +3429,7 @@ void RenderProcessHostImpl::AppendRender
+ base::TimeTicks::UnixEpoch().since_origin().InMicroseconds()));
+ }
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- void RenderProcessHostImpl::ProvideStatusFileForRenderer() {
- // We use ScopedAllowBlocking, because opening /proc/{pid}/status and
- // /proc/{pid}/statm is not blocking call.
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Append `kDisableVideoCaptureUseGpuMemoryBuffer` flag if there is no support
+ // for NV12 GPU memory buffer.
+ if (switches::IsVideoCaptureUseGpuMemoryBufferEnabled() &&
+@@ -3487,6 +3487,7 @@ void RenderProcessHostImpl::PropagateBro
+ switches::kDisableSpeechAPI,
+ switches::kDisableThreadedCompositing,
+ switches::kDisableTouchDragDrop,
++ switches::kDisableUnveil,
+ switches::kDisableV8IdleTasks,
+ switches::kDisableVideoCaptureUseGpuMemoryBuffer,
+ switches::kDisableWebGLImageChromium,
diff --git a/chromium/patches/patch-content_browser_renderer__host_render__process__host__impl.h b/chromium/patches/patch-content_browser_renderer__host_render__process__host__impl.h
index 38a77d3ce0..c52b12d56f 100644
--- a/chromium/patches/patch-content_browser_renderer__host_render__process__host__impl.h
+++ b/chromium/patches/patch-content_browser_renderer__host_render__process__host__impl.h
@@ -1,13 +1,17 @@
$NetBSD$
---- content/browser/renderer_host/render_process_host_impl.h.orig 2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/renderer_host/render_process_host_impl.h.orig 2024-07-24 02:44:37.376853000 +0000
+++ content/browser/renderer_host/render_process_host_impl.h
-@@ -951,7 +951,7 @@ class CONTENT_EXPORT RenderProcessHostIm
- // if the request isn't handled on the IO thread.
- void OnBindHostReceiver(mojo::GenericPendingReceiver receiver);
+@@ -594,7 +594,7 @@ class CONTENT_EXPORT RenderProcessHostIm
+ // Sets this RenderProcessHost to be guest only. For Testing only.
+ void SetForGuestsOnlyForTesting();
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // Provides /proc/{renderer pid}/status and statm files for the renderer,
- // because the files are required to calculate the renderer's private
- // footprint on Chromium Linux. Regarding MacOS X and Windows, we have
+-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD)
+ // Launch the zygote early in the browser startup.
+ static void EarlyZygoteLaunch();
+ #endif // BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_MAC)
diff --git a/chromium/patches/patch-content_browser_renderer__host_render__view__host__impl.cc b/chromium/patches/patch-content_browser_renderer__host_render__view__host__impl.cc
index 63845ebdea..85e61587fe 100644
--- a/chromium/patches/patch-content_browser_renderer__host_render__view__host__impl.cc
+++ b/chromium/patches/patch-content_browser_renderer__host_render__view__host__impl.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- content/browser/renderer_host/render_view_host_impl.cc.orig 2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/renderer_host/render_view_host_impl.cc.orig 2024-07-24 02:44:37.380853400 +0000
+++ content/browser/renderer_host/render_view_host_impl.cc
-@@ -230,7 +230,7 @@ void RenderViewHostImpl::GetPlatformSpec
+@@ -273,7 +273,7 @@ void RenderViewHostImpl::GetPlatformSpec
display::win::ScreenWin::GetSystemMetricsInDIP(SM_CYVSCROLL);
prefs->arrow_bitmap_width_horizontal_scroll_bar_in_dips =
display::win::ScreenWin::GetSystemMetricsInDIP(SM_CXHSCROLL);
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- prefs->system_font_family_name = gfx::Font().GetFontName();
- #elif defined(OS_FUCHSIA)
- // Make Blink's "focus ring" invisible. The focus ring is a hairline border
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
+ if (command_line->HasSwitch(switches::kSystemFontFamily)) {
+ prefs->system_font_family_name =
diff --git a/chromium/patches/patch-content_browser_renderer__host_render__widget__host__view__aura.cc b/chromium/patches/patch-content_browser_renderer__host_render__widget__host__view__aura.cc
index 685d5fcc61..12a57c9392 100644
--- a/chromium/patches/patch-content_browser_renderer__host_render__widget__host__view__aura.cc
+++ b/chromium/patches/patch-content_browser_renderer__host_render__widget__host__view__aura.cc
@@ -1,45 +1,53 @@
$NetBSD$
---- content/browser/renderer_host/render_widget_host_view_aura.cc.orig 2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/renderer_host/render_widget_host_view_aura.cc.orig 2024-07-24 02:44:37.384853800 +0000
+++ content/browser/renderer_host/render_widget_host_view_aura.cc
-@@ -110,11 +110,11 @@
+@@ -120,7 +120,7 @@
#include "ui/gfx/gdi_util.h"
#endif
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
#include "content/browser/accessibility/browser_accessibility_auralinux.h"
- #endif
-
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- #include "ui/base/ime/linux/text_edit_command_auralinux.h" // nogncheck
- #include "ui/base/ime/linux/text_edit_key_bindings_delegate_auralinux.h" // nogncheck
- #endif
-@@ -489,7 +489,7 @@ gfx::NativeViewAccessible RenderWidgetHo
- if (manager)
- return ToBrowserAccessibilityWin(manager->GetRoot())->GetCOM();
+ #include "ui/base/ime/linux/text_edit_command_auralinux.h"
+ #include "ui/base/ime/text_input_flags.h"
+@@ -469,7 +469,7 @@ gfx::NativeViewAccessible RenderWidgetHo
+ return ToBrowserAccessibilityWin(manager->GetBrowserAccessibilityRoot())
+ ->GetCOM();
--#elif defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#elif (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
BrowserAccessibilityManager* manager =
host()->GetOrCreateRootBrowserAccessibilityManager();
- if (manager && manager->GetRoot())
-@@ -2150,7 +2150,7 @@ bool RenderWidgetHostViewAura::NeedsInpu
+ if (manager && manager->GetBrowserAccessibilityRoot())
+@@ -1730,7 +1730,7 @@ bool RenderWidgetHostViewAura::ShouldDoL
+ return host() && host()->delegate() && host()->delegate()->ShouldDoLearning();
+ }
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ bool RenderWidgetHostViewAura::SetCompositionFromExistingText(
+ const gfx::Range& range,
+ const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) {
+@@ -2558,7 +2558,7 @@ bool RenderWidgetHostViewAura::NeedsInpu
}
bool RenderWidgetHostViewAura::NeedsMouseCapture() {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
return NeedsInputGrab();
#else
return false;
-@@ -2326,7 +2326,7 @@ void RenderWidgetHostViewAura::ForwardKe
+@@ -2742,7 +2742,7 @@ void RenderWidgetHostViewAura::ForwardKe
if (!target_host)
return;
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- ui::TextEditKeyBindingsDelegateAuraLinux* keybinding_delegate =
- ui::GetTextEditKeyBindingsDelegate();
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ auto* linux_ui = ui::LinuxUi::instance();
std::vector<ui::TextEditCommandAuraLinux> commands;
+ if (!event.skip_if_unhandled && linux_ui && event.os_event &&
diff --git a/chromium/patches/patch-content_browser_renderer__host_render__widget__host__view__aura.h b/chromium/patches/patch-content_browser_renderer__host_render__widget__host__view__aura.h
new file mode 100644
index 0000000000..4e7bded782
--- /dev/null
+++ b/chromium/patches/patch-content_browser_renderer__host_render__widget__host__view__aura.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/renderer_host/render_widget_host_view_aura.h.orig 2024-07-24 02:44:37.384853800 +0000
++++ content/browser/renderer_host/render_widget_host_view_aura.h
+@@ -260,7 +260,7 @@ class CONTENT_EXPORT RenderWidgetHostVie
+ ukm::SourceId GetClientSourceForMetrics() const override;
+ bool ShouldDoLearning() override;
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ bool SetCompositionFromExistingText(
+ const gfx::Range& range,
+ const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) override;
diff --git a/chromium/patches/patch-content_browser_renderer__host_render__widget__host__view__event__handler.cc b/chromium/patches/patch-content_browser_renderer__host_render__widget__host__view__event__handler.cc
index 08c3e94ce5..d9dbb4bd79 100644
--- a/chromium/patches/patch-content_browser_renderer__host_render__widget__host__view__event__handler.cc
+++ b/chromium/patches/patch-content_browser_renderer__host_render__widget__host__view__event__handler.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- content/browser/renderer_host/render_widget_host_view_event_handler.cc.orig 2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/renderer_host/render_widget_host_view_event_handler.cc.orig 2024-07-24 02:44:37.392854700 +0000
+++ content/browser/renderer_host/render_widget_host_view_event_handler.cc
-@@ -653,7 +653,7 @@ bool RenderWidgetHostViewEventHandler::C
+@@ -596,7 +596,7 @@ bool RenderWidgetHostViewEventHandler::C
if (event->type() == ui::ET_MOUSE_EXITED) {
if (mouse_locked || selection_popup)
return false;
--#if defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// Don't forward the mouse leave message which is received when the context
// menu is displayed by the page. This confuses the page and causes state
// changes.
diff --git a/chromium/patches/patch-content_browser_sandbox__host__linux.cc b/chromium/patches/patch-content_browser_sandbox__host__linux.cc
new file mode 100644
index 0000000000..4ed7e52390
--- /dev/null
+++ b/chromium/patches/patch-content_browser_sandbox__host__linux.cc
@@ -0,0 +1,24 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/sandbox_host_linux.cc.orig 2024-07-24 02:44:37.408856200 +0000
++++ content/browser/sandbox_host_linux.cc
+@@ -45,6 +45,7 @@ void SandboxHostLinux::Init() {
+ // Instead, it replies on a temporary socket provided by the caller.
+ PCHECK(0 == shutdown(browser_socket, SHUT_WR)) << "shutdown";
+
++#if !BUILDFLAG(IS_BSD)
+ int pipefds[2];
+ CHECK(0 == pipe(pipefds));
+ const int child_lifeline_fd = pipefds[0];
+@@ -55,6 +56,7 @@ void SandboxHostLinux::Init() {
+ ipc_thread_ = std::make_unique<base::DelegateSimpleThread>(
+ ipc_handler_.get(), "sandbox_ipc_thread");
+ ipc_thread_->Start();
++#endif
+ }
+
+ } // namespace content
diff --git a/chromium/patches/patch-content_browser_scheduler_responsiveness_jank__monitor.cc b/chromium/patches/patch-content_browser_scheduler_responsiveness_jank__monitor.cc
deleted file mode 100644
index 821863b806..0000000000
--- a/chromium/patches/patch-content_browser_scheduler_responsiveness_jank__monitor.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- content/browser/scheduler/responsiveness/jank_monitor.cc.orig 2020-07-08 21:40:42.000000000 +0000
-+++ content/browser/scheduler/responsiveness/jank_monitor.cc
-@@ -322,7 +322,7 @@ void JankMonitor::ThreadExecutionState::
- // in context menus, among others). Simply ignore the mismatches for now.
- // See https://crbug.com/929813 for the details of why the mismatch
- // happens.
--#if !defined(OS_CHROMEOS) && defined(OS_LINUX) && defined(USE_OZONE)
-+#if !defined(OS_CHROMEOS) && (defined(OS_LINUX) || defined(OS_BSD)) && defined(USE_OZONE)
- task_execution_metadata_.clear();
- #endif
- return;
diff --git a/chromium/patches/patch-content_browser_scheduler_responsiveness_jank__monitor__impl.cc b/chromium/patches/patch-content_browser_scheduler_responsiveness_jank__monitor__impl.cc
new file mode 100644
index 0000000000..fa1576c498
--- /dev/null
+++ b/chromium/patches/patch-content_browser_scheduler_responsiveness_jank__monitor__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/scheduler/responsiveness/jank_monitor_impl.cc.orig 2024-07-24 02:44:37.408856200 +0000
++++ content/browser/scheduler/responsiveness/jank_monitor_impl.cc
+@@ -340,7 +340,7 @@ void JankMonitorImpl::ThreadExecutionSta
+ // in context menus, among others). Simply ignore the mismatches for now.
+ // See https://crbug.com/929813 for the details of why the mismatch
+ // happens.
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) && \
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)) && \
+ BUILDFLAG(IS_OZONE)
+ task_execution_metadata_.clear();
+ #endif
diff --git a/chromium/patches/patch-content_browser_scheduler_responsiveness_native__event__observer.cc b/chromium/patches/patch-content_browser_scheduler_responsiveness_native__event__observer.cc
index 148b660004..700e8f5c8d 100644
--- a/chromium/patches/patch-content_browser_scheduler_responsiveness_native__event__observer.cc
+++ b/chromium/patches/patch-content_browser_scheduler_responsiveness_native__event__observer.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- content/browser/scheduler/responsiveness/native_event_observer.cc.orig 2020-07-08 21:40:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/scheduler/responsiveness/native_event_observer.cc.orig 2024-07-24 02:44:37.408856200 +0000
+++ content/browser/scheduler/responsiveness/native_event_observer.cc
@@ -15,7 +15,7 @@
#include "ui/events/platform/platform_event_source.h"
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "ui/aura/env.h"
#include "ui/events/event.h"
#endif
@@ -15,8 +19,8 @@ $NetBSD$
DeregisterObserver();
}
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
void NativeEventObserver::RegisterObserver() {
aura::Env::GetInstance()->AddWindowEventDispatcherObserver(this);
}
diff --git a/chromium/patches/patch-content_browser_scheduler_responsiveness_native__event__observer.h b/chromium/patches/patch-content_browser_scheduler_responsiveness_native__event__observer.h
index 024abbbb84..c7ed25af47 100644
--- a/chromium/patches/patch-content_browser_scheduler_responsiveness_native__event__observer.h
+++ b/chromium/patches/patch-content_browser_scheduler_responsiveness_native__event__observer.h
@@ -1,49 +1,53 @@
$NetBSD$
---- content/browser/scheduler/responsiveness/native_event_observer.h.orig 2020-07-08 21:40:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/scheduler/responsiveness/native_event_observer.h.orig 2024-07-24 02:44:37.408856200 +0000
+++ content/browser/scheduler/responsiveness/native_event_observer.h
-@@ -14,7 +14,7 @@
+@@ -16,7 +16,7 @@
#include "content/public/browser/native_event_processor_observer_mac.h"
#endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "ui/aura/window_event_dispatcher_observer.h"
#endif
-@@ -39,7 +39,7 @@ namespace responsiveness {
+@@ -41,7 +41,7 @@ namespace responsiveness {
class CONTENT_EXPORT NativeEventObserver
- #if defined(OS_MACOSX)
+ #if BUILDFLAG(IS_MAC)
: public NativeEventProcessorObserver
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
: public aura::WindowEventDispatcherObserver
- #elif defined(OS_WIN)
+ #elif BUILDFLAG(IS_WIN)
: public base::MessagePumpForUI::Observer
-@@ -56,7 +56,7 @@ class CONTENT_EXPORT NativeEventObserver
+@@ -58,7 +58,7 @@ class CONTENT_EXPORT NativeEventObserver
NativeEventObserver(WillRunEventCallback will_run_event_callback,
DidRunEventCallback did_run_event_callback);
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- ~NativeEventObserver() override;
- #else
- virtual ~NativeEventObserver();
-@@ -68,7 +68,7 @@ class CONTENT_EXPORT NativeEventObserver
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+
+ NativeEventObserver(const NativeEventObserver&) = delete;
+ NativeEventObserver& operator=(const NativeEventObserver&) = delete;
+@@ -74,7 +74,7 @@ class CONTENT_EXPORT NativeEventObserver
// Exposed for tests.
void WillRunNativeEvent(const void* opaque_identifier) override;
void DidRunNativeEvent(const void* opaque_identifier) override;
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// aura::WindowEventDispatcherObserver overrides:
void OnWindowEventDispatcherStartedProcessing(
aura::WindowEventDispatcher* dispatcher,
-@@ -85,7 +85,7 @@ class CONTENT_EXPORT NativeEventObserver
+@@ -91,7 +91,7 @@ class CONTENT_EXPORT NativeEventObserver
void RegisterObserver();
void DeregisterObserver();
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
struct EventInfo {
- const void* unique_id;
+ raw_ptr<const void> unique_id;
};
diff --git a/chromium/patches/patch-content_browser_utility__process__host.cc b/chromium/patches/patch-content_browser_utility__process__host.cc
index 88946b1c0b..0aac05f905 100644
--- a/chromium/patches/patch-content_browser_utility__process__host.cc
+++ b/chromium/patches/patch-content_browser_utility__process__host.cc
@@ -1,22 +1,87 @@
$NetBSD$
---- content/browser/utility_process_host.cc.orig 2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/utility_process_host.cc.orig 2024-07-24 02:44:37.484863500 +0000
+++ content/browser/utility_process_host.cc
-@@ -275,7 +275,7 @@ UtilityProcessHost::UtilityProcessHost()
+@@ -61,7 +61,7 @@
+ #include "content/browser/v8_snapshot_files.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "base/files/file_util.h"
+ #include "base/files/scoped_file.h"
+ #include "base/pickle.h"
+@@ -74,7 +74,7 @@
+ #include "services/network/public/mojom/network_service.mojom.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ #include "base/task/sequenced_task_runner.h"
+ #include "components/viz/host/gpu_client.h"
+ #include "media/capture/capture_switches.h"
+@@ -85,7 +85,7 @@ namespace content {
+
+ namespace {
- UtilityProcessHost::UtilityProcessHost(std::unique_ptr<Client> client)
- : sandbox_type_(service_manager::SandboxType::kUtility),
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- child_flags_(ChildProcessHost::CHILD_ALLOW_SELF),
- #else
- child_flags_(ChildProcessHost::CHILD_NORMAL),
-@@ -487,7 +487,7 @@ bool UtilityProcessHost::StartProcess()
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ base::ScopedFD PassNetworkContextParentDirs(
+ std::vector<base::FilePath> network_context_parent_dirs) {
+ base::Pickle pickle;
+@@ -150,7 +150,7 @@ UtilityProcessHost::UtilityProcessHost(s
+ started_(false),
+ name_(u"utility process"),
+ file_data_(std::make_unique<ChildProcessLauncherFileData>()),
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ allowed_gpu_(false),
+ gpu_client_(nullptr, base::OnTaskRunnerDeleter(nullptr)),
+ #endif
+@@ -209,7 +209,7 @@ void UtilityProcessHost::SetPreloadLibra
+ #endif // BUILDFLAG(IS_WIN)
+
+ void UtilityProcessHost::SetAllowGpuClient() {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ allowed_gpu_ = true;
+ #endif
+ }
+@@ -349,7 +349,7 @@ bool UtilityProcessHost::StartProcess()
switches::kMuteAudio,
switches::kUseFileForFakeAudioCapture,
- switches::kAgcStartupMinVolume,
--#if defined(OS_LINUX) || defined(OS_FREEBSD) || defined(OS_SOLARIS)
-+#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FREEBSD) || \
+- BUILDFLAG(IS_SOLARIS)
++ BUILDFLAG(IS_SOLARIS) || BUILDFLAG(IS_NETBSD)
switches::kAlsaInputDevice,
switches::kAlsaOutputDevice,
#endif
+@@ -408,7 +408,7 @@ bool UtilityProcessHost::StartProcess()
+ file_data_->files_to_preload.merge(GetV8SnapshotFilesToPreload(*cmd_line));
+ #endif // BUILDFLAG(IS_POSIX)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // The network service should have access to the parent directories
+ // necessary for its usage.
+ if (sandbox_type_ == sandbox::mojom::Sandbox::kNetwork) {
+@@ -419,13 +419,13 @@ bool UtilityProcessHost::StartProcess()
+ }
+ #endif // BUILDFLAG(IS_LINUX)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ // Pass `kVideoCaptureUseGpuMemoryBuffer` flag to video capture service only
+ // when the video capture use GPU memory buffer enabled.
+ if (metrics_name_ == video_capture::mojom::VideoCaptureService::Name_) {
+ bool pass_gpu_buffer_flag =
+ switches::IsVideoCaptureUseGpuMemoryBufferEnabled();
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Check if NV12 GPU memory buffer supported at the same time.
+ pass_gpu_buffer_flag =
+ pass_gpu_buffer_flag &&
diff --git a/chromium/patches/patch-content_browser_utility__process__host.h b/chromium/patches/patch-content_browser_utility__process__host.h
new file mode 100644
index 0000000000..43b643f7a3
--- /dev/null
+++ b/chromium/patches/patch-content_browser_utility__process__host.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/utility_process_host.h.orig 2024-07-24 02:44:37.484863500 +0000
++++ content/browser/utility_process_host.h
+@@ -33,7 +33,7 @@ namespace base {
+ class Thread;
+ } // namespace base
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ namespace viz {
+ class GpuClient;
+ } // namespace viz
+@@ -200,7 +200,7 @@ class CONTENT_EXPORT UtilityProcessHost
+ };
+ LaunchState launch_state_ = LaunchState::kLaunchInProgress;
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ bool allowed_gpu_;
+ std::unique_ptr<viz::GpuClient, base::OnTaskRunnerDeleter> gpu_client_;
+ #endif
diff --git a/chromium/patches/patch-content_browser_utility__process__host__receiver__bindings.cc b/chromium/patches/patch-content_browser_utility__process__host__receiver__bindings.cc
index 5d8e485a94..61c4e103e9 100644
--- a/chromium/patches/patch-content_browser_utility__process__host__receiver__bindings.cc
+++ b/chromium/patches/patch-content_browser_utility__process__host__receiver__bindings.cc
@@ -1,22 +1,39 @@
$NetBSD$
---- content/browser/utility_process_host_receiver_bindings.cc.orig 2020-07-08 21:40:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/utility_process_host_receiver_bindings.cc.orig 2024-07-24 02:44:37.484863500 +0000
+++ content/browser/utility_process_host_receiver_bindings.cc
-@@ -10,7 +10,7 @@
+@@ -10,12 +10,12 @@
#include "content/public/browser/content_browser_client.h"
#include "content/public/common/content_client.h"
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "components/services/font/public/mojom/font_service.mojom.h" // nogncheck
#include "content/browser/font_service.h" // nogncheck
#endif
-@@ -19,7 +19,7 @@ namespace content {
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ #include "components/viz/host/gpu_client.h"
+ #include "content/public/browser/gpu_client.h"
+ #endif
+@@ -24,13 +24,13 @@ namespace content {
void UtilityProcessHost::BindHostReceiver(
mojo::GenericPendingReceiver receiver) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
if (auto font_receiver = receiver.As<font_service::mojom::FontService>()) {
ConnectToFontService(std::move(font_receiver));
return;
+ }
+ #endif
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ if (allowed_gpu_) {
+ // TODO(crbug.com/328099369) Remove once all clients get this directly.
+ if (auto gpu_receiver = receiver.As<viz::mojom::Gpu>()) {
diff --git a/chromium/patches/patch-content_browser_utility__sandbox__delegate.cc b/chromium/patches/patch-content_browser_utility__sandbox__delegate.cc
new file mode 100644
index 0000000000..ddf4a2dd24
--- /dev/null
+++ b/chromium/patches/patch-content_browser_utility__sandbox__delegate.cc
@@ -0,0 +1,34 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/utility_sandbox_delegate.cc.orig 2024-07-24 02:44:37.484863500 +0000
++++ content/browser/utility_sandbox_delegate.cc
+@@ -67,10 +67,10 @@ UtilitySandboxedProcessLauncherDelegate:
+ #if BUILDFLAG(IS_FUCHSIA)
+ sandbox_type_ == sandbox::mojom::Sandbox::kVideoCapture ||
+ #endif
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ sandbox_type_ == sandbox::mojom::Sandbox::kHardwareVideoDecoding ||
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ sandbox_type_ == sandbox::mojom::Sandbox::kHardwareVideoEncoding ||
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
+@@ -127,10 +127,10 @@ ZygoteCommunication* UtilitySandboxedPro
+ // process upon startup.
+ if (sandbox_type_ == sandbox::mojom::Sandbox::kNetwork ||
+ sandbox_type_ == sandbox::mojom::Sandbox::kOnDeviceModelExecution ||
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ sandbox_type_ == sandbox::mojom::Sandbox::kHardwareVideoDecoding ||
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ sandbox_type_ == sandbox::mojom::Sandbox::kHardwareVideoEncoding ||
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/chromium/patches/patch-content_browser_v8__snapshot__files.cc b/chromium/patches/patch-content_browser_v8__snapshot__files.cc
index 3c0ce3b7a9..11fe03bdad 100644
--- a/chromium/patches/patch-content_browser_v8__snapshot__files.cc
+++ b/chromium/patches/patch-content_browser_v8__snapshot__files.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- content/browser/v8_snapshot_files.cc.orig 2020-07-08 21:40:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/v8_snapshot_files.cc.orig 2024-07-24 02:44:37.484863500 +0000
+++ content/browser/v8_snapshot_files.cc
-@@ -10,7 +10,7 @@
- namespace content {
-
- std::map<std::string, base::FilePath> GetV8SnapshotFilesToPreload() {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #if defined(USE_V8_CONTEXT_SNAPSHOT)
- return {{kV8ContextSnapshotDataDescriptor,
- base::FilePath(FILE_PATH_LITERAL("v8_context_snapshot.bin"))}};
+@@ -17,7 +17,7 @@ namespace content {
+ std::map<std::string, absl::variant<base::FilePath, base::ScopedFD>>
+ GetV8SnapshotFilesToPreload(base::CommandLine& process_command_line) {
+ std::map<std::string, absl::variant<base::FilePath, base::ScopedFD>> files;
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #if BUILDFLAG(USE_V8_CONTEXT_SNAPSHOT)
+ files[kV8ContextSnapshotDataDescriptor] = base::FilePath(
+ FILE_PATH_LITERAL(BUILDFLAG(V8_CONTEXT_SNAPSHOT_FILENAME)));
diff --git a/chromium/patches/patch-content_browser_web__contents_web__contents__view__aura.cc b/chromium/patches/patch-content_browser_web__contents_web__contents__view__aura.cc
new file mode 100644
index 0000000000..785974ab74
--- /dev/null
+++ b/chromium/patches/patch-content_browser_web__contents_web__contents__view__aura.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/web_contents/web_contents_view_aura.cc.orig 2024-07-24 02:44:37.496864800 +0000
++++ content/browser/web_contents/web_contents_view_aura.cc
+@@ -174,7 +174,7 @@ class WebDragSourceAura : public content
+ raw_ptr<aura::Window> window_;
+ };
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ // Fill out the OSExchangeData with a file contents, synthesizing a name if
+ // necessary.
+ void PrepareDragForFileContents(const DropData& drop_data,
+@@ -258,7 +258,7 @@ void PrepareDragData(const DropData& dro
+ if (!drop_data.download_metadata.empty())
+ PrepareDragForDownload(drop_data, provider, web_contents);
+ #endif
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ // We set the file contents before the URL because the URL also sets file
+ // contents (to a .URL shortcut). We want to prefer file content data over
+ // a shortcut so we add it first.
+@@ -1333,7 +1333,7 @@ void WebContentsViewAura::OnMouseEvent(u
+ // Linux window managers like to handle raise-on-click themselves. If we
+ // raise-on-click manually, this may override user settings that prevent
+ // focus-stealing.
+-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD)
+ // It is possible for the web-contents to be destroyed while it is being
+ // activated. Use a weak-ptr to track whether that happened or not.
+ // More in https://crbug.com/1040725
diff --git a/chromium/patches/patch-content_browser_web__contents_web__contents__view__aura__unittest.cc b/chromium/patches/patch-content_browser_web__contents_web__contents__view__aura__unittest.cc
new file mode 100644
index 0000000000..b02685b8d9
--- /dev/null
+++ b/chromium/patches/patch-content_browser_web__contents_web__contents__view__aura__unittest.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/web_contents/web_contents_view_aura_unittest.cc.orig 2024-07-24 02:44:37.496864800 +0000
++++ content/browser/web_contents/web_contents_view_aura_unittest.cc
+@@ -97,7 +97,7 @@ class TestDragDropClient : public aura::
+ drag_drop_data_ = std::move(data);
+ return DragOperation::kCopy;
+ }
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void UpdateDragImage(const gfx::ImageSkia& image,
+ const gfx::Vector2d& offset) override {}
+ #endif
diff --git a/chromium/patches/patch-content_browser_webui_shared__resources__data__source.cc b/chromium/patches/patch-content_browser_webui_shared__resources__data__source.cc
deleted file mode 100644
index 1b2554ec67..0000000000
--- a/chromium/patches/patch-content_browser_webui_shared__resources__data__source.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- content/browser/webui/shared_resources_data_source.cc.orig 2020-07-08 21:41:48.000000000 +0000
-+++ content/browser/webui/shared_resources_data_source.cc
-@@ -135,7 +135,7 @@ const std::map<int, std::string> CreateM
- {IDR_MOJO_TEXT_DIRECTION_MOJOM_LITE_JS,
- "mojo/mojo/public/mojom/base/text_direction.mojom-lite.js"},
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
-- defined(OS_ANDROID)
-+ defined(OS_ANDROID) || defined(OS_BSD)
- {IDR_MOJO_TIME_MOJOM_HTML,
- "mojo/mojo/public/mojom/base/time.mojom.html"},
- {IDR_MOJO_TIME_MOJOM_LITE_JS,
diff --git a/chromium/patches/patch-content_browser_webui_web__ui__main__frame__observer.cc b/chromium/patches/patch-content_browser_webui_web__ui__main__frame__observer.cc
new file mode 100644
index 0000000000..3a8284c3b1
--- /dev/null
+++ b/chromium/patches/patch-content_browser_webui_web__ui__main__frame__observer.cc
@@ -0,0 +1,44 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/webui/web_ui_main_frame_observer.cc.orig 2024-07-24 02:44:37.528867700 +0000
++++ content/browser/webui/web_ui_main_frame_observer.cc
+@@ -13,7 +13,7 @@
+ #include "content/public/browser/navigation_handle.h"
+ #include "content/public/browser/web_ui_controller.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "base/feature_list.h"
+ #include "base/functional/callback_helpers.h"
+ #include "base/logging.h"
+@@ -31,7 +31,7 @@ namespace content {
+
+ namespace {
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Remove the pieces of the URL we don't want to send back with the error
+ // reports. In particular, do not send query or fragments as those can have
+ // privacy-sensitive information in them.
+@@ -55,7 +55,7 @@ WebUIMainFrameObserver::WebUIMainFrameOb
+
+ WebUIMainFrameObserver::~WebUIMainFrameObserver() = default;
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ void WebUIMainFrameObserver::OnDidAddMessageToConsole(
+ RenderFrameHost* source_frame,
+ blink::mojom::ConsoleMessageLevel log_level,
+@@ -167,7 +167,7 @@ void WebUIMainFrameObserver::ReadyToComm
+
+ // TODO(crbug.com/40149439) This is currently disabled due to Windows DLL
+ // thunking issues. Fix & re-enable.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ MaybeEnableWebUIJavaScriptErrorReporting(navigation_handle);
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ }
diff --git a/chromium/patches/patch-content_browser_webui_web__ui__main__frame__observer.h b/chromium/patches/patch-content_browser_webui_web__ui__main__frame__observer.h
new file mode 100644
index 0000000000..a7e6f1a0cd
--- /dev/null
+++ b/chromium/patches/patch-content_browser_webui_web__ui__main__frame__observer.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/webui/web_ui_main_frame_observer.h.orig 2024-07-24 02:44:37.528867700 +0000
++++ content/browser/webui/web_ui_main_frame_observer.h
+@@ -44,7 +44,7 @@ class CONTENT_EXPORT WebUIMainFrameObser
+
+ // TODO(crbug.com/40149439) This is currently disabled due to Windows DLL
+ // thunking issues. Fix & re-enable.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // On official Google builds, capture and report JavaScript error messages on
+ // WebUI surfaces back to Google. This allows us to fix JavaScript errors and
+ // exceptions.
+@@ -60,7 +60,7 @@ class CONTENT_EXPORT WebUIMainFrameObser
+ void ReadyToCommitNavigation(NavigationHandle* navigation_handle) override;
+
+ private:
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ void MaybeEnableWebUIJavaScriptErrorReporting(
+ NavigationHandle* navigation_handle);
+
diff --git a/chromium/patches/patch-content_browser_zygote__host_zygote__host__impl__linux.cc b/chromium/patches/patch-content_browser_zygote__host_zygote__host__impl__linux.cc
new file mode 100644
index 0000000000..13174f3d91
--- /dev/null
+++ b/chromium/patches/patch-content_browser_zygote__host_zygote__host__impl__linux.cc
@@ -0,0 +1,87 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/zygote_host/zygote_host_impl_linux.cc.orig 2024-07-24 02:44:37.540869000 +0000
++++ content/browser/zygote_host/zygote_host_impl_linux.cc
+@@ -18,8 +18,10 @@
+ #include "build/chromeos_buildflags.h"
+ #include "content/common/zygote/zygote_commands_linux.h"
+ #include "content/common/zygote/zygote_communication_linux.h"
++#if !BUILDFLAG(IS_BSD)
+ #include "content/common/zygote/zygote_handle_impl_linux.h"
+ #include "content/public/common/zygote/zygote_handle.h"
++#endif
+ #include "sandbox/linux/services/credentials.h"
+ #include "sandbox/linux/services/namespace_sandbox.h"
+ #include "sandbox/linux/suid/client/setuid_sandbox_host.h"
+@@ -37,6 +39,7 @@ namespace content {
+
+ namespace {
+
++#if !BUILDFLAG(IS_BSD)
+ // Receive a fixed message on fd and return the sender's PID.
+ // Returns true if the message received matches the expected message.
+ bool ReceiveFixedMessage(int fd,
+@@ -58,6 +61,7 @@ bool ReceiveFixedMessage(int fd,
+ return false;
+ return true;
+ }
++#endif
+
+ } // namespace
+
+@@ -67,9 +71,13 @@ ZygoteHost* ZygoteHost::GetInstance() {
+ }
+
+ ZygoteHostImpl::ZygoteHostImpl()
++#if !BUILDFLAG(IS_BSD)
+ : use_namespace_sandbox_(false),
+ use_suid_sandbox_(false),
+ use_suid_sandbox_for_adj_oom_score_(false),
++#else
++ :
++#endif
+ sandbox_binary_(),
+ zygote_pids_lock_(),
+ zygote_pids_() {}
+@@ -82,6 +90,7 @@ ZygoteHostImpl* ZygoteHostImpl::GetInsta
+ }
+
+ void ZygoteHostImpl::Init(const base::CommandLine& command_line) {
++#if !BUILDFLAG(IS_BSD)
+ if (command_line.HasSwitch(sandbox::policy::switches::kNoSandbox)) {
+ return;
+ }
+@@ -132,6 +141,7 @@ void ZygoteHostImpl::Init(const base::Co
+ "you can try using --"
+ << sandbox::policy::switches::kNoSandbox << ".";
+ }
++#endif
+ }
+
+ void ZygoteHostImpl::AddZygotePid(pid_t pid) {
+@@ -156,6 +166,7 @@ pid_t ZygoteHostImpl::LaunchZygote(
+ base::CommandLine* cmd_line,
+ base::ScopedFD* control_fd,
+ base::FileHandleMappingVector additional_remapped_fds) {
++#if !BUILDFLAG(IS_BSD)
+ int fds[2];
+ CHECK_EQ(0, socketpair(AF_UNIX, SOCK_SEQPACKET | SOCK_CLOEXEC, 0, fds));
+ CHECK(base::UnixDomainSocket::EnableReceiveProcessId(fds[0]));
+@@ -224,9 +235,12 @@ pid_t ZygoteHostImpl::LaunchZygote(
+
+ AddZygotePid(pid);
+ return pid;
++#else
++ return 0;
++#endif
+ }
+
+-#if !BUILDFLAG(IS_OPENBSD)
++#if !BUILDFLAG(IS_BSD)
+ void ZygoteHostImpl::AdjustRendererOOMScore(base::ProcessHandle pid,
+ int score) {
+ // 1) You can't change the oom_score_adj of a non-dumpable process
diff --git a/chromium/patches/patch-content_browser_zygote__host_zygote__host__impl__linux.h b/chromium/patches/patch-content_browser_zygote__host_zygote__host__impl__linux.h
new file mode 100644
index 0000000000..961f8e1730
--- /dev/null
+++ b/chromium/patches/patch-content_browser_zygote__host_zygote__host__impl__linux.h
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/zygote_host/zygote_host_impl_linux.h.orig 2024-07-24 02:44:37.540869000 +0000
++++ content/browser/zygote_host/zygote_host_impl_linux.h
+@@ -47,12 +47,14 @@ class CONTENT_EXPORT ZygoteHostImpl : pu
+ base::ScopedFD* control_fd,
+ base::FileHandleMappingVector additional_remapped_fds);
+
++#if !BUILDFLAG(IS_BSD)
+ void AdjustRendererOOMScore(base::ProcessHandle process_handle,
+ int score) override;
+ #if BUILDFLAG(IS_CHROMEOS)
+ void ReinitializeLogging(uint32_t logging_dest,
+ base::PlatformFile log_file_fd) override;
+ #endif // BUILDFLAG(IS_CHROMEOS)
++#endif
+
+ bool HasZygote() { return !zygote_pids_.empty(); }
+
+@@ -67,9 +69,11 @@ class CONTENT_EXPORT ZygoteHostImpl : pu
+
+ int renderer_sandbox_status_;
+
++#if !BUILDFLAG(IS_BSD)
+ bool use_namespace_sandbox_;
+ bool use_suid_sandbox_;
+ bool use_suid_sandbox_for_adj_oom_score_;
++#endif
+ std::string sandbox_binary_;
+
+ // This lock protects the |zygote_pids_| set.
diff --git a/chromium/patches/patch-content_child_BUILD.gn b/chromium/patches/patch-content_child_BUILD.gn
index 88ed9bc05e..1273667872 100644
--- a/chromium/patches/patch-content_child_BUILD.gn
+++ b/chromium/patches/patch-content_child_BUILD.gn
@@ -1,25 +1,22 @@
$NetBSD$
---- content/child/BUILD.gn.orig 2020-07-15 18:55:57.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/child/BUILD.gn.orig 2024-07-24 02:44:37.540869000 +0000
+++ content/child/BUILD.gn
-@@ -143,13 +143,19 @@ target(link_target_type, "child") {
+@@ -130,6 +130,13 @@ target(link_target_type, "child") {
]
}
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- deps += [
- "//components/services/font/public/cpp",
- "//components/services/font/public/mojom",
- ]
- }
-
-+ #if (is_bsd) {
-+ # deps -= [
-+ # "//services/service_manager/zygote",
-+ # ]
-+ #}
++ if (is_bsd) {
++ sources -= [
++ "sandboxed_process_thread_type_handler.cc",
++ "sandboxed_process_thread_type_handler.h",
++ ]
++ }
+
if (is_win) {
- libs = [ "dwrite.lib" ]
- }
+ sources += [
+ "dwrite_font_proxy/dwrite_font_proxy_init_impl_win.cc",
diff --git a/chromium/patches/patch-content_child_child__process.cc b/chromium/patches/patch-content_child_child__process.cc
new file mode 100644
index 0000000000..223210c053
--- /dev/null
+++ b/chromium/patches/patch-content_child_child__process.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/child/child_process.cc.orig 2024-07-24 02:44:37.540869000 +0000
++++ content/child/child_process.cc
+@@ -35,7 +35,7 @@
+ #include "content/common/android/cpu_time_metrics.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "content/child/sandboxed_process_thread_type_handler.h"
+ #endif
+
+@@ -70,7 +70,7 @@ ChildProcess::ChildProcess(base::ThreadT
+ thread_pool_init_params)
+ : resetter_(&child_process, this, nullptr),
+ io_thread_(std::make_unique<ChildIOThread>()) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ const base::CommandLine& command_line =
+ *base::CommandLine::ForCurrentProcess();
+ const bool is_embedded_in_browser_process =
+@@ -199,7 +199,7 @@ void ChildProcess::set_main_thread(Child
+ main_thread_.reset(thread);
+ }
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ void ChildProcess::SetIOThreadType(base::ThreadType thread_type) {
+ if (!io_thread_) {
+ return;
diff --git a/chromium/patches/patch-content_child_child__process.h b/chromium/patches/patch-content_child_child__process.h
new file mode 100644
index 0000000000..79a3d191eb
--- /dev/null
+++ b/chromium/patches/patch-content_child_child__process.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/child/child_process.h.orig 2024-07-24 02:44:37.540869000 +0000
++++ content/child/child_process.h
+@@ -79,7 +79,7 @@ class CONTENT_EXPORT ChildProcess {
+ return io_thread_runner_.get();
+ }
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Changes the thread type of the child process IO thread.
+ void SetIOThreadType(base::ThreadType thread_type);
+ #endif
diff --git a/chromium/patches/patch-content_common_BUILD.gn b/chromium/patches/patch-content_common_BUILD.gn
index 4db10900fe..179fd11392 100644
--- a/chromium/patches/patch-content_common_BUILD.gn
+++ b/chromium/patches/patch-content_common_BUILD.gn
@@ -1,26 +1,42 @@
$NetBSD$
---- content/common/BUILD.gn.orig 2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/common/BUILD.gn.orig 2024-07-24 02:44:37.544869400 +0000
+++ content/common/BUILD.gn
-@@ -319,6 +319,12 @@ source_set("common") {
- set_sources_assignment_filter(sources_assignment_filter)
+@@ -421,19 +421,28 @@ source_set("common") {
}
-+ if (is_bsd) {
-+ sources -= [
-+ "common_sandbox_support_linux.cc",
-+ ]
-+ }
-+
- if (is_mac) {
+ if (is_linux || is_chromeos) {
+- sources += [
+- "gpu_pre_sandbox_hook_linux.cc",
+- "gpu_pre_sandbox_hook_linux.h",
+- ]
++ if (is_bsd) {
++ sources += [
++ "gpu_pre_sandbox_hook_bsd.cc",
++ "gpu_pre_sandbox_hook_bsd.h",
++ ]
++ } else {
++ sources += [
++ "gpu_pre_sandbox_hook_linux.cc",
++ "gpu_pre_sandbox_hook_linux.h",
++ ]
++ }
+ public_deps += [ "//sandbox/policy" ]
deps += [
- ":mac_helpers",
-@@ -471,7 +477,7 @@ mojom("mojo_bindings") {
- if (enable_ipc_logging) {
- enabled_features += [ "ipc_logging" ]
- }
-- if (is_linux || is_chromeos) {
-+ if (is_linux || is_chromeos || is_bsd) {
- enabled_features += [ "supports_thread_priorities" ]
- }
- if (use_clang_profiling_inside_sandbox) {
+ ":sandbox_support_linux",
+ "//media/gpu:buildflags",
+ "//sandbox/linux:sandbox_services",
+- "//sandbox/linux:seccomp_bpf",
+ "//sandbox/policy:chromecast_sandbox_allowlist_buildflags",
+ "//third_party/fontconfig",
+ ]
++ if (use_seccomp_bpf) {
++ deps += [ "//sandbox/linux:seccomp_bpf" ]
++ }
+ if (use_v4l2_codec) {
+ deps += [ "//media/gpu/v4l2" ]
+ }
diff --git a/chromium/patches/patch-content_common_common__sandbox__support__linux.cc b/chromium/patches/patch-content_common_common__sandbox__support__linux.cc
deleted file mode 100644
index 03c45cf10c..0000000000
--- a/chromium/patches/patch-content_common_common__sandbox__support__linux.cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$NetBSD$
-
---- content/common/common_sandbox_support_linux.cc.orig 2020-07-15 18:55:57.000000000 +0000
-+++ content/common/common_sandbox_support_linux.cc
-@@ -5,6 +5,7 @@
- #include "content/public/common/common_sandbox_support_linux.h"
-
- #include <sys/stat.h>
-+#include <unistd.h>
-
- #include <limits>
- #include <memory>
diff --git a/chromium/patches/patch-content_common_features.cc b/chromium/patches/patch-content_common_features.cc
new file mode 100644
index 0000000000..ecc27902c9
--- /dev/null
+++ b/chromium/patches/patch-content_common_features.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/common/features.cc.orig 2024-07-24 02:44:37.552870000 +0000
++++ content/common/features.cc
+@@ -173,7 +173,7 @@ BASE_FEATURE(kEnableBackForwardCacheForO
+ base::FEATURE_ENABLED_BY_DEFAULT);
+
+ // Enables error reporting for JS errors inside DevTools frontend host
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ BASE_FEATURE(kEnableDevToolsJsErrorReporting,
+ "EnableDevToolsJsErrorReporting",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+@@ -294,7 +294,7 @@ BASE_FEATURE(kGroupNIKByJoiningOrigin,
+ // process and having browser process handle adjusting thread properties (nice
+ // value, c-group, latency sensitivity...) for children which have sandbox
+ // restrictions.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ BASE_FEATURE(kHandleChildThreadTypeChangesInBrowser,
+ "HandleChildThreadTypeChangesInBrowser",
+ base::FEATURE_ENABLED_BY_DEFAULT);
diff --git a/chromium/patches/patch-content_common_features.gni b/chromium/patches/patch-content_common_features.gni
deleted file mode 100644
index 757462ad0b..0000000000
--- a/chromium/patches/patch-content_common_features.gni
+++ /dev/null
@@ -1,10 +0,0 @@
-$NetBSD$
-
---- content/common/features.gni.orig 2020-07-15 18:55:57.000000000 +0000
-+++ content/common/features.gni
-@@ -13,4 +13,4 @@ declare_args() {
- allow_critical_memory_pressure_handling_in_foreground = is_chromecast
- }
-
--enable_screen_capture = is_linux || is_mac || is_win || is_android
-+enable_screen_capture = is_linux || is_mac || is_win || is_android || is_bsd
diff --git a/chromium/patches/patch-content_common_features.h b/chromium/patches/patch-content_common_features.h
new file mode 100644
index 0000000000..9ddeb18dcb
--- /dev/null
+++ b/chromium/patches/patch-content_common_features.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/common/features.h.orig 2024-07-24 02:44:37.552870000 +0000
++++ content/common/features.h
+@@ -37,7 +37,7 @@ CONTENT_EXPORT BASE_DECLARE_FEATURE(kDoc
+ CONTENT_EXPORT BASE_DECLARE_FEATURE(kEnableBackForwardCacheForScreenReader);
+ CONTENT_EXPORT BASE_DECLARE_FEATURE(
+ kEnableBackForwardCacheForOngoingSubframeNavigation);
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ CONTENT_EXPORT BASE_DECLARE_FEATURE(kEnableDevToolsJsErrorReporting);
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ CONTENT_EXPORT BASE_DECLARE_FEATURE(kEmbeddingRequiresOptIn);
+@@ -71,7 +71,7 @@ CONTENT_EXPORT extern const base::Featur
+ CONTENT_EXPORT BASE_DECLARE_FEATURE(kGpuInfoCollectionSeparatePrefetch);
+ #endif
+ CONTENT_EXPORT BASE_DECLARE_FEATURE(kGroupNIKByJoiningOrigin);
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ CONTENT_EXPORT BASE_DECLARE_FEATURE(kHandleChildThreadTypeChangesInBrowser);
+ #endif
+ #if BUILDFLAG(IS_ANDROID)
diff --git a/chromium/patches/patch-content_common_font__list__unittest.cc b/chromium/patches/patch-content_common_font__list__unittest.cc
new file mode 100644
index 0000000000..65ea400678
--- /dev/null
+++ b/chromium/patches/patch-content_common_font__list__unittest.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/common/font_list_unittest.cc.orig 2024-07-24 02:44:37.552870000 +0000
++++ content/common/font_list_unittest.cc
+@@ -48,7 +48,7 @@ TEST(FontList, GetFontList) {
+ EXPECT_TRUE(HasFontWithName(fonts, "MS Gothic", "MS Gothic"));
+ EXPECT_TRUE(HasFontWithName(fonts, "Segoe UI", "Segoe UI"));
+ EXPECT_TRUE(HasFontWithName(fonts, "Verdana", "Verdana"));
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ EXPECT_TRUE(HasFontWithName(fonts, "Arimo", "Arimo"));
+ #else
+ EXPECT_TRUE(HasFontWithName(fonts, "Arial", "Arial"));
diff --git a/chromium/patches/patch-content_common_gpu__pre__sandbox__hook__bsd.cc b/chromium/patches/patch-content_common_gpu__pre__sandbox__hook__bsd.cc
new file mode 100644
index 0000000000..7703d795f2
--- /dev/null
+++ b/chromium/patches/patch-content_common_gpu__pre__sandbox__hook__bsd.cc
@@ -0,0 +1,77 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/common/gpu_pre_sandbox_hook_bsd.cc.orig 2024-08-01 14:08:57.889339657 +0000
++++ content/common/gpu_pre_sandbox_hook_bsd.cc
+@@ -0,0 +1,68 @@
++// Copyright 2023 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "content/common/gpu_pre_sandbox_hook_bsd.h"
++
++#include <dlfcn.h>
++#include <errno.h>
++#include <sys/stat.h>
++
++#include <memory>
++#include <sstream>
++#include <utility>
++#include <vector>
++
++#include "base/base_paths.h"
++#include "base/files/file_enumerator.h"
++#include "base/files/file_path.h"
++#include "base/files/scoped_file.h"
++#include "base/functional/bind.h"
++#include "base/logging.h"
++#include "base/path_service.h"
++#include "base/strings/stringprintf.h"
++#include "build/build_config.h"
++#include "build/buildflag.h"
++#include "build/chromeos_buildflags.h"
++#include "content/public/common/content_switches.h"
++#include "media/gpu/buildflags.h"
++
++namespace content {
++namespace {
++
++constexpr int dlopen_flag = RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE;
++
++void LoadVulkanLibraries() {
++ // Try to preload Vulkan libraries. Failure is not an error as not all may be
++ // present.
++ const char* kLibraries[] = {
++ "libvulkan.so",
++ "libvulkan_intel.so",
++ "libvulkan_intel_hasvk.so",
++ "libvulkan_radeon.so",
++ };
++ for (const auto* library : kLibraries) {
++ dlopen(library, dlopen_flag);
++ }
++}
++
++bool LoadLibrariesForGpu(
++ const sandbox::policy::SandboxSeccompBPF::Options& options) {
++ LoadVulkanLibraries();
++
++ return true;
++}
++
++} // namespace
++
++bool GpuPreSandboxHook(sandbox::policy::SandboxLinux::Options options) {
++ if (!LoadLibrariesForGpu(options))
++ return false;
++
++ // TODO(tsepez): enable namspace sandbox here once crashes are understood.
++
++ errno = 0;
++ return true;
++}
++
++} // namespace content
diff --git a/chromium/patches/patch-content_common_gpu__pre__sandbox__hook__bsd.h b/chromium/patches/patch-content_common_gpu__pre__sandbox__hook__bsd.h
new file mode 100644
index 0000000000..8ba1911cc6
--- /dev/null
+++ b/chromium/patches/patch-content_common_gpu__pre__sandbox__hook__bsd.h
@@ -0,0 +1,29 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/common/gpu_pre_sandbox_hook_bsd.h.orig 2024-08-01 14:08:57.890177474 +0000
++++ content/common/gpu_pre_sandbox_hook_bsd.h
+@@ -0,0 +1,20 @@
++// Copyright 2017 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef CONTENT_COMMON_GPU_PRE_SANDBOX_HOOK_BSD_H_
++#define CONTENT_COMMON_GPU_PRE_SANDBOX_HOOK_BSD_H_
++
++#include "base/component_export.h"
++#include "sandbox/policy/sandbox.h"
++
++namespace content {
++
++// A pre-sandbox hook to use on Linux-based systems in sandboxed processes that
++// require general GPU usage.
++COMPONENT_EXPORT(GPU_PRE_SANDBOX_HOOK)
++bool GpuPreSandboxHook(sandbox::policy::SandboxLinux::Options options);
++
++} // namespace content
++
++#endif // CONTENT_COMMON_GPU_PRE_SANDBOX_HOOK_BSD_H_
diff --git a/chromium/patches/patch-content_common_gpu__pre__sandbox__hook__linux.h b/chromium/patches/patch-content_common_gpu__pre__sandbox__hook__linux.h
new file mode 100644
index 0000000000..fbcce2df31
--- /dev/null
+++ b/chromium/patches/patch-content_common_gpu__pre__sandbox__hook__linux.h
@@ -0,0 +1,22 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/common/gpu_pre_sandbox_hook_linux.h.orig 2024-07-24 02:44:37.552870000 +0000
++++ content/common/gpu_pre_sandbox_hook_linux.h
+@@ -5,8 +5,13 @@
+ #ifndef CONTENT_COMMON_GPU_PRE_SANDBOX_HOOK_LINUX_H_
+ #define CONTENT_COMMON_GPU_PRE_SANDBOX_HOOK_LINUX_H_
+
++#include "build/build_config.h"
+ #include "base/component_export.h"
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
++#else
+ #include "sandbox/policy/linux/sandbox_linux.h"
++#endif
+
+ namespace content {
+
diff --git a/chromium/patches/patch-content_common_mojo__core__library__support.cc b/chromium/patches/patch-content_common_mojo__core__library__support.cc
new file mode 100644
index 0000000000..1098dda5e9
--- /dev/null
+++ b/chromium/patches/patch-content_common_mojo__core__library__support.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/common/mojo_core_library_support.cc.orig 2024-07-24 02:44:37.564871300 +0000
++++ content/common/mojo_core_library_support.cc
+@@ -15,7 +15,7 @@ bool IsMojoCoreSharedLibraryEnabled() {
+ }
+
+ std::optional<base::FilePath> GetMojoCoreSharedLibraryPath() {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ const base::CommandLine& command_line =
+ *base::CommandLine::ForCurrentProcess();
+ if (!command_line.HasSwitch(switches::kMojoCoreLibraryPath))
diff --git a/chromium/patches/patch-content_common_user__agent.cc b/chromium/patches/patch-content_common_user__agent.cc
new file mode 100644
index 0000000000..a88f69628e
--- /dev/null
+++ b/chromium/patches/patch-content_common_user__agent.cc
@@ -0,0 +1,43 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/common/user_agent.cc.orig 2024-07-24 02:44:37.568871700 +0000
++++ content/common/user_agent.cc
+@@ -45,7 +45,7 @@ std::string GetUserAgentPlatform() {
+ return "";
+ #elif BUILDFLAG(IS_MAC)
+ return "Macintosh; ";
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ return "X11; "; // strange, but that's what Firefox uses
+ #elif BUILDFLAG(IS_ANDROID)
+ return "Linux; ";
+@@ -71,7 +71,7 @@ std::string GetUnifiedPlatform() {
+ return "Windows NT 10.0; Win64; x64";
+ #elif BUILDFLAG(IS_FUCHSIA)
+ return "Fuchsia";
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return "X11; Linux x86_64";
+ #elif BUILDFLAG(IS_IOS)
+ if (ui::GetDeviceFormFactor() == ui::DEVICE_FORM_FACTOR_TABLET) {
+@@ -296,6 +296,16 @@ std::string BuildOSCpuInfoFromOSVersionA
+ "Android %s", os_version.c_str()
+ #elif BUILDFLAG(IS_FUCHSIA)
+ "Fuchsia"
++#elif BUILDFLAG(IS_BSD)
++#if defined(__x86_64__)
++ "Linux x86_64; %s %s",
++#elif defined(__aarch64__)
++ "Linux aarch64; %s %s",
++#else
++ "Linux i686; %s %s",
++#endif
++ unixinfo.sysname, // e.g. Linux
++ cpu_type.c_str() // e.g. i686
+ #elif BUILDFLAG(IS_IOS)
+ "CPU %s OS %s like Mac OS X", cpu_type.c_str(),
+ os_version.c_str()
diff --git a/chromium/patches/patch-content_gpu_BUILD.gn b/chromium/patches/patch-content_gpu_BUILD.gn
deleted file mode 100644
index 9a55c15346..0000000000
--- a/chromium/patches/patch-content_gpu_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- content/gpu/BUILD.gn.orig 2020-06-25 09:31:29.000000000 +0000
-+++ content/gpu/BUILD.gn
-@@ -104,7 +104,7 @@ target(link_target_type, "gpu_sources")
- deps += [ "//media/mojo/services" ]
- }
-
-- if (is_linux || is_mac || is_win) {
-+ if (is_linux || is_mac || is_win || is_bsd) {
- deps += [ "//sandbox" ]
- }
-
-@@ -130,7 +130,7 @@ target(link_target_type, "gpu_sources")
-
- # Use DRI on desktop Linux builds.
- if (current_cpu != "s390x" && current_cpu != "ppc64" && is_desktop_linux &&
-- (!is_chromecast || is_cast_desktop_build)) {
-+ (!is_chromecast || is_cast_desktop_build) && !is_bsd) {
- configs += [ "//build/config/linux/dri" ]
- }
- }
diff --git a/chromium/patches/patch-content_gpu_gpu__child__thread.cc b/chromium/patches/patch-content_gpu_gpu__child__thread.cc
new file mode 100644
index 0000000000..ae1713706c
--- /dev/null
+++ b/chromium/patches/patch-content_gpu_gpu__child__thread.cc
@@ -0,0 +1,27 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/gpu/gpu_child_thread.cc.orig 2024-07-24 02:44:37.572872200 +0000
++++ content/gpu/gpu_child_thread.cc
+@@ -58,7 +58,7 @@
+ #include "third_party/skia/include/ports/SkFontConfigInterface.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "content/child/sandboxed_process_thread_type_handler.h"
+ #endif
+
+@@ -142,7 +142,8 @@ void GpuChildThread::Init(const base::Ti
+
+ viz_main_.gpu_service()->set_start_time(process_start_time);
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++// XXX BSD
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_BSD)
+ SandboxedProcessThreadTypeHandler::NotifyMainChildThreadCreated();
+ #endif
+
diff --git a/chromium/patches/patch-content_gpu_gpu__main.cc b/chromium/patches/patch-content_gpu_gpu__main.cc
index 672d188fa5..b6db5a46d0 100644
--- a/chromium/patches/patch-content_gpu_gpu__main.cc
+++ b/chromium/patches/patch-content_gpu_gpu__main.cc
@@ -1,49 +1,79 @@
$NetBSD$
---- content/gpu/gpu_main.cc.orig 2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/gpu/gpu_main.cc.orig 2024-07-24 02:44:37.572872200 +0000
+++ content/gpu/gpu_main.cc
-@@ -85,7 +85,7 @@
- #include "ui/gfx/x/x11_types.h" // nogncheck
+@@ -94,10 +94,14 @@
+ #include "sandbox/win/src/sandbox.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "content/child/sandboxed_process_thread_type_handler.h"
+ #include "content/common/gpu_pre_sandbox_hook_linux.h"
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
++#else
+ #include "sandbox/policy/linux/sandbox_linux.h"
++#endif
+ #include "sandbox/policy/sandbox_type.h"
#endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "content/gpu/gpu_sandbox_hook_linux.h"
- #include "content/public/common/sandbox_init.h"
- #include "services/service_manager/sandbox/linux/sandbox_linux.h"
-@@ -109,7 +109,7 @@ namespace content {
+@@ -116,7 +120,7 @@ namespace content {
namespace {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
bool StartSandboxLinux(gpu::GpuWatchdogThread*,
const gpu::GPUInfo*,
const gpu::GpuPreferences&);
-@@ -162,7 +162,7 @@ class ContentSandboxHelper : public gpu:
+@@ -174,7 +178,7 @@ class ContentSandboxHelper : public gpu:
bool EnsureSandboxInitialized(gpu::GpuWatchdogThread* watchdog_thread,
const gpu::GPUInfo* gpu_info,
const gpu::GpuPreferences& gpu_prefs) override {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
return StartSandboxLinux(watchdog_thread, gpu_info, gpu_prefs);
- #elif defined(OS_WIN)
+ #elif BUILDFLAG(IS_WIN)
return StartSandboxWindows(sandbox_info_);
-@@ -297,7 +297,7 @@ int GpuMain(const MainFunctionParams& pa
+@@ -283,7 +287,7 @@ int GpuMain(MainFunctionParams parameter
+ std::make_unique<base::SingleThreadTaskExecutor>(
gpu_preferences.message_pump_type);
}
- #endif
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#error "Unsupported Linux platform."
- #elif defined(OS_MACOSX)
+ #elif BUILDFLAG(IS_MAC)
// Cross-process CoreAnimation requires a CFRunLoop to function at all, and
-@@ -450,7 +450,7 @@ int GpuMain(const MainFunctionParams& pa
+@@ -305,7 +309,8 @@ int GpuMain(MainFunctionParams parameter
+
+ base::PlatformThread::SetName("CrGpuMain");
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++// XXX BSD
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_BSD)
+ // Thread type delegate of the process should be registered before
+ // thread type change below for the main thread and for thread pool in
+ // ChildProcess constructor.
+@@ -435,7 +440,7 @@ int GpuMain(MainFunctionParams parameter
namespace {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
bool StartSandboxLinux(gpu::GpuWatchdogThread* watchdog_thread,
const gpu::GPUInfo* gpu_info,
const gpu::GpuPreferences& gpu_prefs) {
+@@ -475,7 +480,7 @@ bool StartSandboxLinux(gpu::GpuWatchdogT
+ sandbox_options.accelerated_video_encode_enabled =
+ !gpu_prefs.disable_accelerated_video_encode;
+
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Video decoding of many video streams can use thousands of FDs as well as
+ // Exo clients like Lacros.
+ // See https://crbug.com/1417237
diff --git a/chromium/patches/patch-content_gpu_gpu__sandbox__hook__linux.cc b/chromium/patches/patch-content_gpu_gpu__sandbox__hook__linux.cc
deleted file mode 100644
index 0f2081b1cd..0000000000
--- a/chromium/patches/patch-content_gpu_gpu__sandbox__hook__linux.cc
+++ /dev/null
@@ -1,79 +0,0 @@
-$NetBSD$
-
---- content/gpu/gpu_sandbox_hook_linux.cc.orig 2020-07-24 02:37:55.000000000 +0000
-+++ content/gpu/gpu_sandbox_hook_linux.cc
-@@ -98,8 +98,13 @@ static const char kLibV4lEncPluginPath[]
- "/usr/lib/libv4l/plugins/libv4l-encplugin.so";
- #endif
-
-+#if defined(OS_LINUX)
- constexpr int dlopen_flag = RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE;
-+#else
-+constexpr int dlopen_flag = RTLD_NOW | RTLD_GLOBAL;
-+#endif
-
-+#if !defined(OS_BSD)
- void AddV4L2GpuWhitelist(
- std::vector<BrokerFilePermission>* permissions,
- const service_manager::SandboxSeccompBPF::Options& options) {
-@@ -356,8 +361,10 @@ std::vector<BrokerFilePermission> FilePe
- AddStandardGpuWhiteList(&permissions);
- return permissions;
- }
-+#endif
-
- void LoadArmGpuLibraries() {
-+#if !defined(OS_BSD)
- // Preload the Mali library.
- if (UseChromecastSandboxWhitelist()) {
- for (const char* path : kWhitelistedChromecastPaths) {
-@@ -372,6 +379,7 @@ void LoadArmGpuLibraries() {
- // Preload the Tegra V4L2 (video decode acceleration) library.
- dlopen(kLibTegraPath, dlopen_flag);
- }
-+#endif
- }
-
- bool LoadAmdGpuLibraries() {
-@@ -411,12 +419,14 @@ void LoadV4L2Libraries(
- }
-
- void LoadChromecastV4L2Libraries() {
-+#if !defined(OS_BSD)
- for (const char* path : kWhitelistedChromecastPaths) {
- const std::string library_path(std::string(path) +
- std::string("libvpcodec.so"));
- if (dlopen(library_path.c_str(), dlopen_flag))
- break;
- }
-+#endif
- }
-
- bool LoadLibrariesForGpu(
-@@ -438,6 +448,7 @@ bool LoadLibrariesForGpu(
- return true;
- }
-
-+#if !defined(OS_BSD)
- sandbox::syscall_broker::BrokerCommandSet CommandSetForGPU(
- const service_manager::SandboxLinux::Options& options) {
- sandbox::syscall_broker::BrokerCommandSet command_set;
-@@ -459,13 +470,18 @@ bool BrokerProcessPreSandboxHook(
- service_manager::SetProcessTitleFromCommandLine(nullptr);
- return true;
- }
-+#endif
-
- } // namespace
-
- bool GpuProcessPreSandboxHook(service_manager::SandboxLinux::Options options) {
-+#if defined(OS_BSD)
-+ NOTIMPLEMENTED();
-+#else
- service_manager::SandboxLinux::GetInstance()->StartBrokerProcess(
- CommandSetForGPU(options), FilePermissionsForGpu(options),
- base::BindOnce(BrokerProcessPreSandboxHook), options);
-+#endif
-
- if (!LoadLibrariesForGpu(options))
- return false;
diff --git a/chromium/patches/patch-content_ppapi__plugin_BUILD.gn b/chromium/patches/patch-content_ppapi__plugin_BUILD.gn
deleted file mode 100644
index b206cb7bb0..0000000000
--- a/chromium/patches/patch-content_ppapi__plugin_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- content/ppapi_plugin/BUILD.gn.orig 2020-07-15 18:55:57.000000000 +0000
-+++ content/ppapi_plugin/BUILD.gn
-@@ -67,7 +67,7 @@ source_set("ppapi_plugin_sources") {
- "//ui/gfx/geometry",
- ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- deps += [ "//components/services/font/public/cpp" ]
- }
-
diff --git a/chromium/patches/patch-content_ppapi__plugin_ppapi__blink__platform__impl.cc b/chromium/patches/patch-content_ppapi__plugin_ppapi__blink__platform__impl.cc
index 4613f520ac..6df9911226 100644
--- a/chromium/patches/patch-content_ppapi__plugin_ppapi__blink__platform__impl.cc
+++ b/chromium/patches/patch-content_ppapi__plugin_ppapi__blink__platform__impl.cc
@@ -1,31 +1,35 @@
$NetBSD$
---- content/ppapi_plugin/ppapi_blink_platform_impl.cc.orig 2020-07-08 21:40:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/ppapi_plugin/ppapi_blink_platform_impl.cc.orig 2024-07-24 02:44:37.572872200 +0000
+++ content/ppapi_plugin/ppapi_blink_platform_impl.cc
-@@ -19,7 +19,7 @@
+@@ -21,7 +21,7 @@
- #if defined(OS_MACOSX)
+ #if BUILDFLAG(IS_MAC)
#include "content/child/child_process_sandbox_support_impl_mac.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "content/child/child_process_sandbox_support_impl_linux.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#endif
-@@ -34,7 +34,7 @@ typedef struct CGFont* CGFontRef;
+@@ -36,7 +36,7 @@ typedef struct CGFont* CGFontRef;
namespace content {
PpapiBlinkPlatformImpl::PpapiBlinkPlatformImpl() {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
mojo::PendingRemote<font_service::mojom::FontService> font_service;
ChildThread::Get()->BindHostReceiver(
font_service.InitWithNewPipeAndPassReceiver());
-@@ -52,7 +52,7 @@ PpapiBlinkPlatformImpl::~PpapiBlinkPlatf
+@@ -55,7 +55,7 @@ PpapiBlinkPlatformImpl::~PpapiBlinkPlatf
void PpapiBlinkPlatformImpl::Shutdown() {}
blink::WebSandboxSupport* PpapiBlinkPlatformImpl::GetSandboxSupport() {
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
return sandbox_support_.get();
#else
return nullptr;
diff --git a/chromium/patches/patch-content_ppapi__plugin_ppapi__blink__platform__impl.h b/chromium/patches/patch-content_ppapi__plugin_ppapi__blink__platform__impl.h
index 440714016f..a3f02abfb5 100644
--- a/chromium/patches/patch-content_ppapi__plugin_ppapi__blink__platform__impl.h
+++ b/chromium/patches/patch-content_ppapi__plugin_ppapi__blink__platform__impl.h
@@ -1,27 +1,17 @@
$NetBSD$
---- content/ppapi_plugin/ppapi_blink_platform_impl.h.orig 2020-07-08 21:40:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/ppapi_plugin/ppapi_blink_platform_impl.h.orig 2024-07-24 02:44:37.572872200 +0000
+++ content/ppapi_plugin/ppapi_blink_platform_impl.h
-@@ -13,7 +13,7 @@
- #include "build/build_config.h"
- #include "content/child/blink_platform_impl.h"
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "components/services/font/public/cpp/font_loader.h"
- #include "third_party/skia/include/core/SkRefCnt.h"
- #endif
-@@ -36,11 +36,11 @@ class PpapiBlinkPlatformImpl : public Bl
- blink::WebThemeEngine* ThemeEngine() override;
+@@ -36,7 +36,7 @@ class PpapiBlinkPlatformImpl : public Bl
+ blink::WebString DefaultLocale() override;
private:
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
std::unique_ptr<blink::WebSandboxSupport> sandbox_support_;
#endif
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- sk_sp<font_service::FontLoader> font_loader_;
- #endif
-
+ };
diff --git a/chromium/patches/patch-content_ppapi__plugin_ppapi__plugin__main.cc b/chromium/patches/patch-content_ppapi__plugin_ppapi__plugin__main.cc
new file mode 100644
index 0000000000..c0a1d3185b
--- /dev/null
+++ b/chromium/patches/patch-content_ppapi__plugin_ppapi__plugin__main.cc
@@ -0,0 +1,29 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/ppapi_plugin/ppapi_plugin_main.cc.orig 2024-07-24 02:44:37.572872200 +0000
++++ content/ppapi_plugin/ppapi_plugin_main.cc
+@@ -52,6 +52,11 @@
+ #include "gin/v8_initializer.h"
+ #endif
+
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
++#include "sandbox/policy/sandbox_type.h"
++#endif
++
+ #if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_ANDROID)
+ #include <stdlib.h>
+ #endif
+@@ -141,7 +146,7 @@ int PpapiPluginMain(MainFunctionParams p
+ gin::V8Initializer::LoadV8Snapshot();
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OPENBSD)
+ sandbox::policy::SandboxLinux::GetInstance()->InitializeSandbox(
+ sandbox::policy::SandboxTypeFromCommandLine(command_line),
+ sandbox::policy::SandboxLinux::PreSandboxHook(),
diff --git a/chromium/patches/patch-content_public_app_content__main__delegate.cc b/chromium/patches/patch-content_public_app_content__main__delegate.cc
deleted file mode 100644
index 8330c682b8..0000000000
--- a/chromium/patches/patch-content_public_app_content__main__delegate.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- content/public/app/content_main_delegate.cc.orig 2020-07-08 21:40:42.000000000 +0000
-+++ content/public/app/content_main_delegate.cc
-@@ -24,7 +24,7 @@ int ContentMainDelegate::RunProcess(
- return -1;
- }
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-
- void ContentMainDelegate::ZygoteStarting(
- std::vector<std::unique_ptr<ZygoteForkDelegate>>* delegates) {}
diff --git a/chromium/patches/patch-content_public_app_content__main__delegate.h b/chromium/patches/patch-content_public_app_content__main__delegate.h
deleted file mode 100644
index d4d71af64e..0000000000
--- a/chromium/patches/patch-content_public_app_content__main__delegate.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- content/public/app/content_main_delegate.h.orig 2020-07-08 21:40:42.000000000 +0000
-+++ content/public/app/content_main_delegate.h
-@@ -60,7 +60,7 @@ class CONTENT_EXPORT ContentMainDelegate
- // Called right before the process exits.
- virtual void ProcessExiting(const std::string& process_type) {}
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // Tells the embedder that the zygote process is starting, and allows it to
- // specify one or more zygote delegates if it wishes by storing them in
- // |*delegates|.
diff --git a/chromium/patches/patch-content_public_browser_content__browser__client.cc b/chromium/patches/patch-content_public_browser_content__browser__client.cc
new file mode 100644
index 0000000000..af060eb122
--- /dev/null
+++ b/chromium/patches/patch-content_public_browser_content__browser__client.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/public/browser/content_browser_client.cc.orig 2024-07-24 02:44:37.624877200 +0000
++++ content/public/browser/content_browser_client.cc
+@@ -1307,7 +1307,7 @@ bool ContentBrowserClient::ShouldRunOutO
+ // that can be adequately sandboxed.
+ // Currently Android's network service will not run out of process or sandboxed,
+ // so OutOfProcessSystemDnsResolution is not currently enabled on Android.
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return true;
+ #else
+ return false;
diff --git a/chromium/patches/patch-content_public_browser_service__process__host.cc b/chromium/patches/patch-content_public_browser_service__process__host.cc
new file mode 100644
index 0000000000..b38a6b3929
--- /dev/null
+++ b/chromium/patches/patch-content_public_browser_service__process__host.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/public/browser/service_process_host.cc.orig 2024-07-24 02:44:37.648879500 +0000
++++ content/public/browser/service_process_host.cc
+@@ -70,7 +70,7 @@ ServiceProcessHost::Options::WithPreload
+
+ ServiceProcessHost::Options& ServiceProcessHost::Options::WithGpuClient(
+ base::PassKey<ServiceProcessHostGpuClient> passkey) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ allow_gpu_client = true;
+ #endif
+ return *this;
diff --git a/chromium/patches/patch-content_public_browser_zygote__host_zygote__host__linux.h b/chromium/patches/patch-content_public_browser_zygote__host_zygote__host__linux.h
new file mode 100644
index 0000000000..e5989034f6
--- /dev/null
+++ b/chromium/patches/patch-content_public_browser_zygote__host_zygote__host__linux.h
@@ -0,0 +1,22 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/public/browser/zygote_host/zygote_host_linux.h.orig 2024-07-24 02:44:37.660880600 +0000
++++ content/public/browser/zygote_host/zygote_host_linux.h
+@@ -35,11 +35,13 @@ class ZygoteHost {
+ // after the first render has been forked.
+ virtual int GetRendererSandboxStatus() = 0;
+
++#if !BUILDFLAG(IS_BSD)
+ // Adjust the OOM score of the given renderer's PID. The allowed
+ // range for the score is [0, 1000], where higher values are more
+ // likely to be killed by the OOM killer.
+ virtual void AdjustRendererOOMScore(base::ProcessHandle process_handle,
+ int score) = 0;
++#endif
+
+ #if BUILDFLAG(IS_CHROMEOS)
+ // Reinitialize logging for the Zygote processes. Needed on ChromeOS, which
diff --git a/chromium/patches/patch-content_public_common_child__process__host.h b/chromium/patches/patch-content_public_common_child__process__host.h
deleted file mode 100644
index d740178eae..0000000000
--- a/chromium/patches/patch-content_public_common_child__process__host.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- content/public/common/child_process_host.h.orig 2020-07-08 21:40:42.000000000 +0000
-+++ content/public/common/child_process_host.h
-@@ -80,7 +80,7 @@ class CONTENT_EXPORT ChildProcessHost :
- // No special behavior requested.
- CHILD_NORMAL = 0,
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // Indicates that the child execed after forking may be execced from
- // /proc/self/exe rather than using the "real" app path. This prevents
- // autoupdate from confusing us if it changes the file out from under us.
diff --git a/chromium/patches/patch-content_public_common_common__param__traits__macros.h b/chromium/patches/patch-content_public_common_common__param__traits__macros.h
deleted file mode 100644
index 0761bea9d5..0000000000
--- a/chromium/patches/patch-content_public_common_common__param__traits__macros.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- content/public/common/common_param_traits_macros.h.orig 2020-07-08 21:40:42.000000000 +0000
-+++ content/public/common/common_param_traits_macros.h
-@@ -315,7 +315,7 @@ IPC_STRUCT_TRAITS_BEGIN(blink::mojom::Re
- IPC_STRUCT_TRAITS_MEMBER(accept_languages)
- IPC_STRUCT_TRAITS_MEMBER(disable_client_blocked_error_page)
- IPC_STRUCT_TRAITS_MEMBER(plugin_fullscreen_allowed)
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- IPC_STRUCT_TRAITS_MEMBER(system_font_family_name)
- #endif
- #if defined(OS_WIN)
diff --git a/chromium/patches/patch-content_public_common_content__constants.cc b/chromium/patches/patch-content_public_common_content__constants.cc
deleted file mode 100644
index 40be4f3620..0000000000
--- a/chromium/patches/patch-content_public_common_content__constants.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- content/public/common/content_constants.cc.orig 2020-07-08 21:40:42.000000000 +0000
-+++ content/public/common/content_constants.cc
-@@ -46,7 +46,7 @@ const int kDefaultDetachableCancelDelayM
- const char kCorsExemptPurposeHeaderName[] = "Purpose";
- const char kCorsExemptRequestedWithHeaderName[] = "X-Requested-With";
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- const int kLowestRendererOomScore = 300;
- const int kHighestRendererOomScore = 1000;
-
diff --git a/chromium/patches/patch-content_public_common_content__constants.h b/chromium/patches/patch-content_public_common_content__constants.h
deleted file mode 100644
index 012efd3bef..0000000000
--- a/chromium/patches/patch-content_public_common_content__constants.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- content/public/common/content_constants.h.orig 2020-07-08 21:40:42.000000000 +0000
-+++ content/public/common/content_constants.h
-@@ -65,7 +65,7 @@ CONTENT_EXPORT extern const int kDefault
- CONTENT_EXPORT extern const char kCorsExemptPurposeHeaderName[];
- CONTENT_EXPORT extern const char kCorsExemptRequestedWithHeaderName[];
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // The OOM score adj constants
- // The highest and lowest assigned OOM score adjustment (oom_score_adj) for
- // renderers and extensions used by the OomPriority Manager.
diff --git a/chromium/patches/patch-content_public_common_content__features.cc b/chromium/patches/patch-content_public_common_content__features.cc
index caa1d06956..90ddc1f788 100644
--- a/chromium/patches/patch-content_public_common_content__features.cc
+++ b/chromium/patches/patch-content_public_common_content__features.cc
@@ -1,31 +1,41 @@
$NetBSD$
---- content/public/common/content_features.cc.orig 2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/public/common/content_features.cc.orig 2024-07-24 02:44:37.660880600 +0000
+++ content/public/common/content_features.cc
-@@ -48,7 +48,7 @@ const base::Feature kAudioServiceLaunchO
- const base::Feature kAudioServiceOutOfProcess {
- "AudioServiceOutOfProcess",
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
-- (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+ ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
- base::FEATURE_ENABLED_BY_DEFAULT
+@@ -36,7 +36,7 @@ BASE_FEATURE(kAudioServiceOutOfProcess,
+ // TODO(crbug.com/40118868): Remove !IS_CHROMEOS_LACROS once lacros starts being
+ // built with OS_CHROMEOS instead of OS_LINUX.
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
+- (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS))
++ (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
+ base::FEATURE_ENABLED_BY_DEFAULT
#else
- base::FEATURE_DISABLED_BY_DEFAULT
-@@ -727,7 +727,7 @@ const base::Feature kWebAssemblyThreads
- };
-
- // Enable WebAssembly trap handler.
--#if (defined(OS_LINUX) || defined(OS_WIN) || defined(OS_MACOSX)) && \
-+#if (defined(OS_LINUX) || defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_BSD)) && \
- defined(ARCH_CPU_X86_64)
- const base::Feature kWebAssemblyTrapHandler{"WebAssemblyTrapHandler",
- base::FEATURE_ENABLED_BY_DEFAULT};
-@@ -757,7 +757,7 @@ const base::Feature kWebAuth{"WebAuthent
- // https://w3c.github.io/webauthn
- const base::Feature kWebAuthCable {
- "WebAuthenticationCable",
--#if !defined(OS_CHROMEOS) && defined(OS_LINUX)
-+#if !defined(OS_CHROMEOS) && (defined(OS_LINUX) || defined(OS_BSD))
- base::FEATURE_DISABLED_BY_DEFAULT
+ base::FEATURE_DISABLED_BY_DEFAULT
+@@ -1090,9 +1090,9 @@ BASE_FEATURE(kWebAssemblyTiering,
+ BASE_FEATURE(kWebAssemblyTrapHandler,
+ "WebAssemblyTrapHandler",
+ #if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || \
+- BUILDFLAG(IS_MAC)) && \
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)) && \
+ defined(ARCH_CPU_X86_64)) || \
+- ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)) && \
++ ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)) && \
+ defined(ARCH_CPU_ARM64))
+ base::FEATURE_ENABLED_BY_DEFAULT
#else
- base::FEATURE_ENABLED_BY_DEFAULT
+@@ -1129,7 +1129,11 @@ BASE_FEATURE(kWebUICodeCache,
+
+ // Controls whether the WebUSB API is enabled:
+ // https://wicg.github.io/webusb
++#if BUILDFLAG(IS_BSD)
++BASE_FEATURE(kWebUsb, "WebUSB", base::FEATURE_DISABLED_BY_DEFAULT);
++#else
+ BASE_FEATURE(kWebUsb, "WebUSB", base::FEATURE_ENABLED_BY_DEFAULT);
++#endif
+
+ // Controls whether the WebXR Device API is enabled.
+ BASE_FEATURE(kWebXr, "WebXR", base::FEATURE_ENABLED_BY_DEFAULT);
diff --git a/chromium/patches/patch-content_public_common_content__switches.cc b/chromium/patches/patch-content_public_common_content__switches.cc
index edde05746b..dcde1680b6 100644
--- a/chromium/patches/patch-content_public_common_content__switches.cc
+++ b/chromium/patches/patch-content_public_common_content__switches.cc
@@ -1,13 +1,26 @@
$NetBSD$
---- content/public/common/content_switches.cc.orig 2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/public/common/content_switches.cc.orig 2024-07-24 02:44:37.664881000 +0000
+++ content/public/common/content_switches.cc
-@@ -975,7 +975,7 @@ const char kEnableAggressiveDOMStorageFl
- // Enable indication that browser is controlled by automation.
- const char kEnableAutomation[] = "enable-automation";
+@@ -352,6 +352,8 @@ const char kEnableIsolatedWebAppsInRende
+ // builds.
+ const char kEnableLogging[] = "enable-logging";
+
++const char kDisableUnveil[] = "disable-unveil";
++
+ // Enables the type, downlinkMax attributes of the NetInfo API. Also, enables
+ // triggering of change attribute of the NetInfo API when there is a change in
+ // the connection type.
+@@ -993,7 +995,7 @@ const char kPreventResizingContentsForTe
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
// Allows sending text-to-speech requests to speech-dispatcher, a common
// Linux speech service. Because it's buggy, the user must explicitly
// enable it so that visiting a random webpage can't cause instability.
diff --git a/chromium/patches/patch-content_public_common_content__switches.h b/chromium/patches/patch-content_public_common_content__switches.h
index 41c996bab5..53e5431ca8 100644
--- a/chromium/patches/patch-content_public_common_content__switches.h
+++ b/chromium/patches/patch-content_public_common_content__switches.h
@@ -1,13 +1,25 @@
$NetBSD$
---- content/public/common/content_switches.h.orig 2020-07-08 21:40:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/public/common/content_switches.h.orig 2024-07-24 02:44:37.664881000 +0000
+++ content/public/common/content_switches.h
-@@ -267,7 +267,7 @@ CONTENT_EXPORT extern const char kRemote
- CONTENT_EXPORT extern const char kRendererWaitForJavaDebugger[];
- #endif
+@@ -111,6 +111,7 @@ CONTENT_EXPORT extern const char kEnable
+ CONTENT_EXPORT extern const char kEnableIsolatedWebAppsInRenderer[];
+ CONTENT_EXPORT extern const char kEnableLCDText[];
+ CONTENT_EXPORT extern const char kEnableLogging[];
++CONTENT_EXPORT extern const char kDisableUnveil[];
+ CONTENT_EXPORT extern const char kEnableNetworkInformationDownlinkMax[];
+ CONTENT_EXPORT extern const char kEnableCanvas2DLayers[];
+ CONTENT_EXPORT extern const char kEnablePluginPlaceholderTesting[];
+@@ -270,7 +271,7 @@ CONTENT_EXPORT extern const char kPreven
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
CONTENT_EXPORT extern const char kEnableSpeechDispatcher[];
+ CONTENT_EXPORT extern const char kLLVMProfileFile[];
#endif
-
diff --git a/chromium/patches/patch-content_public_common_use__zoom__for__dsf__policy.cc b/chromium/patches/patch-content_public_common_use__zoom__for__dsf__policy.cc
deleted file mode 100644
index f57b294952..0000000000
--- a/chromium/patches/patch-content_public_common_use__zoom__for__dsf__policy.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- content/public/common/use_zoom_for_dsf_policy.cc.orig 2020-07-08 21:40:42.000000000 +0000
-+++ content/public/common/use_zoom_for_dsf_policy.cc
-@@ -25,7 +25,7 @@ const base::Feature kUseZoomForDsfEnable
- #endif
-
- bool IsUseZoomForDSFEnabledByDefault() {
--#if defined(OS_LINUX) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_FUCHSIA) || defined(OS_BSD)
- return true;
- #elif defined(OS_WIN) || defined(OS_ANDROID)
- return base::FeatureList::IsEnabled(kUseZoomForDsfEnabledByDefault);
diff --git a/chromium/patches/patch-content_public_common_zygote_features.gni b/chromium/patches/patch-content_public_common_zygote_features.gni
new file mode 100644
index 0000000000..ea335897a0
--- /dev/null
+++ b/chromium/patches/patch-content_public_common_zygote_features.gni
@@ -0,0 +1,14 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/public/common/zygote/features.gni.orig 2024-07-24 02:44:37.668881400 +0000
++++ content/public/common/zygote/features.gni
+@@ -2,4 +2,4 @@
+ # Use of this source code is governed by a BSD-style license that can be
+ # found in the LICENSE file.
+
+-use_zygote = is_posix && !is_android && !is_apple
++use_zygote = is_posix && !is_android && !is_mac && !is_bsd
diff --git a/chromium/patches/patch-content_public_test_browser__test__base.cc b/chromium/patches/patch-content_public_test_browser__test__base.cc
deleted file mode 100644
index ca7d837ab2..0000000000
--- a/chromium/patches/patch-content_public_test_browser__test__base.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- content/public/test/browser_test_base.cc.orig 2020-07-08 21:40:42.000000000 +0000
-+++ content/public/test/browser_test_base.cc
-@@ -73,7 +73,7 @@
- #include "ui/gl/gl_implementation.h"
- #include "ui/gl/gl_switches.h"
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "ui/platform_window/common/platform_window_defaults.h" // nogncheck
- #endif
-
-@@ -185,7 +185,7 @@ BrowserTestBase::BrowserTestBase()
- "a new browser test suite that runs on Android, please add it to "
- "//build/android/pylib/gtest/gtest_test_instance.py.";
- g_instance_already_created = true;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- ui::test::EnableTestConfigForPlatformWindows();
- #endif
-
diff --git a/chromium/patches/patch-content_public_test_content__browser__test.cc b/chromium/patches/patch-content_public_test_content__browser__test.cc
deleted file mode 100644
index 508f44c12d..0000000000
--- a/chromium/patches/patch-content_public_test_content__browser__test.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- content/public/test/content_browser_test.cc.orig 2020-07-08 21:40:42.000000000 +0000
-+++ content/public/test/content_browser_test.cc
-@@ -25,7 +25,7 @@
- #include "base/mac/foundation_util.h"
- #endif
-
--#if !defined(OS_CHROMEOS) && defined(OS_LINUX)
-+#if !defined(OS_CHROMEOS) && (defined(OS_LINUX) || defined(OS_BSD))
- #include "ui/base/ime/init/input_method_initializer.h"
- #endif
-
-@@ -82,7 +82,7 @@ void ContentBrowserTest::SetUp() {
- #endif
-
- // LinuxInputMethodContextFactory has to be initialized.
--#if !defined(OS_CHROMEOS) && defined(OS_LINUX)
-+#if !defined(OS_CHROMEOS) && (defined(OS_LINUX) || defined(OS_BSD))
- ui::InitializeInputMethodForTesting();
- #endif
-
-@@ -95,7 +95,7 @@ void ContentBrowserTest::TearDown() {
- BrowserTestBase::TearDown();
-
- // LinuxInputMethodContextFactory has to be shutdown.
--#if !defined(OS_CHROMEOS) && defined(OS_LINUX)
-+#if !defined(OS_CHROMEOS) && (defined(OS_LINUX) || defined(OS_BSD))
- ui::ShutdownInputMethodForTesting();
- #endif
- }
diff --git a/chromium/patches/patch-content_public_test_mock__render__thread.cc b/chromium/patches/patch-content_public_test_mock__render__thread.cc
deleted file mode 100644
index 6e1cf11ef2..0000000000
--- a/chromium/patches/patch-content_public_test_mock__render__thread.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- content/public/test/mock_render_thread.cc.orig 2020-07-08 21:40:42.000000000 +0000
-+++ content/public/test/mock_render_thread.cc
-@@ -51,7 +51,7 @@ class MockRenderMessageFilterImpl : publ
- std::move(callback).Run(false);
- }
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- void SetThreadPriority(int32_t platform_thread_id,
- base::ThreadPriority thread_priority) override {}
- #endif
diff --git a/chromium/patches/patch-content_renderer_BUILD.gn b/chromium/patches/patch-content_renderer_BUILD.gn
deleted file mode 100644
index 88f48f4644..0000000000
--- a/chromium/patches/patch-content_renderer_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- content/renderer/BUILD.gn.orig 2020-07-08 21:41:48.000000000 +0000
-+++ content/renderer/BUILD.gn
-@@ -452,7 +452,7 @@ target(link_target_type, "renderer") {
- ]
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- deps += [ "//components/services/font/public/cpp" ]
- }
-
-@@ -658,7 +658,7 @@ target(link_target_type, "renderer") {
- deps += [ "//printing" ]
- }
-
-- if (is_linux || is_android) {
-+ if (is_linux || is_android || is_bsd) {
- deps += [ "//sandbox:sandbox_buildflags" ]
- }
-
diff --git a/chromium/patches/patch-content_renderer_media_audio_audio__device__factory.cc b/chromium/patches/patch-content_renderer_media_audio_audio__device__factory.cc
deleted file mode 100644
index 7e91c8e23c..0000000000
--- a/chromium/patches/patch-content_renderer_media_audio_audio__device__factory.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- content/renderer/media/audio/audio_device_factory.cc.orig 2020-07-08 21:40:42.000000000 +0000
-+++ content/renderer/media/audio/audio_device_factory.cc
-@@ -37,7 +37,7 @@ AudioDeviceFactory* AudioDeviceFactory::
- namespace {
-
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
-- (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+ ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
- // Due to driver deadlock issues on Windows (http://crbug/422522) there is a
- // chance device authorization response is never received from the browser side.
- // In this case we will time out, to avoid renderer hang forever waiting for
diff --git a/chromium/patches/patch-content_renderer_media_gpu_gpu__video__accelerator__factories__impl.cc b/chromium/patches/patch-content_renderer_media_gpu_gpu__video__accelerator__factories__impl.cc
new file mode 100644
index 0000000000..c893643bca
--- /dev/null
+++ b/chromium/patches/patch-content_renderer_media_gpu_gpu__video__accelerator__factories__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/renderer/media/gpu/gpu_video_accelerator_factories_impl.cc.orig 2024-07-24 02:44:37.708885200 +0000
++++ content/renderer/media/gpu/gpu_video_accelerator_factories_impl.cc
+@@ -47,7 +47,7 @@ bool UseSingleNV12() {
+ #else
+ static BASE_FEATURE(kUseSingleNV12ForSoftwareGMB,
+ "UseSingleNV12ForSoftwareGMB",
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ base::FEATURE_ENABLED_BY_DEFAULT);
+ #else
+ base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/chromium/patches/patch-content_renderer_render__process__impl.cc b/chromium/patches/patch-content_renderer_render__process__impl.cc
deleted file mode 100644
index 7b13aa0ec1..0000000000
--- a/chromium/patches/patch-content_renderer_render__process__impl.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- content/renderer/render_process_impl.cc.orig 2020-07-08 21:40:42.000000000 +0000
-+++ content/renderer/render_process_impl.cc
-@@ -44,7 +44,7 @@
- #if defined(OS_WIN)
- #include "base/win/win_util.h"
- #endif
--#if defined(OS_LINUX) && defined(ARCH_CPU_X86_64)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && defined(ARCH_CPU_X86_64)
- #include "v8/include/v8-wasm-trap-handler-posix.h"
- #endif
- namespace {
-@@ -161,7 +161,7 @@ RenderProcessImpl::RenderProcessImpl()
-
- SetV8FlagIfNotFeature(features::kWebAssemblyTrapHandler,
- "--no-wasm-trap-handler");
--#if defined(OS_LINUX) && defined(ARCH_CPU_X86_64)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && defined(ARCH_CPU_X86_64)
- if (base::FeatureList::IsEnabled(features::kWebAssemblyTrapHandler)) {
- base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
- if (!command_line->HasSwitch(
diff --git a/chromium/patches/patch-content_renderer_render__thread__impl.cc b/chromium/patches/patch-content_renderer_render__thread__impl.cc
index b44f8eef8a..0e5b304bca 100644
--- a/chromium/patches/patch-content_renderer_render__thread__impl.cc
+++ b/chromium/patches/patch-content_renderer_render__thread__impl.cc
@@ -1,35 +1,44 @@
$NetBSD$
---- content/renderer/render_thread_impl.cc.orig 2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/renderer/render_thread_impl.cc.orig 2024-07-24 02:44:37.732887500 +0000
+++ content/renderer/render_thread_impl.cc
-@@ -177,6 +177,12 @@
+@@ -213,6 +213,8 @@
- #if defined(OS_MACOSX)
+ #if BUILDFLAG(IS_APPLE)
#include <malloc/malloc.h>
-+#elif defined(OS_BSD)
++#elif BUILDFLAG(IS_BSD)
+#include <stdlib.h>
-+#include <stddef.h>
-+#include <stdint.h>
-+#include <sys/param.h>
-+#include <sys/sysctl.h>
#else
#include <malloc.h>
#endif
-@@ -752,7 +758,7 @@ void RenderThreadImpl::Init() {
- DCHECK(parsed_num_raster_threads) << string_value;
- DCHECK_GT(num_raster_threads, 0);
+@@ -999,7 +1001,7 @@ media::GpuVideoAcceleratorFactories* Ren
+ kGpuStreamIdMedia, kGpuStreamPriorityMedia);
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- categorized_worker_pool_->SetBackgroundingCallback(
- main_thread_scheduler_->DefaultTaskRunner(),
- base::BindOnce(
-@@ -775,7 +781,7 @@ void RenderThreadImpl::Init() {
- base::DiscardableMemoryAllocator::SetInstance(
- discardable_memory_allocator_.get());
+ const bool enable_video_decode_accelerator =
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ base::FeatureList::IsEnabled(media::kVaapiVideoDecodeLinux) &&
+ #endif // BUILDFLAG(IS_LINUX)
+ !cmd_line->HasSwitch(switches::kDisableAcceleratedVideoDecode) &&
+@@ -1008,7 +1010,7 @@ media::GpuVideoAcceleratorFactories* Ren
+ gpu::kGpuFeatureStatusEnabled);
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- if (base::FeatureList::IsEnabled(
- blink::features::kBlinkCompositorUseDisplayThreadPriority)) {
- render_message_filter()->SetThreadPriority(
+ const bool enable_video_encode_accelerator =
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ base::FeatureList::IsEnabled(media::kVaapiVideoEncodeLinux) &&
+ #else
+ !cmd_line->HasSwitch(switches::kDisableAcceleratedVideoEncode) &&
+@@ -1760,7 +1762,7 @@ std::unique_ptr<CodecFactory> RenderThre
+ bool enable_video_encode_accelerator) {
+ mojo::PendingRemote<media::mojom::VideoEncodeAcceleratorProvider>
+ vea_provider;
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ if (base::FeatureList::IsEnabled(media::kUseOutOfProcessVideoEncoding)) {
+ BindHostReceiver(vea_provider.InitWithNewPipeAndPassReceiver());
+ } else {
diff --git a/chromium/patches/patch-content_renderer_renderer__blink__platform__impl.cc b/chromium/patches/patch-content_renderer_renderer__blink__platform__impl.cc
index 36683d401c..336cba8886 100644
--- a/chromium/patches/patch-content_renderer_renderer__blink__platform__impl.cc
+++ b/chromium/patches/patch-content_renderer_renderer__blink__platform__impl.cc
@@ -1,49 +1,51 @@
$NetBSD$
---- content/renderer/renderer_blink_platform_impl.cc.orig 2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/renderer/renderer_blink_platform_impl.cc.orig 2024-07-24 02:44:37.736888000 +0000
+++ content/renderer/renderer_blink_platform_impl.cc
-@@ -97,7 +97,7 @@
+@@ -120,7 +120,7 @@
- #if defined(OS_MACOSX)
+ #if BUILDFLAG(IS_MAC)
#include "content/child/child_process_sandbox_support_impl_mac.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "content/child/child_process_sandbox_support_impl_linux.h"
+ #include "content/child/sandboxed_process_thread_type_handler.h"
+ #endif
+@@ -190,13 +190,13 @@ RendererBlinkPlatformImpl::RendererBlink
+ is_locked_to_site_(false),
+ main_thread_scheduler_(main_thread_scheduler),
+ next_frame_sink_id_(uint32_t{std::numeric_limits<int32_t>::max()} + 1) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ sk_sp<font_service::FontLoader> font_loader;
#endif
-
-@@ -169,7 +169,7 @@ RendererBlinkPlatformImpl::RendererBlink
// RenderThread may not exist in some tests.
if (RenderThreadImpl::current()) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
mojo::PendingRemote<font_service::mojom::FontService> font_service;
RenderThreadImpl::current()->BindHostReceiver(
font_service.InitWithNewPipeAndPassReceiver());
-@@ -179,7 +179,7 @@ RendererBlinkPlatformImpl::RendererBlink
+@@ -205,7 +205,7 @@ RendererBlinkPlatformImpl::RendererBlink
#endif
}
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
if (sandboxEnabled()) {
- #if defined(OS_MACOSX)
+ #if BUILDFLAG(IS_MAC)
sandbox_support_ = std::make_unique<WebSandboxSupportMac>();
-@@ -261,7 +261,7 @@ RendererBlinkPlatformImpl::CreateNetwork
-
- void RendererBlinkPlatformImpl::SetDisplayThreadPriority(
- base::PlatformThreadId thread_id) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- if (RenderThreadImpl* render_thread = RenderThreadImpl::current()) {
- render_thread->render_message_filter()->SetThreadPriority(
- thread_id, base::ThreadPriority::DISPLAY);
-@@ -274,7 +274,7 @@ blink::BlameContext* RendererBlinkPlatfo
- }
+@@ -266,7 +266,7 @@ void RendererBlinkPlatformImpl::SetThrea
+ #endif
blink::WebSandboxSupport* RendererBlinkPlatformImpl::GetSandboxSupport() {
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
return sandbox_support_.get();
#else
// These platforms do not require sandbox support.
diff --git a/chromium/patches/patch-content_renderer_renderer__blink__platform__impl.h b/chromium/patches/patch-content_renderer_renderer__blink__platform__impl.h
index 6735d237f8..1c92c5e0a4 100644
--- a/chromium/patches/patch-content_renderer_renderer__blink__platform__impl.h
+++ b/chromium/patches/patch-content_renderer_renderer__blink__platform__impl.h
@@ -1,31 +1,17 @@
$NetBSD$
---- content/renderer/renderer_blink_platform_impl.h.orig 2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/renderer/renderer_blink_platform_impl.h.orig 2024-07-24 02:44:37.736888000 +0000
+++ content/renderer/renderer_blink_platform_impl.h
-@@ -30,7 +30,7 @@
- #include "third_party/blink/public/mojom/cache_storage/cache_storage.mojom.h"
- #include "third_party/blink/public/mojom/loader/code_cache.mojom.h"
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "components/services/font/public/cpp/font_loader.h" // nogncheck
- #include "third_party/skia/include/core/SkRefCnt.h" // nogncheck
- #endif
-@@ -218,7 +218,7 @@ class CONTENT_EXPORT RendererBlinkPlatfo
- // Return the mojo interface for making CodeCache calls.
- blink::mojom::CodeCacheHost& GetCodeCacheHost();
+@@ -248,7 +248,7 @@ class CONTENT_EXPORT RendererBlinkPlatfo
+ void Collect3DContextInformation(blink::Platform::GraphicsInfo* gl_info,
+ const gpu::GPUInfo& gpu_info) const;
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
std::unique_ptr<blink::WebSandboxSupport> sandbox_support_;
#endif
-@@ -239,7 +239,7 @@ class CONTENT_EXPORT RendererBlinkPlatfo
- mojo::PendingRemote<blink::mojom::CodeCacheHost> code_cache_host_remote_;
- mojo::SharedRemote<blink::mojom::CodeCacheHost> code_cache_host_;
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- sk_sp<font_service::FontLoader> font_loader_;
- #endif
-
diff --git a/chromium/patches/patch-content_renderer_renderer__main__platform__delegate__linux.cc b/chromium/patches/patch-content_renderer_renderer__main__platform__delegate__linux.cc
index f5d9e41910..4bfbc63e4c 100644
--- a/chromium/patches/patch-content_renderer_renderer__main__platform__delegate__linux.cc
+++ b/chromium/patches/patch-content_renderer_renderer__main__platform__delegate__linux.cc
@@ -1,20 +1,24 @@
$NetBSD$
---- content/renderer/renderer_main_platform_delegate_linux.cc.orig 2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/renderer/renderer_main_platform_delegate_linux.cc.orig 2024-07-24 02:44:37.736888000 +0000
+++ content/renderer/renderer_main_platform_delegate_linux.cc
-@@ -30,6 +30,7 @@ void RendererMainPlatformDelegate::Platf
- }
-
- bool RendererMainPlatformDelegate::EnableSandbox() {
-+#if !defined(OS_BSD)
- // The setuid sandbox is started in the zygote process: zygote_main_linux.cc
- // https://chromium.googlesource.com/chromium/src/+/master/docs/linux/suid_sandbox.md
- //
-@@ -66,6 +67,7 @@ bool RendererMainPlatformDelegate::Enabl
+@@ -44,6 +44,7 @@ bool RendererMainPlatformDelegate::Enabl
+ // any renderer has been started.
+ // Here, we test that the status of SeccompBpf in the renderer is consistent
+ // with what SandboxLinux::GetStatus() said we would do.
++#if !BUILDFLAG(IS_BSD)
+ auto* linux_sandbox = sandbox::policy::SandboxLinux::GetInstance();
+ if (linux_sandbox->GetStatus() & sandbox::policy::SandboxLinux::kSeccompBPF) {
+ CHECK(linux_sandbox->seccomp_bpf_started());
+@@ -65,6 +66,7 @@ bool RendererMainPlatformDelegate::Enabl
+ CHECK_EQ(errno, EPERM);
}
#endif // __x86_64__
-
+#endif
+
return true;
}
-
diff --git a/chromium/patches/patch-content_shell_BUILD.gn b/chromium/patches/patch-content_shell_BUILD.gn
index 289b9d3d9b..f6f6807cdd 100644
--- a/chromium/patches/patch-content_shell_BUILD.gn
+++ b/chromium/patches/patch-content_shell_BUILD.gn
@@ -1,48 +1,12 @@
$NetBSD$
---- content/shell/BUILD.gn.orig 2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/shell/BUILD.gn.orig 2024-07-24 02:44:37.760890200 +0000
+++ content/shell/BUILD.gn
-@@ -226,7 +226,7 @@ static_library("content_shell_app") {
- "//content/public/app",
- "//v8",
- ]
-- if (!is_fuchsia) {
-+ if (!is_fuchsia && !is_bsd) {
- deps += [
- "//components/crash/core/app",
- "//components/crash/core/app:test_support",
-@@ -490,6 +490,12 @@ static_library("content_shell_lib") {
- deps += [ "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.ui.policy" ]
- }
-
-+ if (is_bsd) {
-+ deps -= [
-+ "//components/crash/content/browser",
-+ ]
-+ }
-+
- if (enable_plugins) {
- deps += [
- "//cc/paint",
-@@ -597,7 +603,7 @@ static_library("content_shell_lib") {
- ]
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- deps += [ "//build/config/freetype" ]
- }
-
-@@ -778,7 +784,7 @@ if (is_android) {
- [ "//third_party/crashpad/crashpad/handler:crashpad_handler" ]
- }
-
-- if (is_linux && !is_component_build) {
-+ if ((is_linux || is_bsd) && !is_component_build) {
- # Set rpath to find our own libfreetype even in a non-component build.
- configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
- }
-@@ -1066,7 +1072,7 @@ group("content_shell_crash_test") {
+@@ -1099,7 +1099,7 @@ group("content_shell_crash_test") {
if (is_win) {
data_deps += [ "//build/win:copy_cdb_to_output" ]
}
diff --git a/chromium/patches/patch-content_shell_app_shell__main__delegate.cc b/chromium/patches/patch-content_shell_app_shell__main__delegate.cc
index 6d9e5ec27f..8fc013e29a 100644
--- a/chromium/patches/patch-content_shell_app_shell__main__delegate.cc
+++ b/chromium/patches/patch-content_shell_app_shell__main__delegate.cc
@@ -1,22 +1,17 @@
$NetBSD$
---- content/shell/app/shell_main_delegate.cc.orig 2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/shell/app/shell_main_delegate.cc.orig 2024-07-24 02:44:37.768891000 +0000
+++ content/shell/app/shell_main_delegate.cc
-@@ -181,7 +181,7 @@ bool ShellMainDelegate::BasicStartupComp
- }
-
- void ShellMainDelegate::PreSandboxStartup() {
--#if defined(ARCH_CPU_ARM_FAMILY) && (defined(OS_ANDROID) || defined(OS_LINUX))
-+#if defined(ARCH_CPU_ARM_FAMILY) && (defined(OS_ANDROID) || (defined(OS_LINUX) || defined(OS_BSD))
- // Create an instance of the CPU class to parse /proc/cpuinfo and cache
- // cpu_brand info.
- base::CPU cpu_info;
-@@ -200,7 +200,7 @@ void ShellMainDelegate::PreSandboxStartu
+@@ -281,7 +281,7 @@ void ShellMainDelegate::PreSandboxStartu
// Reporting for sub-processes will be initialized in ZygoteForked.
- if (process_type != service_manager::switches::kZygoteProcess) {
+ if (process_type != switches::kZygoteProcess) {
crash_reporter::InitializeCrashpad(process_type.empty(), process_type);
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
crash_reporter::SetFirstChanceExceptionHandler(
v8::TryHandleWebAssemblyTrapPosix);
#endif
diff --git a/chromium/patches/patch-content_shell_browser_shell__browser__context.cc b/chromium/patches/patch-content_shell_browser_shell__browser__context.cc
deleted file mode 100644
index 1f7f9ea85c..0000000000
--- a/chromium/patches/patch-content_shell_browser_shell__browser__context.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- content/shell/browser/shell_browser_context.cc.orig 2020-07-08 21:41:48.000000000 +0000
-+++ content/shell/browser/shell_browser_context.cc
-@@ -31,7 +31,7 @@
-
- #if defined(OS_WIN)
- #include "base/base_paths_win.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- #include "base/nix/xdg_util.h"
- #elif defined(OS_MACOSX)
- #include "base/base_paths_mac.h"
-@@ -106,7 +106,7 @@ void ShellBrowserContext::InitWhileIOAll
- #if defined(OS_WIN)
- CHECK(base::PathService::Get(base::DIR_LOCAL_APP_DATA, &path_));
- path_ = path_.Append(std::wstring(L"content_shell"));
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- std::unique_ptr<base::Environment> env(base::Environment::Create());
- base::FilePath config_dir(
- base::nix::GetXDGDirectory(env.get(),
diff --git a/chromium/patches/patch-content_shell_browser_shell__browser__main__parts.cc b/chromium/patches/patch-content_shell_browser_shell__browser__main__parts.cc
index ccd955afcb..c02cbfe6af 100644
--- a/chromium/patches/patch-content_shell_browser_shell__browser__main__parts.cc
+++ b/chromium/patches/patch-content_shell_browser_shell__browser__main__parts.cc
@@ -1,22 +1,53 @@
$NetBSD$
---- content/shell/browser/shell_browser_main_parts.cc.orig 2020-07-08 21:40:43.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/shell/browser/shell_browser_main_parts.cc.orig 2024-07-24 02:44:37.772891500 +0000
+++ content/shell/browser/shell_browser_main_parts.cc
-@@ -50,7 +50,7 @@
- #if defined(USE_AURA) && defined(USE_X11)
- #include "ui/events/devices/x11/touch_factory_x11.h" // nogncheck
+@@ -51,7 +51,7 @@
+ #include "net/base/network_change_notifier.h"
#endif
--#if !defined(OS_CHROMEOS) && defined(USE_AURA) && defined(OS_LINUX)
-+#if !defined(OS_CHROMEOS) && defined(USE_AURA) && (defined(OS_LINUX) || defined(OS_BSD))
+
+-#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
#include "ui/base/ime/init/input_method_initializer.h"
#endif
- #if defined(OS_CHROMEOS)
-@@ -137,7 +137,7 @@ int ShellBrowserMainParts::PreEarlyIniti
- if (!features::IsUsingOzonePlatform())
- ui::SetDefaultX11ErrorHandlers();
+
+@@ -68,7 +68,7 @@
+ #include "chromeos/lacros/dbus/lacros_dbus_thread_manager.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/linux/linux_ui.h" // nogncheck
+ #include "ui/linux/linux_ui_factory.h" // nogncheck
#endif
--#if !defined(OS_CHROMEOS) && defined(USE_AURA) && defined(OS_LINUX)
-+#if !defined(OS_CHROMEOS) && defined(USE_AURA) && (defined(OS_LINUX) || defined(OS_BSD))
+@@ -139,7 +139,7 @@ void ShellBrowserMainParts::PostCreateMa
+ }
+
+ int ShellBrowserMainParts::PreEarlyInitialization() {
+-#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
ui::InitializeInputMethodForTesting();
#endif
- #if defined(OS_ANDROID)
+ #if BUILDFLAG(IS_ANDROID)
+@@ -168,7 +168,7 @@ void ShellBrowserMainParts::ToolkitIniti
+ if (switches::IsRunWebTestsSwitchPresent())
+ return;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ ui::LinuxUi::SetInstance(ui::GetDefaultLinuxUi());
+ #endif
+ }
+@@ -215,7 +215,7 @@ void ShellBrowserMainParts::PostMainMess
+ ShellDevToolsManagerDelegate::StopHttpHandler();
+ browser_context_.reset();
+ off_the_record_browser_context_.reset();
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ ui::LinuxUi::SetInstance(nullptr);
+ #endif
+ performance_manager_lifetime_.reset();
diff --git a/chromium/patches/patch-content_shell_browser_shell__paths.cc b/chromium/patches/patch-content_shell_browser_shell__paths.cc
new file mode 100644
index 0000000000..aa76a03d2b
--- /dev/null
+++ b/chromium/patches/patch-content_shell_browser_shell__paths.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/shell/browser/shell_paths.cc.orig 2024-07-24 02:44:37.776892000 +0000
++++ content/shell/browser/shell_paths.cc
+@@ -13,7 +13,7 @@
+
+ #if BUILDFLAG(IS_FUCHSIA)
+ #include "base/fuchsia/file_utils.h"
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "base/nix/xdg_util.h"
+ #endif
+
+@@ -25,7 +25,7 @@ bool GetDefaultUserDataDirectory(base::F
+ #if BUILDFLAG(IS_WIN)
+ CHECK(base::PathService::Get(base::DIR_LOCAL_APP_DATA, result));
+ *result = result->Append(std::wstring(L"content_shell"));
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ std::unique_ptr<base::Environment> env(base::Environment::Create());
+ base::FilePath config_dir(base::nix::GetXDGDirectory(
+ env.get(), base::nix::kXdgConfigHomeEnvVar, base::nix::kDotConfigDir));
diff --git a/chromium/patches/patch-content_shell_browser_web__test_web__test__browser__context.cc b/chromium/patches/patch-content_shell_browser_web__test_web__test__browser__context.cc
deleted file mode 100644
index 9a435a00dd..0000000000
--- a/chromium/patches/patch-content_shell_browser_web__test_web__test__browser__context.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- content/shell/browser/web_test/web_test_browser_context.cc.orig 2020-07-08 21:41:48.000000000 +0000
-+++ content/shell/browser/web_test/web_test_browser_context.cc
-@@ -26,7 +26,7 @@
-
- #if defined(OS_WIN)
- #include "base/base_paths_win.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- #include "base/nix/xdg_util.h"
- #elif defined(OS_MACOSX)
- #include "base/base_paths_mac.h"
diff --git a/chromium/patches/patch-content_shell_browser_web__test_web__test__browser__main__parts.cc b/chromium/patches/patch-content_shell_browser_web__test_web__test__browser__main__parts.cc
deleted file mode 100644
index 2366ec3bd7..0000000000
--- a/chromium/patches/patch-content_shell_browser_web__test_web__test__browser__main__parts.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- content/shell/browser/web_test/web_test_browser_main_parts.cc.orig 2020-07-08 21:40:43.000000000 +0000
-+++ content/shell/browser/web_test/web_test_browser_main_parts.cc
-@@ -37,7 +37,7 @@
- #if defined(USE_AURA) && defined(USE_X11)
- #include "ui/events/devices/x11/touch_factory_x11.h" // nogncheck
- #endif
--#if !defined(OS_CHROMEOS) && defined(USE_AURA) && defined(OS_LINUX)
-+#if !defined(OS_CHROMEOS) && defined(USE_AURA) && (defined(OS_LINUX) || defined(OS_BSD))
- #include "ui/base/ime/init/input_method_initializer.h"
- #endif
-
diff --git a/chromium/patches/patch-content_shell_renderer_shell__content__renderer__client.cc b/chromium/patches/patch-content_shell_renderer_shell__content__renderer__client.cc
new file mode 100644
index 0000000000..ba2ad3eba4
--- /dev/null
+++ b/chromium/patches/patch-content_shell_renderer_shell__content__renderer__client.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/shell/renderer/shell_content_renderer_client.cc.orig 2024-07-24 02:44:37.780892100 +0000
++++ content/shell/renderer/shell_content_renderer_client.cc
+@@ -54,7 +54,7 @@
+ #include "media/base/media_switches.h"
+ #endif
+
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && \
+ (defined(ARCH_CPU_X86_64) || defined(ARCH_CPU_ARM64))
+ #define ENABLE_WEB_ASSEMBLY_TRAP_HANDLER_LINUX
+ #include "base/debug/stack_trace.h"
diff --git a/chromium/patches/patch-content_shell_renderer_web__test_test__runner.cc b/chromium/patches/patch-content_shell_renderer_web__test_test__runner.cc
deleted file mode 100644
index 248f2f0eb5..0000000000
--- a/chromium/patches/patch-content_shell_renderer_web__test_test__runner.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- content/shell/renderer/web_test/test_runner.cc.orig 2020-07-08 21:41:48.000000000 +0000
-+++ content/shell/renderer/web_test/test_runner.cc
-@@ -80,7 +80,7 @@
- #include "ui/gfx/skia_util.h"
- #include "ui/gfx/test/icc_profiles.h"
-
--#if defined(OS_LINUX) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_FUCHSIA) || defined(OS_BSD)
- #include "third_party/blink/public/platform/web_font_render_style.h"
- #endif
-
-@@ -2198,7 +2198,7 @@ void TestRunner::Reset() {
- drag_image_.reset();
-
- blink::WebSecurityPolicy::ClearOriginAccessList();
--#if defined(OS_LINUX) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_FUCHSIA) || defined(OS_BSD)
- blink::WebFontRenderStyle::SetSubpixelPositioning(false);
- #endif
- blink::ResetDomainRelaxationForTest();
-@@ -2782,7 +2782,7 @@ void TestRunner::AddOriginAccessAllowLis
- }
-
- void TestRunner::SetTextSubpixelPositioning(bool value) {
--#if defined(OS_LINUX) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_FUCHSIA) || defined(OS_BSD)
- // Since FontConfig doesn't provide a variable to control subpixel
- // positioning, we'll fall back to setting it globally for all fonts.
- blink::WebFontRenderStyle::SetSubpixelPositioning(value);
diff --git a/chromium/patches/patch-content_shell_utility_shell__content__utility__client.cc b/chromium/patches/patch-content_shell_utility_shell__content__utility__client.cc
new file mode 100644
index 0000000000..0d428b773b
--- /dev/null
+++ b/chromium/patches/patch-content_shell_utility_shell__content__utility__client.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/shell/utility/shell_content_utility_client.cc.orig 2024-07-24 02:44:37.780892100 +0000
++++ content/shell/utility/shell_content_utility_client.cc
+@@ -38,7 +38,7 @@
+ #include "sandbox/policy/sandbox.h"
+ #include "services/test/echo/echo_service.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "content/test/sandbox_status_service.h"
+ #endif
+
+@@ -187,7 +187,7 @@ void ShellContentUtilityClient::ExposeIn
+ binders->Add<mojom::PowerMonitorTest>(
+ base::BindRepeating(&PowerMonitorTestImpl::MakeSelfOwnedReceiver),
+ base::SingleThreadTaskRunner::GetCurrentDefault());
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ if (register_sandbox_status_helper_) {
+ binders->Add<content::mojom::SandboxStatusService>(
+ base::BindRepeating(
diff --git a/chromium/patches/patch-content_test_BUILD.gn b/chromium/patches/patch-content_test_BUILD.gn
index fd2e3bf85a..b8ade6f2e8 100644
--- a/chromium/patches/patch-content_test_BUILD.gn
+++ b/chromium/patches/patch-content_test_BUILD.gn
@@ -1,98 +1,17 @@
$NetBSD$
---- content/test/BUILD.gn.orig 2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/test/BUILD.gn.orig 2024-07-24 02:44:37.780892100 +0000
+++ content/test/BUILD.gn
-@@ -585,7 +585,7 @@ jumbo_static_library("test_support") {
- ]
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- deps += [ "//ui/platform_window/common" ]
- }
-
-@@ -1316,7 +1316,7 @@ test("content_browsertests") {
- }
- }
-
-- if (is_android || is_linux || is_mac || is_win) {
-+ if (is_android || is_linux || is_mac || is_win || is_bsd) {
- data += [
- "$root_out_dir/content_shell.pak",
- "data/",
-@@ -1324,7 +1324,7 @@ test("content_browsertests") {
- ]
- }
-
-- if (is_linux || is_mac || is_win) {
-+ if (is_linux || is_mac || is_win || is_bsd) {
- sources += [
- "../browser/media/capture/content_capture_device_browsertest_base.cc",
- "../browser/media/capture/content_capture_device_browsertest_base.h",
-@@ -1386,7 +1386,7 @@ test("content_browsertests") {
- configs += [ "//build/config/win:delayloads" ]
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "../browser/utility_process_sandbox_browsertest.cc",
- "../browser/zygote_host/zygote_browsertest.cc",
-@@ -1396,6 +1396,12 @@ test("content_browsertests") {
- "//ui/gfx:test_support",
- ]
-
-+ if (is_bsd) {
-+ sources -= [
-+ "../browser/utility_process_sandbox_browsertest.cc",
-+ ]
-+ }
-+
- if (use_atk) {
- sources += [
- "../browser/accessibility/accessibility_auralinux_browsertest.cc",
-@@ -1524,7 +1530,7 @@ test("content_browsertests") {
- data_deps += [ "//ppapi:ppapi_tests" ]
- }
-
-- if ((is_win || is_chromeos || is_linux) && !is_tsan) {
-+ if ((is_win || is_chromeos || is_linux || is_bsd) && !is_tsan) {
- # NOTE: We don't bother to build these tests when TSan is enabled, because
- # they can't properly launch a child content_shell in that environment.
- sources += [ "../browser/launch_as_mojo_client_browsertest.cc" ]
-@@ -1599,7 +1605,7 @@ static_library("run_all_unittests") {
- ":test_support",
- "//base/test:test_support",
+@@ -1685,7 +1685,7 @@ test("content_browsertests") {
+ "../test/url_loader_interceptor_browsertest.cc",
]
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- deps += [ "//services/service_manager/embedder:set_process_title_linux" ]
- }
- }
-@@ -2073,7 +2079,7 @@ test("content_unittests") {
- [ "../browser/accessibility/browser_accessibility_android_unittest.cc" ]
- }
-
-- if (is_android || is_linux || is_mac || is_win || is_fuchsia) {
-+ if (is_android || is_linux || is_mac || is_win || is_fuchsia || is_bsd) {
- data = [
- "$root_out_dir/content_shell.pak",
- "data/",
-@@ -2279,7 +2285,7 @@ test("content_unittests") {
- }
- }
- if (is_linux) {
-+ if (is_linux || is_bsd) {
- if (use_dbus) {
- deps += [ "//dbus:test_support" ]
- }
-@@ -2420,7 +2426,7 @@ test("content_unittests") {
- deps += [ "//ui/gfx/x" ]
++ if ((is_linux) && !is_bsd) {
+ sources += [ "../browser/network/address_map_linux_browsertest.cc" ]
}
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [ "../../services/service_manager/embedder/set_process_title_linux_unittest.cc" ]
- deps += [ "//services/service_manager/embedder:set_process_title_linux" ]
- }
diff --git a/chromium/patches/patch-content_test_content__test__suite.cc b/chromium/patches/patch-content_test_content__test__suite.cc
deleted file mode 100644
index a255efec71..0000000000
--- a/chromium/patches/patch-content_test_content__test__suite.cc
+++ /dev/null
@@ -1,20 +0,0 @@
-$NetBSD$
-
---- content/test/content_test_suite.cc.orig 2020-07-08 21:40:43.000000000 +0000
-+++ content/test/content_test_suite.cc
-@@ -83,6 +83,7 @@ void ContentTestSuite::Initialize() {
- // to initialize GL, so don't do it here.
- base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
- bool is_child_process = command_line->HasSwitch(switches::kTestChildProcess);
-+#if !defined(OS_BSD)
- if (!is_child_process) {
- gl::GLSurfaceTestSupport::InitializeNoExtensionsOneOff();
- auto* gpu_feature_info = gpu::GetTestGpuThreadHolder()->GetGpuFeatureInfo();
-@@ -90,6 +91,7 @@ void ContentTestSuite::Initialize() {
- gpu_feature_info->disabled_extensions);
- gl::init::InitializeExtensionSettingsOneOffPlatform();
- }
-+#endif
- testing::TestEventListeners& listeners =
- testing::UnitTest::GetInstance()->listeners();
- listeners.Append(new TestInitializationListener);
diff --git a/chromium/patches/patch-content_utility_BUILD.gn b/chromium/patches/patch-content_utility_BUILD.gn
deleted file mode 100644
index 0235d2084b..0000000000
--- a/chromium/patches/patch-content_utility_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- content/utility/BUILD.gn.orig 2020-07-15 18:55:57.000000000 +0000
-+++ content/utility/BUILD.gn
-@@ -85,7 +85,7 @@ jumbo_source_set("utility") {
- deps += [ "//services/proxy_resolver:lib" ]
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- deps += [ "//content/utility/speech:speech_recognition_sandbox_hook" ]
- }
-
diff --git a/chromium/patches/patch-content_utility_services.cc b/chromium/patches/patch-content_utility_services.cc
new file mode 100644
index 0000000000..848a2df7e4
--- /dev/null
+++ b/chromium/patches/patch-content_utility_services.cc
@@ -0,0 +1,105 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/utility/services.cc.orig 2024-07-24 02:44:38.328945400 +0000
++++ content/utility/services.cc
+@@ -74,7 +74,7 @@
+ extern sandbox::TargetServices* g_utility_target_services;
+ #endif // BUILDFLAG(IS_WIN)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "media/mojo/services/mojo_video_encode_accelerator_provider_factory.h"
+ #include "sandbox/linux/services/libc_interceptor.h"
+ #include "sandbox/policy/mojom/sandbox.mojom.h"
+@@ -97,7 +97,7 @@ extern sandbox::TargetServices* g_utilit
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH) && (BUILDFLAG(USE_VAAPI) ||
+ // BUILDFLAG(USE_V4L2_CODEC))
+
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)) && \
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)) && \
+ (BUILDFLAG(USE_VAAPI) || BUILDFLAG(USE_V4L2_CODEC))
+ #include "content/common/features.h"
+ #include "media/mojo/services/stable_video_decoder_factory_process_service.h" // nogncheck
+@@ -115,13 +115,13 @@ extern sandbox::TargetServices* g_utilit
+ #endif // BUILDFLAG(ENABLE_ACCESSIBILITY_SERVICE)
+
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || \
+- BUILDFLAG(ENABLE_VIDEO_EFFECTS)
++ BUILDFLAG(ENABLE_VIDEO_EFFECTS) || BUILDFLAG(IS_BSD)
+ #include "services/viz/public/cpp/gpu/gpu.h"
+ #include "services/viz/public/mojom/gpu.mojom.h"
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ||
+ // BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(ENABLE_VIDEO_EFFECTS)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ #include "media/capture/capture_switches.h"
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ||
+ // BUILDFLAG(IS_CHROMEOS_ASH)
+@@ -239,7 +239,7 @@ auto RunAudio(mojo::PendingReceiver<audi
+ << "task_policy_set TASK_QOS_POLICY";
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ auto* command_line = base::CommandLine::ForCurrentProcess();
+ if (sandbox::policy::SandboxTypeFromCommandLine(*command_line) ==
+ sandbox::mojom::Sandbox::kNoSandbox) {
+@@ -328,7 +328,7 @@ auto RunVideoCapture(
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH)
+ auto service = std::make_unique<UtilityThreadVideoCaptureServiceImpl>(
+ std::move(receiver), base::SingleThreadTaskRunner::GetCurrentDefault());
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
+ {
+ #else
+@@ -384,7 +384,7 @@ auto RunOOPArcVideoAcceleratorFactorySer
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH) && (BUILDFLAG(USE_VAAPI) ||
+ // BUILDFLAG(USE_V4L2_CODEC))
+
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)) && \
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)) && \
+ (BUILDFLAG(USE_VAAPI) || BUILDFLAG(USE_V4L2_CODEC))
+ auto RunStableVideoDecoderFactoryProcessService(
+ mojo::PendingReceiver<
+@@ -395,7 +395,7 @@ auto RunStableVideoDecoderFactoryProcess
+ #endif // (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)) &&
+ // (BUILDFLAG(USE_VAAPI) || BUILDFLAG(USE_V4L2_CODEC))
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ auto RunVideoEncodeAcceleratorProviderFactory(
+ mojo::PendingReceiver<media::mojom::VideoEncodeAcceleratorProviderFactory>
+ receiver) {
+@@ -418,7 +418,7 @@ void RegisterIOThreadServices(mojo::Serv
+ // loop of type IO that can get notified when pipes have data.
+ services.Add(RunNetworkService);
+
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)) && \
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)) && \
+ (BUILDFLAG(USE_VAAPI) || BUILDFLAG(USE_V4L2_CODEC))
+ if (base::FeatureList::IsEnabled(
+ features::kRunStableVideoDecoderFactoryProcessServiceOnIOThread)) {
+@@ -470,7 +470,7 @@ void RegisterMainThreadServices(mojo::Se
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH) && (BUILDFLAG(USE_VAAPI) ||
+ // BUILDFLAG(USE_V4L2_CODEC))
+
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)) && \
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)) && \
+ (BUILDFLAG(USE_VAAPI) || BUILDFLAG(USE_V4L2_CODEC))
+ if (!base::FeatureList::IsEnabled(
+ features::kRunStableVideoDecoderFactoryProcessServiceOnIOThread)) {
+@@ -479,7 +479,7 @@ void RegisterMainThreadServices(mojo::Se
+ #endif // (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)) &&
+ // (BUILDFLAG(USE_VAAPI) || BUILDFLAG(USE_V4L2_CODEC))
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ services.Add(RunVideoEncodeAcceleratorProviderFactory);
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+
diff --git a/chromium/patches/patch-content_utility_speech_speech__recognition__sandbox__hook__linux.cc b/chromium/patches/patch-content_utility_speech_speech__recognition__sandbox__hook__linux.cc
new file mode 100644
index 0000000000..2f1256940a
--- /dev/null
+++ b/chromium/patches/patch-content_utility_speech_speech__recognition__sandbox__hook__linux.cc
@@ -0,0 +1,43 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/utility/speech/speech_recognition_sandbox_hook_linux.cc.orig 2024-07-24 02:44:38.328945400 +0000
++++ content/utility/speech/speech_recognition_sandbox_hook_linux.cc
+@@ -12,11 +12,14 @@
+ #include "sandbox/linux/syscall_broker/broker_command.h"
+ #include "sandbox/linux/syscall_broker/broker_file_permission.h"
+
++#if !BUILDFLAG(IS_BSD)
+ using sandbox::syscall_broker::BrokerFilePermission;
+ using sandbox::syscall_broker::MakeBrokerCommandSet;
++#endif
+
+ namespace speech {
+
++#if !BUILDFLAG(IS_BSD)
+ namespace {
+
+ // Gets the file permissions required by the Speech On-Device API (SODA).
+@@ -50,9 +53,11 @@ std::vector<BrokerFilePermission> GetSod
+ }
+
+ } // namespace
++#endif
+
+ bool SpeechRecognitionPreSandboxHook(
+ sandbox::policy::SandboxLinux::Options options) {
++#if !BUILDFLAG(IS_BSD)
+ #if BUILDFLAG(ENABLE_SODA_INTEGRATION_TESTS)
+ base::FilePath test_binary_path = GetSodaTestBinaryPath();
+ DVLOG(0) << "SODA test binary path: " << test_binary_path.value().c_str();
+@@ -75,6 +80,7 @@ bool SpeechRecognitionPreSandboxHook(
+ }),
+ GetSodaFilePermissions(), options);
+ instance->EngageNamespaceSandboxIfPossible();
++#endif
+
+ return true;
+ }
diff --git a/chromium/patches/patch-content_utility_speech_speech__recognition__sandbox__hook__linux.h b/chromium/patches/patch-content_utility_speech_speech__recognition__sandbox__hook__linux.h
new file mode 100644
index 0000000000..e6a351834f
--- /dev/null
+++ b/chromium/patches/patch-content_utility_speech_speech__recognition__sandbox__hook__linux.h
@@ -0,0 +1,22 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/utility/speech/speech_recognition_sandbox_hook_linux.h.orig 2024-07-24 02:44:38.328945400 +0000
++++ content/utility/speech/speech_recognition_sandbox_hook_linux.h
+@@ -5,7 +5,13 @@
+ #ifndef CONTENT_UTILITY_SPEECH_SPEECH_RECOGNITION_SANDBOX_HOOK_LINUX_H_
+ #define CONTENT_UTILITY_SPEECH_SPEECH_RECOGNITION_SANDBOX_HOOK_LINUX_H_
+
++#include "build/build_config.h"
++
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
++#else
+ #include "sandbox/policy/linux/sandbox_linux.h"
++#endif
+
+ namespace speech {
+
diff --git a/chromium/patches/patch-content_utility_utility__blink__platform__with__sandbox__support__impl.cc b/chromium/patches/patch-content_utility_utility__blink__platform__with__sandbox__support__impl.cc
index 849e2451bc..45292ac54c 100644
--- a/chromium/patches/patch-content_utility_utility__blink__platform__with__sandbox__support__impl.cc
+++ b/chromium/patches/patch-content_utility_utility__blink__platform__with__sandbox__support__impl.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- content/utility/utility_blink_platform_with_sandbox_support_impl.cc.orig 2020-07-08 21:40:43.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/utility/utility_blink_platform_with_sandbox_support_impl.cc.orig 2024-07-24 02:44:38.328945400 +0000
+++ content/utility/utility_blink_platform_with_sandbox_support_impl.cc
@@ -9,7 +9,7 @@
- #if defined(OS_MACOSX)
+ #if BUILDFLAG(IS_MAC)
#include "content/child/child_process_sandbox_support_impl_mac.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "content/child/child_process_sandbox_support_impl_linux.h"
#endif
@@ -15,17 +19,17 @@ $NetBSD$
UtilityBlinkPlatformWithSandboxSupportImpl::
UtilityBlinkPlatformWithSandboxSupportImpl() {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
mojo::PendingRemote<font_service::mojom::FontService> font_service;
UtilityThread::Get()->BindHostReceiver(
font_service.InitWithNewPipeAndPassReceiver());
-@@ -34,7 +34,7 @@ UtilityBlinkPlatformWithSandboxSupportIm
+@@ -35,7 +35,7 @@ UtilityBlinkPlatformWithSandboxSupportIm
blink::WebSandboxSupport*
UtilityBlinkPlatformWithSandboxSupportImpl::GetSandboxSupport() {
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
return sandbox_support_.get();
#else
return nullptr;
diff --git a/chromium/patches/patch-content_utility_utility__blink__platform__with__sandbox__support__impl.h b/chromium/patches/patch-content_utility_utility__blink__platform__with__sandbox__support__impl.h
index 743207947d..c4b25d62b1 100644
--- a/chromium/patches/patch-content_utility_utility__blink__platform__with__sandbox__support__impl.h
+++ b/chromium/patches/patch-content_utility_utility__blink__platform__with__sandbox__support__impl.h
@@ -1,26 +1,17 @@
$NetBSD$
---- content/utility/utility_blink_platform_with_sandbox_support_impl.h.orig 2020-07-08 21:40:43.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/utility/utility_blink_platform_with_sandbox_support_impl.h.orig 2024-07-24 02:44:38.328945400 +0000
+++ content/utility/utility_blink_platform_with_sandbox_support_impl.h
-@@ -11,7 +11,7 @@
- #include "build/build_config.h"
- #include "third_party/blink/public/platform/platform.h"
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "components/services/font/public/cpp/font_loader.h" // nogncheck
- #include "third_party/skia/include/core/SkRefCnt.h" // nogncheck
- #endif
-@@ -33,10 +33,10 @@ class UtilityBlinkPlatformWithSandboxSup
+@@ -33,7 +33,7 @@ class UtilityBlinkPlatformWithSandboxSup
blink::WebSandboxSupport* GetSandboxSupport() override;
private:
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
std::unique_ptr<blink::WebSandboxSupport> sandbox_support_;
#endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- sk_sp<font_service::FontLoader> font_loader_;
- #endif
-
+ };
diff --git a/chromium/patches/patch-content_utility_utility__main.cc b/chromium/patches/patch-content_utility_utility__main.cc
new file mode 100644
index 0000000000..e3418b9369
--- /dev/null
+++ b/chromium/patches/patch-content_utility_utility__main.cc
@@ -0,0 +1,134 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/utility/utility_main.cc.orig 2024-07-24 02:44:38.328945400 +0000
++++ content/utility/utility_main.cc
+@@ -36,17 +36,21 @@
+ #include "services/screen_ai/buildflags/buildflags.h"
+ #include "services/tracing/public/cpp/trace_startup.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "base/file_descriptor_store.h"
+ #include "base/files/file_util.h"
+ #include "base/pickle.h"
+ #include "content/child/sandboxed_process_thread_type_handler.h"
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "content/common/gpu_pre_sandbox_hook_linux.h"
++#endif
+ #include "content/public/common/content_descriptor_keys.h"
+ #include "content/utility/speech/speech_recognition_sandbox_hook_linux.h"
+ #include "gpu/config/gpu_info_collector.h"
+ #include "media/gpu/sandbox/hardware_video_encoding_sandbox_hook_linux.h"
++#if !BUILDFLAG(IS_BSD)
+ #include "sandbox/policy/linux/sandbox_linux.h"
++#endif
+ #include "services/audio/audio_sandbox_hook_linux.h"
+ #include "services/network/network_sandbox_hook_linux.h"
+ // gn check is not smart enough to realize that this include only applies to
+@@ -58,10 +62,15 @@
+ #endif
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ #include "media/gpu/sandbox/hardware_video_decoding_sandbox_hook_linux.h"
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
+
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
++#include "content/common/gpu_pre_sandbox_hook_bsd.h"
++#endif
++
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
+ #include "chromeos/ash/components/assistant/buildflags.h"
+ #include "chromeos/ash/services/ime/ime_sandbox_hook.h"
+@@ -73,7 +82,7 @@
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH)
+
+ #if (BUILDFLAG(ENABLE_SCREEN_AI_SERVICE) && \
+- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)))
++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)))
+ #include "services/screen_ai/public/cpp/utilities.h" // nogncheck
+ #include "services/screen_ai/sandbox/screen_ai_sandbox_hook_linux.h" // nogncheck
+ #endif
+@@ -100,7 +109,7 @@ namespace content {
+
+ namespace {
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ std::vector<std::string> GetNetworkContextsParentDirectories() {
+ base::MemoryMappedFile::Region region;
+ base::ScopedFD read_pipe_fd = base::FileDescriptorStore::GetInstance().TakeFD(
+@@ -127,9 +136,10 @@ std::vector<std::string> GetNetworkConte
+ return dirs;
+ }
+
++#if !BUILDFLAG(IS_BSD)
+ bool ShouldUseAmdGpuPolicy(sandbox::mojom::Sandbox sandbox_type) {
+ const bool obtain_gpu_info =
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ sandbox_type == sandbox::mojom::Sandbox::kHardwareVideoDecoding ||
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
+ sandbox_type == sandbox::mojom::Sandbox::kHardwareVideoEncoding;
+@@ -144,6 +154,7 @@ bool ShouldUseAmdGpuPolicy(sandbox::mojo
+
+ return false;
+ }
++#endif
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+
+ #if BUILDFLAG(IS_WIN)
+@@ -241,7 +252,8 @@ int UtilityMain(MainFunctionParams param
+ CHECK(on_device_model::OnDeviceModelService::PreSandboxInit());
+ }
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++// XXX BSD
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_BSD)
+ // Thread type delegate of the process should be registered before first
+ // thread type change in ChildProcess constructor. It also needs to be
+ // registered before the process has multiple threads, which may race with
+@@ -253,7 +265,7 @@ int UtilityMain(MainFunctionParams param
+ }
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Initializes the sandbox before any threads are created.
+ // TODO(jorgelo): move this after GTK initialization when we enable a strict
+ // Seccomp-BPF policy.
+@@ -291,7 +303,7 @@ int UtilityMain(MainFunctionParams param
+ screen_ai::GetBinaryPathSwitch()));
+ break;
+ #endif
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ case sandbox::mojom::Sandbox::kHardwareVideoDecoding:
+ pre_sandbox_hook =
+ base::BindOnce(&media::HardwareVideoDecodingPreSandboxHook);
+@@ -318,6 +330,7 @@ int UtilityMain(MainFunctionParams param
+ default:
+ break;
+ }
++#if !BUILDFLAG(IS_BSD)
+ if (!sandbox::policy::IsUnsandboxedSandboxType(sandbox_type) &&
+ (parameters.zygote_child || !pre_sandbox_hook.is_null())) {
+ sandbox_options.use_amd_specific_policies =
+@@ -325,6 +338,11 @@ int UtilityMain(MainFunctionParams param
+ sandbox::policy::Sandbox::Initialize(
+ sandbox_type, std::move(pre_sandbox_hook), sandbox_options);
+ }
++#else
++ sandbox::policy::Sandbox::Initialize(
++ sandbox_type, std::move(pre_sandbox_hook),
++ sandbox::policy::SandboxLinux::Options());
++#endif
+
+ // Start the HangWatcher now that the sandbox is engaged, if it hasn't
+ // already been started.
diff --git a/chromium/patches/patch-content_utility_utility__thread__impl.cc b/chromium/patches/patch-content_utility_utility__thread__impl.cc
new file mode 100644
index 0000000000..70fd524121
--- /dev/null
+++ b/chromium/patches/patch-content_utility_utility__thread__impl.cc
@@ -0,0 +1,27 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/utility/utility_thread_impl.cc.orig 2024-07-24 02:44:38.328945400 +0000
++++ content/utility/utility_thread_impl.cc
+@@ -31,7 +31,7 @@
+ #include "mojo/public/cpp/bindings/pending_receiver.h"
+ #include "mojo/public/cpp/bindings/service_factory.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "content/child/sandboxed_process_thread_type_handler.h"
+ #endif
+
+@@ -251,7 +251,8 @@ void UtilityThreadImpl::Init() {
+
+ GetContentClient()->utility()->UtilityThreadStarted();
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++// XXX BSD
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_BSD)
+ SandboxedProcessThreadTypeHandler::NotifyMainChildThreadCreated();
+ #endif
+
diff --git a/chromium/patches/patch-content_zygote_BUILD.gn b/chromium/patches/patch-content_zygote_BUILD.gn
index 7f15ff33d9..ed412669b9 100644
--- a/chromium/patches/patch-content_zygote_BUILD.gn
+++ b/chromium/patches/patch-content_zygote_BUILD.gn
@@ -1,26 +1,17 @@
$NetBSD$
---- content/zygote/BUILD.gn.orig 2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/zygote/BUILD.gn.orig 2024-07-24 02:44:38.344946900 +0000
+++ content/zygote/BUILD.gn
@@ -5,7 +5,7 @@
import("//build/config/nacl/config.gni")
import("//content/public/common/zygote/features.gni")
--if (is_linux) {
-+if (is_linux || is_bsd) {
+-if (is_linux || is_chromeos) {
++if ((is_linux || is_chromeos) && !is_bsd) {
source_set("zygote") {
sources = [
"zygote_linux.cc",
-@@ -26,6 +26,12 @@ if (is_linux) {
- ]
-
- configs += [ "//content:content_implementation" ]
-+
-+ if (is_bsd) {
-+ sources -= [
-+ "zygote_linux.cc",
-+ ]
-+ }
- }
- } else {
- group("zygote") {
diff --git a/chromium/patches/patch-content_zygote_zygote__linux.cc b/chromium/patches/patch-content_zygote_zygote__linux.cc
new file mode 100644
index 0000000000..7ced53eb55
--- /dev/null
+++ b/chromium/patches/patch-content_zygote_zygote__linux.cc
@@ -0,0 +1,21 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/zygote/zygote_linux.cc.orig 2024-07-24 02:44:38.344946900 +0000
++++ content/zygote/zygote_linux.cc
+@@ -1,6 +1,7 @@
+ // Copyright 2012 The Chromium Authors
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
++#if 0
+
+ #ifdef UNSAFE_BUFFERS_BUILD
+ // TODO(crbug.com/342213636): Remove this and spanify to fix the errors.
+@@ -723,3 +724,4 @@ void Zygote::HandleReinitializeLoggingRe
+ }
+
+ } // namespace content
++#endif
diff --git a/chromium/patches/patch-content_zygote_zygote__main__linux.cc b/chromium/patches/patch-content_zygote_zygote__main__linux.cc
index c9a572b05f..092d51cf06 100644
--- a/chromium/patches/patch-content_zygote_zygote__main__linux.cc
+++ b/chromium/patches/patch-content_zygote_zygote__main__linux.cc
@@ -1,32 +1,64 @@
$NetBSD$
---- content/zygote/zygote_main_linux.cc.orig 2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- content/zygote/zygote_main_linux.cc.orig 2024-07-24 02:44:38.344946900 +0000
+++ content/zygote/zygote_main_linux.cc
@@ -11,7 +11,9 @@
#include <stddef.h>
#include <stdint.h>
#include <string.h>
-+#if !defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
#include <sys/prctl.h>
+#endif
#include <sys/socket.h>
#include <sys/types.h>
#include <unistd.h>
-@@ -100,6 +102,9 @@ static bool CreateInitProcessReaper(
- // created through the setuid sandbox.
- static bool EnterSuidSandbox(sandbox::SetuidSandboxClient* setuid_sandbox,
- base::OnceClosure post_fork_parent_callback) {
-+#if defined(OS_BSD)
-+ return false;
-+#else
- DCHECK(setuid_sandbox);
- DCHECK(setuid_sandbox->IsSuidSandboxChild());
+@@ -41,7 +43,9 @@
+ #include "sandbox/linux/services/thread_helpers.h"
+ #include "sandbox/linux/suid/client/setuid_sandbox_client.h"
+ #include "sandbox/policy/linux/sandbox_debug_handling_linux.h"
++#if !BUILDFLAG(IS_BSD)
+ #include "sandbox/policy/linux/sandbox_linux.h"
++#endif
+ #include "sandbox/policy/sandbox.h"
+ #include "sandbox/policy/switches.h"
+ #include "third_party/icu/source/i18n/unicode/timezone.h"
+@@ -50,11 +54,13 @@ namespace content {
+
+ namespace {
+
++#if !BUILDFLAG(IS_BSD)
+ void CloseFds(const std::vector<int>& fds) {
+ for (const auto& it : fds) {
+ PCHECK(0 == IGNORE_EINTR(close(it)));
+ }
+ }
++#endif
+
+ base::OnceClosure ClosureFromTwoClosures(base::OnceClosure one,
+ base::OnceClosure two) {
+@@ -157,9 +163,11 @@ static void EnterLayerOneSandbox(sandbox
+ CHECK(!using_layer1_sandbox);
+ }
+ }
++#endif
-@@ -132,6 +137,7 @@ static bool EnterSuidSandbox(sandbox::Se
+ bool ZygoteMain(
+ std::vector<std::unique_ptr<ZygoteForkDelegate>> fork_delegates) {
++#if !BUILDFLAG(IS_BSD)
+ sandbox::SetAmZygoteOrRenderer(true, GetSandboxFD());
- CHECK(service_manager::SandboxDebugHandling::SetDumpableStatusAndHandlers());
- return true;
+ auto* linux_sandbox = sandbox::policy::SandboxLinux::GetInstance();
+@@ -224,6 +232,9 @@ bool ZygoteMain(
+
+ // This function call can return multiple times, once per fork().
+ return zygote.ProcessRequests();
++#else
++ return false;
+#endif
}
- static void DropAllCapabilities(int proc_fd) {
+ } // namespace content
diff --git a/chromium/patches/patch-device_bluetooth_bluetooth__adapter.cc b/chromium/patches/patch-device_bluetooth_bluetooth__adapter.cc
new file mode 100644
index 0000000000..532deb040a
--- /dev/null
+++ b/chromium/patches/patch-device_bluetooth_bluetooth__adapter.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- device/bluetooth/bluetooth_adapter.cc.orig 2024-07-24 02:44:38.388951000 +0000
++++ device/bluetooth/bluetooth_adapter.cc
+@@ -32,7 +32,7 @@ namespace device {
+ BluetoothAdapter::ServiceOptions::ServiceOptions() = default;
+ BluetoothAdapter::ServiceOptions::~ServiceOptions() = default;
+
+-#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS) && \
++#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD) && \
+ !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_LINUX)
+ // static
+ scoped_refptr<BluetoothAdapter> BluetoothAdapter::CreateAdapter() {
diff --git a/chromium/patches/patch-device_bluetooth_cast__bluetooth.gni b/chromium/patches/patch-device_bluetooth_cast__bluetooth.gni
new file mode 100644
index 0000000000..0c6bda659c
--- /dev/null
+++ b/chromium/patches/patch-device_bluetooth_cast__bluetooth.gni
@@ -0,0 +1,15 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- device/bluetooth/cast_bluetooth.gni.orig 2024-07-24 02:44:38.412953400 +0000
++++ device/bluetooth/cast_bluetooth.gni
+@@ -2,5 +2,5 @@ import("//build/config/features.gni")
+
+ declare_args() {
+ force_cast_bluetooth = false
+- use_bluez = (is_linux && !is_castos && use_dbus) || is_chromeos
++ use_bluez = use_dbus && !is_bsd
+ }
diff --git a/chromium/patches/patch-device_fido_fido__discovery__factory.cc b/chromium/patches/patch-device_fido_fido__discovery__factory.cc
new file mode 100644
index 0000000000..c4f04782b9
--- /dev/null
+++ b/chromium/patches/patch-device_fido_fido__discovery__factory.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- device/fido/fido_discovery_factory.cc.orig 2024-07-24 02:44:38.472959300 +0000
++++ device/fido/fido_discovery_factory.cc
+@@ -127,7 +127,7 @@ std::vector<std::unique_ptr<FidoDiscover
+
+ std::optional<std::unique_ptr<FidoDiscoveryBase>>
+ FidoDiscoveryFactory::MaybeCreateEnclaveDiscovery() {
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (!base::FeatureList::IsEnabled(kWebAuthnEnclaveAuthenticator) ||
+ !enclave_ui_request_stream_ || !network_context_factory_) {
+ return std::nullopt;
diff --git a/chromium/patches/patch-device_gamepad_BUILD.gn b/chromium/patches/patch-device_gamepad_BUILD.gn
index 8782902ba1..a4db453ffe 100644
--- a/chromium/patches/patch-device_gamepad_BUILD.gn
+++ b/chromium/patches/patch-device_gamepad_BUILD.gn
@@ -1,13 +1,17 @@
$NetBSD$
---- device/gamepad/BUILD.gn.orig 2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- device/gamepad/BUILD.gn.orig 2024-07-24 02:44:38.496961600 +0000
+++ device/gamepad/BUILD.gn
-@@ -111,7 +111,7 @@ component("gamepad") {
- [ "/wd4267" ] # conversion from 'size_t' (64 bit) to 'type'(32 bit).
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- if (use_udev) {
- deps += [ "//device/udev_linux" ]
- } else {
+@@ -99,7 +99,7 @@ component("gamepad") {
+ "hid_writer_linux.cc",
+ "hid_writer_linux.h",
+ ]
+- if (use_udev) {
++ if (use_udev && !is_bsd) {
+ sources += [
+ "gamepad_device_linux.cc",
+ "gamepad_device_linux.h",
diff --git a/chromium/patches/patch-device_gamepad_gamepad__provider.cc b/chromium/patches/patch-device_gamepad_gamepad__provider.cc
index e83e6e1c1f..74560457b1 100644
--- a/chromium/patches/patch-device_gamepad_gamepad__provider.cc
+++ b/chromium/patches/patch-device_gamepad_gamepad__provider.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- device/gamepad/gamepad_provider.cc.orig 2020-07-08 21:40:43.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- device/gamepad/gamepad_provider.cc.orig 2024-07-24 02:44:38.500962000 +0000
+++ device/gamepad/gamepad_provider.cc
-@@ -147,7 +147,7 @@ void GamepadProvider::Initialize(std::un
+@@ -219,7 +219,7 @@ void GamepadProvider::Initialize(std::un
if (!polling_thread_)
- polling_thread_.reset(new base::Thread("Gamepad polling thread"));
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+ polling_thread_ = std::make_unique<base::Thread>("Gamepad polling thread");
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// On Linux, the data fetcher needs to watch file descriptors, so the message
// loop needs to be a libevent loop.
const base::MessagePumpType kMessageLoopType = base::MessagePumpType::IO;
diff --git a/chromium/patches/patch-device_gamepad_hid__writer__linux.cc b/chromium/patches/patch-device_gamepad_hid__writer__linux.cc
index 95411c5e6c..9b5b5026e4 100644
--- a/chromium/patches/patch-device_gamepad_hid__writer__linux.cc
+++ b/chromium/patches/patch-device_gamepad_hid__writer__linux.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- device/gamepad/hid_writer_linux.cc.orig 2020-07-08 21:40:43.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- device/gamepad/hid_writer_linux.cc.orig 2024-07-24 02:44:38.500962000 +0000
+++ device/gamepad/hid_writer_linux.cc
-@@ -4,6 +4,8 @@
-
- #include "device/gamepad/hid_writer_linux.h"
+@@ -2,6 +2,8 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+#include <unistd.h>
+
- #include "base/posix/eintr_wrapper.h"
+ #include "device/gamepad/hid_writer_linux.h"
- namespace device {
+ #include <unistd.h>
diff --git a/chromium/patches/patch-extensions_browser_api_api__browser__context__keyed__service__factories.cc b/chromium/patches/patch-extensions_browser_api_api__browser__context__keyed__service__factories.cc
new file mode 100644
index 0000000000..fa8b4867c7
--- /dev/null
+++ b/chromium/patches/patch-extensions_browser_api_api__browser__context__keyed__service__factories.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- extensions/browser/api/api_browser_context_keyed_service_factories.cc.orig 2024-07-24 02:44:38.784989600 +0000
++++ extensions/browser/api/api_browser_context_keyed_service_factories.cc
+@@ -102,7 +102,7 @@ void EnsureApiBrowserContextKeyedService
+ #endif
+ MessageService::GetFactoryInstance();
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || \
+- BUILDFLAG(IS_MAC)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ NetworkingPrivateEventRouterFactory::GetInstance();
+ #endif
+ OffscreenDocumentManager::GetFactory();
diff --git a/chromium/patches/patch-extensions_browser_api_declarative__webrequest_webrequest__action.cc b/chromium/patches/patch-extensions_browser_api_declarative__webrequest_webrequest__action.cc
deleted file mode 100644
index e7d3ae4f11..0000000000
--- a/chromium/patches/patch-extensions_browser_api_declarative__webrequest_webrequest__action.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- extensions/browser/api/declarative_webrequest/webrequest_action.cc.orig 2020-07-08 21:40:43.000000000 +0000
-+++ extensions/browser/api/declarative_webrequest/webrequest_action.cc
-@@ -28,7 +28,7 @@
- #include "extensions/common/extension.h"
- #include "net/base/registry_controlled_domains/registry_controlled_domain.h"
- #include "net/http/http_util.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
-
- using extension_web_request_api_helpers::EventResponseDelta;
-
diff --git a/chromium/patches/patch-extensions_browser_api_management_management__api.cc b/chromium/patches/patch-extensions_browser_api_management_management__api.cc
new file mode 100644
index 0000000000..f13988e88b
--- /dev/null
+++ b/chromium/patches/patch-extensions_browser_api_management_management__api.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- extensions/browser/api/management/management_api.cc.orig 2024-07-24 02:44:38.816992500 +0000
++++ extensions/browser/api/management/management_api.cc
+@@ -280,7 +280,7 @@ bool PlatformSupportsApprovalFlowForExte
+ #if BUILDFLAG(IS_CHROMEOS)
+ // ChromeOS devices have this feature already shipped.
+ return true;
+-#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ return base::FeatureList::IsEnabled(
+ supervised_user::kEnableExtensionsPermissionsForSupervisedUsersOnDesktop);
+ #else
diff --git a/chromium/patches/patch-extensions_browser_api_messaging_message__service.cc b/chromium/patches/patch-extensions_browser_api_messaging_message__service.cc
index a33adcb5f5..25019e9da0 100644
--- a/chromium/patches/patch-extensions_browser_api_messaging_message__service.cc
+++ b/chromium/patches/patch-extensions_browser_api_messaging_message__service.cc
@@ -1,31 +1,26 @@
$NetBSD$
---- extensions/browser/api/messaging/message_service.cc.orig 2020-07-08 21:40:43.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- extensions/browser/api/messaging/message_service.cc.orig 2024-07-24 02:44:38.820993000 +0000
+++ extensions/browser/api/messaging/message_service.cc
-@@ -61,7 +61,7 @@ namespace {
-
+@@ -71,7 +71,7 @@ namespace {
const char kReceivingEndDoesntExistError[] =
"Could not establish connection. Receiving end does not exist.";
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
const char kMissingPermissionError[] =
"Access to native messaging requires nativeMessaging permission.";
const char kProhibitedByPoliciesError[] =
-@@ -391,7 +391,7 @@ void MessageService::OpenChannelToNative
- if (!opener_port->IsValidPort())
+@@ -541,7 +541,7 @@ void MessageService::OpenChannelToNative
return;
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
bool has_permission = extension->permissions_data()->HasAPIPermission(
- APIPermission::kNativeMessaging);
+ mojom::APIPermissionID::kNativeMessaging);
if (!has_permission) {
-@@ -441,7 +441,7 @@ void MessageService::OpenChannelToNative
- channel->opener->IncrementLazyKeepaliveCount();
-
- AddChannel(std::move(channel), receiver_port_id);
--#else // !(defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX))
-+#else // !(defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)) || defined(OS_BSD)
- const char kNativeMessagingNotSupportedError[] =
- "Native Messaging is not supported on this platform.";
- opener_port->DispatchOnDisconnect(kNativeMessagingNotSupportedError);
diff --git a/chromium/patches/patch-extensions_browser_api_networking__private_networking__private__delegate__factory.cc b/chromium/patches/patch-extensions_browser_api_networking__private_networking__private__delegate__factory.cc
index 039de0a44a..94e46f2fec 100644
--- a/chromium/patches/patch-extensions_browser_api_networking__private_networking__private__delegate__factory.cc
+++ b/chromium/patches/patch-extensions_browser_api_networking__private_networking__private__delegate__factory.cc
@@ -1,22 +1,26 @@
$NetBSD$
---- extensions/browser/api/networking_private/networking_private_delegate_factory.cc.orig 2020-07-08 21:40:43.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- extensions/browser/api/networking_private/networking_private_delegate_factory.cc.orig 2024-07-24 02:44:38.824993400 +0000
+++ extensions/browser/api/networking_private/networking_private_delegate_factory.cc
-@@ -11,7 +11,7 @@
-
- #if defined(OS_CHROMEOS)
+@@ -14,7 +14,7 @@
#include "extensions/browser/api/networking_private/networking_private_chromeos.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+ #elif BUILDFLAG(IS_CHROMEOS_LACROS)
+ #include "extensions/browser/api/networking_private/networking_private_lacros.h"
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
#include "extensions/browser/api/networking_private/networking_private_linux.h"
- #elif defined(OS_WIN) || defined(OS_MACOSX)
+ #elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
#include "components/wifi/wifi_service.h"
-@@ -61,7 +61,7 @@ KeyedService* NetworkingPrivateDelegateF
- NetworkingPrivateDelegate* delegate;
- #if defined(OS_CHROMEOS)
- delegate = new NetworkingPrivateChromeOS(browser_context);
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- delegate = new NetworkingPrivateLinux();
- #elif defined(OS_WIN) || defined(OS_MACOSX)
+@@ -67,7 +67,7 @@ NetworkingPrivateDelegateFactory::BuildS
+ delegate = std::make_unique<NetworkingPrivateChromeOS>(browser_context);
+ #elif BUILDFLAG(IS_CHROMEOS_LACROS)
+ delegate = std::make_unique<NetworkingPrivateLacros>(browser_context);
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ delegate = std::make_unique<NetworkingPrivateLinux>();
+ #elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
std::unique_ptr<wifi::WiFiService> wifi_service(wifi::WiFiService::Create());
diff --git a/chromium/patches/patch-extensions_browser_api_web__request_form__data__parser.cc b/chromium/patches/patch-extensions_browser_api_web__request_form__data__parser.cc
deleted file mode 100644
index 9561c491ca..0000000000
--- a/chromium/patches/patch-extensions_browser_api_web__request_form__data__parser.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- extensions/browser/api/web_request/form_data_parser.cc.orig 2020-07-08 21:40:43.000000000 +0000
-+++ extensions/browser/api/web_request/form_data_parser.cc
-@@ -16,7 +16,7 @@
- #include "base/values.h"
- #include "net/base/escape.h"
- #include "net/http/http_request_headers.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
-
- using base::DictionaryValue;
- using base::ListValue;
diff --git a/chromium/patches/patch-extensions_browser_browser__context__keyed__service__factories.cc b/chromium/patches/patch-extensions_browser_browser__context__keyed__service__factories.cc
deleted file mode 100644
index f1498a1fd6..0000000000
--- a/chromium/patches/patch-extensions_browser_browser__context__keyed__service__factories.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- extensions/browser/browser_context_keyed_service_factories.cc.orig 2020-07-08 21:40:43.000000000 +0000
-+++ extensions/browser/browser_context_keyed_service_factories.cc
-@@ -92,7 +92,7 @@ void EnsureBrowserContextKeyedServiceFac
- #if defined(OS_CHROMEOS)
- NetworkingConfigServiceFactory::GetInstance();
- #endif
--#if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_BSD)
- NetworkingPrivateEventRouterFactory::GetInstance();
- #endif
- PowerAPI::GetFactoryInstance();
diff --git a/chromium/patches/patch-extensions_common_api___permission__features.json b/chromium/patches/patch-extensions_common_api___permission__features.json
index e0f3452f4c..522004b948 100644
--- a/chromium/patches/patch-extensions_common_api___permission__features.json
+++ b/chromium/patches/patch-extensions_common_api___permission__features.json
@@ -1,31 +1,35 @@
$NetBSD$
---- extensions/common/api/_permission_features.json.orig 2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- extensions/common/api/_permission_features.json.orig 2024-07-24 02:44:38.905001200 +0000
+++ extensions/common/api/_permission_features.json
-@@ -135,7 +135,7 @@
+@@ -138,7 +138,7 @@
{
"channel": "stable",
"extension_types": ["platform_app"],
-- "platforms": ["chromeos", "win", "mac", "linux"],
-+ "platforms": ["chromeos", "win", "mac", "linux", "netbsd"],
- "whitelist": [
+- "platforms": ["chromeos", "lacros", "win", "mac", "linux"],
++ "platforms": ["chromeos", "lacros", "win", "mac", "linux", "openbsd", "freebsd", "netbsd"],
+ "allowlist": [
"1C93BD3CF875F4A73C0B2A163BB8FBDA8B8B3D80", // http://crbug.com/387169
"A3BC37E2148AC4E99BE4B16AF9D42DD1E592BBBE", // http://crbug.com/387169
-@@ -478,7 +478,7 @@
+@@ -432,7 +432,7 @@
}, {
"channel": "stable",
"extension_types": ["extension", "legacy_packaged_app", "platform_app"],
-- "platforms": ["chromeos", "mac", "win", "linux"],
-+ "platforms": ["chromeos", "mac", "win", "linux", "netbsd"],
- "whitelist": [
+- "platforms": ["chromeos", "mac", "win", "linux", "fuchsia"],
++ "platforms": ["chromeos", "mac", "win", "linux", "fuchsia", "openbsd", "freebsd", "netbsd"],
+ "allowlist": [
"0DE0F05680A4A056BCEC864ED8DDA84296F82B40", // http://crbug.com/434651
"1C93BD3CF875F4A73C0B2A163BB8FBDA8B8B3D80", // http://crbug.com/293683
-@@ -509,7 +509,7 @@
+@@ -476,7 +476,7 @@
"networkingPrivate": {
"channel": "stable",
"extension_types": ["extension", "legacy_packaged_app", "platform_app"],
-- "platforms": ["chromeos", "mac", "win", "linux"],
-+ "platforms": ["chromeos", "mac", "win", "linux", "netbsd"],
- "whitelist": [
+- "platforms": ["chromeos", "lacros", "mac", "win", "linux", "fuchsia"],
++ "platforms": ["chromeos", "lacros", "mac", "win", "linux", "fuchsia", "openbsd", "freebsd", "netbsd"],
+ "allowlist": [
// DO NOT ADD ANY MORE ENTRIES HERE.
// networkingPrivate is being migrated to networking.onc.
diff --git a/chromium/patches/patch-extensions_common_api_runtime.json b/chromium/patches/patch-extensions_common_api_runtime.json
index ec58e182bd..4009f7cbe4 100644
--- a/chromium/patches/patch-extensions_common_api_runtime.json
+++ b/chromium/patches/patch-extensions_common_api_runtime.json
@@ -1,13 +1,17 @@
$NetBSD$
---- extensions/common/api/runtime.json.orig 2020-07-08 21:40:43.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- extensions/common/api/runtime.json.orig 2024-07-24 02:44:38.913002000 +0000
+++ extensions/common/api/runtime.json
-@@ -68,7 +68,7 @@
- "id": "PlatformOs",
- "type": "string",
- "description": "The operating system chrome is running on.",
-- "enum": ["mac", "win", "android", "cros", "linux", "openbsd"]
-+ "enum": ["mac", "win", "android", "cros", "linux", "openbsd", "freebsd", "netbsd"]
+@@ -86,6 +86,8 @@
+ {"name": "cros", "description": "Specifies the Chrome operating system."},
+ {"name": "linux", "description": "Specifies the Linux operating system."},
+ {"name": "openbsd", "description": "Specifies the OpenBSD operating system."},
++ {"name": "freebsd", "description": "Specifies the FreeBSD operating system."},
++ {"name": "netbsd", "description": "Specifies the NetBSD operating system."},
+ {"name": "fuchsia", "description": "Specifies the Fuchsia operating system."}
+ ]
},
- {
- "id": "PlatformArch",
diff --git a/chromium/patches/patch-extensions_common_command.cc b/chromium/patches/patch-extensions_common_command.cc
new file mode 100644
index 0000000000..82d28b7703
--- /dev/null
+++ b/chromium/patches/patch-extensions_common_command.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- extensions/common/command.cc.orig 2024-07-24 02:44:38.917002200 +0000
++++ extensions/common/command.cc
+@@ -283,7 +283,7 @@ std::string Command::CommandPlatform() {
+ return values::kKeybindingPlatformMac;
+ #elif BUILDFLAG(IS_CHROMEOS)
+ return values::kKeybindingPlatformChromeOs;
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return values::kKeybindingPlatformLinux;
+ #elif BUILDFLAG(IS_FUCHSIA)
+ // TODO(crbug.com/40220501): Change this once we decide what string should be
diff --git a/chromium/patches/patch-extensions_common_feature__switch.cc b/chromium/patches/patch-extensions_common_feature__switch.cc
deleted file mode 100644
index 861f34920d..0000000000
--- a/chromium/patches/patch-extensions_common_feature__switch.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- extensions/common/feature_switch.cc.orig 2020-07-08 21:40:43.000000000 +0000
-+++ extensions/common/feature_switch.cc
-@@ -39,7 +39,7 @@ class CommonSwitches {
- FeatureSwitch::DEFAULT_ENABLED),
- load_media_router_component_extension(
- kLoadMediaRouterComponentExtensionFlag,
--#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
-+#if BUILDFLAG(GOOGLE_CHROME_BRANDING) || defined(OS_BSD)
- FeatureSwitch::DEFAULT_ENABLED)
- #else
- FeatureSwitch::DEFAULT_DISABLED)
diff --git a/chromium/patches/patch-extensions_common_features_feature.cc b/chromium/patches/patch-extensions_common_features_feature.cc
index f7d940b7d5..0a174c825d 100644
--- a/chromium/patches/patch-extensions_common_features_feature.cc
+++ b/chromium/patches/patch-extensions_common_features_feature.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- extensions/common/features/feature.cc.orig 2020-07-08 21:40:43.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- extensions/common/features/feature.cc.orig 2024-07-24 02:44:38.925003000 +0000
+++ extensions/common/features/feature.cc
-@@ -20,7 +20,7 @@ namespace extensions {
- Feature::Platform Feature::GetCurrentPlatform() {
- #if defined(OS_CHROMEOS)
- return CHROMEOS_PLATFORM;
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- return LINUX_PLATFORM;
- #elif defined(OS_MACOSX)
- return MACOSX_PLATFORM;
+@@ -34,6 +34,8 @@ Feature::Platform Feature::GetCurrentPla
+ return WIN_PLATFORM;
+ #elif BUILDFLAG(IS_FUCHSIA)
+ return FUCHSIA_PLATFORM;
++#elif BUILDFLAG(IS_BSD)
++ return LINUX_PLATFORM;
+ #else
+ return UNSPECIFIED_PLATFORM;
+ #endif
diff --git a/chromium/patches/patch-extensions_common_image__util.cc b/chromium/patches/patch-extensions_common_image__util.cc
deleted file mode 100644
index 0a844ed824..0000000000
--- a/chromium/patches/patch-extensions_common_image__util.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- extensions/common/image_util.cc.orig 2020-07-08 21:40:43.000000000 +0000
-+++ extensions/common/image_util.cc
-@@ -20,7 +20,7 @@
- #include "base/strings/stringprintf.h"
- #include "base/time/time.h"
- #include "base/timer/elapsed_timer.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
- #include "third_party/skia/include/core/SkBitmap.h"
- #include "third_party/skia/include/core/SkCanvas.h"
- #include "third_party/skia/include/core/SkColor.h"
diff --git a/chromium/patches/patch-extensions_common_stack__frame.cc b/chromium/patches/patch-extensions_common_stack__frame.cc
deleted file mode 100644
index 29fa0494e6..0000000000
--- a/chromium/patches/patch-extensions_common_stack__frame.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- extensions/common/stack_frame.cc.orig 2020-07-08 21:40:43.000000000 +0000
-+++ extensions/common/stack_frame.cc
-@@ -7,7 +7,7 @@
- #include <string>
-
- #include "base/strings/utf_string_conversions.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
-
- namespace extensions {
-
diff --git a/chromium/patches/patch-extensions_renderer_bindings_api__binding__util.cc b/chromium/patches/patch-extensions_renderer_bindings_api__binding__util.cc
index b99b7671b3..8f891874c0 100644
--- a/chromium/patches/patch-extensions_renderer_bindings_api__binding__util.cc
+++ b/chromium/patches/patch-extensions_renderer_bindings_api__binding__util.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- extensions/renderer/bindings/api_binding_util.cc.orig 2020-07-08 21:40:43.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- extensions/renderer/bindings/api_binding_util.cc.orig 2024-07-24 02:44:38.957006200 +0000
+++ extensions/renderer/bindings/api_binding_util.cc
-@@ -130,6 +130,8 @@ std::string GetPlatformString() {
+@@ -132,7 +132,7 @@ std::string GetPlatformString() {
+ return "lacros";
+ #elif BUILDFLAG(IS_CHROMEOS_ASH) && !BUILDFLAG(IS_CHROMEOS_LACROS)
+ return "chromeos";
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return "linux";
+ #elif BUILDFLAG(IS_MAC)
return "mac";
- #elif defined(OS_WIN)
- return "win";
-+#elif defined(OS_NETBSD)
-+ return "netbsd";
- #else
- NOTREACHED();
- return std::string();
diff --git a/chromium/patches/patch-extensions_renderer_bindings_argument__spec.cc b/chromium/patches/patch-extensions_renderer_bindings_argument__spec.cc
new file mode 100644
index 0000000000..f25fa8191b
--- /dev/null
+++ b/chromium/patches/patch-extensions_renderer_bindings_argument__spec.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- extensions/renderer/bindings/argument_spec.cc.orig 2024-07-24 02:44:38.961006600 +0000
++++ extensions/renderer/bindings/argument_spec.cc
+@@ -18,6 +18,8 @@
+ #include "gin/data_object_builder.h"
+ #include "gin/dictionary.h"
+
++#include <cmath>
++
+ namespace extensions {
+
+ namespace {
diff --git a/chromium/patches/patch-extensions_shell_BUILD.gn b/chromium/patches/patch-extensions_shell_BUILD.gn
deleted file mode 100644
index 1e94b02de9..0000000000
--- a/chromium/patches/patch-extensions_shell_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- extensions/shell/BUILD.gn.orig 2020-07-08 21:40:43.000000000 +0000
-+++ extensions/shell/BUILD.gn
-@@ -12,7 +12,7 @@ import("//testing/test.gni")
- import("//tools/grit/grit_rule.gni")
- import("//tools/v8_context_snapshot/v8_context_snapshot.gni")
-
--if (is_linux) {
-+if (is_linux || is_bsd) {
- import("//build/linux/extract_symbols.gni")
- }
-
-@@ -195,7 +195,7 @@ source_set("app_shell_lib") {
- }
- }
-
-- if (is_desktop_linux) {
-+ if (is_desktop_linux && !is_bsd) {
- sources += [
- "app/shell_crash_reporter_client.cc",
- "app/shell_crash_reporter_client.h",
diff --git a/chromium/patches/patch-extensions_shell_app_shell__main__delegate.cc b/chromium/patches/patch-extensions_shell_app_shell__main__delegate.cc
index c68dc020fe..221520cc54 100644
--- a/chromium/patches/patch-extensions_shell_app_shell__main__delegate.cc
+++ b/chromium/patches/patch-extensions_shell_app_shell__main__delegate.cc
@@ -1,22 +1,26 @@
$NetBSD$
---- extensions/shell/app/shell_main_delegate.cc.orig 2020-07-08 21:40:43.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- extensions/shell/app/shell_main_delegate.cc.orig 2024-07-24 02:44:38.989009100 +0000
+++ extensions/shell/app/shell_main_delegate.cc
-@@ -38,7 +38,7 @@
-
- #if defined(OS_WIN)
+@@ -43,7 +43,7 @@
+ #if BUILDFLAG(IS_WIN)
#include "base/base_paths_win.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+ #include "base/process/process_info.h"
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "base/nix/xdg_util.h"
- #elif defined(OS_MACOSX)
+ #elif BUILDFLAG(IS_MAC)
#include "base/base_paths_mac.h"
-@@ -70,7 +70,7 @@ base::FilePath GetDataPath() {
- return cmd_line->GetSwitchValuePath(switches::kContentShellDataPath);
+@@ -63,7 +63,7 @@ base::FilePath GetDataPath() {
+ }
base::FilePath data_dir;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
std::unique_ptr<base::Environment> env(base::Environment::Create());
data_dir = base::nix::GetXDGDirectory(
env.get(), base::nix::kXdgConfigHomeEnvVar, base::nix::kDotConfigDir);
diff --git a/chromium/patches/patch-extensions_shell_browser_api_runtime_shell__runtime__api__delegate.cc b/chromium/patches/patch-extensions_shell_browser_api_runtime_shell__runtime__api__delegate.cc
index 952ef08eef..2a329f6c86 100644
--- a/chromium/patches/patch-extensions_shell_browser_api_runtime_shell__runtime__api__delegate.cc
+++ b/chromium/patches/patch-extensions_shell_browser_api_runtime_shell__runtime__api__delegate.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- extensions/shell/browser/api/runtime/shell_runtime_api_delegate.cc.orig 2020-07-08 21:40:43.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- extensions/shell/browser/api/runtime/shell_runtime_api_delegate.cc.orig 2024-07-24 02:44:38.989009100 +0000
+++ extensions/shell/browser/api/runtime/shell_runtime_api_delegate.cc
-@@ -45,7 +45,7 @@ void ShellRuntimeAPIDelegate::OpenURL(co
+@@ -44,7 +44,7 @@ void ShellRuntimeAPIDelegate::OpenURL(co
bool ShellRuntimeAPIDelegate::GetPlatformInfo(PlatformInfo* info) {
- #if defined(OS_CHROMEOS)
- info->os = api::runtime::PLATFORM_OS_CROS;
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- info->os = api::runtime::PLATFORM_OS_LINUX;
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
+ info->os = api::runtime::PlatformOs::kCros;
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ info->os = api::runtime::PlatformOs::kLinux;
#endif
return true;
diff --git a/chromium/patches/patch-extensions_shell_browser_shell__browser__main__parts.cc b/chromium/patches/patch-extensions_shell_browser_shell__browser__main__parts.cc
new file mode 100644
index 0000000000..4e67bcc2cb
--- /dev/null
+++ b/chromium/patches/patch-extensions_shell_browser_shell__browser__main__parts.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- extensions/shell/browser/shell_browser_main_parts.cc.orig 2024-07-24 02:44:38.989009100 +0000
++++ extensions/shell/browser/shell_browser_main_parts.cc
+@@ -150,7 +150,7 @@ void ShellBrowserMainParts::PostCreateMa
+ switches::kAppShellAllowRoaming)) {
+ network_controller_->SetCellularAllowRoaming(true);
+ }
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ // app_shell doesn't need GTK, so the fake input method context can work.
+ // See crbug.com/381852 and revision fb69f142.
+ // TODO(michaelpg): Verify this works for target environments.
diff --git a/chromium/patches/patch-extensions_shell_browser_shell__extensions__api__client.cc b/chromium/patches/patch-extensions_shell_browser_shell__extensions__api__client.cc
index 5f2f9bf2a9..25a671ce87 100644
--- a/chromium/patches/patch-extensions_shell_browser_shell__extensions__api__client.cc
+++ b/chromium/patches/patch-extensions_shell_browser_shell__extensions__api__client.cc
@@ -1,22 +1,17 @@
$NetBSD$
---- extensions/shell/browser/shell_extensions_api_client.cc.orig 2020-07-08 21:40:43.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- extensions/shell/browser/shell_extensions_api_client.cc.orig 2024-07-24 02:44:38.993009600 +0000
+++ extensions/shell/browser/shell_extensions_api_client.cc
-@@ -16,7 +16,7 @@
- #include "extensions/shell/browser/shell_virtual_keyboard_delegate.h"
- #include "extensions/shell/browser/shell_web_view_guest_delegate.h"
-
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- #include "extensions/shell/browser/api/file_system/shell_file_system_delegate.h"
- #endif
-
-@@ -52,7 +52,7 @@ ShellExtensionsAPIClient::CreateDisplayI
- return std::make_unique<ShellDisplayInfoProvider>();
- }
+@@ -58,7 +58,7 @@ ShellExtensionsAPIClient::CreateDisplayI
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
FileSystemDelegate* ShellExtensionsAPIClient::GetFileSystemDelegate() {
if (!file_system_delegate_)
file_system_delegate_ = std::make_unique<ShellFileSystemDelegate>();
diff --git a/chromium/patches/patch-extensions_shell_browser_shell__extensions__api__client.h b/chromium/patches/patch-extensions_shell_browser_shell__extensions__api__client.h
index f06deebf68..5d0050226b 100644
--- a/chromium/patches/patch-extensions_shell_browser_shell__extensions__api__client.h
+++ b/chromium/patches/patch-extensions_shell_browser_shell__extensions__api__client.h
@@ -1,21 +1,26 @@
$NetBSD$
---- extensions/shell/browser/shell_extensions_api_client.h.orig 2020-07-08 21:40:43.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- extensions/shell/browser/shell_extensions_api_client.h.orig 2024-07-24 02:44:38.993009600 +0000
+++ extensions/shell/browser/shell_extensions_api_client.h
-@@ -32,14 +32,14 @@ class ShellExtensionsAPIClient : public
- content::BrowserContext* browser_context) const override;
- std::unique_ptr<DisplayInfoProvider> CreateDisplayInfoProvider()
+@@ -36,7 +36,7 @@ class ShellExtensionsAPIClient : public
const override;
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
FileSystemDelegate* GetFileSystemDelegate() override;
#endif
MessagingDelegate* GetMessagingDelegate() override;
- FeedbackPrivateDelegate* GetFeedbackPrivateDelegate() override;
-
+@@ -45,7 +45,7 @@ class ShellExtensionsAPIClient : public
private:
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
std::unique_ptr<FileSystemDelegate> file_system_delegate_;
#endif
std::unique_ptr<MessagingDelegate> messaging_delegate_;
diff --git a/chromium/patches/patch-google__apis_gcm_engine_heartbeat__manager.cc b/chromium/patches/patch-google__apis_gcm_engine_heartbeat__manager.cc
index 5686ca44c2..42f48140db 100644
--- a/chromium/patches/patch-google__apis_gcm_engine_heartbeat__manager.cc
+++ b/chromium/patches/patch-google__apis_gcm_engine_heartbeat__manager.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- google_apis/gcm/engine/heartbeat_manager.cc.orig 2020-07-08 21:40:44.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- google_apis/gcm/engine/heartbeat_manager.cc.orig 2024-07-24 02:44:39.101020000 +0000
+++ google_apis/gcm/engine/heartbeat_manager.cc
-@@ -31,7 +31,7 @@ const int kMinClientHeartbeatIntervalMs
+@@ -32,7 +32,7 @@ const int kMinClientHeartbeatIntervalMs
// Minimum time spent sleeping before we force a new heartbeat.
const int kMinSuspendTimeMs = 1000 * 10; // 10 seconds.
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
// The period at which to check if the heartbeat time has passed. Used to
// protect against platforms where the timer is delayed by the system being
// suspended. Only needed on linux because the other OSes provide a standard
@@ -15,17 +19,17 @@ $NetBSD$
base::BindRepeating(&HeartbeatManager::OnHeartbeatTriggered,
weak_ptr_factory_.GetWeakPtr()));
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
// Windows, Mac, Android, iOS, and Chrome OS all provide a way to be notified
// when the system is suspending or resuming. The only one that does not is
// Linux so we need to poll to check for missed heartbeats.
-@@ -216,7 +216,7 @@ void HeartbeatManager::CheckForMissedHea
+@@ -214,7 +214,7 @@ void HeartbeatManager::CheckForMissedHea
return;
}
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
// Otherwise check again later.
io_task_runner_->PostDelayedTask(
FROM_HERE,
diff --git a/chromium/patches/patch-gpu_BUILD.gn b/chromium/patches/patch-gpu_BUILD.gn
deleted file mode 100644
index 865f7449bd..0000000000
--- a/chromium/patches/patch-gpu_BUILD.gn
+++ /dev/null
@@ -1,47 +0,0 @@
-$NetBSD$
-
---- gpu/BUILD.gn.orig 2020-07-15 18:56:47.000000000 +0000
-+++ gpu/BUILD.gn
-@@ -157,7 +157,7 @@ if (!use_static_angle) {
- libs += [ "android" ]
- deps += [ "//ui/android:ui_java" ]
- }
-- if (is_linux && !is_component_build) {
-+ if ((is_linux || is_bsd) && !is_component_build) {
- configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
- }
- }
-@@ -583,7 +583,7 @@ test("gpu_unittests") {
- ]
- }
-
-- if (is_linux || use_ozone) {
-+ if (is_linux || use_ozone || is_bsd) {
- sources += [
- "ipc/common/gpu_memory_buffer_impl_native_pixmap_unittest.cc",
- "ipc/service/gpu_memory_buffer_factory_native_pixmap_unittest.cc",
-@@ -603,13 +603,13 @@ test("gpu_unittests") {
- ]
- }
-
-- if (is_linux || is_android || is_chromeos) {
-+ if (is_linux || is_android || is_chromeos || is_bsd) {
- sources += [ "command_buffer/service/gpu_fence_manager_unittest.cc" ]
- }
-
- # TODO(geofflang): Run passthrough command decoder unittests on more platforms
- # once initialization of ANGLE's NULL context is supported
-- if ((is_win || (is_linux && !use_ozone)) && !is_asan) {
-+ if ((is_win || ((is_linux || is_bsd) && !use_ozone)) && !is_asan) {
- sources += [
- "command_buffer/service/gles2_cmd_decoder_passthrough_unittest_buffers.cc",
- "command_buffer/service/gles2_cmd_decoder_passthrough_unittest_commands.cc",
-@@ -761,7 +761,7 @@ fuzzer_test("gpu_fuzzer") {
- libfuzzer_options = [ "max_len=16384" ]
- }
-
--if (is_linux) {
-+if (is_linux || is_bsd) {
- fuzzer_test("gpu_angle_fuzzer") {
- sources = [ "command_buffer/tests/fuzzer_main.cc" ]
-
diff --git a/chromium/patches/patch-gpu_command__buffer_common_gpu__memory__buffer__support.cc b/chromium/patches/patch-gpu_command__buffer_common_gpu__memory__buffer__support.cc
index ca2d9500fa..1c1dc576b9 100644
--- a/chromium/patches/patch-gpu_command__buffer_common_gpu__memory__buffer__support.cc
+++ b/chromium/patches/patch-gpu_command__buffer_common_gpu__memory__buffer__support.cc
@@ -1,22 +1,26 @@
$NetBSD$
---- gpu/command_buffer/common/gpu_memory_buffer_support.cc.orig 2020-07-08 21:40:44.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- gpu/command_buffer/common/gpu_memory_buffer_support.cc.orig 2024-07-24 02:44:39.145024300 +0000
+++ gpu/command_buffer/common/gpu_memory_buffer_support.cc
-@@ -55,7 +55,7 @@ bool IsImageSizeValidForGpuMemoryBufferF
- uint32_t GetPlatformSpecificTextureTarget() {
- #if defined(OS_MACOSX)
+@@ -182,7 +182,7 @@ uint32_t GetPlatformSpecificTextureTarge
+ #if BUILDFLAG(IS_MAC)
return macos_specific_texture_target;
--#elif defined(OS_ANDROID) || defined(OS_LINUX)
-+#elif defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD)
+ #elif BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
return GL_TEXTURE_EXTERNAL_OES;
- #elif defined(OS_WIN) || defined(OS_FUCHSIA)
+ #elif BUILDFLAG(IS_IOS)
return GL_TEXTURE_2D;
-@@ -85,7 +85,7 @@ GPU_EXPORT uint32_t GetBufferTextureTarg
-
- GPU_EXPORT bool NativeBufferNeedsPlatformSpecificTextureTarget(
- gfx::BufferFormat format) {
--#if defined(USE_OZONE) || defined(OS_LINUX)
-+#if defined(USE_OZONE) || defined(OS_LINUX) || defined(OS_BSD)
+@@ -209,7 +209,7 @@ GPU_EXPORT bool NativeBufferNeedsPlatfor
+ gfx::BufferFormat format,
+ gfx::BufferPlane plane) {
+ #if BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
// Always use GL_TEXTURE_2D as the target for RGB textures.
// https://crbug.com/916728
if (format == gfx::BufferFormat::R_8 || format == gfx::BufferFormat::RG_88 ||
diff --git a/chromium/patches/patch-gpu_command__buffer_service_BUILD.gn b/chromium/patches/patch-gpu_command__buffer_service_BUILD.gn
deleted file mode 100644
index 80dc5afbe7..0000000000
--- a/chromium/patches/patch-gpu_command__buffer_service_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- gpu/command_buffer/service/BUILD.gn.orig 2020-07-15 18:56:47.000000000 +0000
-+++ gpu/command_buffer/service/BUILD.gn
-@@ -331,7 +331,7 @@ target(link_target_type, "gles2_sources"
- "//gpu/vulkan",
- ]
-
-- if (is_linux || is_fuchsia || is_android || is_win) {
-+ if (is_linux || is_fuchsia || is_android || is_win || is_bsd) {
- sources += [
- "external_vk_image_backing.cc",
- "external_vk_image_backing.h",
-@@ -355,7 +355,7 @@ target(link_target_type, "gles2_sources"
- ]
- }
-
-- if (is_linux && use_dawn) {
-+ if ((is_linux || is_bsd) && use_dawn) {
- sources += [
- "external_vk_image_dawn_representation.cc",
- "external_vk_image_dawn_representation.h",
diff --git a/chromium/patches/patch-gpu_command__buffer_service_dawn__context__provider.cc b/chromium/patches/patch-gpu_command__buffer_service_dawn__context__provider.cc
new file mode 100644
index 0000000000..5eb542b3cc
--- /dev/null
+++ b/chromium/patches/patch-gpu_command__buffer_service_dawn__context__provider.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- gpu/command_buffer/service/dawn_context_provider.cc.orig 2024-07-24 02:44:39.157025600 +0000
++++ gpu/command_buffer/service/dawn_context_provider.cc
+@@ -163,7 +163,7 @@ wgpu::BackendType DawnContextProvider::G
+ return base::FeatureList::IsEnabled(features::kSkiaGraphiteDawnUseD3D12)
+ ? wgpu::BackendType::D3D12
+ : wgpu::BackendType::D3D11;
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ return wgpu::BackendType::Vulkan;
+ #elif BUILDFLAG(IS_APPLE)
+ return wgpu::BackendType::Metal;
diff --git a/chromium/patches/patch-gpu_command__buffer_service_external__vk__image__backing.cc b/chromium/patches/patch-gpu_command__buffer_service_external__vk__image__backing.cc
deleted file mode 100644
index 4ced76b74b..0000000000
--- a/chromium/patches/patch-gpu_command__buffer_service_external__vk__image__backing.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- gpu/command_buffer/service/external_vk_image_backing.cc.orig 2020-07-08 21:41:48.000000000 +0000
-+++ gpu/command_buffer/service/external_vk_image_backing.cc
-@@ -28,7 +28,7 @@
- #include "ui/gl/gl_version_info.h"
- #include "ui/gl/scoped_binders.h"
-
--#if defined(OS_LINUX) && BUILDFLAG(USE_DAWN)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && BUILDFLAG(USE_DAWN)
- #include "gpu/command_buffer/service/external_vk_image_dawn_representation.h"
- #endif
-
-@@ -475,7 +475,7 @@ std::unique_ptr<SharedImageRepresentatio
- ExternalVkImageBacking::ProduceDawn(SharedImageManager* manager,
- MemoryTypeTracker* tracker,
- WGPUDevice wgpuDevice) {
--#if defined(OS_LINUX) && BUILDFLAG(USE_DAWN)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && BUILDFLAG(USE_DAWN)
- auto wgpu_format = viz::ToWGPUFormat(format());
-
- if (wgpu_format == WGPUTextureFormat_Undefined) {
-@@ -507,7 +507,7 @@ GLuint ExternalVkImageBacking::ProduceGL
- gl::GLApi* api = gl::g_current_gl_context;
- base::Optional<ScopedDedicatedMemoryObject> memory_object;
- if (!use_separate_gl_texture()) {
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
- auto memory_fd = image_->GetMemoryFd();
- if (!memory_fd.is_valid())
- return 0;
diff --git a/chromium/patches/patch-gpu_command__buffer_service_external__vk__image__backing.h b/chromium/patches/patch-gpu_command__buffer_service_external__vk__image__backing.h
deleted file mode 100644
index d784232d05..0000000000
--- a/chromium/patches/patch-gpu_command__buffer_service_external__vk__image__backing.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- gpu/command_buffer/service/external_vk_image_backing.h.orig 2020-07-08 21:41:48.000000000 +0000
-+++ gpu/command_buffer/service/external_vk_image_backing.h
-@@ -154,7 +154,7 @@ class ExternalVkImageBacking final : pub
-
- private:
-
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
- // Extract file descriptor from image
- int GetMemoryFd(const GrVkImageInfo& image_info);
- #endif
diff --git a/chromium/patches/patch-gpu_command__buffer_service_external__vk__image__gl__representation.cc b/chromium/patches/patch-gpu_command__buffer_service_external__vk__image__gl__representation.cc
deleted file mode 100644
index 469042db09..0000000000
--- a/chromium/patches/patch-gpu_command__buffer_service_external__vk__image__gl__representation.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- gpu/command_buffer/service/external_vk_image_gl_representation.cc.orig 2020-07-08 21:41:48.000000000 +0000
-+++ gpu/command_buffer/service/external_vk_image_gl_representation.cc
-@@ -179,7 +179,7 @@ GLuint ExternalVkImageGLRepresentationSh
- SemaphoreHandle handle) {
- if (!handle.is_valid())
- return 0;
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
- if (handle.vk_handle_type() !=
- VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT) {
- DLOG(ERROR) << "Importing semaphore handle of unexpected type:"
diff --git a/chromium/patches/patch-gpu_command__buffer_service_gles2__cmd__decoder.cc b/chromium/patches/patch-gpu_command__buffer_service_gles2__cmd__decoder.cc
new file mode 100644
index 0000000000..1ab4befed9
--- /dev/null
+++ b/chromium/patches/patch-gpu_command__buffer_service_gles2__cmd__decoder.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- gpu/command_buffer/service/gles2_cmd_decoder.cc.orig 2024-07-24 02:44:39.169026600 +0000
++++ gpu/command_buffer/service/gles2_cmd_decoder.cc
+@@ -2955,7 +2955,7 @@ GLES2Decoder* GLES2Decoder::Create(
+ }
+
+ // Allow linux to run fuzzers.
+-#if BUILDFLAG(ENABLE_VALIDATING_COMMAND_DECODER) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(ENABLE_VALIDATING_COMMAND_DECODER) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return new GLES2DecoderImpl(client, command_buffer_service, outputter, group);
+ #else
+ LOG(FATAL) << "Validating command decoder is not supported.";
diff --git a/chromium/patches/patch-gpu_command__buffer_service_program__manager.cc b/chromium/patches/patch-gpu_command__buffer_service_program__manager.cc
deleted file mode 100644
index ecfc312f49..0000000000
--- a/chromium/patches/patch-gpu_command__buffer_service_program__manager.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- gpu/command_buffer/service/program_manager.cc.orig 2020-07-08 21:40:44.000000000 +0000
-+++ gpu/command_buffer/service/program_manager.cc
-@@ -30,7 +30,7 @@
- #include "gpu/command_buffer/service/program_cache.h"
- #include "gpu/command_buffer/service/shader_manager.h"
- #include "gpu/config/gpu_preferences.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
- #include "ui/gl/gl_version_info.h"
- #include "ui/gl/progress_reporter.h"
-
diff --git a/chromium/patches/patch-gpu_command__buffer_service_shared__image_angle__vulkan__image__backing__factory.cc b/chromium/patches/patch-gpu_command__buffer_service_shared__image_angle__vulkan__image__backing__factory.cc
new file mode 100644
index 0000000000..ebcd4152e2
--- /dev/null
+++ b/chromium/patches/patch-gpu_command__buffer_service_shared__image_angle__vulkan__image__backing__factory.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- gpu/command_buffer/service/shared_image/angle_vulkan_image_backing_factory.cc.orig 2024-07-24 02:44:39.201029800 +0000
++++ gpu/command_buffer/service/shared_image/angle_vulkan_image_backing_factory.cc
+@@ -21,7 +21,7 @@ namespace {
+ // TODO(penghuang): verify the scanout is the right usage for video playback.
+ // crbug.com/1280798
+ constexpr uint32_t kSupportedUsage =
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ SHARED_IMAGE_USAGE_SCANOUT |
+ #endif
+ SHARED_IMAGE_USAGE_GLES2_READ | SHARED_IMAGE_USAGE_GLES2_WRITE |
diff --git a/chromium/patches/patch-gpu_command__buffer_service_shared__image_external__vk__image__backing.cc b/chromium/patches/patch-gpu_command__buffer_service_shared__image_external__vk__image__backing.cc
new file mode 100644
index 0000000000..726d999a5f
--- /dev/null
+++ b/chromium/patches/patch-gpu_command__buffer_service_shared__image_external__vk__image__backing.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- gpu/command_buffer/service/shared_image/external_vk_image_backing.cc.orig 2024-07-24 02:44:39.209030600 +0000
++++ gpu/command_buffer/service/shared_image/external_vk_image_backing.cc
+@@ -51,7 +51,7 @@
+ #include "ui/gl/gl_version_info.h"
+ #include "ui/gl/scoped_binders.h"
+
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(USE_DAWN)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(USE_DAWN)
+ #include "gpu/command_buffer/service/shared_image/external_vk_image_dawn_representation.h"
+ #if BUILDFLAG(DAWN_ENABLE_BACKEND_OPENGLES)
+ #include "gpu/command_buffer/service/shared_image/dawn_gl_texture_representation.h"
+@@ -696,7 +696,7 @@ std::unique_ptr<DawnImageRepresentation>
+ wgpu::BackendType backend_type,
+ std::vector<wgpu::TextureFormat> view_formats,
+ scoped_refptr<SharedContextState> context_state) {
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(USE_DAWN)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(USE_DAWN)
+ auto wgpu_format = ToDawnFormat(format());
+
+ if (wgpu_format == wgpu::TextureFormat::Undefined) {
diff --git a/chromium/patches/patch-gpu_command__buffer_service_shared__image_external__vk__image__backing__factory.cc b/chromium/patches/patch-gpu_command__buffer_service_shared__image_external__vk__image__backing__factory.cc
new file mode 100644
index 0000000000..36fa26814e
--- /dev/null
+++ b/chromium/patches/patch-gpu_command__buffer_service_shared__image_external__vk__image__backing__factory.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- gpu/command_buffer/service/shared_image/external_vk_image_backing_factory.cc.orig 2024-07-24 02:44:39.209030600 +0000
++++ gpu/command_buffer/service/shared_image/external_vk_image_backing_factory.cc
+@@ -147,7 +147,7 @@ bool IsFormatSupported(viz::SharedImageF
+ } // namespace
+
+ constexpr uint32_t kSupportedUsage =
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(USE_DAWN)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(USE_DAWN)
+ SHARED_IMAGE_USAGE_WEBGPU_READ | SHARED_IMAGE_USAGE_WEBGPU_WRITE |
+ SHARED_IMAGE_USAGE_WEBGPU_SWAP_CHAIN_TEXTURE |
+ SHARED_IMAGE_USAGE_WEBGPU_STORAGE_TEXTURE |
diff --git a/chromium/patches/patch-gpu_command__buffer_service_shared__image_shared__image__factory.cc b/chromium/patches/patch-gpu_command__buffer_service_shared__image_shared__image__factory.cc
new file mode 100644
index 0000000000..140afc29fb
--- /dev/null
+++ b/chromium/patches/patch-gpu_command__buffer_service_shared__image_shared__image__factory.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- gpu/command_buffer/service/shared_image/shared_image_factory.cc.orig 2024-07-24 02:44:39.213031000 +0000
++++ gpu/command_buffer/service/shared_image/shared_image_factory.cc
+@@ -160,7 +160,7 @@ gfx::GpuMemoryBufferType GetNativeBuffer
+ return gfx::GpuMemoryBufferType::IO_SURFACE_BUFFER;
+ #elif BUILDFLAG(IS_ANDROID)
+ return gfx::GpuMemoryBufferType::ANDROID_HARDWARE_BUFFER;
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ return gfx::GpuMemoryBufferType::NATIVE_PIXMAP;
+ #elif BUILDFLAG(IS_WIN)
+ return gfx::GpuMemoryBufferType::DXGI_SHARED_HANDLE;
diff --git a/chromium/patches/patch-gpu_command__buffer_service_shared__image_shared__image__manager.cc b/chromium/patches/patch-gpu_command__buffer_service_shared__image_shared__image__manager.cc
new file mode 100644
index 0000000000..4db4103c43
--- /dev/null
+++ b/chromium/patches/patch-gpu_command__buffer_service_shared__image_shared__image__manager.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- gpu/command_buffer/service/shared_image/shared_image_manager.cc.orig 2024-07-24 02:44:39.217031200 +0000
++++ gpu/command_buffer/service/shared_image/shared_image_manager.cc
+@@ -571,7 +571,7 @@ bool SharedImageManager::SupportsScanout
+ return true;
+ #elif BUILDFLAG(IS_ANDROID)
+ return base::AndroidHardwareBufferCompat::IsSupportAvailable();
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ return ui::OzonePlatform::GetInstance()
+ ->GetPlatformRuntimeProperties()
+ .supports_native_pixmaps;
diff --git a/chromium/patches/patch-gpu_command__buffer_service_shared__image_wrapped__sk__image__backing.cc b/chromium/patches/patch-gpu_command__buffer_service_shared__image_wrapped__sk__image__backing.cc
new file mode 100644
index 0000000000..69948f4b48
--- /dev/null
+++ b/chromium/patches/patch-gpu_command__buffer_service_shared__image_wrapped__sk__image__backing.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- gpu/command_buffer/service/shared_image/wrapped_sk_image_backing.cc.orig 2024-07-24 02:44:39.217031200 +0000
++++ gpu/command_buffer/service/shared_image/wrapped_sk_image_backing.cc
+@@ -214,7 +214,7 @@ bool WrappedSkImageBacking::Initialize(c
+
+ constexpr GrRenderable is_renderable = GrRenderable::kYes;
+ constexpr GrProtected is_protected = GrProtected::kNo;
+-#if DCHECK_IS_ON() && !BUILDFLAG(IS_LINUX)
++#if DCHECK_IS_ON() && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD)
+ // Blue for single-planar and magenta-ish for multi-planar.
+ SkColor4f fallback_color =
+ format().is_single_plane() ? SkColors::kBlue : SkColors::kWhite;
diff --git a/chromium/patches/patch-gpu_command__buffer_service_webgpu__decoder__impl.cc b/chromium/patches/patch-gpu_command__buffer_service_webgpu__decoder__impl.cc
new file mode 100644
index 0000000000..0c23bdf6ed
--- /dev/null
+++ b/chromium/patches/patch-gpu_command__buffer_service_webgpu__decoder__impl.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- gpu/command_buffer/service/webgpu_decoder_impl.cc.orig 2024-07-24 02:44:39.225032000 +0000
++++ gpu/command_buffer/service/webgpu_decoder_impl.cc
+@@ -1294,7 +1294,7 @@ WGPUFuture WebGPUDecoderImpl::RequestAda
+ force_fallback_adapter = true;
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (!shared_context_state_->GrContextIsVulkan() &&
+ !shared_context_state_->IsGraphiteDawnVulkan() &&
+ use_webgpu_adapter_ != WebGPUAdapterName::kOpenGLES) {
+@@ -1967,7 +1967,7 @@ WebGPUDecoderImpl::AssociateMailboxDawn(
+ }
+
+ #if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_APPLE) && \
+- !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_LINUX)
++ !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD)
+ if (usage & wgpu::TextureUsage::StorageBinding) {
+ LOG(ERROR) << "AssociateMailbox: wgpu::TextureUsage::StorageBinding is NOT "
+ "supported yet on this platform.";
diff --git a/chromium/patches/patch-gpu_command__buffer_tests_gl__copy__texture__CHROMIUM__unittest.cc b/chromium/patches/patch-gpu_command__buffer_tests_gl__copy__texture__CHROMIUM__unittest.cc
deleted file mode 100644
index bcf225eb65..0000000000
--- a/chromium/patches/patch-gpu_command__buffer_tests_gl__copy__texture__CHROMIUM__unittest.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- gpu/command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc.orig 2020-07-08 21:40:44.000000000 +0000
-+++ gpu/command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc
-@@ -643,7 +643,7 @@ class GLCopyTextureCHROMIUMES3Test : pub
-
- bool ShouldSkipNorm16() const {
- DCHECK(!ShouldSkipTest());
--#if (defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX)) && \
-+#if (defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)) && \
- (defined(ARCH_CPU_X86) || defined(ARCH_CPU_X86_64))
- // Make sure it's tested; it is safe to assume that the flag is always true
- // on desktop.
diff --git a/chromium/patches/patch-gpu_command__buffer_tests_gl__gpu__memory__buffer__unittest.cc b/chromium/patches/patch-gpu_command__buffer_tests_gl__gpu__memory__buffer__unittest.cc
new file mode 100644
index 0000000000..c430d6edf5
--- /dev/null
+++ b/chromium/patches/patch-gpu_command__buffer_tests_gl__gpu__memory__buffer__unittest.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- gpu/command_buffer/tests/gl_gpu_memory_buffer_unittest.cc.orig 2024-07-24 02:44:39.229032500 +0000
++++ gpu/command_buffer/tests/gl_gpu_memory_buffer_unittest.cc
+@@ -27,7 +27,7 @@
+ #include "ui/gfx/half_float.h"
+ #include "ui/gl/test/gl_test_support.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "gpu/ipc/common/gpu_memory_buffer_impl_native_pixmap.h"
+ #include "ui/gfx/linux/client_native_pixmap_factory_dmabuf.h"
+ #endif
+@@ -70,7 +70,7 @@ class GpuMemoryBufferTest : public testi
+ GLManager gl_;
+ };
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ class GpuMemoryBufferTestEGL : public testing::Test,
+ public gpu::GpuCommandBufferTestEGL {
+ public:
diff --git a/chromium/patches/patch-gpu_command__buffer_tests_gl__test__utils.cc b/chromium/patches/patch-gpu_command__buffer_tests_gl__test__utils.cc
deleted file mode 100644
index 38f957510d..0000000000
--- a/chromium/patches/patch-gpu_command__buffer_tests_gl__test__utils.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- gpu/command_buffer/tests/gl_test_utils.cc.orig 2020-07-08 21:40:44.000000000 +0000
-+++ gpu/command_buffer/tests/gl_test_utils.cc
-@@ -24,7 +24,7 @@
- #include "ui/gl/gl_version_info.h"
- #include "ui/gl/init/gl_factory.h"
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "ui/gl/gl_image_native_pixmap.h"
- #endif
-
-@@ -446,7 +446,7 @@ void GpuCommandBufferTestEGL::RestoreGLD
- window_system_binding_info_ = gl::GLWindowSystemBindingInfo();
- }
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- scoped_refptr<gl::GLImageNativePixmap>
- GpuCommandBufferTestEGL::CreateGLImageNativePixmap(gfx::BufferFormat format,
- gfx::Size size,
diff --git a/chromium/patches/patch-gpu_command__buffer_tests_gl__test__utils.h b/chromium/patches/patch-gpu_command__buffer_tests_gl__test__utils.h
deleted file mode 100644
index b39f382e44..0000000000
--- a/chromium/patches/patch-gpu_command__buffer_tests_gl__test__utils.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- gpu/command_buffer/tests/gl_test_utils.h.orig 2020-07-08 21:40:44.000000000 +0000
-+++ gpu/command_buffer/tests/gl_test_utils.h
-@@ -120,7 +120,7 @@ class GpuCommandBufferTestEGL {
- return gfx::HasExtension(gl_extensions_, extension);
- }
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // Create GLImageNativePixmap filled in with the given pixels.
- scoped_refptr<gl::GLImageNativePixmap> CreateGLImageNativePixmap(
- gfx::BufferFormat format,
diff --git a/chromium/patches/patch-gpu_config_BUILD.gn b/chromium/patches/patch-gpu_config_BUILD.gn
deleted file mode 100644
index dcc4991174..0000000000
--- a/chromium/patches/patch-gpu_config_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- gpu/config/BUILD.gn.orig 2020-07-15 18:56:47.000000000 +0000
-+++ gpu/config/BUILD.gn
-@@ -216,7 +216,7 @@ jumbo_source_set("config_sources") {
- if (is_mac) {
- libs = [ "OpenGL.framework" ]
- }
-- if (is_linux || is_mac) {
-+ if (is_linux || is_mac || is_bsd) {
- deps += [ "//third_party/angle:angle_gpu_info_util" ]
- }
- if (use_x11) {
diff --git a/chromium/patches/patch-gpu_config_gpu__control__list.cc b/chromium/patches/patch-gpu_config_gpu__control__list.cc
index fabb4104a2..8b76ace39c 100644
--- a/chromium/patches/patch-gpu_config_gpu__control__list.cc
+++ b/chromium/patches/patch-gpu_config_gpu__control__list.cc
@@ -1,31 +1,26 @@
$NetBSD$
---- gpu/config/gpu_control_list.cc.orig 2020-07-08 21:40:44.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- gpu/config/gpu_control_list.cc.orig 2024-07-24 02:44:39.237033400 +0000
+++ gpu/config/gpu_control_list.cc
-@@ -17,7 +17,7 @@
- #include "base/values.h"
- #include "build/build_config.h"
- #include "gpu/config/gpu_util.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
-
- namespace gpu {
- namespace {
-@@ -248,7 +248,7 @@ bool GpuControlList::More::GLVersionInfo
+@@ -276,7 +276,7 @@ bool GpuControlList::More::GLVersionInfo
GpuControlList::GLType GpuControlList::More::GetDefaultGLType() {
- #if defined(OS_CHROMEOS)
+ #if BUILDFLAG(IS_CHROMEOS)
return kGLTypeGL;
--#elif defined(OS_LINUX) || defined(OS_OPENBSD)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_OPENBSD)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
return kGLTypeGL;
- #elif defined(OS_MACOSX)
+ #elif BUILDFLAG(IS_MAC)
return kGLTypeGL;
-@@ -754,7 +754,7 @@ GpuControlList::OsType GpuControlList::G
+@@ -810,7 +810,7 @@ GpuControlList::OsType GpuControlList::G
return kOsAndroid;
- #elif defined(OS_FUCHSIA)
+ #elif BUILDFLAG(IS_FUCHSIA)
return kOsFuchsia;
--#elif defined(OS_LINUX) || defined(OS_OPENBSD)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_OPENBSD)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
return kOsLinux;
- #elif defined(OS_MACOSX)
+ #elif BUILDFLAG(IS_MAC)
return kOsMacosx;
diff --git a/chromium/patches/patch-gpu_config_gpu__finch__features.cc b/chromium/patches/patch-gpu_config_gpu__finch__features.cc
new file mode 100644
index 0000000000..12f739be4e
--- /dev/null
+++ b/chromium/patches/patch-gpu_config_gpu__finch__features.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- gpu/config/gpu_finch_features.cc.orig 2024-07-24 02:44:39.241033600 +0000
++++ gpu/config/gpu_finch_features.cc
+@@ -157,7 +157,7 @@ const base::FeatureParam<std::string>
+ BASE_FEATURE(kDefaultEnableGpuRasterization,
+ "DefaultEnableGpuRasterization",
+ #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX)
++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+ base::FEATURE_DISABLED_BY_DEFAULT
+@@ -170,7 +170,7 @@ BASE_FEATURE(kCanvasOopRasterization,
+ "CanvasOopRasterization",
+ #if BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_IOS) || BUILDFLAG(IS_WIN) || \
+ (BUILDFLAG(IS_MAC) && defined(ARCH_CPU_ARM64)) || BUILDFLAG(IS_ANDROID) || \
+- BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
++ BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+ base::FEATURE_DISABLED_BY_DEFAULT
diff --git a/chromium/patches/patch-gpu_config_gpu__info__collector.cc b/chromium/patches/patch-gpu_config_gpu__info__collector.cc
new file mode 100644
index 0000000000..504c99969b
--- /dev/null
+++ b/chromium/patches/patch-gpu_config_gpu__info__collector.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- gpu/config/gpu_info_collector.cc.orig 2024-07-24 02:44:39.241033600 +0000
++++ gpu/config/gpu_info_collector.cc
+@@ -364,7 +364,7 @@ void ReportWebGPUAdapterMetrics(dawn::na
+ void ReportWebGPUSupportMetrics(dawn::native::Instance* instance) {
+ static BASE_FEATURE(kCollectWebGPUSupportMetrics,
+ "CollectWebGPUSupportMetrics",
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ base::FEATURE_DISABLED_BY_DEFAULT);
+ #else
+ base::FEATURE_ENABLED_BY_DEFAULT);
diff --git a/chromium/patches/patch-gpu_config_gpu__test__config.cc b/chromium/patches/patch-gpu_config_gpu__test__config.cc
index c456fe347d..449e0eac82 100644
--- a/chromium/patches/patch-gpu_config_gpu__test__config.cc
+++ b/chromium/patches/patch-gpu_config_gpu__test__config.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- gpu/config/gpu_test_config.cc.orig 2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- gpu/config/gpu_test_config.cc.orig 2024-07-24 02:44:39.241033600 +0000
+++ gpu/config/gpu_test_config.cc
-@@ -25,7 +25,7 @@ namespace {
- GPUTestConfig::OS GetCurrentOS() {
- #if defined(OS_CHROMEOS)
+@@ -29,7 +29,7 @@ GPUTestConfig::OS GetCurrentOS() {
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
return GPUTestConfig::kOsChromeOS;
--#elif defined(OS_LINUX) || defined(OS_OPENBSD)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+ #elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || \
+- BUILDFLAG(IS_OPENBSD)
++ BUILDFLAG(IS_BSD)
return GPUTestConfig::kOsLinux;
- #elif defined(OS_WIN)
+ #elif BUILDFLAG(IS_WIN)
int32_t major_version = 0;
diff --git a/chromium/patches/patch-gpu_gles2__conform__support_BUILD.gn b/chromium/patches/patch-gpu_gles2__conform__support_BUILD.gn
deleted file mode 100644
index 8698421c85..0000000000
--- a/chromium/patches/patch-gpu_gles2__conform__support_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- gpu/gles2_conform_support/BUILD.gn.orig 2020-07-15 18:55:58.000000000 +0000
-+++ gpu/gles2_conform_support/BUILD.gn
-@@ -59,7 +59,7 @@ executable("gles2_conform_support") {
- "//gpu/gles2_conform_support/egl",
- "//ui/gl",
- ]
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "native/egl_native_aura.cc",
- "native/egl_native_x11.cc",
diff --git a/chromium/patches/patch-gpu_gles2__conform__support_native_BUILD.gn b/chromium/patches/patch-gpu_gles2__conform__support_native_BUILD.gn
deleted file mode 100644
index 9c1993b124..0000000000
--- a/chromium/patches/patch-gpu_gles2__conform__support_native_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- gpu/gles2_conform_support/native/BUILD.gn.orig 2020-07-15 18:55:58.000000000 +0000
-+++ gpu/gles2_conform_support/native/BUILD.gn
-@@ -20,7 +20,7 @@ source_set("native") {
- "//gpu/gles2_conform_support/egl",
- "//ui/gl",
- ]
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "egl_native_aura.cc",
- "egl_native_x11.cc",
diff --git a/chromium/patches/patch-gpu_ipc_common_BUILD.gn b/chromium/patches/patch-gpu_ipc_common_BUILD.gn
deleted file mode 100644
index 80c6cccbc2..0000000000
--- a/chromium/patches/patch-gpu_ipc_common_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- gpu/ipc/common/BUILD.gn.orig 2020-07-24 02:37:56.000000000 +0000
-+++ gpu/ipc/common/BUILD.gn
-@@ -93,7 +93,7 @@ source_set("ipc_common_sources") {
- "gpu_memory_buffer_impl_dxgi.h",
- ]
- }
-- if (is_linux || use_ozone) {
-+ if (is_linux || use_ozone || is_bsd) {
- sources += [
- "gpu_memory_buffer_impl_native_pixmap.cc",
- "gpu_memory_buffer_impl_native_pixmap.h",
diff --git a/chromium/patches/patch-gpu_ipc_common_gpu__memory__buffer__support.cc b/chromium/patches/patch-gpu_ipc_common_gpu__memory__buffer__support.cc
index 552f8056ea..2f8c1218d4 100644
--- a/chromium/patches/patch-gpu_ipc_common_gpu__memory__buffer__support.cc
+++ b/chromium/patches/patch-gpu_ipc_common_gpu__memory__buffer__support.cc
@@ -1,49 +1,26 @@
$NetBSD$
---- gpu/ipc/common/gpu_memory_buffer_support.cc.orig 2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- gpu/ipc/common/gpu_memory_buffer_support.cc.orig 2024-07-24 02:44:39.253034800 +0000
+++ gpu/ipc/common/gpu_memory_buffer_support.cc
-@@ -15,7 +15,7 @@
- #include "gpu/ipc/common/gpu_memory_buffer_impl_io_surface.h"
- #endif
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "ui/gfx/client_native_pixmap_factory.h"
- #include "ui/gfx/linux/client_native_pixmap_factory_dmabuf.h"
- #endif
-@@ -25,7 +25,7 @@
+@@ -26,7 +26,7 @@
#include "ui/ozone/public/ozone_platform.h"
#endif
--#if defined(USE_OZONE) || defined(OS_LINUX)
-+#if defined(USE_OZONE) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "gpu/ipc/common/gpu_memory_buffer_impl_native_pixmap.h"
#endif
-@@ -43,7 +43,7 @@ namespace gpu {
- GpuMemoryBufferSupport::GpuMemoryBufferSupport() {
- #if defined(USE_OZONE)
- client_native_pixmap_factory_ = ui::CreateClientNativePixmapFactoryOzone();
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- client_native_pixmap_factory_.reset(
- gfx::CreateClientNativePixmapFactoryDmabuf());
- #endif
-@@ -57,7 +57,7 @@ GpuMemoryBufferSupport::GetNativeGpuMemo
+@@ -56,7 +56,7 @@ GpuMemoryBufferSupport::GetNativeGpuMemo
return gfx::IO_SURFACE_BUFFER;
- #elif defined(OS_ANDROID)
+ #elif BUILDFLAG(IS_ANDROID)
return gfx::ANDROID_HARDWARE_BUFFER;
--#elif defined(OS_LINUX) || defined(USE_OZONE)
-+#elif defined(OS_LINUX) || defined(USE_OZONE) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_BSD)
return gfx::NATIVE_PIXMAP;
- #elif defined(OS_WIN)
+ #elif BUILDFLAG(IS_WIN)
return gfx::DXGI_SHARED_HANDLE;
-@@ -182,7 +182,7 @@ GpuMemoryBufferSupport::CreateGpuMemoryB
- return GpuMemoryBufferImplIOSurface::CreateFromHandle(
- std::move(handle), size, format, usage, std::move(callback));
- #endif
--#if defined(OS_LINUX) || defined(USE_OZONE)
-+#if defined(OS_LINUX) || defined(USE_OZONE) || defined(OS_BSD)
- case gfx::NATIVE_PIXMAP:
- return GpuMemoryBufferImplNativePixmap::CreateFromHandle(
- client_native_pixmap_factory(), std::move(handle), size, format,
diff --git a/chromium/patches/patch-gpu_ipc_common_gpu__memory__buffer__support.h b/chromium/patches/patch-gpu_ipc_common_gpu__memory__buffer__support.h
index 02dc379f0f..f445576042 100644
--- a/chromium/patches/patch-gpu_ipc_common_gpu__memory__buffer__support.h
+++ b/chromium/patches/patch-gpu_ipc_common_gpu__memory__buffer__support.h
@@ -1,31 +1,17 @@
$NetBSD$
---- gpu/ipc/common/gpu_memory_buffer_support.h.orig 2020-07-08 21:40:44.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- gpu/ipc/common/gpu_memory_buffer_support.h.orig 2024-07-24 02:44:39.253034800 +0000
+++ gpu/ipc/common/gpu_memory_buffer_support.h
-@@ -16,7 +16,7 @@
+@@ -21,7 +21,7 @@
#include "ui/gfx/geometry/size.h"
#include "ui/gfx/gpu_memory_buffer.h"
--#if defined(OS_LINUX) || defined(USE_OZONE)
-+#if defined(OS_LINUX) || defined(USE_OZONE) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_BSD)
namespace gfx {
class ClientNativePixmapFactory;
- }
-@@ -38,7 +38,7 @@ class GPU_EXPORT GpuMemoryBufferSupport
- bool IsNativeGpuMemoryBufferConfigurationSupported(gfx::BufferFormat format,
- gfx::BufferUsage usage);
-
--#if defined(OS_LINUX) || defined(USE_OZONE)
-+#if defined(OS_LINUX) || defined(USE_OZONE) || defined(OS_BSD)
- gfx::ClientNativePixmapFactory* client_native_pixmap_factory() {
- return client_native_pixmap_factory_.get();
- }
-@@ -62,7 +62,7 @@ class GPU_EXPORT GpuMemoryBufferSupport
- GpuMemoryBufferImpl::DestructionCallback callback);
-
- private:
--#if defined(OS_LINUX) || defined(USE_OZONE)
-+#if defined(OS_LINUX) || defined(USE_OZONE) || defined(OS_BSD)
- std::unique_ptr<gfx::ClientNativePixmapFactory> client_native_pixmap_factory_;
- #endif
-
+ } // namespace gfx
diff --git a/chromium/patches/patch-gpu_ipc_service_BUILD.gn b/chromium/patches/patch-gpu_ipc_service_BUILD.gn
deleted file mode 100644
index 4fbf77af84..0000000000
--- a/chromium/patches/patch-gpu_ipc_service_BUILD.gn
+++ /dev/null
@@ -1,17 +0,0 @@
-$NetBSD$
-
---- gpu/ipc/service/BUILD.gn.orig 2020-07-15 18:56:47.000000000 +0000
-+++ gpu/ipc/service/BUILD.gn
-@@ -124,10 +124,10 @@ jumbo_component("service") {
- ]
- libs += [ "android" ]
- }
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [ "image_transport_surface_linux.cc" ]
- }
-- if (is_linux || use_ozone) {
-+ if (is_linux || use_ozone || is_bsd) {
- sources += [
- "gpu_memory_buffer_factory_native_pixmap.cc",
- "gpu_memory_buffer_factory_native_pixmap.h",
diff --git a/chromium/patches/patch-gpu_ipc_service_gpu__init.cc b/chromium/patches/patch-gpu_ipc_service_gpu__init.cc
index 89f4683ead..6bb8e39a1e 100644
--- a/chromium/patches/patch-gpu_ipc_service_gpu__init.cc
+++ b/chromium/patches/patch-gpu_ipc_service_gpu__init.cc
@@ -1,85 +1,80 @@
$NetBSD$
---- gpu/ipc/service/gpu_init.cc.orig 2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- gpu/ipc/service/gpu_init.cc.orig 2024-07-24 02:44:39.265036000 +0000
+++ gpu/ipc/service/gpu_init.cc
-@@ -94,7 +94,7 @@ void InitializePlatformOverlaySettings(G
- #endif
- }
-
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !BUILDFLAG(IS_CHROMECAST)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS) && !BUILDFLAG(IS_CHROMECAST)
- bool CanAccessNvidiaDeviceFile() {
- bool res = true;
- base::ScopedBlockingCall scoped_blocking_call(FROM_HERE,
-@@ -178,7 +178,7 @@ bool GpuInit::InitializeAndStartSandbox(
- device_perf_info_ = device_perf_info;
- }
-
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- if (gpu_info_.gpu.vendor_id == 0x10de && // NVIDIA
- gpu_info_.gpu.driver_vendor == "NVIDIA" && !CanAccessNvidiaDeviceFile())
- return false;
-@@ -230,7 +230,7 @@ bool GpuInit::InitializeAndStartSandbox(
- delayed_watchdog_enable = true;
+@@ -398,7 +398,7 @@ bool GpuInit::InitializeAndStartSandbox(
+ enable_watchdog = false;
#endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // PreSandbox is mainly for resource handling and not related to the GPU
- // driver, it doesn't need the GPU watchdog. The loadLibrary may take long
- // time that killing and restarting the GPU process will not help.
-@@ -275,7 +275,7 @@ bool GpuInit::InitializeAndStartSandbox(
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ bool gpu_sandbox_start_early = gpu_preferences_.gpu_sandbox_start_early;
+ #else // !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
+ // For some reasons MacOSX's VideoToolbox might crash when called after
+@@ -435,7 +435,7 @@ bool GpuInit::InitializeAndStartSandbox(
}
bool attempted_startsandbox = false;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// On Chrome OS ARM Mali, GPU driver userspace creates threads when
// initializing a GL context, so start the sandbox early.
// TODO(zmo): Need to collect OS version before this.
-@@ -307,7 +307,7 @@ bool GpuInit::InitializeAndStartSandbox(
- }
- if (gl_initialized && gl_use_swiftshader_ &&
- gl::GetGLImplementation() != gl::kGLImplementationSwiftShaderGL) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- VLOG(1) << "Quit GPU process launch to fallback to SwiftShader cleanly "
- << "on Linux";
- return false;
-@@ -340,7 +340,7 @@ bool GpuInit::InitializeAndStartSandbox(
- }
+@@ -542,7 +542,7 @@ bool GpuInit::InitializeAndStartSandbox(
+ gpu_preferences_.gr_context_type = GrContextType::kGL;
}
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// The ContentSandboxHelper is currently the only one implementation of
// GpuSandboxHelper and it has no dependency. Except on Linux where
// VaapiWrapper checks the GL implementation to determine which display
-@@ -392,7 +392,7 @@ bool GpuInit::InitializeAndStartSandbox(
+@@ -624,7 +624,7 @@ bool GpuInit::InitializeAndStartSandbox(
command_line, gpu_feature_info_,
gpu_preferences_.disable_software_rasterizer, false);
if (gl_use_swiftshader_) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
VLOG(1) << "Quit GPU process launch to fallback to SwiftShader cleanly "
<< "on Linux";
return false;
-@@ -482,7 +482,7 @@ bool GpuInit::InitializeAndStartSandbox(
+@@ -780,7 +780,7 @@ bool GpuInit::InitializeAndStartSandbox(
- InitializePlatformOverlaySettings(&gpu_info_);
+ InitializePlatformOverlaySettings(&gpu_info_, gpu_feature_info_);
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// Driver may create a compatibility profile context when collect graphics
// information on Linux platform. Try to collect graphics information
// based on core profile context after disabling platform extensions.
-@@ -667,7 +667,7 @@ void GpuInit::InitializeInProcess(base::
+@@ -835,7 +835,7 @@ bool GpuInit::InitializeAndStartSandbox(
+ }
+ }
+ }
+-#if BUILDFLAG(IS_LINUX) || \
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || \
+ (BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_CHROMEOS_DEVICE))
+ if (!gl_disabled && !gl_use_swiftshader_ && std::getenv("RUNNING_UNDER_RR")) {
+ // https://rr-project.org/ is a Linux-only record-and-replay debugger that
+@@ -1023,7 +1023,7 @@ void GpuInit::InitializeInProcess(base::
+ }
+ bool gl_disabled = gl::GetGLImplementation() == gl::kGLImplementationDisabled;
- InitializePlatformOverlaySettings(&gpu_info_);
+-#if BUILDFLAG(IS_LINUX) || \
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || \
+ (BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_CHROMEOS_DEVICE))
+ if (!gl_disabled && !gl_use_swiftshader_ && std::getenv("RUNNING_UNDER_RR")) {
+ // https://rr-project.org/ is a Linux-only record-and-replay debugger that
+@@ -1083,7 +1083,7 @@ void GpuInit::InitializeInProcess(base::
+ }
+ }
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// Driver may create a compatibility profile context when collect graphics
// information on Linux platform. Try to collect graphics information
// based on core profile context after disabling platform extensions.
diff --git a/chromium/patches/patch-gpu_ipc_service_gpu__memory__buffer__factory.cc b/chromium/patches/patch-gpu_ipc_service_gpu__memory__buffer__factory.cc
index 59e8df3599..f46dc9e634 100644
--- a/chromium/patches/patch-gpu_ipc_service_gpu__memory__buffer__factory.cc
+++ b/chromium/patches/patch-gpu_ipc_service_gpu__memory__buffer__factory.cc
@@ -1,22 +1,26 @@
$NetBSD$
---- gpu/ipc/service/gpu_memory_buffer_factory.cc.orig 2020-07-08 21:40:44.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- gpu/ipc/service/gpu_memory_buffer_factory.cc.orig 2024-07-24 02:44:39.265036000 +0000
+++ gpu/ipc/service/gpu_memory_buffer_factory.cc
-@@ -12,7 +12,7 @@
+@@ -13,7 +13,7 @@
#include "gpu/ipc/service/gpu_memory_buffer_factory_io_surface.h"
#endif
--#if defined(OS_LINUX) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_FUCHSIA) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
#include "gpu/ipc/service/gpu_memory_buffer_factory_native_pixmap.h"
#endif
-@@ -34,7 +34,7 @@ GpuMemoryBufferFactory::CreateNativeType
+@@ -36,7 +36,7 @@ GpuMemoryBufferFactory::CreateNativeType
return std::make_unique<GpuMemoryBufferFactoryIOSurface>();
- #elif defined(OS_ANDROID)
+ #elif BUILDFLAG(IS_ANDROID)
return std::make_unique<GpuMemoryBufferFactoryAndroidHardwareBuffer>();
--#elif defined(OS_LINUX) || defined(OS_FUCHSIA)
-+#elif defined(OS_LINUX) || defined(OS_FUCHSIA) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
return std::make_unique<GpuMemoryBufferFactoryNativePixmap>(
vulkan_context_provider);
- #elif defined(OS_WIN)
+ #elif BUILDFLAG(IS_WIN)
diff --git a/chromium/patches/patch-gpu_ipc_service_gpu__watchdog__thread.cc b/chromium/patches/patch-gpu_ipc_service_gpu__watchdog__thread.cc
deleted file mode 100644
index 7ad6f80dae..0000000000
--- a/chromium/patches/patch-gpu_ipc_service_gpu__watchdog__thread.cc
+++ /dev/null
@@ -1,58 +0,0 @@
-$NetBSD$
-
---- gpu/ipc/service/gpu_watchdog_thread.cc.orig 2020-07-08 21:41:48.000000000 +0000
-+++ gpu/ipc/service/gpu_watchdog_thread.cc
-@@ -54,7 +54,7 @@ const int kNewGpuTimeout = 17000;
- const int kNewGpuTimeout = 15000;
- #endif
-
--#if defined(USE_X11)
-+#if defined(USE_X11) && !defined(OS_BSD)
- const base::FilePath::CharType kTtyFilePath[] =
- FILE_PATH_LITERAL("/sys/class/tty/tty0/active");
- #endif
-@@ -72,7 +72,7 @@ GpuWatchdogThreadImplV1::GpuWatchdogThre
- arm_cpu_time_(),
- #endif
- suspension_counter_(this)
--#if defined(USE_X11)
-+#if defined(USE_X11) && !defined(OS_BSD)
- ,
- host_tty_(-1)
- #endif
-@@ -94,7 +94,7 @@ GpuWatchdogThreadImplV1::GpuWatchdogThre
- DCHECK(result);
- #endif
-
--#if defined(USE_X11)
-+#if defined(USE_X11) && !defined(OS_BSD)
- tty_file_ = base::OpenFile(base::FilePath(kTtyFilePath), "r");
- UpdateActiveTTY();
- host_tty_ = active_tty_;
-@@ -236,7 +236,7 @@ GpuWatchdogThreadImplV1::~GpuWatchdogThr
-
- base::PowerMonitor::RemoveObserver(this);
-
--#if defined(USE_X11)
-+#if defined(USE_X11) && !defined(OS_BSD)
- if (tty_file_)
- fclose(tty_file_);
- #endif
-@@ -385,7 +385,7 @@ void GpuWatchdogThreadImplV1::Deliberate
- return;
- #endif
-
--#if defined(USE_X11)
-+#if defined(USE_X11) && !defined(OS_BSD)
- // Don't crash if we're not on the TTY of our host X11 server.
- UpdateActiveTTY();
- if (host_tty_ != -1 && active_tty_ != -1 && host_tty_ != active_tty_) {
-@@ -541,7 +541,7 @@ base::ThreadTicks GpuWatchdogThreadImplV
- }
- #endif
-
--#if defined(USE_X11)
-+#if defined(USE_X11) && !defined(OS_BSD)
- void GpuWatchdogThreadImplV1::UpdateActiveTTY() {
- last_active_tty_ = active_tty_;
-
diff --git a/chromium/patches/patch-gpu_ipc_service_gpu__watchdog__thread.h b/chromium/patches/patch-gpu_ipc_service_gpu__watchdog__thread.h
deleted file mode 100644
index bec786503e..0000000000
--- a/chromium/patches/patch-gpu_ipc_service_gpu__watchdog__thread.h
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- gpu/ipc/service/gpu_watchdog_thread.h.orig 2020-07-08 21:40:44.000000000 +0000
-+++ gpu/ipc/service/gpu_watchdog_thread.h
-@@ -213,7 +213,7 @@ class GPU_IPC_SERVICE_EXPORT GpuWatchdog
- base::ThreadTicks GetWatchedThreadTime();
- #endif
-
--#if defined(USE_X11)
-+#if defined(USE_X11) && !defined(OS_BSD)
- void UpdateActiveTTY();
- #endif
-
-@@ -261,7 +261,7 @@ class GPU_IPC_SERVICE_EXPORT GpuWatchdog
- base::Time check_time_;
- base::TimeTicks check_timeticks_;
-
--#if defined(USE_X11)
-+#if defined(USE_X11) && !defined(OS_BSD)
- FILE* tty_file_;
- int host_tty_;
- int active_tty_ = -1;
diff --git a/chromium/patches/patch-gpu_ipc_service_x__util.h b/chromium/patches/patch-gpu_ipc_service_x__util.h
new file mode 100644
index 0000000000..1d295a57aa
--- /dev/null
+++ b/chromium/patches/patch-gpu_ipc_service_x__util.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- gpu/ipc/service/x_util.h.orig 2024-07-24 02:44:39.269036300 +0000
++++ gpu/ipc/service/x_util.h
+@@ -12,7 +12,7 @@
+ #include "gpu/ipc/service/gpu_config.h"
+ #include "ui/base/ozone_buildflags.h"
+
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11)
+
+ namespace gpu {
+
diff --git a/chromium/patches/patch-gpu_khronos__glcts__support_BUILD.gn b/chromium/patches/patch-gpu_khronos__glcts__support_BUILD.gn
deleted file mode 100644
index 8e2e3e8a86..0000000000
--- a/chromium/patches/patch-gpu_khronos__glcts__support_BUILD.gn
+++ /dev/null
@@ -1,76 +0,0 @@
-$NetBSD$
-
---- gpu/khronos_glcts_support/BUILD.gn.orig 2020-07-15 18:55:58.000000000 +0000
-+++ gpu/khronos_glcts_support/BUILD.gn
-@@ -79,7 +79,7 @@ if (internal_khronos_glcts_tests) {
-
- public_configs = [ ":debase_config" ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- cflags_c = [ "-Wno-implicit-function-declaration" ]
- }
- }
-@@ -147,7 +147,7 @@ if (internal_khronos_glcts_tests) {
-
- public_configs = [ ":dethread_config" ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "//third_party/khronos_glcts/framework/delibs/dethread/unix/deMutexUnix.c",
- "//third_party/khronos_glcts/framework/delibs/dethread/unix/deSemaphoreUnix.c",
-@@ -194,7 +194,7 @@ if (internal_khronos_glcts_tests) {
-
- public_configs = [ ":deutil_config" ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- cflags_c = [ "-Wno-string-conversion" ]
- }
- }
-@@ -306,7 +306,7 @@ if (internal_khronos_glcts_tests) {
-
- public_configs = [ ":qphelper_config" ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- cflags_c = [ "-Wno-string-conversion" ]
- }
- }
-@@ -394,7 +394,7 @@ if (internal_khronos_glcts_tests) {
-
- public_configs = [ ":tcutil_config" ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- cflags_cc = [ "-Wno-int-to-pointer-cast" ]
- }
- }
-@@ -532,7 +532,7 @@ if (internal_khronos_glcts_tests) {
- "//third_party/khronos:khronos_headers",
- ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- cflags_cc = [ "-Wno-int-to-void-pointer-cast" ]
- }
- }
-@@ -611,7 +611,7 @@ if (internal_khronos_glcts_tests) {
-
- public_configs = [ ":glcts_common_config" ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- cflags_cc = [ "-Wno-string-conversion" ]
- }
- }
-@@ -819,7 +819,7 @@ if (internal_khronos_glcts_tests) {
-
- public_configs = [ ":gtf_es_config" ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- cflags_c = [
- "-Wno-pointer-sign",
- "-Wno-incompatible-pointer-types",
diff --git a/chromium/patches/patch-gpu_tools_compositor__model__bench_BUILD.gn b/chromium/patches/patch-gpu_tools_compositor__model__bench_BUILD.gn
deleted file mode 100644
index 21a8a71ad2..0000000000
--- a/chromium/patches/patch-gpu_tools_compositor__model__bench_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- gpu/tools/compositor_model_bench/BUILD.gn.orig 2020-07-15 18:55:58.000000000 +0000
-+++ gpu/tools/compositor_model_bench/BUILD.gn
-@@ -4,7 +4,7 @@
-
- import("//build/config/ui.gni")
-
--if (is_linux && use_x11 && current_cpu != "arm") {
-+if ((is_linux || is_bsd) && use_x11 && current_cpu != "arm") {
- executable("compositor_model_bench") {
- sources = [
- "compositor_model_bench.cc",
diff --git a/chromium/patches/patch-gpu_vulkan_features.gni b/chromium/patches/patch-gpu_vulkan_features.gni
deleted file mode 100644
index 12c54b2668..0000000000
--- a/chromium/patches/patch-gpu_vulkan_features.gni
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- gpu/vulkan/features.gni.orig 2020-07-23 02:28:04.152680184 +0000
-+++ gpu/vulkan/features.gni
-@@ -8,7 +8,7 @@ import("//build/config/ui.gni")
- # For details see declare_args() in build/config/BUILDCONFIG.gn.
- declare_args() {
- # Enable experimental vulkan backend.
-- enable_vulkan = is_linux || is_android || is_fuchsia || is_win
-+ enable_vulkan = is_linux || is_android || is_fuchsia || is_win || is_bsd
-
- # Enable swiftshader vulkan. Disabling it can save build time, however
- # --use-vulkan=swiftshader and some tests which use swiftshader vulkan will
diff --git a/chromium/patches/patch-gpu_vulkan_generate__bindings.py b/chromium/patches/patch-gpu_vulkan_generate__bindings.py
new file mode 100644
index 0000000000..5cb15a8d71
--- /dev/null
+++ b/chromium/patches/patch-gpu_vulkan_generate__bindings.py
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- gpu/vulkan/generate_bindings.py.orig 2024-07-24 02:44:39.273036700 +0000
++++ gpu/vulkan/generate_bindings.py
+@@ -271,7 +271,7 @@ VULKAN_DEVICE_FUNCTIONS = [
+ ]
+ },
+ {
+- 'ifdef': 'BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)',
++ 'ifdef': 'BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)',
+ 'extension': 'VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME',
+ 'functions': [
+ 'vkGetImageDrmFormatModifierPropertiesEXT',
diff --git a/chromium/patches/patch-gpu_vulkan_semaphore__handle.cc b/chromium/patches/patch-gpu_vulkan_semaphore__handle.cc
new file mode 100644
index 0000000000..0d685ff8bc
--- /dev/null
+++ b/chromium/patches/patch-gpu_vulkan_semaphore__handle.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- gpu/vulkan/semaphore_handle.cc.orig 2024-07-24 02:44:39.273036700 +0000
++++ gpu/vulkan/semaphore_handle.cc
+@@ -39,7 +39,7 @@ SemaphoreHandle::SemaphoreHandle(gfx::Gp
+ // https://fuchsia.dev/reference/fidl/fuchsia.ui.scenic.
+ Init(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA,
+ fence_handle.Release());
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ Init(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR,
+ fence_handle.Release());
+ #elif BUILDFLAG(IS_POSIX)
+@@ -64,7 +64,7 @@ gfx::GpuFenceHandle SemaphoreHandle::ToG
+ // VkSemaphore, which can then be used to submit present work, see
+ // https://fuchsia.dev/reference/fidl/fuchsia.ui.scenic.
+ fence_handle.Adopt(TakeHandle());
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ if (type_ == VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR) {
+ fence_handle.Adopt(TakeHandle());
+ } else {
diff --git a/chromium/patches/patch-gpu_vulkan_vulkan__device__queue.cc b/chromium/patches/patch-gpu_vulkan_vulkan__device__queue.cc
new file mode 100644
index 0000000000..869011feb3
--- /dev/null
+++ b/chromium/patches/patch-gpu_vulkan_vulkan__device__queue.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- gpu/vulkan/vulkan_device_queue.cc.orig 2024-07-24 02:44:39.273036700 +0000
++++ gpu/vulkan/vulkan_device_queue.cc
+@@ -149,7 +149,7 @@ bool VulkanDeviceQueue::Initialize(
+
+ // In dual-CPU cases, we cannot detect the active GPU correctly on Linux,
+ // so don't select GPU device based on the |gpu_info|.
+-#if !BUILDFLAG(IS_LINUX)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD)
+ // If gpu_info is provided, the device should match it.
+ if (gpu_info && (device_properties.vendorID != gpu_info->gpu.vendor_id ||
+ device_properties.deviceID != gpu_info->gpu.device_id)) {
+@@ -292,7 +292,7 @@ bool VulkanDeviceQueue::Initialize(
+ // Android, Fuchsia, Linux, and CrOS (VaapiVideoDecoder) need YCbCr sampler
+ // support.
+ #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ if (!physical_device_info.feature_sampler_ycbcr_conversion) {
+ LOG(ERROR) << "samplerYcbcrConversion is not supported.";
+ return false;
diff --git a/chromium/patches/patch-gpu_vulkan_vulkan__device__queue.h b/chromium/patches/patch-gpu_vulkan_vulkan__device__queue.h
new file mode 100644
index 0000000000..2e29b28ba3
--- /dev/null
+++ b/chromium/patches/patch-gpu_vulkan_vulkan__device__queue.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- gpu/vulkan/vulkan_device_queue.h.orig 2024-07-24 02:44:39.273036700 +0000
++++ gpu/vulkan/vulkan_device_queue.h
+@@ -179,7 +179,7 @@ class COMPONENT_EXPORT(VULKAN) VulkanDev
+ #endif
+
+ #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ VkPhysicalDeviceSamplerYcbcrConversionFeatures
+ sampler_ycbcr_conversion_features_{
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES};
diff --git a/chromium/patches/patch-gpu_vulkan_vulkan__function__pointers.cc b/chromium/patches/patch-gpu_vulkan_vulkan__function__pointers.cc
index 87c0df94e5..010402e73c 100644
--- a/chromium/patches/patch-gpu_vulkan_vulkan__function__pointers.cc
+++ b/chromium/patches/patch-gpu_vulkan_vulkan__function__pointers.cc
@@ -1,22 +1,26 @@
$NetBSD$
---- gpu/vulkan/vulkan_function_pointers.cc.orig 2020-07-08 21:40:44.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- gpu/vulkan/vulkan_function_pointers.cc.orig 2024-07-24 02:44:39.273036700 +0000
+++ gpu/vulkan/vulkan_function_pointers.cc
-@@ -862,7 +862,7 @@ bool VulkanFunctionPointers::BindDeviceF
+@@ -1297,7 +1297,7 @@ bool VulkanFunctionPointers::BindDeviceF
+ }
}
- #endif // defined(OS_ANDROID)
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
if (gfx::HasExtension(enabled_extensions,
- VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME)) {
- vkGetSemaphoreFdKHR = reinterpret_cast<PFN_vkGetSemaphoreFdKHR>(
-@@ -906,7 +906,7 @@ bool VulkanFunctionPointers::BindDeviceF
- }
- #endif // defined(OS_WIN)
+ VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME)) {
+ constexpr char kvkGetImageDrmFormatModifierPropertiesEXT[] =
+@@ -1498,7 +1498,7 @@ void VulkanFunctionPointers::ResetForTes
+ vkGetSwapchainImagesKHR = nullptr;
+ vkQueuePresentKHR = nullptr;
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
- if (gfx::HasExtension(enabled_extensions,
- VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME)) {
- vkGetMemoryFdKHR = reinterpret_cast<PFN_vkGetMemoryFdKHR>(
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ vkGetImageDrmFormatModifierPropertiesEXT = nullptr;
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ }
diff --git a/chromium/patches/patch-gpu_vulkan_vulkan__function__pointers.h b/chromium/patches/patch-gpu_vulkan_vulkan__function__pointers.h
index 13628b6afa..1f1c50d8fb 100644
--- a/chromium/patches/patch-gpu_vulkan_vulkan__function__pointers.h
+++ b/chromium/patches/patch-gpu_vulkan_vulkan__function__pointers.h
@@ -1,46 +1,32 @@
$NetBSD$
---- gpu/vulkan/vulkan_function_pointers.h.orig 2020-07-08 21:40:44.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- gpu/vulkan/vulkan_function_pointers.h.orig 2024-07-24 02:44:39.273036700 +0000
+++ gpu/vulkan/vulkan_function_pointers.h
-@@ -234,7 +234,7 @@ struct COMPONENT_EXPORT(VULKAN) VulkanFu
- vkGetAndroidHardwareBufferPropertiesANDROID;
- #endif // defined(OS_ANDROID)
-
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
- VulkanFunction<PFN_vkGetSemaphoreFdKHR> vkGetSemaphoreFdKHR;
- VulkanFunction<PFN_vkImportSemaphoreFdKHR> vkImportSemaphoreFdKHR;
- #endif // defined(OS_LINUX) || defined(OS_ANDROID)
-@@ -245,7 +245,7 @@ struct COMPONENT_EXPORT(VULKAN) VulkanFu
- vkImportSemaphoreWin32HandleKHR;
- #endif // defined(OS_WIN)
-
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
- VulkanFunction<PFN_vkGetMemoryFdKHR> vkGetMemoryFdKHR;
- VulkanFunction<PFN_vkGetMemoryFdPropertiesKHR> vkGetMemoryFdPropertiesKHR;
- #endif // defined(OS_LINUX) || defined(OS_ANDROID)
-@@ -953,7 +953,7 @@ ALWAYS_INLINE VkResult vkGetAndroidHardw
- }
- #endif // defined(OS_ANDROID)
+@@ -322,7 +322,7 @@ struct COMPONENT_EXPORT(VULKAN) VulkanFu
+ VulkanFunction<PFN_vkGetSwapchainImagesKHR> vkGetSwapchainImagesKHR;
+ VulkanFunction<PFN_vkQueuePresentKHR> vkQueuePresentKHR;
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
- ALWAYS_INLINE VkResult
- vkGetSemaphoreFdKHR(VkDevice device,
- const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
-@@ -986,7 +986,7 @@ vkImportSemaphoreWin32HandleKHR(VkDevice
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ VulkanFunction<PFN_vkGetImageDrmFormatModifierPropertiesEXT>
+ vkGetImageDrmFormatModifierPropertiesEXT;
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+@@ -1336,7 +1336,7 @@ ALWAYS_INLINE VkResult vkQueuePresentKHR
+ pPresentInfo);
}
- #endif // defined(OS_WIN)
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
- ALWAYS_INLINE VkResult vkGetMemoryFdKHR(VkDevice device,
- const VkMemoryGetFdInfoKHR* pGetFdInfo,
- int* pFd) {
-@@ -1081,4 +1081,4 @@ ALWAYS_INLINE VkResult vkQueuePresentKHR
- pPresentInfo);
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ ALWAYS_INLINE VkResult vkGetImageDrmFormatModifierPropertiesEXT(
+ VkDevice device,
+ VkImage image,
+@@ -1346,4 +1346,4 @@ ALWAYS_INLINE VkResult vkGetImageDrmForm
}
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-#endif // GPU_VULKAN_VULKAN_FUNCTION_POINTERS_H_
\ No newline at end of file
diff --git a/chromium/patches/patch-gpu_vulkan_vulkan__image.h b/chromium/patches/patch-gpu_vulkan_vulkan__image.h
new file mode 100644
index 0000000000..937be6a3af
--- /dev/null
+++ b/chromium/patches/patch-gpu_vulkan_vulkan__image.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- gpu/vulkan/vulkan_image.h.orig 2024-07-24 02:44:39.277037100 +0000
++++ gpu/vulkan/vulkan_image.h
+@@ -87,7 +87,7 @@ class COMPONENT_EXPORT(VULKAN) VulkanIma
+ VkImageUsageFlags usage,
+ VkImageCreateFlags flags);
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ static std::unique_ptr<VulkanImage> CreateWithExternalMemoryAndModifiers(
+ VulkanDeviceQueue* device_queue,
+ const gfx::Size& size,
+@@ -199,7 +199,7 @@ class COMPONENT_EXPORT(VULKAN) VulkanIma
+ VkImageTiling image_tiling,
+ uint32_t queue_family_index);
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ bool InitializeWithExternalMemoryAndModifiers(VulkanDeviceQueue* device_queue,
+ const gfx::Size& size,
+ VkFormat format,
diff --git a/chromium/patches/patch-gpu_vulkan_vulkan__util.cc b/chromium/patches/patch-gpu_vulkan_vulkan__util.cc
new file mode 100644
index 0000000000..a3df3d3d56
--- /dev/null
+++ b/chromium/patches/patch-gpu_vulkan_vulkan__util.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- gpu/vulkan/vulkan_util.cc.orig 2024-07-24 02:44:39.277037100 +0000
++++ gpu/vulkan/vulkan_util.cc
+@@ -468,7 +468,7 @@ bool CheckVulkanCompatibilities(
+ }
+ }
+
+-#if BUILDFLAG(IS_LINUX) && !defined(OZONE_PLATFORM_IS_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && !defined(OZONE_PLATFORM_IS_X11)
+ // Vulkan is only supported with X11 on Linux for now.
+ return false;
+ #else
diff --git a/chromium/patches/patch-headless_BUILD.gn b/chromium/patches/patch-headless_BUILD.gn
deleted file mode 100644
index 0aba6e2da5..0000000000
--- a/chromium/patches/patch-headless_BUILD.gn
+++ /dev/null
@@ -1,40 +0,0 @@
-$NetBSD$
-
---- headless/BUILD.gn.orig 2020-06-25 09:32:39.000000000 +0000
-+++ headless/BUILD.gn
-@@ -264,7 +264,7 @@ source_set("headless_shared_sources") {
- sources += generated_devtools_api
- sources += get_target_outputs(":protocol_sources")
-
-- if (!is_fuchsia) {
-+ if (!is_fuchsia && !is_bsd) {
- sources += [
- "lib/headless_crash_reporter_client.cc",
- "lib/headless_crash_reporter_client.h",
-@@ -284,7 +284,7 @@ source_set("headless_shared_sources") {
- "//url",
- ]
-
-- if (!is_fuchsia) {
-+ if (!is_fuchsia && !is_bsd) {
- deps += [ "//components/crash/content/browser" ]
- }
- if (is_component_build && is_win) {
-@@ -437,7 +437,7 @@ component("headless_non_renderer") {
- "//v8",
- ]
-
-- if (!is_fuchsia) {
-+ if (!is_fuchsia && !is_bsd) {
- deps += [ "//components/crash/content/browser" ]
- }
- if (is_win) {
-@@ -717,7 +717,7 @@ static_library("headless_shell_lib") {
- public_deps += [ ":headless_non_renderer" ]
- }
-
-- if (!is_fuchsia) {
-+ if (!is_fuchsia && !is_bsd) {
- deps += [ "//components/crash/content/browser" ]
- }
-
diff --git a/chromium/patches/patch-headless_lib_browser_headless__browser__main__parts.h b/chromium/patches/patch-headless_lib_browser_headless__browser__main__parts.h
deleted file mode 100644
index 55a71d702c..0000000000
--- a/chromium/patches/patch-headless_lib_browser_headless__browser__main__parts.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- headless/lib/browser/headless_browser_main_parts.h.orig 2020-07-15 18:55:58.000000000 +0000
-+++ headless/lib/browser/headless_browser_main_parts.h
-@@ -32,7 +32,7 @@ class HeadlessBrowserMainParts : public
- #if defined(OS_MACOSX)
- void PreMainMessageLoopStart() override;
- #endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- void PostMainMessageLoopStart() override;
- #endif
- void QuitMainMessageLoop();
diff --git a/chromium/patches/patch-headless_lib_browser_headless__browser__main__parts__linux.cc b/chromium/patches/patch-headless_lib_browser_headless__browser__main__parts__linux.cc
deleted file mode 100644
index d0cb841317..0000000000
--- a/chromium/patches/patch-headless_lib_browser_headless__browser__main__parts__linux.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- headless/lib/browser/headless_browser_main_parts_linux.cc.orig 2020-07-15 18:55:58.000000000 +0000
-+++ headless/lib/browser/headless_browser_main_parts_linux.cc
-@@ -10,7 +10,7 @@
- namespace headless {
-
- void HeadlessBrowserMainParts::PostMainMessageLoopStart() {
--#if defined(USE_DBUS) && !defined(OS_CHROMEOS)
-+#if defined(USE_DBUS) && !defined(OS_CHROMEOS) && !defined(OS_BSD)
- bluez::BluezDBusManager::Initialize(/*system_bus=*/nullptr);
- #endif
- }
diff --git a/chromium/patches/patch-headless_lib_browser_headless__browser__main__parts__posix.cc b/chromium/patches/patch-headless_lib_browser_headless__browser__main__parts__posix.cc
new file mode 100644
index 0000000000..914036a0a9
--- /dev/null
+++ b/chromium/patches/patch-headless_lib_browser_headless__browser__main__parts__posix.cc
@@ -0,0 +1,45 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- headless/lib/browser/headless_browser_main_parts_posix.cc.orig 2024-07-24 02:44:39.281037600 +0000
++++ headless/lib/browser/headless_browser_main_parts_posix.cc
+@@ -21,13 +21,13 @@
+ #include "content/public/browser/browser_thread.h"
+ #include "headless/lib/browser/headless_browser_impl.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "base/command_line.h"
+ #include "components/os_crypt/sync/key_storage_config_linux.h"
+ #include "components/os_crypt/sync/os_crypt.h"
+ #include "headless/public/switches.h"
+
+-#if defined(USE_DBUS)
++#if defined(USE_DBUS) && !BUILDFLAG(IS_BSD)
+ #include "device/bluetooth/dbus/bluez_dbus_manager.h"
+ #endif
+
+@@ -161,7 +161,7 @@ class BrowserShutdownHandler {
+
+ } // namespace
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ constexpr char kProductName[] = "HeadlessChrome";
+ #endif
+
+@@ -169,9 +169,9 @@ void HeadlessBrowserMainParts::PostCreat
+ BrowserShutdownHandler::Install(base::BindOnce(
+ &HeadlessBrowserImpl::ShutdownWithExitCode, browser_->GetWeakPtr()));
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+
+-#if defined(USE_DBUS)
++#if defined(USE_DBUS) && !BUILDFLAG(IS_BSD)
+ bluez::BluezDBusManager::Initialize(/*system_bus=*/nullptr);
+ #endif
+
diff --git a/chromium/patches/patch-headless_lib_browser_headless__content__browser__client.cc b/chromium/patches/patch-headless_lib_browser_headless__content__browser__client.cc
deleted file mode 100644
index 91c4c3e3cc..0000000000
--- a/chromium/patches/patch-headless_lib_browser_headless__content__browser__client.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- headless/lib/browser/headless_content_browser_client.cc.orig 2020-07-08 21:41:48.000000000 +0000
-+++ headless/lib/browser/headless_content_browser_client.cc
-@@ -158,7 +158,7 @@ HeadlessContentBrowserClient::GetGenerat
- return content::GeneratedCodeCacheSettings(true, 0, context->GetPath());
- }
-
--#if defined(OS_POSIX) && !defined(OS_MACOSX)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD)
- void HeadlessContentBrowserClient::GetAdditionalMappedFilesForChildProcess(
- const base::CommandLine& command_line,
- int child_process_id,
-@@ -241,7 +241,7 @@ void HeadlessContentBrowserClient::Appen
- process_type, child_process_id);
- }
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // Processes may only query perf_event_open with the BPF sandbox disabled.
- if (old_command_line.HasSwitch(::switches::kEnableThreadInstructionCount) &&
- old_command_line.HasSwitch(service_manager::switches::kNoSandbox)) {
diff --git a/chromium/patches/patch-headless_lib_browser_headless__content__browser__client.h b/chromium/patches/patch-headless_lib_browser_headless__content__browser__client.h
index f99555d5c8..dd77285a50 100644
--- a/chromium/patches/patch-headless_lib_browser_headless__content__browser__client.h
+++ b/chromium/patches/patch-headless_lib_browser_headless__content__browser__client.h
@@ -1,13 +1,17 @@
$NetBSD$
---- headless/lib/browser/headless_content_browser_client.h.orig 2020-07-08 21:40:44.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- headless/lib/browser/headless_content_browser_client.h.orig 2024-07-24 02:44:39.281037600 +0000
+++ headless/lib/browser/headless_content_browser_client.h
-@@ -29,7 +29,7 @@ class HeadlessContentBrowserClient : pub
- override;
+@@ -45,7 +45,7 @@ class HeadlessContentBrowserClient : pub
+ CreateDevToolsManagerDelegate() override;
content::GeneratedCodeCacheSettings GetGeneratedCodeCacheSettings(
content::BrowserContext* context) override;
--#if defined(OS_POSIX) && !defined(OS_MACOSX)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD)
+-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD)
void GetAdditionalMappedFilesForChildProcess(
const base::CommandLine& command_line,
int child_process_id,
diff --git a/chromium/patches/patch-headless_lib_browser_headless__request__context__manager.cc b/chromium/patches/patch-headless_lib_browser_headless__request__context__manager.cc
index 47a6832d81..2d4607f115 100644
--- a/chromium/patches/patch-headless_lib_browser_headless__request__context__manager.cc
+++ b/chromium/patches/patch-headless_lib_browser_headless__request__context__manager.cc
@@ -1,31 +1,17 @@
$NetBSD$
---- headless/lib/browser/headless_request_context_manager.cc.orig 2020-07-08 21:40:44.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- headless/lib/browser/headless_request_context_manager.cc.orig 2024-07-24 02:44:39.281037600 +0000
+++ headless/lib/browser/headless_request_context_manager.cc
-@@ -26,7 +26,7 @@ namespace headless {
-
- namespace {
-
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- constexpr char kProductName[] = "HeadlessChrome";
- #endif
-
-@@ -56,7 +56,7 @@ net::NetworkTrafficAnnotationTag GetProx
- return traffic_annotation;
- }
+@@ -66,7 +66,7 @@ void SetCryptKeyOnce(const base::FilePat
+ return;
+ done_once = true;
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- ::network::mojom::CryptConfigPtr BuildCryptConfigOnce(
- const base::FilePath& user_data_path) {
- static bool done_once = false;
-@@ -213,7 +213,7 @@ HeadlessRequestContextManager::HeadlessR
- proxy_config_monitor_ = std::make_unique<HeadlessProxyConfigMonitor>(
- base::ThreadTaskRunnerHandle::Get());
- }
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- auto crypt_config = BuildCryptConfigOnce(user_data_path_);
- if (crypt_config)
- content::GetNetworkService()->SetCryptConfig(std::move(crypt_config));
+-#if (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)) && defined(HEADLESS_USE_PREFS)
++#if (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(HEADLESS_USE_PREFS)
+ // The OSCrypt keys are process bound, so if network service is out of
+ // process, send it the required key if it is available.
+ if (content::IsOutOfProcessNetworkService()
diff --git a/chromium/patches/patch-headless_lib_browser_headless__web__contents__impl.cc b/chromium/patches/patch-headless_lib_browser_headless__web__contents__impl.cc
new file mode 100644
index 0000000000..6f1e1caa72
--- /dev/null
+++ b/chromium/patches/patch-headless_lib_browser_headless__web__contents__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- headless/lib/browser/headless_web_contents_impl.cc.orig 2024-07-24 02:44:39.281037600 +0000
++++ headless/lib/browser/headless_web_contents_impl.cc
+@@ -62,7 +62,7 @@ namespace headless {
+ namespace {
+
+ void UpdatePrefsFromSystemSettings(blink::RendererPreferences* prefs) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ content::UpdateFontRendererPreferencesFromSystemSettings(prefs);
+ #endif
+
diff --git a/chromium/patches/patch-headless_lib_headless__content__main__delegate.cc b/chromium/patches/patch-headless_lib_headless__content__main__delegate.cc
index 21f0fc5ae4..60dc8a5a8a 100644
--- a/chromium/patches/patch-headless_lib_headless__content__main__delegate.cc
+++ b/chromium/patches/patch-headless_lib_headless__content__main__delegate.cc
@@ -1,22 +1,17 @@
$NetBSD$
---- headless/lib/headless_content_main_delegate.cc.orig 2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- headless/lib/headless_content_main_delegate.cc.orig 2024-07-24 02:44:39.285038000 +0000
+++ headless/lib/headless_content_main_delegate.cc
-@@ -324,7 +324,7 @@ void HeadlessContentMainDelegate::InitCr
- const base::CommandLine& command_line) {
- if (command_line.HasSwitch(::switches::kDisableBreakpad))
- return;
--#if defined(OS_FUCHSIA)
-+#if defined(OS_FUCHSIA) || defined(OS_BSD)
- // TODO(fuchsia): Implement this when crash reporting/Breakpad are available
- // in Fuchsia. (crbug.com/753619)
- NOTIMPLEMENTED();
-@@ -405,7 +405,7 @@ int HeadlessContentMainDelegate::RunProc
- return 0;
- }
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- void SIGTERMProfilingShutdown(int signal) {
- content::Profiling::Stop();
- struct sigaction sigact;
+@@ -408,7 +408,7 @@ void HeadlessContentMainDelegate::InitCr
+ if (process_type != ::switches::kZygoteProcess) {
+ g_headless_crash_client.Pointer()->set_crash_dumps_dir(
+ command_line.GetSwitchValuePath(switches::kCrashDumpsDir));
+-#if !BUILDFLAG(IS_WIN)
++#if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_BSD)
+ crash_reporter::InitializeCrashpad(process_type.empty(), process_type);
+ #endif // !BUILDFLAG(IS_WIN)
+ crash_keys::SetSwitchesFromCommandLine(command_line, nullptr);
diff --git a/chromium/patches/patch-headless_lib_headless__content__main__delegate.h b/chromium/patches/patch-headless_lib_headless__content__main__delegate.h
deleted file mode 100644
index 0c9d8a52f1..0000000000
--- a/chromium/patches/patch-headless_lib_headless__content__main__delegate.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- headless/lib/headless_content_main_delegate.h.orig 2020-07-08 21:40:44.000000000 +0000
-+++ headless/lib/headless_content_main_delegate.h
-@@ -57,7 +57,7 @@ class HEADLESS_EXPORT HeadlessContentMai
-
- HeadlessBrowserImpl* browser() const { return browser_.get(); }
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- void ZygoteForked() override;
- #endif
-
diff --git a/chromium/patches/patch-headless_lib_headless__macros.h b/chromium/patches/patch-headless_lib_headless__macros.h
deleted file mode 100644
index 39d8ec0f88..0000000000
--- a/chromium/patches/patch-headless_lib_headless__macros.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- headless/lib/headless_macros.h.orig 2020-07-08 21:40:44.000000000 +0000
-+++ headless/lib/headless_macros.h
-@@ -7,7 +7,7 @@
-
- #include "build/build_config.h"
-
--#if defined(OS_POSIX) && !defined(OS_MACOSX)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD)
- #define HEADLESS_USE_BREAKPAD
- #endif // defined(OS_POSIX) && !defined(OS_MACOSX)
-
diff --git a/chromium/patches/patch-ipc_ipc__channel.h b/chromium/patches/patch-ipc_ipc__channel.h
index c3220c25fa..92393a00fe 100644
--- a/chromium/patches/patch-ipc_ipc__channel.h
+++ b/chromium/patches/patch-ipc_ipc__channel.h
@@ -1,13 +1,17 @@
$NetBSD$
---- ipc/ipc_channel.h.orig 2020-07-08 21:40:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ipc/ipc_channel.h.orig 2024-07-24 02:44:40.937198000 +0000
+++ ipc/ipc_channel.h
-@@ -244,7 +244,7 @@ class COMPONENT_EXPORT(IPC) Channel : pu
+@@ -218,7 +218,7 @@ class COMPONENT_EXPORT(IPC) Channel : pu
static std::string GenerateUniqueRandomChannelID();
#endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// Sandboxed processes live in a PID namespace, so when sending the IPC hello
// message from client to server we need to send the PID from the global
// PID namespace.
diff --git a/chromium/patches/patch-ipc_ipc__channel__common.cc b/chromium/patches/patch-ipc_ipc__channel__common.cc
index 1d48325d0b..8f458e401f 100644
--- a/chromium/patches/patch-ipc_ipc__channel__common.cc
+++ b/chromium/patches/patch-ipc_ipc__channel__common.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- ipc/ipc_channel_common.cc.orig 2020-07-08 21:40:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ipc/ipc_channel_common.cc.orig 2024-07-24 02:44:40.937198000 +0000
+++ ipc/ipc_channel_common.cc
@@ -10,7 +10,7 @@
namespace IPC {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
namespace {
int g_global_pid = 0;
diff --git a/chromium/patches/patch-ipc_ipc__channel__mojo.cc b/chromium/patches/patch-ipc_ipc__channel__mojo.cc
index 6fa6938ed6..5bfd4853ac 100644
--- a/chromium/patches/patch-ipc_ipc__channel__mojo.cc
+++ b/chromium/patches/patch-ipc_ipc__channel__mojo.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- ipc/ipc_channel_mojo.cc.orig 2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ipc/ipc_channel_mojo.cc.orig 2024-07-24 02:44:40.937198000 +0000
+++ ipc/ipc_channel_mojo.cc
-@@ -74,7 +74,7 @@ class MojoChannelFactory : public Channe
+@@ -105,7 +105,7 @@ class ThreadSafeChannelProxy : public mo
};
base::ProcessId GetSelfPID() {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
if (int global_pid = Channel::GetGlobalPid())
return global_pid;
- #endif // OS_LINUX
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
diff --git a/chromium/patches/patch-ipc_ipc__message__utils.cc b/chromium/patches/patch-ipc_ipc__message__utils.cc
index 334b4777b6..78748176ad 100644
--- a/chromium/patches/patch-ipc_ipc__message__utils.cc
+++ b/chromium/patches/patch-ipc_ipc__message__utils.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- ipc/ipc_message_utils.cc.orig 2020-07-08 21:40:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ipc/ipc_message_utils.cc.orig 2024-07-24 02:44:40.941198300 +0000
+++ ipc/ipc_message_utils.cc
-@@ -356,7 +356,7 @@ void ParamTraits<unsigned int>::Log(cons
- l->append(base::NumberToString(p));
+@@ -395,7 +395,7 @@ void ParamTraits<unsigned int>::Log(cons
}
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_FUCHSIA) || \
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_FUCHSIA) || defined(OS_BSD) || \
- (defined(OS_ANDROID) && defined(ARCH_CPU_64_BITS))
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_FUCHSIA) || \
++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) || \
+ (BUILDFLAG(IS_ANDROID) && defined(ARCH_CPU_64_BITS))
void ParamTraits<long>::Log(const param_type& p, std::string* l) {
l->append(base::NumberToString(p));
diff --git a/chromium/patches/patch-ipc_ipc__message__utils.h b/chromium/patches/patch-ipc_ipc__message__utils.h
index 898798f996..f64e715973 100644
--- a/chromium/patches/patch-ipc_ipc__message__utils.h
+++ b/chromium/patches/patch-ipc_ipc__message__utils.h
@@ -1,13 +1,17 @@
$NetBSD$
---- ipc/ipc_message_utils.h.orig 2020-07-08 21:40:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ipc/ipc_message_utils.h.orig 2024-07-24 02:44:40.941198300 +0000
+++ ipc/ipc_message_utils.h
-@@ -209,7 +209,7 @@ struct ParamTraits<unsigned int> {
- // 3) Android 64 bit and Fuchsia also have int64_t typedef'd to long.
+@@ -214,7 +214,7 @@ struct ParamTraits<unsigned int> {
// Since we want to support Android 32<>64 bit IPC, as long as we don't have
// these traits for 32 bit ARM then that'll catch any errors.
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_FUCHSIA) || \
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_FUCHSIA) || defined(OS_BSD) || \
- (defined(OS_ANDROID) && defined(ARCH_CPU_64_BITS))
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_FUCHSIA) || \
++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) || \
+ (BUILDFLAG(IS_ANDROID) && defined(ARCH_CPU_64_BITS))
template <>
struct ParamTraits<long> {
diff --git a/chromium/patches/patch-media_BUILD.gn b/chromium/patches/patch-media_BUILD.gn
new file mode 100644
index 0000000000..180914062d
--- /dev/null
+++ b/chromium/patches/patch-media_BUILD.gn
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/BUILD.gn.orig 2024-07-24 02:44:40.949199200 +0000
++++ media/BUILD.gn
+@@ -96,6 +96,9 @@ config("media_config") {
+ defines += [ "DLOPEN_PULSEAUDIO" ]
+ }
+ }
++ if (use_sndio) {
++ defines += [ "USE_SNDIO" ]
++ }
+ if (use_cras) {
+ defines += [ "USE_CRAS" ]
+ }
diff --git a/chromium/patches/patch-media_audio_BUILD.gn b/chromium/patches/patch-media_audio_BUILD.gn
index 088c6a6794..9171658f70 100644
--- a/chromium/patches/patch-media_audio_BUILD.gn
+++ b/chromium/patches/patch-media_audio_BUILD.gn
@@ -1,13 +1,31 @@
$NetBSD$
---- media/audio/BUILD.gn.orig 2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/audio/BUILD.gn.orig 2024-07-24 02:44:40.949199200 +0000
+++ media/audio/BUILD.gn
-@@ -232,7 +232,7 @@ source_set("audio") {
- ]
+@@ -270,10 +270,21 @@ source_set("audio") {
+ deps += [ "//media/base/android:media_jni_headers" ]
}
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
+- if (is_linux || is_chromeos) {
++ if ((is_linux || is_chromeos) && !use_sndio) {
sources += [ "linux/audio_manager_linux.cc" ]
}
++ if (use_sndio) {
++ libs += [ "sndio" ]
++ sources += [
++ "sndio/audio_manager_sndio.cc",
++ "sndio/sndio_input.cc",
++ "sndio/sndio_input.h",
++ "sndio/sndio_output.cc",
++ "sndio/sndio_output.h"
++ ]
++ }
++
+ if (use_alsa) {
+ libs += [ "asound" ]
+ sources += [
diff --git a/chromium/patches/patch-media_audio_alsa_audio__manager__alsa.cc b/chromium/patches/patch-media_audio_alsa_audio__manager__alsa.cc
index 0a7e5f88bb..933899ec1c 100644
--- a/chromium/patches/patch-media_audio_alsa_audio__manager__alsa.cc
+++ b/chromium/patches/patch-media_audio_alsa_audio__manager__alsa.cc
@@ -1,54 +1,58 @@
$NetBSD$
---- media/audio/alsa/audio_manager_alsa.cc.orig 2020-07-08 21:40:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/audio/alsa/audio_manager_alsa.cc.orig 2024-07-24 02:44:40.953199600 +0000
+++ media/audio/alsa/audio_manager_alsa.cc
-@@ -92,7 +92,9 @@ void AudioManagerAlsa::GetAlsaAudioDevic
+@@ -95,7 +95,9 @@ void AudioManagerAlsa::GetAlsaAudioDevic
int card = -1;
- // Loop through the sound cards to get ALSA device hints.
-+#if defined(OS_LINUX)
+ // Loop through the physical sound cards to get ALSA device hints.
++#if !BUILDFLAG(IS_BSD)
while (!wrapper_->CardNext(&card) && card >= 0) {
+#endif
void** hints = NULL;
int error = wrapper_->DeviceNameHint(card, kPcmInterfaceName, &hints);
if (!error) {
-@@ -104,7 +106,9 @@ void AudioManagerAlsa::GetAlsaAudioDevic
+@@ -107,7 +109,9 @@ void AudioManagerAlsa::GetAlsaAudioDevic
DLOG(WARNING) << "GetAlsaAudioDevices: unable to get device hints: "
<< wrapper_->StrError(error);
}
-+#if defined(OS_LINUX)
++#if !BUILDFLAG(IS_BSD)
}
+#endif
}
void AudioManagerAlsa::GetAlsaDevicesInfo(AudioManagerAlsa::StreamType type,
-@@ -187,7 +191,11 @@ bool AudioManagerAlsa::IsAlsaDeviceAvail
+@@ -190,7 +194,11 @@ bool AudioManagerAlsa::IsAlsaDeviceAvail
// goes through software conversion if needed (e.g. incompatible
// sample rate).
// TODO(joi): Should we prefer "hw" instead?
-+#if defined(OS_LINUX)
- static const char kDeviceTypeDesired[] = "plughw";
-+#else
++#if BUILDFLAG(IS_BSD)
+ static const char kDeviceTypeDesired[] = "plug";
++#else
+ static const char kDeviceTypeDesired[] = "plughw";
+#endif
return strncmp(kDeviceTypeDesired, device_name,
- base::size(kDeviceTypeDesired) - 1) == 0;
+ std::size(kDeviceTypeDesired) - 1) == 0;
}
-@@ -209,7 +217,9 @@ bool AudioManagerAlsa::HasAnyAlsaAudioDe
+@@ -242,7 +250,9 @@ bool AudioManagerAlsa::HasAnyAlsaAudioDe
// Loop through the sound cards.
- // Don't use snd_device_name_hint(-1,..) since there is a access violation
+ // Don't use snd_device_name_hint(-1,..) since there is an access violation
// inside this ALSA API with libasound.so.2.0.0.
-+#if defined(OS_LINUX)
++#if !BUILDFLAG(IS_BSD)
while (!wrapper_->CardNext(&card) && (card >= 0) && !has_device) {
+#endif
int error = wrapper_->DeviceNameHint(card, kPcmInterfaceName, &hints);
if (!error) {
for (void** hint_iter = hints; *hint_iter != NULL; hint_iter++) {
-@@ -233,7 +243,9 @@ bool AudioManagerAlsa::HasAnyAlsaAudioDe
+@@ -266,7 +276,9 @@ bool AudioManagerAlsa::HasAnyAlsaAudioDe
DLOG(WARNING) << "HasAnyAudioDevice: unable to get device hints: "
<< wrapper_->StrError(error);
}
-+#if defined(OS_LINUX)
++#if !BUILDFLAG(IS_BSD)
}
+#endif
diff --git a/chromium/patches/patch-media_audio_audio__features.cc b/chromium/patches/patch-media_audio_audio__features.cc
deleted file mode 100644
index 722343dd82..0000000000
--- a/chromium/patches/patch-media_audio_audio__features.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- media/audio/audio_features.cc.orig 2020-07-08 21:40:45.000000000 +0000
-+++ media/audio/audio_features.cc
-@@ -11,7 +11,7 @@ namespace features {
- // detected. It will be restarted when needed.
- const base::Feature kAudioServiceOutOfProcessKillAtHang{
- "AudioServiceOutOfProcessKillAtHang",
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
- base::FEATURE_ENABLED_BY_DEFAULT
- #else
- base::FEATURE_DISABLED_BY_DEFAULT
diff --git a/chromium/patches/patch-media_audio_audio__input__device.cc b/chromium/patches/patch-media_audio_audio__input__device.cc
index 98ce4e64f7..bf87ee8e77 100644
--- a/chromium/patches/patch-media_audio_audio__input__device.cc
+++ b/chromium/patches/patch-media_audio_audio__input__device.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- media/audio/audio_input_device.cc.orig 2020-07-08 21:40:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/audio/audio_input_device.cc.orig 2024-07-24 02:44:40.957199800 +0000
+++ media/audio/audio_input_device.cc
-@@ -253,7 +253,7 @@ void AudioInputDevice::OnStreamCreated(
+@@ -264,7 +264,7 @@ void AudioInputDevice::OnStreamCreated(
// here. See comments in AliveChecker and PowerObserverHelper for details and
// todos.
if (detect_dead_stream_ == DeadStreamDetection::kEnabled) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- const bool stop_at_first_alive_notification = true;
- const bool pause_check_during_suspend = false;
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ const bool stop_at_first_alive_notification = true;
+ const bool pause_check_during_suspend = false;
#else
diff --git a/chromium/patches/patch-media_audio_audio__manager.cc b/chromium/patches/patch-media_audio_audio__manager.cc
deleted file mode 100644
index 78552ebc8d..0000000000
--- a/chromium/patches/patch-media_audio_audio__manager.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- media/audio/audio_manager.cc.orig 2020-07-08 21:40:45.000000000 +0000
-+++ media/audio/audio_manager.cc
-@@ -48,7 +48,7 @@ class AudioManagerHelper {
- }
- #endif
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- void set_app_name(const std::string& app_name) { app_name_ = app_name; }
- const std::string& app_name() const { return app_name_; }
- #endif
-@@ -59,7 +59,7 @@ class AudioManagerHelper {
- std::unique_ptr<base::win::ScopedCOMInitializer> com_initializer_for_testing_;
- #endif
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- std::string app_name_;
- #endif
-
-@@ -128,7 +128,7 @@ std::unique_ptr<AudioManager> AudioManag
- return Create(std::move(audio_thread), GetHelper()->fake_log_factory());
- }
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // static
- void AudioManager::SetGlobalAppName(const std::string& app_name) {
- GetHelper()->set_app_name(app_name);
diff --git a/chromium/patches/patch-media_audio_audio__manager.h b/chromium/patches/patch-media_audio_audio__manager.h
deleted file mode 100644
index a2a40451f7..0000000000
--- a/chromium/patches/patch-media_audio_audio__manager.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- media/audio/audio_manager.h.orig 2020-07-08 21:40:45.000000000 +0000
-+++ media/audio/audio_manager.h
-@@ -60,7 +60,7 @@ class MEDIA_EXPORT AudioManager {
- static std::unique_ptr<AudioManager> CreateForTesting(
- std::unique_ptr<AudioThread> audio_thread);
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // Sets the name of the audio source as seen by external apps. Only actually
- // used with PulseAudio as of this writing.
- static void SetGlobalAppName(const std::string& app_name);
diff --git a/chromium/patches/patch-media_audio_audio__output__proxy__unittest.cc b/chromium/patches/patch-media_audio_audio__output__proxy__unittest.cc
new file mode 100644
index 0000000000..ac8819542e
--- /dev/null
+++ b/chromium/patches/patch-media_audio_audio__output__proxy__unittest.cc
@@ -0,0 +1,20 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/audio/audio_output_proxy_unittest.cc.orig 2024-07-24 02:44:40.961200200 +0000
++++ media/audio/audio_output_proxy_unittest.cc
+@@ -443,7 +443,11 @@ class AudioOutputProxyTest : public test
+ // |stream| is closed at this point. Start() should reopen it again.
+ EXPECT_CALL(manager(), MakeAudioOutputStream(_, _, _))
+ .Times(2)
++#if BUILDFLAG(IS_BSD)
++ .WillRepeatedly(Return(static_cast<AudioOutputStream*>(NULL)));
++#else
+ .WillRepeatedly(Return(reinterpret_cast<AudioOutputStream*>(NULL)));
++#endif
+
+ EXPECT_CALL(callback_, OnError(_)).Times(2);
+
diff --git a/chromium/patches/patch-media_audio_pulse_pulse__util.cc b/chromium/patches/patch-media_audio_pulse_pulse__util.cc
new file mode 100644
index 0000000000..7ddf5d999a
--- /dev/null
+++ b/chromium/patches/patch-media_audio_pulse_pulse__util.cc
@@ -0,0 +1,21 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/audio/pulse/pulse_util.cc.orig 2024-07-24 02:44:40.973201500 +0000
++++ media/audio/pulse/pulse_util.cc
+@@ -45,8 +45,12 @@ constexpr char kBrowserDisplayName[] = "
+
+ #if defined(DLOPEN_PULSEAUDIO)
+ static const base::FilePath::CharType kPulseLib[] =
++#if BUILDFLAG(IS_BSD)
++ FILE_PATH_LITERAL("libpulse.so");
++#else
+ FILE_PATH_LITERAL("libpulse.so.0");
+ #endif
++#endif
+
+ void DestroyMainloop(pa_threaded_mainloop* mainloop) {
+ pa_threaded_mainloop_stop(mainloop);
diff --git a/chromium/patches/patch-media_audio_sndio_audio__manager__sndio.cc b/chromium/patches/patch-media_audio_sndio_audio__manager__sndio.cc
new file mode 100644
index 0000000000..444f391441
--- /dev/null
+++ b/chromium/patches/patch-media_audio_sndio_audio__manager__sndio.cc
@@ -0,0 +1,222 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/audio/sndio/audio_manager_sndio.cc.orig 2024-08-01 14:08:58.209213390 +0000
++++ media/audio/sndio/audio_manager_sndio.cc
+@@ -0,0 +1,213 @@
++// Copyright (c) 2012 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "base/command_line.h"
++#include "base/metrics/histogram_macros.h"
++#include "base/memory/ptr_util.h"
++
++#include "media/audio/sndio/audio_manager_sndio.h"
++
++#include "media/audio/audio_device_description.h"
++#include "media/audio/audio_output_dispatcher.h"
++#if defined(USE_SNDIO)
++#include "media/audio/sndio/sndio_input.h"
++#include "media/audio/sndio/sndio_output.h"
++#endif
++#if defined(USE_PULSEAUDIO)
++#include "media/audio/pulse/audio_manager_pulse.h"
++#include "media/audio/pulse/pulse_util.h"
++#endif
++#if defined(USE_ALSA)
++#include "media/audio/alsa/audio_manager_alsa.h"
++#endif
++#include "media/audio/fake_audio_manager.h"
++#include "media/base/limits.h"
++#include "media/base/media_switches.h"
++
++namespace media {
++
++#if defined(USE_SNDIO)
++// Maximum number of output streams that can be open simultaneously.
++static const int kMaxOutputStreams = 50;
++
++// Default sample rate for input and output streams.
++static const int kDefaultSampleRate = 48000;
++
++void AddDefaultDevice(AudioDeviceNames* device_names) {
++ DCHECK(device_names->empty());
++ device_names->push_front(AudioDeviceName::CreateDefault());
++}
++
++bool AudioManagerSndio::HasAudioOutputDevices() {
++ return true;
++}
++
++bool AudioManagerSndio::HasAudioInputDevices() {
++ return true;
++}
++
++void AudioManagerSndio::GetAudioInputDeviceNames(
++ AudioDeviceNames* device_names) {
++ DCHECK(device_names->empty());
++ AddDefaultDevice(device_names);
++}
++
++void AudioManagerSndio::GetAudioOutputDeviceNames(
++ AudioDeviceNames* device_names) {
++ AddDefaultDevice(device_names);
++}
++
++#if defined(USE_SNDIO)
++const char* AudioManagerSndio::GetName() {
++ return "SNDIO";
++}
++#endif
++
++AudioParameters AudioManagerSndio::GetInputStreamParameters(
++ const std::string& device_id) {
++ static const int kDefaultInputBufferSize = 1024;
++
++ int user_buffer_size = GetUserBufferSize();
++ int buffer_size = user_buffer_size ?
++ user_buffer_size : kDefaultInputBufferSize;
++
++ return AudioParameters(
++ AudioParameters::AUDIO_PCM_LOW_LATENCY, ChannelLayoutConfig::Stereo(),
++ kDefaultSampleRate, buffer_size);
++}
++
++AudioManagerSndio::AudioManagerSndio(std::unique_ptr<AudioThread> audio_thread,
++ AudioLogFactory* audio_log_factory)
++ : AudioManagerBase(std::move(audio_thread),
++ audio_log_factory) {
++ DLOG(WARNING) << "AudioManagerSndio";
++ SetMaxOutputStreamsAllowed(kMaxOutputStreams);
++}
++
++AudioManagerSndio::~AudioManagerSndio() = default;
++
++AudioOutputStream* AudioManagerSndio::MakeLinearOutputStream(
++ const AudioParameters& params,
++ const LogCallback& log_callback) {
++ DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format());
++ return MakeOutputStream(params);
++}
++
++AudioOutputStream* AudioManagerSndio::MakeLowLatencyOutputStream(
++ const AudioParameters& params,
++ const std::string& device_id,
++ const LogCallback& log_callback) {
++ DLOG_IF(ERROR, !device_id.empty()) << "Not implemented!";
++ DCHECK_EQ(AudioParameters::AUDIO_PCM_LOW_LATENCY, params.format());
++ return MakeOutputStream(params);
++}
++
++AudioInputStream* AudioManagerSndio::MakeLinearInputStream(
++ const AudioParameters& params,
++ const std::string& device_id,
++ const LogCallback& log_callback) {
++ DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format());
++ return MakeInputStream(params);
++}
++
++AudioInputStream* AudioManagerSndio::MakeLowLatencyInputStream(
++ const AudioParameters& params,
++ const std::string& device_id,
++ const LogCallback& log_callback) {
++ DCHECK_EQ(AudioParameters::AUDIO_PCM_LOW_LATENCY, params.format());
++ return MakeInputStream(params);
++}
++
++AudioParameters AudioManagerSndio::GetPreferredOutputStreamParameters(
++ const std::string& output_device_id,
++ const AudioParameters& input_params) {
++ // TODO(tommi): Support |output_device_id|.
++ DLOG_IF(ERROR, !output_device_id.empty()) << "Not implemented!";
++ static const int kDefaultOutputBufferSize = 2048;
++
++ ChannelLayoutConfig channel_layout_config = ChannelLayoutConfig::Stereo();
++ int sample_rate = kDefaultSampleRate;
++ int buffer_size = kDefaultOutputBufferSize;
++ if (input_params.IsValid()) {
++ sample_rate = input_params.sample_rate();
++ channel_layout_config = input_params.channel_layout_config();
++ buffer_size = std::min(buffer_size, input_params.frames_per_buffer());
++ }
++
++ int user_buffer_size = GetUserBufferSize();
++ if (user_buffer_size)
++ buffer_size = user_buffer_size;
++
++ return AudioParameters(
++ AudioParameters::AUDIO_PCM_LOW_LATENCY,
++ channel_layout_config, sample_rate, buffer_size);
++}
++
++AudioInputStream* AudioManagerSndio::MakeInputStream(
++ const AudioParameters& params) {
++ DLOG(WARNING) << "MakeInputStream";
++ return new SndioAudioInputStream(this,
++ AudioDeviceDescription::kDefaultDeviceId, params);
++}
++
++AudioOutputStream* AudioManagerSndio::MakeOutputStream(
++ const AudioParameters& params) {
++ DLOG(WARNING) << "MakeOutputStream";
++ return new SndioAudioOutputStream(params, this);
++}
++#endif
++
++std::unique_ptr<media::AudioManager> CreateAudioManager(
++ std::unique_ptr<AudioThread> audio_thread,
++ AudioLogFactory* audio_log_factory) {
++ DLOG(WARNING) << "CreateAudioManager";
++
++ auto _ab = kAudioBackendParam.Get();
++
++ // For testing allow audio output to be disabled.
++ if (base::CommandLine::ForCurrentProcess()->HasSwitch(
++ switches::kDisableAudioOutput) ||
++ !base::FeatureList::IsEnabled(media::kAudioBackend)) {
++ return std::make_unique<FakeAudioManager>(std::move(audio_thread),
++ audio_log_factory);
++ }
++
++#if defined(USE_PULSEAUDIO)
++ pa_threaded_mainloop* pa_mainloop = nullptr;
++ pa_context* pa_context = nullptr;
++ if (_ab != AudioBackend::kSndio && _ab != AudioBackend::kAlsa &&
++ pulse::InitPulse(&pa_mainloop, &pa_context)) {
++ return std::make_unique<AudioManagerPulse>(
++ std::move(audio_thread), audio_log_factory, pa_mainloop, pa_context);
++ } else if (_ab == AudioBackend::kAuto) {
++ LOG(WARNING) << "Falling back to SNDIO for audio output. PulseAudio is not "
++ "available or could not be initialized.";
++ }
++#endif
++
++#if defined(USE_SNDIO)
++ if (_ab != AudioBackend::kPulseAudio && _ab != AudioBackend::kAlsa) {
++ return std::make_unique<AudioManagerSndio>(std::move(audio_thread),
++ audio_log_factory);
++ } else if (_ab == AudioBackend::kAuto) {
++ LOG(WARNING) << "Falling back to ALSA audio output. SNDIO is not "
++ "available or could not be initialized.";
++ }
++#endif
++
++#if defined(USE_ALSA)
++ if (_ab != AudioBackend::kPulseAudio && _ab != AudioBackend::kSndio) {
++ return std::make_unique<AudioManagerAlsa>(std::move(audio_thread),
++ audio_log_factory);
++ } else if (_ab == AudioBackend::kAuto) {
++ LOG(WARNING) << "Falling back to fake audio output. ALSA is not "
++ "available or could not be initialized.";
++ }
++#endif
++
++ return std::make_unique<FakeAudioManager>(std::move(audio_thread),
++ audio_log_factory);
++}
++
++} // namespace media
diff --git a/chromium/patches/patch-media_audio_sndio_audio__manager__sndio.h b/chromium/patches/patch-media_audio_sndio_audio__manager__sndio.h
new file mode 100644
index 0000000000..d4a7a3f3a5
--- /dev/null
+++ b/chromium/patches/patch-media_audio_sndio_audio__manager__sndio.h
@@ -0,0 +1,75 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/audio/sndio/audio_manager_sndio.h.orig 2024-08-01 14:08:58.209876324 +0000
++++ media/audio/sndio/audio_manager_sndio.h
+@@ -0,0 +1,66 @@
++// Copyright (c) 2012 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef MEDIA_AUDIO_SNDIO_AUDIO_MANAGER_SNDIO_H_
++#define MEDIA_AUDIO_SNDIO_AUDIO_MANAGER_SNDIO_H_
++
++#include <set>
++
++#include "base/compiler_specific.h"
++#include "base/memory/ref_counted.h"
++#include "base/threading/thread.h"
++#include "media/audio/audio_manager_base.h"
++
++namespace media {
++
++class MEDIA_EXPORT AudioManagerSndio : public AudioManagerBase {
++ public:
++ AudioManagerSndio(std::unique_ptr<AudioThread> audio_thread,
++ AudioLogFactory* audio_log_factory);
++
++ AudioManagerSndio(const AudioManagerSndio&) = delete;
++ AudioManagerSndio& operator=(const AudioManagerSndio&) = delete;
++
++ ~AudioManagerSndio() override;
++
++ // Implementation of AudioManager.
++ bool HasAudioOutputDevices() override;
++ bool HasAudioInputDevices() override;
++ void GetAudioInputDeviceNames(AudioDeviceNames* device_names) override;
++ void GetAudioOutputDeviceNames(AudioDeviceNames* device_names) override;
++ AudioParameters GetInputStreamParameters(
++ const std::string& device_id) override;
++ const char* GetName() override;
++
++ // Implementation of AudioManagerBase.
++ AudioOutputStream* MakeLinearOutputStream(
++ const AudioParameters& params,
++ const LogCallback& log_callback) override;
++ AudioOutputStream* MakeLowLatencyOutputStream(
++ const AudioParameters& params,
++ const std::string& device_id,
++ const LogCallback& log_callback) override;
++ AudioInputStream* MakeLinearInputStream(
++ const AudioParameters& params,
++ const std::string& device_id,
++ const LogCallback& log_callback) override;
++ AudioInputStream* MakeLowLatencyInputStream(
++ const AudioParameters& params,
++ const std::string& device_id,
++ const LogCallback& log_callback) override;
++
++ protected:
++ AudioParameters GetPreferredOutputStreamParameters(
++ const std::string& output_device_id,
++ const AudioParameters& input_params) override;
++
++ private:
++ // Called by MakeLinearOutputStream and MakeLowLatencyOutputStream.
++ AudioOutputStream* MakeOutputStream(const AudioParameters& params);
++ AudioInputStream* MakeInputStream(const AudioParameters& params);
++};
++
++} // namespace media
++
++#endif // MEDIA_AUDIO_SNDIO_AUDIO_MANAGER_SNDIO_H_
diff --git a/chromium/patches/patch-media_audio_sndio_sndio__input.cc b/chromium/patches/patch-media_audio_sndio_sndio__input.cc
new file mode 100644
index 0000000000..195b82b9cb
--- /dev/null
+++ b/chromium/patches/patch-media_audio_sndio_sndio__input.cc
@@ -0,0 +1,209 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/audio/sndio/sndio_input.cc.orig 2024-08-01 14:08:58.210522496 +0000
++++ media/audio/sndio/sndio_input.cc
+@@ -0,0 +1,200 @@
++// Copyright 2013 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "base/logging.h"
++#include "media/base/audio_timestamp_helper.h"
++#include "media/audio/sndio/audio_manager_sndio.h"
++#include "media/audio/audio_manager.h"
++#include "media/audio/sndio/sndio_input.h"
++
++namespace media {
++
++static const SampleFormat kSampleFormat = kSampleFormatS16;
++
++void SndioAudioInputStream::OnMoveCallback(void *arg, int delta)
++{
++ SndioAudioInputStream* self = static_cast<SndioAudioInputStream*>(arg);
++
++ self->hw_delay += delta;
++}
++
++void *SndioAudioInputStream::ThreadEntry(void *arg) {
++ SndioAudioInputStream* self = static_cast<SndioAudioInputStream*>(arg);
++
++ self->ThreadLoop();
++ return NULL;
++}
++
++SndioAudioInputStream::SndioAudioInputStream(AudioManagerBase* manager,
++ const std::string& device_name,
++ const AudioParameters& params)
++ : manager(manager),
++ params(params),
++ audio_bus(AudioBus::Create(params)),
++ state(kClosed) {
++}
++
++SndioAudioInputStream::~SndioAudioInputStream() {
++ if (state != kClosed)
++ Close();
++}
++
++AudioInputStream::OpenOutcome SndioAudioInputStream::Open() {
++ struct sio_par par;
++ int sig;
++
++ if (state != kClosed)
++ return OpenOutcome::kFailed;
++
++ if (params.format() != AudioParameters::AUDIO_PCM_LINEAR &&
++ params.format() != AudioParameters::AUDIO_PCM_LOW_LATENCY) {
++ LOG(WARNING) << "Unsupported audio format.";
++ return OpenOutcome::kFailed;
++ }
++
++ sio_initpar(&par);
++ par.rate = params.sample_rate();
++ par.rchan = params.channels();
++ par.bits = SampleFormatToBitsPerChannel(kSampleFormat);
++ par.bps = par.bits / 8;
++ par.sig = sig = par.bits != 8 ? 1 : 0;
++ par.le = SIO_LE_NATIVE;
++ par.appbufsz = params.frames_per_buffer();
++
++ hdl = sio_open(SIO_DEVANY, SIO_REC, 0);
++
++ if (hdl == NULL) {
++ LOG(ERROR) << "Couldn't open audio device.";
++ return OpenOutcome::kFailed;
++ }
++
++ if (!sio_setpar(hdl, &par) || !sio_getpar(hdl, &par)) {
++ LOG(ERROR) << "Couldn't set audio parameters.";
++ goto bad_close;
++ }
++
++ if (par.rate != (unsigned int)params.sample_rate() ||
++ par.rchan != (unsigned int)params.channels() ||
++ par.bits != (unsigned int)SampleFormatToBitsPerChannel(kSampleFormat) ||
++ par.sig != (unsigned int)sig ||
++ (par.bps > 1 && par.le != SIO_LE_NATIVE) ||
++ (par.bits != par.bps * 8)) {
++ LOG(ERROR) << "Unsupported audio parameters.";
++ goto bad_close;
++ }
++ state = kStopped;
++ buffer = new char[audio_bus->frames() * params.GetBytesPerFrame(kSampleFormat)];
++ sio_onmove(hdl, &OnMoveCallback, this);
++ return OpenOutcome::kSuccess;
++bad_close:
++ sio_close(hdl);
++ return OpenOutcome::kFailed;
++}
++
++void SndioAudioInputStream::Start(AudioInputCallback* cb) {
++
++ StartAgc();
++
++ state = kRunning;
++ hw_delay = 0;
++ callback = cb;
++ sio_start(hdl);
++ if (pthread_create(&thread, NULL, &ThreadEntry, this) != 0) {
++ LOG(ERROR) << "Failed to create real-time thread for recording.";
++ sio_stop(hdl);
++ state = kStopped;
++ }
++}
++
++void SndioAudioInputStream::Stop() {
++
++ if (state == kStopped)
++ return;
++
++ state = kStopWait;
++ pthread_join(thread, NULL);
++ sio_stop(hdl);
++ state = kStopped;
++
++ StopAgc();
++}
++
++void SndioAudioInputStream::Close() {
++
++ if (state == kClosed)
++ goto release;
++
++ if (state == kRunning)
++ Stop();
++
++ state = kClosed;
++ delete [] buffer;
++ sio_close(hdl);
++
++release:
++ manager->ReleaseInputStream(this);
++}
++
++double SndioAudioInputStream::GetMaxVolume() {
++ // Not supported
++ return 0.0;
++}
++
++void SndioAudioInputStream::SetVolume(double volume) {
++ // Not supported. Do nothing.
++}
++
++double SndioAudioInputStream::GetVolume() {
++ // Not supported.
++ return 0.0;
++}
++
++bool SndioAudioInputStream::IsMuted() {
++ // Not supported.
++ return false;
++}
++
++void SndioAudioInputStream::SetOutputDeviceForAec(
++ const std::string& output_device_id) {
++ // Not supported.
++}
++
++void SndioAudioInputStream::ThreadLoop(void) {
++ size_t todo, n;
++ char *data;
++ unsigned int nframes;
++ double normalized_volume = 0.0;
++
++ nframes = audio_bus->frames();
++
++ while (state == kRunning && !sio_eof(hdl)) {
++
++ GetAgcVolume(&normalized_volume);
++
++ // read one block
++ todo = nframes * params.GetBytesPerFrame(kSampleFormat);
++ data = buffer;
++ while (todo > 0) {
++ n = sio_read(hdl, data, todo);
++ if (n == 0)
++ return; // unrecoverable I/O error
++ todo -= n;
++ data += n;
++ }
++ hw_delay -= nframes;
++
++ // convert frames count to TimeDelta
++ const base::TimeDelta delay = AudioTimestampHelper::FramesToTime(hw_delay,
++ params.sample_rate());
++
++ // push into bus
++ audio_bus->FromInterleaved<SignedInt16SampleTypeTraits>(reinterpret_cast<int16_t*>(buffer), nframes);
++
++
++ // invoke callback
++ callback->OnData(audio_bus.get(), base::TimeTicks::Now() - delay, 1., {});
++ }
++}
++
++} // namespace media
diff --git a/chromium/patches/patch-media_audio_sndio_sndio__input.h b/chromium/patches/patch-media_audio_sndio_sndio__input.h
new file mode 100644
index 0000000000..65d2af4fd3
--- /dev/null
+++ b/chromium/patches/patch-media_audio_sndio_sndio__input.h
@@ -0,0 +1,100 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/audio/sndio/sndio_input.h.orig 2024-08-01 14:08:58.211183475 +0000
++++ media/audio/sndio/sndio_input.h
+@@ -0,0 +1,91 @@
++// Copyright 2013 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef MEDIA_AUDIO_SNDIO_SNDIO_INPUT_H_
++#define MEDIA_AUDIO_SNDIO_SNDIO_INPUT_H_
++
++#include <stdint.h>
++#include <string>
++#include <sndio.h>
++
++#include "base/compiler_specific.h"
++#include "base/memory/weak_ptr.h"
++#include "base/time/time.h"
++#include "media/audio/agc_audio_stream.h"
++#include "media/audio/audio_io.h"
++#include "media/audio/audio_device_description.h"
++#include "media/base/audio_parameters.h"
++
++namespace media {
++
++class AudioManagerBase;
++
++// Implementation of AudioOutputStream using sndio(7)
++class SndioAudioInputStream : public AgcAudioStream<AudioInputStream> {
++ public:
++ // Pass this to the constructor if you want to attempt auto-selection
++ // of the audio recording device.
++ static const char kAutoSelectDevice[];
++
++ // Create a PCM Output stream for the SNDIO device identified by
++ // |device_name|. If unsure of what to use for |device_name|, use
++ // |kAutoSelectDevice|.
++ SndioAudioInputStream(AudioManagerBase* audio_manager,
++ const std::string& device_name,
++ const AudioParameters& params);
++
++ SndioAudioInputStream(const SndioAudioInputStream&) = delete;
++ SndioAudioInputStream& operator=(const SndioAudioInputStream&) = delete;
++
++ ~SndioAudioInputStream() override;
++
++ // Implementation of AudioInputStream.
++ OpenOutcome Open() override;
++ void Start(AudioInputCallback* callback) override;
++ void Stop() override;
++ void Close() override;
++ double GetMaxVolume() override;
++ void SetVolume(double volume) override;
++ double GetVolume() override;
++ bool IsMuted() override;
++ void SetOutputDeviceForAec(const std::string& output_device_id) override;
++
++ private:
++
++ enum StreamState {
++ kClosed, // Not opened yet
++ kStopped, // Device opened, but not started yet
++ kRunning, // Started, device playing
++ kStopWait // Stopping, waiting for the real-time thread to exit
++ };
++
++ // C-style call-backs
++ static void OnMoveCallback(void *arg, int delta);
++ static void* ThreadEntry(void *arg);
++
++ // Continuously moves data from the device to the consumer
++ void ThreadLoop();
++ // Our creator, the audio manager needs to be notified when we close.
++ AudioManagerBase* manager;
++ // Parameters of the source
++ AudioParameters params;
++ // We store data here for consumer
++ std::unique_ptr<AudioBus> audio_bus;
++ // Call-back that consumes recorded data
++ AudioInputCallback* callback; // Valid during a recording session.
++ // Handle of the audio device
++ struct sio_hdl* hdl;
++ // Current state of the stream
++ enum StreamState state;
++ // High priority thread running ThreadLoop()
++ pthread_t thread;
++ // Number of frames buffered in the hardware
++ int hw_delay;
++ // Temporary buffer where data is stored sndio-compatible format
++ char* buffer;
++};
++
++} // namespace media
++
++#endif // MEDIA_AUDIO_SNDIO_SNDIO_INPUT_H_
diff --git a/chromium/patches/patch-media_audio_sndio_sndio__output.cc b/chromium/patches/patch-media_audio_sndio_sndio__output.cc
new file mode 100644
index 0000000000..c5e712e087
--- /dev/null
+++ b/chromium/patches/patch-media_audio_sndio_sndio__output.cc
@@ -0,0 +1,196 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/audio/sndio/sndio_output.cc.orig 2024-08-01 14:08:58.211837190 +0000
++++ media/audio/sndio/sndio_output.cc
+@@ -0,0 +1,187 @@
++// Copyright (c) 2012 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "base/logging.h"
++#include "base/time/time.h"
++#include "base/time/default_tick_clock.h"
++#include "media/audio/audio_manager_base.h"
++#include "media/base/audio_timestamp_helper.h"
++#include "media/audio/sndio/sndio_output.h"
++
++namespace media {
++
++static const SampleFormat kSampleFormat = kSampleFormatS16;
++
++void SndioAudioOutputStream::OnMoveCallback(void *arg, int delta) {
++ SndioAudioOutputStream* self = static_cast<SndioAudioOutputStream*>(arg);
++
++ self->hw_delay -= delta;
++}
++
++void SndioAudioOutputStream::OnVolCallback(void *arg, unsigned int vol) {
++ SndioAudioOutputStream* self = static_cast<SndioAudioOutputStream*>(arg);
++
++ self->vol = vol;
++}
++
++void *SndioAudioOutputStream::ThreadEntry(void *arg) {
++ SndioAudioOutputStream* self = static_cast<SndioAudioOutputStream*>(arg);
++
++ self->ThreadLoop();
++ return NULL;
++}
++
++SndioAudioOutputStream::SndioAudioOutputStream(const AudioParameters& params,
++ AudioManagerBase* manager)
++ : manager(manager),
++ params(params),
++ audio_bus(AudioBus::Create(params)),
++ state(kClosed),
++ mutex(PTHREAD_MUTEX_INITIALIZER) {
++}
++
++SndioAudioOutputStream::~SndioAudioOutputStream() {
++ if (state != kClosed)
++ Close();
++}
++
++bool SndioAudioOutputStream::Open() {
++ if (params.format() != AudioParameters::AUDIO_PCM_LINEAR &&
++ params.format() != AudioParameters::AUDIO_PCM_LOW_LATENCY) {
++ LOG(WARNING) << "Unsupported audio format.";
++ return false;
++ }
++ state = kStopped;
++ volpending = 0;
++ vol = SIO_MAXVOL;
++ buffer = new char[audio_bus->frames() * params.GetBytesPerFrame(kSampleFormat)];
++ return true;
++}
++
++void SndioAudioOutputStream::Close() {
++ if (state == kClosed)
++ goto release;
++ if (state == kRunning)
++ Stop();
++ state = kClosed;
++ delete [] buffer;
++release:
++ manager->ReleaseOutputStream(this); // Calls the destructor
++}
++
++void SndioAudioOutputStream::Start(AudioSourceCallback* callback) {
++ struct sio_par par;
++ int sig;
++
++ sio_initpar(&par);
++ par.rate = params.sample_rate();
++ par.pchan = params.channels();
++ par.bits = SampleFormatToBitsPerChannel(kSampleFormat);
++ par.bps = par.bits / 8;
++ par.sig = sig = par.bits != 8 ? 1 : 0;
++ par.le = SIO_LE_NATIVE;
++ par.appbufsz = params.frames_per_buffer();
++
++ hdl = sio_open(SIO_DEVANY, SIO_PLAY, 0);
++ if (hdl == NULL) {
++ LOG(ERROR) << "Couldn't open audio device.";
++ return;
++ }
++ if (!sio_setpar(hdl, &par) || !sio_getpar(hdl, &par)) {
++ LOG(ERROR) << "Couldn't set audio parameters.";
++ sio_close(hdl);
++ return;
++ }
++ if (par.rate != (unsigned int)params.sample_rate() ||
++ par.pchan != (unsigned int)params.channels() ||
++ par.bits != (unsigned int)SampleFormatToBitsPerChannel(kSampleFormat) ||
++ par.sig != (unsigned int)sig ||
++ (par.bps > 1 && par.le != SIO_LE_NATIVE) ||
++ (par.bits != par.bps * 8)) {
++ LOG(ERROR) << "Unsupported audio parameters.";
++ sio_close(hdl);
++ return;
++ }
++
++ sio_onmove(hdl, &OnMoveCallback, this);
++ sio_onvol(hdl, &OnVolCallback, this);
++
++ state = kRunning;
++ hw_delay = 0;
++ source = callback;
++ sio_start(hdl);
++
++ if (pthread_create(&thread, NULL, &ThreadEntry, this) != 0) {
++ LOG(ERROR) << "Failed to create real-time thread.";
++ sio_stop(hdl);
++ sio_close(hdl);
++ state = kStopped;
++ }
++}
++
++void SndioAudioOutputStream::Stop() {
++ if (state == kStopped)
++ return;
++ state = kStopWait;
++ pthread_join(thread, NULL);
++ sio_stop(hdl);
++ sio_close(hdl);
++ state = kStopped;
++}
++
++void SndioAudioOutputStream::SetVolume(double v) {
++ pthread_mutex_lock(&mutex);
++ vol = v * SIO_MAXVOL;
++ volpending = 1;
++ pthread_mutex_unlock(&mutex);
++}
++
++void SndioAudioOutputStream::GetVolume(double* v) {
++ pthread_mutex_lock(&mutex);
++ *v = vol * (1. / SIO_MAXVOL);
++ pthread_mutex_unlock(&mutex);
++}
++
++// This stream is always used with sub second buffer sizes, where it's
++// sufficient to simply always flush upon Start().
++void SndioAudioOutputStream::Flush() {}
++
++void SndioAudioOutputStream::ThreadLoop(void) {
++ int avail, count, result;
++
++ while (state == kRunning) {
++ // Update volume if needed
++ pthread_mutex_lock(&mutex);
++ if (volpending) {
++ volpending = 0;
++ sio_setvol(hdl, vol);
++ }
++ pthread_mutex_unlock(&mutex);
++
++ // Get data to play
++ const base::TimeDelta delay = AudioTimestampHelper::FramesToTime(hw_delay,
++ params.sample_rate());
++ count = source->OnMoreData(delay, base::TimeTicks::Now(), {}, audio_bus.get());
++ audio_bus->ToInterleaved<SignedInt16SampleTypeTraits>(count, reinterpret_cast<int16_t*>(buffer));
++ if (count == 0) {
++ // We have to submit something to the device
++ count = audio_bus->frames();
++ memset(buffer, 0, count * params.GetBytesPerFrame(kSampleFormat));
++ LOG(WARNING) << "No data to play, running empty cycle.";
++ }
++
++ // Submit data to the device
++ avail = count * params.GetBytesPerFrame(kSampleFormat);
++ result = sio_write(hdl, buffer, avail);
++ if (result == 0) {
++ LOG(WARNING) << "Audio device disconnected.";
++ break;
++ }
++
++ // Update hardware pointer
++ hw_delay += count;
++ }
++}
++
++} // namespace media
diff --git a/chromium/patches/patch-media_audio_sndio_sndio__output.h b/chromium/patches/patch-media_audio_sndio_sndio__output.h
new file mode 100644
index 0000000000..7c44bd90cc
--- /dev/null
+++ b/chromium/patches/patch-media_audio_sndio_sndio__output.h
@@ -0,0 +1,97 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/audio/sndio/sndio_output.h.orig 2024-08-01 14:08:58.212501801 +0000
++++ media/audio/sndio/sndio_output.h
+@@ -0,0 +1,88 @@
++// Copyright (c) 2012 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef MEDIA_AUDIO_SNDIO_SNDIO_OUTPUT_H_
++#define MEDIA_AUDIO_SNDIO_SNDIO_OUTPUT_H_
++
++#include <pthread.h>
++#include <sndio.h>
++
++#include "base/time/tick_clock.h"
++#include "base/time/time.h"
++#include "media/audio/audio_io.h"
++
++namespace media {
++
++class AudioManagerBase;
++
++// Implementation of AudioOutputStream using sndio(7)
++class SndioAudioOutputStream : public AudioOutputStream {
++ public:
++ // The manager is creating this object
++ SndioAudioOutputStream(const AudioParameters& params,
++ AudioManagerBase* manager);
++
++ SndioAudioOutputStream(const SndioAudioOutputStream&) = delete;
++ SndioAudioOutputStream& operator=(const SndioAudioOutputStream&) = delete;
++
++ virtual ~SndioAudioOutputStream();
++
++ // Implementation of AudioOutputStream.
++ bool Open() override;
++ void Close() override;
++ void Start(AudioSourceCallback* callback) override;
++ void Stop() override;
++ void SetVolume(double volume) override;
++ void GetVolume(double* volume) override;
++ void Flush() override;
++
++ friend void sndio_onmove(void *arg, int delta);
++ friend void sndio_onvol(void *arg, unsigned int vol);
++ friend void *sndio_threadstart(void *arg);
++
++ private:
++ enum StreamState {
++ kClosed, // Not opened yet
++ kStopped, // Device opened, but not started yet
++ kRunning, // Started, device playing
++ kStopWait // Stopping, waiting for the real-time thread to exit
++ };
++
++ // C-style call-backs
++ static void OnMoveCallback(void *arg, int delta);
++ static void OnVolCallback(void *arg, unsigned int vol);
++ static void* ThreadEntry(void *arg);
++
++ // Continuously moves data from the producer to the device
++ void ThreadLoop(void);
++
++ // Our creator, the audio manager needs to be notified when we close.
++ AudioManagerBase* manager;
++ // Parameters of the source
++ AudioParameters params;
++ // Source stores data here
++ std::unique_ptr<AudioBus> audio_bus;
++ // Call-back that produces data to play
++ AudioSourceCallback* source;
++ // Handle of the audio device
++ struct sio_hdl* hdl;
++ // Current state of the stream
++ enum StreamState state;
++ // High priority thread running ThreadLoop()
++ pthread_t thread;
++ // Protects vol, volpending and hw_delay
++ pthread_mutex_t mutex;
++ // Current volume in the 0..SIO_MAXVOL range
++ int vol;
++ // Set to 1 if volumes must be refreshed in the realtime thread
++ int volpending;
++ // Number of frames buffered in the hardware
++ int hw_delay;
++ // Temporary buffer where data is stored sndio-compatible format
++ char* buffer;
++};
++
++} // namespace media
++
++#endif // MEDIA_AUDIO_SNDIO_SNDIO_OUTPUT_H_
diff --git a/chromium/patches/patch-media_base_BUILD.gn b/chromium/patches/patch-media_base_BUILD.gn
deleted file mode 100644
index 5abe1869d7..0000000000
--- a/chromium/patches/patch-media_base_BUILD.gn
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- media/base/BUILD.gn.orig 2020-07-15 18:56:47.000000000 +0000
-+++ media/base/BUILD.gn
-@@ -397,7 +397,7 @@ jumbo_source_set("base") {
- defines += [ "DISABLE_USER_INPUT_MONITOR" ]
- }
-
-- if (is_linux || is_win) {
-+ if (is_linux || is_win || is_bsd) {
- sources += [
- "keyboard_event_counter.cc",
- "keyboard_event_counter.h",
-@@ -405,7 +405,7 @@ jumbo_source_set("base") {
- }
-
- # Note: should also work on is_posix || is_fuchsia
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "scopedfd_helper.cc",
- "scopedfd_helper.h",
-@@ -612,7 +612,7 @@ source_set("unit_tests") {
- deps += [ "//media/base/mac:unit_tests" ]
- }
-
-- if (is_linux || is_win) {
-+ if (is_linux || is_win || is_bsd) {
- sources += [ "keyboard_event_counter_unittest.cc" ]
- }
- if (is_win) {
diff --git a/chromium/patches/patch-media_base_audio__latency.cc b/chromium/patches/patch-media_base_audio__latency.cc
index 6af80d2aff..50d83d6f32 100644
--- a/chromium/patches/patch-media_base_audio__latency.cc
+++ b/chromium/patches/patch-media_base_audio__latency.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- media/base/audio_latency.cc.orig 2020-07-08 21:40:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/base/audio_latency.cc.orig 2024-07-24 02:44:40.989203000 +0000
+++ media/base/audio_latency.cc
-@@ -113,7 +113,7 @@ int AudioLatency::GetRtcBufferSize(int s
- return frames_per_buffer;
+@@ -147,7 +147,7 @@ int AudioLatency::GetRtcBufferSize(int s
}
--#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_FUCHSIA) || defined(OS_BSD)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_APPLE) || \
+- BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
// On Linux, MacOS and Fuchsia, the low level IO implementations on the
// browser side supports all buffer size the clients want. We use the native
// peer connection buffer size (10ms) to achieve best possible performance.
diff --git a/chromium/patches/patch-media_base_libaom__thread__wrapper.cc b/chromium/patches/patch-media_base_libaom__thread__wrapper.cc
new file mode 100644
index 0000000000..ad18865a92
--- /dev/null
+++ b/chromium/patches/patch-media_base_libaom__thread__wrapper.cc
@@ -0,0 +1,30 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/base/libaom_thread_wrapper.cc.orig 2024-07-24 02:44:41.005204400 +0000
++++ media/base/libaom_thread_wrapper.cc
+@@ -5,17 +5,21 @@
+ #include "base/logging.h"
+ #include "media/base/codec_worker_impl.h"
+ #include "media/base/libvpx_thread_wrapper.h"
++#if !BUILDFLAG(IS_BSD)
+ #include "third_party/libaom/source/libaom/aom_util/aom_thread.h"
++#endif
+
+ namespace media {
+
+ void InitLibAomThreadWrapper() {
++#if !BUILDFLAG(IS_BSD)
+ const AVxWorkerInterface interface =
+ CodecWorkerImpl<AVxWorkerInterface, AVxWorkerImpl, AVxWorker,
+ AVxWorkerStatus, AVX_WORKER_STATUS_NOT_OK,
+ AVX_WORKER_STATUS_OK,
+ AVX_WORKER_STATUS_WORKING>::GetCodecWorkerInterface();
+ CHECK(aom_set_worker_interface(&interface));
++#endif
+ }
+
+ } // namespace media
diff --git a/chromium/patches/patch-media_base_libvpx__thread__wrapper.cc b/chromium/patches/patch-media_base_libvpx__thread__wrapper.cc
new file mode 100644
index 0000000000..3241f92c21
--- /dev/null
+++ b/chromium/patches/patch-media_base_libvpx__thread__wrapper.cc
@@ -0,0 +1,31 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/base/libvpx_thread_wrapper.cc.orig 2024-07-24 02:44:41.005204400 +0000
++++ media/base/libvpx_thread_wrapper.cc
+@@ -5,11 +5,14 @@
+ #include "media/base/libvpx_thread_wrapper.h"
+
+ #include "media/base/codec_worker_impl.h"
++#if !BUILDFLAG(IS_OPENBSD)
+ #include "third_party/libvpx/source/libvpx/vpx_util/vpx_thread.h"
++#endif
+
+ namespace media {
+
+ void InitLibVpxThreadWrapper() {
++#if !BUILDFLAG(IS_OPENBSD)
+ const VPxWorkerInterface interface =
+ CodecWorkerImpl<VPxWorkerInterface, VPxWorkerImpl, VPxWorker,
+ VPxWorkerStatus, VPX_WORKER_STATUS_NOT_OK,
+@@ -17,6 +20,7 @@ void InitLibVpxThreadWrapper() {
+ VPX_WORKER_STATUS_WORKING>::GetCodecWorkerInterface();
+
+ CHECK(vpx_set_worker_interface(&interface));
++#endif
+ }
+
+ } // namespace media
diff --git a/chromium/patches/patch-media_base_media__switches.cc b/chromium/patches/patch-media_base_media__switches.cc
index 29a02708b5..bbd8ab3c25 100644
--- a/chromium/patches/patch-media_base_media__switches.cc
+++ b/chromium/patches/patch-media_base_media__switches.cc
@@ -1,22 +1,147 @@
$NetBSD$
---- media/base/media_switches.cc.orig 2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/base/media_switches.cc.orig 2024-07-24 02:44:41.009204900 +0000
+++ media/base/media_switches.cc
-@@ -349,7 +349,7 @@ const base::Feature kGav1VideoDecoder{"G
- const base::Feature kGlobalMediaControls {
- "GlobalMediaControls",
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
-- (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+ ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
- base::FEATURE_ENABLED_BY_DEFAULT
+@@ -21,7 +21,7 @@
+ #include "ui/gl/gl_features.h"
+ #include "ui/gl/gl_utils.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "base/cpu.h"
+ #endif
+
+@@ -61,7 +61,7 @@ const char kReportVp9AsAnUnsupportedMime
+ "report-vp9-as-an-unsupported-mime-type";
+
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FREEBSD) || \
+- BUILDFLAG(IS_SOLARIS)
++ BUILDFLAG(IS_SOLARIS) || BUILDFLAG(IS_NETBSD)
+ // The Alsa device to use when opening an audio input stream.
+ const char kAlsaInputDevice[] = "alsa-input-device";
+ // The Alsa device to use when opening an audio stream.
+@@ -368,8 +368,8 @@ BASE_FEATURE(kMacLoopbackAudioForScreenS
+ "MacLoopbackAudioForScreenShare",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+ #endif // BUILDFLAG(IS_MAC)
+-
+-#if BUILDFLAG(IS_LINUX)
++
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Enables system audio mirroring using pulseaudio.
+ BASE_FEATURE(kPulseaudioLoopbackForCast,
+ "PulseaudioLoopbackForCast",
+@@ -379,6 +379,28 @@ BASE_FEATURE(kPulseaudioLoopbackForCast,
+ BASE_FEATURE(kPulseaudioLoopbackForScreenShare,
+ "PulseaudioLoopbackForScreenShare",
+ base::FEATURE_DISABLED_BY_DEFAULT);
++
++BASE_FEATURE(kAudioBackend,
++ "AudioBackend",
++ base::FEATURE_ENABLED_BY_DEFAULT);
++
++constexpr base::FeatureParam<AudioBackend>::Option
++ kAudioBackendOptions[] = {
++ {AudioBackend::kAuto,
++ "auto"},
++ {AudioBackend::kPulseAudio, "pulseaudio"},
++ {AudioBackend::kSndio, "sndio"},
++ {AudioBackend::kAlsa, "alsa"}};
++
++const base::FeatureParam<AudioBackend>
++ kAudioBackendParam{
++ &kAudioBackend, "audio-backend",
++#if BUILDFLAG(IS_OPENBSD)
++ AudioBackend::kSndio,
++#elif BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
++ AudioBackend::kAuto,
++#endif
++ &kAudioBackendOptions};
+ #endif // BUILDFLAG(IS_LINUX)
+
+ // When enabled, MediaCapabilities will check with GPU Video Accelerator
+@@ -677,7 +699,7 @@ BASE_FEATURE(kFallbackAfterDecodeError,
+ // Show toolbar button that opens dialog for controlling media sessions.
+ BASE_FEATURE(kGlobalMediaControls,
+ "GlobalMediaControls",
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+ base::FEATURE_DISABLED_BY_DEFAULT
+@@ -705,7 +727,7 @@ BASE_FEATURE(kGlobalMediaControlsUpdated
+ // If enabled, users can request Media Remoting without fullscreen-in-tab.
+ BASE_FEATURE(kMediaRemotingWithoutFullscreen,
+ "MediaRemotingWithoutFullscreen",
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+ base::FEATURE_DISABLED_BY_DEFAULT
+@@ -717,7 +739,7 @@ BASE_FEATURE(kMediaRemotingWithoutFullsc
+ BASE_FEATURE(kGlobalMediaControlsPictureInPicture,
+ "GlobalMediaControlsPictureInPicture",
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_CHROMEOS_LACROS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+ base::FEATURE_DISABLED_BY_DEFAULT
+@@ -746,7 +768,7 @@ BASE_FEATURE(kUnifiedAutoplay,
+ "UnifiedAutoplay",
+ base::FEATURE_ENABLED_BY_DEFAULT);
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Enable vaapi video decoding on linux. This is already enabled by default on
+ // chromeos, but needs an experiment on linux.
+ BASE_FEATURE(kVaapiVideoDecodeLinux,
+@@ -837,7 +859,7 @@ BASE_FEATURE(kVaapiVp9SModeHWEncoding,
+ "VaapiVp9SModeHWEncoding",
+ base::FEATURE_ENABLED_BY_DEFAULT);
+ #endif // defined(ARCH_CPU_X86_FAMILY) && BUILDFLAG(IS_CHROMEOS)
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Enables the new V4L2 flat video decoder clients instead of V4L2VideoDecoder.
+ // Owners: frkoenig%chromium.org@localhost, mcasas%chromium.org@localhost
+ // Expiry: When flat decoders are supported on all platforms and the legacy
+@@ -963,7 +985,7 @@ BASE_FEATURE(kLiveCaptionUseWaitK,
+ // Live Caption can be used in multiple languages, as opposed to just English.
+ BASE_FEATURE(kLiveCaptionMultiLanguage,
+ "LiveCaptionMultiLanguage",
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ base::FEATURE_ENABLED_BY_DEFAULT
#else
- base::FEATURE_DISABLED_BY_DEFAULT
-@@ -374,7 +374,7 @@ const base::Feature kGlobalMediaControls
- const base::Feature kGlobalMediaControlsPictureInPicture {
- "GlobalMediaControlsPictureInPicture",
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
-- (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+ ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
- base::FEATURE_ENABLED_BY_DEFAULT
+ base::FEATURE_DISABLED_BY_DEFAULT
+@@ -993,7 +1015,7 @@ BASE_FEATURE(kLiveCaptionWebAudio,
+ // Live Translate translates captions generated by Live Caption.
+ BASE_FEATURE(kLiveTranslate,
+ "LiveTranslate",
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ base::FEATURE_ENABLED_BY_DEFAULT
#else
- base::FEATURE_DISABLED_BY_DEFAULT
+ base::FEATURE_DISABLED_BY_DEFAULT
+@@ -1457,7 +1479,7 @@ BASE_FEATURE(kUseGTFOOutOfProcessVideoDe
+ base::FEATURE_DISABLED_BY_DEFAULT);
+ #endif // BUILDFLAG(ALLOW_OOP_VIDEO_DECODER)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Spawn utility processes to perform hardware encode acceleration instead of
+ // using the GPU process.
+ BASE_FEATURE(kUseOutOfProcessVideoEncoding,
+@@ -1537,7 +1559,7 @@ BASE_FEATURE(kRecordWebAudioEngagement,
+ "RecordWebAudioEngagement",
+ base::FEATURE_ENABLED_BY_DEFAULT);
+
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Reduces the number of buffers needed in the output video frame pool to
+ // populate the Renderer pipeline for hardware accelerated VideoDecoder in
+ // non-low latency scenarios.
diff --git a/chromium/patches/patch-media_base_media__switches.h b/chromium/patches/patch-media_base_media__switches.h
index a4bad30275..7eed19e322 100644
--- a/chromium/patches/patch-media_base_media__switches.h
+++ b/chromium/patches/patch-media_base_media__switches.h
@@ -1,13 +1,72 @@
$NetBSD$
---- media/base/media_switches.h.orig 2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/base/media_switches.h.orig 2024-07-24 02:44:41.009204900 +0000
+++ media/base/media_switches.h
-@@ -35,7 +35,7 @@ MEDIA_EXPORT extern const char kDisableB
-
+@@ -44,7 +44,7 @@ MEDIA_EXPORT extern const char kDisableB
MEDIA_EXPORT extern const char kReportVp9AsAnUnsupportedMimeType[];
--#if defined(OS_LINUX) || defined(OS_FREEBSD) || defined(OS_SOLARIS)
-+#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FREEBSD) || \
+- BUILDFLAG(IS_SOLARIS)
++ BUILDFLAG(IS_SOLARIS) || BUILDFLAG(IS_NETBSD)
MEDIA_EXPORT extern const char kAlsaInputDevice[];
MEDIA_EXPORT extern const char kAlsaOutputDevice[];
#endif
+@@ -325,13 +325,25 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE(kPlatf
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kPlaybackSpeedButton);
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kPreloadMediaEngagementData);
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kPreloadMetadataSuspend);
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kPulseaudioLoopbackForCast);
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kPulseaudioLoopbackForScreenShare);
++
++enum class AudioBackend {
++ kAuto,
++ kPulseAudio,
++ kSndio,
++ kAlsa
++};
++
++MEDIA_EXPORT BASE_DECLARE_FEATURE(kAudioBackend);
++MEDIA_EXPORT extern const base::FeatureParam<
++ AudioBackend>
++ kAudioBackendParam;
+ #endif // BUILDFLAG(IS_LINUX)
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kRecordMediaEngagementScores);
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kRecordWebAudioEngagement);
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kReduceHardwareVideoDecoderBuffers);
+ #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kResumeBackgroundVideo);
+@@ -346,7 +358,7 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE(kUnifi
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseAndroidOverlayForSecureOnly);
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseDecoderStreamForWebRTC);
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseFakeDeviceForMediaStream);
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kVaapiVideoDecodeLinux);
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kVaapiVideoDecodeLinuxGL);
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kVaapiVideoEncodeLinux);
+@@ -365,7 +377,7 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE(kVaapi
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kVaapiVp8TemporalLayerHWEncoding);
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kVaapiVp9SModeHWEncoding);
+ #endif // defined(ARCH_CPU_X86_FAMILY) && BUILDFLAG(IS_CHROMEOS)
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kV4L2FlatVideoDecoder);
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kV4L2FlatStatefulVideoDecoder);
+ #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+@@ -504,7 +516,7 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseOu
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseGTFOOutOfProcessVideoDecoding);
+ #endif // BUILDFLAG(ALLOW_OOP_VIDEO_DECODER)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseOutOfProcessVideoEncoding);
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+
diff --git a/chromium/patches/patch-media_base_scopedfd__helper.h b/chromium/patches/patch-media_base_scopedfd__helper.h
deleted file mode 100644
index 34b37fb055..0000000000
--- a/chromium/patches/patch-media_base_scopedfd__helper.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- media/base/scopedfd_helper.h.orig 2020-07-08 21:40:45.000000000 +0000
-+++ media/base/scopedfd_helper.h
-@@ -14,7 +14,7 @@ namespace media {
- // since the only current user is V4L2 we are limiting the scope to OS_LINUX so
- // the binary size does not inflate on non-using systems. Feel free to adapt
- // this and BUILD.gn as our needs evolve.
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-
- // Return a new vector containing duplicates of |fds|, or PCHECKs in case of an
- // error.
diff --git a/chromium/patches/patch-media_base_status.cc b/chromium/patches/patch-media_base_status.cc
deleted file mode 100644
index 7c718b7433..0000000000
--- a/chromium/patches/patch-media_base_status.cc
+++ /dev/null
@@ -1,14 +0,0 @@
-$NetBSD$
-
---- media/base/status.cc.orig 2020-07-08 21:40:45.000000000 +0000
-+++ media/base/status.cc
-@@ -66,7 +66,9 @@ Status&& Status::AddCause(Status&& cause
-
- void Status::AddFrame(const base::Location& location) {
- DCHECK(data_);
-+#if SUPPORTS_LOCATION_BUILTINS
- data_->frames.push_back(MediaSerialize(location));
-+#endif
- }
-
- Status OkStatus() {
diff --git a/chromium/patches/patch-media_base_user__input__monitor__unittest.cc b/chromium/patches/patch-media_base_user__input__monitor__unittest.cc
new file mode 100644
index 0000000000..1df931fcfa
--- /dev/null
+++ b/chromium/patches/patch-media_base_user__input__monitor__unittest.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/base/user_input_monitor_unittest.cc.orig 2024-07-24 02:44:41.021206100 +0000
++++ media/base/user_input_monitor_unittest.cc
+@@ -13,7 +13,7 @@
+ #include "build/build_config.h"
+ #include "testing/gtest/include/gtest/gtest.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "base/files/file_descriptor_watcher_posix.h"
+ #endif
+
+@@ -49,7 +49,7 @@ class UserInputMonitorTest : public test
+ } // namespace
+
+ TEST_F(UserInputMonitorTest, CreatePlatformSpecific) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ base::test::TaskEnvironment task_environment(
+ base::test::TaskEnvironment::MainThreadType::IO);
+ #else
+@@ -72,7 +72,7 @@ TEST_F(UserInputMonitorTest, CreatePlatf
+ }
+
+ TEST_F(UserInputMonitorTest, CreatePlatformSpecificWithMapping) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ base::test::TaskEnvironment task_environment(
+ base::test::TaskEnvironment::MainThreadType::IO);
+ #else
diff --git a/chromium/patches/patch-media_base_video__frame.cc b/chromium/patches/patch-media_base_video__frame.cc
index 74b413b380..2a43c124a5 100644
--- a/chromium/patches/patch-media_base_video__frame.cc
+++ b/chromium/patches/patch-media_base_video__frame.cc
@@ -1,67 +1,62 @@
$NetBSD$
---- media/base/video_frame.cc.orig 2020-07-08 21:40:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/base/video_frame.cc.orig 2024-07-24 02:44:41.025206600 +0000
+++ media/base/video_frame.cc
-@@ -57,7 +57,7 @@ std::string VideoFrame::StorageTypeToStr
+@@ -81,7 +81,7 @@ std::string VideoFrame::StorageTypeToStr
return "OWNED_MEMORY";
case VideoFrame::STORAGE_SHMEM:
return "SHMEM";
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
case VideoFrame::STORAGE_DMABUFS:
return "DMABUFS";
#endif
-@@ -74,7 +74,7 @@ std::string VideoFrame::StorageTypeToStr
+@@ -96,7 +96,7 @@ std::string VideoFrame::StorageTypeToStr
// static
bool VideoFrame::IsStorageTypeMappable(VideoFrame::StorageType storage_type) {
return
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// This is not strictly needed but makes explicit that, at VideoFrame
// level, DmaBufs are not mappable from userspace.
storage_type != VideoFrame::STORAGE_DMABUFS &&
-@@ -259,7 +259,7 @@ static base::Optional<VideoFrameLayout>
- return VideoFrameLayout::CreateWithPlanes(format, coded_size, planes);
- }
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // This class allows us to embed a vector<ScopedFD> into a scoped_refptr, and
- // thus to have several VideoFrames share the same set of DMABUF FDs.
- class VideoFrame::DmabufHolder
-@@ -589,7 +589,7 @@ scoped_refptr<VideoFrame> VideoFrame::Wr
+@@ -432,7 +432,7 @@ scoped_refptr<VideoFrame> VideoFrame::Cr
+ planes[i].stride = gpu_memory_buffer->stride(i);
+ }
+ uint64_t modifier = gfx::NativePixmapHandle::kNoModifier;
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ if (gpu_memory_buffer->GetType() == gfx::NATIVE_PIXMAP) {
+ const auto gmb_handle = gpu_memory_buffer->CloneHandle();
+ if (gmb_handle.is_null() ||
+@@ -806,7 +806,7 @@ scoped_refptr<VideoFrame> VideoFrame::Wr
return frame;
}
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// static
- scoped_refptr<VideoFrame> VideoFrame::WrapExternalDmabufs(
+ scoped_refptr<VideoFrame> VideoFrame::WrapUnownedExternalDmabufs(
const VideoFrameLayout& layout,
-@@ -725,7 +725,7 @@ scoped_refptr<VideoFrame> VideoFrame::Wr
- }
- }
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- DCHECK(frame->dmabuf_fds_);
- // If there are any |dmabuf_fds_| plugged in, we should refer them too.
- wrapping_frame->dmabuf_fds_ = frame->dmabuf_fds_;
-@@ -1058,7 +1058,7 @@ VideoFrame::mailbox_holder(size_t textur
- : mailbox_holders_[texture_index];
+@@ -1555,7 +1555,7 @@ scoped_refptr<gpu::ClientSharedImage> Vi
+ : shared_images_[texture_index];
}
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- const std::vector<base::ScopedFD>& VideoFrame::DmabufFds() const {
- DCHECK_EQ(storage_type_, STORAGE_DMABUFS);
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ size_t VideoFrame::NumDmabufFds() const {
+ if (wrapped_frame_) {
+ return wrapped_frame_->NumDmabufFds();
+@@ -1699,7 +1699,7 @@ VideoFrame::~VideoFrame() {
+ // Prevents dangling raw ptr, see https://docs.google.com/document/d/156O7kBZqIhe1dUcqTMcN5T-6YEAcg0yNnj5QlnZu9xU/edit?usp=sharing.
+ shm_region_ = nullptr;
-@@ -1141,7 +1141,7 @@ VideoFrame::VideoFrame(const VideoFrameL
- storage_type_(storage_type),
- visible_rect_(Intersection(visible_rect, gfx::Rect(layout.coded_size()))),
- natural_size_(natural_size),
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- dmabuf_fds_(base::MakeRefCounted<DmabufHolder>()),
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Prevents dangling dmabuf fds.
+ dmabuf_fds_.clear();
#endif
- timestamp_(timestamp),
diff --git a/chromium/patches/patch-media_base_video__frame.h b/chromium/patches/patch-media_base_video__frame.h
index ae6e98b316..546f759104 100644
--- a/chromium/patches/patch-media_base_video__frame.h
+++ b/chromium/patches/patch-media_base_video__frame.h
@@ -1,49 +1,53 @@
$NetBSD$
---- media/base/video_frame.h.orig 2020-07-08 21:40:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/base/video_frame.h.orig 2024-07-24 02:44:41.025206600 +0000
+++ media/base/video_frame.h
-@@ -40,7 +40,7 @@
- #include "base/mac/scoped_cftyperef.h"
- #endif // defined(OS_MACOSX)
+@@ -45,7 +45,7 @@
+ #include "base/apple/scoped_cftyperef.h"
+ #endif // BUILDFLAG(IS_APPLE)
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "base/files/scoped_file.h"
- #endif // defined(OS_LINUX)
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-@@ -81,7 +81,7 @@ class MEDIA_EXPORT VideoFrame : public b
+@@ -111,7 +111,7 @@ class MEDIA_EXPORT VideoFrame : public b
STORAGE_UNOWNED_MEMORY = 2, // External, non owned data pointers.
STORAGE_OWNED_MEMORY = 3, // VideoFrame has allocated its own data buffer.
- STORAGE_SHMEM = 4, // Backed by unsafe (writable) shared memory.
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+ STORAGE_SHMEM = 4, // Backed by read-only shared memory.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// TODO(mcasas): Consider turning this type into STORAGE_NATIVE
// based on the idea of using this same enum value for both DMA
// buffers on Linux and CVPixelBuffers on Mac (which currently use
-@@ -245,7 +245,7 @@ class MEDIA_EXPORT VideoFrame : public b
- ReleaseMailboxCB mailbox_holder_release_cb,
+@@ -386,7 +386,7 @@ class MEDIA_EXPORT VideoFrame : public b
+ ReleaseMailboxAndGpuMemoryBufferCB mailbox_holder_and_gmb_release_cb,
base::TimeDelta timestamp);
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// Wraps provided dmabufs
// (https://www.kernel.org/doc/html/latest/driver-api/dma-buf.html) with a
- // VideoFrame. The frame will take ownership of |dmabuf_fds|, and will
-@@ -485,7 +485,7 @@ class MEDIA_EXPORT VideoFrame : public b
- // mailbox, the caller must wait for the included sync point.
- const gpu::MailboxHolder& mailbox_holder(size_t texture_index) const;
+ // VideoFrame.
+@@ -719,7 +719,7 @@ class MEDIA_EXPORT VideoFrame : public b
+ scoped_refptr<gpu::ClientSharedImage> shared_image(
+ size_t texture_index) const;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // Returns a vector containing the backing DmaBufs for this frame. The number
- // of returned DmaBufs will be equal or less than the number of planes of
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // The number of DmaBufs will be equal or less than the number of planes of
// the frame. If there are less, this means that the last FD contains the
-@@ -671,7 +671,7 @@ class MEDIA_EXPORT VideoFrame : public b
- // GPU memory buffer, if this frame is STORAGE_GPU_MEMORY_BUFFER.
- std::unique_ptr<gfx::GpuMemoryBuffer> gpu_memory_buffer_;
+ // remaining planes. Should be > 0 for STORAGE_DMABUFS.
+@@ -950,7 +950,7 @@ class MEDIA_EXPORT VideoFrame : public b
+ // For now it's set to false always until clients starts using it.
+ const bool is_mappable_si_enabled_ = false;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- class DmabufHolder;
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// Dmabufs for the frame, used when storage is STORAGE_DMABUFS. Size is either
+ // equal or less than the number of planes of the frame. If it is less, then
diff --git a/chromium/patches/patch-media_capture_BUILD.gn b/chromium/patches/patch-media_capture_BUILD.gn
deleted file mode 100644
index d847fab38a..0000000000
--- a/chromium/patches/patch-media_capture_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- media/capture/BUILD.gn.orig 2020-07-15 18:56:47.000000000 +0000
-+++ media/capture/BUILD.gn
-@@ -227,7 +227,7 @@ jumbo_component("capture_lib") {
- }
-
- # This includes the case of ChromeOS
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "video/linux/camera_config_chromeos.cc",
- "video/linux/camera_config_chromeos.h",
diff --git a/chromium/patches/patch-media_capture_video_create__video__capture__device__factory.cc b/chromium/patches/patch-media_capture_video_create__video__capture__device__factory.cc
index 0f449fe112..f4b11fdb0b 100644
--- a/chromium/patches/patch-media_capture_video_create__video__capture__device__factory.cc
+++ b/chromium/patches/patch-media_capture_video_create__video__capture__device__factory.cc
@@ -1,22 +1,26 @@
$NetBSD$
---- media/capture/video/create_video_capture_device_factory.cc.orig 2020-07-08 21:40:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/capture/video/create_video_capture_device_factory.cc.orig 2024-07-24 02:44:41.053209300 +0000
+++ media/capture/video/create_video_capture_device_factory.cc
-@@ -10,7 +10,7 @@
+@@ -13,7 +13,7 @@
#include "media/capture/video/fake_video_capture_device_factory.h"
#include "media/capture/video/file_video_capture_device_factory.h"
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
#include "media/capture/video/linux/video_capture_device_factory_linux.h"
- #elif defined(OS_CHROMEOS)
- #include "media/capture/video/chromeos/camera_app_device_bridge_impl.h"
-@@ -82,7 +82,7 @@ CreateChromeOSVideoCaptureDeviceFactory(
+ #elif BUILDFLAG(IS_CHROMEOS_ASH)
+ #include "media/capture/video/chromeos/public/cros_features.h"
+@@ -56,7 +56,7 @@ CreateFakeVideoCaptureDeviceFactory() {
std::unique_ptr<VideoCaptureDeviceFactory>
CreatePlatformSpecificVideoCaptureDeviceFactory(
scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner) {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
return std::make_unique<VideoCaptureDeviceFactoryLinux>(ui_task_runner);
- #elif defined(OS_CHROMEOS)
- return CreateChromeOSVideoCaptureDeviceFactory(ui_task_runner, {});
+ #elif BUILDFLAG(IS_CHROMEOS_ASH)
+ if (base::SysInfo::IsRunningOnChromeOS())
diff --git a/chromium/patches/patch-media_capture_video_fake__video__capture__device__factory.cc b/chromium/patches/patch-media_capture_video_fake__video__capture__device__factory.cc
index 411f401d7f..f0cd7e92a9 100644
--- a/chromium/patches/patch-media_capture_video_fake__video__capture__device__factory.cc
+++ b/chromium/patches/patch-media_capture_video_fake__video__capture__device__factory.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- media/capture/video/fake_video_capture_device_factory.cc.orig 2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/capture/video/fake_video_capture_device_factory.cc.orig 2024-07-24 02:44:41.053209300 +0000
+++ media/capture/video/fake_video_capture_device_factory.cc
-@@ -208,7 +208,7 @@ void FakeVideoCaptureDeviceFactory::GetD
+@@ -231,7 +231,7 @@ void FakeVideoCaptureDeviceFactory::GetD
+ int entry_index = 0;
for (const auto& entry : devices_config_) {
- device_descriptors->emplace_back(
- base::StringPrintf("fake_device_%d", entry_index), entry.device_id,
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- VideoCaptureApi::LINUX_V4L2_SINGLE_PLANE,
- #elif defined(OS_MACOSX)
- VideoCaptureApi::MACOSX_AVFOUNDATION,
+ VideoCaptureApi api =
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ VideoCaptureApi::LINUX_V4L2_SINGLE_PLANE;
+ #elif BUILDFLAG(IS_IOS)
+ VideoCaptureApi::UNKNOWN;
diff --git a/chromium/patches/patch-media_capture_video_file__video__capture__device__factory.cc b/chromium/patches/patch-media_capture_video_file__video__capture__device__factory.cc
index 3324d947e6..e9dcb10f22 100644
--- a/chromium/patches/patch-media_capture_video_file__video__capture__device__factory.cc
+++ b/chromium/patches/patch-media_capture_video_file__video__capture__device__factory.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- media/capture/video/file_video_capture_device_factory.cc.orig 2020-07-08 21:40:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/capture/video/file_video_capture_device_factory.cc.orig 2024-07-24 02:44:41.053209300 +0000
+++ media/capture/video/file_video_capture_device_factory.cc
-@@ -54,7 +54,7 @@ void FileVideoCaptureDeviceFactory::GetD
- #elif defined(OS_MACOSX)
- command_line_file_path.value(), kFileVideoCaptureDeviceName,
- VideoCaptureApi::MACOSX_AVFOUNDATION
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- command_line_file_path.value(), kFileVideoCaptureDeviceName,
- VideoCaptureApi::LINUX_V4L2_SINGLE_PLANE
+@@ -52,7 +52,7 @@ void FileVideoCaptureDeviceFactory::GetD
+ VideoCaptureApi::WIN_DIRECT_SHOW;
+ #elif BUILDFLAG(IS_MAC)
+ VideoCaptureApi::MACOSX_AVFOUNDATION;
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ VideoCaptureApi::LINUX_V4L2_SINGLE_PLANE;
#else
+ VideoCaptureApi::UNKNOWN;
diff --git a/chromium/patches/patch-media_capture_video_linux_fake__v4l2__impl.cc b/chromium/patches/patch-media_capture_video_linux_fake__v4l2__impl.cc
new file mode 100644
index 0000000000..f104ee1ee9
--- /dev/null
+++ b/chromium/patches/patch-media_capture_video_linux_fake__v4l2__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/capture/video/linux/fake_v4l2_impl.cc.orig 2024-07-24 02:44:41.057209500 +0000
++++ media/capture/video/linux/fake_v4l2_impl.cc
+@@ -562,7 +562,7 @@ int FakeV4L2Impl::close(int fd) {
+ return kSuccessReturnValue;
+ }
+
+-int FakeV4L2Impl::ioctl(int fd, int request, void* argp) {
++int FakeV4L2Impl::ioctl(int fd, unsigned long request, void* argp) {
+ base::AutoLock lock(lock_);
+ auto device_iter = opened_devices_.find(fd);
+ if (device_iter == opened_devices_.end())
diff --git a/chromium/patches/patch-media_capture_video_linux_fake__v4l2__impl.h b/chromium/patches/patch-media_capture_video_linux_fake__v4l2__impl.h
new file mode 100644
index 0000000000..876efe8a16
--- /dev/null
+++ b/chromium/patches/patch-media_capture_video_linux_fake__v4l2__impl.h
@@ -0,0 +1,31 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/capture/video/linux/fake_v4l2_impl.h.orig 2024-07-24 02:44:41.057209500 +0000
++++ media/capture/video/linux/fake_v4l2_impl.h
+@@ -8,7 +8,13 @@
+ #include <map>
+ #include <string>
+
++#include "build/build_config.h"
++#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
++#include <sys/videoio.h>
++typedef __uint32_t __u32;
++#else
+ #include <linux/videodev2.h>
++#endif
+
+ #include "base/synchronization/lock.h"
+ #include "media/capture/capture_export.h"
+@@ -38,7 +44,7 @@ class CAPTURE_EXPORT FakeV4L2Impl : publ
+ // Implementation of V4L2CaptureDevice interface:
+ int open(const char* device_name, int flags) override;
+ int close(int fd) override;
+- int ioctl(int fd, int request, void* argp) override;
++ int ioctl(int fd, unsigned long request, void* argp) override;
+ void* mmap(void* start,
+ size_t length,
+ int prot,
diff --git a/chromium/patches/patch-media_capture_video_linux_v4l2__capture__delegate.cc b/chromium/patches/patch-media_capture_video_linux_v4l2__capture__delegate.cc
index 68ba07b43f..a97f0a4552 100644
--- a/chromium/patches/patch-media_capture_video_linux_v4l2__capture__delegate.cc
+++ b/chromium/patches/patch-media_capture_video_linux_v4l2__capture__delegate.cc
@@ -1,27 +1,36 @@
$NetBSD$
---- media/capture/video/linux/v4l2_capture_delegate.cc.orig 2020-07-15 18:55:59.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/capture/video/linux/v4l2_capture_delegate.cc.orig 2024-07-24 02:44:41.057209500 +0000
+++ media/capture/video/linux/v4l2_capture_delegate.cc
-@@ -4,8 +4,12 @@
-
+@@ -5,8 +5,10 @@
#include "media/capture/video/linux/v4l2_capture_delegate.h"
-+#if defined(OS_LINUX)
+ #include <fcntl.h>
++#if !BUILDFLAG(IS_BSD)
#include <linux/version.h>
#include <linux/videodev2.h>
-+#else
-+#include <sys/videoio.h>
+#endif
#include <poll.h>
- #include <sys/fcntl.h>
#include <sys/ioctl.h>
-@@ -24,10 +28,12 @@
+ #include <sys/mman.h>
+@@ -27,17 +29,19 @@
+ #include "media/capture/video/blob_utils.h"
+ #include "media/capture/video/linux/video_capture_device_linux.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "media/capture/capture_switches.h"
+ #include "media/capture/video/linux/v4l2_capture_delegate_gpu_helper.h"
+ #endif // BUILDFLAG(IS_LINUX)
using media::mojom::MeteringMode;
--#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0)
-+#if defined(OS_LINUX)
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0) || defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0)
// 16 bit depth, Realsense F200.
#define V4L2_PIX_FMT_Z16 v4l2_fourcc('Z', '1', '6', ' ')
#endif
@@ -29,120 +38,125 @@ $NetBSD$
// TODO(aleksandar.stojiljkovic): Wrap this with kernel version check once the
// format is introduced to kernel.
-@@ -66,8 +72,10 @@ struct {
- size_t num_planes;
- } constexpr kSupportedFormatsAndPlanarity[] = {
- {V4L2_PIX_FMT_YUV420, PIXEL_FORMAT_I420, 1},
-+#if !defined(OS_NETBSD)
- {V4L2_PIX_FMT_Y16, PIXEL_FORMAT_Y16, 1},
- {V4L2_PIX_FMT_Z16, PIXEL_FORMAT_Y16, 1},
-+#endif
- {V4L2_PIX_FMT_INVZ, PIXEL_FORMAT_Y16, 1},
- {V4L2_PIX_FMT_YUYV, PIXEL_FORMAT_YUY2, 1},
- {V4L2_PIX_FMT_RGB24, PIXEL_FORMAT_RGB24, 1},
-@@ -86,11 +94,13 @@ struct {
- constexpr int kMaxIOCtrlRetries = 5;
-
- // Base id and class identifier for Controls to be reset.
-+#if !defined(OS_NETBSD)
- struct {
- uint32_t control_base;
- uint32_t class_id;
- } constexpr kControls[] = {{V4L2_CID_USER_BASE, V4L2_CID_USER_CLASS},
- {V4L2_CID_CAMERA_CLASS_BASE, V4L2_CID_CAMERA_CLASS}};
-+#endif
+@@ -47,6 +51,14 @@ using media::mojom::MeteringMode;
+ #define V4L2_PIX_FMT_INVZ v4l2_fourcc('I', 'N', 'V', 'Z')
+ #endif
- // Fill in |format| with the given parameters.
- void FillV4L2Format(v4l2_format* format,
-@@ -123,9 +133,11 @@ void FillV4L2RequestBuffer(v4l2_requestb
- bool IsSpecialControl(int control_id) {
- switch (control_id) {
- case V4L2_CID_AUTO_WHITE_BALANCE:
-+#if !defined(OS_NETBSD)
- case V4L2_CID_EXPOSURE_AUTO:
- case V4L2_CID_EXPOSURE_AUTO_PRIORITY:
- case V4L2_CID_FOCUS_AUTO:
++#ifndef V4L2_COLORSPACE_OPRGB
++#define V4L2_COLORSPACE_OPRGB V4L2_COLORSPACE_ADOBERGB
+#endif
- return true;
- }
- return false;
-@@ -142,6 +154,7 @@ bool IsSpecialControl(int control_id) {
- #define V4L2_CID_PANTILT_CMD (V4L2_CID_CAMERA_CLASS_BASE + 34)
- #endif
- bool IsBlacklistedControl(int control_id) {
-+#if !defined(OS_NETBSD)
- switch (control_id) {
- case V4L2_CID_PAN_RELATIVE:
- case V4L2_CID_TILT_RELATIVE:
-@@ -157,6 +170,7 @@ bool IsBlacklistedControl(int control_id
- case V4L2_CID_PANTILT_CMD:
- return true;
- }
++
++#ifndef V4L2_XFER_FUNC_OPRGB
++#define V4L2_XFER_FUNC_OPRGB V4L2_XFER_FUNC_ADOBERGB
+#endif
- return false;
++
+ namespace media {
+
+ namespace {
+@@ -264,7 +276,7 @@ bool V4L2CaptureDelegate::IsBlockedContr
+ // static
+ bool V4L2CaptureDelegate::IsControllableControl(
+ int control_id,
+- const base::RepeatingCallback<int(int, void*)>& do_ioctl) {
++ const base::RepeatingCallback<int(unsigned int, void*)>& do_ioctl) {
+ const int special_control_id = GetControllingSpecialControl(control_id);
+ if (!special_control_id) {
+ // The control is not controlled by a special control thus the control is
+@@ -320,7 +332,7 @@ V4L2CaptureDelegate::V4L2CaptureDelegate
+ is_capturing_(false),
+ timeout_count_(0),
+ rotation_(rotation) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ use_gpu_buffer_ = switches::IsVideoCaptureUseGpuMemoryBufferEnabled();
+ #endif // BUILDFLAG(IS_LINUX)
+ }
+@@ -447,7 +459,7 @@ void V4L2CaptureDelegate::AllocateAndSta
+
+ client_->OnStarted();
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (use_gpu_buffer_) {
+ v4l2_gpu_helper_ = std::make_unique<V4L2CaptureDelegateGpuHelper>(
+ std::move(gmb_support_test_));
+@@ -797,7 +809,7 @@ void V4L2CaptureDelegate::SetGPUEnvironm
+
+ V4L2CaptureDelegate::~V4L2CaptureDelegate() = default;
+
+-bool V4L2CaptureDelegate::RunIoctl(int request, void* argp) {
++bool V4L2CaptureDelegate::RunIoctl(unsigned int request, void* argp) {
+ int num_retries = 0;
+ for (; DoIoctl(request, argp) < 0 && num_retries < kMaxIOCtrlRetries;
+ ++num_retries) {
+@@ -807,7 +819,7 @@ bool V4L2CaptureDelegate::RunIoctl(int r
+ return num_retries != kMaxIOCtrlRetries;
+ }
+
+-int V4L2CaptureDelegate::DoIoctl(int request, void* argp) {
++int V4L2CaptureDelegate::DoIoctl(unsigned int request, void* argp) {
+ return HANDLE_EINTR(v4l2_->ioctl(device_fd_.get(), request, argp));
}
-@@ -335,6 +349,7 @@ void V4L2CaptureDelegate::AllocateAndSta
-
- // Set anti-banding/anti-flicker to 50/60Hz. May fail due to not supported
- // operation (|errno| == EINVAL in this case) or plain failure.
-+#if !defined(OS_NETBSD)
- if ((power_line_frequency_ == V4L2_CID_POWER_LINE_FREQUENCY_50HZ) ||
- (power_line_frequency_ == V4L2_CID_POWER_LINE_FREQUENCY_60HZ) ||
- (power_line_frequency_ == V4L2_CID_POWER_LINE_FREQUENCY_AUTO)) {
-@@ -345,6 +360,7 @@ void V4L2CaptureDelegate::AllocateAndSta
- if (retval != 0)
- DVLOG(1) << "Error setting power line frequency removal";
+@@ -818,6 +830,7 @@ bool V4L2CaptureDelegate::IsControllable
+ }
+
+ void V4L2CaptureDelegate::ReplaceControlEventSubscriptions() {
++#if !BUILDFLAG(IS_BSD)
+ constexpr uint32_t kControlIds[] = {V4L2_CID_AUTO_EXPOSURE_BIAS,
+ V4L2_CID_AUTO_WHITE_BALANCE,
+ V4L2_CID_BRIGHTNESS,
+@@ -845,6 +858,7 @@ void V4L2CaptureDelegate::ReplaceControl
+ << ", {type = V4L2_EVENT_CTRL, id = " << control_id << "}";
+ }
}
+#endif
+ }
- capture_format_.frame_size.SetSize(video_fmt_.fmt.pix.width,
- video_fmt_.fmt.pix.height);
-@@ -384,6 +400,7 @@ void V4L2CaptureDelegate::GetPhotoState(
-
- mojom::PhotoStatePtr photo_capabilities = mojo::CreateEmptyPhotoState();
+ mojom::RangePtr V4L2CaptureDelegate::RetrieveUserControlRange(int control_id) {
+@@ -1025,7 +1039,11 @@ void V4L2CaptureDelegate::DoCapture() {
-+#if !defined(OS_NETBSD)
- photo_capabilities->pan = RetrieveUserControlRange(V4L2_CID_PAN_ABSOLUTE);
- photo_capabilities->tilt = RetrieveUserControlRange(V4L2_CID_TILT_ABSOLUTE);
- photo_capabilities->zoom = RetrieveUserControlRange(V4L2_CID_ZOOM_ABSOLUTE);
-@@ -481,6 +498,7 @@ void V4L2CaptureDelegate::GetPhotoState(
- photo_capabilities->saturation =
- RetrieveUserControlRange(V4L2_CID_SATURATION);
- photo_capabilities->sharpness = RetrieveUserControlRange(V4L2_CID_SHARPNESS);
+ pollfd device_pfd = {};
+ device_pfd.fd = device_fd_.get();
++#if !BUILDFLAG(IS_BSD)
+ device_pfd.events = POLLIN | POLLPRI;
++#else
++ device_pfd.events = POLLIN;
+#endif
- std::move(callback).Run(std::move(photo_capabilities));
- }
-@@ -492,6 +510,7 @@ void V4L2CaptureDelegate::SetPhotoOption
- if (!device_fd_.is_valid() || !is_capturing_)
- return;
-
-+#if !defined(OS_NETBSD)
- if (settings->has_pan) {
- v4l2_control pan_current = {};
- pan_current.id = V4L2_CID_PAN_ABSOLUTE;
-@@ -603,6 +622,7 @@ void V4L2CaptureDelegate::SetPhotoOption
- DoIoctl(VIDIOC_S_CTRL, &set_exposure_time);
+ const int result =
+ HANDLE_EINTR(v4l2_->poll(&device_pfd, 1, kCaptureTimeoutMs));
+@@ -1063,6 +1081,7 @@ void V4L2CaptureDelegate::DoCapture() {
+ timeout_count_ = 0;
+ }
+
++#if !BUILDFLAG(IS_BSD)
+ // Dequeue events if the driver has filled in some.
+ if (device_pfd.revents & POLLPRI) {
+ bool controls_changed = false;
+@@ -1098,6 +1117,7 @@ void V4L2CaptureDelegate::DoCapture() {
+ client_->OnCaptureConfigurationChanged();
}
}
+#endif
- if (settings->has_brightness) {
- v4l2_control current = {};
-@@ -686,6 +706,7 @@ mojom::RangePtr V4L2CaptureDelegate::Ret
- }
-
- void V4L2CaptureDelegate::ResetUserAndCameraControlsToDefault() {
-+#if !defined(OS_NETBSD)
- // Set V4L2_CID_AUTO_WHITE_BALANCE to false first.
- v4l2_control auto_white_balance = {};
- auto_white_balance.id = V4L2_CID_AUTO_WHITE_BALANCE;
-@@ -781,6 +802,7 @@ void V4L2CaptureDelegate::ResetUserAndCa
- ext_controls.controls = special_camera_controls.data();
- if (DoIoctl(VIDIOC_S_EXT_CTRLS, &ext_controls) < 0)
- DPLOG(INFO) << "VIDIOC_S_EXT_CTRLS";
-+#endif
+ // Deenqueue, send and reenqueue a buffer if the driver has filled one in.
+ if (device_pfd.revents & POLLIN) {
+@@ -1151,7 +1171,7 @@ void V4L2CaptureDelegate::DoCapture() {
+ // workable on Linux.
+
+ // See http://crbug.com/959919.
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (use_gpu_buffer_) {
+ v4l2_gpu_helper_->OnIncomingCapturedData(
+ client_.get(), buffer_tracker->start(),
+@@ -1224,7 +1244,7 @@ void V4L2CaptureDelegate::SetErrorState(
+ client_->OnError(error, from_here, reason);
}
- bool V4L2CaptureDelegate::MapAndQueueBuffer(int index) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ gfx::ColorSpace V4L2CaptureDelegate::BuildColorSpaceFromv4l2() {
+ v4l2_colorspace v4l2_primary = (v4l2_colorspace)video_fmt_.fmt.pix.colorspace;
+ v4l2_quantization v4l2_range =
diff --git a/chromium/patches/patch-media_capture_video_linux_v4l2__capture__delegate.h b/chromium/patches/patch-media_capture_video_linux_v4l2__capture__delegate.h
index 86a2bf5857..6721fb5f89 100644
--- a/chromium/patches/patch-media_capture_video_linux_v4l2__capture__delegate.h
+++ b/chromium/patches/patch-media_capture_video_linux_v4l2__capture__delegate.h
@@ -1,13 +1,66 @@
$NetBSD$
---- media/capture/video/linux/v4l2_capture_delegate.h.orig 2020-07-15 18:55:59.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/capture/video/linux/v4l2_capture_delegate.h.orig 2024-07-24 02:44:41.057209500 +0000
+++ media/capture/video/linux/v4l2_capture_delegate.h
-@@ -20,7 +20,7 @@
+@@ -23,7 +23,7 @@
#include "media/capture/video/linux/v4l2_capture_device_impl.h"
#include "media/capture/video/video_capture_device.h"
--#if defined(OS_OPENBSD)
-+#if defined(OS_OPENBSD) || defined(OS_NETBSD)
+-#if BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_OPENBSD) || defined(OS_NETBSD)
#include <sys/videoio.h>
#else
#include <linux/videodev2.h>
+@@ -35,7 +35,7 @@ class Location;
+
+ namespace media {
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ class V4L2CaptureDelegateGpuHelper;
+ #endif // BUILDFLAG(IS_LINUX)
+
+@@ -86,7 +86,7 @@ class CAPTURE_EXPORT V4L2CaptureDelegate
+ static bool IsBlockedControl(int control_id);
+ static bool IsControllableControl(
+ int control_id,
+- const base::RepeatingCallback<int(int, void*)>& do_ioctl);
++ const base::RepeatingCallback<int(unsigned int, void*)>& do_ioctl);
+
+ void SetGPUEnvironmentForTesting(
+ std::unique_ptr<gpu::GpuMemoryBufferSupport> gmb_support);
+@@ -100,10 +100,10 @@ class CAPTURE_EXPORT V4L2CaptureDelegate
+ // device file descriptor or (re)starting streaming, can fail but works after
+ // retrying (https://crbug.com/670262). Returns false if the |request| ioctl
+ // fails too many times.
+- bool RunIoctl(int request, void* argp);
++ bool RunIoctl(unsigned int request, void* argp);
+
+ // Simple wrapper to do HANDLE_EINTR(v4l2_->ioctl(device_fd_.get(), ...)).
+- int DoIoctl(int request, void* argp);
++ int DoIoctl(unsigned int request, void* argp);
+
+ // Check whether the control is controllable (and not changed automatically).
+ bool IsControllableControl(int control_id);
+@@ -133,7 +133,7 @@ class CAPTURE_EXPORT V4L2CaptureDelegate
+ const base::Location& from_here,
+ const std::string& reason);
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Systems which describe a "color space" usually map that to one or more of
+ // {primary, matrix, transfer, range}. BuildColorSpaceFromv4l2() will use the
+ // matched value as first priority. Otherwise, if there is no best matching
+@@ -167,7 +167,7 @@ class CAPTURE_EXPORT V4L2CaptureDelegate
+ // Clockwise rotation in degrees. This value should be 0, 90, 180, or 270.
+ int rotation_;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Support GPU memory buffer.
+ bool use_gpu_buffer_;
+ std::unique_ptr<V4L2CaptureDelegateGpuHelper> v4l2_gpu_helper_;
diff --git a/chromium/patches/patch-media_capture_video_linux_v4l2__capture__device.h b/chromium/patches/patch-media_capture_video_linux_v4l2__capture__device.h
new file mode 100644
index 0000000000..33ab1efeb8
--- /dev/null
+++ b/chromium/patches/patch-media_capture_video_linux_v4l2__capture__device.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/capture/video/linux/v4l2_capture_device.h.orig 2024-07-24 02:44:41.057209500 +0000
++++ media/capture/video/linux/v4l2_capture_device.h
+@@ -21,7 +21,7 @@ class CAPTURE_EXPORT V4L2CaptureDevice
+ public:
+ virtual int open(const char* device_name, int flags) = 0;
+ virtual int close(int fd) = 0;
+- virtual int ioctl(int fd, int request, void* argp) = 0;
++ virtual int ioctl(int fd, unsigned long request, void* argp) = 0;
+ virtual void* mmap(void* start,
+ size_t length,
+ int prot,
diff --git a/chromium/patches/patch-media_capture_video_linux_v4l2__capture__device__factory__linux.cc b/chromium/patches/patch-media_capture_video_linux_v4l2__capture__device__factory__linux.cc
deleted file mode 100644
index d2f8295d13..0000000000
--- a/chromium/patches/patch-media_capture_video_linux_v4l2__capture__device__factory__linux.cc
+++ /dev/null
@@ -1,47 +0,0 @@
-$NetBSD$
-
---- media/capture/video/linux/video_capture_device_factory_linux.cc.orig 2020-07-15 18:56:47.000000000 +0000
-+++ media/capture/video/linux/video_capture_device_factory_linux.cc
-@@ -21,7 +21,7 @@
- #include "media/capture/video/linux/scoped_v4l2_device_fd.h"
- #include "media/capture/video/linux/video_capture_device_linux.h"
-
--#if defined(OS_OPENBSD)
-+#if defined(OS_OPENBSD) || defined(OS_NETBSD)
- #include <sys/videoio.h>
- #else
- #include <linux/videodev2.h>
-@@ -256,6 +256,7 @@ int VideoCaptureDeviceFactoryLinux::DoIo
- // Check if the video capture device supports at least one of pan, tilt and zoom
- // controls.
- bool VideoCaptureDeviceFactoryLinux::IsPanTiltZoomSupported(int fd) {
-+#if !defined(OS_NETBSD)
- for (int control_id : {V4L2_CID_PAN_ABSOLUTE, V4L2_CID_TILT_ABSOLUTE,
- V4L2_CID_ZOOM_ABSOLUTE}) {
- v4l2_queryctrl range = {};
-@@ -266,6 +267,7 @@ bool VideoCaptureDeviceFactoryLinux::IsP
- return true;
- }
- }
-+#endif
- return false;
- }
-
-@@ -292,6 +294,7 @@ std::vector<float> VideoCaptureDeviceFac
- uint32_t fourcc,
- uint32_t width,
- uint32_t height) {
-+#if !defined(OS_NETBSD)
- std::vector<float> frame_rates;
-
- v4l2_frmivalenum frame_interval = {};
-@@ -318,6 +321,9 @@ std::vector<float> VideoCaptureDeviceFac
- if (frame_rates.empty())
- frame_rates.push_back(0);
- return frame_rates;
-+#else
-+ NOTIMPLEMENTED_LOG_ONCE();
-+#endif
- }
-
- void VideoCaptureDeviceFactoryLinux::GetSupportedFormatsForV4L2BufferType(
diff --git a/chromium/patches/patch-media_capture_video_linux_v4l2__capture__device__impl.cc b/chromium/patches/patch-media_capture_video_linux_v4l2__capture__device__impl.cc
new file mode 100644
index 0000000000..4ca5c3dea7
--- /dev/null
+++ b/chromium/patches/patch-media_capture_video_linux_v4l2__capture__device__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/capture/video/linux/v4l2_capture_device_impl.cc.orig 2024-07-24 02:44:41.057209500 +0000
++++ media/capture/video/linux/v4l2_capture_device_impl.cc
+@@ -22,7 +22,7 @@ int V4L2CaptureDeviceImpl::close(int fd)
+ return ::close(fd);
+ }
+
+-int V4L2CaptureDeviceImpl::ioctl(int fd, int request, void* argp) {
++int V4L2CaptureDeviceImpl::ioctl(int fd, unsigned long request, void* argp) {
+ return ::ioctl(fd, request, argp);
+ }
+
diff --git a/chromium/patches/patch-media_capture_video_linux_v4l2__capture__device__impl.h b/chromium/patches/patch-media_capture_video_linux_v4l2__capture__device__impl.h
new file mode 100644
index 0000000000..8085aa8a70
--- /dev/null
+++ b/chromium/patches/patch-media_capture_video_linux_v4l2__capture__device__impl.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/capture/video/linux/v4l2_capture_device_impl.h.orig 2024-07-24 02:44:41.057209500 +0000
++++ media/capture/video/linux/v4l2_capture_device_impl.h
+@@ -19,7 +19,7 @@ class CAPTURE_EXPORT V4L2CaptureDeviceIm
+ public:
+ int open(const char* device_name, int flags) override;
+ int close(int fd) override;
+- int ioctl(int fd, int request, void* argp) override;
++ int ioctl(int fd, unsigned long request, void* argp) override;
+ void* mmap(void* start,
+ size_t length,
+ int prot,
diff --git a/chromium/patches/patch-media_capture_video_linux_v4l2__capture__device__linux.cc b/chromium/patches/patch-media_capture_video_linux_v4l2__capture__device__linux.cc
deleted file mode 100644
index 574881531b..0000000000
--- a/chromium/patches/patch-media_capture_video_linux_v4l2__capture__device__linux.cc
+++ /dev/null
@@ -1,45 +0,0 @@
-$NetBSD$
-
---- media/capture/video/linux/video_capture_device_linux.cc.orig 2020-07-15 18:55:59.000000000 +0000
-+++ media/capture/video/linux/video_capture_device_linux.cc
-@@ -13,7 +13,7 @@
- #include "build/build_config.h"
- #include "media/capture/video/linux/v4l2_capture_delegate.h"
-
--#if defined(OS_OPENBSD)
-+#if defined(OS_OPENBSD) || defined(OS_NETBSD)
- #include <sys/videoio.h>
- #else
- #include <linux/videodev2.h>
-@@ -23,6 +23,7 @@ namespace media {
-
- namespace {
-
-+#if !defined(OS_NETBSD)
- int TranslatePowerLineFrequencyToV4L2(PowerLineFrequency frequency) {
- switch (frequency) {
- case PowerLineFrequency::FREQUENCY_50HZ:
-@@ -34,6 +35,7 @@ int TranslatePowerLineFrequencyToV4L2(Po
- return V4L2_CID_POWER_LINE_FREQUENCY_AUTO;
- }
- }
-+#endif
-
- } // namespace
-
-@@ -70,6 +72,7 @@ VideoCaptureDeviceLinux::~VideoCaptureDe
- void VideoCaptureDeviceLinux::AllocateAndStart(
- const VideoCaptureParams& params,
- std::unique_ptr<VideoCaptureDevice::Client> client) {
-+#if !defined(OS_NETBSD)
- DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
- DCHECK(!capture_impl_);
- if (v4l2_thread_.IsRunning())
-@@ -98,6 +101,7 @@ void VideoCaptureDeviceLinux::AllocateAn
- for (auto& request : photo_requests_queue_)
- v4l2_thread_.task_runner()->PostTask(FROM_HERE, std::move(request));
- photo_requests_queue_.clear();
-+#endif
- }
-
- void VideoCaptureDeviceLinux::StopAndDeAllocate() {
diff --git a/chromium/patches/patch-media_capture_video_linux_video__capture__device__factory__v4l2.cc b/chromium/patches/patch-media_capture_video_linux_video__capture__device__factory__v4l2.cc
new file mode 100644
index 0000000000..e6ef055e81
--- /dev/null
+++ b/chromium/patches/patch-media_capture_video_linux_video__capture__device__factory__v4l2.cc
@@ -0,0 +1,86 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/capture/video/linux/video_capture_device_factory_v4l2.cc.orig 2024-07-24 02:44:41.057209500 +0000
++++ media/capture/video/linux/video_capture_device_factory_v4l2.cc
+@@ -23,7 +23,7 @@
+ #include "media/capture/video/linux/scoped_v4l2_device_fd.h"
+ #include "media/capture/video/linux/video_capture_device_linux.h"
+
+-#if BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
+ #include <sys/videoio.h>
+ #else
+ #include <linux/videodev2.h>
+@@ -38,6 +38,7 @@ bool CompareCaptureDevices(const VideoCa
+ return a.descriptor < b.descriptor;
+ }
+
++#if !BUILDFLAG(IS_OPENBSD) && !BUILDFLAG(IS_NETBSD)
+ // USB VID and PID are both 4 bytes long.
+ const size_t kVidPidSize = 4;
+ const size_t kMaxInterfaceNameSize = 256;
+@@ -70,11 +71,15 @@ std::string ExtractFileNameFromDeviceId(
+ DCHECK(base::StartsWith(device_id, kDevDir, base::CompareCase::SENSITIVE));
+ return device_id.substr(strlen(kDevDir), device_id.length());
+ }
++#endif
+
+ class DevVideoFilePathsDeviceProvider
+ : public VideoCaptureDeviceFactoryV4L2::DeviceProvider {
+ public:
+ void GetDeviceIds(std::vector<std::string>* target_container) override {
++#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
++ target_container->emplace_back("/dev/video");
++#else
+ const base::FilePath path("/dev/");
+ base::FileEnumerator enumerator(path, false, base::FileEnumerator::FILES,
+ "video*");
+@@ -82,9 +87,13 @@ class DevVideoFilePathsDeviceProvider
+ const base::FileEnumerator::FileInfo info = enumerator.GetInfo();
+ target_container->emplace_back(path.value() + info.GetName().value());
+ }
++#endif
+ }
+
+ std::string GetDeviceModelId(const std::string& device_id) override {
++#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
++ return std::string();
++#else
+ const std::string file_name = ExtractFileNameFromDeviceId(device_id);
+ std::string usb_id;
+ const std::string vid_path =
+@@ -101,9 +110,13 @@ class DevVideoFilePathsDeviceProvider
+ }
+
+ return usb_id;
++#endif
+ }
+
+ std::string GetDeviceDisplayName(const std::string& device_id) override {
++#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
++ return std::string();
++#else
+ const std::string file_name = ExtractFileNameFromDeviceId(device_id);
+ const std::string interface_path =
+ base::StringPrintf(kInterfacePathTemplate, file_name.c_str());
+@@ -114,6 +127,7 @@ class DevVideoFilePathsDeviceProvider
+ return std::string();
+ }
+ return display_name;
++#endif
+ }
+ };
+
+@@ -219,7 +233,7 @@ void VideoCaptureDeviceFactoryV4L2::GetD
+ std::move(callback).Run(std::move(devices_info));
+ }
+
+-int VideoCaptureDeviceFactoryV4L2::DoIoctl(int fd, int request, void* argp) {
++int VideoCaptureDeviceFactoryV4L2::DoIoctl(int fd, unsigned int request, void* argp) {
+ return HANDLE_EINTR(v4l2_->ioctl(fd, request, argp));
+ }
+
diff --git a/chromium/patches/patch-media_capture_video_linux_video__capture__device__factory__v4l2.h b/chromium/patches/patch-media_capture_video_linux_video__capture__device__factory__v4l2.h
new file mode 100644
index 0000000000..f808211009
--- /dev/null
+++ b/chromium/patches/patch-media_capture_video_linux_video__capture__device__factory__v4l2.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/capture/video/linux/video_capture_device_factory_v4l2.h.orig 2024-07-24 02:44:41.057209500 +0000
++++ media/capture/video/linux/video_capture_device_factory_v4l2.h
+@@ -51,7 +51,7 @@ class CAPTURE_EXPORT VideoCaptureDeviceF
+
+ private:
+ // Simple wrapper to do HANDLE_EINTR(v4l2_->ioctl(fd, ...)).
+- int DoIoctl(int fd, int request, void* argp);
++ int DoIoctl(int fd, unsigned int request, void* argp);
+
+ VideoCaptureControlSupport GetControlSupport(int fd);
+ bool GetControlSupport(int fd, int control_id);
diff --git a/chromium/patches/patch-media_capture_video_linux_video__capture__device__linux.cc b/chromium/patches/patch-media_capture_video_linux_video__capture__device__linux.cc
new file mode 100644
index 0000000000..9e50c1b556
--- /dev/null
+++ b/chromium/patches/patch-media_capture_video_linux_video__capture__device__linux.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/capture/video/linux/video_capture_device_linux.cc.orig 2024-07-24 02:44:41.057209500 +0000
++++ media/capture/video/linux/video_capture_device_linux.cc
+@@ -15,7 +15,7 @@
+ #include "build/build_config.h"
+ #include "media/capture/video/linux/v4l2_capture_delegate.h"
+
+-#if BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
+ #include <sys/videoio.h>
+ #else
+ #include <linux/videodev2.h>
diff --git a/chromium/patches/patch-media_capture_video_video__capture__buffer__pool__impl.cc b/chromium/patches/patch-media_capture_video_video__capture__buffer__pool__impl.cc
deleted file mode 100644
index f3c595d6d8..0000000000
--- a/chromium/patches/patch-media_capture_video_video__capture__buffer__pool__impl.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- media/capture/video/video_capture_buffer_pool_impl.cc.orig 2020-07-08 21:40:45.000000000 +0000
-+++ media/capture/video/video_capture_buffer_pool_impl.cc
-@@ -58,7 +58,7 @@ VideoCaptureBufferPoolImpl::CreateShared
- int buffer_id) {
- // This requires platforms where base::SharedMemoryHandle is backed by a
- // file descriptor.
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- base::AutoLock lock(lock_);
-
- VideoCaptureBufferTracker* tracker = GetTracker(buffer_id);
diff --git a/chromium/patches/patch-media_capture_video_video__capture__buffer__tracker__factory__impl.cc b/chromium/patches/patch-media_capture_video_video__capture__buffer__tracker__factory__impl.cc
new file mode 100644
index 0000000000..de53809353
--- /dev/null
+++ b/chromium/patches/patch-media_capture_video_video__capture__buffer__tracker__factory__impl.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/capture/video/video_capture_buffer_tracker_factory_impl.cc.orig 2024-07-24 02:44:41.061210000 +0000
++++ media/capture/video/video_capture_buffer_tracker_factory_impl.cc
+@@ -14,7 +14,7 @@
+ #include "media/capture/video/chromeos/gpu_memory_buffer_tracker_cros.h"
+ #elif BUILDFLAG(IS_APPLE)
+ #include "media/capture/video/apple/gpu_memory_buffer_tracker_apple.h"
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "media/capture/video/linux/v4l2_gpu_memory_buffer_tracker.h"
+ #elif BUILDFLAG(IS_WIN)
+ #include "media/capture/video/win/gpu_memory_buffer_tracker_win.h"
+@@ -42,7 +42,7 @@ VideoCaptureBufferTrackerFactoryImpl::Cr
+ return std::make_unique<GpuMemoryBufferTrackerCros>();
+ #elif BUILDFLAG(IS_APPLE)
+ return std::make_unique<GpuMemoryBufferTrackerApple>();
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return std::make_unique<V4L2GpuMemoryBufferTracker>();
+ #elif BUILDFLAG(IS_WIN)
+ if (!dxgi_device_manager_) {
diff --git a/chromium/patches/patch-media_capture_video_video__capture__device__client.cc b/chromium/patches/patch-media_capture_video_video__capture__device__client.cc
index 76c811b134..f64b25c164 100644
--- a/chromium/patches/patch-media_capture_video_video__capture__device__client.cc
+++ b/chromium/patches/patch-media_capture_video_video__capture__device__client.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- media/capture/video/video_capture_device_client.cc.orig 2020-07-08 21:40:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/capture/video/video_capture_device_client.cc.orig 2024-07-24 02:44:41.061210000 +0000
+++ media/capture/video/video_capture_device_client.cc
-@@ -301,7 +301,7 @@ void VideoCaptureDeviceClient::OnIncomin
- // see http://linuxtv.org/downloads/v4l-dvb-apis/packed-rgb.html.
- // Windows RGB24 defines blue at lowest byte,
- // see https://msdn.microsoft.com/en-us/library/windows/desktop/dd407253
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- fourcc_format = libyuv::FOURCC_RAW;
- #elif defined(OS_WIN)
- fourcc_format = libyuv::FOURCC_24BG;
+@@ -164,7 +164,7 @@ FourccAndFlip GetFourccAndFlipFromPixelF
+ CHECK(!is_width_odd && !is_height_odd);
+ return {libyuv::FOURCC_UYVY};
+ case media::PIXEL_FORMAT_RGB24:
+- if constexpr (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) {
++ if constexpr (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) {
+ // Linux RGB24 defines red at lowest byte address,
+ // see http://linuxtv.org/downloads/v4l-dvb-apis/packed-rgb.html.
+ return {libyuv::FOURCC_RAW};
diff --git a/chromium/patches/patch-media_cast_BUILD.gn b/chromium/patches/patch-media_cast_BUILD.gn
deleted file mode 100644
index 09ad069cfc..0000000000
--- a/chromium/patches/patch-media_cast_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- media/cast/BUILD.gn.orig 2020-06-25 09:31:32.000000000 +0000
-+++ media/cast/BUILD.gn
-@@ -369,7 +369,7 @@ test("cast_unittests") {
- }
- }
-
--if (is_win || is_mac || (is_linux && !is_chromeos)) {
-+if (is_win || is_mac || (is_linux && !is_chromeos) || is_bsd) {
- # This is a target for the collection of cast development tools. They are
- # not built/linked into the Chromium browser.
- group("testing_tools") {
-@@ -503,7 +503,7 @@ if (is_win || is_mac || (is_linux && !is
- }
- }
-
--if (is_linux && !is_chromeos) {
-+if ((is_linux && !is_chromeos) || is_bsd) {
- test("tap_proxy") {
- sources = [ "test/utility/tap_proxy.cc" ]
-
diff --git a/chromium/patches/patch-media_cdm_cdm__paths__unittest.cc b/chromium/patches/patch-media_cdm_cdm__paths__unittest.cc
new file mode 100644
index 0000000000..28fe40f29d
--- /dev/null
+++ b/chromium/patches/patch-media_cdm_cdm__paths__unittest.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/cdm/cdm_paths_unittest.cc.orig 2024-07-24 02:44:41.085212200 +0000
++++ media/cdm/cdm_paths_unittest.cc
+@@ -27,7 +27,7 @@ const char kComponentPlatform[] =
+ "win";
+ #elif BUILDFLAG(IS_CHROMEOS)
+ "cros";
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ "linux";
+ #elif BUILDFLAG(IS_FUCHSIA)
+ "fuchsia";
diff --git a/chromium/patches/patch-media_cdm_library__cdm_cdm__paths.gni b/chromium/patches/patch-media_cdm_library__cdm_cdm__paths.gni
index f4f2e25250..be439c6456 100644
--- a/chromium/patches/patch-media_cdm_library__cdm_cdm__paths.gni
+++ b/chromium/patches/patch-media_cdm_library__cdm_cdm__paths.gni
@@ -1,8 +1,12 @@
$NetBSD$
---- media/cdm/library_cdm/cdm_paths.gni.orig 2020-07-15 18:55:59.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/cdm/library_cdm/cdm_paths.gni.orig 2024-07-24 02:44:41.089212700 +0000
+++ media/cdm/library_cdm/cdm_paths.gni
-@@ -11,7 +11,7 @@
+@@ -15,7 +15,7 @@ assert(enable_library_cdms)
# Explicitly define what we use to avoid confusion.
if (is_chromeos) {
component_os = "cros"
diff --git a/chromium/patches/patch-media_ffmpeg_scripts_build__ffmpeg.py b/chromium/patches/patch-media_ffmpeg_scripts_build__ffmpeg.py
new file mode 100644
index 0000000000..629ef9d7c6
--- /dev/null
+++ b/chromium/patches/patch-media_ffmpeg_scripts_build__ffmpeg.py
@@ -0,0 +1,82 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/ffmpeg/scripts/build_ffmpeg.py.orig 2024-07-24 02:44:41.093213000 +0000
++++ media/ffmpeg/scripts/build_ffmpeg.py
+@@ -33,7 +33,7 @@ NDK_ROOT_DIR = os.path.abspath(
+ SUCCESS_TOKEN = 'THIS_BUILD_WORKED'
+
+ sys.path.append(os.path.join(CHROMIUM_ROOT_DIR, 'build'))
+-import gn_helpers
++#import gn_helpers
+
+ BRANDINGS = [
+ 'Chrome',
+@@ -43,6 +43,9 @@ BRANDINGS = [
+ ARCH_MAP = {
+ 'android': ['ia32', 'x64', 'arm-neon', 'arm64'],
+ 'linux': ['ia32', 'x64', 'noasm-x64', 'arm', 'arm-neon', 'arm64'],
++ 'openbsd': ['x64', 'arm64', 'ia32'],
++ 'freebsd': ['x64', 'arm64', 'ia32'],
++ 'netbsd': ['x64', 'arm64', 'ia32'],
+ 'mac': ['x64', 'arm64'],
+ 'win': ['ia32', 'x64', 'arm64'],
+ }
+@@ -122,7 +125,7 @@ def PrintAndCheckCall(argv, *args, **kwa
+
+
+ def GetDsoName(target_os, dso_name, dso_version):
+- if target_os in ('linux', 'linux-noasm', 'android'):
++ if target_os in ('linux', 'linux-noasm', 'android', 'openbsd', 'freebsd', 'netbsd'):
+ return 'lib%s.so.%s' % (dso_name, dso_version)
+ elif target_os == 'mac':
+ return 'lib%s.%s.dylib' % (dso_name, dso_version)
+@@ -475,7 +478,7 @@ def BuildFFmpeg(target_os, target_arch,
+ # removing <sys/sysctl.h> soon, so this is needed to silence a deprecation
+ # #warning which will be converted to an error via -Werror.
+ # There is also no prctl.h
+- if target_os in ['linux', 'linux-noasm']:
++ if target_os in ['linux', 'linux-noasm', 'openbsd', 'freebsd', 'netbsd']:
+ pre_make_rewrites += [
+ (r'(#define HAVE_SYSCTL [01])',
+ r'#define HAVE_SYSCTL 0 /* \1 -- forced to 0 for Fuchsia */'),
+@@ -598,7 +601,7 @@ def main(argv):
+ configure_args = args[2:]
+
+ if target_os not in ('android', 'linux', 'linux-noasm', 'mac', 'win',
+- 'all'):
++ 'all', 'openbsd', 'freebsd', 'netbsd'):
+ parser.print_help()
+ return 1
+
+@@ -712,7 +715,7 @@ def ConfigureAndBuild(target_arch, targe
+ '--optflags="-O2"',
+ ])
+
+- if target_os in ('linux', 'linux-noasm', 'android'):
++ if target_os in ('linux', 'linux-noasm', 'android', 'openbsd', 'freebsd', 'netbsd'):
+ if target_arch == 'x64':
+ if target_os == 'android':
+ configure_flags['Common'].extend([
+@@ -827,9 +830,6 @@ def ConfigureAndBuild(target_arch, targe
+
+ configure_flags['Common'].extend([
+ '--target-os=linux',
+- '--sysroot=' +
+- os.path.join(CHROMIUM_ROOT_DIR,
+- 'build/linux/debian_bullseye_arm64-sysroot'),
+ # See crbug.com/1467681. These could be removed eventually
+ '--disable-dotprod',
+ '--disable-i8mm',
+@@ -921,7 +921,7 @@ def ConfigureAndBuild(target_arch, targe
+ # typically be the system one, so explicitly configure use of Clang's
+ # ld.lld, to ensure that things like cross-compilation and LTO work.
+ # This does not work for ia32 and is always used on mac.
+- if target_arch != 'ia32' and target_os != 'mac':
++ if target_arch != 'ia32' and target_os != 'mac' and target_os != 'netbsd':
+ configure_flags['Common'].append('--extra-ldflags=-fuse-ld=lld')
+
+ # Should be run on Mac, unless we're cross-compiling on Linux.
diff --git a/chromium/patches/patch-media_ffmpeg_scripts_robo__lib_config.py b/chromium/patches/patch-media_ffmpeg_scripts_robo__lib_config.py
new file mode 100644
index 0000000000..8880a08a21
--- /dev/null
+++ b/chromium/patches/patch-media_ffmpeg_scripts_robo__lib_config.py
@@ -0,0 +1,64 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/ffmpeg/scripts/robo_lib/config.py.orig 2024-07-24 02:44:41.097213500 +0000
++++ media/ffmpeg/scripts/robo_lib/config.py
+@@ -55,19 +55,13 @@ class RoboConfiguration:
+ self._llvm_path = os.path.join(self.chrome_src(), "third_party",
+ "llvm-build", "Release+Asserts", "bin")
+
+- self.EnsurePathContainsLLVM()
+- self.EnsureNoMakeInfo()
+ self.EnsureFFmpegHome()
+ self.EnsureGNConfig()
+- self.ComputeBranchName()
+
+ if not quiet:
+ shell.log(f"Using chrome src: {self.chrome_src()}")
+ shell.log(f"Using script dir: {self._script_directory}")
+ shell.log(f"Using ffmpeg home: {self.ffmpeg_home()}")
+- shell.log(f"On branch: {self.branch_name()}")
+- if self.sushi_branch_name():
+- shell.log(f"On sushi branch: {self.sushi_branch_name()}")
+
+ # Filename that we'll ask generate_gn.py to write git commands to.
+ # TODO: Should this use script_directory, or stay with ffmpeg? As long as
+@@ -186,9 +180,9 @@ class RoboConfiguration:
+
+ if re.match(r"i.86", platform.machine()):
+ self._host_architecture = "ia32"
+- elif platform.machine() == "x86_64" or platform.machine() == "AMD64":
++ elif platform.machine() == "x86_64" or platform.machine() == "AMD64" or platform.machine() == "amd64":
+ self._host_architecture = "x64"
+- elif platform.machine() == "aarch64":
++ elif platform.machine() == "aarch64" or platform.machine() == "arm64":
+ self._host_architecture = "arm64"
+ elif platform.machine() == "mips32":
+ self._host_architecture = "mipsel"
+@@ -223,6 +217,12 @@ class RoboConfiguration:
+ elif platform.system() == "Windows" or "CYGWIN_NT" in platform.system(
+ ):
+ self._host_operating_system = "win"
++ elif platform.system() == "OpenBSD":
++ self._host_operating_system = "openbsd"
++ elif platform.system() == "FreeBSD":
++ self._host_operating_system = "freebsd"
++ elif platform.system() == "NetBSD":
++ self._host_operating_system = "netbsd"
+ else:
+ raise ValueError(f"Unsupported platform: {platform.system()}")
+
+@@ -231,8 +231,8 @@ class RoboConfiguration:
+ wd = os.getcwd()
+ # Walk up the tree until we find src/AUTHORS
+ while wd != "/":
+- if os.path.isfile(os.path.join(wd, "src", "AUTHORS")):
+- self._chrome_src = os.path.join(wd, "src")
++ if os.path.isfile(os.path.join(wd, "third_party", "DEPS")):
++ self._chrome_src = wd
+ return
+ wd = os.path.dirname(wd)
+ raise Exception("could not find src/AUTHORS in any parent of the wd")
diff --git a/chromium/patches/patch-media_filters_vp9__parser.h b/chromium/patches/patch-media_filters_vp9__parser.h
deleted file mode 100644
index 1727fef7f4..0000000000
--- a/chromium/patches/patch-media_filters_vp9__parser.h
+++ /dev/null
@@ -1,12 +0,0 @@
-$NetBSD$
-
---- media/filters/vp9_parser.h.orig 2020-07-08 21:40:45.000000000 +0000
-+++ media/filters/vp9_parser.h
-@@ -14,6 +14,7 @@
-
- #include <stddef.h>
- #include <stdint.h>
-+#include <unistd.h>
- #include <sys/types.h>
-
- #include <memory>
diff --git a/chromium/patches/patch-media_gpu_buffer__validation.cc b/chromium/patches/patch-media_gpu_buffer__validation.cc
index 3eb50dbea8..fe63a132c5 100644
--- a/chromium/patches/patch-media_gpu_buffer__validation.cc
+++ b/chromium/patches/patch-media_gpu_buffer__validation.cc
@@ -1,31 +1,52 @@
$NetBSD$
---- media/gpu/buffer_validation.cc.orig 2020-07-08 21:40:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/gpu/buffer_validation.cc.orig 2024-07-24 02:44:41.161219600 +0000
+++ media/gpu/buffer_validation.cc
-@@ -12,7 +12,7 @@
+@@ -16,7 +16,7 @@
#include "ui/gfx/geometry/size.h"
#include "ui/gfx/gpu_memory_buffer.h"
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include <drm_fourcc.h>
#include <sys/types.h>
#include <unistd.h>
- #endif // defined(OS_LINUX)
-@@ -20,7 +20,7 @@
+@@ -29,7 +29,7 @@
namespace media {
+ namespace {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #ifndef I915_FORMAT_MOD_4_TILED_MTL_MC_CCS
+ // TODO(b/271455200): Remove this definition once drm_fourcc.h contains it.
+ /*
+@@ -55,7 +55,7 @@ bool IsIntelMediaCompressedModifier(uint
+ } // namespace
+
bool GetFileSize(const int fd, size_t* size) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
if (fd < 0) {
- VLOGF(1) << "Invalid file descriptor";
+ VLOG(1) << "Invalid file descriptor";
return false;
-@@ -56,7 +56,7 @@ bool VerifyGpuMemoryBufferHandle(media::
- VLOGF(1) << "Unexpected GpuMemoryBufferType: " << gmb_handle.type;
+@@ -109,14 +109,14 @@ bool VerifyGpuMemoryBufferHandle(
+ VLOG(1) << "Unsupported: " << pixel_format;
return false;
}
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- const size_t num_planes = media::VideoFrame::NumPlanes(pixel_format);
- if (num_planes != gmb_handle.native_pixmap_handle.planes.size() ||
- num_planes == 0) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ const uint64_t modifier = gmb_handle.native_pixmap_handle.modifier;
+ const bool is_intel_media_compressed_buffer =
+ IsIntelMediaCompressedModifier(modifier);
+ const bool is_intel_media_compression_enabled =
+ #if BUILDFLAG(IS_CHROMEOS)
+ base::FeatureList::IsEnabled(features::kEnableIntelMediaCompression);
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ false;
+ #endif
+
diff --git a/chromium/patches/patch-media_gpu_chromeos_BUILD.gn b/chromium/patches/patch-media_gpu_chromeos_BUILD.gn
deleted file mode 100644
index c09f117d78..0000000000
--- a/chromium/patches/patch-media_gpu_chromeos_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- media/gpu/chromeos/BUILD.gn.orig 2020-07-15 18:56:47.000000000 +0000
-+++ media/gpu/chromeos/BUILD.gn
-@@ -8,7 +8,7 @@ import("//testing/test.gni")
- assert(use_v4l2_codec || use_vaapi)
-
- # V4L2 or Vaapi imply the OS is Linux.
--assert(is_linux)
-+assert(is_linux || is_bsd)
-
- # This target can depend on targets in //media/gpu/{v4l2,vaapi}.
- source_set("chromeos") {
diff --git a/chromium/patches/patch-media_gpu_chromeos_gl__image__processor__backend.cc b/chromium/patches/patch-media_gpu_chromeos_gl__image__processor__backend.cc
new file mode 100644
index 0000000000..e6092c6ca4
--- /dev/null
+++ b/chromium/patches/patch-media_gpu_chromeos_gl__image__processor__backend.cc
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/gpu/chromeos/gl_image_processor_backend.cc.orig 2024-07-24 02:44:41.161219600 +0000
++++ media/gpu/chromeos/gl_image_processor_backend.cc
+@@ -28,6 +28,10 @@
+ #include "ui/ozone/public/ozone_platform.h"
+ #include "ui/ozone/public/surface_factory_ozone.h"
+
++#ifndef GL_CONTEXT_LOST_KHR
++#define GL_CONTEXT_LOST_KHR 0x0507
++#endif
++
+ namespace media {
+
+ namespace {
diff --git a/chromium/patches/patch-media_gpu_chromeos_libyuv__image__processor__backend.cc b/chromium/patches/patch-media_gpu_chromeos_libyuv__image__processor__backend.cc
new file mode 100644
index 0000000000..4499f45164
--- /dev/null
+++ b/chromium/patches/patch-media_gpu_chromeos_libyuv__image__processor__backend.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/gpu/chromeos/libyuv_image_processor_backend.cc.orig 2024-07-24 02:44:41.161219600 +0000
++++ media/gpu/chromeos/libyuv_image_processor_backend.cc
+@@ -48,7 +48,7 @@ static constexpr struct {
+ #define CONV(in, out, trans, result) \
+ {Fourcc::in, Fourcc::out, Transform::trans, SupportResult::result}
+ // Conversion.
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ CONV(NV12, AR24, kConversion, Supported),
+ #endif
+ CONV(NV12, NV12, kConversion, Supported),
+@@ -415,7 +415,7 @@ int LibYUVImageProcessorBackend::DoConve
+ fr->GetWritableVisibleData(VideoFrame::Plane::kUV)), \
+ fr->stride(VideoFrame::Plane::kUV)
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #define ARGB_DATA(fr) \
+ fr->GetWritableVisibleData(VideoFrame::Plane::kARGB), \
+ fr->stride(VideoFrame::Plane::kARGB)
+@@ -577,7 +577,7 @@ int LibYUVImageProcessorBackend::DoConve
+ }
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (output->format() == PIXEL_FORMAT_ARGB) {
+ if (input_config_.fourcc == Fourcc(Fourcc::NV12)) {
+ return LIBYUV_FUNC(NV12ToARGB, Y_UV_DATA(input),
diff --git a/chromium/patches/patch-media_gpu_chromeos_mailbox__video__frame__converter.cc b/chromium/patches/patch-media_gpu_chromeos_mailbox__video__frame__converter.cc
new file mode 100644
index 0000000000..50b2c1d750
--- /dev/null
+++ b/chromium/patches/patch-media_gpu_chromeos_mailbox__video__frame__converter.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/gpu/chromeos/mailbox_video_frame_converter.cc.orig 2024-07-24 02:44:41.165220000 +0000
++++ media/gpu/chromeos/mailbox_video_frame_converter.cc
+@@ -67,7 +67,7 @@ viz::SharedImageFormat GetSharedImageFor
+ << static_cast<int>(buffer_format);
+ NOTREACHED_NORETURN();
+ }
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // If format is true multiplanar format, we prefer external sampler on
+ // ChromeOS and Linux.
+ if (format.is_multi_plane()) {
diff --git a/chromium/patches/patch-media_gpu_chromeos_native__pixmap__frame__resource.cc b/chromium/patches/patch-media_gpu_chromeos_native__pixmap__frame__resource.cc
new file mode 100644
index 0000000000..61fc1551f9
--- /dev/null
+++ b/chromium/patches/patch-media_gpu_chromeos_native__pixmap__frame__resource.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/gpu/chromeos/native_pixmap_frame_resource.cc.orig 2024-07-24 02:44:41.165220000 +0000
++++ media/gpu/chromeos/native_pixmap_frame_resource.cc
+@@ -154,7 +154,7 @@ scoped_refptr<NativePixmapFrameResource>
+ const bool is_intel_media_compression_enabled =
+ #if BUILDFLAG(IS_CHROMEOS)
+ base::FeatureList::IsEnabled(features::kEnableIntelMediaCompression);
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ false;
+ #endif
+ CHECK(!is_intel_media_compressed_buffer ||
diff --git a/chromium/patches/patch-media_gpu_chromeos_platform__video__frame__utils.cc b/chromium/patches/patch-media_gpu_chromeos_platform__video__frame__utils.cc
new file mode 100644
index 0000000000..7e876dd6cd
--- /dev/null
+++ b/chromium/patches/patch-media_gpu_chromeos_platform__video__frame__utils.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/gpu/chromeos/platform_video_frame_utils.cc.orig 2024-07-24 02:44:41.165220000 +0000
++++ media/gpu/chromeos/platform_video_frame_utils.cc
+@@ -68,7 +68,7 @@ static std::unique_ptr<ui::GbmDevice> Cr
+ const base::FilePath dev_path(FILE_PATH_LITERAL(
+ base::StrCat({drm_node_file_prefix, base::NumberToString(i)})));
+
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(USE_V4L2_CODEC)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(USE_V4L2_CODEC)
+ const bool is_render_node = base::Contains(drm_node_file_prefix, "render");
+
+ // TODO(b/313513760): don't guard base::File::FLAG_WRITE behind
+@@ -196,7 +196,7 @@ class GbmDeviceWrapper {
+ const bool is_intel_media_compression_enabled =
+ #if BUILDFLAG(IS_CHROMEOS)
+ base::FeatureList::IsEnabled(features::kEnableIntelMediaCompression);
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ false;
+ #endif
+ if (is_intel_media_compression_enabled) {
+@@ -350,7 +350,7 @@ scoped_refptr<VideoFrame> CreateVideoFra
+ const bool is_intel_media_compression_enabled =
+ #if BUILDFLAG(IS_CHROMEOS)
+ base::FeatureList::IsEnabled(features::kEnableIntelMediaCompression);
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ false;
+ #endif
+
diff --git a/chromium/patches/patch-media_gpu_chromeos_video__decoder__pipeline.cc b/chromium/patches/patch-media_gpu_chromeos_video__decoder__pipeline.cc
new file mode 100644
index 0000000000..879c072742
--- /dev/null
+++ b/chromium/patches/patch-media_gpu_chromeos_video__decoder__pipeline.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/gpu/chromeos/video_decoder_pipeline.cc.orig 2024-07-24 02:44:41.165220000 +0000
++++ media/gpu/chromeos/video_decoder_pipeline.cc
+@@ -1098,7 +1098,7 @@ VideoDecoderPipeline::PickDecoderOutputF
+ }
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(USE_VAAPI)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(USE_VAAPI)
+ // Linux should always use a custom allocator (to allocate buffers using
+ // libva) and a PlatformVideoFramePool.
+ CHECK(allocator.has_value());
+@@ -1107,7 +1107,7 @@ VideoDecoderPipeline::PickDecoderOutputF
+ // VideoFrame::StorageType of VideoFrame::STORAGE_DMABUFS.
+ main_frame_pool_->AsPlatformVideoFramePool()->SetCustomFrameAllocator(
+ *allocator, VideoFrame::STORAGE_DMABUFS);
+-#elif BUILDFLAG(IS_LINUX) && BUILDFLAG(USE_V4L2_CODEC)
++#elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(USE_V4L2_CODEC)
+ // Linux w/ V4L2 should not use a custom allocator
+ // Only tested with video_decode_accelerator_tests
+ // TODO(wenst@) Test with full Chromium Browser
+@@ -1295,7 +1295,7 @@ VideoDecoderPipeline::PickDecoderOutputF
+ << " VideoFrames";
+ auxiliary_frame_pool_->set_parent_task_runner(decoder_task_runner_);
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // The custom allocator creates frames backed by NativePixmap, which uses a
+ // VideoFrame::StorageType of VideoFrame::STORAGE_DMABUFS.
+ auxiliary_frame_pool_->AsPlatformVideoFramePool()->SetCustomFrameAllocator(
diff --git a/chromium/patches/patch-media_gpu_gpu__video__encode__accelerator__factory.cc b/chromium/patches/patch-media_gpu_gpu__video__encode__accelerator__factory.cc
new file mode 100644
index 0000000000..5b7b74852c
--- /dev/null
+++ b/chromium/patches/patch-media_gpu_gpu__video__encode__accelerator__factory.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/gpu/gpu_video_encode_accelerator_factory.cc.orig 2024-07-24 02:44:41.169220400 +0000
++++ media/gpu/gpu_video_encode_accelerator_factory.cc
+@@ -118,7 +118,7 @@ std::vector<VEAFactoryFunction> GetVEAFa
+ return vea_factory_functions;
+
+ #if BUILDFLAG(USE_VAAPI)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (base::FeatureList::IsEnabled(kVaapiVideoEncodeLinux))
+ vea_factory_functions.push_back(base::BindRepeating(&CreateVaapiVEA));
+ #else
diff --git a/chromium/patches/patch-media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.cc b/chromium/patches/patch-media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.cc
new file mode 100644
index 0000000000..4d36b4e724
--- /dev/null
+++ b/chromium/patches/patch-media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.cc
@@ -0,0 +1,50 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/gpu/sandbox/hardware_video_decoding_sandbox_hook_linux.cc.orig 2024-07-24 02:44:41.177221300 +0000
++++ media/gpu/sandbox/hardware_video_decoding_sandbox_hook_linux.cc
+@@ -16,7 +16,9 @@
+ #include "media/gpu/vaapi/vaapi_wrapper.h"
+ #endif
+
++#if !BUILDFLAG(IS_BSD)
+ using sandbox::syscall_broker::BrokerFilePermission;
++#endif
+
+ // TODO(b/195769334): the hardware video decoding sandbox is really only useful
+ // when building with VA-API or V4L2 (otherwise, we're not really doing hardware
+@@ -32,6 +34,7 @@ using sandbox::syscall_broker::BrokerFil
+ namespace media {
+ namespace {
+
++#if !BUILDFLAG(IS_BSD)
+ void AllowAccessToRenderNodes(std::vector<BrokerFilePermission>& permissions,
+ bool include_sys_dev_char,
+ bool read_write) {
+@@ -172,6 +175,7 @@ bool HardwareVideoDecodingPreSandboxHook
+ NOTREACHED_NORETURN();
+ #endif // BUILDFLAG(USE_V4L2_CODEC)
+ }
++#endif
+
+ } // namespace
+
+@@ -187,6 +191,7 @@ bool HardwareVideoDecodingPreSandboxHook
+ // (at least).
+ bool HardwareVideoDecodingPreSandboxHook(
+ sandbox::policy::SandboxLinux::Options options) {
++#if !BUILDFLAG(IS_BSD)
+ using HardwareVideoDecodingProcessPolicy =
+ sandbox::policy::HardwareVideoDecodingProcessPolicy;
+ using PolicyType =
+@@ -232,6 +237,7 @@ bool HardwareVideoDecodingPreSandboxHook
+ // |permissions| is empty?
+ sandbox::policy::SandboxLinux::GetInstance()->StartBrokerProcess(
+ command_set, permissions, options);
++#endif
+ return true;
+ }
+
diff --git a/chromium/patches/patch-media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.h b/chromium/patches/patch-media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.h
new file mode 100644
index 0000000000..255ca90eb2
--- /dev/null
+++ b/chromium/patches/patch-media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.h
@@ -0,0 +1,22 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/gpu/sandbox/hardware_video_decoding_sandbox_hook_linux.h.orig 2024-07-24 02:44:41.177221300 +0000
++++ media/gpu/sandbox/hardware_video_decoding_sandbox_hook_linux.h
+@@ -5,7 +5,13 @@
+ #ifndef MEDIA_GPU_SANDBOX_HARDWARE_VIDEO_DECODING_SANDBOX_HOOK_LINUX_H_
+ #define MEDIA_GPU_SANDBOX_HARDWARE_VIDEO_DECODING_SANDBOX_HOOK_LINUX_H_
+
++#include "build/build_config.h"
++
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
++#else
+ #include "sandbox/policy/linux/sandbox_linux.h"
++#endif
+
+ namespace media {
+
diff --git a/chromium/patches/patch-media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.cc b/chromium/patches/patch-media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.cc
new file mode 100644
index 0000000000..a4adf2f38e
--- /dev/null
+++ b/chromium/patches/patch-media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.cc
@@ -0,0 +1,32 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/gpu/sandbox/hardware_video_encoding_sandbox_hook_linux.cc.orig 2024-07-24 02:44:41.177221300 +0000
++++ media/gpu/sandbox/hardware_video_encoding_sandbox_hook_linux.cc
+@@ -18,12 +18,15 @@
+ #include "media/gpu/v4l2/v4l2_device.h"
+ #endif
+
++#if !BUILDFLAG(IS_BSD)
+ using sandbox::syscall_broker::BrokerFilePermission;
++#endif
+
+ namespace media {
+
+ bool HardwareVideoEncodingPreSandboxHook(
+ sandbox::policy::SandboxLinux::Options options) {
++#if !BUILDFLAG(IS_BSD)
+ sandbox::syscall_broker::BrokerCommandSet command_set;
+ std::vector<BrokerFilePermission> permissions;
+
+@@ -121,6 +124,7 @@ bool HardwareVideoEncodingPreSandboxHook
+ }
+ }
+ #endif
++#endif
+ return true;
+ }
+
diff --git a/chromium/patches/patch-media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.h b/chromium/patches/patch-media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.h
new file mode 100644
index 0000000000..088fffe1be
--- /dev/null
+++ b/chromium/patches/patch-media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.h
@@ -0,0 +1,29 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/gpu/sandbox/hardware_video_encoding_sandbox_hook_linux.h.orig 2024-07-24 02:44:41.177221300 +0000
++++ media/gpu/sandbox/hardware_video_encoding_sandbox_hook_linux.h
+@@ -5,7 +5,13 @@
+ #ifndef MEDIA_GPU_SANDBOX_HARDWARE_VIDEO_ENCODING_SANDBOX_HOOK_LINUX_H_
+ #define MEDIA_GPU_SANDBOX_HARDWARE_VIDEO_ENCODING_SANDBOX_HOOK_LINUX_H_
+
++#include "build/build_config.h"
++
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
++#else
+ #include "sandbox/policy/linux/sandbox_linux.h"
++#endif
+
+ namespace media {
+
+@@ -14,4 +20,4 @@ bool HardwareVideoEncodingPreSandboxHook
+
+ } // namespace media
+
+-#endif // MEDIA_GPU_SANDBOX_HARDWARE_VIDEO_ENCODING_SANDBOX_HOOK_LINUX_H_
+\ No newline at end of file
++#endif // MEDIA_GPU_SANDBOX_HARDWARE_VIDEO_ENCODING_SANDBOX_HOOK_LINUX_H_
diff --git a/chromium/patches/patch-media_gpu_vaapi_BUILD.gn b/chromium/patches/patch-media_gpu_vaapi_BUILD.gn
deleted file mode 100644
index 106f30c31e..0000000000
--- a/chromium/patches/patch-media_gpu_vaapi_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- media/gpu/vaapi/BUILD.gn.orig 2020-07-15 18:56:47.000000000 +0000
-+++ media/gpu/vaapi/BUILD.gn
-@@ -10,7 +10,7 @@ import("//tools/generate_stubs/rules.gni
- import("//ui/gl/features.gni")
- import("//ui/ozone/ozone.gni")
-
--assert(is_linux) # is_chromeos is a subset of is_linux
-+assert(is_linux && is_bsd) # is_chromeos is a subset of is_linux
- assert(use_vaapi)
-
- generate_stubs("libva_stubs") {
diff --git a/chromium/patches/patch-media_gpu_vaapi_vaapi__video__decoder.cc b/chromium/patches/patch-media_gpu_vaapi_vaapi__video__decoder.cc
new file mode 100644
index 0000000000..3e1ddec629
--- /dev/null
+++ b/chromium/patches/patch-media_gpu_vaapi_vaapi__video__decoder.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/gpu/vaapi/vaapi_video_decoder.cc.orig 2024-07-24 02:44:41.213224600 +0000
++++ media/gpu/vaapi/vaapi_video_decoder.cc
+@@ -775,7 +775,7 @@ void VaapiVideoDecoder::ApplyResolutionC
+ const gfx::Size decoder_natural_size =
+ aspect_ratio_.GetNaturalSize(decoder_visible_rect);
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ std::optional<DmabufVideoFramePool::CreateFrameCB> allocator =
+ base::BindRepeating(&AllocateCustomFrameProxy, weak_this_);
+ std::vector<ImageProcessor::PixelLayoutCandidate> candidates = {
diff --git a/chromium/patches/patch-media_gpu_vaapi_vaapi__wrapper.cc b/chromium/patches/patch-media_gpu_vaapi_vaapi__wrapper.cc
new file mode 100644
index 0000000000..9f31b192b0
--- /dev/null
+++ b/chromium/patches/patch-media_gpu_vaapi_vaapi__wrapper.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/gpu/vaapi/vaapi_wrapper.cc.orig 2024-07-24 02:44:41.217225000 +0000
++++ media/gpu/vaapi/vaapi_wrapper.cc
+@@ -72,7 +72,7 @@
+ using media_gpu_vaapi::kModuleVa_prot;
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "base/files/file_util.h"
+ #include "base/strings/string_split.h"
+ #endif
diff --git a/chromium/patches/patch-media_media__options.gni b/chromium/patches/patch-media_media__options.gni
index d7e37e8d71..820d577fb8 100644
--- a/chromium/patches/patch-media_media__options.gni
+++ b/chromium/patches/patch-media_media__options.gni
@@ -1,13 +1,25 @@
$NetBSD$
---- media/media_options.gni.orig 2020-07-15 18:55:59.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/media_options.gni.orig 2024-07-24 02:44:41.233226500 +0000
+++ media/media_options.gni
-@@ -155,7 +155,7 @@ declare_args() {
- # On Fuchsia, this is only enabled to build libclearkeycdm.so, the mojo CDM
- # service is not used.
- enable_library_cdms =
-- (is_linux && !is_chromecast) || is_mac || is_win || is_fuchsia
-+ ((is_linux || is_bsd) && !is_chromecast) || is_mac || is_win || is_fuchsia
+@@ -190,12 +190,15 @@ declare_args() {
+ # Enables runtime selection of ALSA library for audio.
+ use_alsa = false
- declare_args() {
- # When enabled, this feature allows developers to use a runtime flag to
++ # Enable runtime selection of sndio(7)
++ use_sndio = false
++
+ # Alsa should be used on all non-Android, non-Mac POSIX systems - with the
+ # exception of CastOS desktop builds.
+ #
+ # TODO(crbug.com/1336055): Remove legacy target_cpu hack used for targeting
+ # desktop Chromecast builds.
+- if (is_posix && !is_android && !is_apple &&
++ if (is_posix && !is_android && !is_apple && !is_bsd &&
+ (!is_castos || (target_cpu == "x86" || target_cpu == "x64") ||
+ is_cast_audio_only)) {
+ use_alsa = true
diff --git a/chromium/patches/patch-media_mojo_clients_mojo__video__encode__accelerator.cc b/chromium/patches/patch-media_mojo_clients_mojo__video__encode__accelerator.cc
deleted file mode 100644
index 66faf0a210..0000000000
--- a/chromium/patches/patch-media_mojo_clients_mojo__video__encode__accelerator.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- media/mojo/clients/mojo_video_encode_accelerator.cc.orig 2020-07-08 21:40:45.000000000 +0000
-+++ media/mojo/clients/mojo_video_encode_accelerator.cc
-@@ -132,7 +132,7 @@ void MojoVideoEncodeAccelerator::Encode(
- DCHECK_EQ(num_planes, frame->layout().num_planes());
- DCHECK(vea_.is_bound());
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // TODO(crbug.com/1003197): Remove this once we stop supporting STORAGE_DMABUF
- // in VideoEncodeAccelerator.
- if (frame->storage_type() == VideoFrame::STORAGE_DMABUFS) {
diff --git a/chromium/patches/patch-media_mojo_mojom_stable_BUILD.gn b/chromium/patches/patch-media_mojo_mojom_stable_BUILD.gn
new file mode 100644
index 0000000000..575ff93afa
--- /dev/null
+++ b/chromium/patches/patch-media_mojo_mojom_stable_BUILD.gn
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/mojo/mojom/stable/BUILD.gn.orig 2024-07-24 02:44:41.253228700 +0000
++++ media/mojo/mojom/stable/BUILD.gn
+@@ -196,7 +196,7 @@ source_set("unit_tests") {
+ } else if (use_v4l2_codec) {
+ deps += [ "//media/gpu/v4l2:v4l2_status" ]
+ }
+- if (is_linux || is_chromeos) {
++ if ((is_linux || is_chromeos) && !is_bsd) {
+ sources += [
+ "mojom_traits_test_util.cc",
+ "mojom_traits_test_util.h",
diff --git a/chromium/patches/patch-media_mojo_mojom_stable_stable__video__decoder__types__mojom__traits.cc b/chromium/patches/patch-media_mojo_mojom_stable_stable__video__decoder__types__mojom__traits.cc
new file mode 100644
index 0000000000..ff3bacd8f9
--- /dev/null
+++ b/chromium/patches/patch-media_mojo_mojom_stable_stable__video__decoder__types__mojom__traits.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/mojo/mojom/stable/stable_video_decoder_types_mojom_traits.cc.orig 2024-07-24 02:44:41.257228900 +0000
++++ media/mojo/mojom/stable/stable_video_decoder_types_mojom_traits.cc
+@@ -837,7 +837,7 @@ const gfx::GpuMemoryBufferId& StructTrai
+ return input.id;
+ }
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // static
+ gfx::NativePixmapHandle StructTraits<
+ media::stable::mojom::NativeGpuMemoryBufferHandleDataView,
+@@ -858,7 +858,7 @@ bool StructTraits<media::stable::mojom::
+
+ output->type = gfx::NATIVE_PIXMAP;
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ if (!data.ReadPlatformHandle(&output->native_pixmap_handle))
+ return false;
+ return true;
diff --git a/chromium/patches/patch-media_mojo_mojom_stable_stable__video__decoder__types__mojom__traits.h b/chromium/patches/patch-media_mojo_mojom_stable_stable__video__decoder__types__mojom__traits.h
new file mode 100644
index 0000000000..05dc23cabd
--- /dev/null
+++ b/chromium/patches/patch-media_mojo_mojom_stable_stable__video__decoder__types__mojom__traits.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/mojo/mojom/stable/stable_video_decoder_types_mojom_traits.h.orig 2024-07-24 02:44:41.257228900 +0000
++++ media/mojo/mojom/stable/stable_video_decoder_types_mojom_traits.h
+@@ -690,7 +690,7 @@ struct StructTraits<media::stable::mojom
+ static const gfx::GpuMemoryBufferId& id(
+ const gfx::GpuMemoryBufferHandle& input);
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ static gfx::NativePixmapHandle platform_handle(
+ gfx::GpuMemoryBufferHandle& input);
+ #else
diff --git a/chromium/patches/patch-media_mojo_mojom_video__frame__mojom__traits.cc b/chromium/patches/patch-media_mojo_mojom_video__frame__mojom__traits.cc
index 0e747a14b4..1f22619765 100644
--- a/chromium/patches/patch-media_mojo_mojom_video__frame__mojom__traits.cc
+++ b/chromium/patches/patch-media_mojo_mojom_video__frame__mojom__traits.cc
@@ -1,31 +1,17 @@
$NetBSD$
---- media/mojo/mojom/video_frame_mojom_traits.cc.orig 2020-07-08 21:40:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/mojo/mojom/video_frame_mojom_traits.cc.orig 2024-07-24 02:44:41.257228900 +0000
+++ media/mojo/mojom/video_frame_mojom_traits.cc
-@@ -21,7 +21,7 @@
- #include "ui/gfx/mojom/buffer_types_mojom_traits.h"
+@@ -22,7 +22,7 @@
#include "ui/gfx/mojom/color_space_mojom_traits.h"
+ #include "ui/gfx/mojom/hdr_metadata_mojom_traits.h"
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "base/posix/eintr_wrapper.h"
- #endif // defined(OS_LINUX)
-
-@@ -63,7 +63,7 @@ media::mojom::VideoFrameDataPtr MakeVide
- std::move(offsets)));
- }
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- if (input->storage_type() == media::VideoFrame::STORAGE_DMABUFS) {
- std::vector<mojo::PlatformHandle> dmabuf_fds;
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-@@ -166,7 +166,7 @@ bool StructTraits<media::mojom::VideoFra
- shared_buffer_data.TakeFrameData(),
- shared_buffer_data.frame_data_size(), std::move(offsets),
- std::move(strides), timestamp);
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- } else if (data.is_dmabuf_data()) {
- media::mojom::DmabufVideoFrameDataDataView dmabuf_data;
- data.GetDmabufDataDataView(&dmabuf_data);
diff --git a/chromium/patches/patch-media_mojo_services_gpu__mojo__media__client.cc b/chromium/patches/patch-media_mojo_services_gpu__mojo__media__client.cc
deleted file mode 100644
index c59fbe2f10..0000000000
--- a/chromium/patches/patch-media_mojo_services_gpu__mojo__media__client.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- media/mojo/services/gpu_mojo_media_client.cc.orig 2020-07-08 21:41:48.000000000 +0000
-+++ media/mojo/services/gpu_mojo_media_client.cc
-@@ -63,7 +63,7 @@ namespace media {
- namespace {
-
- #if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(OS_MACOSX) || \
-- defined(OS_WIN) || defined(OS_LINUX)
-+ defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
- gpu::CommandBufferStub* GetCommandBufferStub(
- scoped_refptr<base::SingleThreadTaskRunner> gpu_task_runner,
- base::WeakPtr<MediaGpuChannelManager> media_gpu_channel_manager,
-@@ -280,7 +280,7 @@ std::unique_ptr<VideoDecoder> GpuMojoMed
- command_buffer_id->route_id));
- }
-
--#elif defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX)
-+#elif defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
- #if defined(OS_WIN)
- // Don't instantiate the DXVA decoder if it's not supported.
- if (gpu_workarounds_.disable_dxva_video_decoder)
diff --git a/chromium/patches/patch-media_video_fake__gpu__memory__buffer.cc b/chromium/patches/patch-media_video_fake__gpu__memory__buffer.cc
index ccfa61651c..704cef5ed3 100644
--- a/chromium/patches/patch-media_video_fake__gpu__memory__buffer.cc
+++ b/chromium/patches/patch-media_video_fake__gpu__memory__buffer.cc
@@ -1,40 +1,44 @@
$NetBSD$
---- media/video/fake_gpu_memory_buffer.cc.orig 2020-07-08 21:40:46.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/video/fake_gpu_memory_buffer.cc.orig 2024-07-24 02:44:41.641266000 +0000
+++ media/video/fake_gpu_memory_buffer.cc
-@@ -10,7 +10,7 @@
+@@ -9,7 +9,7 @@
#include "media/base/format_utils.h"
#include "media/base/video_frame.h"
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
-@@ -48,7 +48,7 @@ class FakeGpuMemoryBufferImpl : public g
+@@ -52,7 +52,7 @@ class FakeGpuMemoryBufferImpl : public g
} // namespace
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
base::ScopedFD GetDummyFD() {
base::ScopedFD fd(open("/dev/zero", O_RDWR));
DCHECK(fd.is_valid());
-@@ -73,7 +73,7 @@ FakeGpuMemoryBuffer::FakeGpuMemoryBuffer
- static base::NoDestructor<base::AtomicSequenceNumber> buffer_id_generator;
- handle_.id = gfx::GpuMemoryBufferId(buffer_id_generator->GetNext());
+@@ -82,7 +82,7 @@ FakeGpuMemoryBuffer::FakeGpuMemoryBuffer
+ static base::AtomicSequenceNumber buffer_id_generator;
+ handle_.id = gfx::GpuMemoryBufferId(buffer_id_generator.GetNext());
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
for (size_t i = 0; i < VideoFrame::NumPlanes(video_pixel_format_); i++) {
const gfx::Size plane_size_in_bytes =
VideoFrame::PlaneSize(video_pixel_format_, i, size_);
-@@ -129,7 +129,7 @@ gfx::GpuMemoryBufferHandle FakeGpuMemory
+@@ -144,7 +144,7 @@ gfx::GpuMemoryBufferHandle FakeGpuMemory
gfx::GpuMemoryBufferHandle handle;
handle.type = gfx::NATIVE_PIXMAP;
handle.id = handle_.id;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
handle.native_pixmap_handle =
gfx::CloneHandleForIPC(handle_.native_pixmap_handle);
#endif
diff --git a/chromium/patches/patch-media_video_gpu__memory__buffer__video__frame__pool.cc b/chromium/patches/patch-media_video_gpu__memory__buffer__video__frame__pool.cc
index 2c034fec74..e3792b3c34 100644
--- a/chromium/patches/patch-media_video_gpu__memory__buffer__video__frame__pool.cc
+++ b/chromium/patches/patch-media_video_gpu__memory__buffer__video__frame__pool.cc
@@ -1,13 +1,35 @@
$NetBSD$
---- media/video/gpu_memory_buffer_video_frame_pool.cc.orig 2020-07-08 21:40:46.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/video/gpu_memory_buffer_video_frame_pool.cc.orig 2024-07-24 02:44:41.641266000 +0000
+++ media/video/gpu_memory_buffer_video_frame_pool.cc
-@@ -573,7 +573,7 @@ void GpuMemoryBufferVideoFramePool::Pool
+@@ -107,7 +107,7 @@ class GpuMemoryBufferVideoFramePool::Poo
+ gpu::SHARED_IMAGE_USAGE_RASTER_READ |
+ gpu::SHARED_IMAGE_USAGE_DISPLAY_READ |
+ gpu::SHARED_IMAGE_USAGE_SCANOUT;
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ // TODO(crbug.com/40194712): Always add the flag once the
+ // OzoneImageBacking is by default turned on.
+ if (base::CommandLine::ForCurrentProcess()->HasSwitch(
+@@ -802,7 +802,7 @@ void GpuMemoryBufferVideoFramePool::Pool
}
bool is_software_backed_video_frame = !video_frame->HasTextures();
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
is_software_backed_video_frame &= !video_frame->HasDmaBufs();
#endif
+@@ -1347,7 +1347,7 @@ scoped_refptr<VideoFrame> GpuMemoryBuffe
+ media::IOSurfaceIsWebGPUCompatible(handle.io_surface.get());
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ is_webgpu_compatible =
+ handle.native_pixmap_handle.supports_zero_copy_webgpu_import;
+ #endif
diff --git a/chromium/patches/patch-media_video_video__encode__accelerator__adapter.cc b/chromium/patches/patch-media_video_video__encode__accelerator__adapter.cc
new file mode 100644
index 0000000000..9727c57126
--- /dev/null
+++ b/chromium/patches/patch-media_video_video__encode__accelerator__adapter.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/video/video_encode_accelerator_adapter.cc.orig 2024-07-24 02:44:41.653267400 +0000
++++ media/video/video_encode_accelerator_adapter.cc
+@@ -158,7 +158,7 @@ VideoEncodeAccelerator::Config SetUpVeaC
+ if (is_rgb)
+ config.input_format = PIXEL_FORMAT_I420;
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ if (format != PIXEL_FORMAT_I420 ||
+ !VideoFrame::IsStorageTypeMappable(storage_type)) {
+ // ChromeOS/Linux hardware video encoders supports I420 on-memory
+@@ -486,7 +486,7 @@ void VideoEncodeAcceleratorAdapter::Init
+ SetUpVeaConfig(profile_, options_, format, first_frame->storage_type(),
+ supported_rc_modes_, required_encoder_type_);
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Linux/ChromeOS require a special configuration to use dmabuf storage.
+ // We need to keep sending frames the same way the first frame was sent.
+ // Other platforms will happily mix GpuMemoryBuffer storage with regular
diff --git a/chromium/patches/patch-media_video_video__encode__accelerator__adapter__test.cc b/chromium/patches/patch-media_video_video__encode__accelerator__adapter__test.cc
new file mode 100644
index 0000000000..0a3c4bbdd6
--- /dev/null
+++ b/chromium/patches/patch-media_video_video__encode__accelerator__adapter__test.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/video/video_encode_accelerator_adapter_test.cc.orig 2024-07-24 02:44:41.653267400 +0000
++++ media/video/video_encode_accelerator_adapter_test.cc
+@@ -461,7 +461,7 @@ TEST_P(VideoEncodeAcceleratorAdapterTest
+ CreateGreenFrame(large_size, pixel_format, base::Milliseconds(2));
+
+ VideoPixelFormat expected_input_format = PIXEL_FORMAT_I420;
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ if (pixel_format != PIXEL_FORMAT_I420 || !small_frame->IsMappable())
+ expected_input_format = PIXEL_FORMAT_NV12;
+ #endif
diff --git a/chromium/patches/patch-media_webrtc_audio__processor.cc b/chromium/patches/patch-media_webrtc_audio__processor.cc
new file mode 100644
index 0000000000..9bc4722598
--- /dev/null
+++ b/chromium/patches/patch-media_webrtc_audio__processor.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/webrtc/audio_processor.cc.orig 2024-07-24 02:44:41.653267400 +0000
++++ media/webrtc/audio_processor.cc
+@@ -513,7 +513,7 @@ std::optional<double> AudioProcessor::Pr
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
+ DCHECK_LE(volume, 1.0);
+ #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || \
+- BUILDFLAG(IS_OPENBSD)
++ BUILDFLAG(IS_BSD)
+ // We have a special situation on Linux where the microphone volume can be
+ // "higher than maximum". The input volume slider in the sound preference
+ // allows the user to set a scaling that is higher than 100%. It means that
diff --git a/chromium/patches/patch-media_webrtc_helpers.cc b/chromium/patches/patch-media_webrtc_helpers.cc
new file mode 100644
index 0000000000..a56f6e15d0
--- /dev/null
+++ b/chromium/patches/patch-media_webrtc_helpers.cc
@@ -0,0 +1,25 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/webrtc/helpers.cc.orig 2024-07-24 02:44:41.653267400 +0000
++++ media/webrtc/helpers.cc
+@@ -41,14 +41,14 @@ void ConfigAutomaticGainControl(const Au
+ return;
+ }
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const bool kInputVolumeAdjustmentOverrideAllowed = true;
+ #elif BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
+ const bool kInputVolumeAdjustmentOverrideAllowed = false;
+ #endif
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ // Use AGC2 digital and input volume controller.
+ // TODO(crbug.com/40872787): Remove `kWebRtcAllowInputVolumeAdjustment` safely
+ // and set `input_volume_controller.enabled` true.
diff --git a/chromium/patches/patch-media_webrtc_helpers__unittests.cc b/chromium/patches/patch-media_webrtc_helpers__unittests.cc
new file mode 100644
index 0000000000..51c58ec443
--- /dev/null
+++ b/chromium/patches/patch-media_webrtc_helpers__unittests.cc
@@ -0,0 +1,44 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- media/webrtc/helpers_unittests.cc.orig 2024-07-24 02:44:41.653267400 +0000
++++ media/webrtc/helpers_unittests.cc
+@@ -40,7 +40,7 @@ TEST(CreateWebRtcAudioProcessingModuleTe
+ EXPECT_TRUE(config.echo_canceller.enabled);
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ EXPECT_FALSE(config.gain_controller1.enabled);
+ EXPECT_TRUE(config.gain_controller2.enabled);
+ #elif BUILDFLAG(IS_CASTOS) || BUILDFLAG(IS_CAST_ANDROID)
+@@ -73,7 +73,7 @@ TEST(CreateWebRtcAudioProcessingModuleTe
+ }
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ TEST(CreateWebRtcAudioProcessingModuleTest,
+ InputVolumeAdjustmentEnabledWithAgc2) {
+ ::base::test::ScopedFeatureList feature_list;
+@@ -89,7 +89,7 @@ TEST(CreateWebRtcAudioProcessingModuleTe
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
+ // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ TEST(CreateWebRtcAudioProcessingModuleTest,
+ CanDisableInputVolumeAdjustmentWithAgc2) {
+ ::base::test::ScopedFeatureList feature_list;
+@@ -106,7 +106,7 @@ TEST(CreateWebRtcAudioProcessingModuleTe
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ TEST(CreateWebRtcAudioProcessingModuleTest,
+ OnlyOneInputVolumeControllerEnabledOnDesktopPlatforms) {
+ auto config = CreateApmGetConfig(
diff --git a/chromium/patches/patch-mojo_core_BUILD.gn b/chromium/patches/patch-mojo_core_BUILD.gn
index dcef926cb6..01174cc2eb 100644
--- a/chromium/patches/patch-mojo_core_BUILD.gn
+++ b/chromium/patches/patch-mojo_core_BUILD.gn
@@ -1,22 +1,17 @@
$NetBSD$
---- mojo/core/BUILD.gn.orig 2020-06-25 09:31:32.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- mojo/core/BUILD.gn.orig 2024-07-24 02:44:41.653267400 +0000
+++ mojo/core/BUILD.gn
-@@ -178,7 +178,7 @@ core_impl_source_set("impl_for_embedder"
- for_shared_library = false
- }
-
--if (is_chromeos || is_linux || is_android || is_win) {
-+if (is_chromeos || is_linux || is_android || is_win || is_bsd) {
- core_impl_source_set("impl_for_shared_library") {
- for_shared_library = true
- }
-@@ -239,7 +239,7 @@ if (is_chromeos || is_linux || is_androi
- root_build_dir) ]
- }
+@@ -166,7 +166,7 @@ template("core_impl_source_set") {
+ ]
+ }
-- if (is_chromeos || is_linux || is_win) {
-+ if (is_chromeos || is_linux || is_win || is_bsd) {
- test("mojo_core_unittests") {
- sources = [
- "mojo_core_unittest.cc",
+- if ((is_linux || is_chromeos || is_android) && !is_nacl) {
++ if ((is_linux || is_chromeos || is_android) && !is_nacl && !is_bsd) {
+ sources += [
+ "channel_linux.cc",
+ "channel_linux.h",
diff --git a/chromium/patches/patch-mojo_core_channel.cc b/chromium/patches/patch-mojo_core_channel.cc
new file mode 100644
index 0000000000..2c44559869
--- /dev/null
+++ b/chromium/patches/patch-mojo_core_channel.cc
@@ -0,0 +1,20 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- mojo/core/channel.cc.orig 2024-07-24 02:44:41.657267800 +0000
++++ mojo/core/channel.cc
+@@ -71,7 +71,11 @@ const size_t kMaxUnusedReadBufferCapacit
+ // Fuchsia: The zx_channel_write() API supports up to 64 handles.
+ const size_t kMaxAttachedHandles = 64;
+
++#if defined(__i386__) && defined(OS_FREEBSD)
++const size_t kChannelMessageAlignment = 4;
++#else
+ static_assert(alignof(std::max_align_t) >= kChannelMessageAlignment, "");
++#endif
+ Channel::AlignedBuffer MakeAlignedBuffer(size_t size) {
+ // Generic allocators (such as malloc) return a pointer that is suitably
+ // aligned for storing any type of object with a fundamental alignment
diff --git a/chromium/patches/patch-mojo_core_embedder_features.h b/chromium/patches/patch-mojo_core_embedder_features.h
new file mode 100644
index 0000000000..3d528b4e10
--- /dev/null
+++ b/chromium/patches/patch-mojo_core_embedder_features.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- mojo/core/embedder/features.h.orig 2024-07-24 02:44:41.665268400 +0000
++++ mojo/core/embedder/features.h
+@@ -16,7 +16,7 @@ namespace core {
+
+ #if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_NACL) && \
+ !BUILDFLAG(MOJO_USE_APPLE_CHANNEL)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(MOJO_CORE_EMBEDDER_FEATURES)
+ BASE_DECLARE_FEATURE(kMojoLinuxChannelSharedMem);
+
diff --git a/chromium/patches/patch-mojo_core_test_BUILD.gn b/chromium/patches/patch-mojo_core_test_BUILD.gn
deleted file mode 100644
index 16d5b4045e..0000000000
--- a/chromium/patches/patch-mojo_core_test_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- mojo/core/test/BUILD.gn.orig 2020-07-15 18:55:59.000000000 +0000
-+++ mojo/core/test/BUILD.gn
-@@ -47,7 +47,7 @@ source_set("run_all_unittests") {
- "//testing/gtest",
- ]
-
-- if (is_linux && !is_component_build) {
-+ if ((is_linux || is_bsd) && !is_component_build) {
- public_configs = [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
- }
- }
-@@ -65,7 +65,7 @@ source_set("run_all_perftests") {
-
- sources = [ "run_all_perftests.cc" ]
-
-- if (is_linux && !is_component_build) {
-+ if ((is_linux || is_bsd) && !is_component_build) {
- public_configs = [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
- }
- }
diff --git a/chromium/patches/patch-mojo_public_c_system_thunks.cc b/chromium/patches/patch-mojo_public_c_system_thunks.cc
index 02721d1728..9a49a189d2 100644
--- a/chromium/patches/patch-mojo_public_c_system_thunks.cc
+++ b/chromium/patches/patch-mojo_public_c_system_thunks.cc
@@ -1,40 +1,44 @@
$NetBSD$
---- mojo/public/c/system/thunks.cc.orig 2020-07-08 21:40:46.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- mojo/public/c/system/thunks.cc.orig 2024-07-24 02:44:41.685270300 +0000
+++ mojo/public/c/system/thunks.cc
-@@ -20,7 +20,7 @@
- #include "mojo/public/c/system/core.h"
- #include "mojo/public/c/system/macros.h"
+@@ -25,7 +25,7 @@
+ #include "mojo/public/c/system/message_pipe.h"
--#if defined(OS_CHROMEOS) || defined(OS_LINUX) || defined(OS_WIN)
-+#if defined(OS_CHROMEOS) || defined(OS_LINUX) || defined(OS_WIN) || defined(OS_BSD)
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || \
+- BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
#include "base/environment.h"
#include "base/files/file_path.h"
- #include "base/optional.h"
-@@ -68,7 +68,7 @@ class CoreLibraryInitializer {
- ~CoreLibraryInitializer() = default;
+ #include "base/scoped_native_library.h"
+@@ -72,7 +72,7 @@ class CoreLibraryInitializer {
MojoResult LoadLibrary(base::FilePath library_path) {
--#if defined(OS_CHROMEOS) || defined(OS_LINUX) || defined(OS_WIN)
-+#if defined(OS_CHROMEOS) || defined(OS_LINUX) || defined(OS_WIN) || defined(OS_BSD)
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || \
+- BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
if (library_ && library_->is_valid())
return MOJO_RESULT_OK;
-@@ -82,7 +82,7 @@ class CoreLibraryInitializer {
+@@ -86,7 +86,7 @@ class CoreLibraryInitializer {
if (library_path.empty()) {
// Default to looking for the library in the current working directory.
--#if defined(OS_CHROMEOS) || defined(OS_LINUX)
-+#if defined(OS_CHROMEOS) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
const base::FilePath::CharType kDefaultLibraryPathValue[] =
FILE_PATH_LITERAL("./libmojo_core.so");
- #elif defined(OS_WIN)
-@@ -132,7 +132,7 @@ class CoreLibraryInitializer {
- }
+ #elif BUILDFLAG(IS_FUCHSIA)
+@@ -142,7 +142,7 @@ class CoreLibraryInitializer {
private:
--#if defined(OS_CHROMEOS) || defined(OS_LINUX) || defined(OS_WIN)
-+#if defined(OS_CHROMEOS) || defined(OS_LINUX) || defined(OS_WIN) || defined(OS_BSD)
- base::Optional<base::ScopedNativeLibrary> library_;
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || \
+- BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ std::optional<base::ScopedNativeLibrary> library_;
#endif
};
diff --git a/chromium/patches/patch-mojo_public_cpp_platform_socket__utils__posix.cc b/chromium/patches/patch-mojo_public_cpp_platform_socket__utils__posix.cc
index caeb980896..796304925a 100644
--- a/chromium/patches/patch-mojo_public_cpp_platform_socket__utils__posix.cc
+++ b/chromium/patches/patch-mojo_public_cpp_platform_socket__utils__posix.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- mojo/public/cpp/platform/socket_utils_posix.cc.orig 2020-07-15 18:55:59.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- mojo/public/cpp/platform/socket_utils_posix.cc.orig 2024-07-24 02:44:41.717273500 +0000
+++ mojo/public/cpp/platform/socket_utils_posix.cc
@@ -29,7 +29,7 @@ bool IsRecoverableError() {
}
bool GetPeerEuid(base::PlatformFile fd, uid_t* peer_euid) {
--#if defined(OS_MACOSX) || defined(OS_OPENBSD) || defined(OS_FREEBSD)
-+#if defined(OS_MACOSX) || defined(OS_OPENBSD) || defined(OS_FREEBSD) || defined(OS_NETBSD)
+-#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_FREEBSD)
++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
uid_t socket_euid;
gid_t socket_gid;
if (getpeereid(fd, &socket_euid, &socket_gid) < 0) {
diff --git a/chromium/patches/patch-mojo_public_js_mojo__bindings__resources.grd b/chromium/patches/patch-mojo_public_js_mojo__bindings__resources.grd
deleted file mode 100644
index 33aa7f3275..0000000000
--- a/chromium/patches/patch-mojo_public_js_mojo__bindings__resources.grd
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- mojo/public/js/mojo_bindings_resources.grd.orig 2020-07-08 21:41:48.000000000 +0000
-+++ mojo/public/js/mojo_bindings_resources.grd
-@@ -70,7 +70,7 @@
- use_base_dir="false"
- type="BINDATA"
- compress="gzip" />
-- <if expr="is_win or is_macosx or is_linux or is_android">
-+ <if expr="is_win or is_macosx or is_posix or is_android">
- <include name="IDR_MOJO_TIME_MOJOM_HTML"
- file="${root_gen_dir}/mojo/public/mojom/base/time.mojom.html"
- use_base_dir="false"
diff --git a/chromium/patches/patch-mojo_public_tools_bindings_mojom.gni b/chromium/patches/patch-mojo_public_tools_bindings_mojom.gni
index 70045ff985..04402f1c96 100644
--- a/chromium/patches/patch-mojo_public_tools_bindings_mojom.gni
+++ b/chromium/patches/patch-mojo_public_tools_bindings_mojom.gni
@@ -1,22 +1,30 @@
$NetBSD$
---- mojo/public/tools/bindings/mojom.gni.orig 2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- mojo/public/tools/bindings/mojom.gni.orig 2024-07-24 02:44:41.765278000 +0000
+++ mojo/public/tools/bindings/mojom.gni
-@@ -62,7 +62,7 @@ declare_args() {
- # check |target_os| explicitly, as it's consistent across all toolchains.
- enable_scrambled_message_ids =
- enable_mojom_message_id_scrambling &&
-- (is_mac || is_win || (is_linux && !is_chromeos && !is_chromecast &&
-+ (is_mac || is_win || ((is_linux || is_bsd) && !is_chromeos && !is_chromecast &&
- !chromeos_is_browser_only) ||
- ((enable_nacl || is_nacl || is_nacl_nonsfi) &&
- (target_os != "chromeos" && !chromeos_is_browser_only)))
-@@ -646,7 +646,7 @@ template("mojom") {
- enabled_features += [ "is_fuchsia" ]
- } else if (is_ios) {
- enabled_features += [ "is_ios" ]
-- } else if (is_linux) {
-+ } else if (is_linux || is_bsd) {
- enabled_features += [ "is_linux" ]
- } else if (is_mac) {
- enabled_features += [ "is_mac" ]
+@@ -762,6 +762,21 @@ template("mojom") {
+ enabled_features += [ "is_apple" ]
+ }
+
++ if (is_openbsd) {
++ enabled_features += [ "is_openbsd" ]
++ enabled_features += [ "is_bsd" ]
++ }
++
++ if (is_netbsd) {
++ enabled_features += [ "is_netbsd" ]
++ enabled_features += [ "is_bsd" ]
++ }
++
++ if (is_freebsd) {
++ enabled_features += [ "is_freebsd" ]
++ enabled_features += [ "is_bsd" ]
++ }
++
+ action(parser_target_name) {
+ allow_remote = true
+
diff --git a/chromium/patches/patch-net_BUILD.gn b/chromium/patches/patch-net_BUILD.gn
index 85a8954ee3..7ea91ce6c6 100644
--- a/chromium/patches/patch-net_BUILD.gn
+++ b/chromium/patches/patch-net_BUILD.gn
@@ -1,62 +1,101 @@
$NetBSD$
---- net/BUILD.gn.orig 2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/BUILD.gn.orig 2024-07-24 02:44:42.137314300 +0000
+++ net/BUILD.gn
-@@ -1234,7 +1234,7 @@ component("net") {
- ]
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "base/network_change_notifier_linux.cc",
- "base/network_change_notifier_linux.h",
-@@ -1253,6 +1253,12 @@ component("net") {
- ]
- }
-
-+ if (is_bsd) {
-+ sources += [
-+ "base/platform_mime_util_linux.cc",
-+ ]
-+ }
+@@ -123,7 +123,7 @@ net_configs = [
+ "//build/config/compiler:wexit_time_destructors",
+ ]
+
+-if (is_linux || is_chromeos) {
++if ((is_linux || is_chromeos) && !is_bsd) {
+ net_configs += [ "//build/config/linux:libresolv" ]
+ }
+
+@@ -1212,6 +1212,19 @@ component("net") {
+ ]
+ }
+
++ if (is_bsd) {
++ sources -= [
++ "base/address_map_cache_linux.cc",
++ "base/address_map_cache_linux.h",
++ "base/address_map_linux.cc",
++ "base/address_map_linux.h",
++ "base/address_tracker_linux.cc",
++ "base/address_tracker_linux.h",
++ "base/network_change_notifier_linux.cc",
++ "base/network_interfaces_linux.cc",
++ ]
++ }
++
+ if (is_mac) {
+ sources += [
+ "base/network_notification_thread_mac.cc",
+@@ -1371,7 +1384,7 @@ component("net") {
+ }
+
+ # Use getifaddrs() on POSIX platforms, except Linux.
+- if (is_posix && !is_linux && !is_chromeos) {
++ if ((is_posix && !is_linux && !is_chromeos) || is_bsd) {
+ sources += [
+ "base/network_interfaces_getifaddrs.cc",
+ "base/network_interfaces_getifaddrs.h",
+@@ -2031,7 +2044,7 @@ static_library("test_support") {
+ "url_request/url_request_test_util.h",
+ ]
+
+- if (is_linux || is_chromeos || is_android) {
++ if ((is_linux || is_chromeos || is_android) && !is_bsd) {
+ sources += [
+ "base/address_tracker_linux_test_util.cc",
+ "base/address_tracker_linux_test_util.h",
+@@ -2853,14 +2866,14 @@ test("net_unittests") {
+ ]
+ }
+
+- if (is_linux) {
++ if (is_linux && !is_bsd) {
+ sources += [
+ "base/network_change_notifier_linux_unittest.cc",
+ "proxy_resolution/proxy_config_service_linux_unittest.cc",
+ ]
+ }
+
+- if (is_linux || is_chromeos) {
++ if ((is_linux || is_chromeos) && !is_bsd) {
+ sources += [
+ "base/address_tracker_linux_unittest.cc",
+ "base/network_interfaces_linux_unittest.cc",
+@@ -2948,6 +2961,10 @@ test("net_unittests") {
+ ]
+ }
+
++ if (is_bsd) {
++ deps += [ "//sandbox/policy" ]
++ }
+
- if (is_mac) {
- sources += [
- "base/network_notification_thread_mac.cc",
-@@ -1383,7 +1389,7 @@ component("net") {
- }
- }
-
-- if (is_android || is_chromeos) {
-+ if (is_android || is_chromeos || is_bsd) {
- sources += [
- "base/network_change_notifier_posix.cc",
- "base/network_change_notifier_posix.h",
-@@ -1416,7 +1422,7 @@ component("net") {
- }
-
- # Use getifaddrs() on POSIX platforms, except Linux and Android.
-- if (is_posix && !is_linux && !is_android) {
-+ if (is_posix && ((!is_linux && !is_android) || is_bsd)) {
- sources += [
- "base/network_interfaces_getifaddrs.cc",
- "base/network_interfaces_getifaddrs.h",
-@@ -4545,7 +4551,7 @@ test("net_unittests") {
- sources += [ "socket/udp_socket_posix_unittest.cc" ]
- }
-
-- if (is_android || is_chromeos) {
-+ if (is_android || is_chromeos || is_bsd) {
- sources += [ "base/network_change_notifier_posix_unittest.cc" ]
- }
-
-@@ -4750,7 +4756,7 @@ test("net_unittests") {
- }
-
- # Use getifaddrs() on POSIX platforms, except Linux and Android.
-- if (is_posix && !is_linux && !is_android) {
-+ if (is_posix && ((!is_linux && !is_android) || is_bsd)) {
+ if (enable_websockets) {
+ deps += [ "//net/server:tests" ]
+ }
+@@ -3008,7 +3025,7 @@ test("net_unittests") {
+ ]
+ }
+
+- if (is_linux || is_chromeos) {
++ if ((is_linux || is_chromeos) && !is_bsd) {
+ sources += [ "tools/quic/quic_simple_server_test.cc" ]
+ }
+
+@@ -3147,7 +3164,7 @@ test("net_unittests") {
+ }
+
+ # Use getifaddrs() on POSIX platforms, except Linux.
+- if (is_posix && !is_linux && !is_chromeos) {
++ if (is_posix && !is_linux && !is_chromeos && !is_bsd) {
sources += [ "base/network_interfaces_getifaddrs_unittest.cc" ]
}
diff --git a/chromium/patches/patch-net_base_address__tracker__linux.cc b/chromium/patches/patch-net_base_address__tracker__linux.cc
deleted file mode 100644
index c4b440e11c..0000000000
--- a/chromium/patches/patch-net_base_address__tracker__linux.cc
+++ /dev/null
@@ -1,75 +0,0 @@
-$NetBSD$
-
---- net/base/address_tracker_linux.cc.orig 2020-07-08 21:40:46.000000000 +0000
-+++ net/base/address_tracker_linux.cc
-@@ -5,7 +5,9 @@
- #include "net/base/address_tracker_linux.h"
-
- #include <errno.h>
-+#if !defined(OS_BSD)
- #include <linux/if.h>
-+#endif
- #include <stdint.h>
- #include <sys/ioctl.h>
- #include <utility>
-@@ -177,6 +179,7 @@ AddressTrackerLinux::AddressTrackerLinux
- AddressTrackerLinux::~AddressTrackerLinux() = default;
-
- void AddressTrackerLinux::Init() {
-+#if !defined(OS_BSD)
- netlink_fd_.reset(socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE));
- if (!netlink_fd_.is_valid()) {
- PLOG(ERROR) << "Could not create NETLINK socket";
-@@ -272,6 +275,7 @@ void AddressTrackerLinux::AbortAndForceO
- connection_type_initialized_cv_.Broadcast();
- }
-
-+#if !defined(OS_BSD)
- AddressTrackerLinux::AddressMap AddressTrackerLinux::GetAddressMap() const {
- AddressTrackerAutoLock lock(*this, address_map_lock_);
- return address_map_;
-@@ -290,6 +294,7 @@ bool AddressTrackerLinux::IsInterfaceIgn
- const char* interface_name = get_interface_name_(interface_index, buf);
- return ignored_interfaces_.find(interface_name) != ignored_interfaces_.end();
- }
-+#endif
-
- NetworkChangeNotifier::ConnectionType
- AddressTrackerLinux::GetCurrentConnectionType() {
-@@ -348,6 +353,7 @@ void AddressTrackerLinux::HandleMessage(
- bool* address_changed,
- bool* link_changed,
- bool* tunnel_changed) {
-+#if !defined(OS_BSD)
- DCHECK(buffer);
- // Note that NLMSG_NEXT decrements |length| to reflect the number of bytes
- // remaining in |buffer|.
-@@ -460,6 +466,10 @@ void AddressTrackerLinux::HandleMessage(
- break;
- }
- }
-+#else
-+ NOTIMPLEMENTED();
-+ AbortAndFOrceOnline();
-+#endif
- }
-
- void AddressTrackerLinux::OnFileCanReadWithoutBlocking() {
-@@ -487,6 +497,7 @@ bool AddressTrackerLinux::IsTunnelInterf
- }
-
- void AddressTrackerLinux::UpdateCurrentConnectionType() {
-+#if !defined(OS_BSD)
- AddressTrackerLinux::AddressMap address_map = GetAddressMap();
- std::unordered_set<int> online_links = GetOnlineLinks();
-
-@@ -512,6 +523,9 @@ void AddressTrackerLinux::UpdateCurrentC
-
- AddressTrackerAutoLock lock(*this, connection_type_lock_);
- current_connection_type_ = type;
-+#else
-+ NOTIMPLEMENTED();
-+#endif
- }
-
- int AddressTrackerLinux::GetThreadsWaitingForConnectionTypeInitForTesting() {
diff --git a/chromium/patches/patch-net_base_address__tracker__linux.h b/chromium/patches/patch-net_base_address__tracker__linux.h
deleted file mode 100644
index 884c48c9a5..0000000000
--- a/chromium/patches/patch-net_base_address__tracker__linux.h
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
---- net/base/address_tracker_linux.h.orig 2020-07-08 21:40:46.000000000 +0000
-+++ net/base/address_tracker_linux.h
-@@ -6,10 +6,6 @@
- #define NET_BASE_ADDRESS_TRACKER_LINUX_H_
-
- #include <sys/socket.h> // Needed to include netlink.
--// Mask superfluous definition of |struct net|. This is fixed in Linux 2.6.38.
--#define net net_kernel
--#include <linux/rtnetlink.h>
--#undef net
- #include <stddef.h>
-
- #include <map>
diff --git a/chromium/patches/patch-net_base_address__tracker__linux__unittest.cc b/chromium/patches/patch-net_base_address__tracker__linux__unittest.cc
deleted file mode 100644
index 3f7f0a1741..0000000000
--- a/chromium/patches/patch-net_base_address__tracker__linux__unittest.cc
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD$
-
---- net/base/address_tracker_linux_unittest.cc.orig 2020-07-15 18:56:00.000000000 +0000
-+++ net/base/address_tracker_linux_unittest.cc
-@@ -4,7 +4,11 @@
-
- #include "net/base/address_tracker_linux.h"
-
-+#if defined(OS_LINUX)
- #include <linux/if.h>
-+#else
-+#include <net/if.h>
-+#endif
-
- #include <memory>
- #include <unordered_set>
diff --git a/chromium/patches/patch-net_base_features.cc b/chromium/patches/patch-net_base_features.cc
new file mode 100644
index 0000000000..b1387befb2
--- /dev/null
+++ b/chromium/patches/patch-net_base_features.cc
@@ -0,0 +1,30 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/base/features.cc.orig 2024-07-24 02:44:42.149315400 +0000
++++ net/base/features.cc
+@@ -26,7 +26,7 @@ BASE_FEATURE(kCapReferrerToOriginOnCross
+ BASE_FEATURE(kAsyncDns,
+ "AsyncDns",
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_ANDROID) || \
+- BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+ base::FEATURE_DISABLED_BY_DEFAULT
+@@ -505,7 +505,12 @@ BASE_FEATURE(kSpdyHeadersToHttpResponseU
+ "SpdyHeadersToHttpResponseUseBuilder",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+
++#if BUILDFLAG(IS_OPENBSD)
++// No IP_RECVTOS support
+ BASE_FEATURE(kReportEcn, "ReportEcn", base::FEATURE_DISABLED_BY_DEFAULT);
++#else
++BASE_FEATURE(kReportEcn, "ReportEcn", base::FEATURE_DISABLED_BY_DEFAULT);
++#endif
+
+ BASE_FEATURE(kUseNewAlpsCodepointHttp2,
+ "UseNewAlpsCodepointHttp2",
diff --git a/chromium/patches/patch-net_base_mock__network__change__notifier.cc b/chromium/patches/patch-net_base_mock__network__change__notifier.cc
new file mode 100644
index 0000000000..89e60a4964
--- /dev/null
+++ b/chromium/patches/patch-net_base_mock__network__change__notifier.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/base/mock_network_change_notifier.cc.orig 2024-07-24 02:44:42.157316200 +0000
++++ net/base/mock_network_change_notifier.cc
+@@ -103,7 +103,7 @@ MockNetworkChangeNotifier::GetCurrentCon
+ return connection_cost_;
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ AddressMapOwnerLinux* MockNetworkChangeNotifier::GetAddressMapOwnerInternal() {
+ return address_map_owner_;
+ }
diff --git a/chromium/patches/patch-net_base_mock__network__change__notifier.h b/chromium/patches/patch-net_base_mock__network__change__notifier.h
new file mode 100644
index 0000000000..e0805d871e
--- /dev/null
+++ b/chromium/patches/patch-net_base_mock__network__change__notifier.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/base/mock_network_change_notifier.h.orig 2024-07-24 02:44:42.157316200 +0000
++++ net/base/mock_network_change_notifier.h
+@@ -84,7 +84,7 @@ class MockNetworkChangeNotifier : public
+ // use_default_connection_cost_implementation is set to true.
+ ConnectionCost GetCurrentConnectionCost() override;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void SetAddressMapOwnerLinux(AddressMapOwnerLinux* address_map_owner) {
+ address_map_owner_ = address_map_owner;
+ }
+@@ -104,7 +104,7 @@ class MockNetworkChangeNotifier : public
+ bool use_default_connection_cost_implementation_ = false;
+ NetworkChangeNotifier::NetworkList connected_networks_;
+ std::unique_ptr<SystemDnsConfigChangeNotifier> dns_config_notifier_;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ raw_ptr<AddressMapOwnerLinux> address_map_owner_ = nullptr;
+ #endif
+ };
diff --git a/chromium/patches/patch-net_base_network__change__notifier.cc b/chromium/patches/patch-net_base_network__change__notifier.cc
index c3daaf2794..64b9a6a778 100644
--- a/chromium/patches/patch-net_base_network__change__notifier.cc
+++ b/chromium/patches/patch-net_base_network__change__notifier.cc
@@ -1,31 +1,45 @@
$NetBSD$
---- net/base/network_change_notifier.cc.orig 2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/base/network_change_notifier.cc.orig 2024-07-24 02:44:42.161316600 +0000
+++ net/base/network_change_notifier.cc
-@@ -35,7 +35,7 @@
+@@ -42,7 +42,7 @@
#include "net/base/network_change_notifier_linux.h"
- #elif defined(OS_MACOSX)
- #include "net/base/network_change_notifier_mac.h"
--#elif defined(OS_CHROMEOS) || defined(OS_ANDROID)
-+#elif defined(OS_CHROMEOS) || defined(OS_ANDROID) || defined(OS_BSD)
- #include "net/base/network_change_notifier_posix.h"
- #elif defined(OS_FUCHSIA)
+ #elif BUILDFLAG(IS_APPLE)
+ #include "net/base/network_change_notifier_apple.h"
+-#elif BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#elif BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ #include "net/base/network_change_notifier_passive.h"
+ #elif BUILDFLAG(IS_FUCHSIA)
#include "net/base/network_change_notifier_fuchsia.h"
-@@ -229,7 +229,7 @@ std::unique_ptr<NetworkChangeNotifier> N
- // service in a separate process.
- return std::make_unique<NetworkChangeNotifierPosix>(initial_type,
- initial_subtype);
--#elif defined(OS_CHROMEOS)
-+#elif defined(OS_CHROMEOS) || defined(OS_BSD)
- return std::make_unique<NetworkChangeNotifierPosix>(initial_type,
- initial_subtype);
- #elif defined(OS_LINUX)
-@@ -240,6 +240,8 @@ std::unique_ptr<NetworkChangeNotifier> N
- #elif defined(OS_FUCHSIA)
+@@ -334,6 +334,9 @@ std::unique_ptr<NetworkChangeNotifier> N
+ #elif BUILDFLAG(IS_FUCHSIA)
return std::make_unique<NetworkChangeNotifierFuchsia>(
- 0 /* required_features */);
-+#elif defined(OS_BSD)
-+ return NULL;
+ /*require_wlan=*/false);
++#elif BUILDFLAG(IS_BSD)
++ return std::make_unique<MockNetworkChangeNotifier>(
++ /*dns_config_notifier*/nullptr);
#else
NOTIMPLEMENTED();
- return NULL;
+ return nullptr;
+@@ -525,7 +528,7 @@ const char* NetworkChangeNotifier::Conne
+ return kConnectionTypeNames[type];
+ }
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // static
+ AddressMapOwnerLinux* NetworkChangeNotifier::GetAddressMapOwner() {
+ return g_network_change_notifier
+@@ -879,7 +882,7 @@ NetworkChangeNotifier::NetworkChangeNoti
+ }
+ }
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ AddressMapOwnerLinux* NetworkChangeNotifier::GetAddressMapOwnerInternal() {
+ return nullptr;
+ }
diff --git a/chromium/patches/patch-net_base_network__change__notifier.h b/chromium/patches/patch-net_base_network__change__notifier.h
index 1fda120434..cda4f9c015 100644
--- a/chromium/patches/patch-net_base_network__change__notifier.h
+++ b/chromium/patches/patch-net_base_network__change__notifier.h
@@ -1,31 +1,35 @@
$NetBSD$
---- net/base/network_change_notifier.h.orig 2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/base/network_change_notifier.h.orig 2024-07-24 02:44:42.161316600 +0000
+++ net/base/network_change_notifier.h
-@@ -23,7 +23,7 @@ struct NetworkInterface;
- class SystemDnsConfigChangeNotifier;
- typedef std::vector<NetworkInterface> NetworkInterfaceList;
+@@ -18,7 +18,7 @@
+ #include "net/base/net_export.h"
+ #include "net/base/network_handle.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "net/base/address_map_linux.h"
+ #endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- namespace internal {
- class AddressTrackerLinux;
- }
-@@ -366,7 +366,7 @@ class NET_EXPORT NetworkChangeNotifier {
- // Chrome net code.
- static SystemDnsConfigChangeNotifier* GetSystemDnsConfigNotifier();
+@@ -459,7 +459,7 @@ class NET_EXPORT NetworkChangeNotifier {
+ // packets sent lazily.
+ static bool IsDefaultNetworkActive();
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// Returns the AddressTrackerLinux if present.
- static const internal::AddressTrackerLinux* GetAddressTracker();
+ static AddressMapOwnerLinux* GetAddressMapOwner();
#endif
-@@ -513,7 +513,7 @@ class NET_EXPORT NetworkChangeNotifier {
- NetworkChangeCalculatorParams(),
- SystemDnsConfigChangeNotifier* system_dns_config_notifier = nullptr);
+@@ -629,7 +629,7 @@ class NET_EXPORT NetworkChangeNotifier {
+ SystemDnsConfigChangeNotifier* system_dns_config_notifier = nullptr,
+ bool omit_observers_in_constructor_for_testing = false);
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // Returns the AddressTrackerLinux if present.
- // TODO(szym): Retrieve AddressMap from NetworkState. http://crbug.com/144212
- virtual const internal::AddressTrackerLinux*
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Returns the AddressMapOwnerLinux if present.
+ virtual AddressMapOwnerLinux* GetAddressMapOwnerInternal();
+ #endif
diff --git a/chromium/patches/patch-net_base_network__change__notifier__passive.cc b/chromium/patches/patch-net_base_network__change__notifier__passive.cc
new file mode 100644
index 0000000000..c27ec3e50e
--- /dev/null
+++ b/chromium/patches/patch-net_base_network__change__notifier__passive.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/base/network_change_notifier_passive.cc.orig 2024-07-24 02:44:42.161316600 +0000
++++ net/base/network_change_notifier_passive.cc
+@@ -107,7 +107,7 @@ NetworkChangeNotifierPassive::GetAddress
+ NetworkChangeNotifier::NetworkChangeCalculatorParams
+ NetworkChangeNotifierPassive::NetworkChangeCalculatorParamsPassive() {
+ NetworkChangeCalculatorParams params;
+-#if BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Delay values arrived at by simple experimentation and adjusted so as to
+ // produce a single signal when switching between network connections.
+ params.ip_address_offline_delay_ = base::Milliseconds(4000);
diff --git a/chromium/patches/patch-net_base_network__interfaces__posix.h b/chromium/patches/patch-net_base_network__interfaces__posix.h
index 9860840b16..7b2be967c1 100644
--- a/chromium/patches/patch-net_base_network__interfaces__posix.h
+++ b/chromium/patches/patch-net_base_network__interfaces__posix.h
@@ -1,6 +1,10 @@
$NetBSD$
---- net/base/network_interfaces_posix.h.orig 2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/base/network_interfaces_posix.h.orig 2024-07-24 02:44:42.165316800 +0000
+++ net/base/network_interfaces_posix.h
@@ -8,6 +8,8 @@
// This file provides some basic functionality shared between
diff --git a/chromium/patches/patch-net_base_sockaddr__util__posix.cc b/chromium/patches/patch-net_base_sockaddr__util__posix.cc
new file mode 100644
index 0000000000..0310a5f88a
--- /dev/null
+++ b/chromium/patches/patch-net_base_sockaddr__util__posix.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/base/sockaddr_util_posix.cc.orig 2024-07-24 02:44:42.173317700 +0000
++++ net/base/sockaddr_util_posix.cc
+@@ -46,7 +46,8 @@ bool FillUnixAddress(const std::string&
+ return true;
+ }
+
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
++ // XXX ?
+ // Convert the path given into abstract socket name. It must start with
+ // the '\0' character, so we are adding it. |addr_len| must specify the
+ // length of the structure exactly, as potentially the socket name may
diff --git a/chromium/patches/patch-net_base_sockaddr__util__posix__unittest.cc b/chromium/patches/patch-net_base_sockaddr__util__posix__unittest.cc
new file mode 100644
index 0000000000..53f879c589
--- /dev/null
+++ b/chromium/patches/patch-net_base_sockaddr__util__posix__unittest.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/base/sockaddr_util_posix_unittest.cc.orig 2024-07-24 02:44:42.173317700 +0000
++++ net/base/sockaddr_util_posix_unittest.cc
+@@ -88,7 +88,8 @@ TEST(FillUnixAddressTest, AbstractLinuxA
+ size_t path_max = MaxPathLength(&storage);
+ std::string path(path_max, '0');
+
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
++ // XXX?
+ EXPECT_TRUE(FillUnixAddress(path, /*use_abstract_namespace=*/true, &storage));
+
+ EXPECT_EQ(path.size() + 1U + offsetof(struct sockaddr_un, sun_path),
diff --git a/chromium/patches/patch-net_cert_cert__verify__proc.cc b/chromium/patches/patch-net_cert_cert__verify__proc.cc
deleted file mode 100644
index 8b20b9fafe..0000000000
--- a/chromium/patches/patch-net_cert_cert__verify__proc.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- net/cert/cert_verify_proc.cc.orig 2020-07-15 18:56:00.000000000 +0000
-+++ net/cert/cert_verify_proc.cc
-@@ -494,7 +494,7 @@ base::Value CertVerifyParams(X509Certifi
-
- } // namespace
-
--#if !(defined(OS_FUCHSIA) || defined(OS_LINUX) || defined(OS_CHROMEOS))
-+#if !(defined(OS_FUCHSIA) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD))
- // static
- scoped_refptr<CertVerifyProc> CertVerifyProc::CreateSystemVerifyProc(
- scoped_refptr<CertNetFetcher> cert_net_fetcher) {
diff --git a/chromium/patches/patch-net_cert_cert__verify__proc.h b/chromium/patches/patch-net_cert_cert__verify__proc.h
new file mode 100644
index 0000000000..726a3b1b9f
--- /dev/null
+++ b/chromium/patches/patch-net_cert_cert__verify__proc.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/cert/cert_verify_proc.h.orig 2024-07-24 02:44:42.181318500 +0000
++++ net/cert/cert_verify_proc.h
+@@ -176,7 +176,7 @@ class NET_EXPORT CertVerifyProc
+ kMaxValue = kChainLengthOne
+ };
+
+-#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || \
++#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || \
+ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(CHROME_ROOT_STORE_ONLY))
+ // Creates and returns a CertVerifyProc that uses the system verifier.
+ // |cert_net_fetcher| may not be used, depending on the implementation.
diff --git a/chromium/patches/patch-net_cert_test__root__certs.h b/chromium/patches/patch-net_cert_test__root__certs.h
deleted file mode 100644
index 9605b5a51f..0000000000
--- a/chromium/patches/patch-net_cert_test__root__certs.h
+++ /dev/null
@@ -1,28 +0,0 @@
-$NetBSD$
-
---- net/cert/test_root_certs.h.orig 2020-07-24 02:37:58.000000000 +0000
-+++ net/cert/test_root_certs.h
-@@ -75,7 +75,7 @@ class NET_EXPORT TestRootCerts {
- // engine is appropriate. The caller is responsible for freeing the
- // returned HCERTCHAINENGINE.
- HCERTCHAINENGINE GetChainEngine() const;
--#elif defined(OS_FUCHSIA) || defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#elif defined(OS_FUCHSIA) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
- TrustStore* test_trust_store() { return &test_trust_store_; }
- #endif
-
-@@ -93,12 +93,12 @@ class NET_EXPORT TestRootCerts {
- #elif defined(OS_MACOSX)
- base::ScopedCFTypeRef<CFMutableArrayRef> temporary_roots_;
- TrustStoreInMemory test_trust_store_;
--#elif defined(OS_FUCHSIA) || defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#elif defined(OS_FUCHSIA) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
- TrustStoreInMemory test_trust_store_;
- #endif
-
- #if defined(OS_WIN) || defined(OS_ANDROID) || defined(OS_FUCHSIA) || \
-- defined(OS_LINUX) || defined(OS_CHROMEOS)
-+ defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
- // True if there are no temporarily trusted root certificates.
- bool empty_ = true;
- #endif
diff --git a/chromium/patches/patch-net_disk__cache_blockfile_disk__format.h b/chromium/patches/patch-net_disk__cache_blockfile_disk__format.h
deleted file mode 100644
index d0d9b52492..0000000000
--- a/chromium/patches/patch-net_disk__cache_blockfile_disk__format.h
+++ /dev/null
@@ -1,14 +0,0 @@
-$NetBSD$
-
---- net/disk_cache/blockfile/disk_format.h.orig 2020-07-15 18:56:00.000000000 +0000
-+++ net/disk_cache/blockfile/disk_format.h
-@@ -149,7 +149,9 @@ struct RankingsNode {
- };
- #pragma pack(pop)
-
-+#if !defined(OS_BSD)
- static_assert(sizeof(RankingsNode) == 36, "bad RankingsNode");
-+#endif
-
- } // namespace disk_cache
-
diff --git a/chromium/patches/patch-net_disk__cache_simple_simple__file__tracker.cc b/chromium/patches/patch-net_disk__cache_simple_simple__file__tracker.cc
new file mode 100644
index 0000000000..f65b9aac83
--- /dev/null
+++ b/chromium/patches/patch-net_disk__cache_simple_simple__file__tracker.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/disk_cache/simple/simple_file_tracker.cc.orig 2024-07-24 02:44:42.561355400 +0000
++++ net/disk_cache/simple/simple_file_tracker.cc
+@@ -34,7 +34,17 @@ void RecordFileDescripterLimiterOp(FileD
+ } // namespace
+
+ SimpleFileTracker::SimpleFileTracker(int file_limit)
++#if defined(OS_OPENBSD)
++{
++ // cap the file descriptor limit at 85% of the size of the
++ // file descriptor table and also substract the amount of
++ // currently used file descriptors as this should give us
++ // enough reserve to avoid hitting the limit
++ file_limit_ = (getdtablesize() * 0.85) - getdtablecount();
++}
++#else
+ : file_limit_(file_limit) {}
++#endif
+
+ SimpleFileTracker::~SimpleFileTracker() {
+ DCHECK(lru_.empty());
diff --git a/chromium/patches/patch-net_dns_BUILD.gn b/chromium/patches/patch-net_dns_BUILD.gn
new file mode 100644
index 0000000000..e19540fb07
--- /dev/null
+++ b/chromium/patches/patch-net_dns_BUILD.gn
@@ -0,0 +1,49 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/dns/BUILD.gn.orig 2024-07-24 02:44:42.565355800 +0000
++++ net/dns/BUILD.gn
+@@ -138,7 +138,7 @@ source_set("dns") {
+ "dns_config_service_android.cc",
+ "dns_config_service_android.h",
+ ]
+- } else if (is_linux) {
++ } else if (is_linux && !is_bsd) {
+ sources += [
+ "dns_config_service_linux.cc",
+ "dns_config_service_linux.h",
+@@ -171,7 +171,10 @@ source_set("dns") {
+ ]
+ }
+
+- deps = [ "//net:net_deps" ]
++ deps = [
++ "//net:net_deps",
++ "///services/screen_ai/buildflags",
++ ]
+
+ public_deps = [
+ ":dns_client",
+@@ -179,6 +182,7 @@ source_set("dns") {
+ ":host_resolver_manager",
+ ":mdns_client",
+ "//net:net_public_deps",
++ "//printing/buildflags",
+ ]
+
+ allow_circular_includes_from = [
+@@ -447,9 +451,9 @@ source_set("tests") {
+
+ if (is_android) {
+ sources += [ "dns_config_service_android_unittest.cc" ]
+- } else if (is_linux) {
++ } else if (is_linux && !is_bsd) {
+ sources += [ "dns_config_service_linux_unittest.cc" ]
+- } else if (is_posix) {
++ } else if (is_posix && !is_bsd) {
+ sources += [ "dns_config_service_posix_unittest.cc" ]
+ }
+
diff --git a/chromium/patches/patch-net_dns_address__info.cc b/chromium/patches/patch-net_dns_address__info.cc
new file mode 100644
index 0000000000..63deb26f7a
--- /dev/null
+++ b/chromium/patches/patch-net_dns_address__info.cc
@@ -0,0 +1,22 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/dns/address_info.cc.orig 2024-07-24 02:44:42.565355800 +0000
++++ net/dns/address_info.cc
+@@ -83,8 +83,12 @@ AddressInfo::AddressInfoAndResult Addres
+ // error.
+ // http://crbug.com/134142
+ err = ERR_NAME_NOT_RESOLVED;
+-#elif BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_FREEBSD)
++#elif BUILDFLAG(IS_POSIX)
++#ifdef EAI_NODATA
+ if (os_error != EAI_NONAME && os_error != EAI_NODATA)
++#else
++ if (os_error != EAI_NONAME)
++#endif
+ err = ERR_NAME_RESOLUTION_FAILED;
+ #endif
+
diff --git a/chromium/patches/patch-net_dns_address__sorter__posix.cc b/chromium/patches/patch-net_dns_address__sorter__posix.cc
index ff150f92be..42f7f376f6 100644
--- a/chromium/patches/patch-net_dns_address__sorter__posix.cc
+++ b/chromium/patches/patch-net_dns_address__sorter__posix.cc
@@ -1,16 +1,16 @@
$NetBSD$
---- net/dns/address_sorter_posix.cc.orig 2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/dns/address_sorter_posix.cc.orig 2024-07-24 02:44:42.565355800 +0000
+++ net/dns/address_sorter_posix.cc
-@@ -13,7 +13,11 @@
- #include <sys/socket.h> // Must be included before ifaddrs.h.
- #include <ifaddrs.h>
- #include <net/if.h>
-+#if defined(OS_FREEBSD)
-+#include <net/if_var.h>
-+#endif
+@@ -32,6 +32,7 @@
+ #include "net/dns/netinet_in_var_ios.h"
+ #else
#include <netinet/in_var.h>
+#include <netinet6/in6_var.h>
- #include <string.h>
- #include <sys/ioctl.h>
+ #endif // BUILDFLAG(IS_IOS)
#endif
+ #include <vector>
diff --git a/chromium/patches/patch-net_dns_dns__config__service__posix.cc b/chromium/patches/patch-net_dns_dns__config__service__posix.cc
new file mode 100644
index 0000000000..1904915208
--- /dev/null
+++ b/chromium/patches/patch-net_dns_dns__config__service__posix.cc
@@ -0,0 +1,32 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/dns/dns_config_service_posix.cc.orig 2024-07-24 02:44:42.569356000 +0000
++++ net/dns/dns_config_service_posix.cc
+@@ -39,6 +39,11 @@
+ #include "net/dns/dns_config_watcher_mac.h"
+ #endif
+
++#if BUILDFLAG(IS_BSD)
++#include "base/command_line.h"
++#include "sandbox/policy/switches.h"
++#endif
++
+ namespace net {
+
+ namespace internal {
+@@ -136,6 +141,11 @@ class DnsConfigServicePosix::Watcher : p
+ bool Watch() override {
+ CheckOnCorrectSequence();
+
++// pledge + unveil
++ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
++ if (!command_line->HasSwitch(sandbox::policy::switches::kNoSandbox))
++ return false;
++
+ bool success = true;
+ if (!config_watcher_.Watch(base::BindRepeating(&Watcher::OnConfigChanged,
+ base::Unretained(this)))) {
diff --git a/chromium/patches/patch-net_dns_dns__config__service__posix__unittest.cc b/chromium/patches/patch-net_dns_dns__config__service__posix__unittest.cc
deleted file mode 100644
index b9126e04f2..0000000000
--- a/chromium/patches/patch-net_dns_dns__config__service__posix__unittest.cc
+++ /dev/null
@@ -1,40 +0,0 @@
-$NetBSD$
-
---- net/dns/dns_config_service_posix_unittest.cc.orig 2020-07-15 18:56:47.000000000 +0000
-+++ net/dns/dns_config_service_posix_unittest.cc
-@@ -51,7 +51,7 @@ const char* const kNameserversIPv4[] = {
- "1.0.0.1",
- };
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- const char* const kNameserversIPv6[] = {
- NULL,
- "2001:DB8:0::42",
-@@ -87,7 +87,7 @@ void InitializeResState(res_state res) {
- ++res->nscount;
- }
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // Install IPv6 addresses, replacing the corresponding IPv4 addresses.
- unsigned nscount6 = 0;
- for (unsigned i = 0; i < base::size(kNameserversIPv6) && i < MAXNS; ++i) {
-@@ -108,7 +108,7 @@ void InitializeResState(res_state res) {
- }
-
- void CloseResState(res_state res) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- for (int i = 0; i < res->nscount; ++i) {
- if (res->_u._ext.nsaddrs[i] != NULL)
- free(res->_u._ext.nsaddrs[i]);
-@@ -133,7 +133,7 @@ void InitializeExpectedConfig(DnsConfig*
- config->nameservers.push_back(IPEndPoint(ip, NS_DEFAULTPORT + i));
- }
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- for (unsigned i = 0; i < base::size(kNameserversIPv6) && i < MAXNS; ++i) {
- if (!kNameserversIPv6[i])
- continue;
diff --git a/chromium/patches/patch-net_dns_dns__reloader.cc b/chromium/patches/patch-net_dns_dns__reloader.cc
index 121f486c45..6330a21a5d 100644
--- a/chromium/patches/patch-net_dns_dns__reloader.cc
+++ b/chromium/patches/patch-net_dns_dns__reloader.cc
@@ -1,15 +1,25 @@
$NetBSD$
---- net/dns/dns_reloader.cc.orig 2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/dns/dns_reloader.cc.orig 2024-07-24 02:44:42.569356000 +0000
+++ net/dns/dns_reloader.cc
-@@ -7,6 +7,10 @@
- #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_OPENBSD) && \
- !defined(OS_ANDROID) && !defined(OS_FUCHSIA)
+@@ -10,6 +10,7 @@
+ // - there's not guarantee it exists at all. :(
+ #if BUILDFLAG(IS_POSIX)
-+#if defined(OS_BSD)
+#include <netinet/in.h>
-+#endif
-+
#include <resolv.h>
- #include "base/lazy_instance.h"
+ // This code only works on systems where the C library provides res_ninit(3) and
+@@ -31,7 +32,7 @@
+ // an old musl bug that was fixed by musl c8fdcfe5, but Fuchsia's SDK doesn't
+ // have that change.
+ #if defined(__RES) && __RES >= 19991006 && !BUILDFLAG(IS_APPLE) && \
+- !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_FUCHSIA)
++ !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_FUCHSIA) && !BUILDFLAG(IS_NETBSD)
+ // We define this so we don't need to restate the complex condition here twice
+ // below - it would be easy for the copies below to get out of sync.
+ #define USE_RES_NINIT
diff --git a/chromium/patches/patch-net_dns_dns__util.cc b/chromium/patches/patch-net_dns_dns__util.cc
index 0c4571ec25..c286aafdae 100644
--- a/chromium/patches/patch-net_dns_dns__util.cc
+++ b/chromium/patches/patch-net_dns_dns__util.cc
@@ -1,12 +1,17 @@
$NetBSD$
---- net/dns/dns_util.cc.orig 2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/dns/dns_util.cc.orig 2024-07-24 02:44:42.573356400 +0000
+++ net/dns/dns_util.cc
-@@ -40,6 +40,7 @@ const uint16_t kFlagNamePointer = 0xc000
- } // namespace
+@@ -29,6 +29,8 @@
+ #include "net/dns/public/util.h"
+ #include "net/third_party/uri_template/uri_template.h"
- #if defined(OS_POSIX)
+#include <sys/socket.h>
- #include <netinet/in.h>
- #if !defined(OS_NACL)
++
+ #if BUILDFLAG(IS_POSIX)
#include <net/if.h>
+ #include <netinet/in.h>
diff --git a/chromium/patches/patch-net_dns_host__resolver__proc.cc b/chromium/patches/patch-net_dns_host__resolver__proc.cc
index bc1c99e3c9..6fed9df0e1 100644
--- a/chromium/patches/patch-net_dns_host__resolver__proc.cc
+++ b/chromium/patches/patch-net_dns_host__resolver__proc.cc
@@ -1,13 +1,19 @@
$NetBSD$
---- net/dns/host_resolver_proc.cc.orig 2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/dns/host_resolver_proc.cc.orig 2024-07-24 02:44:42.585357700 +0000
+++ net/dns/host_resolver_proc.cc
-@@ -159,7 +159,7 @@ int SystemHostResolverCall(const std::st
- base::ScopedBlockingCall scoped_blocking_call(FROM_HERE,
- base::BlockingType::WILL_BLOCK);
+@@ -15,10 +15,6 @@
+ #include "net/base/net_errors.h"
+ #include "net/dns/host_resolver_system_task.h"
+
+-#if BUILDFLAG(IS_OPENBSD)
+-#define AI_ADDRCONFIG 0
+-#endif
+-
+ namespace net {
--#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_OPENBSD) && \
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD) && \
- !defined(OS_ANDROID) && !defined(OS_FUCHSIA)
- DnsReloaderMaybeReload();
- #endif
+ HostResolverProc* HostResolverProc::default_proc_ = nullptr;
diff --git a/chromium/patches/patch-net_dns_public_BUILD.gn b/chromium/patches/patch-net_dns_public_BUILD.gn
new file mode 100644
index 0000000000..a3ba5bbf75
--- /dev/null
+++ b/chromium/patches/patch-net_dns_public_BUILD.gn
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/dns/public/BUILD.gn.orig 2024-07-24 02:44:42.589358000 +0000
++++ net/dns/public/BUILD.gn
+@@ -78,7 +78,7 @@ source_set("tests") {
+ "doh_provider_entry_unittest.cc",
+ ]
+
+- if (is_posix && !is_android) {
++ if (is_posix && !is_android && !is_bsd) {
+ sources += [ "resolv_reader_unittest.cc" ]
+ }
+
diff --git a/chromium/patches/patch-net_dns_public_resolv__reader.cc b/chromium/patches/patch-net_dns_public_resolv__reader.cc
new file mode 100644
index 0000000000..b2a92618a3
--- /dev/null
+++ b/chromium/patches/patch-net_dns_public_resolv__reader.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/dns/public/resolv_reader.cc.orig 2024-07-24 02:44:42.589358000 +0000
++++ net/dns/public/resolv_reader.cc
+@@ -40,7 +40,7 @@ std::optional<std::vector<IPEndPoint>> G
+ if (!(res.options & RES_INIT))
+ return std::nullopt;
+
+-#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FREEBSD)
++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
+ union res_sockaddr_union addresses[MAXNS];
+ int nscount = res_getservers(const_cast<res_state>(&res), addresses, MAXNS);
+ DCHECK_GE(nscount, 0);
diff --git a/chromium/patches/patch-net_dns_public_resolv__reader.h b/chromium/patches/patch-net_dns_public_resolv__reader.h
new file mode 100644
index 0000000000..baeb17096b
--- /dev/null
+++ b/chromium/patches/patch-net_dns_public_resolv__reader.h
@@ -0,0 +1,16 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/dns/public/resolv_reader.h.orig 2024-07-24 02:44:42.589358000 +0000
++++ net/dns/public/resolv_reader.h
+@@ -5,6 +5,7 @@
+ #ifndef NET_DNS_PUBLIC_RESOLV_READER_H_
+ #define NET_DNS_PUBLIC_RESOLV_READER_H_
+
++#include <netinet/in.h>
+ #include <resolv.h>
+
+ #include <memory>
diff --git a/chromium/patches/patch-net_dns_public_scoped__res__state.cc b/chromium/patches/patch-net_dns_public_scoped__res__state.cc
new file mode 100644
index 0000000000..80da7f8bb8
--- /dev/null
+++ b/chromium/patches/patch-net_dns_public_scoped__res__state.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/dns/public/scoped_res_state.cc.orig 2024-07-24 02:44:42.593358300 +0000
++++ net/dns/public/scoped_res_state.cc
+@@ -28,7 +28,7 @@ ScopedResState::~ScopedResState() {
+ #if !BUILDFLAG(IS_OPENBSD) && !BUILDFLAG(IS_FUCHSIA)
+
+ // Prefer res_ndestroy where available.
+-#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FREEBSD)
++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
+ res_ndestroy(&res_);
+ #else
+ res_nclose(&res_);
diff --git a/chromium/patches/patch-net_dns_public_scoped__res__state.h b/chromium/patches/patch-net_dns_public_scoped__res__state.h
new file mode 100644
index 0000000000..cdc9f1062b
--- /dev/null
+++ b/chromium/patches/patch-net_dns_public_scoped__res__state.h
@@ -0,0 +1,16 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/dns/public/scoped_res_state.h.orig 2024-07-24 02:44:42.593358300 +0000
++++ net/dns/public/scoped_res_state.h
+@@ -5,6 +5,7 @@
+ #ifndef NET_DNS_PUBLIC_SCOPED_RES_STATE_H_
+ #define NET_DNS_PUBLIC_SCOPED_RES_STATE_H_
+
++#include <netinet/in.h>
+ #include <resolv.h>
+
+ #include <optional>
diff --git a/chromium/patches/patch-net_features.gni b/chromium/patches/patch-net_features.gni
deleted file mode 100644
index 01e9e5109f..0000000000
--- a/chromium/patches/patch-net_features.gni
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- net/features.gni.orig 2020-06-25 09:31:33.000000000 +0000
-+++ net/features.gni
-@@ -23,7 +23,7 @@ declare_args() {
- disable_brotli_filter = false
-
- # Multicast DNS.
-- enable_mdns = is_win || is_linux || is_fuchsia || is_mac || is_ios
-+ enable_mdns = is_win || is_linux || is_fuchsia || is_mac || is_ios || is_bsd
-
- # Reporting not used on iOS.
- enable_reporting = !is_ios
diff --git a/chromium/patches/patch-net_filter_zstd__source__stream.cc b/chromium/patches/patch-net_filter_zstd__source__stream.cc
new file mode 100644
index 0000000000..7bdd387166
--- /dev/null
+++ b/chromium/patches/patch-net_filter_zstd__source__stream.cc
@@ -0,0 +1,16 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/filter/zstd_source_stream.cc.orig 2024-07-24 02:44:42.605359600 +0000
++++ net/filter/zstd_source_stream.cc
+@@ -7,6 +7,7 @@
+ #include <algorithm>
+ #include <unordered_map>
+ #include <utility>
++#include <unordered_map>
+
+ #define ZSTD_STATIC_LINKING_ONLY
+
diff --git a/chromium/patches/patch-net_http_http__auth__gssapi__posix.cc b/chromium/patches/patch-net_http_http__auth__gssapi__posix.cc
index 2eb6eeeae7..7301cd7fea 100644
--- a/chromium/patches/patch-net_http_http__auth__gssapi__posix.cc
+++ b/chromium/patches/patch-net_http_http__auth__gssapi__posix.cc
@@ -1,16 +1,20 @@
$NetBSD$
---- net/http/http_auth_gssapi_posix.cc.orig 2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/http/http_auth_gssapi_posix.cc.orig 2024-07-24 02:44:42.613360400 +0000
+++ net/http/http_auth_gssapi_posix.cc
-@@ -367,8 +367,9 @@ base::NativeLibrary GSSAPISharedLibrary:
+@@ -375,8 +375,9 @@ base::NativeLibrary GSSAPISharedLibrary:
static const char* const kDefaultLibraryNames[] = {
- #if defined(OS_MACOSX)
+ #if BUILDFLAG(IS_APPLE)
"/System/Library/Frameworks/GSS.framework/GSS"
--#elif defined(OS_OPENBSD)
-- "libgssapi.so" // Heimdal - OpenBSD
-+#elif defined(OS_BSD)
-+ "libgssapi_krb5.so" // MIT Kerberos - FreeBSD
-+ "libgssapi.so" // Heimdal - OpenBSD/NetBSD
+-#elif BUILDFLAG(IS_OPENBSD)
+- "libgssapi.so" // Heimdal - OpenBSD
++#elif BUILDFLAG(IS_BSD)
++ "libgssapi_krb5.so.2", // MIT Kerberos - FreeBSD
++ "libgssapi.so" // Heimdal - OpenBSD, FreeBSD
#else
"libgssapi_krb5.so.2", // MIT Kerberos - FC, Suse10, Debian
"libgssapi.so.4", // Heimdal - Suse10, MDK
diff --git a/chromium/patches/patch-net_http_http__auth__gssapi__posix.h b/chromium/patches/patch-net_http_http__auth__gssapi__posix.h
index 15454798fe..2fed30888f 100644
--- a/chromium/patches/patch-net_http_http__auth__gssapi__posix.h
+++ b/chromium/patches/patch-net_http_http__auth__gssapi__posix.h
@@ -1,15 +1,18 @@
$NetBSD$
---- net/http/http_auth_gssapi_posix.h.orig 2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/http/http_auth_gssapi_posix.h.orig 2024-07-24 02:44:42.613360400 +0000
+++ net/http/http_auth_gssapi_posix.h
-@@ -25,6 +25,10 @@
- #include <gssapi.h>
- #endif
-
+@@ -21,6 +21,9 @@
+ #if BUILDFLAG(IS_APPLE)
+ #include <GSS/gssapi.h>
+ #elif BUILDFLAG(IS_FREEBSD)
+#ifndef GSS_C_DELEG_POLICY_FLAG
+#define GSS_C_DELEG_POLICY_FLAG 32768
+#endif
-+
- namespace net {
-
- class HttpAuthChallengeTokenizer;
+ #include <gssapi/gssapi.h>
+ #else
+ #include <gssapi.h>
diff --git a/chromium/patches/patch-net_http_http__auth__handler__negotiate.cc b/chromium/patches/patch-net_http_http__auth__handler__negotiate.cc
new file mode 100644
index 0000000000..cf0de13f60
--- /dev/null
+++ b/chromium/patches/patch-net_http_http__auth__handler__negotiate.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/http/http_auth_handler_negotiate.cc.orig 2024-07-24 02:44:42.613360400 +0000
++++ net/http/http_auth_handler_negotiate.cc
+@@ -120,7 +120,7 @@ int HttpAuthHandlerNegotiate::Factory::C
+ #elif BUILDFLAG(IS_POSIX)
+ if (is_unsupported_)
+ return ERR_UNSUPPORTED_AUTH_SCHEME;
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Note: Don't set is_unsupported_ = true here. AllowGssapiLibraryLoad()
+ // might change to true during a session.
+ if (!http_auth_preferences() ||
diff --git a/chromium/patches/patch-net_http_http__auth__preferences.cc b/chromium/patches/patch-net_http_http__auth__preferences.cc
new file mode 100644
index 0000000000..d674e57505
--- /dev/null
+++ b/chromium/patches/patch-net_http_http__auth__preferences.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/http/http_auth_preferences.cc.orig 2024-07-24 02:44:42.617360600 +0000
++++ net/http/http_auth_preferences.cc
+@@ -39,7 +39,7 @@ std::string HttpAuthPreferences::AuthAnd
+ }
+ #endif // BUILDFLAG(IS_ANDROID)
+
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool HttpAuthPreferences::AllowGssapiLibraryLoad() const {
+ return allow_gssapi_library_load_;
+ }
diff --git a/chromium/patches/patch-net_http_http__auth__preferences.h b/chromium/patches/patch-net_http_http__auth__preferences.h
new file mode 100644
index 0000000000..f0c3934341
--- /dev/null
+++ b/chromium/patches/patch-net_http_http__auth__preferences.h
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/http/http_auth_preferences.h.orig 2024-07-24 02:44:42.617360600 +0000
++++ net/http/http_auth_preferences.h
+@@ -50,7 +50,7 @@ class NET_EXPORT HttpAuthPreferences {
+ #if BUILDFLAG(IS_ANDROID)
+ virtual std::string AuthAndroidNegotiateAccountType() const;
+ #endif
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ virtual bool AllowGssapiLibraryLoad() const;
+ #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+ virtual bool CanUseDefaultCredentials(
+@@ -86,7 +86,7 @@ class NET_EXPORT HttpAuthPreferences {
+ }
+ #endif // BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA)
+
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void set_allow_gssapi_library_load(bool allow_gssapi_library_load) {
+ allow_gssapi_library_load_ = allow_gssapi_library_load;
+ }
+@@ -137,7 +137,7 @@ class NET_EXPORT HttpAuthPreferences {
+ std::string auth_android_negotiate_account_type_;
+ #endif // BUILDFLAG(IS_ANDROID)
+
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool allow_gssapi_library_load_ = true;
+ #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+
diff --git a/chromium/patches/patch-net_http_http__network__session.cc b/chromium/patches/patch-net_http_http__network__session.cc
new file mode 100644
index 0000000000..16c6b1439c
--- /dev/null
+++ b/chromium/patches/patch-net_http_http__network__session.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/http/http_network_session.cc.orig 2024-07-24 02:44:42.625361400 +0000
++++ net/http/http_network_session.cc
+@@ -19,7 +19,9 @@
+ #include "build/build_config.h"
+ #include "net/base/features.h"
+ #include "net/dns/host_resolver.h"
++#if defined(USE_KERBEROS)
+ #include "net/http/http_auth_handler_factory.h"
++#endif
+ #include "net/http/http_response_body_drainer.h"
+ #include "net/http/http_stream_factory.h"
+ #include "net/http/url_security_manager.h"
diff --git a/chromium/patches/patch-net_nqe_network__quality__estimator__unittest.cc b/chromium/patches/patch-net_nqe_network__quality__estimator__unittest.cc
deleted file mode 100644
index 3841f64811..0000000000
--- a/chromium/patches/patch-net_nqe_network__quality__estimator__unittest.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- net/nqe/network_quality_estimator_unittest.cc.orig 2020-07-15 18:56:00.000000000 +0000
-+++ net/nqe/network_quality_estimator_unittest.cc
-@@ -2107,7 +2107,7 @@ TEST_F(NetworkQualityEstimatorTest, Test
- // TestTCPSocketRTT requires kernel support for tcp_info struct, and so it is
- // enabled only on certain platforms.
- // ChromeOS is disabled due to crbug.com/986904
--#if (defined(TCP_INFO) || defined(OS_LINUX) || defined(OS_ANDROID)) && \
-+#if (defined(TCP_INFO) || defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)) && \
- !defined(OS_CHROMEOS)
- #define MAYBE_TestTCPSocketRTT TestTCPSocketRTT
- #else
diff --git a/chromium/patches/patch-net_proxy__resolution_configured__proxy__resolution__service.cc b/chromium/patches/patch-net_proxy__resolution_configured__proxy__resolution__service.cc
deleted file mode 100644
index ece5db0cbf..0000000000
--- a/chromium/patches/patch-net_proxy__resolution_configured__proxy__resolution__service.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- net/proxy_resolution/configured_proxy_resolution_service.cc.orig 2020-07-15 18:56:47.000000000 +0000
-+++ net/proxy_resolution/configured_proxy_resolution_service.cc
-@@ -47,7 +47,7 @@
- #elif defined(OS_MACOSX)
- #include "net/proxy_resolution/proxy_config_service_mac.h"
- #include "net/proxy_resolution/proxy_resolver_mac.h"
--#elif defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#elif (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- #include "net/proxy_resolution/proxy_config_service_linux.h"
- #elif defined(OS_ANDROID)
- #include "net/proxy_resolution/proxy_config_service_android.h"
-@@ -61,7 +61,7 @@ namespace net {
- namespace {
-
- #if defined(OS_WIN) || defined(OS_IOS) || defined(OS_MACOSX) || \
-- (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+ ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
- constexpr net::NetworkTrafficAnnotationTag kSystemProxyConfigTrafficAnnotation =
- net::DefineNetworkTrafficAnnotation("proxy_config_system", R"(
- semantics {
-@@ -1410,7 +1410,7 @@ ConfiguredProxyResolutionService::Create
- << "profile_io_data.cc::CreateProxyConfigService and this should "
- << "be used only for examples.";
- return std::make_unique<UnsetProxyConfigService>();
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- std::unique_ptr<ProxyConfigServiceLinux> linux_config_service(
- new ProxyConfigServiceLinux());
-
diff --git a/chromium/patches/patch-net_proxy__resolution_proxy__config__service.cc b/chromium/patches/patch-net_proxy__resolution_proxy__config__service.cc
new file mode 100644
index 0000000000..c5abe127d9
--- /dev/null
+++ b/chromium/patches/patch-net_proxy__resolution_proxy__config__service.cc
@@ -0,0 +1,41 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/proxy_resolution/proxy_config_service.cc.orig 2024-07-24 02:44:43.021399700 +0000
++++ net/proxy_resolution/proxy_config_service.cc
+@@ -19,20 +19,20 @@
+ #include "net/proxy_resolution/proxy_config_service_ios.h"
+ #elif BUILDFLAG(IS_MAC)
+ #include "net/proxy_resolution/proxy_config_service_mac.h"
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "net/proxy_resolution/proxy_config_service_linux.h"
+ #elif BUILDFLAG(IS_ANDROID)
+ #include "net/proxy_resolution/proxy_config_service_android.h"
+ #endif
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "net/traffic_annotation/network_traffic_annotation.h"
+ #endif
+
+ namespace net {
+
+ namespace {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ constexpr net::NetworkTrafficAnnotationTag kSystemProxyConfigTrafficAnnotation =
+ net::DefineNetworkTrafficAnnotation("proxy_config_system", R"(
+ semantics {
+@@ -108,7 +108,7 @@ ProxyConfigService::CreateSystemProxyCon
+ << "profile_io_data.cc::CreateProxyConfigService and this should "
+ << "be used only for examples.";
+ return std::make_unique<UnsetProxyConfigService>();
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ std::unique_ptr<ProxyConfigServiceLinux> linux_config_service(
+ std::make_unique<ProxyConfigServiceLinux>());
+
diff --git a/chromium/patches/patch-net_proxy__resolution_proxy__config__service__linux.cc b/chromium/patches/patch-net_proxy__resolution_proxy__config__service__linux.cc
index c2fcc94e8f..039488ee95 100644
--- a/chromium/patches/patch-net_proxy__resolution_proxy__config__service__linux.cc
+++ b/chromium/patches/patch-net_proxy__resolution_proxy__config__service__linux.cc
@@ -1,41 +1,46 @@
$NetBSD$
---- net/proxy_resolution/proxy_config_service_linux.cc.orig 2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/proxy_resolution/proxy_config_service_linux.cc.orig 2024-07-24 02:44:43.025400200 +0000
+++ net/proxy_resolution/proxy_config_service_linux.cc
-@@ -6,7 +6,9 @@
+@@ -11,7 +11,9 @@
#include <errno.h>
#include <limits.h>
-+#if !defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
#include <sys/inotify.h>
+#endif
#include <unistd.h>
#include <map>
-@@ -511,6 +513,7 @@ int StringToIntOrDefault(base::StringPie
- return default_value;
+@@ -510,6 +512,7 @@ bool SettingGetterImplGSettings::CheckVe
}
+ #endif // defined(USE_GIO)
-+#if !defined(OS_BSD)
- // This is the KDE version that reads kioslaverc and simulates gsettings.
- // Doing this allows the main Delegate code, as well as the unit tests
- // for it, to stay the same - and the settings map fairly well besides.
-@@ -1001,6 +1004,7 @@ class SettingGetterImplKDE : public Prox
-
- DISALLOW_COPY_AND_ASSIGN(SettingGetterImplKDE);
++#if !BUILDFLAG(IS_BSD)
+ // Converts |value| from a decimal string to an int. If there was a failure
+ // parsing, returns |default_value|.
+ int StringToIntOrDefault(std::string_view value, int default_value) {
+@@ -1038,6 +1041,7 @@ class SettingGetterImplKDE : public Prox
+ // events on.
+ scoped_refptr<base::SequencedTaskRunner> file_task_runner_;
};
+#endif
} // namespace
-@@ -1215,8 +1219,10 @@ ProxyConfigServiceLinux::Delegate::Deleg
- case base::nix::DESKTOP_ENVIRONMENT_KDE3:
+@@ -1256,9 +1260,11 @@ ProxyConfigServiceLinux::Delegate::Deleg
case base::nix::DESKTOP_ENVIRONMENT_KDE4:
case base::nix::DESKTOP_ENVIRONMENT_KDE5:
-+#if !defined(OS_BSD)
- setting_getter_.reset(new SettingGetterImplKDE(env_var_getter_.get()));
+ case base::nix::DESKTOP_ENVIRONMENT_KDE6:
++#if !BUILDFLAG(IS_BSD)
+ setting_getter_ =
+ std::make_unique<SettingGetterImplKDE>(env_var_getter_.get());
break;
+#endif
case base::nix::DESKTOP_ENVIRONMENT_XFCE:
+ case base::nix::DESKTOP_ENVIRONMENT_LXQT:
case base::nix::DESKTOP_ENVIRONMENT_OTHER:
- break;
diff --git a/chromium/patches/patch-net_socket_socket__posix.cc b/chromium/patches/patch-net_socket_socket__posix.cc
index 55e1137230..328984a159 100644
--- a/chromium/patches/patch-net_socket_socket__posix.cc
+++ b/chromium/patches/patch-net_socket_socket__posix.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- net/socket/socket_posix.cc.orig 2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/socket/socket_posix.cc.orig 2024-07-24 02:44:43.073404800 +0000
+++ net/socket/socket_posix.cc
-@@ -517,7 +517,7 @@ void SocketPosix::ReadCompleted() {
+@@ -516,7 +516,7 @@ void SocketPosix::ReadCompleted() {
}
int SocketPosix::DoWrite(IOBuffer* buf, int buf_len) {
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
// Disable SIGPIPE for this write. Although Chromium globally disables
// SIGPIPE, the net stack may be used in other consumers which do not do
// this. MSG_NOSIGNAL is a Linux-only API. On OS X, this is a setsockopt on
diff --git a/chromium/patches/patch-net_socket_socks5__client__socket.cc b/chromium/patches/patch-net_socket_socks5__client__socket.cc
index 0d11b2b646..8e0e6368f3 100644
--- a/chromium/patches/patch-net_socket_socks5__client__socket.cc
+++ b/chromium/patches/patch-net_socket_socks5__client__socket.cc
@@ -1,15 +1,18 @@
$NetBSD$
---- net/socket/socks5_client_socket.cc.orig 2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/socket/socks5_client_socket.cc.orig 2024-07-24 02:44:43.077405200 +0000
+++ net/socket/socks5_client_socket.cc
-@@ -4,6 +4,10 @@
-
- #include "net/socket/socks5_client_socket.h"
+@@ -24,6 +24,9 @@
+ #include "net/log/net_log_event_type.h"
+ #include "net/traffic_annotation/network_traffic_annotation.h"
-+#if defined(OS_BSD)
++#include <sys/types.h>
+#include <netinet/in.h>
-+#endif
+
- #include <utility>
+ namespace net {
- #include "base/bind.h"
+ const unsigned int SOCKS5ClientSocket::kGreetReadHeaderSize = 2;
diff --git a/chromium/patches/patch-net_socket_tcp__socket__posix.cc b/chromium/patches/patch-net_socket_tcp__socket__posix.cc
index ff1c6e0bef..4bf250bc56 100644
--- a/chromium/patches/patch-net_socket_tcp__socket__posix.cc
+++ b/chromium/patches/patch-net_socket_tcp__socket__posix.cc
@@ -1,22 +1,26 @@
$NetBSD$
---- net/socket/tcp_socket_posix.cc.orig 2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/socket/tcp_socket_posix.cc.orig 2024-07-24 02:44:43.085406000 +0000
+++ net/socket/tcp_socket_posix.cc
-@@ -88,6 +88,17 @@ bool SetTCPKeepAlive(int fd, bool enable
- PLOG(ERROR) << "Failed to set TCP_KEEPALIVE on fd: " << fd;
- return false;
- }
-+#elif defined(OS_BSD)
+@@ -97,6 +97,17 @@ bool SetTCPKeepAlive(int fd, bool enable
+ PLOG(ERROR) << "Failed to set TCP_KEEPALIVE on fd: " << fd;
+ return false;
+ }
++#elif BUILDFLAG(IS_FREEBSD)
+ // Set seconds until first TCP keep alive.
+ if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPIDLE, &delay, sizeof(delay))) {
+ PLOG(ERROR) << "Failed to set TCP_KEEPIDLE on fd: " << fd;
+ return false;
+ }
-+ // Set seconds between TCP keep alives.
++ // Set seconds between TCP keep alives.
+ if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPINTVL, &delay, sizeof(delay))) {
+ PLOG(ERROR) << "Failed to set TCP_KEEPINTVL on fd: " << fd;
+ return false;
+ }
#endif
- return true;
- }
+ }
+
diff --git a/chromium/patches/patch-net_socket_udp__socket__posix.cc b/chromium/patches/patch-net_socket_udp__socket__posix.cc
index 93de4f1d33..c8c0dbb03a 100644
--- a/chromium/patches/patch-net_socket_udp__socket__posix.cc
+++ b/chromium/patches/patch-net_socket_udp__socket__posix.cc
@@ -1,82 +1,125 @@
$NetBSD$
---- net/socket/udp_socket_posix.cc.orig 2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/socket/udp_socket_posix.cc.orig 2024-07-24 02:44:43.089406500 +0000
+++ net/socket/udp_socket_posix.cc
-@@ -70,7 +70,7 @@ const int kActivityMonitorMinimumSamples
- const base::TimeDelta kActivityMonitorMsThreshold =
- base::TimeDelta::FromMilliseconds(100);
+@@ -78,6 +78,32 @@ constexpr int kBindRetries = 10;
+ constexpr int kPortStart = 1024;
+ constexpr int kPortEnd = 65535;
+
++#if BUILDFLAG(IS_NETBSD)
++int GetIPv4AddressFromIndex(int socket, uint32_t index, uint32_t* address) {
++ if (!index) {
++ *address = htonl(INADDR_ANY);
++ return OK;
++ }
++
++ sockaddr_in* result = nullptr;
++
++ ifreq ifr;
++ ifr.ifr_addr.sa_family = AF_INET;
++ if (!if_indextoname(index, ifr.ifr_name))
++ return MapSystemError(errno);
++ int rv = ioctl(socket, SIOCGIFADDR, &ifr);
++ if (rv == -1)
++ return MapSystemError(errno);
++ result = reinterpret_cast<sockaddr_in*>(&ifr.ifr_addr);
++
++ if (!result)
++ return ERR_ADDRESS_INVALID;
++
++ *address = result->sin_addr.s_addr;
++ return OK;
++}
++#endif
++
+ int GetSocketFDHash(int fd) {
+ return fd ^ 1595649551;
+ }
+@@ -521,12 +547,17 @@ int UDPSocketPosix::SetRecvTos() {
+ }
+ }
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_BSD)
- // When enabling multicast using setsockopt(IP_MULTICAST_IF) MacOS
- // requires passing IPv4 address instead of interface index. This function
- // resolves IPv4 address by interface index. The |address| is returned in
-@@ -645,7 +645,7 @@ int UDPSocketPosix::SetDoNotFragment() {
++#ifdef IP_RECVTOS
+ int rv = setsockopt(socket_, IPPROTO_IP, IP_RECVTOS, &ecn, sizeof(ecn));
++#else
++ int rv = -1;
++ errno = EOPNOTSUPP;
++#endif
+ return rv == 0 ? OK : MapSystemError(errno);
}
void UDPSocketPosix::SetMsgConfirm(bool confirm) {
--#if !defined(OS_MACOSX) && !defined(OS_IOS)
-+#if !defined(OS_MACOSX) && !defined(OS_IOS) && !defined(OS_BSD)
+-#if !BUILDFLAG(IS_APPLE)
++#if !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD)
if (confirm) {
sendto_flags_ |= MSG_CONFIRM;
} else {
-@@ -666,13 +666,16 @@ int UDPSocketPosix::SetBroadcast(bool br
+@@ -547,7 +578,7 @@ int UDPSocketPosix::SetBroadcast(bool br
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
int value = broadcast ? 1 : 0;
int rv;
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_APPLE)
++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
// SO_REUSEPORT on OSX permits multiple processes to each receive
// UDP multicast or broadcast datagrams destined for the bound
// port.
- // This is only being set on OSX because its behavior is platform dependent
- // and we are playing it safe by only setting it on platforms where things
- // break.
-+ rv = setsockopt(socket_, SOL_SOCKET, SO_REUSEADDR, &value, sizeof(value));
-+ if (rv != 0)
-+ return MapSystemError(errno);
- rv = setsockopt(socket_, SOL_SOCKET, SO_REUSEPORT, &value, sizeof(value));
- if (rv != 0)
- return MapSystemError(errno);
-@@ -936,7 +939,7 @@ int UDPSocketPosix::SetMulticastOptions(
+@@ -848,9 +879,17 @@ int UDPSocketPosix::SetMulticastOptions(
if (multicast_interface_ != 0) {
switch (addr_family_) {
case AF_INET: {
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_BSD)
- ip_mreq mreq = {};
- int error = GetIPv4AddressFromIndex(socket_, multicast_interface_,
- &mreq.imr_interface.s_addr);
-@@ -948,7 +951,11 @@ int UDPSocketPosix::SetMulticastOptions(
++#if BUILDFLAG(IS_NETBSD)
++ ip_mreq mreq = {};
++ int error = GetIPv4AddressFromIndex(socket_, multicast_interface_,
++ &mreq.imr_interface.s_addr);
++ if (error != OK)
++ return error;
++#else
+ ip_mreqn mreq = {};
+ mreq.imr_ifindex = multicast_interface_;
mreq.imr_address.s_addr = htonl(INADDR_ANY);
- #endif // !defined(OS_MACOSX)
++#endif
int rv = setsockopt(socket_, IPPROTO_IP, IP_MULTICAST_IF,
-+#if defined(OS_BSD)
-+ reinterpret_cast<const char*>(&mreq.imr_interface.s_addr), sizeof(mreq.imr_interface.s_addr));
-+#else
reinterpret_cast<const char*>(&mreq), sizeof(mreq));
-+#endif
if (rv)
- return MapSystemError(errno);
- break;
-@@ -1010,7 +1017,7 @@ int UDPSocketPosix::JoinGroup(const IPAd
+@@ -885,7 +924,7 @@ int UDPSocketPosix::DoBind(const IPEndPo
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
+ if (last_error == EINVAL)
+ return ERR_ADDRESS_IN_USE;
+-#elif BUILDFLAG(IS_APPLE)
++#elif BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
+ if (last_error == EADDRNOTAVAIL)
+ return ERR_ADDRESS_IN_USE;
+ #endif
+@@ -913,9 +952,17 @@ int UDPSocketPosix::JoinGroup(const IPAd
+ case IPAddress::kIPv4AddressSize: {
if (addr_family_ != AF_INET)
return ERR_ADDRESS_INVALID;
-
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_BSD)
- ip_mreq mreq = {};
- int error = GetIPv4AddressFromIndex(socket_, multicast_interface_,
- &mreq.imr_interface.s_addr);
-@@ -1058,9 +1065,18 @@ int UDPSocketPosix::LeaveGroup(const IPA
++#if BUILDFLAG(IS_NETBSD)
++ ip_mreq mreq = {};
++ int error = GetIPv4AddressFromIndex(socket_, multicast_interface_,
++ &mreq.imr_interface.s_addr);
++ if (error != OK)
++ return error;
++#else
+ ip_mreqn mreq = {};
+ mreq.imr_ifindex = multicast_interface_;
+ mreq.imr_address.s_addr = htonl(INADDR_ANY);
++#endif
+ memcpy(&mreq.imr_multiaddr, group_address.bytes().data(),
+ IPAddress::kIPv4AddressSize);
+ int rv = setsockopt(socket_, IPPROTO_IP, IP_ADD_MEMBERSHIP,
+@@ -953,9 +1000,17 @@ int UDPSocketPosix::LeaveGroup(const IPA
case IPAddress::kIPv4AddressSize: {
if (addr_family_ != AF_INET)
return ERR_ADDRESS_INVALID;
-+#if defined(OS_BSD)
++#if BUILDFLAG(IS_NETBSD)
+ ip_mreq mreq = {};
+ int error = GetIPv4AddressFromIndex(socket_, multicast_interface_,
+ &mreq.imr_interface.s_addr);
-+
+ if (error != OK)
+ return error;
+#else
diff --git a/chromium/patches/patch-net_socket_udp__socket__posix.h b/chromium/patches/patch-net_socket_udp__socket__posix.h
deleted file mode 100644
index 6ab663d3a6..0000000000
--- a/chromium/patches/patch-net_socket_udp__socket__posix.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- net/socket/udp_socket_posix.h.orig 2020-07-15 18:56:00.000000000 +0000
-+++ net/socket/udp_socket_posix.h
-@@ -34,7 +34,7 @@
-
- #if defined(__ANDROID__) && defined(__aarch64__)
- #define HAVE_SENDMMSG 1
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- #define HAVE_SENDMMSG 1
- #else
- #define HAVE_SENDMMSG 0
diff --git a/chromium/patches/patch-net_socket_udp__socket__unittest.cc b/chromium/patches/patch-net_socket_udp__socket__unittest.cc
new file mode 100644
index 0000000000..2014b0d1fa
--- /dev/null
+++ b/chromium/patches/patch-net_socket_udp__socket__unittest.cc
@@ -0,0 +1,53 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/socket/udp_socket_unittest.cc.orig 2024-07-24 02:44:43.089406500 +0000
++++ net/socket/udp_socket_unittest.cc
+@@ -358,7 +358,7 @@ TEST_F(UDPSocketTest, PartialRecv) {
+ EXPECT_EQ(second_packet, received);
+ }
+
+-#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ // - MacOS: requires root permissions on OSX 10.7+.
+ // - Android: devices attached to testbots don't have default network, so
+ // broadcasting to 255.255.255.255 returns error -109 (Address not reachable).
+@@ -669,7 +669,7 @@ TEST_F(UDPSocketTest, ClientSetDoNotFrag
+ EXPECT_THAT(rv, IsOk());
+
+ rv = client.SetDoNotFragment();
+-#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ // TODO(crbug.com/42050633): IP_MTU_DISCOVER is not implemented on Fuchsia.
+ EXPECT_THAT(rv, IsError(ERR_NOT_IMPLEMENTED));
+ #elif BUILDFLAG(IS_MAC)
+@@ -697,7 +697,7 @@ TEST_F(UDPSocketTest, ServerSetDoNotFrag
+ EXPECT_THAT(rv, IsOk());
+
+ rv = server.SetDoNotFragment();
+-#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ // TODO(crbug.com/42050633): IP_MTU_DISCOVER is not implemented on Fuchsia.
+ EXPECT_THAT(rv, IsError(ERR_NOT_IMPLEMENTED));
+ #elif BUILDFLAG(IS_MAC)
+@@ -762,7 +762,7 @@ TEST_F(UDPSocketTest, JoinMulticastGroup
+
+ // TODO(crbug.com/40620614): failing on device on iOS 12.2.
+ // TODO(crbug.com/40189274): flaky on Mac 11.
+-#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ #define MAYBE_SharedMulticastAddress DISABLED_SharedMulticastAddress
+ #else
+ #define MAYBE_SharedMulticastAddress SharedMulticastAddress
+@@ -816,7 +816,7 @@ TEST_F(UDPSocketTest, MAYBE_SharedMultic
+ NetLogSource());
+ ASSERT_THAT(client_socket.Connect(send_address), IsOk());
+
+-#if !BUILDFLAG(IS_CHROMEOS_ASH)
++#if !BUILDFLAG(IS_CHROMEOS_ASH) && !BUILDFLAG(IS_BSD)
+ // Send a message via the multicast group. That message is expected be be
+ // received by both receving sockets.
+ //
diff --git a/chromium/patches/patch-net_socket_unix__domain__client__socket__posix.cc b/chromium/patches/patch-net_socket_unix__domain__client__socket__posix.cc
deleted file mode 100644
index 5d40e91094..0000000000
--- a/chromium/patches/patch-net_socket_unix__domain__client__socket__posix.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- net/socket/unix_domain_client_socket_posix.cc.orig 2020-07-15 18:56:00.000000000 +0000
-+++ net/socket/unix_domain_client_socket_posix.cc
-@@ -57,7 +57,7 @@ bool UnixDomainClientSocket::FillAddress
- return true;
- }
-
--#if defined(OS_ANDROID) || defined(OS_LINUX)
-+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD)
- // Convert the path given into abstract socket name. It must start with
- // the '\0' character, so we are adding it. |addr_len| must specify the
- // length of the structure exactly, as potentially the socket name may
diff --git a/chromium/patches/patch-net_third__party_quiche_BUILD.gn b/chromium/patches/patch-net_third__party_quiche_BUILD.gn
index 351d90071c..bfe89fb1ef 100644
--- a/chromium/patches/patch-net_third__party_quiche_BUILD.gn
+++ b/chromium/patches/patch-net_third__party_quiche_BUILD.gn
@@ -1,13 +1,17 @@
$NetBSD$
---- net/third_party/quiche/BUILD.gn.orig 2020-06-25 09:32:39.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/third_party/quiche/BUILD.gn.orig 2024-07-24 02:44:43.129410300 +0000
+++ net/third_party/quiche/BUILD.gn
-@@ -1442,7 +1442,7 @@ source_set("quiche_tests") {
- ]
- public_deps = []
+@@ -29,7 +29,7 @@ import("//net/third_party/quiche/src/bui
+ import("//testing/libfuzzer/fuzzer_test.gni")
+ import("//third_party/protobuf/proto_library.gni")
+
+-build_epoll_based_tools = is_linux || is_chromeos
++build_epoll_based_tools = (is_linux && !is_bsd) || is_chromeos
-- if (is_desktop_linux) {
-+ if (is_desktop_linux && !is_bsd) {
- public_deps += [ "//net:epoll_quic_tools" ]
- }
- if (is_linux) {
+ config("quiche_internal_config") {
+ cflags = []
diff --git a/chromium/patches/patch-net_tools_cert__verify__tool_cert__verify__comparision__tool.cc b/chromium/patches/patch-net_tools_cert__verify__tool_cert__verify__comparision__tool.cc
new file mode 100644
index 0000000000..bae1688cc8
--- /dev/null
+++ b/chromium/patches/patch-net_tools_cert__verify__tool_cert__verify__comparision__tool.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/tools/cert_verify_tool/cert_verify_comparision_tool.cc.orig 2024-07-24 02:44:43.133410700 +0000
++++ net/tools/cert_verify_tool/cert_verify_comparision_tool.cc
+@@ -36,7 +36,7 @@
+ #include "net/url_request/url_request_context_builder.h"
+ #include "net/url_request/url_request_context_getter.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "net/proxy_resolution/proxy_config.h"
+ #include "net/proxy_resolution/proxy_config_service_fixed.h"
+ #endif
+@@ -56,7 +56,7 @@ void SetUpOnNetworkThread(
+ base::WaitableEvent* initialization_complete_event) {
+ net::URLRequestContextBuilder url_request_context_builder;
+ url_request_context_builder.set_user_agent(GetUserAgent());
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // On Linux, use a fixed ProxyConfigService, since the default one
+ // depends on glib.
+ //
+@@ -124,7 +124,7 @@ class CertVerifyImpl {
+ std::unique_ptr<CertVerifyImpl> CreateCertVerifyImplFromName(
+ std::string_view impl_name,
+ scoped_refptr<net::CertNetFetcher> cert_net_fetcher) {
+-#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || \
++#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || \
+ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(CHROME_ROOT_STORE_ONLY))
+ if (impl_name == "platform") {
+ return std::make_unique<CertVerifyImpl>(
diff --git a/chromium/patches/patch-net_tools_cert__verify__tool_cert__verify__tool.cc b/chromium/patches/patch-net_tools_cert__verify__tool_cert__verify__tool.cc
index 0809a0f2a4..cdfde1e8d7 100644
--- a/chromium/patches/patch-net_tools_cert__verify__tool_cert__verify__tool.cc
+++ b/chromium/patches/patch-net_tools_cert__verify__tool_cert__verify__tool.cc
@@ -1,31 +1,35 @@
$NetBSD$
---- net/tools/cert_verify_tool/cert_verify_tool.cc.orig 2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/tools/cert_verify_tool/cert_verify_tool.cc.orig 2024-07-24 02:44:43.133410700 +0000
+++ net/tools/cert_verify_tool/cert_verify_tool.cc
-@@ -29,7 +29,7 @@
- #include "net/url_request/url_request_context_builder.h"
- #include "net/url_request/url_request_context_getter.h"
+@@ -34,7 +34,7 @@
+ #include "third_party/boringssl/src/pki/trust_store.h"
+ #include "third_party/boringssl/src/pki/trust_store_collection.h"
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "net/proxy_resolution/proxy_config.h"
#include "net/proxy_resolution/proxy_config_service_fixed.h"
#endif
-@@ -46,7 +46,7 @@ void SetUpOnNetworkThread(
+@@ -66,7 +66,7 @@ void SetUpOnNetworkThread(
base::WaitableEvent* initialization_complete_event) {
net::URLRequestContextBuilder url_request_context_builder;
url_request_context_builder.set_user_agent(GetUserAgent());
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// On Linux, use a fixed ProxyConfigService, since the default one
// depends on glib.
//
-@@ -192,7 +192,7 @@ std::unique_ptr<CertVerifyImpl> CreateCe
- base::StringPiece impl_name,
- scoped_refptr<net::CertNetFetcher> cert_net_fetcher,
- bool use_system_roots) {
--#if !(defined(OS_FUCHSIA) || defined(OS_LINUX) || defined(OS_CHROMEOS))
-+#if !(defined(OS_FUCHSIA) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD))
- if (impl_name == "platform") {
- if (!use_system_roots) {
- std::cerr << "WARNING: platform verifier not supported with "
+@@ -576,7 +576,7 @@ int main(int argc, char** argv) {
+ std::string impls_str = command_line.GetSwitchValueASCII("impls");
+ if (impls_str.empty()) {
+ // Default value.
+-#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || \
++#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || \
+ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(CHROME_ROOT_STORE_ONLY))
+ impls_str = "platform,";
+ #endif
diff --git a/chromium/patches/patch-net_tools_net__watcher_net__watcher.cc b/chromium/patches/patch-net_tools_net__watcher_net__watcher.cc
new file mode 100644
index 0000000000..b933bd8e46
--- /dev/null
+++ b/chromium/patches/patch-net_tools_net__watcher_net__watcher.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/tools/net_watcher/net_watcher.cc.orig 2024-07-24 02:44:43.137411000 +0000
++++ net/tools/net_watcher/net_watcher.cc
+@@ -32,7 +32,7 @@
+ #include "net/proxy_resolution/proxy_config_service.h"
+ #include "net/proxy_resolution/proxy_config_with_annotation.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "net/base/network_change_notifier_linux.h"
+ #endif
+
+@@ -44,7 +44,7 @@ namespace {
+
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Flag to specifies which network interfaces to ignore. Interfaces should
+ // follow as a comma seperated list.
+ const char kIgnoreNetifFlag[] = "ignore-netif";
+@@ -163,7 +163,7 @@ int main(int argc, char* argv[]) {
+
+ NetWatcher net_watcher;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
+ std::string ignored_netifs_str =
+ command_line->GetSwitchValueASCII(kIgnoreNetifFlag);
diff --git a/chromium/patches/patch-net_tools_quic_quic__http__proxy__backend.cc b/chromium/patches/patch-net_tools_quic_quic__http__proxy__backend.cc
deleted file mode 100644
index ec9b85b49f..0000000000
--- a/chromium/patches/patch-net_tools_quic_quic__http__proxy__backend.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- net/tools/quic/quic_http_proxy_backend.cc.orig 2020-07-15 18:56:00.000000000 +0000
-+++ net/tools/quic/quic_http_proxy_backend.cc
-@@ -162,7 +162,7 @@ void QuicHttpProxyBackend::InitializeURL
- // Enable HTTP2, but disable QUIC on the backend
- context_builder.SetSpdyAndQuicEnabled(true /* http2 */, false /* quic */);
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // On Linux, use a fixed ProxyConfigService, since the default one
- // depends on glib.
- context_builder.set_proxy_config_service(
diff --git a/chromium/patches/patch-net_traffic__annotation_network__traffic__annotation.h b/chromium/patches/patch-net_traffic__annotation_network__traffic__annotation.h
index 6576759f3c..a5d0fd3a85 100644
--- a/chromium/patches/patch-net_traffic__annotation_network__traffic__annotation.h
+++ b/chromium/patches/patch-net_traffic__annotation_network__traffic__annotation.h
@@ -1,22 +1,26 @@
$NetBSD$
---- net/traffic_annotation/network_traffic_annotation.h.orig 2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/traffic_annotation/network_traffic_annotation.h.orig 2024-07-24 02:44:43.145412000 +0000
+++ net/traffic_annotation/network_traffic_annotation.h
-@@ -359,7 +359,7 @@ struct MutablePartialNetworkTrafficAnnot
+@@ -378,7 +378,7 @@ struct MutablePartialNetworkTrafficAnnot
} // namespace net
// Placeholder for unannotated usages.
--#if !defined(OS_WIN) && !defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if !defined(OS_WIN) && !defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_BSD)
+-#if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)
++#if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD)
#define TRAFFIC_ANNOTATION_WITHOUT_PROTO(ANNOTATION_ID) \
net::DefineNetworkTrafficAnnotation(ANNOTATION_ID, "No proto yet.")
#endif
-@@ -370,7 +370,7 @@ struct MutablePartialNetworkTrafficAnnot
- //
- // On Linux and Windows, use MISSING_TRAFFIC_ANNOTATION or
- // TRAFFIC_ANNOTATION_FOR_TESTS.
--#if (!defined(OS_WIN) && !defined(OS_LINUX)) || defined(OS_CHROMEOS)
-+#if (!defined(OS_WIN) && !defined(OS_LINUX) && !defined(OS_BSD)) || defined(OS_CHROMEOS)
+@@ -392,7 +392,7 @@ struct MutablePartialNetworkTrafficAnnot
+ // TODO(crbug.com/40118868): Revisit once build flag switch of lacros-chrome is
+ // complete.
+ #if !BUILDFLAG(IS_WIN) && \
+- !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++ !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
+
#define NO_TRAFFIC_ANNOTATION_YET \
net::DefineNetworkTrafficAnnotation("undefined", "Nothing here yet.")
-
diff --git a/chromium/patches/patch-net_url__request_url__fetcher.cc b/chromium/patches/patch-net_url__request_url__fetcher.cc
deleted file mode 100644
index ae78e98922..0000000000
--- a/chromium/patches/patch-net_url__request_url__fetcher.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- net/url_request/url_fetcher.cc.orig 2020-07-15 18:56:00.000000000 +0000
-+++ net/url_request/url_fetcher.cc
-@@ -21,7 +21,7 @@ void URLFetcher::SetIgnoreCertificateReq
- URLFetcherImpl::SetIgnoreCertificateRequests(ignored);
- }
-
--#if (!defined(OS_WIN) && !defined(OS_LINUX)) || defined(OS_CHROMEOS)
-+#if (!defined(OS_WIN) && !defined(OS_LINUX) && !defined(OS_BSD)) || defined(OS_CHROMEOS)
- // static
- std::unique_ptr<URLFetcher> URLFetcher::Create(
- const GURL& url,
diff --git a/chromium/patches/patch-net_url__request_url__fetcher.h b/chromium/patches/patch-net_url__request_url__fetcher.h
deleted file mode 100644
index 234d64b018..0000000000
--- a/chromium/patches/patch-net_url__request_url__fetcher.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- net/url_request/url_fetcher.h.orig 2020-07-15 18:56:47.000000000 +0000
-+++ net/url_request/url_fetcher.h
-@@ -355,7 +355,7 @@ class NET_EXPORT URLFetcher {
- // The unannotated Create() methods are not available on desktop Linux +
- // Windows. They are available on other platforms, since we only audit network
- // annotations on Linux & Windows.
--#if (!defined(OS_WIN) && !defined(OS_LINUX)) || defined(OS_CHROMEOS)
-+#if (!defined(OS_WIN) && !defined(OS_LINUX) && !defined(OS_BSD)) || defined(OS_CHROMEOS)
- // |url| is the URL to send the request to. It must be valid.
- // |request_type| is the type of request to make.
- // |d| the object that will receive the callback on fetch completion.
diff --git a/chromium/patches/patch-net_url__request_url__request__context.cc b/chromium/patches/patch-net_url__request_url__request__context.cc
index dfa087477e..ba794a09ce 100644
--- a/chromium/patches/patch-net_url__request_url__request__context.cc
+++ b/chromium/patches/patch-net_url__request_url__request__context.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- net/url_request/url_request_context.cc.orig 2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/url_request/url_request_context.cc.orig 2024-07-24 02:44:43.149412200 +0000
+++ net/url_request/url_request_context.cc
-@@ -90,7 +90,7 @@ const HttpNetworkSession::Context* URLRe
- return &network_session->context();
- }
-
--#if (!defined(OS_WIN) && !defined(OS_LINUX)) || defined(OS_CHROMEOS)
-+#if (!defined(OS_WIN) && !defined(OS_LINUX) && !defined(OS_BSD)) || defined(OS_CHROMEOS)
+@@ -121,7 +121,7 @@ const HttpNetworkSessionContext* URLRequ
+ // TODO(crbug.com/40118868): Revisit once build flag switch of lacros-chrome is
+ // complete.
+ #if !BUILDFLAG(IS_WIN) && \
+- !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++ !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
std::unique_ptr<URLRequest> URLRequestContext::CreateRequest(
const GURL& url,
RequestPriority priority,
diff --git a/chromium/patches/patch-net_url__request_url__request__context.h b/chromium/patches/patch-net_url__request_url__request__context.h
index 1c50533c58..874f99b6ab 100644
--- a/chromium/patches/patch-net_url__request_url__request__context.h
+++ b/chromium/patches/patch-net_url__request_url__request__context.h
@@ -1,13 +1,17 @@
$NetBSD$
---- net/url_request/url_request_context.h.orig 2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/url_request/url_request_context.h.orig 2024-07-24 02:44:43.149412200 +0000
+++ net/url_request/url_request_context.h
-@@ -82,7 +82,7 @@ class NET_EXPORT URLRequestContext
- // session.
- const HttpNetworkSession::Context* GetNetworkSessionContext() const;
-
--#if (!defined(OS_WIN) && !defined(OS_LINUX)) || defined(OS_CHROMEOS)
-+#if (!defined(OS_WIN) && !defined(OS_LINUX) && !defined(OS_BSD)) || defined(OS_CHROMEOS)
+@@ -89,7 +89,7 @@ class NET_EXPORT URLRequestContext final
+ // TODO(crbug.com/40118868): Revisit once build flag switch of lacros-chrome is
+ // complete.
+ #if !BUILDFLAG(IS_WIN) && \
+- !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++ !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
// This function should not be used in Chromium, please use the version with
// NetworkTrafficAnnotationTag in the future.
//
diff --git a/chromium/patches/patch-net_url__request_url__request__context__builder.cc b/chromium/patches/patch-net_url__request_url__request__context__builder.cc
index baff3dbb26..dba4f01c7b 100644
--- a/chromium/patches/patch-net_url__request_url__request__context__builder.cc
+++ b/chromium/patches/patch-net_url__request_url__request__context__builder.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- net/url_request/url_request_context_builder.cc.orig 2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- net/url_request/url_request_context_builder.cc.orig 2024-07-24 02:44:43.149412200 +0000
+++ net/url_request/url_request_context_builder.cc
-@@ -485,7 +485,7 @@ std::unique_ptr<URLRequestContext> URLRe
+@@ -439,7 +439,7 @@ std::unique_ptr<URLRequestContext> URLRe
}
if (!proxy_resolution_service_) {
--#if !defined(OS_LINUX) && !defined(OS_ANDROID)
-+#if !defined(OS_LINUX) && !defined(OS_ANDROID) && !defined(OS_BSD)
+-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_ANDROID)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_BSD)
// TODO(willchan): Switch to using this code when
- // ConfiguredProxyResolutionService::CreateSystemProxyConfigService()'s
+ // ProxyConfigService::CreateSystemProxyConfigService()'s
// signature doesn't suck.
diff --git a/chromium/patches/patch-pdf_BUILD.gn b/chromium/patches/patch-pdf_BUILD.gn
deleted file mode 100644
index b029213880..0000000000
--- a/chromium/patches/patch-pdf_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- pdf/BUILD.gn.orig 2020-07-15 18:56:47.000000000 +0000
-+++ pdf/BUILD.gn
-@@ -121,7 +121,7 @@ if (enable_pdf) {
- "pdfium/pdfium_unsupported_features.h",
- ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "pdfium/pdfium_font_linux.cc",
- "pdfium/pdfium_font_linux.h",
diff --git a/chromium/patches/patch-pdf_pdfium_pdfium__engine.cc b/chromium/patches/patch-pdf_pdfium_pdfium__engine.cc
index 69fac97445..b693e3467f 100644
--- a/chromium/patches/patch-pdf_pdfium_pdfium__engine.cc
+++ b/chromium/patches/patch-pdf_pdfium_pdfium__engine.cc
@@ -1,58 +1,26 @@
$NetBSD$
---- pdf/pdfium/pdfium_engine.cc.orig 2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- pdf/pdfium/pdfium_engine.cc.orig 2024-07-24 02:44:43.185415700 +0000
+++ pdf/pdfium/pdfium_engine.cc
-@@ -58,7 +58,7 @@
- #include "ui/gfx/geometry/rect.h"
- #include "v8/include/v8.h"
+@@ -92,7 +92,7 @@
+ #include "gin/public/cppgc.h"
+ #endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "pdf/pdfium/pdfium_font_linux.h"
#endif
-@@ -396,7 +396,7 @@ void InitializeSDK(bool enable_v8) {
- config.m_v8EmbedderSlot = gin::kEmbedderPDFium;
+@@ -517,7 +517,7 @@ void InitializeSDK(bool enable_v8,
+
FPDF_InitLibraryWithConfig(&config);
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ g_font_mapping_mode = font_mapping_mode;
InitializeLinuxFontMapper();
#endif
-
-@@ -437,7 +437,7 @@ PDFiumEngine::PDFiumEngine(PDFEngine::Cl
- IFSDK_PAUSE::user = nullptr;
- IFSDK_PAUSE::NeedToPauseNow = Pause_NeedToPauseNow;
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // PreviewModeClient does not know its pp::Instance.
- SetLastInstance(client_->GetPluginInstance());
- #endif
-@@ -913,7 +913,7 @@ pp::Buffer_Dev PDFiumEngine::PrintPagesA
-
- KillFormFocus();
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- SetLastInstance(client_->GetPluginInstance());
- #endif
-
-@@ -2960,7 +2960,7 @@ bool PDFiumEngine::ContinuePaint(int pro
- DCHECK(image_data);
-
- last_progressive_start_time_ = base::Time::Now();
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- SetLastInstance(client_->GetPluginInstance());
- #endif
-
-@@ -3456,7 +3456,7 @@ void PDFiumEngine::SetCurrentPage(int in
- FORM_DoPageAAction(old_page, form(), FPDFPAGE_AACTION_CLOSE);
- }
- most_visible_page_ = index;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- SetLastInstance(client_->GetPluginInstance());
- #endif
- if (most_visible_page_ != -1 && called_do_document_action_) {
diff --git a/chromium/patches/patch-ppapi_proxy_flash__resource.cc b/chromium/patches/patch-ppapi_proxy_flash__resource.cc
deleted file mode 100644
index c030e27394..0000000000
--- a/chromium/patches/patch-ppapi_proxy_flash__resource.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ppapi/proxy/flash_resource.cc.orig 2020-07-15 18:56:00.000000000 +0000
-+++ ppapi/proxy/flash_resource.cc
-@@ -136,7 +136,7 @@ double FlashResource::GetLocalTimeZoneOf
- // require filesystem access prohibited by the sandbox.
- // TODO(shess): Figure out why OSX needs the access, the sandbox warmup should
- // handle it. http://crbug.com/149006
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
- int32_t result = SyncCall<PpapiPluginMsg_Flash_GetLocalTimeZoneOffsetReply>(
- BROWSER,
- PpapiHostMsg_Flash_GetLocalTimeZoneOffset(PPTimeToTime(t)),
diff --git a/chromium/patches/patch-ppapi_tests_test__utils.h b/chromium/patches/patch-ppapi_tests_test__utils.h
new file mode 100644
index 0000000000..d05f5703e8
--- /dev/null
+++ b/chromium/patches/patch-ppapi_tests_test__utils.h
@@ -0,0 +1,27 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ppapi/tests/test_utils.h.orig 2024-07-24 02:44:43.309427700 +0000
++++ ppapi/tests/test_utils.h
+@@ -314,6 +314,8 @@ do { \
+ #define PPAPI_OS_FREEBSD 1
+ #elif defined(__OpenBSD__)
+ #define PPAPI_OS_OPENBSD 1
++#elif defined(__NetBSD__)
++#define PPAPI_OS_NETBSD 1
+ #elif defined(__sun)
+ #define PPAPI_OS_SOLARIS 1
+ #else
+@@ -322,7 +324,8 @@ do { \
+
+ /* These are used to determine POSIX-like implementations vs Windows. */
+ #if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || \
+- defined(__OpenBSD__) || defined(__sun) || defined(__native_client__)
++ defined(__OpenBSD__) || defined(__sun) || defined(__native_client__) \
++ defined(__NetBSD__)
+ #define PPAPI_POSIX 1
+ #endif
+
diff --git a/chromium/patches/patch-printing_BUILD.gn b/chromium/patches/patch-printing_BUILD.gn
deleted file mode 100644
index e134ef189c..0000000000
--- a/chromium/patches/patch-printing_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- printing/BUILD.gn.orig 2020-07-15 18:56:47.000000000 +0000
-+++ printing/BUILD.gn
-@@ -206,7 +206,7 @@ component("printing") {
- if (use_cups) {
- configs += [ ":cups" ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- # CUPS 1.6 deprecated the PPD APIs, but we will stay with this API
- # for now as the suitability of the replacement is unclear.
- # More info: crbug.com/226176
-@@ -312,7 +312,7 @@ static_library("test_support") {
- if (is_fuchsia) {
- sources += [ "image_fuchsia.cc" ]
- }
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [ "image_linux.cc" ]
- }
- if (is_mac) {
diff --git a/chromium/patches/patch-printing_backend_cups__ipp__helper.cc b/chromium/patches/patch-printing_backend_cups__ipp__helper.cc
new file mode 100644
index 0000000000..ace2ff2398
--- /dev/null
+++ b/chromium/patches/patch-printing_backend_cups__ipp__helper.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- printing/backend/cups_ipp_helper.cc.orig 2024-07-24 02:44:43.325429200 +0000
++++ printing/backend/cups_ipp_helper.cc
+@@ -202,7 +202,7 @@ void ExtractResolutions(const CupsOption
+ // Provide a default DPI if no valid DPI is found.
+ #if BUILDFLAG(IS_MAC)
+ constexpr gfx::Size kDefaultMissingDpi(kDefaultMacDpi, kDefaultMacDpi);
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ constexpr gfx::Size kDefaultMissingDpi(kPixelsPerInch, kPixelsPerInch);
+ #else
+ constexpr gfx::Size kDefaultMissingDpi(kDefaultPdfDpi, kDefaultPdfDpi);
diff --git a/chromium/patches/patch-printing_backend_print__backend__cups.cc b/chromium/patches/patch-printing_backend_print__backend__cups.cc
new file mode 100644
index 0000000000..9577bfaa0d
--- /dev/null
+++ b/chromium/patches/patch-printing_backend_print__backend__cups.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- printing/backend/print_backend_cups.cc.orig 2024-07-24 02:44:43.329429600 +0000
++++ printing/backend/print_backend_cups.cc
+@@ -27,7 +27,7 @@
+ #include "printing/mojom/print.mojom.h"
+ #include "url/gurl.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ #include "base/feature_list.h"
+ #include "printing/backend/cups_connection.h"
+ #include "printing/backend/print_backend_cups_ipp.h"
+@@ -278,7 +278,7 @@ bool PrintBackendCUPS::IsValidPrinter(co
+ #if !BUILDFLAG(IS_CHROMEOS)
+ scoped_refptr<PrintBackend> PrintBackend::CreateInstanceImpl(
+ const std::string& locale) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ if (base::FeatureList::IsEnabled(features::kCupsIppPrintingBackend)) {
+ return base::MakeRefCounted<PrintBackendCupsIpp>(CupsConnection::Create());
+ }
diff --git a/chromium/patches/patch-printing_buildflags_buildflags.gni b/chromium/patches/patch-printing_buildflags_buildflags.gni
deleted file mode 100644
index 11ed89b298..0000000000
--- a/chromium/patches/patch-printing_buildflags_buildflags.gni
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- printing/buildflags/buildflags.gni.orig 2020-07-15 18:56:00.000000000 +0000
-+++ printing/buildflags/buildflags.gni
-@@ -20,7 +20,7 @@ declare_args() {
- # Enable exporting to tagged PDF.
- enable_tagged_pdf = !is_android && !is_chromecast && !is_ios && !is_fuchsia
-
-- if (use_fuzzing_engine && is_linux) {
-+ if (use_fuzzing_engine && (is_linux || is_bsd)) {
- # For fuzzing, just restrict to chromeos and linux.
- use_cups = true
- } else {
diff --git a/chromium/patches/patch-printing_cups__config__helper.py b/chromium/patches/patch-printing_cups__config__helper.py
deleted file mode 100644
index 8c12d7e77f..0000000000
--- a/chromium/patches/patch-printing_cups__config__helper.py
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- printing/cups_config_helper.py.orig 2020-07-15 18:56:00.000000000 +0000
-+++ printing/cups_config_helper.py
-@@ -67,7 +67,7 @@ def main():
- mode = sys.argv[1]
- if len(sys.argv) > 2 and sys.argv[2]:
- sysroot = sys.argv[2]
-- cups_config = os.path.join(sysroot, 'usr', 'bin', 'cups-config')
-+ cups_config = os.path.join(sysroot, 'bin', 'cups-config')
- if not os.path.exists(cups_config):
- print('cups-config not found: %s' % cups_config)
- return 1
diff --git a/chromium/patches/patch-printing_mojom_printing__context__mojom__traits.cc b/chromium/patches/patch-printing_mojom_printing__context__mojom__traits.cc
new file mode 100644
index 0000000000..67cbdb81df
--- /dev/null
+++ b/chromium/patches/patch-printing_mojom_printing__context__mojom__traits.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- printing/mojom/printing_context_mojom_traits.cc.orig 2024-07-24 02:44:43.333430000 +0000
++++ printing/mojom/printing_context_mojom_traits.cc
+@@ -19,7 +19,7 @@
+ #include "base/numerics/safe_conversions.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "mojo/public/mojom/base/values.mojom.h"
+ #endif
+
+@@ -161,7 +161,7 @@ bool StructTraits<
+ }
+
+ out->set_pages_per_sheet(data.pages_per_sheet());
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ DCHECK(out->advanced_settings().empty());
+ if (!data.ReadAdvancedSettings(&out->advanced_settings()))
+ return false;
+@@ -238,7 +238,7 @@ bool StructTraits<
+ if (system_print_dialog_data.size() != dictionary_entries) {
+ return false;
+ }
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // The dictionary must contain three strings.
+ const base::Value* value = system_print_dialog_data.Find(
+ printing::kLinuxSystemPrintDialogDataPrinter);
diff --git a/chromium/patches/patch-printing_mojom_printing__context__mojom__traits.h b/chromium/patches/patch-printing_mojom_printing__context__mojom__traits.h
new file mode 100644
index 0000000000..4b1aaff196
--- /dev/null
+++ b/chromium/patches/patch-printing_mojom_printing__context__mojom__traits.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- printing/mojom/printing_context_mojom_traits.h.orig 2024-07-24 02:44:43.333430000 +0000
++++ printing/mojom/printing_context_mojom_traits.h
+@@ -166,7 +166,7 @@ struct StructTraits<printing::mojom::Pri
+ return s.pages_per_sheet();
+ }
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ static const printing::PrintSettings::AdvancedSettings& advanced_settings(
+ const printing::PrintSettings& s) {
+ return s.advanced_settings();
diff --git a/chromium/patches/patch-printing_print__settings.cc b/chromium/patches/patch-printing_print__settings.cc
new file mode 100644
index 0000000000..9b80c74153
--- /dev/null
+++ b/chromium/patches/patch-printing_print__settings.cc
@@ -0,0 +1,44 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- printing/print_settings.cc.orig 2024-07-24 02:44:43.337430500 +0000
++++ printing/print_settings.cc
+@@ -320,7 +320,7 @@ PrintSettings& PrintSettings::operator=(
+ #endif
+ is_modifiable_ = settings.is_modifiable_;
+ pages_per_sheet_ = settings.pages_per_sheet_;
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ for (const auto& item : settings.advanced_settings_)
+ advanced_settings_.emplace(item.first, item.second.Clone());
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+@@ -350,7 +350,7 @@ bool PrintSettings::operator==(const Pri
+ #endif
+ is_modifiable_, requested_custom_margins_in_points_,
+ pages_per_sheet_
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ ,
+ advanced_settings_
+ #endif
+@@ -374,7 +374,7 @@ bool PrintSettings::operator==(const Pri
+ other.is_modifiable_,
+ other.requested_custom_margins_in_points_,
+ other.pages_per_sheet_
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ ,
+ other.advanced_settings_
+ #endif
+@@ -414,7 +414,7 @@ void PrintSettings::Clear() {
+ #endif
+ is_modifiable_ = true;
+ pages_per_sheet_ = 1;
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ advanced_settings_.clear();
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ #if BUILDFLAG(IS_CHROMEOS)
diff --git a/chromium/patches/patch-printing_print__settings.h b/chromium/patches/patch-printing_print__settings.h
index da3c86ecd0..9b7368f5c9 100644
--- a/chromium/patches/patch-printing_print__settings.h
+++ b/chromium/patches/patch-printing_print__settings.h
@@ -1,46 +1,53 @@
$NetBSD$
---- printing/print_settings.h.orig 2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- printing/print_settings.h.orig 2024-07-24 02:44:43.337430500 +0000
+++ printing/print_settings.h
-@@ -1,4 +1,4 @@
--// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-+/// Copyright (c) 2012 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
-@@ -20,7 +20,7 @@
- #include "ui/gfx/geometry/rect.h"
- #include "ui/gfx/geometry/size.h"
+@@ -25,7 +25,7 @@
+ #include "base/values.h"
+ #endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include <map>
#include "base/values.h"
-@@ -69,7 +69,7 @@ class PRINTING_EXPORT PrintSettings {
- }
+@@ -51,7 +51,7 @@ inline constexpr char kMacSystemPrintDia
+ "print_settings";
+ #endif // BUILDFLAG(IS_MAC)
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ inline constexpr char kLinuxSystemPrintDialogDataPrinter[] = "printer_name";
+ inline constexpr char kLinuxSystemPrintDialogDataPrintSettings[] =
+ "print_settings";
+@@ -101,7 +101,7 @@ class COMPONENT_EXPORT(PRINTING) PrintSe
+ std::string vendor_id;
};
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
using AdvancedSettings = std::map<std::string, base::Value>;
- #endif // defined(OS_LINUX)
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-@@ -206,7 +206,7 @@ class PRINTING_EXPORT PrintSettings {
+@@ -276,7 +276,7 @@ class COMPONENT_EXPORT(PRINTING) PrintSe
pages_per_sheet_ = pages_per_sheet;
}
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
AdvancedSettings& advanced_settings() { return advanced_settings_; }
const AdvancedSettings& advanced_settings() const {
return advanced_settings_;
-@@ -305,7 +305,7 @@ class PRINTING_EXPORT PrintSettings {
+@@ -429,7 +429,7 @@ class COMPONENT_EXPORT(PRINTING) PrintSe
// Number of pages per sheet.
int pages_per_sheet_;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// Advanced settings.
AdvancedSettings advanced_settings_;
- #endif // defined(OS_LINUX)
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
diff --git a/chromium/patches/patch-printing_print__settings__conversion.cc b/chromium/patches/patch-printing_print__settings__conversion.cc
index 269813b627..d5fac1466a 100644
--- a/chromium/patches/patch-printing_print__settings__conversion.cc
+++ b/chromium/patches/patch-printing_print__settings__conversion.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- printing/print_settings_conversion.cc.orig 2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- printing/print_settings_conversion.cc.orig 2024-07-24 02:44:43.337430500 +0000
+++ printing/print_settings_conversion.cc
-@@ -208,7 +208,7 @@ bool PrintSettingsFromJobSettings(const
- #endif
+@@ -285,7 +285,7 @@ std::unique_ptr<PrintSettings> PrintSett
+ settings->set_is_modifiable(is_modifiable.value());
}
--#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && defined(USE_CUPS))
-+#if defined(OS_CHROMEOS) || ((defined(OS_LINUX) || defined(OS_BSD)) && defined(USE_CUPS))
- const base::Value* advanced_settings =
- job_settings.FindDictKey(kSettingAdvancedSettings);
+-#if BUILDFLAG(IS_CHROMEOS) || (BUILDFLAG(IS_LINUX) && BUILDFLAG(USE_CUPS))
++#if BUILDFLAG(IS_CHROMEOS) || ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(USE_CUPS))
+ const base::Value::Dict* advanced_settings =
+ job_settings.FindDict(kSettingAdvancedSettings);
if (advanced_settings) {
diff --git a/chromium/patches/patch-printing_printing__context__linux.cc b/chromium/patches/patch-printing_printing__context__linux.cc
new file mode 100644
index 0000000000..a7a5d68cf7
--- /dev/null
+++ b/chromium/patches/patch-printing_printing__context__linux.cc
@@ -0,0 +1,44 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- printing/printing_context_linux.cc.orig 2024-07-24 02:44:43.337430500 +0000
++++ printing/printing_context_linux.cc
+@@ -23,7 +23,7 @@
+ #endif
+
+ // Avoid using LinuxUi on Fuchsia.
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/linux/linux_ui.h"
+ #endif
+
+@@ -68,7 +68,7 @@ mojom::ResultCode PrintingContextLinux::
+
+ ResetSettings();
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (!ui::LinuxUi::instance())
+ return mojom::ResultCode::kSuccess;
+
+@@ -84,7 +84,7 @@ mojom::ResultCode PrintingContextLinux::
+ }
+
+ gfx::Size PrintingContextLinux::GetPdfPaperSizeDeviceUnits() {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (ui::LinuxUi::instance())
+ return ui::LinuxUi::instance()->GetPdfPaperSize(this);
+ #endif
+@@ -97,7 +97,7 @@ mojom::ResultCode PrintingContextLinux::
+ DCHECK(!printer_settings.show_system_dialog);
+ DCHECK(!in_print_job_);
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (!ui::LinuxUi::instance())
+ return mojom::ResultCode::kSuccess;
+
diff --git a/chromium/patches/patch-printing_printing__features.cc b/chromium/patches/patch-printing_printing__features.cc
new file mode 100644
index 0000000000..160d36c08c
--- /dev/null
+++ b/chromium/patches/patch-printing_printing__features.cc
@@ -0,0 +1,23 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- printing/printing_features.cc.orig 2024-07-24 02:44:43.341431000 +0000
++++ printing/printing_features.cc
+@@ -21,12 +21,12 @@ BASE_FEATURE(kAddPrinterViaPrintscanmgr,
+ base::FEATURE_DISABLED_BY_DEFAULT);
+ #endif // BUILDFLAG(IS_CHROMEOS)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ // Use the CUPS IPP printing backend instead of the original CUPS backend that
+ // calls the deprecated PPD API.
+ BASE_FEATURE(kCupsIppPrintingBackend,
+ "CupsIppPrintingBackend",
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ base::FEATURE_DISABLED_BY_DEFAULT
+ #else
+ base::FEATURE_ENABLED_BY_DEFAULT
diff --git a/chromium/patches/patch-printing_printing__features.h b/chromium/patches/patch-printing_printing__features.h
new file mode 100644
index 0000000000..1150cc166f
--- /dev/null
+++ b/chromium/patches/patch-printing_printing__features.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- printing/printing_features.h.orig 2024-07-24 02:44:43.341431000 +0000
++++ printing/printing_features.h
+@@ -22,7 +22,7 @@ COMPONENT_EXPORT(PRINTING_BASE)
+ BASE_DECLARE_FEATURE(kAddPrinterViaPrintscanmgr);
+ #endif // BUILDFLAG(IS_CHROMEOS)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(PRINTING_BASE) BASE_DECLARE_FEATURE(kCupsIppPrintingBackend);
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
+
diff --git a/chromium/patches/patch-printing_sandbox_print__backend__sandbox__hook__linux.cc b/chromium/patches/patch-printing_sandbox_print__backend__sandbox__hook__linux.cc
new file mode 100644
index 0000000000..033cd5a0b0
--- /dev/null
+++ b/chromium/patches/patch-printing_sandbox_print__backend__sandbox__hook__linux.cc
@@ -0,0 +1,56 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- printing/sandbox/print_backend_sandbox_hook_linux.cc.orig 2024-07-24 02:44:43.341431000 +0000
++++ printing/sandbox/print_backend_sandbox_hook_linux.cc
+@@ -10,20 +10,27 @@
+ #include "base/path_service.h"
+ #include "build/build_config.h"
+ #include "printing/buildflags/buildflags.h"
++#if !BUILDFLAG(IS_BSD)
+ #include "sandbox/linux/syscall_broker/broker_command.h"
+ #include "sandbox/linux/syscall_broker/broker_file_permission.h"
+ #include "sandbox/policy/export.h"
+ #include "sandbox/policy/linux/sandbox_linux.h"
++#else
++#include "sandbox/policy/sandbox.h"
++#endif
+
+ #if BUILDFLAG(IS_CHROMEOS) && BUILDFLAG(USE_CUPS)
+ #include "printing/backend/cups_connection_pool.h"
+ #endif
+
++#if !BUILDFLAG(IS_BSD)
+ using sandbox::syscall_broker::BrokerFilePermission;
+ using sandbox::syscall_broker::MakeBrokerCommandSet;
++#endif
+
+ namespace printing {
+
++#if !BUILDFLAG(IS_BSD)
+ namespace {
+
+ sandbox::syscall_broker::BrokerCommandSet GetPrintBackendBrokerCommandSet() {
+@@ -76,9 +83,11 @@ std::vector<BrokerFilePermission> GetPri
+ }
+
+ } // namespace
++#endif
+
+ bool PrintBackendPreSandboxHook(
+ sandbox::policy::SandboxLinux::Options options) {
++#if !BUILDFLAG(IS_BSD)
+ #if BUILDFLAG(IS_CHROMEOS) && BUILDFLAG(USE_CUPS)
+ // Create the socket connections to the CUPS server before engaging the
+ // sandbox, since new connections cannot be made after that.
+@@ -91,6 +100,7 @@ bool PrintBackendPreSandboxHook(
+ GetPrintBackendFilePermissions(), options);
+
+ instance->EngageNamespaceSandboxIfPossible();
++#endif
+ return true;
+ }
+
diff --git a/chromium/patches/patch-printing_sandbox_print__backend__sandbox__hook__linux.h b/chromium/patches/patch-printing_sandbox_print__backend__sandbox__hook__linux.h
new file mode 100644
index 0000000000..c95d208d18
--- /dev/null
+++ b/chromium/patches/patch-printing_sandbox_print__backend__sandbox__hook__linux.h
@@ -0,0 +1,22 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- printing/sandbox/print_backend_sandbox_hook_linux.h.orig 2024-07-24 02:44:43.341431000 +0000
++++ printing/sandbox/print_backend_sandbox_hook_linux.h
+@@ -5,8 +5,13 @@
+ #ifndef PRINTING_SANDBOX_PRINT_BACKEND_SANDBOX_HOOK_LINUX_H_
+ #define PRINTING_SANDBOX_PRINT_BACKEND_SANDBOX_HOOK_LINUX_H_
+
++#include "build/build_config.h"
+ #include "base/component_export.h"
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
++#else
+ #include "sandbox/policy/linux/sandbox_linux.h"
++#endif
+
+ namespace printing {
+
diff --git a/chromium/patches/patch-remoting_BUILD.gn b/chromium/patches/patch-remoting_BUILD.gn
deleted file mode 100644
index ab95751137..0000000000
--- a/chromium/patches/patch-remoting_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- remoting/BUILD.gn.orig 2020-07-15 18:56:00.000000000 +0000
-+++ remoting/BUILD.gn
-@@ -56,7 +56,7 @@ group("remoting_all") {
- deps += [ "//remoting/host:remoting_native_messaging_host" ]
- }
-
-- if (is_linux && !is_chromeos) {
-+ if ((is_linux || is_bsd) && !is_chromeos) {
- deps += [
- "//remoting/host/linux:remoting_dev_me2me_host",
- "//remoting/host/linux:remoting_user_session",
diff --git a/chromium/patches/patch-remoting_base_chromoting__event.cc b/chromium/patches/patch-remoting_base_chromoting__event.cc
index bc7d41bf5d..64211f1c8e 100644
--- a/chromium/patches/patch-remoting_base_chromoting__event.cc
+++ b/chromium/patches/patch-remoting_base_chromoting__event.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- remoting/base/chromoting_event.cc.orig 2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/base/chromoting_event.cc.orig 2024-07-24 02:44:43.345431300 +0000
+++ remoting/base/chromoting_event.cc
-@@ -188,7 +188,7 @@ void ChromotingEvent::AddSystemInfo() {
+@@ -192,7 +192,7 @@ void ChromotingEvent::AddSystemInfo() {
SetString(kCpuKey, base::SysInfo::OperatingSystemArchitecture());
SetString(kOsVersionKey, base::SysInfo::OperatingSystemVersion());
SetString(kWebAppVersionKey, STRINGIZE(VERSION));
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
Os os = Os::CHROMOTING_LINUX;
- #elif defined(OS_CHROMEOS)
+ #elif BUILDFLAG(IS_CHROMEOS_ASH)
Os os = Os::CHROMOTING_CHROMEOS;
diff --git a/chromium/patches/patch-remoting_base_host__settings.cc b/chromium/patches/patch-remoting_base_host__settings.cc
new file mode 100644
index 0000000000..b663f13602
--- /dev/null
+++ b/chromium/patches/patch-remoting_base_host__settings.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/base/host_settings.cc.orig 2024-07-24 02:44:43.345431300 +0000
++++ remoting/base/host_settings.cc
+@@ -7,7 +7,7 @@
+ #include "base/no_destructor.h"
+ #include "build/build_config.h"
+
+-#if BUILDFLAG(IS_APPLE) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS))
++#if BUILDFLAG(IS_APPLE) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)) || BUILDFLAG(IS_BSD)
+ #include "remoting/base/file_host_settings.h"
+ #endif // BUILDFLAG(IS_LINUX)
+
+@@ -44,7 +44,7 @@ HostSettings::~HostSettings() = default;
+
+ // static
+ HostSettings* HostSettings::GetInstance() {
+-#if BUILDFLAG(IS_APPLE) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS))
++#if BUILDFLAG(IS_APPLE) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)) || BUILDFLAG(IS_BSD)
+ static base::NoDestructor<FileHostSettings> instance(
+ FileHostSettings::GetSettingsFilePath());
+ #elif BUILDFLAG(IS_WIN)
diff --git a/chromium/patches/patch-remoting_client_display_BUILD.gn b/chromium/patches/patch-remoting_client_display_BUILD.gn
deleted file mode 100644
index 4d0b1082bc..0000000000
--- a/chromium/patches/patch-remoting_client_display_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- remoting/client/display/BUILD.gn.orig 2020-07-15 18:56:47.000000000 +0000
-+++ remoting/client/display/BUILD.gn
-@@ -43,7 +43,7 @@ source_set("display") {
- libs = [ "GLESv2" ]
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- libs = [ "GL" ]
- }
-
diff --git a/chromium/patches/patch-remoting_client_display_sys__opengl.h b/chromium/patches/patch-remoting_client_display_sys__opengl.h
index b8471a1a92..1131030ef5 100644
--- a/chromium/patches/patch-remoting_client_display_sys__opengl.h
+++ b/chromium/patches/patch-remoting_client_display_sys__opengl.h
@@ -1,13 +1,17 @@
$NetBSD$
---- remoting/client/display/sys_opengl.h.orig 2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/client/display/sys_opengl.h.orig 2024-07-24 02:44:43.361432800 +0000
+++ remoting/client/display/sys_opengl.h
@@ -9,7 +9,7 @@
- #if defined(OS_IOS)
+ #if BUILDFLAG(IS_IOS)
#include <OpenGLES/ES3/gl.h>
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#define GL_GLEXT_PROTOTYPES
#include <GL/gl.h>
#include <GL/glext.h>
diff --git a/chromium/patches/patch-remoting_codec_webrtc__video__encoder__vpx.cc b/chromium/patches/patch-remoting_codec_webrtc__video__encoder__vpx.cc
new file mode 100644
index 0000000000..033a19d992
--- /dev/null
+++ b/chromium/patches/patch-remoting_codec_webrtc__video__encoder__vpx.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/codec/webrtc_video_encoder_vpx.cc.orig 2024-07-24 02:44:43.369433600 +0000
++++ remoting/codec/webrtc_video_encoder_vpx.cc
+@@ -88,7 +88,7 @@ void SetVp8CodecParameters(vpx_codec_enc
+ const webrtc::DesktopSize& size) {
+ SetCommonCodecParameters(config, size);
+
+-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)
++#if (BUILDFLAG(IS_BSD) || BUILDFLAG(IS_LINUX)) && !BUILDFLAG(IS_CHROMEOS_LACROS)
+ // On Linux, using too many threads for VP8 encoding has been linked to high
+ // CPU usage on machines that are under stress. See http://crbug.com/1151148.
+ // 5/3/2022 update: Perf testing has shown that doubling the number of threads
diff --git a/chromium/patches/patch-remoting_host_BUILD.gn b/chromium/patches/patch-remoting_host_BUILD.gn
deleted file mode 100644
index 2c091b01ad..0000000000
--- a/chromium/patches/patch-remoting_host_BUILD.gn
+++ /dev/null
@@ -1,40 +0,0 @@
-$NetBSD$
-
---- remoting/host/BUILD.gn.orig 2020-07-15 18:56:47.000000000 +0000
-+++ remoting/host/BUILD.gn
-@@ -353,7 +353,7 @@ static_library("common") {
- deps += [ "//components/policy:generated" ]
- }
-
-- if (is_linux && !is_chromeos) {
-+ if ((is_linux || is_bsd) && !is_chromeos) {
- public_deps += [ "//remoting/host/linux" ]
- libs += [ "pam" ]
- }
-@@ -546,7 +546,7 @@ source_set("unit_tests") {
- "//third_party/grpc:grpcpp",
- ]
-
-- if (is_linux && !is_chromeos) {
-+ if ((is_linux || is_bsd) && !is_chromeos) {
- deps += [ "//remoting/host/linux:unit_tests" ]
- }
-
-@@ -742,7 +742,7 @@ if (enable_me2me_host) {
- if (is_desktop_linux) {
- deps += [ "//build/config/linux/gtk" ]
- }
-- if ((is_linux && !is_chromeos) || is_mac) {
-+ if (((is_linux || is_bsd) && !is_chromeos) || is_mac) {
- libs = [ "pam" ]
- }
-
-@@ -802,7 +802,7 @@ if (enable_me2me_host) {
- }
- }
- }
-- if (is_chrome_branded && enable_me2me_host && is_linux && !is_chromeos) {
-+ if (is_chrome_branded && enable_me2me_host && (is_linux || is_bsd) && !is_chromeos) {
- group("remoting_me2me_host_archive") {
- deps = [ "//remoting/host/installer/linux:remoting_me2me_host_archive" ]
- }
diff --git a/chromium/patches/patch-remoting_host_base_desktop__environment__options.cc b/chromium/patches/patch-remoting_host_base_desktop__environment__options.cc
new file mode 100644
index 0000000000..8b306efebe
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_base_desktop__environment__options.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/base/desktop_environment_options.cc.orig 2024-07-24 02:44:43.369433600 +0000
++++ remoting/host/base/desktop_environment_options.cc
+@@ -124,7 +124,7 @@ bool DesktopEnvironmentOptions::capture_
+ // TODO(joedow): Determine whether we can migrate additional platforms to
+ // using the DesktopCaptureWrapper instead of the DesktopCaptureProxy. Then
+ // clean up DesktopCapturerProxy::Core::CreateCapturer().
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return capture_video_on_dedicated_thread_;
+ #else
+ return false;
diff --git a/chromium/patches/patch-remoting_host_base_switches.cc b/chromium/patches/patch-remoting_host_base_switches.cc
new file mode 100644
index 0000000000..c3d9b5acbc
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_base_switches.cc
@@ -0,0 +1,24 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/base/switches.cc.orig 2024-07-24 02:44:43.373433800 +0000
++++ remoting/host/base/switches.cc
+@@ -23,13 +23,13 @@ const char kProcessTypeEvaluateCapabilit
+ const char kProcessTypeFileChooser[] = "file_chooser";
+ const char kProcessTypeUrlForwarderConfigurator[] =
+ "url_forwarder_configurator";
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ const char kProcessTypeXSessionChooser[] = "xsession_chooser";
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+
+ const char kEvaluateCapabilitySwitchName[] = "evaluate-type";
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const char kEnableUtempter[] = "enable-utempter";
+ #endif
+
diff --git a/chromium/patches/patch-remoting_host_base_switches.h b/chromium/patches/patch-remoting_host_base_switches.h
new file mode 100644
index 0000000000..f60f559129
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_base_switches.h
@@ -0,0 +1,24 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/base/switches.h.orig 2024-07-24 02:44:43.373433800 +0000
++++ remoting/host/base/switches.h
+@@ -35,13 +35,13 @@ extern const char kProcessTypeRdpDesktop
+ extern const char kProcessTypeEvaluateCapability[];
+ extern const char kProcessTypeFileChooser[];
+ extern const char kProcessTypeUrlForwarderConfigurator[];
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ extern const char kProcessTypeXSessionChooser[];
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+
+ extern const char kEvaluateCapabilitySwitchName[];
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Used to record client sessions to utmp/wtmp.
+ extern const char kEnableUtempter[];
+ #endif
diff --git a/chromium/patches/patch-remoting_host_basic__desktop__environment.cc b/chromium/patches/patch-remoting_host_basic__desktop__environment.cc
new file mode 100644
index 0000000000..9451838481
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_basic__desktop__environment.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/basic_desktop_environment.cc.orig 2024-07-24 02:44:43.373433800 +0000
++++ remoting/host/basic_desktop_environment.cc
+@@ -195,7 +195,7 @@ std::unique_ptr<DesktopCapturer> BasicDe
+ scoped_refptr<base::SingleThreadTaskRunner> capture_task_runner;
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
+ capture_task_runner = ui_task_runner_;
+-#elif BUILDFLAG(IS_LINUX) && defined(REMOTING_USE_WAYLAND)
++#elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(REMOTING_USE_WAYLAND)
+ // Each capturer instance should get its own thread so the capturers don't
+ // compete with each other in multistream mode.
+ capture_task_runner = base::ThreadPool::CreateSingleThreadTaskRunner(
diff --git a/chromium/patches/patch-remoting_host_chromoting__host.cc b/chromium/patches/patch-remoting_host_chromoting__host.cc
new file mode 100644
index 0000000000..6346196fd6
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_chromoting__host.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/chromoting_host.cc.orig 2024-07-24 02:44:43.373433800 +0000
++++ remoting/host/chromoting_host.cc
+@@ -129,7 +129,7 @@ void ChromotingHost::Start(const std::st
+ &ChromotingHost::OnIncomingSession, base::Unretained(this)));
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void ChromotingHost::StartChromotingHostServices() {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ DCHECK(!ipc_server_);
diff --git a/chromium/patches/patch-remoting_host_chromoting__host.h b/chromium/patches/patch-remoting_host_chromoting__host.h
new file mode 100644
index 0000000000..faa597075e
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_chromoting__host.h
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/chromoting_host.h.orig 2024-07-24 02:44:43.377434300 +0000
++++ remoting/host/chromoting_host.h
+@@ -32,7 +32,7 @@
+ #include "remoting/protocol/session_manager.h"
+ #include "remoting/protocol/transport_context.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "remoting/host/chromoting_host_services_server.h"
+ #endif
+
+@@ -97,7 +97,7 @@ class ChromotingHost : public ClientSess
+ // This method can only be called once during the lifetime of this object.
+ void Start(const std::string& host_owner);
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Starts running the ChromotingHostServices server and listening for incoming
+ // IPC binding requests.
+ // Currently only Linux runs the ChromotingHostServices server on the host
+@@ -206,7 +206,7 @@ class ChromotingHost : public ClientSess
+ // List of host extensions.
+ std::vector<std::unique_ptr<HostExtension>> extensions_;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // IPC server that runs the CRD host service API. Non-null if the server name
+ // is set and the host is started.
+ // Currently only Linux runs the ChromotingHostServices server on the host
diff --git a/chromium/patches/patch-remoting_host_chromoting__host__context.cc b/chromium/patches/patch-remoting_host_chromoting__host__context.cc
new file mode 100644
index 0000000000..4f47dae299
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_chromoting__host__context.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/chromoting_host_context.cc.orig 2024-07-24 02:44:43.377434300 +0000
++++ remoting/host/chromoting_host_context.cc
+@@ -294,7 +294,7 @@ std::unique_ptr<ChromotingHostContext> C
+ // on a UI thread.
+ scoped_refptr<AutoThreadTaskRunner> input_task_runner =
+ AutoThread::CreateWithType("ChromotingInputThread", ui_task_runner,
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ base::MessagePumpType::UI);
+ #else
+ base::MessagePumpType::IO);
diff --git a/chromium/patches/patch-remoting_host_chromoting__host__services__client.cc b/chromium/patches/patch-remoting_host_chromoting__host__services__client.cc
new file mode 100644
index 0000000000..5cf0ccbaa0
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_chromoting__host__services__client.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/chromoting_host_services_client.cc.orig 2024-07-24 02:44:43.377434300 +0000
++++ remoting/host/chromoting_host_services_client.cc
+@@ -59,7 +59,7 @@ mojo::PendingRemote<mojom::ChromotingHos
+
+ } // namespace
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+
+ // static
+ constexpr char
+@@ -136,7 +136,7 @@ bool ChromotingHostServicesClient::Ensur
+ if (session_services_remote_.is_bound()) {
+ return true;
+ }
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (!environment_->HasVar(kChromeRemoteDesktopSessionEnvVar)) {
+ LOG(WARNING) << "Current desktop environment is not remotable.";
+ return false;
diff --git a/chromium/patches/patch-remoting_host_client__session.cc b/chromium/patches/patch-remoting_host_client__session.cc
new file mode 100644
index 0000000000..442ea7fc44
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_client__session.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/client_session.cc.orig 2024-07-24 02:44:43.377434300 +0000
++++ remoting/host/client_session.cc
+@@ -157,7 +157,7 @@ void ClientSession::NotifyClientResoluti
+ if (desktop_environment_options_.enable_curtaining()) {
+ dpi_vector.set(resolution.x_dpi(), resolution.y_dpi());
+ }
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ dpi_vector.set(resolution.x_dpi(), resolution.y_dpi());
+ #endif
+
diff --git a/chromium/patches/patch-remoting_host_crash_crash__file__uploader.cc b/chromium/patches/patch-remoting_host_crash_crash__file__uploader.cc
new file mode 100644
index 0000000000..ebc73fd6ef
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_crash_crash__file__uploader.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/crash/crash_file_uploader.cc.orig 2024-07-24 02:44:43.377434300 +0000
++++ remoting/host/crash/crash_file_uploader.cc
+@@ -44,7 +44,7 @@ constexpr char kMinidumpFileName[] = "du
+
+ #if BUILDFLAG(IS_WIN)
+ constexpr char kProductNameValue[] = "Chromoting";
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ constexpr char kProductNameValue[] = "Chromoting_Linux";
+ #elif BUILDFLAG(IS_MAC)
+ constexpr char kProductNameValue[] = "Chromoting_Mac";
diff --git a/chromium/patches/patch-remoting_host_desktop__and__cursor__conditional__composer.cc b/chromium/patches/patch-remoting_host_desktop__and__cursor__conditional__composer.cc
new file mode 100644
index 0000000000..04d6c54ab8
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_desktop__and__cursor__conditional__composer.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/desktop_and_cursor_conditional_composer.cc.orig 2024-07-24 02:44:43.381434700 +0000
++++ remoting/host/desktop_and_cursor_conditional_composer.cc
+@@ -7,7 +7,7 @@
+ #include "base/functional/bind.h"
+ #include "build/build_config.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "remoting/host/linux/wayland_utils.h"
+ #endif
+
+@@ -96,7 +96,7 @@ bool DesktopAndCursorConditionalComposer
+ }
+
+ bool DesktopAndCursorConditionalComposer::SupportsFrameCallbacks() {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return IsRunningWayland();
+ #else
+ return false;
diff --git a/chromium/patches/patch-remoting_host_desktop__capturer__proxy.cc b/chromium/patches/patch-remoting_host_desktop__capturer__proxy.cc
new file mode 100644
index 0000000000..6bc582db64
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_desktop__capturer__proxy.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/desktop_capturer_proxy.cc.orig 2024-07-24 02:44:43.381434700 +0000
++++ remoting/host/desktop_capturer_proxy.cc
+@@ -26,7 +26,7 @@
+ #include "remoting/host/chromeos/frame_sink_desktop_capturer.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "base/environment.h"
+ #include "base/nix/xdg_util.h"
+ #include "remoting/host/linux/wayland_desktop_capturer.h"
+@@ -91,7 +91,7 @@ void DesktopCapturerProxy::Core::CreateC
+
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
+ capturer_ = std::make_unique<FrameSinkDesktopCapturer>();
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ static base::nix::SessionType session_type = base::nix::SessionType::kUnset;
+ if (session_type == base::nix::SessionType::kUnset) {
+ std::unique_ptr<base::Environment> env = base::Environment::Create();
+@@ -298,7 +298,7 @@ void DesktopCapturerProxy::OnMetadata(we
+ bool DesktopCapturerProxy::SupportsFrameCallbacks() {
+ DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return IsRunningWayland();
+ #else
+ return false;
diff --git a/chromium/patches/patch-remoting_host_desktop__capturer__wrapper.cc b/chromium/patches/patch-remoting_host_desktop__capturer__wrapper.cc
new file mode 100644
index 0000000000..279acdf677
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_desktop__capturer__wrapper.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/desktop_capturer_wrapper.cc.orig 2024-07-24 02:44:43.381434700 +0000
++++ remoting/host/desktop_capturer_wrapper.cc
+@@ -13,7 +13,7 @@
+ #include "third_party/webrtc/modules/desktop_capture/desktop_capturer.h"
+ #include "third_party/webrtc/modules/desktop_capture/desktop_frame.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "remoting/host/linux/wayland_desktop_capturer.h"
+ #include "remoting/host/linux/wayland_utils.h"
+ #endif
+@@ -33,7 +33,7 @@ void DesktopCapturerWrapper::CreateCaptu
+ SourceId id) {
+ DCHECK(!capturer_);
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (IsRunningWayland()) {
+ capturer_ = std::make_unique<WaylandDesktopCapturer>(options);
+ } else {
+@@ -112,7 +112,7 @@ void DesktopCapturerWrapper::OnCaptureRe
+ bool DesktopCapturerWrapper::SupportsFrameCallbacks() {
+ DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return capturer_ && IsRunningWayland();
+ #else
+ return false;
diff --git a/chromium/patches/patch-remoting_host_evaluate__capability.cc b/chromium/patches/patch-remoting_host_evaluate__capability.cc
index 44c88ad9c1..57fd99e0f2 100644
--- a/chromium/patches/patch-remoting_host_evaluate__capability.cc
+++ b/chromium/patches/patch-remoting_host_evaluate__capability.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- remoting/host/evaluate_capability.cc.orig 2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/evaluate_capability.cc.orig 2024-07-24 02:44:43.385435000 +0000
+++ remoting/host/evaluate_capability.cc
-@@ -51,7 +51,7 @@ base::FilePath BuildHostBinaryPath() {
+@@ -56,7 +56,7 @@ base::FilePath BuildHostBinaryPath() {
}
#endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
if (path.BaseName().value() ==
FILE_PATH_LITERAL("chrome-remote-desktop-host")) {
return path;
diff --git a/chromium/patches/patch-remoting_host_host__attributes.cc b/chromium/patches/patch-remoting_host_host__attributes.cc
index 97c49dfd90..6bd5cae489 100644
--- a/chromium/patches/patch-remoting_host_host__attributes.cc
+++ b/chromium/patches/patch-remoting_host_host__attributes.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- remoting/host/host_attributes.cc.orig 2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/host_attributes.cc.orig 2024-07-24 02:44:43.393436000 +0000
+++ remoting/host/host_attributes.cc
-@@ -120,7 +120,7 @@ std::string GetHostAttributes() {
- media::InitializeMediaFoundation()) {
+@@ -105,7 +105,7 @@ std::string GetHostAttributes() {
+ if (media::InitializeMediaFoundation()) {
result.push_back("HWEncoder");
}
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
result.push_back("HWEncoder");
#endif
diff --git a/chromium/patches/patch-remoting_host_host__details.cc b/chromium/patches/patch-remoting_host_host__details.cc
index 14aeadf1f1..2cf688777f 100644
--- a/chromium/patches/patch-remoting_host_host__details.cc
+++ b/chromium/patches/patch-remoting_host_host__details.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- remoting/host/host_details.cc.orig 2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/host_details.cc.orig 2024-07-24 02:44:43.393436000 +0000
+++ remoting/host/host_details.cc
-@@ -22,7 +22,7 @@ std::string GetHostOperatingSystemName()
+@@ -23,7 +23,7 @@ std::string GetHostOperatingSystemName()
return "Mac";
- #elif defined(OS_CHROMEOS)
+ #elif BUILDFLAG(IS_CHROMEOS_ASH)
return "ChromeOS";
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
return "Linux";
- #elif defined(OS_ANDROID)
+ #elif BUILDFLAG(IS_ANDROID)
return "Android";
diff --git a/chromium/patches/patch-remoting_host_host__main.cc b/chromium/patches/patch-remoting_host_host__main.cc
index 1af16f64bb..958f41f07b 100644
--- a/chromium/patches/patch-remoting_host_host__main.cc
+++ b/chromium/patches/patch-remoting_host_host__main.cc
@@ -1,22 +1,44 @@
$NetBSD$
---- remoting/host/host_main.cc.orig 2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/host_main.cc.orig 2024-07-24 02:44:43.393436000 +0000
+++ remoting/host/host_main.cc
-@@ -48,7 +48,7 @@ int DesktopProcessMain();
- int FileChooserMain();
+@@ -50,7 +50,7 @@ int FileChooserMain();
int RdpDesktopSessionMain();
- #endif // defined(OS_WIN)
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+ int UrlForwarderConfiguratorMain();
+ #endif // BUILDFLAG(IS_WIN)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
int XSessionChooserMain();
- #endif // defined(OS_LINUX)
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+
+@@ -63,7 +63,7 @@ const char kUsageMessage[] =
+ "\n"
+ "Options:\n"
-@@ -143,7 +143,7 @@ MainRoutineFn SelectMainRoutine(const st
- } else if (process_type == kProcessTypeRdpDesktopSession) {
- main_routine = &RdpDesktopSessionMain;
- #endif // defined(OS_WIN)
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ " --audio-pipe-name=<pipe> - Sets the pipe name to capture audio on "
+ "Linux.\n"
+ #endif // BUILDFLAG(IS_LINUX)
+@@ -156,7 +156,7 @@ MainRoutineFn SelectMainRoutine(const st
+ } else if (process_type == kProcessTypeUrlForwarderConfigurator) {
+ main_routine = &UrlForwarderConfiguratorMain;
+ #endif // BUILDFLAG(IS_WIN)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
} else if (process_type == kProcessTypeXSessionChooser) {
main_routine = &XSessionChooserMain;
- #endif // defined(OS_LINUX)
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+@@ -222,7 +222,7 @@ int HostMain(int argc, char** argv) {
+ // be initialized first, so that the preference for crash-reporting can be
+ // looked up in the config file.
+ if (IsUsageStatsAllowed()) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ InitializeCrashReporting();
+ #elif BUILDFLAG(IS_WIN)
+ // TODO: joedow - Enable crash reporting for the RDP process.
diff --git a/chromium/patches/patch-remoting_host_ipc__constants.cc b/chromium/patches/patch-remoting_host_ipc__constants.cc
new file mode 100644
index 0000000000..a7eebbf1ef
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_ipc__constants.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/ipc_constants.cc.orig 2024-07-24 02:44:43.413437800 +0000
++++ remoting/host/ipc_constants.cc
+@@ -17,7 +17,7 @@ namespace remoting {
+
+ namespace {
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+
+ #if !defined(NDEBUG)
+ // Use a different IPC name for debug builds so that we can run the host
+@@ -68,7 +68,7 @@ GetChromotingHostServicesServerName() {
+ static const base::NoDestructor<mojo::NamedPlatformChannel::ServerName>
+ server_name(
+ named_mojo_ipc_server::WorkingDirectoryIndependentServerNameFromUTF8(
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Linux host creates the socket file in /tmp, and it won't be
+ // deleted until reboot, so we put username in the path in case
+ // the user switches the host owner.
diff --git a/chromium/patches/patch-remoting_host_it2me_it2me__host.cc b/chromium/patches/patch-remoting_host_it2me_it2me__host.cc
new file mode 100644
index 0000000000..e719eaa4fd
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_it2me_it2me__host.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/it2me/it2me_host.cc.orig 2024-07-24 02:44:43.417438300 +0000
++++ remoting/host/it2me/it2me_host.cc
+@@ -52,7 +52,7 @@
+ #include "remoting/host/chromeos/features.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "remoting/host/linux/wayland_manager.h"
+ #include "remoting/host/linux/wayland_utils.h"
+ #endif // BUILDFLAG(IS_LINUX)
+@@ -180,7 +180,7 @@ void It2MeHost::Connect(
+
+ OnPolicyUpdate(std::move(policies));
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (IsRunningWayland()) {
+ WaylandManager::Get()->Init(host_context_->ui_task_runner());
+ }
+@@ -340,7 +340,7 @@ void It2MeHost::ConnectOnNetworkThread(
+
+ // Set up the desktop environment options.
+ DesktopEnvironmentOptions options(DesktopEnvironmentOptions::CreateDefault());
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (IsRunningWayland()) {
+ options.desktop_capture_options()->set_prefer_cursor_embedded(true);
+ }
diff --git a/chromium/patches/patch-remoting_host_it2me_it2me__native__messaging__host__main.cc b/chromium/patches/patch-remoting_host_it2me_it2me__native__messaging__host__main.cc
index 6391839644..f754bc01a1 100644
--- a/chromium/patches/patch-remoting_host_it2me_it2me__native__messaging__host__main.cc
+++ b/chromium/patches/patch-remoting_host_it2me_it2me__native__messaging__host__main.cc
@@ -1,22 +1,53 @@
$NetBSD$
---- remoting/host/it2me/it2me_native_messaging_host_main.cc.orig 2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/it2me/it2me_native_messaging_host_main.cc.orig 2024-07-24 02:44:43.417438300 +0000
+++ remoting/host/it2me/it2me_native_messaging_host_main.cc
-@@ -29,7 +29,7 @@
- #include "remoting/host/switches.h"
+@@ -30,7 +30,7 @@
+ #include "remoting/host/resources.h"
#include "remoting/host/usage_stats_consent.h"
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #if defined(REMOTING_USE_X11)
#include <gtk/gtk.h>
-
#include "base/linux_util.h"
-@@ -112,7 +112,7 @@ int It2MeNativeMessagingHostMain(int arg
+@@ -77,7 +77,7 @@ bool CurrentProcessHasUiAccess() {
+ // Creates a It2MeNativeMessagingHost instance, attaches it to stdin/stdout and
+ // runs the task executor until It2MeNativeMessagingHost signals shutdown.
+ int It2MeNativeMessagingHostMain(int argc, char** argv) {
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(REMOTING_USE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && defined(REMOTING_USE_X11)
+ if (!IsRunningWayland()) {
+ // Initialize Xlib for multi-threaded use, allowing non-Chromium code to
+ // use X11 safely (such as the WebRTC capturer, GTK ...)
+@@ -125,7 +125,7 @@ int It2MeNativeMessagingHostMain(int arg
remoting::LoadResources("");
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // Required in order for us to run multiple X11 threads.
- XInitThreads();
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(REMOTING_USE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && defined(REMOTING_USE_X11)
+ // Required for any calls into GTK functions, such as the Disconnect and
+ // Continue windows. Calling with nullptr arguments because we don't have
+ // any command line arguments for gtk to consume.
+@@ -257,7 +257,7 @@ int It2MeNativeMessagingHostMain(int arg
+ PolicyWatcher::CreateWithTaskRunner(context->file_task_runner(),
+ context->management_service());
+
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(REMOTING_USE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && defined(REMOTING_USE_X11)
+ scoped_refptr<AutoThreadTaskRunner> input_task_runner;
+ if (!IsRunningWayland()) {
+ // Create an X11EventSource on all UI threads, so the global X11 connection
+@@ -284,7 +284,7 @@ int It2MeNativeMessagingHostMain(int arg
+ // Run the loop until channel is alive.
+ run_loop.Run();
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(REMOTING_USE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && defined(REMOTING_USE_X11)
+ if (!IsRunningWayland()) {
+ input_task_runner->PostTask(FROM_HERE, base::BindOnce([]() {
+ delete ui::X11EventSource::GetInstance();
diff --git a/chromium/patches/patch-remoting_host_me2me__desktop__environment.cc b/chromium/patches/patch-remoting_host_me2me__desktop__environment.cc
index e041fa054d..5d1f5b25bf 100644
--- a/chromium/patches/patch-remoting_host_me2me__desktop__environment.cc
+++ b/chromium/patches/patch-remoting_host_me2me__desktop__environment.cc
@@ -1,13 +1,44 @@
$NetBSD$
---- remoting/host/me2me_desktop_environment.cc.orig 2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/me2me_desktop_environment.cc.orig 2024-07-24 02:44:43.429439300 +0000
+++ remoting/host/me2me_desktop_environment.cc
-@@ -129,7 +129,7 @@ bool Me2MeDesktopEnvironment::Initialize
+@@ -119,7 +119,7 @@ std::string Me2MeDesktopEnvironment::Get
+ capabilities += protocol::kRemoteWebAuthnCapability;
+ }
+
+-#if BUILDFLAG(IS_LINUX) && defined(REMOTING_USE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(REMOTING_USE_X11)
+ if (!IsRunningWayland()) {
+ capabilities += " ";
+ capabilities += protocol::kMultiStreamCapability;
+@@ -161,7 +161,7 @@ Me2MeDesktopEnvironment::Me2MeDesktopEnv
+ // properly under Xvfb.
+ mutable_desktop_capture_options()->set_use_update_notifications(true);
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Setting this option to false means that the capture differ wrapper will not
+ // be used when the X11 capturer is selected. This reduces the X11 capture
+ // time by a few milliseconds per frame and is safe because we can rely on
+@@ -170,7 +170,7 @@ Me2MeDesktopEnvironment::Me2MeDesktopEnv
+ mutable_desktop_capture_options()->set_detect_updated_region(false);
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (IsRunningWayland()) {
+ mutable_desktop_capture_options()->set_prefer_cursor_embedded(false);
+ }
+@@ -195,7 +195,7 @@ bool Me2MeDesktopEnvironment::Initialize
// Otherwise, if the session is shared with the local user start monitoring
// the local input and create the in-session UI.
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
bool want_user_interface = false;
- #elif defined(OS_MACOSX)
+ #elif BUILDFLAG(IS_APPLE)
// Don't try to display any UI on top of the system's login screen as this
diff --git a/chromium/patches/patch-remoting_host_mouse__cursor__monitor__proxy.cc b/chromium/patches/patch-remoting_host_mouse__cursor__monitor__proxy.cc
new file mode 100644
index 0000000000..4c925bf8cd
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_mouse__cursor__monitor__proxy.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/mouse_cursor_monitor_proxy.cc.orig 2024-07-24 02:44:43.429439300 +0000
++++ remoting/host/mouse_cursor_monitor_proxy.cc
+@@ -73,7 +73,7 @@ void MouseCursorMonitorProxy::Core::Crea
+
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
+ mouse_cursor_monitor_ = std::make_unique<MouseCursorMonitorAura>();
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (IsRunningWayland()) {
+ mouse_cursor_monitor_ = webrtc::MouseCursorMonitor::Create(options);
+ } else {
diff --git a/chromium/patches/patch-remoting_host_policy__watcher.cc b/chromium/patches/patch-remoting_host_policy__watcher.cc
new file mode 100644
index 0000000000..5d5f2fa353
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_policy__watcher.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/policy_watcher.cc.orig 2024-07-24 02:44:43.433439700 +0000
++++ remoting/host/policy_watcher.cc
+@@ -192,7 +192,7 @@ base::Value::Dict PolicyWatcher::GetDefa
+ true);
+ result.Set(key::kRemoteAccessHostAllowEnterpriseFileTransfer, false);
+ #endif
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ result.Set(key::kRemoteAccessHostMatchUsername, false);
+ #endif
+ #if !BUILDFLAG(IS_CHROMEOS)
diff --git a/chromium/patches/patch-remoting_host_remote__open__url_remote__open__url__client.cc b/chromium/patches/patch-remoting_host_remote__open__url_remote__open__url__client.cc
new file mode 100644
index 0000000000..39e2bee266
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_remote__open__url_remote__open__url__client.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/remote_open_url/remote_open_url_client.cc.orig 2024-07-24 02:44:43.433439700 +0000
++++ remoting/host/remote_open_url/remote_open_url_client.cc
+@@ -18,7 +18,7 @@
+ #include "remoting/host/mojom/chromoting_host_services.mojom.h"
+ #include "remoting/host/mojom/remote_url_opener.mojom.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "remoting/host/remote_open_url/remote_open_url_client_delegate_linux.h"
+ #elif BUILDFLAG(IS_WIN)
+ #include "remoting/host/remote_open_url/remote_open_url_client_delegate_win.h"
+@@ -31,7 +31,7 @@ namespace {
+ constexpr base::TimeDelta kRequestTimeout = base::Seconds(5);
+
+ std::unique_ptr<RemoteOpenUrlClient::Delegate> CreateDelegate() {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return std::make_unique<RemoteOpenUrlClientDelegateLinux>();
+ #elif BUILDFLAG(IS_WIN)
+ return std::make_unique<RemoteOpenUrlClientDelegateWin>();
diff --git a/chromium/patches/patch-remoting_host_remote__open__url_remote__open__url__util.cc b/chromium/patches/patch-remoting_host_remote__open__url_remote__open__url__util.cc
new file mode 100644
index 0000000000..0111d06270
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_remote__open__url_remote__open__url__util.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/remote_open_url/remote_open_url_util.cc.orig 2024-07-24 02:44:43.433439700 +0000
++++ remoting/host/remote_open_url/remote_open_url_util.cc
+@@ -29,7 +29,7 @@ const wchar_t kRegisteredApplicationsKey
+ #endif // BUILDFLAG(IS_WIN)
+
+ bool IsRemoteOpenUrlSupported() {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return true;
+ #elif BUILDFLAG(IS_WIN)
+ // The MSI installs the ProgID and capabilities into registry, but not the
diff --git a/chromium/patches/patch-remoting_host_remote__open__url_url__forwarder__configurator.cc b/chromium/patches/patch-remoting_host_remote__open__url_url__forwarder__configurator.cc
new file mode 100644
index 0000000000..a2410b2355
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_remote__open__url_url__forwarder__configurator.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/remote_open_url/url_forwarder_configurator.cc.orig 2024-07-24 02:44:43.433439700 +0000
++++ remoting/host/remote_open_url/url_forwarder_configurator.cc
+@@ -12,7 +12,7 @@ UrlForwarderConfigurator::UrlForwarderCo
+
+ UrlForwarderConfigurator::~UrlForwarderConfigurator() = default;
+
+-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_WIN)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_BSD)
+
+ // static
+ std::unique_ptr<UrlForwarderConfigurator> UrlForwarderConfigurator::Create() {
diff --git a/chromium/patches/patch-remoting_host_remoting__me2me__host.cc b/chromium/patches/patch-remoting_host_remoting__me2me__host.cc
index 2c243ef936..aa86909a09 100644
--- a/chromium/patches/patch-remoting_host_remoting__me2me__host.cc
+++ b/chromium/patches/patch-remoting_host_remoting__me2me__host.cc
@@ -1,76 +1,175 @@
$NetBSD$
---- remoting/host/remoting_me2me_host.cc.orig 2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/remoting_me2me_host.cc.orig 2024-07-24 02:44:43.437440200 +0000
+++ remoting/host/remoting_me2me_host.cc
-@@ -118,7 +118,7 @@
+@@ -132,7 +132,7 @@
#include "remoting/host/mac/permission_utils.h"
- #endif // defined(OS_MACOSX)
+ #endif // BUILDFLAG(IS_APPLE)
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #if defined(REMOTING_USE_X11)
#include <gtk/gtk.h>
+ #endif // defined(REMOTING_USE_X11)
+@@ -143,13 +143,13 @@
+ #endif // defined(REMOTING_USE_X11)
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "base/linux_util.h"
#include "remoting/host/audio_capturer_linux.h"
-@@ -159,7 +159,7 @@ const char kApplicationName[] = "chromot
+ #include "remoting/host/linux/certificate_watcher.h"
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "remoting/host/host_utmp_logger.h"
+ #endif
+
+@@ -162,7 +162,7 @@
+ #include "remoting/host/win/session_desktop_environment.h"
+ #endif // BUILDFLAG(IS_WIN)
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "remoting/host/linux/wayland_manager.h"
+ #include "remoting/host/linux/wayland_utils.h"
+ #endif // BUILDFLAG(IS_LINUX)
+@@ -192,7 +192,7 @@ const char kApplicationName[] = "chromot
const char kStdinConfigPath[] = "-";
#endif // !defined(REMOTING_MULTI_PROCESS)
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// The command line switch used to pass name of the pipe to capture audio on
// linux.
const char kAudioPipeSwitchName[] = "audio-pipe-name";
-@@ -353,7 +353,7 @@ class HostProcess : public ConfigWatcher
+@@ -401,7 +401,7 @@ class HostProcess : public ConfigWatcher
std::unique_ptr<ChromotingHostContext> context_;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// Watch for certificate changes and kill the host when changes occur
std::unique_ptr<CertificateWatcher> cert_watcher_;
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+@@ -471,7 +471,7 @@ class HostProcess : public ConfigWatcher
+
+ std::unique_ptr<HostStatusLogger> host_status_logger_;
+ std::unique_ptr<HostEventLogger> host_event_logger_;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ std::unique_ptr<HostUTMPLogger> host_utmp_logger_;
#endif
-@@ -749,7 +749,7 @@ void HostProcess::CreateAuthenticatorFac
+ std::unique_ptr<HostPowerSaveBlocker> power_save_blocker_;
+@@ -778,7 +778,7 @@ void HostProcess::StartOnNetworkThread()
+ void HostProcess::ShutdownOnNetworkThread() {
+ DCHECK(context_->network_task_runner()->BelongsToCurrentThread());
+ config_watcher_.reset();
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ cert_watcher_.reset();
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ }
+@@ -844,7 +844,7 @@ void HostProcess::CreateAuthenticatorFac
DCHECK(third_party_auth_config_.token_url.is_valid());
DCHECK(third_party_auth_config_.token_validation_url.is_valid());
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
if (!cert_watcher_) {
- cert_watcher_.reset(new CertificateWatcher(
- base::Bind(&HostProcess::ShutdownHost, this, kSuccessExitCode),
-@@ -835,7 +835,7 @@ void HostProcess::StartOnUiThread() {
- base::Bind(&HostProcess::OnPolicyUpdate, base::Unretained(this)),
- base::Bind(&HostProcess::OnPolicyError, base::Unretained(this)));
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+ cert_watcher_ = std::make_unique<CertificateWatcher>(
+ base::BindRepeating(&HostProcess::ShutdownHost,
+@@ -970,13 +970,13 @@ void HostProcess::StartOnUiThread() {
+ base::BindRepeating(&HostProcess::OnPolicyUpdate, base::Unretained(this)),
+ base::BindRepeating(&HostProcess::OnPolicyError, base::Unretained(this)));
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (IsRunningWayland()) {
+ WaylandManager::Get()->Init(context_->ui_task_runner());
+ }
+ #endif // BUILDFLAG(IS_LINUX)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// If an audio pipe is specific on the command-line then initialize
// AudioCapturerLinux to capture from it.
- base::FilePath audio_pipe_name = base::CommandLine::ForCurrentProcess()->
-@@ -893,7 +893,7 @@ void HostProcess::ShutdownOnUiThread() {
+ base::FilePath audio_pipe_name =
+@@ -1048,7 +1048,7 @@ void HostProcess::ShutdownOnUiThread() {
// It is now safe for the HostProcess to be deleted.
self_ = nullptr;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// Cause the global AudioPipeReader to be freed, otherwise the audio
// thread will remain in-use and prevent the process from exiting.
// TODO(wez): DesktopEnvironmentFactory should own the pipe reader.
-@@ -1486,7 +1486,7 @@ void HostProcess::StartHost() {
- host_->AddExtension(std::make_unique<TestEchoExtension>());
+@@ -1056,7 +1056,7 @@ void HostProcess::ShutdownOnUiThread() {
+ AudioCapturerLinux::InitializePipeReader(nullptr, base::FilePath());
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(REMOTING_USE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && defined(REMOTING_USE_X11)
+ context_->input_task_runner()->PostTask(
+ FROM_HERE,
+ base::BindOnce([]() { delete ui::X11EventSource::GetInstance(); }));
+@@ -1414,7 +1414,7 @@ bool HostProcess::OnUsernamePolicyUpdate
+ // Returns false: never restart the host after this policy update.
+ DCHECK(context_->network_task_runner()->BelongsToCurrentThread());
- // TODO(simonmorris): Get the maximum session duration from a policy.
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- host_->SetMaximumSessionDuration(base::TimeDelta::FromHours(20));
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ std::optional<bool> host_username_match_required =
+ policies.FindBool(policy::key::kRemoteAccessHostMatchUsername);
+ if (!host_username_match_required.has_value()) {
+@@ -1878,7 +1878,7 @@ void HostProcess::StartHost() {
+ corp_host_status_logger_->StartObserving(*session_manager);
+ }
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ desktop_environment_options_.set_enable_remote_webauthn(is_googler_);
#endif
-@@ -1656,7 +1656,7 @@ void HostProcess::OnCrash(const std::str
- int HostProcessMain() {
+@@ -1911,7 +1911,7 @@ void HostProcess::StartHost() {
+ host_status_logger_ = std::make_unique<HostStatusLogger>(
+ host_->status_monitor(), log_to_server_.get());
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess();
+ if (cmd_line->HasSwitch(kEnableUtempter)) {
+ host_utmp_logger_ =
+@@ -1943,7 +1943,7 @@ void HostProcess::StartHost() {
+
+ host_->Start(host_owner_);
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // For Windows, ChromotingHostServices connections are handled by the daemon
+ // process, then the message pipe is forwarded to the network process.
+ host_->StartChromotingHostServices();
+@@ -2077,7 +2077,7 @@ int HostProcessMain() {
HOST_LOG << "Starting host process: version " << STRINGIZE(VERSION);
+ const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess();
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #if defined(REMOTING_USE_X11)
+ // Initialize Xlib for multi-threaded use, allowing non-Chromium code to
+ // use X11 safely (such as the WebRTC capturer, GTK ...)
+@@ -2126,7 +2126,7 @@ int HostProcessMain() {
+ std::unique_ptr<net::NetworkChangeNotifier> network_change_notifier(
+ net::NetworkChangeNotifier::CreateIfNeeded());
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
- kReportOfflineReasonSwitchName)) {
- // Required in order for us to run multiple X11 threads.
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(REMOTING_USE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && defined(REMOTING_USE_X11)
+ // Create an X11EventSource on all UI threads, so the global X11 connection
+ // (x11::Connection::Get()) can dispatch X events.
+ auto event_source =
diff --git a/chromium/patches/patch-remoting_host_setup_start__host__main.cc b/chromium/patches/patch-remoting_host_setup_start__host__main.cc
new file mode 100644
index 0000000000..db0c0d4afc
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_setup_start__host__main.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/setup/start_host_main.cc.orig 2024-07-24 02:44:43.445441000 +0000
++++ remoting/host/setup/start_host_main.cc
+@@ -37,7 +37,7 @@
+ #include <unistd.h>
+ #endif // BUILDFLAG(IS_POSIX)
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "remoting/host/setup/daemon_controller_delegate_linux.h"
+ #include "remoting/host/setup/start_host_as_root.h"
+ #endif // BUILDFLAG(IS_LINUX)
+@@ -339,7 +339,7 @@ bool InitializeCloudMachineParams(HostSt
+ } // namespace
+
+ int StartHostMain(int argc, char** argv) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Minimize the amount of code that runs as root on Posix systems.
+ if (getuid() == 0) {
+ return remoting::StartHostAsRoot(argc, argv);
+@@ -364,7 +364,7 @@ int StartHostMain(int argc, char** argv)
+
+ mojo::core::Init();
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (command_line->HasSwitch("no-start")) {
+ // On Linux, registering the host with systemd and starting it is the only
+ // reason start_host requires root. The --no-start options skips that final
diff --git a/chromium/patches/patch-remoting_host_switches.cc b/chromium/patches/patch-remoting_host_switches.cc
deleted file mode 100644
index 4ecd1e2d8c..0000000000
--- a/chromium/patches/patch-remoting_host_switches.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- remoting/host/switches.cc.orig 2020-07-15 18:56:01.000000000 +0000
-+++ remoting/host/switches.cc
-@@ -21,7 +21,7 @@ const char kProcessTypeHost[] = "host";
- const char kProcessTypeRdpDesktopSession[] = "rdp_desktop_session";
- const char kProcessTypeEvaluateCapability[] = "evaluate_capability";
- const char kProcessTypeFileChooser[] = "file_chooser";
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- const char kProcessTypeXSessionChooser[] = "xsession_chooser";
- #endif // defined(OS_LINUX)
-
diff --git a/chromium/patches/patch-remoting_host_switches.h b/chromium/patches/patch-remoting_host_switches.h
deleted file mode 100644
index ec6d42394b..0000000000
--- a/chromium/patches/patch-remoting_host_switches.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- remoting/host/switches.h.orig 2020-07-15 18:56:01.000000000 +0000
-+++ remoting/host/switches.h
-@@ -34,7 +34,7 @@ extern const char kProcessTypeHost[];
- extern const char kProcessTypeRdpDesktopSession[];
- extern const char kProcessTypeEvaluateCapability[];
- extern const char kProcessTypeFileChooser[];
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- extern const char kProcessTypeXSessionChooser[];
- #endif // defined(OS_LINUX)
-
diff --git a/chromium/patches/patch-remoting_host_webauthn_remote__webauthn__caller__security__utils.cc b/chromium/patches/patch-remoting_host_webauthn_remote__webauthn__caller__security__utils.cc
new file mode 100644
index 0000000000..a6812d34e2
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_webauthn_remote__webauthn__caller__security__utils.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/webauthn/remote_webauthn_caller_security_utils.cc.orig 2024-07-24 02:44:43.445441000 +0000
++++ remoting/host/webauthn/remote_webauthn_caller_security_utils.cc
+@@ -10,7 +10,7 @@
+ #include "base/strings/utf_string_conversions.h"
+ #include "build/build_config.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "base/containers/fixed_flat_set.h"
+ #include "base/files/file_path.h"
+ #include "base/process/process_handle.h"
+@@ -38,7 +38,7 @@ namespace {
+
+ // No static variables needed for debug builds.
+
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+
+ constexpr auto kAllowedCallerPrograms =
+ base::MakeFixedFlatSet<base::FilePath::StringPieceType>({
+@@ -82,7 +82,7 @@ bool IsLaunchedByTrustedProcess() {
+ #if !defined(NDEBUG)
+ // Just return true on debug builds for the convenience of development.
+ return true;
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ base::ProcessId parent_pid =
+ base::GetParentProcessId(base::GetCurrentProcessHandle());
+ // Note that on Linux the process image may no longer exist in its original
diff --git a/chromium/patches/patch-remoting_host_webauthn_remote__webauthn__extension__notifier.cc b/chromium/patches/patch-remoting_host_webauthn_remote__webauthn__extension__notifier.cc
new file mode 100644
index 0000000000..25d4f086f9
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_webauthn_remote__webauthn__extension__notifier.cc
@@ -0,0 +1,34 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/webauthn/remote_webauthn_extension_notifier.cc.orig 2024-07-24 02:44:43.449441200 +0000
++++ remoting/host/webauthn/remote_webauthn_extension_notifier.cc
+@@ -24,7 +24,7 @@
+ #include "base/task/thread_pool.h"
+ #include "build/build_config.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "base/environment.h"
+ #include "base/nix/xdg_util.h"
+ #include "base/strings/string_util.h"
+@@ -69,14 +69,14 @@ static constexpr char kExtensionWakeupFi
+ // Caller should check if the directory exists before writing files to it. A
+ // directory only exists if the corresponding Chrome version is installed.
+ std::vector<base::FilePath> GetRemoteStateChangeDirPaths() {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ constexpr base::FilePath::CharType kStateChangeDirName[] =
+ FILE_PATH_LITERAL("WebAuthenticationProxyRemoteSessionStateChange");
+ #endif
+
+ std::vector<base::FilePath> dirs;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // See: chrome/common/chrome_paths_linux.cc
+ auto env = base::Environment::Create();
+ base::FilePath base_path;
diff --git a/chromium/patches/patch-remoting_protocol_BUILD.gn b/chromium/patches/patch-remoting_protocol_BUILD.gn
deleted file mode 100644
index ac16a3997b..0000000000
--- a/chromium/patches/patch-remoting_protocol_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- remoting/protocol/BUILD.gn.orig 2020-07-15 18:56:01.000000000 +0000
-+++ remoting/protocol/BUILD.gn
-@@ -238,7 +238,7 @@ static_library("protocol") {
- defines = []
-
- # Must match condition in //remoting/codec/BUILD.gn
-- if (is_win || is_linux) {
-+ if (is_win || is_linux || is_bsd) {
- defines += [ "USE_H264_ENCODER" ]
- deps += [
- "//media",
diff --git a/chromium/patches/patch-remoting_protocol_webrtc__video__stream.cc b/chromium/patches/patch-remoting_protocol_webrtc__video__stream.cc
new file mode 100644
index 0000000000..554718c5c8
--- /dev/null
+++ b/chromium/patches/patch-remoting_protocol_webrtc__video__stream.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- remoting/protocol/webrtc_video_stream.cc.orig 2024-07-24 02:44:43.501446200 +0000
++++ remoting/protocol/webrtc_video_stream.cc
+@@ -267,7 +267,7 @@ WebrtcVideoStream::WebrtcVideoStream(con
+ : session_options_(session_options) {
+ // TODO(joedow): Dig into the threading model on other platforms to see if they
+ // can also be updated to run on a dedicated thread.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ core_task_runner_ = base::ThreadPool::CreateSingleThreadTaskRunner(
+ {base::TaskPriority::HIGHEST},
+ base::SingleThreadTaskRunnerThreadMode::DEDICATED);
diff --git a/chromium/patches/patch-remoting_remoting__options.gni b/chromium/patches/patch-remoting_remoting__options.gni
deleted file mode 100644
index 64c00aaccf..0000000000
--- a/chromium/patches/patch-remoting_remoting__options.gni
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
---- remoting/remoting_options.gni.orig 2020-07-15 18:56:01.000000000 +0000
-+++ remoting/remoting_options.gni
-@@ -6,8 +6,8 @@ import("//build/config/chrome_build.gni"
- import("//build/config/ui.gni")
-
- enable_remoting_host =
-- is_win || (is_linux && (is_chromeos || use_x11)) || is_mac
--enable_me2me_host = is_win || (is_linux && !is_chromeos && use_x11) || is_mac
-+ is_win || ((is_linux || is_bsd) && (is_chromeos || use_x11)) || is_mac
-+enable_me2me_host = is_win || ((is_linux || is_bsd) && !is_chromeos && use_x11) || is_mac
-
- # Enable the multi-process host on Windows by default.
- if (is_win) {
diff --git a/chromium/patches/patch-remoting_resources_remoting__strings.grd b/chromium/patches/patch-remoting_resources_remoting__strings.grd
deleted file mode 100644
index 1ce4771441..0000000000
--- a/chromium/patches/patch-remoting_resources_remoting__strings.grd
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- remoting/resources/remoting_strings.grd.orig 2020-07-15 18:56:01.000000000 +0000
-+++ remoting/resources/remoting_strings.grd
-@@ -880,7 +880,7 @@ If '<ph name="SERVICE_SCRIPT_NAME">$3<ex
- Open Screen Recording Preferences
- </message>
- </if>
-- <if expr="is_linux">
-+ <if expr="is_posix">
- <message name="IDS_SESSION_DIALOG_MESSAGE" desc="The message to show at the top of the session-selection dialog.">
- Select a session to launch within your Chrome Remote Desktop environment. (Note that some session types may not support running within Chrome Remote Desktop and on the local console simultaneously.)
- </message>
diff --git a/chromium/patches/patch-sandbox_BUILD.gn b/chromium/patches/patch-sandbox_BUILD.gn
new file mode 100644
index 0000000000..412217187d
--- /dev/null
+++ b/chromium/patches/patch-sandbox_BUILD.gn
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/BUILD.gn.orig 2024-07-24 02:44:43.537449800 +0000
++++ sandbox/BUILD.gn
+@@ -49,7 +49,7 @@ group("sandbox") {
+ "//sandbox/mac:system_services",
+ "//sandbox/mac/mojom",
+ ]
+- } else if (is_linux || is_chromeos || is_android) {
++ } else if ((is_linux && !is_bsd) || is_chromeos || is_android) {
+ public_deps = [ "//sandbox/linux:sandbox" ]
+ }
+ }
diff --git a/chromium/patches/patch-sandbox_features.gni b/chromium/patches/patch-sandbox_features.gni
new file mode 100644
index 0000000000..254f1f95a8
--- /dev/null
+++ b/chromium/patches/patch-sandbox_features.gni
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/features.gni.orig 2024-07-24 02:44:43.537449800 +0000
++++ sandbox/features.gni
+@@ -6,7 +6,7 @@
+ # currently.
+ # Do not disable seccomp_bpf anywhere without talking to
+ # security%chromium.org@localhost!
+-use_seccomp_bpf = (is_linux || is_chromeos || is_android) &&
++use_seccomp_bpf = !is_bsd && (is_linux || is_chromeos || is_android) &&
+ (current_cpu == "x86" || current_cpu == "x64" ||
+ current_cpu == "arm" || current_cpu == "arm64" ||
+ current_cpu == "mipsel" || current_cpu == "mips64el")
diff --git a/chromium/patches/patch-sandbox_linux_BUILD.gn b/chromium/patches/patch-sandbox_linux_BUILD.gn
index 47b5ad1c32..4d411799c6 100644
--- a/chromium/patches/patch-sandbox_linux_BUILD.gn
+++ b/chromium/patches/patch-sandbox_linux_BUILD.gn
@@ -1,42 +1,41 @@
$NetBSD$
---- sandbox/linux/BUILD.gn.orig 2020-06-25 09:31:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/linux/BUILD.gn.orig 2024-07-24 02:44:43.537449800 +0000
+++ sandbox/linux/BUILD.gn
-@@ -265,6 +265,8 @@ component("seccomp_bpf") {
- "seccomp-bpf-helpers/baseline_policy.h",
- "seccomp-bpf-helpers/syscall_sets.cc",
- "seccomp-bpf-helpers/syscall_sets.h",
-+ "services/syscall_wrappers.cc",
-+ "services/syscall_wrappers.h",
- ]
- configs += [ ":nacl_nonsfi_warnings" ]
- }
-@@ -371,7 +373,7 @@ component("sandbox_services") {
- public_deps += [ ":sandbox_services_headers" ]
- }
+@@ -12,11 +12,11 @@ if (is_android) {
+ }
-- if (is_nacl_nonsfi) {
-+ if (is_nacl_nonsfi || is_bsd) {
- cflags = [ "-fgnu-inline-asm" ]
+ declare_args() {
+- compile_suid_client = is_linux || is_chromeos
++ compile_suid_client = (is_linux || is_chromeos) && !is_bsd
- sources -= [
-@@ -379,6 +381,8 @@ component("sandbox_services") {
- "services/init_process_reaper.h",
- "services/scoped_process.cc",
- "services/scoped_process.h",
+- compile_credentials = is_linux || is_chromeos
++ compile_credentials = (is_linux || is_chromeos) && !is_bsd
+
+- compile_syscall_broker = is_linux || is_chromeos
++ compile_syscall_broker = (is_linux || is_chromeos) && !is_bsd
+
+ # On Android, use plain GTest.
+ use_base_test_suite = is_linux || is_chromeos
+@@ -379,6 +379,17 @@ component("sandbox_services") {
+ "services/libc_interceptor.h",
+ ]
+ }
++
++ if (is_bsd) {
++ sources -= [
++ "services/scoped_process.cc",
++ "services/scoped_process.h",
+ "services/syscall_wrappers.cc",
+ "services/syscall_wrappers.h",
- "services/yama.cc",
- "services/yama.h",
- "syscall_broker/broker_channel.cc",
-@@ -398,6 +402,10 @@ component("sandbox_services") {
- "syscall_broker/broker_simple_message.cc",
- "syscall_broker/broker_simple_message.h",
- ]
-+ sources += [
-+ "services/libc_interceptor.cc",
-+ "services/libc_interceptor.h",
-+ ]
- } else if (!is_android) {
- sources += [
- "services/libc_interceptor.cc",
++ "services/yama.cc",
++ "services/yama.h",
++ ]
++ }
+ }
+
+ source_set("sandbox_services_headers") {
diff --git a/chromium/patches/patch-sandbox_linux_services_init__process__reaper.cc b/chromium/patches/patch-sandbox_linux_services_init__process__reaper.cc
index 2ace23b34f..41193cfb58 100644
--- a/chromium/patches/patch-sandbox_linux_services_init__process__reaper.cc
+++ b/chromium/patches/patch-sandbox_linux_services_init__process__reaper.cc
@@ -1,15 +1,19 @@
$NetBSD$
---- sandbox/linux/services/init_process_reaper.cc.orig 2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/linux/services/init_process_reaper.cc.orig 2024-07-24 02:44:43.549450900 +0000
+++ sandbox/linux/services/init_process_reaper.cc
-@@ -1,6 +1,7 @@
- // Copyright 2013 The Chromium Authors. All rights reserved.
+@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-+#if defined(OS_LINUX)
++#if 0
#include "sandbox/linux/services/init_process_reaper.h"
+ #include <signal.h>
@@ -100,3 +101,4 @@ bool CreateInitProcessReaper(base::OnceC
}
diff --git a/chromium/patches/patch-sandbox_linux_services_libc__interceptor.cc b/chromium/patches/patch-sandbox_linux_services_libc__interceptor.cc
index 9b965b0b88..042e4b2e14 100644
--- a/chromium/patches/patch-sandbox_linux_services_libc__interceptor.cc
+++ b/chromium/patches/patch-sandbox_linux_services_libc__interceptor.cc
@@ -1,18 +1,22 @@
$NetBSD$
---- sandbox/linux/services/libc_interceptor.cc.orig 2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/linux/services/libc_interceptor.cc.orig 2024-07-24 02:44:43.549450900 +0000
+++ sandbox/linux/services/libc_interceptor.cc
-@@ -11,7 +11,9 @@
+@@ -12,7 +12,9 @@
#include <stddef.h>
#include <stdint.h>
#include <string.h>
-+#if !defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
#include <sys/prctl.h>
+#endif
#include <sys/socket.h>
#include <sys/types.h>
#include <time.h>
-@@ -93,7 +95,7 @@ bool ReadTimeStruct(base::PickleIterator
+@@ -168,7 +170,7 @@ bool ReadTimeStruct(base::PickleIterator
} else {
base::AutoLock lock(g_timezones_lock.Get());
auto ret_pair = g_timezones.Get().insert(timezone);
diff --git a/chromium/patches/patch-sandbox_policy_BUILD.gn b/chromium/patches/patch-sandbox_policy_BUILD.gn
new file mode 100644
index 0000000000..f0e89dbfd1
--- /dev/null
+++ b/chromium/patches/patch-sandbox_policy_BUILD.gn
@@ -0,0 +1,56 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/policy/BUILD.gn.orig 2024-07-24 02:44:43.557451700 +0000
++++ sandbox/policy/BUILD.gn
+@@ -49,7 +49,7 @@ component("policy") {
+ "//third_party/jni_zero",
+ ]
+ }
+- if (is_linux || is_chromeos) {
++ if ((is_linux || is_chromeos) && !is_bsd) {
+ sources += [
+ "linux/bpf_audio_policy_linux.cc",
+ "linux/bpf_audio_policy_linux.h",
+@@ -122,6 +122,38 @@ component("policy") {
+ "//sandbox/linux:suid_sandbox_client",
+ ]
+ }
++ if (is_openbsd) {
++ sources += [
++ "openbsd/sandbox_openbsd.cc",
++ "openbsd/sandbox_openbsd.h",
++ ]
++ deps += [
++ "//sandbox:sandbox_buildflags",
++ "//ui/gfx/x",
++ ]
++ libs = [ "util" ]
++ }
++ if (is_netbsd) {
++ sources += [
++ "netbsd/sandbox_netbsd.cc",
++ "netbsd/sandbox_netbsd.h",
++ ]
++ deps += [
++ "//sandbox:sandbox_buildflags",
++ "//ui/gfx/x",
++ ]
++ libs = [ "util" ]
++ }
++ if (is_freebsd) {
++ sources += [
++ "freebsd/sandbox_freebsd.cc",
++ "freebsd/sandbox_freebsd.h",
++ ]
++ deps += [
++ "//sandbox:sandbox_buildflags",
++ "//ui/gfx/x",
++ ]
++ }
+ if (is_chromeos_ash) {
+ sources += [
+ "linux/bpf_ime_policy_linux.cc",
diff --git a/chromium/patches/patch-sandbox_policy_features.cc b/chromium/patches/patch-sandbox_policy_features.cc
new file mode 100644
index 0000000000..03e28e7e86
--- /dev/null
+++ b/chromium/patches/patch-sandbox_policy_features.cc
@@ -0,0 +1,29 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/policy/features.cc.orig 2024-07-24 02:44:43.557451700 +0000
++++ sandbox/policy/features.cc
+@@ -20,7 +20,11 @@ namespace sandbox::policy::features {
+ // (Only causes an effect when feature kNetworkServiceInProcess is disabled.)
+ BASE_FEATURE(kNetworkServiceSandbox,
+ "NetworkServiceSandbox",
++#if BUILDFLAG(IS_BSD)
++ base::FEATURE_ENABLED_BY_DEFAULT);
++#else
+ base::FEATURE_DISABLED_BY_DEFAULT);
++#endif
+
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ // Enables a fine-grained seccomp-BPF syscall filter for the network service.
+@@ -131,7 +135,7 @@ BASE_FEATURE(kForceSpectreVariant2Mitiga
+ base::FEATURE_DISABLED_BY_DEFAULT);
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Enabling the kNetworkServiceSandbox feature automatically enables Spectre
+ // variant 2 mitigations in the network service. This can lead to performance
+ // regressions, so enabling this feature will turn off the Spectre Variant 2
diff --git a/chromium/patches/patch-sandbox_policy_features.h b/chromium/patches/patch-sandbox_policy_features.h
new file mode 100644
index 0000000000..acb7a698f8
--- /dev/null
+++ b/chromium/patches/patch-sandbox_policy_features.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/policy/features.h.orig 2024-07-24 02:44:43.557451700 +0000
++++ sandbox/policy/features.h
+@@ -44,7 +44,7 @@ SANDBOX_POLICY_EXPORT BASE_DECLARE_FEATU
+ SANDBOX_POLICY_EXPORT BASE_DECLARE_FEATURE(kForceSpectreVariant2Mitigation);
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ SANDBOX_POLICY_EXPORT BASE_DECLARE_FEATURE(
+ kForceDisableSpectreVariant2MitigationInNetworkService);
+
diff --git a/chromium/patches/patch-sandbox_policy_freebsd_sandbox__freebsd.cc b/chromium/patches/patch-sandbox_policy_freebsd_sandbox__freebsd.cc
new file mode 100644
index 0000000000..539665b25c
--- /dev/null
+++ b/chromium/patches/patch-sandbox_policy_freebsd_sandbox__freebsd.cc
@@ -0,0 +1,254 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/policy/freebsd/sandbox_freebsd.cc.orig 2024-08-01 14:09:00.259806443 +0000
++++ sandbox/policy/freebsd/sandbox_freebsd.cc
+@@ -0,0 +1,245 @@
++// Copyright (c) 2012 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "sandbox/policy/freebsd/sandbox_freebsd.h"
++
++#include <dirent.h>
++#include <fcntl.h>
++#include <stdint.h>
++#include <sys/resource.h>
++#include <sys/stat.h>
++#include <sys/time.h>
++#include <sys/types.h>
++#include <unistd.h>
++
++#include <limits>
++#include <memory>
++#include <string>
++#include <vector>
++
++#include "base/command_line.h"
++#include "base/debug/stack_trace.h"
++#include "base/feature_list.h"
++#include "base/files/file_path.h"
++#include "base/files/file_util.h"
++#include "base/files/scoped_file.h"
++#include "base/logging.h"
++#include "base/memory/singleton.h"
++#include "base/path_service.h"
++#include "base/posix/eintr_wrapper.h"
++#include "base/strings/string_number_conversions.h"
++#include "base/system/sys_info.h"
++#include "base/threading/thread.h"
++#include "base/time/time.h"
++#include "build/build_config.h"
++#include "crypto/crypto_buildflags.h"
++#include "ppapi/buildflags/buildflags.h"
++#include "sandbox/constants.h"
++#include "sandbox/linux/services/credentials.h"
++#include "sandbox/linux/services/namespace_sandbox.h"
++#include "sandbox/linux/services/proc_util.h"
++#include "sandbox/linux/services/resource_limits.h"
++#include "sandbox/linux/services/thread_helpers.h"
++#include "sandbox/linux/syscall_broker/broker_command.h"
++#include "sandbox/linux/syscall_broker/broker_process.h"
++#include "sandbox/policy/sandbox.h"
++#include "sandbox/policy/sandbox_type.h"
++#include "sandbox/policy/mojom/sandbox.mojom.h"
++#include "sandbox/policy/switches.h"
++#include "sandbox/sandbox_buildflags.h"
++
++#if BUILDFLAG(USING_SANITIZER)
++#include <sanitizer/common_interface_defs.h>
++#endif
++
++#if BUILDFLAG(USE_NSS_CERTS)
++#include "crypto/nss_util.h"
++#endif
++
++#include "third_party/boringssl/src/include/openssl/crypto.h"
++
++#include "ui/gfx/font_util.h"
++
++namespace sandbox {
++namespace policy {
++
++SandboxLinux::SandboxLinux()
++ : sandbox_status_flags_(kInvalid),
++ pre_initialized_(false),
++ initialize_sandbox_ran_(false),
++ broker_process_(nullptr) {
++}
++
++SandboxLinux::~SandboxLinux() {
++ if (pre_initialized_) {
++ CHECK(initialize_sandbox_ran_);
++ }
++}
++
++SandboxLinux* SandboxLinux::GetInstance() {
++ SandboxLinux* instance = base::Singleton<SandboxLinux>::get();
++ CHECK(instance);
++ return instance;
++}
++
++void SandboxLinux::StopThread(base::Thread* thread) {
++ DCHECK(thread);
++ thread->Stop();
++}
++
++void SandboxLinux::PreinitializeSandbox(sandbox::mojom::Sandbox sandbox_type) {
++ CHECK(!pre_initialized_);
++#if BUILDFLAG(USING_SANITIZER)
++ // Sanitizers need to open some resources before the sandbox is enabled.
++ // This should not fork, not launch threads, not open a directory.
++ __sanitizer_sandbox_on_notify(sanitizer_args());
++ sanitizer_args_.reset();
++#endif
++ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
++ const std::string process_type =
++ command_line->GetSwitchValueASCII(switches::kProcessType);
++
++ base::SysInfo::AmountOfPhysicalMemory();
++ base::SysInfo::NumberOfProcessors();
++ base::SysInfo::CPUModelName();
++
++ switch (sandbox_type) {
++ case sandbox::mojom::Sandbox::kNoSandbox:
++ {
++#if BUILDFLAG(USE_NSS_CERTS)
++ // The main process has to initialize the ~/.pki dir which won't work
++ // after unveil(2).
++ crypto::EnsureNSSInit();
++#endif
++ CRYPTO_pre_sandbox_init();
++
++ base::FilePath cache_directory, local_directory;
++
++ base::PathService::Get(base::DIR_CACHE, &cache_directory);
++ base::PathService::Get(base::DIR_HOME, &local_directory);
++
++ cache_directory = cache_directory.AppendASCII("chromium");
++ local_directory = local_directory.AppendASCII(".local").AppendASCII("share").AppendASCII("applications");
++
++ if (!base::CreateDirectory(cache_directory)) {
++ LOG(ERROR) << "Failed to create " << cache_directory.value() << " directory.";
++ }
++
++ if (!base::CreateDirectory(local_directory)) {
++ LOG(ERROR) << "Failed to create " << local_directory.value() << " directory.";
++ }
++
++ break;
++ }
++ case sandbox::mojom::Sandbox::kRenderer:
++ gfx::InitializeFonts();
++ break;
++ default:
++ break;
++ }
++
++ pre_initialized_ = true;
++}
++
++bool SandboxLinux::InitializeSandbox(sandbox::mojom::Sandbox sandbox_type,
++ SandboxLinux::PreSandboxHook hook,
++ const Options& options) {
++ DCHECK(!initialize_sandbox_ran_);
++ initialize_sandbox_ran_ = true;
++
++ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
++ const std::string process_type =
++ command_line->GetSwitchValueASCII(switches::kProcessType);
++
++ if (command_line->HasSwitch(switches::kNoSandbox))
++ return true;
++
++ VLOG(1) << "SandboxLinux::InitializeSandbox: process_type="
++ << process_type << " sandbox_type=" << GetSandboxTypeInEnglish(sandbox_type);
++
++ // Only one thread is running, pre-initialize if not already done.
++ if (!pre_initialized_)
++ PreinitializeSandbox(sandbox_type);
++
++ // Attempt to limit the future size of the address space of the process.
++ int error = 0;
++ const bool limited_as = LimitAddressSpace(&error);
++ if (error) {
++ // Restore errno. Internally to |LimitAddressSpace|, the errno due to
++ // setrlimit may be lost.
++ errno = error;
++ PCHECK(limited_as);
++ }
++
++ if (hook)
++ CHECK(std::move(hook).Run(options));
++
++ return true;
++}
++
++bool SandboxLinux::LimitAddressSpace(int* error) {
++#if !defined(ADDRESS_SANITIZER) && !defined(MEMORY_SANITIZER) && \
++ !defined(THREAD_SANITIZER) && !defined(LEAK_SANITIZER)
++ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
++ if (SandboxTypeFromCommandLine(*command_line) == sandbox::mojom::Sandbox::kNoSandbox) {
++ return false;
++ }
++
++ // Unfortunately, it does not appear possible to set RLIMIT_AS such that it
++ // will both (a) be high enough to support V8's and WebAssembly's address
++ // space requirements while also (b) being low enough to mitigate exploits
++ // using integer overflows that require large allocations, heap spray, or
++ // other memory-hungry attack modes.
++
++ *error = sandbox::ResourceLimits::Lower(
++ RLIMIT_DATA, static_cast<rlim_t>(sandbox::kDataSizeLimit));
++
++ // Cache the resource limit before turning on the sandbox.
++ base::SysInfo::AmountOfVirtualMemory();
++ base::SysInfo::MaxSharedMemorySize();
++
++ return *error == 0;
++#else
++ base::SysInfo::AmountOfVirtualMemory();
++ return false;
++#endif // !defined(ADDRESS_SANITIZER) && !defined(MEMORY_SANITIZER) &&
++ // !defined(THREAD_SANITIZER) && !defined(LEAK_SANITIZER)
++}
++
++// static
++std::string SandboxLinux::GetSandboxTypeInEnglish(sandbox::mojom::Sandbox sandbox_type) {
++ switch (sandbox_type) {
++ case sandbox::mojom::Sandbox::kNoSandbox:
++ return "Unsandboxed";
++ case sandbox::mojom::Sandbox::kRenderer:
++ return "Renderer";
++ case sandbox::mojom::Sandbox::kUtility:
++ return "Utility";
++ case sandbox::mojom::Sandbox::kGpu:
++ return "GPU";
++#if BUILDFLAG(ENABLE_PPAPI)
++ case sandbox::mojom::Sandbox::kPpapi:
++ return "PPAPI";
++#endif
++ case sandbox::mojom::Sandbox::kNetwork:
++ return "Network";
++ case sandbox::mojom::Sandbox::kCdm:
++ return "CDM";
++ case sandbox::mojom::Sandbox::kPrintCompositor:
++ return "Print Compositor";
++ case sandbox::mojom::Sandbox::kAudio:
++ return "Audio";
++ case sandbox::mojom::Sandbox::kSpeechRecognition:
++ return "Speech Recognition";
++ case sandbox::mojom::Sandbox::kService:
++ return "Service";
++ case sandbox::mojom::Sandbox::kVideoCapture:
++ return "Video Capture";
++ default:
++ return "Unknown";
++ }
++}
++
++} // namespace policy
++} // namespace sandbox
diff --git a/chromium/patches/patch-sandbox_policy_freebsd_sandbox__freebsd.h b/chromium/patches/patch-sandbox_policy_freebsd_sandbox__freebsd.h
new file mode 100644
index 0000000000..690feeb898
--- /dev/null
+++ b/chromium/patches/patch-sandbox_policy_freebsd_sandbox__freebsd.h
@@ -0,0 +1,287 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/policy/freebsd/sandbox_freebsd.h.orig 2024-08-01 14:09:00.265322793 +0000
++++ sandbox/policy/freebsd/sandbox_freebsd.h
+@@ -0,0 +1,278 @@
++// Copyright (c) 2012 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++#ifndef SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_
++#define SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_
++
++#include <memory>
++#include <string>
++#include <vector>
++
++#include "base/logging.h"
++#include "base/posix/global_descriptors.h"
++#include "sandbox/policy/export.h"
++#include "sandbox/policy/linux/sandbox_seccomp_bpf_linux.h"
++#include "sandbox/policy/mojom/sandbox.mojom.h"
++#include "base/sanitizer_buildflags.h"
++
++#if BUILDFLAG(USING_SANITIZER)
++#include <sanitizer/common_interface_defs.h>
++#endif
++
++namespace base {
++template <typename T>
++struct DefaultSingletonTraits;
++class Thread;
++} // namespace base
++
++namespace sandbox {
++namespace syscall_broker {
++class BrokerProcess;
++} // namespace syscall_broker
++} // namespace sandbox
++
++namespace sandbox {
++namespace policy {
++
++// A singleton class to represent and change our sandboxing state for the
++// three main Linux sandboxes.
++// The sandboxing model allows using two layers of sandboxing. The first layer
++// can be implemented either with unprivileged namespaces or with the setuid
++// sandbox. This class provides a way to engage the namespace sandbox, but does
++// not deal with the legacy setuid sandbox directly.
++// The second layer is mainly based on seccomp-bpf and is engaged with
++// InitializeSandbox(). InitializeSandbox() is also responsible for "sealing"
++// the first layer of sandboxing. That is, InitializeSandbox must always be
++// called to have any meaningful sandboxing at all.
++class SANDBOX_POLICY_EXPORT SandboxLinux {
++ public:
++ // This is a list of sandbox IPC methods which the renderer may send to the
++ // sandbox host. See
++ // https://chromium.googlesource.com/chromium/src/+/master/docs/linux_sandbox_ipc.md
++ // This isn't the full list, values < 32 are reserved for methods called from
++ // Skia, and values < 64 are reserved for libc_interceptor.cc.
++ enum LinuxSandboxIPCMethods {
++ DEPRECATED_METHOD_GET_FALLBACK_FONT_FOR_CHAR = 64,
++ DEPRECATED_METHOD_GET_CHILD_WITH_INODE,
++ DEPRECATED_METHOD_GET_STYLE_FOR_STRIKE,
++ METHOD_MAKE_SHARED_MEMORY_SEGMENT,
++ DEPRECATED_METHOD_MATCH_WITH_FALLBACK,
++ };
++
++ // These form a bitmask which describes the conditions of the Linux sandbox.
++ // Note: this doesn't strictly give you the current status, it states
++ // what will be enabled when the relevant processes are initialized.
++ enum Status {
++ // SUID sandbox active.
++ kSUID = 1 << 0,
++
++ // Sandbox is using a new PID namespace.
++ kPIDNS = 1 << 1,
++
++ // Sandbox is using a new network namespace.
++ kNetNS = 1 << 2,
++
++ // seccomp-bpf sandbox active.
++ kSeccompBPF = 1 << 3,
++
++ // The Yama LSM module is present and enforcing.
++ kYama = 1 << 4,
++
++ // seccomp-bpf sandbox is active and the kernel supports TSYNC.
++ kSeccompTSYNC = 1 << 5,
++
++ // User namespace sandbox active.
++ kUserNS = 1 << 6,
++
++ // A flag that denotes an invalid sandbox status.
++ kInvalid = 1 << 31,
++ };
++
++ // SandboxLinux Options are a superset of SandboxSecompBPF Options.
++ struct Options : public SandboxSeccompBPF::Options {
++ // When running with a zygote, the namespace sandbox will have already
++ // been engaged prior to initializing SandboxLinux itself, and need not
++ // be done so again. Set to true to indicate that there isn't a zygote
++ // for this process and the step is to be performed here explicitly.
++ bool engage_namespace_sandbox = false;
++
++ // Allow starting the sandbox with multiple threads already running. This
++ // will enable TSYNC for seccomp-BPF, which syncs the seccomp-BPF policy
++ // across all running threads.
++ bool allow_threads_during_sandbox_init = false;
++
++ // Enables the CHECK for open directories. The open directory check is only
++ // useful for the chroot jail (from the semantic layer of the sandbox), and
++ // can safely be disabled if we are only enabling the seccomp-BPF layer.
++ bool check_for_open_directories = true;
++ };
++
++ // Callers can provide this hook to run code right before the policy
++ // is passed to the BPF compiler and the sandbox is engaged. If
++ // pre_sandbox_hook() returns true, the sandbox will be engaged
++ // afterwards, otherwise the process is terminated.
++ using PreSandboxHook = base::OnceCallback<bool(Options)>;
++
++ // Get our singleton instance.
++ static SandboxLinux* GetInstance();
++
++ SandboxLinux(const SandboxLinux&) = delete;
++ SandboxLinux& operator=(const SandboxLinux&) = delete;
++
++ bool SetPledge(const char *pstring, const char *ppath);
++ bool SetUnveil(const std::string process_type, sandbox::mojom::Sandbox sandbox_type);
++
++ // Do some initialization that can only be done before any of the sandboxes
++ // are enabled. If using the setuid sandbox, this should be called manually
++ // before the setuid sandbox is engaged.
++ // Security: When this runs, it is imperative that either InitializeSandbox()
++ // runs as well or that all file descriptors returned in
++ // GetFileDescriptorsToClose() get closed.
++ // Otherwise file descriptors that bypass the security of the setuid sandbox
++ // would be kept open. One must be particularly careful if a process performs
++ // a fork().
++ void PreinitializeSandbox(sandbox::mojom::Sandbox sandbox_type);
++
++ // Check that the current process is the init process of a new PID
++ // namespace and then proceed to drop access to the file system by using
++ // a new unprivileged namespace. This is a layer-1 sandbox.
++ // In order for this sandbox to be effective, it must be "sealed" by calling
++ // InitializeSandbox().
++ void EngageNamespaceSandbox(bool from_zygote);
++
++ // Return a list of file descriptors to close if PreinitializeSandbox() ran
++ // but InitializeSandbox() won't. Avoid using.
++ // TODO(jln): get rid of this hack.
++ std::vector<int> GetFileDescriptorsToClose();
++
++ // Seal an eventual layer-1 sandbox and initialize the layer-2 sandbox with
++ // an adequate policy depending on the process type and command line
++ // arguments.
++ // Currently the layer-2 sandbox is composed of seccomp-bpf and address space
++ // limitations.
++ // This function should only be called without any thread running.
++ bool InitializeSandbox(sandbox::mojom::Sandbox sandbox_type,
++ PreSandboxHook hook,
++ const Options& options);
++
++ // Stop |thread| in a way that can be trusted by the sandbox.
++ void StopThread(base::Thread* thread);
++
++ // Returns the status of the renderer, worker and ppapi sandbox. Can only
++ // be queried after going through PreinitializeSandbox(). This is a bitmask
++ // and uses the constants defined in "enum Status" above. Since the
++ // status needs to be provided before the sandboxes are actually started,
++ // this returns what will actually happen once InitializeSandbox()
++ // is called from inside these processes.
++ int GetStatus();
++
++ static std::string GetSandboxTypeInEnglish(sandbox::mojom::Sandbox sandbox_type);
++
++ // Returns true if the current process is single-threaded or if the number
++ // of threads cannot be determined.
++ bool IsSingleThreaded() const;
++
++ // Returns true if we started Seccomp BPF.
++ bool seccomp_bpf_started() const;
++
++ // Check the policy and eventually start the seccomp-bpf sandbox. This should
++ // never be called with threads started. If we detect that threads have
++ // started we will crash.
++ bool StartSeccompBPF(sandbox::mojom::Sandbox sandbox_type,
++ PreSandboxHook hook,
++ const Options& options);
++
++ // Limit the address space of the current process (and its children) to make
++ // some vulnerabilities harder to exploit. Writes the errno due to setrlimit
++ // (including 0 if no error) into |error|.
++ bool LimitAddressSpace(int* error);
++
++ // Returns a file descriptor to proc. The file descriptor is no longer valid
++ // after the sandbox has been sealed.
++ int proc_fd() const {
++ DCHECK_NE(-1, proc_fd_);
++ return proc_fd_;
++ }
++
++#if BUILDFLAG(USING_SANITIZER)
++ __sanitizer_sandbox_arguments* sanitizer_args() const {
++ return sanitizer_args_.get();
++ };
++#endif
++
++ // A BrokerProcess is a helper that is started before the sandbox is engaged,
++ // typically from a pre-sandbox hook, that will serve requests to access
++ // files over an IPC channel. The client of this runs from a SIGSYS handler
++ // triggered by the seccomp-bpf sandbox.
++ // |client_sandbox_policy| is the policy being run by the client, and is
++ // used to derive the equivalent broker-side policy.
++ // |broker_side_hook| is an alternate pre-sandbox hook to be run before the
++ // broker itself gets sandboxed, to which the broker side policy and
++ // |options| are passed.
++ // Crashes the process if the broker can not be started since continuation
++ // is impossible (and presumably unsafe).
++ // This should never be destroyed, as after the sandbox is started it is
++ // vital to the process.
++#if 0
++ void StartBrokerProcess(
++ const sandbox::syscall_broker::BrokerCommandSet& allowed_command_set,
++ std::vector<sandbox::syscall_broker::BrokerFilePermission> permissions,
++ PreSandboxHook broker_side_hook,
++ const Options& options);
++
++ sandbox::syscall_broker::BrokerProcess* broker_process() const {
++ return broker_process_;
++ }
++#endif
++
++ private:
++ friend struct base::DefaultSingletonTraits<SandboxLinux>;
++
++ SandboxLinux();
++ ~SandboxLinux();
++
++ // We must have been pre_initialized_ before using these.
++ bool seccomp_bpf_supported() const;
++ bool seccomp_bpf_with_tsync_supported() const;
++
++ // Returns true if it can be determined that the current process has open
++ // directories that are not managed by the SandboxLinux class. This would
++ // be a vulnerability as it would allow to bypass the setuid sandbox.
++ bool HasOpenDirectories() const;
++
++ // The last part of the initialization is to make sure any temporary "hole"
++ // in the sandbox is closed. For now, this consists of closing proc_fd_.
++ void SealSandbox();
++
++ // GetStatus() makes promises as to how the sandbox will behave. This
++ // checks that no promises have been broken.
++ void CheckForBrokenPromises(sandbox::mojom::Sandbox sandbox_type);
++
++ // Stop |thread| and make sure it does not appear in /proc/self/tasks/
++ // anymore.
++ void StopThreadAndEnsureNotCounted(base::Thread* thread) const;
++
++ // A file descriptor to /proc. It's dangerous to have it around as it could
++ // allow for sandbox bypasses. It needs to be closed before we consider
++ // ourselves sandboxed.
++ int proc_fd_;
++
++ bool seccomp_bpf_started_;
++ // The value returned by GetStatus(). Gets computed once and then cached.
++ int sandbox_status_flags_;
++ // Did PreinitializeSandbox() run?
++ bool pre_initialized_;
++ bool seccomp_bpf_supported_; // Accurate if pre_initialized_.
++ bool seccomp_bpf_with_tsync_supported_; // Accurate if pre_initialized_.
++ bool yama_is_enforcing_; // Accurate if pre_initialized_.
++ bool initialize_sandbox_ran_; // InitializeSandbox() was called.
++#if BUILDFLAG(USING_SANITIZER)
++ std::unique_ptr<__sanitizer_sandbox_arguments> sanitizer_args_;
++#endif
++ sandbox::syscall_broker::BrokerProcess* broker_process_; // Leaked as global.
++};
++
++} // namespace policy
++} // namespace sandbox
++
++#endif // SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_
diff --git a/chromium/patches/patch-sandbox_policy_mojom_sandbox.mojom b/chromium/patches/patch-sandbox_policy_mojom_sandbox.mojom
new file mode 100644
index 0000000000..a18bdaf2e5
--- /dev/null
+++ b/chromium/patches/patch-sandbox_policy_mojom_sandbox.mojom
@@ -0,0 +1,24 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/policy/mojom/sandbox.mojom.orig 2024-07-24 02:44:43.565452600 +0000
++++ sandbox/policy/mojom/sandbox.mojom
+@@ -77,6 +77,15 @@ enum Sandbox {
+ [EnableIf=is_fuchsia]
+ kVideoCapture,
+
++ [EnableIf=is_openbsd]
++ kVideoCapture,
++
++ [EnableIf=is_netbsd]
++ kVideoCapture,
++
++ [EnableIf=is_freebsd]
++ kVideoCapture,
++
+ // Allows access to file contents and Windows APIs for parsing icons from PE
+ // files.
+ [EnableIf=is_win]
diff --git a/chromium/patches/patch-sandbox_policy_netbsd_sandbox__netbsd.cc b/chromium/patches/patch-sandbox_policy_netbsd_sandbox__netbsd.cc
new file mode 100644
index 0000000000..eb91adc0d8
--- /dev/null
+++ b/chromium/patches/patch-sandbox_policy_netbsd_sandbox__netbsd.cc
@@ -0,0 +1,254 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/policy/netbsd/sandbox_netbsd.cc.orig 2024-08-01 14:09:00.278116893 +0000
++++ sandbox/policy/netbsd/sandbox_netbsd.cc
+@@ -0,0 +1,245 @@
++// Copyright (c) 2012 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "sandbox/policy/netbsd/sandbox_netbsd.h"
++
++#include <dirent.h>
++#include <fcntl.h>
++#include <stdint.h>
++#include <sys/resource.h>
++#include <sys/stat.h>
++#include <sys/time.h>
++#include <sys/types.h>
++#include <unistd.h>
++
++#include <limits>
++#include <memory>
++#include <string>
++#include <vector>
++
++#include "base/command_line.h"
++#include "base/debug/stack_trace.h"
++#include "base/feature_list.h"
++#include "base/files/file_path.h"
++#include "base/files/file_util.h"
++#include "base/files/scoped_file.h"
++#include "base/logging.h"
++#include "base/memory/singleton.h"
++#include "base/path_service.h"
++#include "base/posix/eintr_wrapper.h"
++#include "base/strings/string_number_conversions.h"
++#include "base/system/sys_info.h"
++#include "base/threading/thread.h"
++#include "base/time/time.h"
++#include "build/build_config.h"
++#include "crypto/crypto_buildflags.h"
++#include "ppapi/buildflags/buildflags.h"
++#include "sandbox/constants.h"
++#include "sandbox/linux/services/credentials.h"
++#include "sandbox/linux/services/namespace_sandbox.h"
++#include "sandbox/linux/services/proc_util.h"
++#include "sandbox/linux/services/resource_limits.h"
++#include "sandbox/linux/services/thread_helpers.h"
++#include "sandbox/linux/syscall_broker/broker_command.h"
++#include "sandbox/linux/syscall_broker/broker_process.h"
++#include "sandbox/policy/sandbox.h"
++#include "sandbox/policy/sandbox_type.h"
++#include "sandbox/policy/mojom/sandbox.mojom.h"
++#include "sandbox/policy/switches.h"
++#include "sandbox/sandbox_buildflags.h"
++
++#if BUILDFLAG(USING_SANITIZER)
++#include <sanitizer/common_interface_defs.h>
++#endif
++
++#if BUILDFLAG(USE_NSS_CERTS)
++#include "crypto/nss_util.h"
++#endif
++
++#include "third_party/boringssl/src/include/openssl/crypto.h"
++
++#include "ui/gfx/font_util.h"
++
++namespace sandbox {
++namespace policy {
++
++SandboxLinux::SandboxLinux()
++ : sandbox_status_flags_(kInvalid),
++ pre_initialized_(false),
++ initialize_sandbox_ran_(false),
++ broker_process_(nullptr) {
++}
++
++SandboxLinux::~SandboxLinux() {
++ if (pre_initialized_) {
++ CHECK(initialize_sandbox_ran_);
++ }
++}
++
++SandboxLinux* SandboxLinux::GetInstance() {
++ SandboxLinux* instance = base::Singleton<SandboxLinux>::get();
++ CHECK(instance);
++ return instance;
++}
++
++void SandboxLinux::StopThread(base::Thread* thread) {
++ DCHECK(thread);
++ thread->Stop();
++}
++
++void SandboxLinux::PreinitializeSandbox(sandbox::mojom::Sandbox sandbox_type) {
++ CHECK(!pre_initialized_);
++#if BUILDFLAG(USING_SANITIZER)
++ // Sanitizers need to open some resources before the sandbox is enabled.
++ // This should not fork, not launch threads, not open a directory.
++ __sanitizer_sandbox_on_notify(sanitizer_args());
++ sanitizer_args_.reset();
++#endif
++ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
++ const std::string process_type =
++ command_line->GetSwitchValueASCII(switches::kProcessType);
++
++ base::SysInfo::AmountOfPhysicalMemory();
++ base::SysInfo::NumberOfProcessors();
++ base::SysInfo::CPUModelName();
++
++ switch (sandbox_type) {
++ case sandbox::mojom::Sandbox::kNoSandbox:
++ {
++#if BUILDFLAG(USE_NSS_CERTS)
++ // The main process has to initialize the ~/.pki dir which won't work
++ // after unveil(2).
++ crypto::EnsureNSSInit();
++#endif
++ CRYPTO_pre_sandbox_init();
++
++ base::FilePath cache_directory, local_directory;
++
++ base::PathService::Get(base::DIR_CACHE, &cache_directory);
++ base::PathService::Get(base::DIR_HOME, &local_directory);
++
++ cache_directory = cache_directory.AppendASCII("chromium");
++ local_directory = local_directory.AppendASCII(".local").AppendASCII("share").AppendASCII("applications");
++
++ if (!base::CreateDirectory(cache_directory)) {
++ LOG(ERROR) << "Failed to create " << cache_directory.value() << " directory.";
++ }
++
++ if (!base::CreateDirectory(local_directory)) {
++ LOG(ERROR) << "Failed to create " << local_directory.value() << " directory.";
++ }
++
++ break;
++ }
++ case sandbox::mojom::Sandbox::kRenderer:
++ gfx::InitializeFonts();
++ break;
++ default:
++ break;
++ }
++
++ pre_initialized_ = true;
++}
++
++bool SandboxLinux::InitializeSandbox(sandbox::mojom::Sandbox sandbox_type,
++ SandboxLinux::PreSandboxHook hook,
++ const Options& options) {
++ DCHECK(!initialize_sandbox_ran_);
++ initialize_sandbox_ran_ = true;
++
++ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
++ const std::string process_type =
++ command_line->GetSwitchValueASCII(switches::kProcessType);
++
++ if (command_line->HasSwitch(switches::kNoSandbox))
++ return true;
++
++ VLOG(1) << "SandboxLinux::InitializeSandbox: process_type="
++ << process_type << " sandbox_type=" << GetSandboxTypeInEnglish(sandbox_type);
++
++ // Only one thread is running, pre-initialize if not already done.
++ if (!pre_initialized_)
++ PreinitializeSandbox(sandbox_type);
++
++ // Attempt to limit the future size of the address space of the process.
++ int error = 0;
++ const bool limited_as = LimitAddressSpace(&error);
++ if (error) {
++ // Restore errno. Internally to |LimitAddressSpace|, the errno due to
++ // setrlimit may be lost.
++ errno = error;
++ PCHECK(limited_as);
++ }
++
++ if (hook)
++ CHECK(std::move(hook).Run(options));
++
++ return true;
++}
++
++bool SandboxLinux::LimitAddressSpace(int* error) {
++#if !defined(ADDRESS_SANITIZER) && !defined(MEMORY_SANITIZER) && \
++ !defined(THREAD_SANITIZER) && !defined(LEAK_SANITIZER)
++ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
++ if (SandboxTypeFromCommandLine(*command_line) == sandbox::mojom::Sandbox::kNoSandbox) {
++ return false;
++ }
++
++ // Unfortunately, it does not appear possible to set RLIMIT_AS such that it
++ // will both (a) be high enough to support V8's and WebAssembly's address
++ // space requirements while also (b) being low enough to mitigate exploits
++ // using integer overflows that require large allocations, heap spray, or
++ // other memory-hungry attack modes.
++
++ *error = sandbox::ResourceLimits::Lower(
++ RLIMIT_DATA, static_cast<rlim_t>(sandbox::kDataSizeLimit));
++
++ // Cache the resource limit before turning on the sandbox.
++ base::SysInfo::AmountOfVirtualMemory();
++ base::SysInfo::MaxSharedMemorySize();
++
++ return *error == 0;
++#else
++ base::SysInfo::AmountOfVirtualMemory();
++ return false;
++#endif // !defined(ADDRESS_SANITIZER) && !defined(MEMORY_SANITIZER) &&
++ // !defined(THREAD_SANITIZER) && !defined(LEAK_SANITIZER)
++}
++
++// static
++std::string SandboxLinux::GetSandboxTypeInEnglish(sandbox::mojom::Sandbox sandbox_type) {
++ switch (sandbox_type) {
++ case sandbox::mojom::Sandbox::kNoSandbox:
++ return "Unsandboxed";
++ case sandbox::mojom::Sandbox::kRenderer:
++ return "Renderer";
++ case sandbox::mojom::Sandbox::kUtility:
++ return "Utility";
++ case sandbox::mojom::Sandbox::kGpu:
++ return "GPU";
++#if BUILDFLAG(ENABLE_PPAPI)
++ case sandbox::mojom::Sandbox::kPpapi:
++ return "PPAPI";
++#endif
++ case sandbox::mojom::Sandbox::kNetwork:
++ return "Network";
++ case sandbox::mojom::Sandbox::kCdm:
++ return "CDM";
++ case sandbox::mojom::Sandbox::kPrintCompositor:
++ return "Print Compositor";
++ case sandbox::mojom::Sandbox::kAudio:
++ return "Audio";
++ case sandbox::mojom::Sandbox::kSpeechRecognition:
++ return "Speech Recognition";
++ case sandbox::mojom::Sandbox::kService:
++ return "Service";
++ case sandbox::mojom::Sandbox::kVideoCapture:
++ return "Video Capture";
++ default:
++ return "Unknown";
++ }
++}
++
++} // namespace policy
++} // namespace sandbox
diff --git a/chromium/patches/patch-sandbox_policy_netbsd_sandbox__netbsd.h b/chromium/patches/patch-sandbox_policy_netbsd_sandbox__netbsd.h
new file mode 100644
index 0000000000..a804f3d044
--- /dev/null
+++ b/chromium/patches/patch-sandbox_policy_netbsd_sandbox__netbsd.h
@@ -0,0 +1,287 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/policy/netbsd/sandbox_netbsd.h.orig 2024-08-01 14:09:00.287768970 +0000
++++ sandbox/policy/netbsd/sandbox_netbsd.h
+@@ -0,0 +1,278 @@
++// Copyright (c) 2012 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++#ifndef SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_
++#define SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_
++
++#include <memory>
++#include <string>
++#include <vector>
++
++#include "base/logging.h"
++#include "base/posix/global_descriptors.h"
++#include "sandbox/policy/export.h"
++#include "sandbox/policy/linux/sandbox_seccomp_bpf_linux.h"
++#include "sandbox/policy/mojom/sandbox.mojom.h"
++#include "base/sanitizer_buildflags.h"
++
++#if BUILDFLAG(USING_SANITIZER)
++#include <sanitizer/common_interface_defs.h>
++#endif
++
++namespace base {
++template <typename T>
++struct DefaultSingletonTraits;
++class Thread;
++} // namespace base
++
++namespace sandbox {
++namespace syscall_broker {
++class BrokerProcess;
++} // namespace syscall_broker
++} // namespace sandbox
++
++namespace sandbox {
++namespace policy {
++
++// A singleton class to represent and change our sandboxing state for the
++// three main Linux sandboxes.
++// The sandboxing model allows using two layers of sandboxing. The first layer
++// can be implemented either with unprivileged namespaces or with the setuid
++// sandbox. This class provides a way to engage the namespace sandbox, but does
++// not deal with the legacy setuid sandbox directly.
++// The second layer is mainly based on seccomp-bpf and is engaged with
++// InitializeSandbox(). InitializeSandbox() is also responsible for "sealing"
++// the first layer of sandboxing. That is, InitializeSandbox must always be
++// called to have any meaningful sandboxing at all.
++class SANDBOX_POLICY_EXPORT SandboxLinux {
++ public:
++ // This is a list of sandbox IPC methods which the renderer may send to the
++ // sandbox host. See
++ // https://chromium.googlesource.com/chromium/src/+/master/docs/linux_sandbox_ipc.md
++ // This isn't the full list, values < 32 are reserved for methods called from
++ // Skia, and values < 64 are reserved for libc_interceptor.cc.
++ enum LinuxSandboxIPCMethods {
++ DEPRECATED_METHOD_GET_FALLBACK_FONT_FOR_CHAR = 64,
++ DEPRECATED_METHOD_GET_CHILD_WITH_INODE,
++ DEPRECATED_METHOD_GET_STYLE_FOR_STRIKE,
++ METHOD_MAKE_SHARED_MEMORY_SEGMENT,
++ DEPRECATED_METHOD_MATCH_WITH_FALLBACK,
++ };
++
++ // These form a bitmask which describes the conditions of the Linux sandbox.
++ // Note: this doesn't strictly give you the current status, it states
++ // what will be enabled when the relevant processes are initialized.
++ enum Status {
++ // SUID sandbox active.
++ kSUID = 1 << 0,
++
++ // Sandbox is using a new PID namespace.
++ kPIDNS = 1 << 1,
++
++ // Sandbox is using a new network namespace.
++ kNetNS = 1 << 2,
++
++ // seccomp-bpf sandbox active.
++ kSeccompBPF = 1 << 3,
++
++ // The Yama LSM module is present and enforcing.
++ kYama = 1 << 4,
++
++ // seccomp-bpf sandbox is active and the kernel supports TSYNC.
++ kSeccompTSYNC = 1 << 5,
++
++ // User namespace sandbox active.
++ kUserNS = 1 << 6,
++
++ // A flag that denotes an invalid sandbox status.
++ kInvalid = 1 << 31,
++ };
++
++ // SandboxLinux Options are a superset of SandboxSecompBPF Options.
++ struct Options : public SandboxSeccompBPF::Options {
++ // When running with a zygote, the namespace sandbox will have already
++ // been engaged prior to initializing SandboxLinux itself, and need not
++ // be done so again. Set to true to indicate that there isn't a zygote
++ // for this process and the step is to be performed here explicitly.
++ bool engage_namespace_sandbox = false;
++
++ // Allow starting the sandbox with multiple threads already running. This
++ // will enable TSYNC for seccomp-BPF, which syncs the seccomp-BPF policy
++ // across all running threads.
++ bool allow_threads_during_sandbox_init = false;
++
++ // Enables the CHECK for open directories. The open directory check is only
++ // useful for the chroot jail (from the semantic layer of the sandbox), and
++ // can safely be disabled if we are only enabling the seccomp-BPF layer.
++ bool check_for_open_directories = true;
++ };
++
++ // Callers can provide this hook to run code right before the policy
++ // is passed to the BPF compiler and the sandbox is engaged. If
++ // pre_sandbox_hook() returns true, the sandbox will be engaged
++ // afterwards, otherwise the process is terminated.
++ using PreSandboxHook = base::OnceCallback<bool(Options)>;
++
++ // Get our singleton instance.
++ static SandboxLinux* GetInstance();
++
++ SandboxLinux(const SandboxLinux&) = delete;
++ SandboxLinux& operator=(const SandboxLinux&) = delete;
++
++ bool SetPledge(const char *pstring, const char *ppath);
++ bool SetUnveil(const std::string process_type, sandbox::mojom::Sandbox sandbox_type);
++
++ // Do some initialization that can only be done before any of the sandboxes
++ // are enabled. If using the setuid sandbox, this should be called manually
++ // before the setuid sandbox is engaged.
++ // Security: When this runs, it is imperative that either InitializeSandbox()
++ // runs as well or that all file descriptors returned in
++ // GetFileDescriptorsToClose() get closed.
++ // Otherwise file descriptors that bypass the security of the setuid sandbox
++ // would be kept open. One must be particularly careful if a process performs
++ // a fork().
++ void PreinitializeSandbox(sandbox::mojom::Sandbox sandbox_type);
++
++ // Check that the current process is the init process of a new PID
++ // namespace and then proceed to drop access to the file system by using
++ // a new unprivileged namespace. This is a layer-1 sandbox.
++ // In order for this sandbox to be effective, it must be "sealed" by calling
++ // InitializeSandbox().
++ void EngageNamespaceSandbox(bool from_zygote);
++
++ // Return a list of file descriptors to close if PreinitializeSandbox() ran
++ // but InitializeSandbox() won't. Avoid using.
++ // TODO(jln): get rid of this hack.
++ std::vector<int> GetFileDescriptorsToClose();
++
++ // Seal an eventual layer-1 sandbox and initialize the layer-2 sandbox with
++ // an adequate policy depending on the process type and command line
++ // arguments.
++ // Currently the layer-2 sandbox is composed of seccomp-bpf and address space
++ // limitations.
++ // This function should only be called without any thread running.
++ bool InitializeSandbox(sandbox::mojom::Sandbox sandbox_type,
++ PreSandboxHook hook,
++ const Options& options);
++
++ // Stop |thread| in a way that can be trusted by the sandbox.
++ void StopThread(base::Thread* thread);
++
++ // Returns the status of the renderer, worker and ppapi sandbox. Can only
++ // be queried after going through PreinitializeSandbox(). This is a bitmask
++ // and uses the constants defined in "enum Status" above. Since the
++ // status needs to be provided before the sandboxes are actually started,
++ // this returns what will actually happen once InitializeSandbox()
++ // is called from inside these processes.
++ int GetStatus();
++
++ static std::string GetSandboxTypeInEnglish(sandbox::mojom::Sandbox sandbox_type);
++
++ // Returns true if the current process is single-threaded or if the number
++ // of threads cannot be determined.
++ bool IsSingleThreaded() const;
++
++ // Returns true if we started Seccomp BPF.
++ bool seccomp_bpf_started() const;
++
++ // Check the policy and eventually start the seccomp-bpf sandbox. This should
++ // never be called with threads started. If we detect that threads have
++ // started we will crash.
++ bool StartSeccompBPF(sandbox::mojom::Sandbox sandbox_type,
++ PreSandboxHook hook,
++ const Options& options);
++
++ // Limit the address space of the current process (and its children) to make
++ // some vulnerabilities harder to exploit. Writes the errno due to setrlimit
++ // (including 0 if no error) into |error|.
++ bool LimitAddressSpace(int* error);
++
++ // Returns a file descriptor to proc. The file descriptor is no longer valid
++ // after the sandbox has been sealed.
++ int proc_fd() const {
++ DCHECK_NE(-1, proc_fd_);
++ return proc_fd_;
++ }
++
++#if BUILDFLAG(USING_SANITIZER)
++ __sanitizer_sandbox_arguments* sanitizer_args() const {
++ return sanitizer_args_.get();
++ };
++#endif
++
++ // A BrokerProcess is a helper that is started before the sandbox is engaged,
++ // typically from a pre-sandbox hook, that will serve requests to access
++ // files over an IPC channel. The client of this runs from a SIGSYS handler
++ // triggered by the seccomp-bpf sandbox.
++ // |client_sandbox_policy| is the policy being run by the client, and is
++ // used to derive the equivalent broker-side policy.
++ // |broker_side_hook| is an alternate pre-sandbox hook to be run before the
++ // broker itself gets sandboxed, to which the broker side policy and
++ // |options| are passed.
++ // Crashes the process if the broker can not be started since continuation
++ // is impossible (and presumably unsafe).
++ // This should never be destroyed, as after the sandbox is started it is
++ // vital to the process.
++#if 0
++ void StartBrokerProcess(
++ const sandbox::syscall_broker::BrokerCommandSet& allowed_command_set,
++ std::vector<sandbox::syscall_broker::BrokerFilePermission> permissions,
++ PreSandboxHook broker_side_hook,
++ const Options& options);
++
++ sandbox::syscall_broker::BrokerProcess* broker_process() const {
++ return broker_process_;
++ }
++#endif
++
++ private:
++ friend struct base::DefaultSingletonTraits<SandboxLinux>;
++
++ SandboxLinux();
++ ~SandboxLinux();
++
++ // We must have been pre_initialized_ before using these.
++ bool seccomp_bpf_supported() const;
++ bool seccomp_bpf_with_tsync_supported() const;
++
++ // Returns true if it can be determined that the current process has open
++ // directories that are not managed by the SandboxLinux class. This would
++ // be a vulnerability as it would allow to bypass the setuid sandbox.
++ bool HasOpenDirectories() const;
++
++ // The last part of the initialization is to make sure any temporary "hole"
++ // in the sandbox is closed. For now, this consists of closing proc_fd_.
++ void SealSandbox();
++
++ // GetStatus() makes promises as to how the sandbox will behave. This
++ // checks that no promises have been broken.
++ void CheckForBrokenPromises(sandbox::mojom::Sandbox sandbox_type);
++
++ // Stop |thread| and make sure it does not appear in /proc/self/tasks/
++ // anymore.
++ void StopThreadAndEnsureNotCounted(base::Thread* thread) const;
++
++ // A file descriptor to /proc. It's dangerous to have it around as it could
++ // allow for sandbox bypasses. It needs to be closed before we consider
++ // ourselves sandboxed.
++ int proc_fd_;
++
++ bool seccomp_bpf_started_;
++ // The value returned by GetStatus(). Gets computed once and then cached.
++ int sandbox_status_flags_;
++ // Did PreinitializeSandbox() run?
++ bool pre_initialized_;
++ bool seccomp_bpf_supported_; // Accurate if pre_initialized_.
++ bool seccomp_bpf_with_tsync_supported_; // Accurate if pre_initialized_.
++ bool yama_is_enforcing_; // Accurate if pre_initialized_.
++ bool initialize_sandbox_ran_; // InitializeSandbox() was called.
++#if BUILDFLAG(USING_SANITIZER)
++ std::unique_ptr<__sanitizer_sandbox_arguments> sanitizer_args_;
++#endif
++ sandbox::syscall_broker::BrokerProcess* broker_process_; // Leaked as global.
++};
++
++} // namespace policy
++} // namespace sandbox
++
++#endif // SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_
diff --git a/chromium/patches/patch-sandbox_policy_openbsd_sandbox__openbsd.cc b/chromium/patches/patch-sandbox_policy_openbsd_sandbox__openbsd.cc
new file mode 100644
index 0000000000..701486cc22
--- /dev/null
+++ b/chromium/patches/patch-sandbox_policy_openbsd_sandbox__openbsd.cc
@@ -0,0 +1,433 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/policy/openbsd/sandbox_openbsd.cc.orig 2024-08-01 14:09:00.302012977 +0000
++++ sandbox/policy/openbsd/sandbox_openbsd.cc
+@@ -0,0 +1,424 @@
++// Copyright (c) 2012 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "sandbox/policy/openbsd/sandbox_openbsd.h"
++
++#include <dirent.h>
++#include <fcntl.h>
++#include <stdint.h>
++#include <sys/resource.h>
++#include <sys/stat.h>
++#include <sys/time.h>
++#include <sys/types.h>
++#include <unistd.h>
++#include <util.h>
++
++#include <limits>
++#include <memory>
++#include <string>
++#include <vector>
++
++#include "base/command_line.h"
++#include "base/debug/stack_trace.h"
++#include "base/feature_list.h"
++#include "base/files/file_path.h"
++#include "base/files/file_util.h"
++#include "base/files/scoped_file.h"
++#include "base/logging.h"
++#include "base/memory/singleton.h"
++#include "base/path_service.h"
++#include "base/posix/eintr_wrapper.h"
++#include "base/strings/string_number_conversions.h"
++#include "base/system/sys_info.h"
++#include "base/threading/thread.h"
++#include "base/time/time.h"
++#include "build/build_config.h"
++#include "crypto/crypto_buildflags.h"
++#include "ppapi/buildflags/buildflags.h"
++#include "sandbox/constants.h"
++#include "sandbox/linux/services/credentials.h"
++#include "sandbox/linux/services/namespace_sandbox.h"
++#include "sandbox/linux/services/proc_util.h"
++#include "sandbox/linux/services/resource_limits.h"
++#include "sandbox/linux/services/thread_helpers.h"
++#include "sandbox/linux/syscall_broker/broker_command.h"
++#include "sandbox/linux/syscall_broker/broker_process.h"
++#include "sandbox/policy/sandbox.h"
++#include "sandbox/policy/sandbox_type.h"
++#include "sandbox/policy/mojom/sandbox.mojom.h"
++#include "sandbox/policy/switches.h"
++#include "sandbox/sandbox_buildflags.h"
++
++#if BUILDFLAG(USING_SANITIZER)
++#include <sanitizer/common_interface_defs.h>
++#endif
++
++#if BUILDFLAG(USE_NSS_CERTS)
++#include "crypto/nss_util.h"
++#endif
++
++#include "third_party/boringssl/src/include/openssl/crypto.h"
++
++#include <fontconfig/fontconfig.h>
++#include "ui/gfx/linux/fontconfig_util.h"
++
++#define MAXTOKENS 3
++
++#define _UNVEIL_MAIN "@PKG_SYSCONFBASE@/chromium/unveil.main";
++#define _UNVEIL_GPU "@PKG_SYSCONFBASE@/chromium/unveil.gpu";
++#define _UNVEIL_UTILITY_NETWORK "@PKG_SYSCONFBASE@/chromium/unveil.utility_network";
++#define _UNVEIL_UTILITY_AUDIO "@PKG_SYSCONFBASE@/chromium/unveil.utility_audio";
++#define _UNVEIL_UTILITY_VIDEO "@PKG_SYSCONFBASE@/chromium/unveil.utility_video";
++
++namespace sandbox {
++namespace policy {
++
++SandboxLinux::SandboxLinux()
++ : unveil_initialized_(false),
++ sandbox_status_flags_(kInvalid),
++ pre_initialized_(false),
++ initialize_sandbox_ran_(false),
++ broker_process_(nullptr) {
++}
++
++SandboxLinux::~SandboxLinux() {
++ if (pre_initialized_) {
++ CHECK(initialize_sandbox_ran_);
++ }
++}
++
++SandboxLinux* SandboxLinux::GetInstance() {
++ SandboxLinux* instance = base::Singleton<SandboxLinux>::get();
++ CHECK(instance);
++ return instance;
++}
++
++void SandboxLinux::StopThread(base::Thread* thread) {
++ DCHECK(thread);
++ thread->Stop();
++}
++
++void SandboxLinux::PreinitializeSandbox(sandbox::mojom::Sandbox sandbox_type) {
++ CHECK(!pre_initialized_);
++#if BUILDFLAG(USING_SANITIZER)
++ // Sanitizers need to open some resources before the sandbox is enabled.
++ // This should not fork, not launch threads, not open a directory.
++ __sanitizer_sandbox_on_notify(sanitizer_args());
++ sanitizer_args_.reset();
++#endif
++ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
++ const std::string process_type =
++ command_line->GetSwitchValueASCII(switches::kProcessType);
++
++ base::SysInfo::AmountOfPhysicalMemory();
++ base::SysInfo::NumberOfProcessors();
++ base::SysInfo::CPUModelName();
++
++ switch (sandbox_type) {
++ case sandbox::mojom::Sandbox::kNoSandbox:
++ {
++#if BUILDFLAG(USE_NSS_CERTS)
++ // The main process has to initialize the ~/.pki dir which won't work
++ // after unveil(2).
++ crypto::EnsureNSSInit();
++#endif
++ CRYPTO_pre_sandbox_init();
++
++ base::FilePath cache_directory, local_directory;
++
++ base::PathService::Get(base::DIR_CACHE, &cache_directory);
++ base::PathService::Get(base::DIR_HOME, &local_directory);
++
++ cache_directory = cache_directory.AppendASCII("chromium");
++ local_directory = local_directory.AppendASCII(".local").AppendASCII("share").AppendASCII("applications");
++
++ if (!base::CreateDirectory(cache_directory)) {
++ LOG(ERROR) << "Failed to create " << cache_directory.value() << " directory.";
++ }
++
++ if (!base::CreateDirectory(local_directory)) {
++ LOG(ERROR) << "Failed to create " << local_directory.value() << " directory.";
++ }
++
++ break;
++ }
++ case sandbox::mojom::Sandbox::kRenderer:
++ {
++ FcConfig* config = gfx::GetGlobalFontConfig();
++ DCHECK(config);
++ break;
++ }
++ default:
++ break;
++ }
++
++ pre_initialized_ = true;
++}
++
++bool SandboxLinux::SetPledge(const char *pstring, const char *ppath) {
++ FILE *fp;
++ char *s = NULL;
++ size_t len = 0;
++ ssize_t read;
++
++ if (pstring != NULL) {
++ if (pledge(pstring, NULL) == -1)
++ goto err;
++ VLOG(5) << "pledge " << pstring;
++ } else if (ppath != NULL) {
++ fp = fopen(ppath, "r");
++ if (fp != NULL) {
++ while ((read = getline(&s, &len, fp)) != -1 ) {
++ if (s[strlen(s)-1] == '\n')
++ s[strlen(s)-1] = '\0';
++ if (pledge(s, NULL) == -1)
++ goto err;
++ VLOG(5) << "pledge " << s;
++ }
++ fclose(fp);
++ } else {
++ LOG(ERROR) << "fopen(" << ppath << ") failed, errno: " << errno;
++ return false;
++ }
++ }
++ return true;
++err:
++ LOG(ERROR) << "pledge() failed, errno: " << errno;
++ return false;
++}
++
++bool SandboxLinux::SetUnveil(const std::string process_type, sandbox::mojom::Sandbox sandbox_type) {
++ FILE *fp;
++ char *s = NULL, *cp = NULL, *home = NULL, **ap, *tokens[MAXTOKENS];
++ char path[PATH_MAX];
++ const char *ufile;
++ size_t len = 0, lineno = 0;
++
++ switch (sandbox_type) {
++ case sandbox::mojom::Sandbox::kNoSandbox:
++ ufile = _UNVEIL_MAIN;
++ break;
++ case sandbox::mojom::Sandbox::kGpu:
++ ufile = _UNVEIL_GPU;
++ break;
++ case sandbox::mojom::Sandbox::kNetwork:
++ ufile = _UNVEIL_UTILITY_NETWORK;
++ break;
++ case sandbox::mojom::Sandbox::kAudio:
++ ufile = _UNVEIL_UTILITY_AUDIO;
++ break;
++ case sandbox::mojom::Sandbox::kVideoCapture:
++ ufile = _UNVEIL_UTILITY_VIDEO;
++ break;
++ default:
++ unveil("/dev/null", "r");
++ goto done;
++ }
++
++ fp = fopen(ufile, "r");
++ if (fp != NULL) {
++ while (!feof(fp)) {
++ if ((s = fparseln(fp, &len, &lineno, NULL,
++ FPARSELN_UNESCCOMM | FPARSELN_UNESCCONT)) == NULL) {
++ if (ferror(fp)) {
++ LOG(ERROR) << "ferror(), errno: " << errno;
++ _exit(1);
++ } else {
++ continue;
++ }
++ }
++ cp = s;
++ cp += strspn(cp, " \t\n"); /* eat whitespace */
++ if (cp[0] == '\0')
++ continue;
++
++ for (ap = tokens; ap < &tokens[MAXTOKENS - 1] &&
++ (*ap = strsep(&cp, " \t")) != NULL;) {
++ if (**ap != '\0')
++ ap++;
++ }
++ *ap = NULL;
++
++ if (tokens[1] == NULL) {
++ LOG(ERROR) << ufile << ": line " << lineno << ": must supply value to " << s;
++ _exit(1);
++ }
++
++ if (tokens[0][0] == '~') {
++ if ((home = getenv("HOME")) == NULL || *home == '\0') {
++ LOG(ERROR) << "failed to get home";
++ _exit(1);
++ }
++ memmove(tokens[0], tokens[0] + 1, strlen(tokens[0]));
++ strncpy(path, home, sizeof(path) - 1);
++ path[sizeof(path) - 1] = '\0';
++ strncat(path, tokens[0], sizeof(path) - 1 - strlen(path));
++ } else {
++ strncpy(path, tokens[0], sizeof(path) - 1);
++ path[sizeof(path) - 1] = '\0';
++ }
++
++ if (unveil(path, tokens[1]) == -1) {
++ LOG(ERROR) << "failed unveiling " << path << " with permissions " << tokens[1];
++ _exit(1);
++ } else {
++ VLOG(5) << "unveiling " << path << " with permissions " << tokens[1];
++ }
++ }
++ fclose(fp);
++ } else {
++ LOG(ERROR) << "failed to open " << ufile << " errno: " << errno;
++ _exit(1);
++ }
++
++done:
++ unveil_initialized_ = true;
++
++ return true;
++}
++
++bool SandboxLinux::unveil_initialized() const {
++ return unveil_initialized_;
++}
++
++bool SandboxLinux::InitializeSandbox(sandbox::mojom::Sandbox sandbox_type,
++ SandboxLinux::PreSandboxHook hook,
++ const Options& options) {
++ DCHECK(!initialize_sandbox_ran_);
++ initialize_sandbox_ran_ = true;
++
++ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
++ const std::string process_type =
++ command_line->GetSwitchValueASCII(switches::kProcessType);
++
++ if (command_line->HasSwitch(switches::kNoSandbox))
++ return true;
++
++ VLOG(1) << "SandboxLinux::InitializeSandbox: process_type="
++ << process_type << " sandbox_type=" << GetSandboxTypeInEnglish(sandbox_type);
++
++ // Only one thread is running, pre-initialize if not already done.
++ if (!pre_initialized_)
++ PreinitializeSandbox(sandbox_type);
++
++ // Attempt to limit the future size of the address space of the process.
++ int error = 0;
++ const bool limited_as = LimitAddressSpace(&error);
++ if (error) {
++ // Restore errno. Internally to |LimitAddressSpace|, the errno due to
++ // setrlimit may be lost.
++ errno = error;
++ PCHECK(limited_as);
++ }
++
++ if (hook)
++ CHECK(std::move(hook).Run(options));
++
++ if (!command_line->HasSwitch(switches::kDisableUnveil))
++ SetUnveil(process_type, sandbox_type);
++
++ switch(sandbox_type) {
++ case sandbox::mojom::Sandbox::kNoSandbox:
++ SetPledge(NULL, "@PKG_SYSCONFBASE@/chromium/pledge.main");
++ break;
++ case sandbox::mojom::Sandbox::kRenderer:
++ // prot_exec needed by v8
++ // flock needed by sqlite3 locking
++ SetPledge("stdio rpath flock prot_exec recvfd sendfd ps", NULL);
++ break;
++ case sandbox::mojom::Sandbox::kGpu:
++ SetPledge("stdio drm rpath flock cpath wpath prot_exec recvfd sendfd tmppath", NULL);
++ break;
++#if BUILDFLAG(ENABLE_PPAPI)
++ case sandbox::mojom::Sandbox::kPpapi:
++ // prot_exec needed by v8
++ SetPledge("stdio rpath prot_exec recvfd sendfd", NULL);
++ break;
++#endif
++ case sandbox::mojom::Sandbox::kAudio:
++ SetPledge(NULL, "@PKG_SYSCONFBASE@/chromium/pledge.utility_audio");
++ break;
++ case sandbox::mojom::Sandbox::kNetwork:
++ SetPledge(NULL, "@PKG_SYSCONFBASE@/chromium/pledge.utility_network");
++ break;
++ case sandbox::mojom::Sandbox::kVideoCapture:
++ SetPledge(NULL, "@PKG_SYSCONFBASE@/chromium/pledge.utility_video");
++ break;
++ case sandbox::mojom::Sandbox::kUtility:
++ case sandbox::mojom::Sandbox::kService:
++ SetPledge("stdio rpath cpath wpath fattr flock sendfd recvfd prot_exec", NULL);
++ break;
++ default:
++ LOG(ERROR) << "non-pledge()'d process: " << GetSandboxTypeInEnglish(sandbox_type);
++ break;
++ }
++
++ return true;
++}
++
++bool SandboxLinux::LimitAddressSpace(int* error) {
++#if !defined(ADDRESS_SANITIZER) && !defined(MEMORY_SANITIZER) && \
++ !defined(THREAD_SANITIZER) && !defined(LEAK_SANITIZER)
++ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
++ if (SandboxTypeFromCommandLine(*command_line) == sandbox::mojom::Sandbox::kNoSandbox) {
++ return false;
++ }
++
++ // Unfortunately, it does not appear possible to set RLIMIT_AS such that it
++ // will both (a) be high enough to support V8's and WebAssembly's address
++ // space requirements while also (b) being low enough to mitigate exploits
++ // using integer overflows that require large allocations, heap spray, or
++ // other memory-hungry attack modes.
++
++ *error = sandbox::ResourceLimits::Lower(
++ RLIMIT_DATA, static_cast<rlim_t>(sandbox::kDataSizeLimit));
++
++ // Cache the resource limit before turning on the sandbox.
++ base::SysInfo::AmountOfVirtualMemory();
++ base::SysInfo::MaxSharedMemorySize();
++
++ return *error == 0;
++#else
++ base::SysInfo::AmountOfVirtualMemory();
++ return false;
++#endif // !defined(ADDRESS_SANITIZER) && !defined(MEMORY_SANITIZER) &&
++ // !defined(THREAD_SANITIZER) && !defined(LEAK_SANITIZER)
++}
++
++// static
++std::string SandboxLinux::GetSandboxTypeInEnglish(sandbox::mojom::Sandbox sandbox_type) {
++ switch (sandbox_type) {
++ case sandbox::mojom::Sandbox::kNoSandbox:
++ return "Unsandboxed";
++ case sandbox::mojom::Sandbox::kRenderer:
++ return "Renderer";
++ case sandbox::mojom::Sandbox::kUtility:
++ return "Utility";
++ case sandbox::mojom::Sandbox::kGpu:
++ return "GPU";
++#if BUILDFLAG(ENABLE_PPAPI)
++ case sandbox::mojom::Sandbox::kPpapi:
++ return "PPAPI";
++#endif
++ case sandbox::mojom::Sandbox::kNetwork:
++ return "Network";
++ case sandbox::mojom::Sandbox::kCdm:
++ return "CDM";
++ case sandbox::mojom::Sandbox::kPrintCompositor:
++ return "Print Compositor";
++ case sandbox::mojom::Sandbox::kAudio:
++ return "Audio";
++ case sandbox::mojom::Sandbox::kSpeechRecognition:
++ return "Speech Recognition";
++ case sandbox::mojom::Sandbox::kService:
++ return "Service";
++ case sandbox::mojom::Sandbox::kVideoCapture:
++ return "Video Capture";
++ default:
++ return "Unknown";
++ }
++}
++
++} // namespace policy
++} // namespace sandbox
diff --git a/chromium/patches/patch-sandbox_policy_openbsd_sandbox__openbsd.h b/chromium/patches/patch-sandbox_policy_openbsd_sandbox__openbsd.h
new file mode 100644
index 0000000000..f5671426a0
--- /dev/null
+++ b/chromium/patches/patch-sandbox_policy_openbsd_sandbox__openbsd.h
@@ -0,0 +1,291 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/policy/openbsd/sandbox_openbsd.h.orig 2024-08-01 14:09:00.305934989 +0000
++++ sandbox/policy/openbsd/sandbox_openbsd.h
+@@ -0,0 +1,282 @@
++// Copyright (c) 2012 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++#ifndef SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_
++#define SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_
++
++#include <memory>
++#include <string>
++#include <vector>
++
++#include "base/logging.h"
++#include "base/posix/global_descriptors.h"
++#include "sandbox/policy/export.h"
++#include "sandbox/policy/linux/sandbox_seccomp_bpf_linux.h"
++#include "sandbox/policy/mojom/sandbox.mojom.h"
++#include "base/sanitizer_buildflags.h"
++
++#if BUILDFLAG(USING_SANITIZER)
++#include <sanitizer/common_interface_defs.h>
++#endif
++
++namespace base {
++template <typename T>
++struct DefaultSingletonTraits;
++class Thread;
++} // namespace base
++
++namespace sandbox {
++namespace syscall_broker {
++class BrokerProcess;
++} // namespace syscall_broker
++} // namespace sandbox
++
++namespace sandbox {
++namespace policy {
++
++// A singleton class to represent and change our sandboxing state for the
++// three main Linux sandboxes.
++// The sandboxing model allows using two layers of sandboxing. The first layer
++// can be implemented either with unprivileged namespaces or with the setuid
++// sandbox. This class provides a way to engage the namespace sandbox, but does
++// not deal with the legacy setuid sandbox directly.
++// The second layer is mainly based on seccomp-bpf and is engaged with
++// InitializeSandbox(). InitializeSandbox() is also responsible for "sealing"
++// the first layer of sandboxing. That is, InitializeSandbox must always be
++// called to have any meaningful sandboxing at all.
++class SANDBOX_POLICY_EXPORT SandboxLinux {
++ public:
++ // This is a list of sandbox IPC methods which the renderer may send to the
++ // sandbox host. See
++ // https://chromium.googlesource.com/chromium/src/+/master/docs/linux_sandbox_ipc.md
++ // This isn't the full list, values < 32 are reserved for methods called from
++ // Skia, and values < 64 are reserved for libc_interceptor.cc.
++ enum LinuxSandboxIPCMethods {
++ DEPRECATED_METHOD_GET_FALLBACK_FONT_FOR_CHAR = 64,
++ DEPRECATED_METHOD_GET_CHILD_WITH_INODE,
++ DEPRECATED_METHOD_GET_STYLE_FOR_STRIKE,
++ METHOD_MAKE_SHARED_MEMORY_SEGMENT,
++ DEPRECATED_METHOD_MATCH_WITH_FALLBACK,
++ };
++
++ // These form a bitmask which describes the conditions of the Linux sandbox.
++ // Note: this doesn't strictly give you the current status, it states
++ // what will be enabled when the relevant processes are initialized.
++ enum Status {
++ // SUID sandbox active.
++ kSUID = 1 << 0,
++
++ // Sandbox is using a new PID namespace.
++ kPIDNS = 1 << 1,
++
++ // Sandbox is using a new network namespace.
++ kNetNS = 1 << 2,
++
++ // seccomp-bpf sandbox active.
++ kSeccompBPF = 1 << 3,
++
++ // The Yama LSM module is present and enforcing.
++ kYama = 1 << 4,
++
++ // seccomp-bpf sandbox is active and the kernel supports TSYNC.
++ kSeccompTSYNC = 1 << 5,
++
++ // User namespace sandbox active.
++ kUserNS = 1 << 6,
++
++ // A flag that denotes an invalid sandbox status.
++ kInvalid = 1 << 31,
++ };
++
++ // SandboxLinux Options are a superset of SandboxSecompBPF Options.
++ struct Options : public SandboxSeccompBPF::Options {
++ // When running with a zygote, the namespace sandbox will have already
++ // been engaged prior to initializing SandboxLinux itself, and need not
++ // be done so again. Set to true to indicate that there isn't a zygote
++ // for this process and the step is to be performed here explicitly.
++ bool engage_namespace_sandbox = false;
++
++ // Allow starting the sandbox with multiple threads already running. This
++ // will enable TSYNC for seccomp-BPF, which syncs the seccomp-BPF policy
++ // across all running threads.
++ bool allow_threads_during_sandbox_init = false;
++
++ // Enables the CHECK for open directories. The open directory check is only
++ // useful for the chroot jail (from the semantic layer of the sandbox), and
++ // can safely be disabled if we are only enabling the seccomp-BPF layer.
++ bool check_for_open_directories = true;
++ };
++
++ // Callers can provide this hook to run code right before the policy
++ // is passed to the BPF compiler and the sandbox is engaged. If
++ // pre_sandbox_hook() returns true, the sandbox will be engaged
++ // afterwards, otherwise the process is terminated.
++ using PreSandboxHook = base::OnceCallback<bool(Options)>;
++
++ // Get our singleton instance.
++ static SandboxLinux* GetInstance();
++
++ SandboxLinux(const SandboxLinux&) = delete;
++ SandboxLinux& operator=(const SandboxLinux&) = delete;
++
++ bool SetPledge(const char *pstring, const char *ppath);
++ bool SetUnveil(const std::string process_type, sandbox::mojom::Sandbox sandbox_type);
++
++ // Do some initialization that can only be done before any of the sandboxes
++ // are enabled. If using the setuid sandbox, this should be called manually
++ // before the setuid sandbox is engaged.
++ // Security: When this runs, it is imperative that either InitializeSandbox()
++ // runs as well or that all file descriptors returned in
++ // GetFileDescriptorsToClose() get closed.
++ // Otherwise file descriptors that bypass the security of the setuid sandbox
++ // would be kept open. One must be particularly careful if a process performs
++ // a fork().
++ void PreinitializeSandbox(sandbox::mojom::Sandbox sandbox_type);
++
++ // Check that the current process is the init process of a new PID
++ // namespace and then proceed to drop access to the file system by using
++ // a new unprivileged namespace. This is a layer-1 sandbox.
++ // In order for this sandbox to be effective, it must be "sealed" by calling
++ // InitializeSandbox().
++ void EngageNamespaceSandbox(bool from_zygote);
++
++ // Return a list of file descriptors to close if PreinitializeSandbox() ran
++ // but InitializeSandbox() won't. Avoid using.
++ // TODO(jln): get rid of this hack.
++ std::vector<int> GetFileDescriptorsToClose();
++
++ // Seal an eventual layer-1 sandbox and initialize the layer-2 sandbox with
++ // an adequate policy depending on the process type and command line
++ // arguments.
++ // Currently the layer-2 sandbox is composed of seccomp-bpf and address space
++ // limitations.
++ // This function should only be called without any thread running.
++ bool InitializeSandbox(sandbox::mojom::Sandbox sandbox_type,
++ PreSandboxHook hook,
++ const Options& options);
++
++ // Stop |thread| in a way that can be trusted by the sandbox.
++ void StopThread(base::Thread* thread);
++
++ // Returns the status of the renderer, worker and ppapi sandbox. Can only
++ // be queried after going through PreinitializeSandbox(). This is a bitmask
++ // and uses the constants defined in "enum Status" above. Since the
++ // status needs to be provided before the sandboxes are actually started,
++ // this returns what will actually happen once InitializeSandbox()
++ // is called from inside these processes.
++ int GetStatus();
++
++ static std::string GetSandboxTypeInEnglish(sandbox::mojom::Sandbox sandbox_type);
++
++ // Returns true if the current process is single-threaded or if the number
++ // of threads cannot be determined.
++ bool IsSingleThreaded() const;
++
++ // Returns true if we started Seccomp BPF.
++ bool seccomp_bpf_started() const;
++
++ // Returns true if unveil(2) is used.
++ bool unveil_initialized() const;
++
++ // Check the policy and eventually start the seccomp-bpf sandbox. This should
++ // never be called with threads started. If we detect that threads have
++ // started we will crash.
++ bool StartSeccompBPF(sandbox::mojom::Sandbox sandbox_type,
++ PreSandboxHook hook,
++ const Options& options);
++
++ // Limit the address space of the current process (and its children) to make
++ // some vulnerabilities harder to exploit. Writes the errno due to setrlimit
++ // (including 0 if no error) into |error|.
++ bool LimitAddressSpace(int* error);
++
++ // Returns a file descriptor to proc. The file descriptor is no longer valid
++ // after the sandbox has been sealed.
++ int proc_fd() const {
++ DCHECK_NE(-1, proc_fd_);
++ return proc_fd_;
++ }
++
++#if BUILDFLAG(USING_SANITIZER)
++ __sanitizer_sandbox_arguments* sanitizer_args() const {
++ return sanitizer_args_.get();
++ };
++#endif
++
++ // A BrokerProcess is a helper that is started before the sandbox is engaged,
++ // typically from a pre-sandbox hook, that will serve requests to access
++ // files over an IPC channel. The client of this runs from a SIGSYS handler
++ // triggered by the seccomp-bpf sandbox.
++ // |client_sandbox_policy| is the policy being run by the client, and is
++ // used to derive the equivalent broker-side policy.
++ // |broker_side_hook| is an alternate pre-sandbox hook to be run before the
++ // broker itself gets sandboxed, to which the broker side policy and
++ // |options| are passed.
++ // Crashes the process if the broker can not be started since continuation
++ // is impossible (and presumably unsafe).
++ // This should never be destroyed, as after the sandbox is started it is
++ // vital to the process.
++#if 0
++ void StartBrokerProcess(
++ const sandbox::syscall_broker::BrokerCommandSet& allowed_command_set,
++ std::vector<sandbox::syscall_broker::BrokerFilePermission> permissions,
++ PreSandboxHook broker_side_hook,
++ const Options& options);
++
++ sandbox::syscall_broker::BrokerProcess* broker_process() const {
++ return broker_process_;
++ }
++#endif
++
++ private:
++ friend struct base::DefaultSingletonTraits<SandboxLinux>;
++
++ SandboxLinux();
++ ~SandboxLinux();
++
++ // We must have been pre_initialized_ before using these.
++ bool seccomp_bpf_supported() const;
++ bool seccomp_bpf_with_tsync_supported() const;
++
++ // Returns true if it can be determined that the current process has open
++ // directories that are not managed by the SandboxLinux class. This would
++ // be a vulnerability as it would allow to bypass the setuid sandbox.
++ bool HasOpenDirectories() const;
++
++ // The last part of the initialization is to make sure any temporary "hole"
++ // in the sandbox is closed. For now, this consists of closing proc_fd_.
++ void SealSandbox();
++
++ // GetStatus() makes promises as to how the sandbox will behave. This
++ // checks that no promises have been broken.
++ void CheckForBrokenPromises(sandbox::mojom::Sandbox sandbox_type);
++
++ // Stop |thread| and make sure it does not appear in /proc/self/tasks/
++ // anymore.
++ void StopThreadAndEnsureNotCounted(base::Thread* thread) const;
++
++ // A file descriptor to /proc. It's dangerous to have it around as it could
++ // allow for sandbox bypasses. It needs to be closed before we consider
++ // ourselves sandboxed.
++ int proc_fd_;
++
++ bool seccomp_bpf_started_;
++ bool unveil_initialized_;
++ // The value returned by GetStatus(). Gets computed once and then cached.
++ int sandbox_status_flags_;
++ // Did PreinitializeSandbox() run?
++ bool pre_initialized_;
++ bool seccomp_bpf_supported_; // Accurate if pre_initialized_.
++ bool seccomp_bpf_with_tsync_supported_; // Accurate if pre_initialized_.
++ bool yama_is_enforcing_; // Accurate if pre_initialized_.
++ bool initialize_sandbox_ran_; // InitializeSandbox() was called.
++#if BUILDFLAG(USING_SANITIZER)
++ std::unique_ptr<__sanitizer_sandbox_arguments> sanitizer_args_;
++#endif
++ sandbox::syscall_broker::BrokerProcess* broker_process_; // Leaked as global.
++};
++
++} // namespace policy
++} // namespace sandbox
++
++#endif // SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_
diff --git a/chromium/patches/patch-sandbox_policy_sandbox.cc b/chromium/patches/patch-sandbox_policy_sandbox.cc
new file mode 100644
index 0000000000..466701238b
--- /dev/null
+++ b/chromium/patches/patch-sandbox_policy_sandbox.cc
@@ -0,0 +1,28 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/policy/sandbox.cc.orig 2024-07-24 02:44:43.565452600 +0000
++++ sandbox/policy/sandbox.cc
+@@ -18,6 +18,10 @@
+ #include "sandbox/policy/linux/sandbox_linux.h"
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
++#endif // BUILDFLAG(IS_BSD)
++
+ #if BUILDFLAG(IS_MAC)
+ #include "sandbox/mac/seatbelt.h"
+ #endif // BUILDFLAG(IS_MAC)
+@@ -32,7 +36,7 @@
+ namespace sandbox {
+ namespace policy {
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ bool Sandbox::Initialize(sandbox::mojom::Sandbox sandbox_type,
+ SandboxLinux::PreSandboxHook hook,
+ const SandboxLinux::Options& options) {
diff --git a/chromium/patches/patch-sandbox_policy_sandbox.h b/chromium/patches/patch-sandbox_policy_sandbox.h
new file mode 100644
index 0000000000..9dfd971f71
--- /dev/null
+++ b/chromium/patches/patch-sandbox_policy_sandbox.h
@@ -0,0 +1,32 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/policy/sandbox.h.orig 2024-07-24 02:44:43.565452600 +0000
++++ sandbox/policy/sandbox.h
+@@ -12,6 +12,14 @@
+ #include "sandbox/policy/linux/sandbox_linux.h"
+ #endif
+
++#if BUILDFLAG(IS_OPENBSD)
++#include "sandbox/policy/openbsd/sandbox_openbsd.h"
++#elif BUILDFLAG(IS_NETBSD)
++#include "sandbox/policy/netbsd/sandbox_netbsd.h"
++#elif BUILDFLAG(IS_FREEBSD)
++#include "sandbox/policy/freebsd/sandbox_freebsd.h"
++#endif
++
+ namespace sandbox {
+ namespace mojom {
+ enum class Sandbox;
+@@ -32,7 +40,7 @@ namespace policy {
+
+ class SANDBOX_POLICY_EXPORT Sandbox {
+ public:
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ static bool Initialize(sandbox::mojom::Sandbox sandbox_type,
+ SandboxLinux::PreSandboxHook hook,
+ const SandboxLinux::Options& options);
diff --git a/chromium/patches/patch-sandbox_policy_sandbox__type.cc b/chromium/patches/patch-sandbox_policy_sandbox__type.cc
new file mode 100644
index 0000000000..8443818d56
--- /dev/null
+++ b/chromium/patches/patch-sandbox_policy_sandbox__type.cc
@@ -0,0 +1,121 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/policy/sandbox_type.cc.orig 2024-07-24 02:44:43.565452600 +0000
++++ sandbox/policy/sandbox_type.cc
+@@ -38,7 +38,7 @@ bool IsUnsandboxedSandboxType(Sandbox sa
+ #endif
+ case Sandbox::kAudio:
+ return false;
+-#if BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ case Sandbox::kVideoCapture:
+ return false;
+ #endif
+@@ -63,7 +63,7 @@ bool IsUnsandboxedSandboxType(Sandbox sa
+ case Sandbox::kMirroring:
+ case Sandbox::kNaClLoader:
+ #endif
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ case Sandbox::kHardwareVideoDecoding:
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
+@@ -74,7 +74,7 @@ bool IsUnsandboxedSandboxType(Sandbox sa
+ case Sandbox::kLibassistant:
+ #endif // BUILDFLAG(ENABLE_CROS_LIBASSISTANT)
+ #endif // // BUILDFLAG(IS_CHROMEOS_ASH)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) | BUILDFLAG(IS_BSD)
+ case Sandbox::kZygoteIntermediateSandbox:
+ case Sandbox::kHardwareVideoEncoding:
+ #endif
+@@ -131,7 +131,7 @@ void SetCommandLineFlagsForSandboxType(b
+ #endif
+ case Sandbox::kPrintCompositor:
+ case Sandbox::kAudio:
+-#if BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ case Sandbox::kVideoCapture:
+ #endif
+ #if BUILDFLAG(IS_WIN)
+@@ -142,10 +142,10 @@ void SetCommandLineFlagsForSandboxType(b
+ case Sandbox::kMediaFoundationCdm:
+ case Sandbox::kWindowsSystemProxyResolver:
+ #endif // BUILDFLAG(IS_WIN)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ case Sandbox::kHardwareVideoDecoding:
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ case Sandbox::kHardwareVideoEncoding:
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
+@@ -174,7 +174,7 @@ void SetCommandLineFlagsForSandboxType(b
+ case Sandbox::kNaClLoader:
+ break;
+ #endif // BUILDFLAG(IS_MAC)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ case Sandbox::kZygoteIntermediateSandbox:
+ break;
+ #endif
+@@ -218,7 +218,7 @@ sandbox::mojom::Sandbox SandboxTypeFromC
+ #endif
+ }
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Intermediate process gains a sandbox later.
+ if (process_type == switches::kZygoteProcessType)
+ return Sandbox::kZygoteIntermediateSandbox;
+@@ -266,7 +266,7 @@ std::string StringFromUtilitySandboxType
+ return switches::kUtilitySandbox;
+ case Sandbox::kAudio:
+ return switches::kAudioSandbox;
+-#if BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ case Sandbox::kVideoCapture:
+ return switches::kVideoCaptureSandbox;
+ #endif
+@@ -296,11 +296,11 @@ std::string StringFromUtilitySandboxType
+ case Sandbox::kMirroring:
+ return switches::kMirroringSandbox;
+ #endif
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ case Sandbox::kHardwareVideoDecoding:
+ return switches::kHardwareVideoDecodingSandbox;
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ case Sandbox::kHardwareVideoEncoding:
+ return switches::kHardwareVideoEncodingSandbox;
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+@@ -322,7 +322,7 @@ std::string StringFromUtilitySandboxType
+ #if BUILDFLAG(IS_MAC)
+ case Sandbox::kNaClLoader:
+ #endif // BUILDFLAG(IS_MAC)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ case Sandbox::kZygoteIntermediateSandbox:
+ #endif
+ NOTREACHED_IN_MIGRATION();
+@@ -394,11 +394,11 @@ sandbox::mojom::Sandbox UtilitySandboxTy
+ if (sandbox_string == switches::kScreenAISandbox)
+ return Sandbox::kScreenAI;
+ #endif
+-#if BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ if (sandbox_string == switches::kVideoCaptureSandbox)
+ return Sandbox::kVideoCapture;
+ #endif
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ if (sandbox_string == switches::kHardwareVideoDecodingSandbox)
+ return Sandbox::kHardwareVideoDecoding;
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/chromium/patches/patch-sandbox_policy_switches.cc b/chromium/patches/patch-sandbox_policy_switches.cc
new file mode 100644
index 0000000000..91ad4058f6
--- /dev/null
+++ b/chromium/patches/patch-sandbox_policy_switches.cc
@@ -0,0 +1,32 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/policy/switches.cc.orig 2024-07-24 02:44:43.565452600 +0000
++++ sandbox/policy/switches.cc
+@@ -54,10 +54,10 @@ const char kWindowsSystemProxyResolverSa
+ const char kMirroringSandbox[] = "mirroring";
+ #endif // BUILDFLAG(IS_MAC)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ const char kHardwareVideoDecodingSandbox[] = "hardware_video_decoding";
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ const char kHardwareVideoEncodingSandbox[] = "hardware_video_encoding";
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+
+@@ -97,7 +97,9 @@ const char kGpuSandboxFailuresFatal[] =
+ // Meant to be used as a browser-level switch for testing purposes only.
+ const char kNoSandbox[] = "no-sandbox";
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++const char kDisableUnveil[] = "disable-unveil";
++
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Instructs the zygote to launch without a sandbox. Processes forked from this
+ // type of zygote will apply their own custom sandboxes later.
+ const char kNoZygoteSandbox[] = "no-zygote-sandbox";
diff --git a/chromium/patches/patch-sandbox_policy_switches.h b/chromium/patches/patch-sandbox_policy_switches.h
new file mode 100644
index 0000000000..ba87ea6bfb
--- /dev/null
+++ b/chromium/patches/patch-sandbox_policy_switches.h
@@ -0,0 +1,31 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/policy/switches.h.orig 2024-07-24 02:44:43.565452600 +0000
++++ sandbox/policy/switches.h
+@@ -57,10 +57,10 @@ SANDBOX_POLICY_EXPORT extern const char
+ SANDBOX_POLICY_EXPORT extern const char kMirroringSandbox[];
+ #endif // BUILDFLAG(IS_MAC)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ SANDBOX_POLICY_EXPORT extern const char kHardwareVideoDecodingSandbox[];
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ SANDBOX_POLICY_EXPORT extern const char kHardwareVideoEncodingSandbox[];
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+
+@@ -82,7 +82,8 @@ SANDBOX_POLICY_EXPORT extern const char
+ SANDBOX_POLICY_EXPORT extern const char kGpuSandboxAllowSysVShm[];
+ SANDBOX_POLICY_EXPORT extern const char kGpuSandboxFailuresFatal[];
+ SANDBOX_POLICY_EXPORT extern const char kNoSandbox[];
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++SANDBOX_POLICY_EXPORT extern const char kDisableUnveil[];
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ SANDBOX_POLICY_EXPORT extern const char kNoZygoteSandbox[];
+ #endif
+ #if BUILDFLAG(IS_WIN)
diff --git a/chromium/patches/patch-services_audio_BUILD.gn b/chromium/patches/patch-services_audio_BUILD.gn
deleted file mode 100644
index d0d0734a68..0000000000
--- a/chromium/patches/patch-services_audio_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- services/audio/BUILD.gn.orig 2020-07-15 18:56:47.000000000 +0000
-+++ services/audio/BUILD.gn
-@@ -74,7 +74,7 @@ source_set("audio") {
- "//services/service_manager/sandbox",
- ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "audio_sandbox_hook_linux.cc",
- "audio_sandbox_hook_linux.h",
diff --git a/chromium/patches/patch-services_audio_audio__sandbox__hook__linux.cc b/chromium/patches/patch-services_audio_audio__sandbox__hook__linux.cc
new file mode 100644
index 0000000000..16ec98b696
--- /dev/null
+++ b/chromium/patches/patch-services_audio_audio__sandbox__hook__linux.cc
@@ -0,0 +1,37 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/audio/audio_sandbox_hook_linux.cc.orig 2024-07-24 02:44:43.597455700 +0000
++++ services/audio/audio_sandbox_hook_linux.cc
+@@ -143,6 +143,7 @@ void AddPulseAudioFilePermissions(
+ }
+ #endif
+
++#if !BUILDFLAG(IS_BSD)
+ std::vector<BrokerFilePermission> GetAudioFilePermissions() {
+ std::vector<BrokerFilePermission> permissions{
+ BrokerFilePermission::ReadOnly("/dev/urandom"),
+@@ -171,10 +172,12 @@ void LoadAudioLibraries() {
+ }
+ }
+ }
++#endif
+
+ } // namespace
+
+ bool AudioPreSandboxHook(sandbox::policy::SandboxLinux::Options options) {
++#if !BUILDFLAG(IS_BSD)
+ LoadAudioLibraries();
+ auto* instance = sandbox::policy::SandboxLinux::GetInstance();
+ instance->StartBrokerProcess(MakeBrokerCommandSet({
+@@ -192,6 +195,7 @@ bool AudioPreSandboxHook(sandbox::policy
+ // TODO(crbug.com/40579955) enable namespace sandbox. Currently, if
+ // enabled, connect() on pulse native socket fails with ENOENT (called from
+ // pa_context_connect).
++#endif
+
+ return true;
+ }
diff --git a/chromium/patches/patch-services_audio_audio__sandbox__hook__linux.h b/chromium/patches/patch-services_audio_audio__sandbox__hook__linux.h
new file mode 100644
index 0000000000..6440ffae92
--- /dev/null
+++ b/chromium/patches/patch-services_audio_audio__sandbox__hook__linux.h
@@ -0,0 +1,22 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/audio/audio_sandbox_hook_linux.h.orig 2024-07-24 02:44:43.597455700 +0000
++++ services/audio/audio_sandbox_hook_linux.h
+@@ -5,7 +5,13 @@
+ #ifndef SERVICES_AUDIO_AUDIO_SANDBOX_HOOK_LINUX_H_
+ #define SERVICES_AUDIO_AUDIO_SANDBOX_HOOK_LINUX_H_
+
++#include "build/build_config.h"
++
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
++#else
+ #include "sandbox/policy/linux/sandbox_linux.h"
++#endif
+
+ namespace audio {
+
diff --git a/chromium/patches/patch-services_device_BUILD.gn b/chromium/patches/patch-services_device_BUILD.gn
index 0cade2b970..235890ab9f 100644
--- a/chromium/patches/patch-services_device_BUILD.gn
+++ b/chromium/patches/patch-services_device_BUILD.gn
@@ -1,22 +1,17 @@
$NetBSD$
---- services/device/BUILD.gn.orig 2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/device/BUILD.gn.orig 2024-07-24 02:44:43.621458000 +0000
+++ services/device/BUILD.gn
-@@ -8,7 +8,7 @@ if (is_android) {
- import("//build/config/android/rules.gni")
+@@ -14,7 +14,7 @@ if (is_android) {
}
--is_serial_enabled_platform = is_win || (is_linux && use_udev) || is_mac
-+is_serial_enabled_platform = is_win || ((is_linux || is_bsd) && use_udev) || is_mac
+ is_serial_enabled_platform =
+- is_win || ((is_linux || is_chromeos) && use_udev) || is_mac
++ is_win || ((!is_bsd && is_linux || is_chromeos) && use_udev) || is_mac
source_set("lib") {
# This should be visible only to embedders of the Device Service, and the
-@@ -92,7 +92,7 @@ component("binder_overrides") {
- defines = [ "IS_DEVICE_SERVICE_BINDER_OVERRIDES_IMPL" ]
- }
-
--is_linux_without_udev = is_linux && !use_udev
-+is_linux_without_udev = (is_linux || is_bsd) && !use_udev
-
- source_set("perftests") {
- testonly = true
diff --git a/chromium/patches/patch-services_device_battery_BUILD.gn b/chromium/patches/patch-services_device_battery_BUILD.gn
deleted file mode 100644
index 7fb47bdd61..0000000000
--- a/chromium/patches/patch-services_device_battery_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- services/device/battery/BUILD.gn.orig 2020-07-15 18:56:47.000000000 +0000
-+++ services/device/battery/BUILD.gn
-@@ -49,7 +49,7 @@ if (!is_android) {
- ]
- }
-
-- if (is_linux && !is_chromeos) {
-+ if ((is_linux || is_bsd) && !is_chromeos) {
- if (use_dbus) {
- configs += [ "//build/config/linux/dbus" ]
- deps += [ "//dbus" ]
diff --git a/chromium/patches/patch-services_device_geolocation_BUILD.gn b/chromium/patches/patch-services_device_geolocation_BUILD.gn
deleted file mode 100644
index a5ff59f42a..0000000000
--- a/chromium/patches/patch-services_device_geolocation_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- services/device/geolocation/BUILD.gn.orig 2020-07-15 18:56:47.000000000 +0000
-+++ services/device/geolocation/BUILD.gn
-@@ -98,7 +98,7 @@ source_set("geolocation") {
- if (is_chromeos || (is_linux && !use_dbus)) {
- sources -= [ "wifi_data_provider_linux.cc" ]
- }
-- if (is_linux && use_dbus) {
-+ if ((is_linux || is_bsd) && use_dbus) {
- sources -= [ "empty_wifi_data_provider.cc" ]
- deps += [ "//dbus" ]
- }
diff --git a/chromium/patches/patch-services_device_geolocation_location__arbitrator.cc b/chromium/patches/patch-services_device_geolocation_location__arbitrator.cc
deleted file mode 100644
index 619bcee461..0000000000
--- a/chromium/patches/patch-services_device_geolocation_location__arbitrator.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- services/device/geolocation/location_arbitrator.cc.orig 2020-07-15 18:56:01.000000000 +0000
-+++ services/device/geolocation/location_arbitrator.cc
-@@ -156,7 +156,7 @@ LocationArbitrator::NewNetworkLocationPr
-
- std::unique_ptr<LocationProvider>
- LocationArbitrator::NewSystemLocationProvider() {
--#if defined(OS_LINUX) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_FUCHSIA) || defined(OS_BSD)
- return nullptr;
- #else
- return device::NewSystemLocationProvider();
diff --git a/chromium/patches/patch-services_device_hid_BUILD.gn b/chromium/patches/patch-services_device_hid_BUILD.gn
index 0bce1459e8..bccbaf1d8d 100644
--- a/chromium/patches/patch-services_device_hid_BUILD.gn
+++ b/chromium/patches/patch-services_device_hid_BUILD.gn
@@ -1,16 +1,27 @@
$NetBSD$
---- services/device/hid/BUILD.gn.orig 2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/device/hid/BUILD.gn.orig 2024-07-24 02:44:43.649460800 +0000
+++ services/device/hid/BUILD.gn
-@@ -51,6 +51,26 @@ source_set("hid") {
- deps += [ "//device/udev_linux" ]
- }
+@@ -36,7 +36,35 @@ source_set("hid") {
+ "//services/device/public/mojom",
+ ]
-+ if (is_freebsd) {
-+ sources -= [
-+ "hid_connection_linux.cc",
-+ "hid_connection_linux.h",
+- if ((is_linux || is_chromeos) && use_udev) {
++ if (is_openbsd) {
++ sources += [
++ "hid_connection_fido.cc",
++ "hid_connection_fido.h",
++ "hid_service_fido.cc",
++ "hid_service_fido.h",
+ ]
++ libs = ["fido2", "cbor", "usbhid", "crypto", "util"]
++ }
++
++ if (is_freebsd) {
+ sources += [
+ "hid_connection_freebsd.cc",
+ "hid_connection_freebsd.h",
@@ -19,13 +30,16 @@ $NetBSD$
+ ]
+ }
+
-+ if (is_netbsd) {
-+ sources -= [
-+ "hid_connection_linux.cc",
-+ "hid_connection_linux.h",
-+ ]
-+ }
++# if (is_netbsd) {
++# sources += [
++# "hid_connection_netbsd.cc",
++# "hid_connection_netbsd.h",
++# "hid_service_netbsd.cc",
++# "hid_service_netbsd.h",
++# ]
++# }
+
- if (is_chromeos) {
- deps += [ "//chromeos/dbus/permission_broker" ]
- }
++ if ((is_linux || is_chromeos) && !is_bsd && use_udev) {
+ sources += [
+ "hid_connection_linux.cc",
+ "hid_connection_linux.h",
diff --git a/chromium/patches/patch-services_device_hid_hid__connection__fido.cc b/chromium/patches/patch-services_device_hid_hid__connection__fido.cc
new file mode 100644
index 0000000000..aff9fae79b
--- /dev/null
+++ b/chromium/patches/patch-services_device_hid_hid__connection__fido.cc
@@ -0,0 +1,225 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/device/hid/hid_connection_fido.cc.orig 2024-08-01 14:09:00.320974628 +0000
++++ services/device/hid/hid_connection_fido.cc
+@@ -0,0 +1,216 @@
++// Copyright 2014 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "services/device/hid/hid_connection_fido.h"
++
++#include <errno.h>
++#include <sys/ioctl.h>
++
++#include <memory>
++#include <string>
++#include <utility>
++
++#include "base/files/file_descriptor_watcher_posix.h"
++#include "base/memory/ref_counted_memory.h"
++#include "base/posix/eintr_wrapper.h"
++#include "base/threading/scoped_blocking_call.h"
++#include "components/device_event_log/device_event_log.h"
++#include "services/device/hid/hid_service.h"
++
++namespace device {
++
++class HidConnectionFido::BlockingTaskRunnerHelper {
++ public:
++ BlockingTaskRunnerHelper(base::ScopedFD fd,
++ scoped_refptr<HidDeviceInfo> device_info,
++ base::WeakPtr<HidConnectionFido> connection)
++ : fd_(std::move(fd)),
++ connection_(connection),
++ origin_task_runner_(base::SequencedTaskRunner::GetCurrentDefault()) {
++ DETACH_FROM_SEQUENCE(sequence_checker_);
++ // Report buffers must always have room for the report ID.
++ report_buffer_size_ = device_info->max_input_report_size() + 1;
++ has_report_id_ = device_info->has_report_id();
++ }
++
++ BlockingTaskRunnerHelper(const BlockingTaskRunnerHelper&) = delete;
++ BlockingTaskRunnerHelper& operator=(const BlockingTaskRunnerHelper&) = delete;
++
++ ~BlockingTaskRunnerHelper() {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++ }
++
++ // Starts the FileDescriptorWatcher that reads input events from the device.
++ // Must be called on a thread that has a base::MessageLoopForIO.
++ void Start() {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++
++ file_watcher_ = base::FileDescriptorWatcher::WatchReadable(
++ fd_.get(), base::BindRepeating(
++ &BlockingTaskRunnerHelper::OnFileCanReadWithoutBlocking,
++ base::Unretained(this)));
++ }
++
++ void Write(scoped_refptr<base::RefCountedBytes> buffer,
++ WriteCallback callback) {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++ base::ScopedBlockingCall scoped_blocking_call(
++ FROM_HERE, base::BlockingType::MAY_BLOCK);
++
++ auto data = buffer->data();
++ size_t size = buffer->size();
++ // if report id is 0, it shouldn't be included
++ if (data[0] == 0) {
++ data++;
++ size--;
++ }
++
++ ssize_t result =
++ HANDLE_EINTR(write(fd_.get(), data, size));
++ if (result < 0) {
++ HID_PLOG(EVENT) << "Write failed";
++ origin_task_runner_->PostTask(FROM_HERE,
++ base::BindOnce(std::move(callback), false));
++ } else {
++ if (static_cast<size_t>(result) != size) {
++ HID_LOG(EVENT) << "Incomplete HID write: " << result
++ << " != " << buffer->size();
++ }
++ origin_task_runner_->PostTask(FROM_HERE,
++ base::BindOnce(std::move(callback), true));
++ }
++ }
++
++ void GetFeatureReport(uint8_t report_id,
++ scoped_refptr<base::RefCountedBytes> buffer,
++ ReadCallback callback) {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++ base::ScopedBlockingCall scoped_blocking_call(
++ FROM_HERE, base::BlockingType::MAY_BLOCK);
++ HID_PLOG(EVENT) << "GendFeatureReport not implemented on OpenBSD";
++ origin_task_runner_->PostTask(
++ FROM_HERE, base::BindOnce(std::move(callback), false, nullptr, 0));
++ }
++
++ void SendFeatureReport(scoped_refptr<base::RefCountedBytes> buffer,
++ WriteCallback callback) {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++ base::ScopedBlockingCall scoped_blocking_call(
++ FROM_HERE, base::BlockingType::MAY_BLOCK);
++ HID_PLOG(EVENT) << "SendFeatureReport not implemented on OpenBSD";
++ origin_task_runner_->PostTask(FROM_HERE,
++ base::BindOnce(std::move(callback), false));
++ }
++
++ private:
++ void OnFileCanReadWithoutBlocking() {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++
++ auto buffer =
++ base::MakeRefCounted<base::RefCountedBytes>(report_buffer_size_);
++ uint8_t* data = buffer->as_vector().data();
++ size_t length = report_buffer_size_;
++ if (!has_report_id_) {
++ // Fido will not prefix the buffer with a report ID if report IDs are not
++ // used by the device. Prefix the buffer with 0.
++ *data++ = 0;
++ length--;
++ }
++
++ ssize_t bytes_read = HANDLE_EINTR(read(fd_.get(), data, length));
++ if (bytes_read < 0) {
++ if (errno != EAGAIN) {
++ HID_PLOG(EVENT) << "Read failed";
++ // This assumes that the error is unrecoverable and disables reading
++ // from the device until it has been re-opened.
++ // TODO(reillyg): Investigate starting and stopping the file descriptor
++ // watcher in response to pending read requests so that per-request
++ // errors can be returned to the client.
++ file_watcher_.reset();
++ }
++ return;
++ }
++ if (!has_report_id_) {
++ // Behave as if the byte prefixed above as the the report ID was read.
++ bytes_read++;
++ }
++
++ origin_task_runner_->PostTask(
++ FROM_HERE, base::BindOnce(&HidConnectionFido::ProcessInputReport,
++ connection_, buffer, bytes_read));
++ }
++
++ SEQUENCE_CHECKER(sequence_checker_);
++ base::ScopedFD fd_;
++ size_t report_buffer_size_;
++ bool has_report_id_;
++ base::WeakPtr<HidConnectionFido> connection_;
++ const scoped_refptr<base::SequencedTaskRunner> origin_task_runner_;
++ std::unique_ptr<base::FileDescriptorWatcher::Controller> file_watcher_;
++};
++
++HidConnectionFido::HidConnectionFido(
++ scoped_refptr<HidDeviceInfo> device_info,
++ base::ScopedFD fd,
++ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner,
++ bool allow_protected_reports,
++ bool allow_fido_reports)
++ : HidConnection(device_info, allow_protected_reports, allow_fido_reports),
++ helper_(nullptr, base::OnTaskRunnerDeleter(blocking_task_runner)),
++ blocking_task_runner_(std::move(blocking_task_runner)) {
++ helper_.reset(new BlockingTaskRunnerHelper(std::move(fd), device_info,
++ weak_factory_.GetWeakPtr()));
++ blocking_task_runner_->PostTask(
++ FROM_HERE, base::BindOnce(&BlockingTaskRunnerHelper::Start,
++ base::Unretained(helper_.get())));
++}
++
++HidConnectionFido::~HidConnectionFido() {}
++
++void HidConnectionFido::PlatformClose() {
++ // By closing the device on the blocking task runner 1) the requirement that
++ // base::ScopedFD is destroyed on a thread where I/O is allowed is satisfied
++ // and 2) any tasks posted to this task runner that refer to this file will
++ // complete before it is closed.
++ helper_.reset();
++}
++
++void HidConnectionFido::PlatformWrite(
++ scoped_refptr<base::RefCountedBytes> buffer,
++ WriteCallback callback) {
++ // Fido expects the first byte of the buffer to always be a report ID so the
++ // buffer can be used directly.
++ blocking_task_runner_->PostTask(
++ FROM_HERE, base::BindOnce(&BlockingTaskRunnerHelper::Write,
++ base::Unretained(helper_.get()), buffer,
++ std::move(callback)));
++}
++
++void HidConnectionFido::PlatformGetFeatureReport(uint8_t report_id,
++ ReadCallback callback) {
++ // The first byte of the destination buffer is the report ID being requested
++ // and is overwritten by the feature report.
++ DCHECK_GT(device_info()->max_feature_report_size(), 0u);
++ auto buffer = base::MakeRefCounted<base::RefCountedBytes>(
++ device_info()->max_feature_report_size() + 1);
++ buffer->as_vector().data()[0] = report_id;
++
++ blocking_task_runner_->PostTask(
++ FROM_HERE, base::BindOnce(&BlockingTaskRunnerHelper::GetFeatureReport,
++ base::Unretained(helper_.get()), report_id,
++ buffer, std::move(callback)));
++}
++
++void HidConnectionFido::PlatformSendFeatureReport(
++ scoped_refptr<base::RefCountedBytes> buffer,
++ WriteCallback callback) {
++ // Fido expects the first byte of the buffer to always be a report ID so the
++ // buffer can be used directly.
++ blocking_task_runner_->PostTask(
++ FROM_HERE, base::BindOnce(&BlockingTaskRunnerHelper::SendFeatureReport,
++ base::Unretained(helper_.get()), buffer,
++ std::move(callback)));
++}
++
++} // namespace device
diff --git a/chromium/patches/patch-services_device_hid_hid__connection__fido.h b/chromium/patches/patch-services_device_hid_hid__connection__fido.h
new file mode 100644
index 0000000000..d70c71e227
--- /dev/null
+++ b/chromium/patches/patch-services_device_hid_hid__connection__fido.h
@@ -0,0 +1,69 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/device/hid/hid_connection_fido.h.orig 2024-08-01 14:09:00.324055191 +0000
++++ services/device/hid/hid_connection_fido.h
+@@ -0,0 +1,60 @@
++// Copyright 2014 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef SERVICES_DEVICE_HID_HID_CONNECTION_LINUX_H_
++#define SERVICES_DEVICE_HID_HID_CONNECTION_LINUX_H_
++
++#include <stddef.h>
++#include <stdint.h>
++
++#include "base/files/scoped_file.h"
++#include "base/memory/weak_ptr.h"
++#include "base/task/sequenced_task_runner.h"
++#include "services/device/hid/hid_connection.h"
++
++namespace base {
++class SequencedTaskRunner;
++}
++
++namespace device {
++
++class HidConnectionFido : public HidConnection {
++ public:
++ HidConnectionFido(
++ scoped_refptr<HidDeviceInfo> device_info,
++ base::ScopedFD fd,
++ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner,
++ bool allow_protected_reports,
++ bool allow_fido_reports);
++ HidConnectionFido(HidConnectionFido&) = delete;
++ HidConnectionFido& operator=(HidConnectionFido&) = delete;
++
++ private:
++ friend class base::RefCountedThreadSafe<HidConnectionFido>;
++ class BlockingTaskRunnerHelper;
++
++ ~HidConnectionFido() override;
++
++ // HidConnection implementation.
++ void PlatformClose() override;
++ void PlatformWrite(scoped_refptr<base::RefCountedBytes> buffer,
++ WriteCallback callback) override;
++ void PlatformGetFeatureReport(uint8_t report_id,
++ ReadCallback callback) override;
++ void PlatformSendFeatureReport(scoped_refptr<base::RefCountedBytes> buffer,
++ WriteCallback callback) override;
++
++ // |helper_| lives on the sequence to which |blocking_task_runner_| posts
++ // tasks so all calls must be posted there including this object's
++ // destruction.
++ std::unique_ptr<BlockingTaskRunnerHelper, base::OnTaskRunnerDeleter> helper_;
++
++ const scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_;
++
++ base::WeakPtrFactory<HidConnectionFido> weak_factory_{this};
++};
++
++} // namespace device
++
++#endif // SERVICES_DEVICE_HID_HID_CONNECTION_LINUX_H_
diff --git a/chromium/patches/patch-services_device_hid_hid__connection__freebsd.cc b/chromium/patches/patch-services_device_hid_hid__connection__freebsd.cc
new file mode 100644
index 0000000000..506d7d7cfb
--- /dev/null
+++ b/chromium/patches/patch-services_device_hid_hid__connection__freebsd.cc
@@ -0,0 +1,249 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/device/hid/hid_connection_freebsd.cc.orig 2024-08-01 14:09:00.326470306 +0000
++++ services/device/hid/hid_connection_freebsd.cc
+@@ -0,0 +1,240 @@
++// Copyright (c) 2014 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "services/device/hid/hid_connection_freebsd.h"
++
++#include <dev/usb/usbhid.h>
++#include <dev/usb/usb_ioctl.h>
++
++#include "base/files/file_descriptor_watcher_posix.h"
++#include "base/location.h"
++#include "base/numerics/safe_math.h"
++#include "base/posix/eintr_wrapper.h"
++#include "base/strings/stringprintf.h"
++#include "base/task/single_thread_task_runner.h"
++#include "base/threading/scoped_blocking_call.h"
++#include "base/threading/thread_restrictions.h"
++#include "components/device_event_log/device_event_log.h"
++#include "services/device/hid/hid_service.h"
++
++namespace device {
++
++class HidConnectionFreeBSD::BlockingTaskRunnerHelper {
++ public:
++ BlockingTaskRunnerHelper(base::ScopedFD fd,
++ scoped_refptr<HidDeviceInfo> device_info,
++ base::WeakPtr<HidConnectionFreeBSD> connection)
++ : fd_(std::move(fd)),
++ connection_(connection),
++ origin_task_runner_(base::SequencedTaskRunner::GetCurrentDefault()) {
++ DETACH_FROM_SEQUENCE(sequence_checker_);
++ // Report buffers must always have room for the report ID.
++ report_buffer_size_ = device_info->max_input_report_size() + 1;
++ has_report_id_ = device_info->has_report_id();
++ }
++
++ BlockingTaskRunnerHelper(const BlockingTaskRunnerHelper&) = delete;
++ BlockingTaskRunnerHelper& operator=(const BlockingTaskRunnerHelper&) = delete;
++
++ ~BlockingTaskRunnerHelper() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); }
++
++ // Starts the FileDescriptorWatcher that reads input events from the device.
++ // Must be called on a thread that has a base::MessageLoopForIO.
++ void Start() {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++ base::internal::AssertBlockingAllowed();
++
++ file_watcher_ = base::FileDescriptorWatcher::WatchReadable(
++ fd_.get(), base::BindRepeating(&BlockingTaskRunnerHelper::OnFileCanReadWithoutBlocking,
++ base::Unretained(this)));
++ }
++
++ void Write(scoped_refptr<base::RefCountedBytes> buffer,
++ WriteCallback callback) {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++ base::ScopedBlockingCall scoped_blocking_call(
++ FROM_HERE, base::BlockingType::MAY_BLOCK);
++
++ auto data = buffer->as_vector().data();
++ size_t size = buffer->size();
++ // if report id is 0, it shouldn't be included
++ if (data[0] == 0) {
++ data++;
++ size--;
++ }
++
++ ssize_t result = HANDLE_EINTR(write(fd_.get(), data, size));
++ if (result < 0) {
++ HID_PLOG(EVENT) << "Write failed";
++ origin_task_runner_->PostTask(FROM_HERE, base::BindOnce(std::move(callback), false));
++ } else {
++ if (static_cast<size_t>(result) != size)
++ HID_LOG(EVENT) << "Incomplete HID write: " << result << " != " << size;
++ origin_task_runner_->PostTask(FROM_HERE, base::BindOnce(std::move(callback), true));
++ }
++ }
++
++ void GetFeatureReport(uint8_t report_id,
++ scoped_refptr<base::RefCountedBytes> buffer,
++ ReadCallback callback) {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++ base::ScopedBlockingCall scoped_blocking_call(
++ FROM_HERE, base::BlockingType::MAY_BLOCK);
++ struct usb_gen_descriptor ugd;
++ ugd.ugd_report_type = UHID_FEATURE_REPORT;
++ ugd.ugd_data = buffer->data();
++ ugd.ugd_maxlen = buffer->size();
++ int result = HANDLE_EINTR(
++ ioctl(fd_.get(), USB_GET_REPORT, &ugd));
++ if (result < 0) {
++ HID_PLOG(EVENT) << "Failed to get feature report";
++ origin_task_runner_->PostTask(FROM_HERE,
++ base::BindOnce(std::move(callback), false, nullptr, 0));
++ } else if (result == 0) {
++ HID_LOG(EVENT) << "Get feature result too short.";
++ origin_task_runner_->PostTask(FROM_HERE,
++ base::BindOnce(std::move(callback), false, nullptr, 0));
++ } else {
++ origin_task_runner_->PostTask(FROM_HERE,
++ base::BindOnce(std::move(callback), true, buffer, result));
++ }
++ }
++
++ void SendFeatureReport(scoped_refptr<base::RefCountedBytes> buffer,
++ WriteCallback callback) {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++ struct usb_gen_descriptor ugd;
++ ugd.ugd_report_type = UHID_FEATURE_REPORT;
++ ugd.ugd_data = buffer->data();
++ ugd.ugd_maxlen = buffer->size();
++ // FreeBSD does not require report id if it's not used
++ if (buffer->data()[0] == 0) {
++ ugd.ugd_data = buffer->data() + 1;
++ ugd.ugd_maxlen = buffer->size() - 1;
++ } else {
++ ugd.ugd_data = buffer->data();
++ ugd.ugd_maxlen = buffer->size();
++ }
++ int result = HANDLE_EINTR(
++ ioctl(fd_.get(), USB_SET_REPORT, &ugd));
++ if (result < 0) {
++ HID_PLOG(EVENT) << "Failed to send feature report";
++ origin_task_runner_->PostTask(FROM_HERE,
++ base::BindOnce(std::move(callback), false));
++ } else {
++ origin_task_runner_->PostTask(FROM_HERE,
++ base::BindOnce(std::move(callback), true));
++ }
++ }
++
++ private:
++ void OnFileCanReadWithoutBlocking() {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++
++ scoped_refptr<base::RefCountedBytes> buffer(new base::RefCountedBytes(report_buffer_size_));
++ unsigned char* data = buffer->data();
++ size_t length = report_buffer_size_;
++ if (!has_report_id_) {
++ // FreeBSD will not prefix the buffer with a report ID if report IDs are not
++ // used by the device. Prefix the buffer with 0.
++ *data++ = 0;
++ length--;
++ }
++
++ ssize_t bytes_read = HANDLE_EINTR(read(fd_.get(), data, length));
++ if (bytes_read < 0) {
++ if (errno != EAGAIN) {
++ HID_PLOG(EVENT) << "Read failed";
++ // This assumes that the error is unrecoverable and disables reading
++ // from the device until it has been re-opened.
++ // TODO(reillyg): Investigate starting and stopping the file descriptor
++ // watcher in response to pending read requests so that per-request
++ // errors can be returned to the client.
++ file_watcher_.reset();
++ }
++ return;
++ }
++ if (!has_report_id_) {
++ // Behave as if the byte prefixed above as the the report ID was read.
++ bytes_read++;
++ }
++
++ origin_task_runner_->PostTask(
++ FROM_HERE, base::BindOnce(&HidConnectionFreeBSD::ProcessInputReport,
++ connection_, buffer, bytes_read));
++ }
++
++ SEQUENCE_CHECKER(sequence_checker_);
++ base::ScopedFD fd_;
++ size_t report_buffer_size_;
++ bool has_report_id_;
++ base::WeakPtr<HidConnectionFreeBSD> connection_;
++ const scoped_refptr<base::SequencedTaskRunner> origin_task_runner_;
++ std::unique_ptr<base::FileDescriptorWatcher::Controller> file_watcher_;
++};
++
++HidConnectionFreeBSD::HidConnectionFreeBSD(
++ scoped_refptr<HidDeviceInfo> device_info,
++ base::ScopedFD fd,
++ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner,
++ bool allow_protected_reports,
++ bool allow_fido_reports)
++ : HidConnection(device_info, allow_protected_reports, allow_fido_reports),
++ helper_(nullptr, base::OnTaskRunnerDeleter(blocking_task_runner)),
++ blocking_task_runner_(std::move(blocking_task_runner)) {
++ helper_.reset(new BlockingTaskRunnerHelper(std::move(fd), device_info,
++ weak_factory_.GetWeakPtr()));
++ blocking_task_runner_->PostTask(
++ FROM_HERE, base::BindOnce(&BlockingTaskRunnerHelper::Start,
++ base::Unretained(helper_.get())));
++}
++
++HidConnectionFreeBSD::~HidConnectionFreeBSD() {}
++
++void HidConnectionFreeBSD::PlatformClose() {
++ // By closing the device on the blocking task runner 1) the requirement that
++ // base::ScopedFD is destroyed on a thread where I/O is allowed is satisfied
++ // and 2) any tasks posted to this task runner that refer to this file will
++ // complete before it is closed.
++ blocking_task_runner_->DeleteSoon(FROM_HERE, helper_.release());
++}
++
++void HidConnectionFreeBSD::PlatformWrite(scoped_refptr<base::RefCountedBytes> buffer,
++ WriteCallback callback) {
++
++ blocking_task_runner_->PostTask(
++ FROM_HERE,
++ base::BindOnce(&BlockingTaskRunnerHelper::Write, base::Unretained(helper_.get()),
++ buffer, std::move(callback)));
++}
++
++void HidConnectionFreeBSD::PlatformGetFeatureReport(uint8_t report_id,
++ ReadCallback callback) {
++ // The first byte of the destination buffer is the report ID being requested
++ // and is overwritten by the feature report.
++ DCHECK_GT(device_info()->max_feature_report_size(), 0u);
++ scoped_refptr<base::RefCountedBytes> buffer(
++ new base::RefCountedBytes(device_info()->max_feature_report_size() + 1));
++ if (report_id != 0)
++ buffer->data()[0] = report_id;
++
++ blocking_task_runner_->PostTask(
++ FROM_HERE,
++ base::BindOnce(&BlockingTaskRunnerHelper::GetFeatureReport,
++ base::Unretained(helper_.get()), report_id,
++ buffer, std::move(callback)));
++}
++
++void HidConnectionFreeBSD::PlatformSendFeatureReport(
++ scoped_refptr<base::RefCountedBytes> buffer,
++ WriteCallback callback) {
++ base::ScopedBlockingCall scoped_blocking_call(
++ FROM_HERE, base::BlockingType::MAY_BLOCK);
++ blocking_task_runner_->PostTask(
++ FROM_HERE,
++ base::BindOnce(&BlockingTaskRunnerHelper::SendFeatureReport,
++ base::Unretained(helper_.get()), buffer, std::move(callback)));
++}
++
++} // namespace device
diff --git a/chromium/patches/patch-services_device_hid_hid__connection__freebsd.h b/chromium/patches/patch-services_device_hid_hid__connection__freebsd.h
new file mode 100644
index 0000000000..a903f3da82
--- /dev/null
+++ b/chromium/patches/patch-services_device_hid_hid__connection__freebsd.h
@@ -0,0 +1,76 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/device/hid/hid_connection_freebsd.h.orig 2024-08-01 14:09:00.334342545 +0000
++++ services/device/hid/hid_connection_freebsd.h
+@@ -0,0 +1,67 @@
++// Copyright (c) 2014 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef DEVICE_HID_HID_CONNECTION_FREEBSD_H_
++#define DEVICE_HID_HID_CONNECTION_FREEBSD_H_
++
++#include <stddef.h>
++#include <stdint.h>
++
++#include "base/files/scoped_file.h"
++#include "base/memory/weak_ptr.h"
++#include "base/memory/ref_counted_memory.h"
++#include "base/task/sequenced_task_runner.h"
++#include "services/device/hid/hid_connection.h"
++
++namespace base {
++class SequencedTaskRunner;
++}
++
++namespace net {
++class IOBuffer;
++}
++
++namespace device {
++
++class HidConnectionFreeBSD : public HidConnection {
++ public:
++ HidConnectionFreeBSD(
++ scoped_refptr<HidDeviceInfo> device_info,
++ base::ScopedFD fd,
++ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner,
++ bool allow_protected_reports,
++ bool allow_fido_reports);
++
++ private:
++ friend class base::RefCountedThreadSafe<HidConnectionFreeBSD>;
++ class BlockingTaskRunnerHelper;
++
++ HidConnectionFreeBSD(const HidConnectionFreeBSD&) = delete;
++ HidConnectionFreeBSD& operator=(const HidConnectionFreeBSD&) = delete;
++
++ ~HidConnectionFreeBSD() override;
++
++ // HidConnection implementation.
++ void PlatformClose() override;
++ void PlatformWrite(scoped_refptr<base::RefCountedBytes> buffer,
++ WriteCallback callback) override;
++ void PlatformGetFeatureReport(uint8_t report_id,
++ ReadCallback callback) override;
++ void PlatformSendFeatureReport(scoped_refptr<base::RefCountedBytes> buffer,
++ WriteCallback callback) override;
++
++ // |helper_| lives on the sequence to which |blocking_task_runner_| posts
++ // tasks so all calls must be posted there including this object's
++ // destruction.
++ std::unique_ptr<BlockingTaskRunnerHelper, base::OnTaskRunnerDeleter> helper_;
++
++ const scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_;
++ const scoped_refptr<base::SequencedTaskRunner> task_runner_;
++
++ base::WeakPtrFactory<HidConnectionFreeBSD> weak_factory_{this};
++};
++
++} // namespace device
++
++#endif // DEVICE_HID_HID_CONNECTION_FREEBSD_H_
diff --git a/chromium/patches/patch-services_device_hid_hid__connection__netbsd.c b/chromium/patches/patch-services_device_hid_hid__connection__netbsd.c
deleted file mode 100644
index ccf9fcfc16..0000000000
--- a/chromium/patches/patch-services_device_hid_hid__connection__netbsd.c
+++ /dev/null
@@ -1,245 +0,0 @@
-$NetBSD$
-
---- services/device/hid/hid_connection_netbsd.cc.orig 2020-07-23 00:19:17.901829453 +0000
-+++ services/device/hid/hid_connection_netbsd.cc
-@@ -0,0 +1,240 @@
-+// Copyright (c) 2014 The Chromium Authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+#include "services/device/hid/hid_connection_netbsd.h"
-+
-+#include <dev/usb/usbhid.h>
-+#include <dev/usb/usb_ioctl.h>
-+
-+#include "base/bind.h"
-+#include "base/files/file_descriptor_watcher_posix.h"
-+#include "base/location.h"
-+#include "base/numerics/safe_math.h"
-+#include "base/posix/eintr_wrapper.h"
-+#include "base/single_thread_task_runner.h"
-+#include "base/strings/stringprintf.h"
-+#include "base/task/post_task.h"
-+#include "base/threading/scoped_blocking_call.h"
-+#include "base/threading/thread_restrictions.h"
-+#include "base/threading/thread_task_runner_handle.h"
-+#include "components/device_event_log/device_event_log.h"
-+#include "services/device/hid/hid_service.h"
-+
-+namespace device {
-+
-+class HidConnectionNetBSD::BlockingTaskHelper {
-+ public:
-+ BlockingTaskHelper(base::ScopedFD fd,
-+ scoped_refptr<HidDeviceInfo> device_info,
-+ base::WeakPtr<HidConnectionNetBSD> connection)
-+ : fd_(std::move(fd)),
-+ connection_(connection),
-+ origin_task_runner_(base::ThreadTaskRunnerHandle::Get()) {
-+ DETACH_FROM_SEQUENCE(sequence_checker_);
-+ // Report buffers must always have room for the report ID.
-+ report_buffer_size_ = device_info->max_input_report_size() + 1;
-+ has_report_id_ = device_info->has_report_id();
-+ }
-+
-+ ~BlockingTaskHelper() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); }
-+
-+ // Starts the FileDescriptorWatcher that reads input events from the device.
-+ // Must be called on a thread that has a base::MessageLoopForIO.
-+ void Start() {
-+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-+ base::internal::AssertBlockingAllowed();
-+
-+ file_watcher_ = base::FileDescriptorWatcher::WatchReadable(
-+ fd_.get(), base::Bind(&BlockingTaskHelper::OnFileCanReadWithoutBlocking,
-+ base::Unretained(this)));
-+ }
-+
-+ void Write(scoped_refptr<base::RefCountedBytes> buffer,
-+ WriteCallback callback) {
-+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-+ base::ScopedBlockingCall scoped_blocking_call(
-+ FROM_HERE, base::BlockingType::MAY_BLOCK);
-+
-+ auto data = buffer->front();
-+ size_t size = buffer->size();
-+ // if report id is 0, it shouldn't be included
-+ if (data[0] == 0) {
-+ data++;
-+ size--;
-+ }
-+
-+ ssize_t result = HANDLE_EINTR(write(fd_.get(), data, size));
-+ if (result < 0) {
-+ HID_PLOG(EVENT) << "Write failed";
-+ origin_task_runner_->PostTask(FROM_HERE, base::BindOnce(std::move(callback), false));
-+ } else {
-+ if (static_cast<size_t>(result) != size)
-+ HID_LOG(EVENT) << "Incomplete HID write: " << result << " != " << size;
-+ origin_task_runner_->PostTask(FROM_HERE, base::BindOnce(std::move(callback), true));
-+ }
-+ }
-+
-+ void GetFeatureReport(uint8_t report_id,
-+ scoped_refptr<base::RefCountedBytes> buffer,
-+ ReadCallback callback) {
-+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-+ base::ScopedBlockingCall scoped_blocking_call(
-+ FROM_HERE, base::BlockingType::MAY_BLOCK);
-+ struct usb_gen_descriptor ugd;
-+ ugd.ugd_report_type = UHID_FEATURE_REPORT;
-+ ugd.ugd_data = buffer->front();
-+ ugd.ugd_maxlen = buffer->size();
-+ int result = HANDLE_EINTR(
-+ ioctl(fd_.get(), USB_GET_REPORT, &ugd));
-+ if (result < 0) {
-+ HID_PLOG(EVENT) << "Failed to get feature report";
-+ origin_task_runner_->PostTask(FROM_HERE,
-+ base::BindOnce(std::move(callback), false, nullptr, 0));
-+ } else if (result == 0) {
-+ HID_LOG(EVENT) << "Get feature result too short.";
-+ origin_task_runner_->PostTask(FROM_HERE,
-+ base::BindOnce(std::move(callback), false, nullptr, 0));
-+ } else {
-+ origin_task_runner_->PostTask(FROM_HERE,
-+ base::BindOnce(std::move(callback), true, buffer, result));
-+ }
-+ }
-+
-+ void SendFeatureReport(scoped_refptr<base::RefCountedBytes> buffer,
-+ WriteCallback callback) {
-+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-+ struct usb_gen_descriptor ugd;
-+ ugd.ugd_report_type = UHID_FEATURE_REPORT;
-+ ugd.ugd_data = buffer->front();
-+ ugd.ugd_maxlen = buffer->size();
-+ // NetBSD does not require report id if it's not used
-+ if (buffer->front()[0] == 0) {
-+ ugd.ugd_data = buffer->front() + 1;
-+ ugd.ugd_maxlen = buffer->size() - 1;
-+ } else {
-+ ugd.ugd_data = buffer->front();
-+ ugd.ugd_maxlen = buffer->size();
-+ }
-+ int result = HANDLE_EINTR(
-+ ioctl(fd_.get(), USB_SET_REPORT, &ugd));
-+ if (result < 0) {
-+ HID_PLOG(EVENT) << "Failed to send feature report";
-+ origin_task_runner_->PostTask(FROM_HERE,
-+ base::BindOnce(std::move(callback), false));
-+ } else {
-+ origin_task_runner_->PostTask(FROM_HERE,
-+ base::BindOnce(std::move(callback), true));
-+ }
-+ }
-+
-+ private:
-+ void OnFileCanReadWithoutBlocking() {
-+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-+
-+ scoped_refptr<base::RefCountedBytes> buffer(new base::RefCountedBytes(report_buffer_size_));
-+ unsigned char* data = buffer->front();
-+ size_t length = report_buffer_size_;
-+ if (!has_report_id_) {
-+ // NetBSD will not prefix the buffer with a report ID if report IDs are not
-+ // used by the device. Prefix the buffer with 0.
-+ *data++ = 0;
-+ length--;
-+ }
-+
-+ ssize_t bytes_read = HANDLE_EINTR(read(fd_.get(), data, length));
-+ if (bytes_read < 0) {
-+ if (errno != EAGAIN) {
-+ HID_PLOG(EVENT) << "Read failed";
-+ // This assumes that the error is unrecoverable and disables reading
-+ // from the device until it has been re-opened.
-+ // TODO(reillyg): Investigate starting and stopping the file descriptor
-+ // watcher in response to pending read requests so that per-request
-+ // errors can be returned to the client.
-+ file_watcher_.reset();
-+ }
-+ return;
-+ }
-+ if (!has_report_id_) {
-+ // Behave as if the byte prefixed above as the the report ID was read.
-+ bytes_read++;
-+ }
-+
-+ origin_task_runner_->PostTask(
-+ FROM_HERE, base::BindOnce(&HidConnectionNetBSD::ProcessInputReport,
-+ connection_, buffer, bytes_read));
-+ }
-+
-+ SEQUENCE_CHECKER(sequence_checker_);
-+ base::ScopedFD fd_;
-+ size_t report_buffer_size_;
-+ bool has_report_id_;
-+ base::WeakPtr<HidConnectionNetBSD> connection_;
-+ const scoped_refptr<base::SequencedTaskRunner> origin_task_runner_;
-+ std::unique_ptr<base::FileDescriptorWatcher::Controller> file_watcher_;
-+
-+ DISALLOW_COPY_AND_ASSIGN(BlockingTaskHelper);
-+};
-+
-+HidConnectionNetBSD::HidConnectionNetBSD(
-+ scoped_refptr<HidDeviceInfo> device_info,
-+ base::ScopedFD fd,
-+ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner)
-+ : HidConnection(device_info),
-+ blocking_task_runner_(std::move(blocking_task_runner)),
-+ weak_factory_(this) {
-+ helper_ = std::make_unique<BlockingTaskHelper>(std::move(fd), device_info,
-+ weak_factory_.GetWeakPtr());
-+ blocking_task_runner_->PostTask(
-+ FROM_HERE, base::BindOnce(&BlockingTaskHelper::Start,
-+ base::Unretained(helper_.get())));
-+}
-+
-+HidConnectionNetBSD::~HidConnectionNetBSD() {}
-+
-+void HidConnectionNetBSD::PlatformClose() {
-+ // By closing the device on the blocking task runner 1) the requirement that
-+ // base::ScopedFD is destroyed on a thread where I/O is allowed is satisfied
-+ // and 2) any tasks posted to this task runner that refer to this file will
-+ // complete before it is closed.
-+ blocking_task_runner_->DeleteSoon(FROM_HERE, helper_.release());
-+}
-+
-+void HidConnectionNetBSD::PlatformWrite(scoped_refptr<base::RefCountedBytes> buffer,
-+ WriteCallback callback) {
-+
-+ blocking_task_runner_->PostTask(
-+ FROM_HERE,
-+ base::BindOnce(&BlockingTaskHelper::Write, base::Unretained(helper_.get()),
-+ buffer, std::move(callback)));
-+}
-+
-+void HidConnectionNetBSD::PlatformGetFeatureReport(uint8_t report_id,
-+ ReadCallback callback) {
-+ // The first byte of the destination buffer is the report ID being requested
-+ // and is overwritten by the feature report.
-+ DCHECK_GT(device_info()->max_feature_report_size(), 0u);
-+ scoped_refptr<base::RefCountedBytes> buffer(
-+ new base::RefCountedBytes(device_info()->max_feature_report_size() + 1));
-+ if (report_id != 0)
-+ buffer->data()[0] = report_id;
-+
-+ blocking_task_runner_->PostTask(
-+ FROM_HERE,
-+ base::BindOnce(&BlockingTaskHelper::GetFeatureReport,
-+ base::Unretained(helper_.get()), report_id,
-+ buffer, std::move(callback)));
-+}
-+
-+void HidConnectionNetBSD::PlatformSendFeatureReport(
-+ scoped_refptr<base::RefCountedBytes> buffer,
-+ WriteCallback callback) {
-+ base::ScopedBlockingCall scoped_blocking_call(
-+ FROM_HERE, base::BlockingType::MAY_BLOCK);
-+ blocking_task_runner_->PostTask(
-+ FROM_HERE,
-+ base::BindOnce(&BlockingTaskHelper::SendFeatureReport,
-+ base::Unretained(helper_.get()), buffer, std::move(callback)));
-+}
-+
-+} // namespace device
diff --git a/chromium/patches/patch-services_device_hid_hid__connection__netbsd.cc b/chromium/patches/patch-services_device_hid_hid__connection__netbsd.cc
new file mode 100644
index 0000000000..224b04f0cf
--- /dev/null
+++ b/chromium/patches/patch-services_device_hid_hid__connection__netbsd.cc
@@ -0,0 +1,249 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/device/hid/hid_connection_netbsd.cc.orig 2024-08-01 14:09:00.336335818 +0000
++++ services/device/hid/hid_connection_netbsd.cc
+@@ -0,0 +1,240 @@
++// Copyright (c) 2014 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "services/device/hid/hid_connection_netbsd.h"
++
++#include <dev/usb/usbhid.h>
++#include <dev/usb/usb_ioctl.h>
++
++#include "base/files/file_descriptor_watcher_posix.h"
++#include "base/location.h"
++#include "base/numerics/safe_math.h"
++#include "base/posix/eintr_wrapper.h"
++#include "base/strings/stringprintf.h"
++#include "base/task/single_thread_task_runner.h"
++#include "base/threading/scoped_blocking_call.h"
++#include "base/threading/thread_restrictions.h"
++#include "components/device_event_log/device_event_log.h"
++#include "services/device/hid/hid_service.h"
++
++namespace device {
++
++class HidConnectionNetBSD::BlockingTaskRunnerHelper {
++ public:
++ BlockingTaskRunnerHelper(base::ScopedFD fd,
++ scoped_refptr<HidDeviceInfo> device_info,
++ base::WeakPtr<HidConnectionNetBSD> connection)
++ : fd_(std::move(fd)),
++ connection_(connection),
++ origin_task_runner_(base::SequencedTaskRunner::GetCurrentDefault()) {
++ DETACH_FROM_SEQUENCE(sequence_checker_);
++ // Report buffers must always have room for the report ID.
++ report_buffer_size_ = device_info->max_input_report_size() + 1;
++ has_report_id_ = device_info->has_report_id();
++ }
++
++ BlockingTaskRunnerHelper(const BlockingTaskRunnerHelper&) = delete;
++ BlockingTaskRunnerHelper& operator=(const BlockingTaskRunnerHelper&) = delete;
++
++ ~BlockingTaskRunnerHelper() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); }
++
++ // Starts the FileDescriptorWatcher that reads input events from the device.
++ // Must be called on a thread that has a base::MessageLoopForIO.
++ void Start() {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++ base::internal::AssertBlockingAllowed();
++
++ file_watcher_ = base::FileDescriptorWatcher::WatchReadable(
++ fd_.get(), base::BindRepeating(&BlockingTaskRunnerHelper::OnFileCanReadWithoutBlocking,
++ base::Unretained(this)));
++ }
++
++ void Write(scoped_refptr<base::RefCountedBytes> buffer,
++ WriteCallback callback) {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++ base::ScopedBlockingCall scoped_blocking_call(
++ FROM_HERE, base::BlockingType::MAY_BLOCK);
++
++ auto data = buffer->as_vector().data();
++ size_t size = buffer->size();
++ // if report id is 0, it shouldn't be included
++ if (data[0] == 0) {
++ data++;
++ size--;
++ }
++
++ ssize_t result = HANDLE_EINTR(write(fd_.get(), data, size));
++ if (result < 0) {
++ HID_PLOG(EVENT) << "Write failed";
++ origin_task_runner_->PostTask(FROM_HERE, base::BindOnce(std::move(callback), false));
++ } else {
++ if (static_cast<size_t>(result) != size)
++ HID_LOG(EVENT) << "Incomplete HID write: " << result << " != " << size;
++ origin_task_runner_->PostTask(FROM_HERE, base::BindOnce(std::move(callback), true));
++ }
++ }
++
++ void GetFeatureReport(uint8_t report_id,
++ scoped_refptr<base::RefCountedBytes> buffer,
++ ReadCallback callback) {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++ base::ScopedBlockingCall scoped_blocking_call(
++ FROM_HERE, base::BlockingType::MAY_BLOCK);
++ struct usb_gen_descriptor ugd;
++ ugd.ugd_report_type = UHID_FEATURE_REPORT;
++ ugd.ugd_data = buffer->as_vector().data();
++ ugd.ugd_maxlen = buffer->size();
++ int result = HANDLE_EINTR(
++ ioctl(fd_.get(), USB_GET_REPORT, &ugd));
++ if (result < 0) {
++ HID_PLOG(EVENT) << "Failed to get feature report";
++ origin_task_runner_->PostTask(FROM_HERE,
++ base::BindOnce(std::move(callback), false, nullptr, 0));
++ } else if (result == 0) {
++ HID_LOG(EVENT) << "Get feature result too short.";
++ origin_task_runner_->PostTask(FROM_HERE,
++ base::BindOnce(std::move(callback), false, nullptr, 0));
++ } else {
++ origin_task_runner_->PostTask(FROM_HERE,
++ base::BindOnce(std::move(callback), true, buffer, result));
++ }
++ }
++
++ void SendFeatureReport(scoped_refptr<base::RefCountedBytes> buffer,
++ WriteCallback callback) {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++ struct usb_gen_descriptor ugd;
++ ugd.ugd_report_type = UHID_FEATURE_REPORT;
++ ugd.ugd_data = buffer->as_vector().data();
++ ugd.ugd_maxlen = buffer->size();
++ // NetBSD does not require report id if it's not used
++ if (buffer->data()[0] == 0) {
++ ugd.ugd_data = buffer->as_vector().data() + 1;
++ ugd.ugd_maxlen = buffer->size() - 1;
++ } else {
++ ugd.ugd_data = buffer->as_vector().data();
++ ugd.ugd_maxlen = buffer->size();
++ }
++ int result = HANDLE_EINTR(
++ ioctl(fd_.get(), USB_SET_REPORT, &ugd));
++ if (result < 0) {
++ HID_PLOG(EVENT) << "Failed to send feature report";
++ origin_task_runner_->PostTask(FROM_HERE,
++ base::BindOnce(std::move(callback), false));
++ } else {
++ origin_task_runner_->PostTask(FROM_HERE,
++ base::BindOnce(std::move(callback), true));
++ }
++ }
++
++ private:
++ void OnFileCanReadWithoutBlocking() {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++
++ scoped_refptr<base::RefCountedBytes> buffer(new base::RefCountedBytes(report_buffer_size_));
++ unsigned char* data = buffer->as_vector().data();
++ size_t length = report_buffer_size_;
++ if (!has_report_id_) {
++ // NetBSD will not prefix the buffer with a report ID if report IDs are not
++ // used by the device. Prefix the buffer with 0.
++ *data++ = 0;
++ length--;
++ }
++
++ ssize_t bytes_read = HANDLE_EINTR(read(fd_.get(), data, length));
++ if (bytes_read < 0) {
++ if (errno != EAGAIN) {
++ HID_PLOG(EVENT) << "Read failed";
++ // This assumes that the error is unrecoverable and disables reading
++ // from the device until it has been re-opened.
++ // TODO(reillyg): Investigate starting and stopping the file descriptor
++ // watcher in response to pending read requests so that per-request
++ // errors can be returned to the client.
++ file_watcher_.reset();
++ }
++ return;
++ }
++ if (!has_report_id_) {
++ // Behave as if the byte prefixed above as the the report ID was read.
++ bytes_read++;
++ }
++
++ origin_task_runner_->PostTask(
++ FROM_HERE, base::BindOnce(&HidConnectionNetBSD::ProcessInputReport,
++ connection_, buffer, bytes_read));
++ }
++
++ SEQUENCE_CHECKER(sequence_checker_);
++ base::ScopedFD fd_;
++ size_t report_buffer_size_;
++ bool has_report_id_;
++ base::WeakPtr<HidConnectionNetBSD> connection_;
++ const scoped_refptr<base::SequencedTaskRunner> origin_task_runner_;
++ std::unique_ptr<base::FileDescriptorWatcher::Controller> file_watcher_;
++};
++
++HidConnectionNetBSD::HidConnectionNetBSD(
++ scoped_refptr<HidDeviceInfo> device_info,
++ base::ScopedFD fd,
++ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner,
++ bool allow_protected_reports,
++ bool allow_fido_reports)
++ : HidConnection(device_info, allow_protected_reports, allow_fido_reports),
++ helper_(nullptr, base::OnTaskRunnerDeleter(blocking_task_runner)),
++ blocking_task_runner_(std::move(blocking_task_runner)) {
++ helper_.reset(new BlockingTaskRunnerHelper(std::move(fd), device_info,
++ weak_factory_.GetWeakPtr()));
++ blocking_task_runner_->PostTask(
++ FROM_HERE, base::BindOnce(&BlockingTaskRunnerHelper::Start,
++ base::Unretained(helper_.get())));
++}
++
++HidConnectionNetBSD::~HidConnectionNetBSD() {}
++
++void HidConnectionNetBSD::PlatformClose() {
++ // By closing the device on the blocking task runner 1) the requirement that
++ // base::ScopedFD is destroyed on a thread where I/O is allowed is satisfied
++ // and 2) any tasks posted to this task runner that refer to this file will
++ // complete before it is closed.
++ blocking_task_runner_->DeleteSoon(FROM_HERE, helper_.release());
++}
++
++void HidConnectionNetBSD::PlatformWrite(scoped_refptr<base::RefCountedBytes> buffer,
++ WriteCallback callback) {
++
++ blocking_task_runner_->PostTask(
++ FROM_HERE,
++ base::BindOnce(&BlockingTaskRunnerHelper::Write, base::Unretained(helper_.get()),
++ buffer, std::move(callback)));
++}
++
++void HidConnectionNetBSD::PlatformGetFeatureReport(uint8_t report_id,
++ ReadCallback callback) {
++ // The first byte of the destination buffer is the report ID being requested
++ // and is overwritten by the feature report.
++ DCHECK_GT(device_info()->max_feature_report_size(), 0u);
++ scoped_refptr<base::RefCountedBytes> buffer(
++ new base::RefCountedBytes(device_info()->max_feature_report_size() + 1));
++ if (report_id != 0)
++ buffer->as_vector().data()[0] = report_id;
++
++ blocking_task_runner_->PostTask(
++ FROM_HERE,
++ base::BindOnce(&BlockingTaskRunnerHelper::GetFeatureReport,
++ base::Unretained(helper_.get()), report_id,
++ buffer, std::move(callback)));
++}
++
++void HidConnectionNetBSD::PlatformSendFeatureReport(
++ scoped_refptr<base::RefCountedBytes> buffer,
++ WriteCallback callback) {
++ base::ScopedBlockingCall scoped_blocking_call(
++ FROM_HERE, base::BlockingType::MAY_BLOCK);
++ blocking_task_runner_->PostTask(
++ FROM_HERE,
++ base::BindOnce(&BlockingTaskRunnerHelper::SendFeatureReport,
++ base::Unretained(helper_.get()), buffer, std::move(callback)));
++}
++
++} // namespace device
diff --git a/chromium/patches/patch-services_device_hid_hid__connection__netbsd.h b/chromium/patches/patch-services_device_hid_hid__connection__netbsd.h
index 1b20ab8bb7..fe3aae273c 100644
--- a/chromium/patches/patch-services_device_hid_hid__connection__netbsd.h
+++ b/chromium/patches/patch-services_device_hid_hid__connection__netbsd.h
@@ -1,8 +1,12 @@
$NetBSD$
---- services/device/hid/hid_connection_netbsd.h.orig 2020-07-23 00:19:44.670620204 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/device/hid/hid_connection_netbsd.h.orig 2024-08-01 14:09:00.340300851 +0000
+++ services/device/hid/hid_connection_netbsd.h
-@@ -0,0 +1,68 @@
+@@ -0,0 +1,67 @@
+// Copyright (c) 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
@@ -14,11 +18,9 @@ $NetBSD$
+#include <stdint.h>
+
+#include "base/files/scoped_file.h"
-+#include "base/macros.h"
-+#include "base/memory/ptr_util.h"
-+#include "base/memory/ref_counted_memory.h"
+#include "base/memory/weak_ptr.h"
-+#include "base/sequence_checker.h"
++#include "base/memory/ref_counted_memory.h"
++#include "base/task/sequenced_task_runner.h"
+#include "services/device/hid/hid_connection.h"
+
+namespace base {
@@ -36,11 +38,16 @@ $NetBSD$
+ HidConnectionNetBSD(
+ scoped_refptr<HidDeviceInfo> device_info,
+ base::ScopedFD fd,
-+ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner);
++ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner,
++ bool allow_protected_reports,
++ bool allow_fido_reports);
+
+ private:
+ friend class base::RefCountedThreadSafe<HidConnectionNetBSD>;
-+ class BlockingTaskHelper;
++ class BlockingTaskRunnerHelper;
++
++ HidConnectionNetBSD(const HidConnectionNetBSD&) = delete;
++ HidConnectionNetBSD& operator=(const HidConnectionNetBSD&) = delete;
+
+ ~HidConnectionNetBSD() override;
+
@@ -56,18 +63,14 @@ $NetBSD$
+ // |helper_| lives on the sequence to which |blocking_task_runner_| posts
+ // tasks so all calls must be posted there including this object's
+ // destruction.
-+ std::unique_ptr<BlockingTaskHelper> helper_;
++ std::unique_ptr<BlockingTaskRunnerHelper, base::OnTaskRunnerDeleter> helper_;
+
+ const scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_;
+ const scoped_refptr<base::SequencedTaskRunner> task_runner_;
+
-+ SEQUENCE_CHECKER(sequence_checker_);
-+
-+ base::WeakPtrFactory<HidConnectionNetBSD> weak_factory_;
-+
-+ DISALLOW_COPY_AND_ASSIGN(HidConnectionNetBSD);
++ base::WeakPtrFactory<HidConnectionNetBSD> weak_factory_{this};
+};
+
+} // namespace device
+
-+#endif // DEVICE_HID_HID_CONNECTION_NETBSD_H_
++#endif // DEVICE_HID_HID_CONNECTION_FREEBSD_H_
diff --git a/chromium/patches/patch-services_device_hid_hid__service.cc b/chromium/patches/patch-services_device_hid_hid__service.cc
new file mode 100644
index 0000000000..39921627f2
--- /dev/null
+++ b/chromium/patches/patch-services_device_hid_hid__service.cc
@@ -0,0 +1,30 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/device/hid/hid_service.cc.orig 2024-07-24 02:44:43.653461000 +0000
++++ services/device/hid/hid_service.cc
+@@ -20,6 +20,10 @@
+
+ #if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(USE_UDEV)
+ #include "services/device/hid/hid_service_linux.h"
++#elif BUILDFLAG(IS_OPENBSD)
++#include "services/device/hid/hid_service_fido.h"
++#elif BUILDFLAG(IS_FREEBSD)
++#include "services/device/hid/hid_service_freebsd.h"
+ #elif BUILDFLAG(IS_MAC)
+ #include "services/device/hid/hid_service_mac.h"
+ #elif BUILDFLAG(IS_WIN)
+@@ -68,6 +72,10 @@ constexpr base::TaskTraits HidService::k
+ std::unique_ptr<HidService> HidService::Create() {
+ #if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(USE_UDEV)
+ return std::make_unique<HidServiceLinux>();
++#elif BUILDFLAG(IS_OPENBSD)
++ return std::make_unique<HidServiceFido>();
++#elif BUILDFLAG(IS_FREEBSD)
++ return std::make_unique<HidServiceFreeBSD>();
+ #elif BUILDFLAG(IS_MAC)
+ return std::make_unique<HidServiceMac>();
+ #elif BUILDFLAG(IS_WIN)
diff --git a/chromium/patches/patch-services_device_hid_hid__service__fido.cc b/chromium/patches/patch-services_device_hid_hid__service__fido.cc
new file mode 100644
index 0000000000..4cc5bf0951
--- /dev/null
+++ b/chromium/patches/patch-services_device_hid_hid__service__fido.cc
@@ -0,0 +1,405 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/device/hid/hid_service_fido.cc.orig 2024-08-01 14:09:00.343141998 +0000
++++ services/device/hid/hid_service_fido.cc
+@@ -0,0 +1,396 @@
++// Copyright 2014 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "services/device/hid/hid_service_fido.h"
++
++#include <fcntl.h>
++#include <poll.h>
++#include <stdint.h>
++
++#include <dlfcn.h>
++#include <fido.h>
++
++#include <limits>
++#include <memory>
++#include <string>
++#include <utility>
++
++#include "base/files/file.h"
++#include "base/files/file_path.h"
++#include "base/files/file_util.h"
++#include "base/files/scoped_file.h"
++#include "base/location.h"
++#include "base/sequence_checker.h"
++#include "base/strings/string_number_conversions.h"
++#include "base/strings/string_split.h"
++#include "base/strings/string_util.h"
++#include "base/task/sequenced_task_runner.h"
++#include "base/task/thread_pool.h"
++#include "base/threading/scoped_blocking_call.h"
++#include "build/build_config.h"
++#include "build/chromeos_buildflags.h"
++#include "components/device_event_log/device_event_log.h"
++#include "device/udev_linux/scoped_udev.h"
++#include "device/udev_linux/udev_watcher.h"
++#include "services/device/hid/hid_connection_fido.h"
++
++namespace device {
++
++namespace {
++
++bool terrible_ping_kludge(int fd, const std::string &path) {
++ u_char data[256];
++ int i, n;
++ struct pollfd pfd;
++
++ for (i = 0; i < 4; i++) {
++ memset(data, 0, sizeof(data));
++ /* broadcast channel ID */
++ data[1] = 0xff;
++ data[2] = 0xff;
++ data[3] = 0xff;
++ data[4] = 0xff;
++ /* Ping command */
++ data[5] = 0x81;
++ /* One byte ping only, Vasili */
++ data[6] = 0;
++ data[7] = 1;
++ HID_LOG(EVENT) << "send ping " << i << " " << path;
++ if (write(fd, data, 64) == -1) {
++ HID_PLOG(ERROR) << "write " << path;
++ return false;
++ }
++ HID_LOG(EVENT) << "wait reply " << path;
++ memset(&pfd, 0, sizeof(pfd));
++ pfd.fd = fd;
++ pfd.events = POLLIN;
++ if ((n = poll(&pfd, 1, 100)) == -1) {
++ HID_PLOG(EVENT) << "poll " << path;
++ return false;
++ } else if (n == 0) {
++ HID_LOG(EVENT) << "timed out " << path;
++ continue;
++ }
++ if (read(fd, data, 64) == -1) {
++ HID_PLOG(ERROR) << "read " << path;
++ return false;
++ }
++ /*
++ * Ping isn't always supported on the broadcast channel,
++ * so we might get an error, but we don't care - we're
++ * synched now.
++ */
++ HID_LOG(EVENT) << "got reply " << path;
++ return true;
++ }
++ HID_LOG(ERROR) << "no response " << path;
++ return false;
++}
++
++// HID report descriptor for U2F interface. Copied from:
++// https://chromium.googlesource.com/chromiumos/platform2/+/c6c7e4e54fce11932fedaa3ea10236bf75d85a2b%5E%21/u2fd/u2fhid.cc
++// Apparently Chromium wants to see these bytes, but OpenBSD fido(4)
++// devices prohibit USB_GET_REPORT_DESC ioctl that could be used to
++// get the bytes from the USB device.
++constexpr uint8_t kU2fReportDesc[] = {
++ 0x06, 0xD0, 0xF1, /* Usage Page (FIDO Alliance), FIDO_USAGE_PAGE */
++ 0x09, 0x01, /* Usage (U2F HID Auth. Device) FIDO_USAGE_U2FHID */
++ 0xA1, 0x01, /* Collection (Application), HID_APPLICATION */
++ 0x09, 0x20, /* Usage (Input Report Data), FIDO_USAGE_DATA_IN */
++ 0x15, 0x00, /* Logical Minimum (0) */
++ 0x26, 0xFF, 0x00, /* Logical Maximum (255) */
++ 0x75, 0x08, /* Report Size (8) */
++ 0x95, 0x40, /* Report Count (64), HID_INPUT_REPORT_BYTES */
++ 0x81, 0x02, /* Input (Data, Var, Abs), Usage */
++ 0x09, 0x21, /* Usage (Output Report Data), FIDO_USAGE_DATA_OUT */
++ 0x15, 0x00, /* Logical Minimum (0) */
++ 0x26, 0xFF, 0x00, /* Logical Maximum (255) */
++ 0x75, 0x08, /* Report Size (8) */
++ 0x95, 0x40, /* Report Count (64), HID_OUTPUT_REPORT_BYTES */
++ 0x91, 0x02, /* Output (Data, Var, Abs), Usage */
++ 0xC0 /* End Collection */
++};
++
++} // namespace
++
++struct HidServiceFido::ConnectParams {
++ ConnectParams(scoped_refptr<HidDeviceInfo> device_info,
++ bool allow_protected_reports,
++ bool allow_fido_reports,
++ ConnectCallback callback)
++ : device_info(std::move(device_info)),
++ allow_protected_reports(allow_protected_reports),
++ allow_fido_reports(allow_fido_reports),
++ callback(std::move(callback)),
++ task_runner(base::SequencedTaskRunner::GetCurrentDefault()),
++ blocking_task_runner(
++ base::ThreadPool::CreateSequencedTaskRunner(kBlockingTaskTraits)) {}
++ ~ConnectParams() {}
++
++ scoped_refptr<HidDeviceInfo> device_info;
++ bool allow_protected_reports;
++ bool allow_fido_reports;
++ ConnectCallback callback;
++ scoped_refptr<base::SequencedTaskRunner> task_runner;
++ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner;
++ base::ScopedFD fd;
++};
++
++class HidServiceFido::BlockingTaskRunnerHelper : public UdevWatcher::Observer {
++ public:
++ BlockingTaskRunnerHelper(base::WeakPtr<HidServiceFido> service)
++ : service_(std::move(service)),
++ task_runner_(base::SequencedTaskRunner::GetCurrentDefault()) {
++ DETACH_FROM_SEQUENCE(sequence_checker_);
++ }
++
++ BlockingTaskRunnerHelper(const BlockingTaskRunnerHelper&) = delete;
++ BlockingTaskRunnerHelper& operator=(const BlockingTaskRunnerHelper&) = delete;
++
++ ~BlockingTaskRunnerHelper() override {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++ }
++
++ void Start() {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++
++ void *library = dlopen("libudev.so", RTLD_NOW | RTLD_LOCAL);
++ if (library) {
++ dlclose(library);
++ watcher_ = UdevWatcher::StartWatching(this);
++ watcher_->EnumerateExistingDevices();
++ } else {
++ HID_LOG(ERROR) << "No udev available, failling back to single enumeration";
++ WalkFidoDevices(nullptr);
++ }
++
++ task_runner_->PostTask(
++ FROM_HERE,
++ base::BindOnce(&HidServiceFido::FirstEnumerationComplete, service_));
++ }
++
++ private:
++ void WalkFidoDevices(const char *name) {
++ fido_dev_info_t *devlist = NULL;
++ fido_dev_t *dev = NULL;
++ size_t devlist_len = 0, i;
++ const char *path;
++ int r;
++ const int MAX_FIDO_DEVICES = 256;
++
++ if ((devlist = fido_dev_info_new(MAX_FIDO_DEVICES)) == NULL) {
++ HID_LOG(ERROR) << "fido_dev_info_new failed";
++ goto out;
++ }
++ if ((r = fido_dev_info_manifest(devlist, MAX_FIDO_DEVICES, &devlist_len)) !=
++ FIDO_OK) {
++ HID_LOG(ERROR) << "fido_dev_info_manifest: " << fido_strerr(r);
++ goto out;
++ }
++
++ HID_LOG(EVENT) << "fido_dev_info_manifest found " << devlist_len
++ << " device(s)";
++
++ for (i = 0; i < devlist_len; i++) {
++ const fido_dev_info_t *di = fido_dev_info_ptr(devlist, i);
++
++ if (di == NULL) {
++ HID_LOG(ERROR) << "fido_dev_info_ptr " << i << " failed";
++ continue;
++ }
++
++ if ((path = fido_dev_info_path(di)) == NULL) {
++ HID_LOG(ERROR) << "fido_dev_info_path " << i << " failed";
++ continue;
++ }
++
++ if (name != nullptr && !strcmp(path, name)) {
++ HID_LOG(EVENT) << "hotplug device " << i << ": " << path;
++ OnFidoDeviceAdded(di);
++ break;
++ }
++
++ HID_LOG(EVENT) << "trying device " << i << ": " << path;
++ if ((dev = fido_dev_new()) == NULL) {
++ HID_LOG(ERROR) << "fido_dev_new failed";
++ continue;
++ }
++
++ if ((r = fido_dev_open(dev, path)) != FIDO_OK) {
++ HID_LOG(ERROR) << "fido_dev_open failed " << path;
++ fido_dev_free(&dev);
++ continue;
++ }
++
++ fido_dev_close(dev);
++ fido_dev_free(&dev);
++
++ OnFidoDeviceAdded(di);
++ }
++ out:
++ if (devlist != NULL)
++ fido_dev_info_free(&devlist, MAX_FIDO_DEVICES);
++ }
++
++ void OnFidoDeviceAdded(const fido_dev_info_t *di) {
++ auto null_as_empty = [](const char *r) -> std::string {
++ return (r != nullptr) ? r : "";
++ };
++ std::string device_node(null_as_empty(fido_dev_info_path(di)));
++ std::vector<uint8_t> report_descriptor(
++ kU2fReportDesc, kU2fReportDesc + sizeof(kU2fReportDesc));
++
++ auto device_info = base::MakeRefCounted<HidDeviceInfo>(
++ device_node, /*physical_device_id*/"", fido_dev_info_vendor(di),
++ fido_dev_info_product(di), null_as_empty(fido_dev_info_product_string(di)),
++ null_as_empty(fido_dev_info_manufacturer_string(di)),
++ device::mojom::HidBusType::kHIDBusTypeUSB, report_descriptor,
++ device_node);
++
++ task_runner_->PostTask(
++ FROM_HERE,
++ base::BindOnce(&HidServiceFido::AddDevice, service_, device_info));
++ }
++
++ // UdevWatcher::Observer
++ void OnDeviceAdded(ScopedUdevDevicePtr device) override {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++ base::ScopedBlockingCall scoped_blocking_call(
++ FROM_HERE, base::BlockingType::MAY_BLOCK);
++
++ const char* subsystem = udev_device_get_subsystem(device.get());
++ if (!subsystem || strcmp(subsystem, "fido") != 0)
++ return;
++
++ const char* device_path = udev_device_get_syspath(device.get());
++ if (!device_path)
++ return;
++
++ WalkFidoDevices(device_path);
++ }
++
++ void OnDeviceRemoved(ScopedUdevDevicePtr device) override {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++ base::ScopedBlockingCall scoped_blocking_call(
++ FROM_HERE, base::BlockingType::MAY_BLOCK);
++
++ const char* device_path = udev_device_get_syspath(device.get());
++ if (device_path) {
++ task_runner_->PostTask(
++ FROM_HERE, base::BindOnce(&HidServiceFido::RemoveDevice, service_,
++ std::string(device_path)));
++ }
++ }
++
++ void OnDeviceChanged(ScopedUdevDevicePtr) override {}
++
++ SEQUENCE_CHECKER(sequence_checker_);
++ std::unique_ptr<UdevWatcher> watcher_;
++
++ // This weak pointer is only valid when checked on this task runner.
++ base::WeakPtr<HidServiceFido> service_;
++ scoped_refptr<base::SequencedTaskRunner> task_runner_;
++};
++
++HidServiceFido::HidServiceFido()
++ : blocking_task_runner_(
++ base::ThreadPool::CreateSequencedTaskRunner(kBlockingTaskTraits)),
++ helper_(nullptr, base::OnTaskRunnerDeleter(blocking_task_runner_)) {
++ // We need to properly initialize |blocking_task_helper_| here because we need
++ // |weak_factory_| to be created first.
++ helper_.reset(new BlockingTaskRunnerHelper(weak_factory_.GetWeakPtr()));
++ blocking_task_runner_->PostTask(
++ FROM_HERE, base::BindOnce(&BlockingTaskRunnerHelper::Start,
++ base::Unretained(helper_.get())));
++}
++
++HidServiceFido::~HidServiceFido() = default;
++
++base::WeakPtr<HidService> HidServiceFido::GetWeakPtr() {
++ return weak_factory_.GetWeakPtr();
++}
++
++void HidServiceFido::Connect(const std::string& device_guid,
++ bool allow_protected_reports,
++ bool allow_fido_reports,
++ ConnectCallback callback) {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++
++ const auto& map_entry = devices().find(device_guid);
++ if (map_entry == devices().end()) {
++ base::SequencedTaskRunner::GetCurrentDefault()->PostTask(
++ FROM_HERE, base::BindOnce(std::move(callback), nullptr));
++ return;
++ }
++ scoped_refptr<HidDeviceInfo> device_info = map_entry->second;
++
++ auto params =
++ std::make_unique<ConnectParams>(device_info, allow_protected_reports,
++ allow_fido_reports, std::move(callback));
++ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner =
++ params->blocking_task_runner;
++ blocking_task_runner->PostTask(
++ FROM_HERE, base::BindOnce(&HidServiceFido::OpenOnBlockingThread,
++ std::move(params)));
++}
++
++// static
++void HidServiceFido::OpenOnBlockingThread(
++ std::unique_ptr<ConnectParams> params) {
++ base::ScopedBlockingCall scoped_blocking_call(FROM_HERE,
++ base::BlockingType::MAY_BLOCK);
++ scoped_refptr<base::SequencedTaskRunner> task_runner = params->task_runner;
++
++ base::FilePath device_path(params->device_info->device_node());
++ base::File device_file;
++ int flags =
++ base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE;
++ device_file.Initialize(device_path, flags);
++ if (!device_file.IsValid()) {
++ base::File::Error file_error = device_file.error_details();
++
++ if (file_error == base::File::FILE_ERROR_ACCESS_DENIED) {
++ HID_LOG(EVENT)
++ << "Access denied opening device read-write, trying read-only.";
++ flags = base::File::FLAG_OPEN | base::File::FLAG_READ;
++ device_file.Initialize(device_path, flags);
++ }
++ }
++ if (!device_file.IsValid()) {
++ HID_LOG(EVENT) << "Failed to open '" << params->device_info->device_node()
++ << "': "
++ << base::File::ErrorToString(device_file.error_details());
++ task_runner->PostTask(FROM_HERE,
++ base::BindOnce(std::move(params->callback), nullptr));
++ return;
++ }
++ if (!terrible_ping_kludge(device_file.GetPlatformFile(), params->device_info->device_node())) {
++ HID_LOG(EVENT) << "Failed to ping " << params->device_info->device_node();
++ task_runner->PostTask(FROM_HERE, base::BindOnce(std::move(params->callback), nullptr));
++ return;
++ }
++ params->fd.reset(device_file.TakePlatformFile());
++
++ task_runner->PostTask(FROM_HERE, base::BindOnce(&HidServiceFido::FinishOpen,
++ std::move(params)));
++}
++
++// static
++void HidServiceFido::FinishOpen(std::unique_ptr<ConnectParams> params) {
++ DCHECK(params->fd.is_valid());
++
++ if (!base::SetNonBlocking(params->fd.get())) {
++ HID_PLOG(DEBUG) << "Failed to set the non-blocking flag on the device fd";
++ std::move(params->callback).Run(nullptr);
++ return;
++ }
++
++ std::move(params->callback)
++ .Run(base::MakeRefCounted<HidConnectionFido>(
++ std::move(params->device_info), std::move(params->fd),
++ std::move(params->blocking_task_runner),
++ params->allow_protected_reports, params->allow_fido_reports));
++}
++
++} // namespace device
diff --git a/chromium/patches/patch-services_device_hid_hid__service__fido.h b/chromium/patches/patch-services_device_hid_hid__service__fido.h
new file mode 100644
index 0000000000..70c43b833f
--- /dev/null
+++ b/chromium/patches/patch-services_device_hid_hid__service__fido.h
@@ -0,0 +1,74 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/device/hid/hid_service_fido.h.orig 2024-08-01 14:09:00.345086941 +0000
++++ services/device/hid/hid_service_fido.h
+@@ -0,0 +1,65 @@
++// Copyright 2014 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef SERVICES_DEVICE_HID_HID_SERVICE_LINUX_H_
++#define SERVICES_DEVICE_HID_HID_SERVICE_LINUX_H_
++
++#include <memory>
++
++#include "base/compiler_specific.h"
++#include "base/files/scoped_file.h"
++#include "base/memory/weak_ptr.h"
++#include "base/task/sequenced_task_runner.h"
++#include "build/build_config.h"
++#include "build/chromeos_buildflags.h"
++#include "services/device/hid/hid_device_info.h"
++#include "services/device/hid/hid_service.h"
++
++namespace device {
++
++class HidServiceFido : public HidService {
++ public:
++ HidServiceFido();
++ HidServiceFido(HidServiceFido&) = delete;
++ HidServiceFido& operator=(HidServiceFido&) = delete;
++ ~HidServiceFido() override;
++
++ // HidService:
++ void Connect(const std::string& device_id,
++ bool allow_protected_reports,
++ bool allow_fido_reports,
++ ConnectCallback callback) override;
++ base::WeakPtr<HidService> GetWeakPtr() override;
++
++ private:
++ struct ConnectParams;
++ class BlockingTaskRunnerHelper;
++
++// These functions implement the process of locating, requesting access to and
++// opening a device. Because this operation crosses multiple threads these
++// functions are static and the necessary parameters are passed as a single
++// struct.
++#if BUILDFLAG(IS_CHROMEOS_ASH)
++ static void OnPathOpenComplete(std::unique_ptr<ConnectParams> params,
++ base::ScopedFD fd);
++ static void OnPathOpenError(const std::string& device_path,
++ ConnectCallback callback,
++ const std::string& error_name,
++ const std::string& error_message);
++#else
++ static void OpenOnBlockingThread(std::unique_ptr<ConnectParams> params);
++#endif
++ static void FinishOpen(std::unique_ptr<ConnectParams> params);
++
++ const scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_;
++
++ // |helper_| lives on the sequence |blocking_task_runner_| posts to and holds
++ // a weak reference back to the service that owns it.
++ std::unique_ptr<BlockingTaskRunnerHelper, base::OnTaskRunnerDeleter> helper_;
++ base::WeakPtrFactory<HidServiceFido> weak_factory_{this};
++};
++
++} // namespace device
++
++#endif // SERVICES_DEVICE_HID_HID_SERVICE_LINUX_H_
diff --git a/chromium/patches/patch-services_device_hid_hid__service__freebsd.cc b/chromium/patches/patch-services_device_hid_hid__service__freebsd.cc
new file mode 100644
index 0000000000..cd0be22f7b
--- /dev/null
+++ b/chromium/patches/patch-services_device_hid_hid__service__freebsd.cc
@@ -0,0 +1,404 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/device/hid/hid_service_freebsd.cc.orig 2024-08-01 14:09:00.347128264 +0000
++++ services/device/hid/hid_service_freebsd.cc
+@@ -0,0 +1,395 @@
++// Copyright 2014 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "services/device/hid/hid_service_freebsd.h"
++
++#include <dev/usb/usb_ioctl.h>
++#include <stdint.h>
++#include <sys/socket.h>
++#include <sys/un.h>
++
++#include <set>
++#include <string>
++#include <vector>
++
++#include "base/files/file_descriptor_watcher_posix.h"
++#include "base/files/file_enumerator.h"
++#include "base/files/file_util.h"
++#include "base/files/file.h"
++#include "base/location.h"
++#include "base/logging.h"
++#include "base/posix/eintr_wrapper.h"
++#include "base/stl_util.h"
++#include "base/strings/pattern.h"
++#include "base/strings/stringprintf.h"
++#include "base/strings/sys_string_conversions.h"
++#include "base/strings/string_util.h"
++#include "base/strings/string_split.h"
++#include "base/task/single_thread_task_runner.h"
++#include "base/task/thread_pool.h"
++#include "base/threading/scoped_blocking_call.h"
++#include "base/threading/thread_restrictions.h"
++#include "components/device_event_log/device_event_log.h"
++#include "services/device/hid/hid_connection_freebsd.h"
++
++const int kMaxPermissionChecks = 5;
++
++namespace device {
++
++struct HidServiceFreeBSD::ConnectParams {
++ ConnectParams(scoped_refptr<HidDeviceInfo> device_info,
++ bool allow_protected_reports,
++ bool allow_fido_reports,
++ ConnectCallback callback)
++ : device_info(std::move(device_info)),
++ allow_protected_reports(allow_protected_reports),
++ allow_fido_reports(allow_fido_reports),
++ callback(std::move(callback)),
++ task_runner(base::SequencedTaskRunner::GetCurrentDefault()),
++ blocking_task_runner(
++ base::ThreadPool::CreateSequencedTaskRunner(kBlockingTaskTraits)) {}
++ ~ConnectParams() {}
++
++ scoped_refptr<HidDeviceInfo> device_info;
++ bool allow_protected_reports;
++ bool allow_fido_reports;
++ ConnectCallback callback;
++ scoped_refptr<base::SequencedTaskRunner> task_runner;
++ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner;
++ base::ScopedFD fd;
++};
++
++class HidServiceFreeBSD::BlockingTaskRunnerHelper {
++ public:
++ BlockingTaskRunnerHelper(base::WeakPtr<HidServiceFreeBSD> service)
++ : service_(std::move(service)),
++ task_runner_(base::SequencedTaskRunner::GetCurrentDefault()) {
++ DETACH_FROM_SEQUENCE(sequence_checker_);
++
++ timer_.reset(new base::RepeatingTimer());
++ devd_buffer_ = new net::IOBufferWithSize(1024);
++ }
++
++ BlockingTaskRunnerHelper(const BlockingTaskRunnerHelper&) = delete;
++ BlockingTaskRunnerHelper& operator=(const BlockingTaskRunnerHelper&) = delete;
++
++ ~BlockingTaskRunnerHelper() {
++ }
++
++ void Start() {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++
++ const base::FilePath kDevRoot("/dev");
++ const std::string kUHIDPattern("/dev/uhid*");
++
++ base::FileEnumerator enumerator(kDevRoot, false, base::FileEnumerator::FILES);
++ do {
++ const base::FilePath next_device_path(enumerator.Next());
++ const std::string next_device = next_device_path.value();
++ if (next_device.empty())
++ break;
++
++ if (base::MatchPattern(next_device, kUHIDPattern))
++ OnDeviceAdded(next_device.substr(5));
++ } while (true);
++
++ SetupDevdMonitor();
++
++ task_runner_->PostTask(
++ FROM_HERE,
++ base::BindOnce(&HidServiceFreeBSD::FirstEnumerationComplete, service_));
++ }
++
++ bool HaveReadWritePermissions(std::string device_id) {
++ std::string device_node = "/dev/" + device_id;
++ base::internal::AssertBlockingAllowed();
++
++ base::FilePath device_path(device_node);
++ base::File device_file;
++ int flags =
++ base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE;
++ device_file.Initialize(device_path, flags);
++ if (!device_file.IsValid())
++ return false;
++
++ return true;
++ }
++
++ void OnDeviceAdded(std::string device_id) {
++ base::ScopedBlockingCall scoped_blocking_call(
++ FROM_HERE, base::BlockingType::MAY_BLOCK);
++ std::string device_node = "/dev/" + device_id;
++ uint16_t vendor_id = 0xffff;
++ uint16_t product_id = 0xffff;
++ std::string product_name = "";
++ std::string serial_number = "";
++
++ std::vector<uint8_t> report_descriptor;
++
++ base::internal::AssertBlockingAllowed();
++
++ base::FilePath device_path(device_node);
++ base::File device_file;
++ int flags =
++ base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE;
++ device_file.Initialize(device_path, flags);
++ if (!device_file.IsValid()) {
++ HID_LOG(ERROR) << "Failed to open '" << device_node
++ << "': "
++ << base::File::ErrorToString(device_file.error_details());
++ return;
++ }
++
++ base::ScopedFD fd;
++ fd.reset(device_file.TakePlatformFile());
++
++ struct usb_gen_descriptor ugd;
++ ugd.ugd_data = NULL;
++ ugd.ugd_maxlen = 0xffff;
++ int result = HANDLE_EINTR(
++ ioctl(fd.get(), USB_GET_REPORT_DESC, &ugd));
++
++ if (result < 0) {
++ HID_LOG(ERROR) << "Failed to get report descriptor size";
++ return;
++ }
++
++ report_descriptor.resize(ugd.ugd_actlen);
++
++ ugd.ugd_data = report_descriptor.data();
++ ugd.ugd_maxlen = ugd.ugd_actlen;
++ result = HANDLE_EINTR(
++ ioctl(fd.get(), USB_GET_REPORT_DESC, &ugd));
++
++ if (result < 0) {
++ HID_LOG(ERROR) << "Failed to get report descriptor";
++ return;
++ }
++
++ scoped_refptr<HidDeviceInfo> device_info(new HidDeviceInfo(
++ device_id,
++ /*physical_device_id*/"",
++ vendor_id,
++ product_id,
++ product_name,
++ serial_number,
++ device::mojom::HidBusType::kHIDBusTypeUSB,
++ report_descriptor,
++ device_node));
++
++ task_runner_->PostTask(FROM_HERE, base::BindOnce(&HidServiceFreeBSD::AddDevice,
++ service_, device_info));
++ }
++
++ void OnDeviceRemoved(std::string device_id) {
++ base::ScopedBlockingCall scoped_blocking_call(
++ FROM_HERE, base::BlockingType::MAY_BLOCK);
++ task_runner_->PostTask(
++ FROM_HERE, base::BindOnce(&HidServiceFreeBSD::RemoveDevice, service_,
++ device_id));
++ }
++
++ private:
++
++ void CheckPendingPermissionChange() {
++ base::internal::AssertBlockingAllowed();
++ std::map<std::string, int>::iterator it;
++ for (it = permissions_checks_attempts_.begin(); it != permissions_checks_attempts_.end();) {
++ std::string device_name = it->first;
++ bool keep = true;
++ if (HaveReadWritePermissions(device_name)) {
++ OnDeviceAdded(device_name);
++ keep = false;
++ }
++ else if (it->second-- <= 0) {
++ HID_LOG(ERROR) << "Still don't have write permissions to '" << device_name
++ << "' after " << kMaxPermissionChecks << " attempts";
++ keep = false;
++ }
++
++ if (keep)
++ ++it;
++ else
++ permissions_checks_attempts_.erase(it++);
++ }
++
++ if (permissions_checks_attempts_.empty())
++ timer_->Stop();
++ }
++
++ void SetupDevdMonitor() {
++ base::internal::AssertBlockingAllowed();
++
++ int devd_fd = socket(AF_UNIX, SOCK_SEQPACKET, 0);
++ if (devd_fd < 0)
++ return;
++
++ struct sockaddr_un sa;
++
++ sa.sun_family = AF_UNIX;
++ strlcpy(sa.sun_path, "@VARBASE@/run/devd.seqpacket.pipe", sizeof(sa.sun_path));
++ if (connect(devd_fd, (struct sockaddr *) &sa, sizeof(sa)) < 0) {
++ close(devd_fd);
++ return;
++ }
++
++ devd_fd_.reset(devd_fd);
++ file_watcher_ = base::FileDescriptorWatcher::WatchReadable(
++ devd_fd_.get(), base::BindRepeating(&BlockingTaskRunnerHelper::OnDevdMessageCanBeRead,
++ base::Unretained(this)));
++ }
++
++ void OnDevdMessageCanBeRead() {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++ ssize_t bytes_read = HANDLE_EINTR(recv(devd_fd_.get(), devd_buffer_->data(),
++ devd_buffer_->size() - 1, MSG_WAITALL));
++ if (bytes_read < 0) {
++ if (errno != EAGAIN) {
++ HID_LOG(ERROR) << "Read failed";
++ file_watcher_.reset();
++ }
++ return;
++ }
++
++ devd_buffer_->data()[bytes_read] = 0;
++ char *data = devd_buffer_->data();
++ // It may take some time for devd to change permissions
++ // on /dev/uhidX node. So do not fail immediately if
++ // open fail. Retry each second for kMaxPermissionChecks
++ // times before giving up entirely
++ if (base::StartsWith(data, "+uhid", base::CompareCase::SENSITIVE)) {
++ std::vector<std::string> parts = base::SplitString(
++ data, " ", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
++ if (!parts.empty()) {
++ std::string device_name = parts[0].substr(1); // skip '+'
++ if (HaveReadWritePermissions(device_name))
++ OnDeviceAdded(parts[0].substr(1));
++ else {
++ // Do not re-add to checks
++ if (permissions_checks_attempts_.find(device_name) == permissions_checks_attempts_.end()) {
++ permissions_checks_attempts_.insert(std::pair<std::string, int>(device_name, kMaxPermissionChecks));
++ timer_->Start(FROM_HERE, base::Seconds(1),
++ this, &BlockingTaskRunnerHelper::CheckPendingPermissionChange);
++ }
++ }
++ }
++ }
++
++ if (base::StartsWith(data, "-uhid", base::CompareCase::SENSITIVE)) {
++ std::vector<std::string> parts = base::SplitString(
++ data, " ", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
++ if (!parts.empty()) {
++ std::string device_name = parts[0].substr(1); // skip '-'
++ auto it = permissions_checks_attempts_.find(device_name);
++ if (it != permissions_checks_attempts_.end()) {
++ permissions_checks_attempts_.erase(it);
++ if (permissions_checks_attempts_.empty())
++ timer_->Stop();
++ }
++ OnDeviceRemoved(parts[0].substr(1));
++ }
++ }
++ }
++
++ SEQUENCE_CHECKER(sequence_checker_);
++
++ // This weak pointer is only valid when checked on this task runner.
++ base::WeakPtr<HidServiceFreeBSD> service_;
++ scoped_refptr<base::SequencedTaskRunner> task_runner_;
++ std::unique_ptr<base::FileDescriptorWatcher::Controller> file_watcher_;
++ std::unique_ptr<base::RepeatingTimer> timer_;
++ base::ScopedFD devd_fd_;
++ scoped_refptr<net::IOBufferWithSize> devd_buffer_;
++ std::map<std::string, int> permissions_checks_attempts_;
++};
++
++HidServiceFreeBSD::HidServiceFreeBSD()
++ : blocking_task_runner_(
++ base::ThreadPool::CreateSequencedTaskRunner(kBlockingTaskTraits)),
++ helper_(nullptr, base::OnTaskRunnerDeleter(blocking_task_runner_)) {
++ helper_.reset(new BlockingTaskRunnerHelper(weak_factory_.GetWeakPtr()));
++ blocking_task_runner_->PostTask(
++ FROM_HERE,
++ base::BindOnce(&BlockingTaskRunnerHelper::Start, base::Unretained(helper_.get())));
++}
++
++HidServiceFreeBSD::~HidServiceFreeBSD() {
++ blocking_task_runner_->DeleteSoon(FROM_HERE, helper_.release());
++}
++
++base::WeakPtr<HidService> HidServiceFreeBSD::GetWeakPtr() {
++ return weak_factory_.GetWeakPtr();
++}
++
++// static
++void HidServiceFreeBSD::OpenOnBlockingThread(
++ std::unique_ptr<ConnectParams> params) {
++ base::ScopedBlockingCall scoped_blocking_call(
++ FROM_HERE, base::BlockingType::MAY_BLOCK);
++ scoped_refptr<base::SequencedTaskRunner> task_runner = params->task_runner;
++
++ base::FilePath device_path(params->device_info->device_node());
++ base::File device_file;
++ int flags =
++ base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE;
++ device_file.Initialize(device_path, flags);
++ if (!device_file.IsValid()) {
++ HID_LOG(EVENT) << "Failed to open '" << params->device_info->device_node()
++ << "': "
++ << base::File::ErrorToString(device_file.error_details());
++ task_runner->PostTask(FROM_HERE,
++ base::BindOnce(std::move(params->callback), nullptr));
++ return;
++ }
++ params->fd.reset(device_file.TakePlatformFile());
++ task_runner->PostTask(FROM_HERE, base::BindOnce(&HidServiceFreeBSD::FinishOpen,
++ std::move(params)));
++}
++
++void HidServiceFreeBSD::Connect(const std::string& device_guid,
++ bool allow_protected_reports,
++ bool allow_fido_reports,
++ ConnectCallback callback) {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++
++ const auto& map_entry = devices().find(device_guid);
++ if (map_entry == devices().end()) {
++ base::SequencedTaskRunner::GetCurrentDefault()->PostTask(
++ FROM_HERE, base::BindOnce(std::move(callback), nullptr));
++ return;
++ }
++
++ scoped_refptr<HidDeviceInfo> device_info = map_entry->second;
++
++ auto params = std::make_unique<ConnectParams>(device_info,
++ allow_protected_reports,
++ allow_fido_reports,
++ std::move(callback));
++ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner =
++ params->blocking_task_runner;
++
++ blocking_task_runner->PostTask(
++ FROM_HERE, base::BindOnce(&HidServiceFreeBSD::OpenOnBlockingThread,
++ std::move(params)));
++}
++
++// static
++void HidServiceFreeBSD::FinishOpen(std::unique_ptr<ConnectParams> params) {
++ DCHECK(params->fd.is_valid());
++
++ if (!base::SetNonBlocking(params->fd.get())) {
++ HID_PLOG(ERROR) << "Failed to set the non-blocking flag on the device fd";
++ std::move(params->callback).Run(nullptr);
++ }
++
++ std::move(params->callback).Run(base::MakeRefCounted<HidConnectionFreeBSD>(
++ std::move(params->device_info),
++ std::move(params->fd),
++ std::move(params->blocking_task_runner),
++ params->allow_protected_reports,
++ params->allow_fido_reports
++ ));
++}
++
++} // namespace device
diff --git a/chromium/patches/patch-services_device_hid_hid__service__freebsd.h b/chromium/patches/patch-services_device_hid_hid__service__freebsd.h
new file mode 100644
index 0000000000..327d3447a2
--- /dev/null
+++ b/chromium/patches/patch-services_device_hid_hid__service__freebsd.h
@@ -0,0 +1,58 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/device/hid/hid_service_freebsd.h.orig 2024-08-01 14:09:00.351348359 +0000
++++ services/device/hid/hid_service_freebsd.h
+@@ -0,0 +1,49 @@
++// Copyright 2014 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef DEVICE_HID_HID_SERVICE_FREEBSD_H_
++#define DEVICE_HID_HID_SERVICE_FREEBSD_H_
++
++#include <string>
++
++#include "base/memory/ref_counted.h"
++#include "base/memory/weak_ptr.h"
++#include "base/timer/timer.h"
++#include "services/device/hid/hid_service.h"
++#include "net/base/io_buffer.h"
++
++namespace device {
++
++class HidServiceFreeBSD : public HidService {
++ public:
++ HidServiceFreeBSD();
++
++ HidServiceFreeBSD(const HidServiceFreeBSD&) = delete;
++ HidServiceFreeBSD& operator=(const HidServiceFreeBSD&) = delete;
++
++ ~HidServiceFreeBSD() override;
++
++ void Connect(const std::string& device_guid,
++ bool allow_protected_reports,
++ bool allow_fido_reports,
++ ConnectCallback connect) override;
++ base::WeakPtr<HidService> GetWeakPtr() override;
++
++ private:
++ struct ConnectParams;
++ class BlockingTaskRunnerHelper;
++
++ static void OpenOnBlockingThread(std::unique_ptr<ConnectParams> params);
++ static void FinishOpen(std::unique_ptr<ConnectParams> params);
++
++ const scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_;
++ // |helper_| lives on the sequence |blocking_task_runner_| posts to and holds
++ // a weak reference back to the service that owns it.
++ std::unique_ptr<BlockingTaskRunnerHelper, base::OnTaskRunnerDeleter> helper_;
++ base::WeakPtrFactory<HidServiceFreeBSD> weak_factory_{this};
++};
++
++} // namespace device
++
++#endif // DEVICE_HID_HID_SERVICE_FREEBSD_H_
diff --git a/chromium/patches/patch-services_device_hid_hid__service__netbsd.cc b/chromium/patches/patch-services_device_hid_hid__service__netbsd.cc
index b1ecfcdc58..e27a1c5ad8 100644
--- a/chromium/patches/patch-services_device_hid_hid__service__netbsd.cc
+++ b/chromium/patches/patch-services_device_hid_hid__service__netbsd.cc
@@ -1,14 +1,19 @@
$NetBSD$
---- services/device/hid/hid_service_netbsd.cc.orig 2020-07-23 00:21:06.085104546 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/device/hid/hid_service_netbsd.cc.orig 2024-08-01 14:09:00.354105137 +0000
+++ services/device/hid/hid_service_netbsd.cc
-@@ -0,0 +1,382 @@
+@@ -0,0 +1,395 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "services/device/hid/hid_service_netbsd.h"
+
++#include <dev/usb/usb_ioctl.h>
+#include <stdint.h>
+#include <sys/socket.h>
+#include <sys/un.h>
@@ -17,7 +22,6 @@ $NetBSD$
+#include <string>
+#include <vector>
+
-+#include "base/bind.h"
+#include "base/files/file_descriptor_watcher_posix.h"
+#include "base/files/file_enumerator.h"
+#include "base/files/file_util.h"
@@ -25,16 +29,16 @@ $NetBSD$
+#include "base/location.h"
+#include "base/logging.h"
+#include "base/posix/eintr_wrapper.h"
-+#include "base/single_thread_task_runner.h"
+#include "base/stl_util.h"
+#include "base/strings/pattern.h"
+#include "base/strings/stringprintf.h"
+#include "base/strings/sys_string_conversions.h"
+#include "base/strings/string_util.h"
+#include "base/strings/string_split.h"
-+#include "base/task/post_task.h"
++#include "base/task/single_thread_task_runner.h"
++#include "base/task/thread_pool.h"
+#include "base/threading/scoped_blocking_call.h"
-+#include "base/threading/thread_task_runner_handle.h"
++#include "base/threading/thread_restrictions.h"
+#include "components/device_event_log/device_event_log.h"
+#include "services/device/hid/hid_connection_netbsd.h"
+
@@ -44,33 +48,42 @@ $NetBSD$
+
+struct HidServiceNetBSD::ConnectParams {
+ ConnectParams(scoped_refptr<HidDeviceInfo> device_info,
++ bool allow_protected_reports,
++ bool allow_fido_reports,
+ ConnectCallback callback)
+ : device_info(std::move(device_info)),
++ allow_protected_reports(allow_protected_reports),
++ allow_fido_reports(allow_fido_reports),
+ callback(std::move(callback)),
-+ task_runner(base::ThreadTaskRunnerHandle::Get()),
++ task_runner(base::SequencedTaskRunner::GetCurrentDefault()),
+ blocking_task_runner(
-+ base::CreateSequencedTaskRunner(kBlockingTaskTraits)) {}
++ base::ThreadPool::CreateSequencedTaskRunner(kBlockingTaskTraits)) {}
+ ~ConnectParams() {}
+
+ scoped_refptr<HidDeviceInfo> device_info;
++ bool allow_protected_reports;
++ bool allow_fido_reports;
+ ConnectCallback callback;
+ scoped_refptr<base::SequencedTaskRunner> task_runner;
+ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner;
+ base::ScopedFD fd;
+};
+
-+class HidServiceNetBSD::BlockingTaskHelper {
++class HidServiceNetBSD::BlockingTaskRunnerHelper {
+ public:
-+ BlockingTaskHelper(base::WeakPtr<HidServiceNetBSD> service)
++ BlockingTaskRunnerHelper(base::WeakPtr<HidServiceNetBSD> service)
+ : service_(std::move(service)),
-+ task_runner_(base::ThreadTaskRunnerHandle::Get()) {
++ task_runner_(base::SequencedTaskRunner::GetCurrentDefault()) {
+ DETACH_FROM_SEQUENCE(sequence_checker_);
+
+ timer_.reset(new base::RepeatingTimer());
+ devd_buffer_ = new net::IOBufferWithSize(1024);
+ }
+
-+ ~BlockingTaskHelper() {
++ BlockingTaskRunnerHelper(const BlockingTaskRunnerHelper&) = delete;
++ BlockingTaskRunnerHelper& operator=(const BlockingTaskRunnerHelper&) = delete;
++
++ ~BlockingTaskRunnerHelper() {
+ }
+
+ void Start() {
@@ -94,7 +107,7 @@ $NetBSD$
+
+ task_runner_->PostTask(
+ FROM_HERE,
-+ base::Bind(&HidServiceNetBSD::FirstEnumerationComplete, service_));
++ base::BindOnce(&HidServiceNetBSD::FirstEnumerationComplete, service_));
+ }
+
+ bool HaveReadWritePermissions(std::string device_id) {
@@ -174,7 +187,7 @@ $NetBSD$
+ report_descriptor,
+ device_node));
+
-+ task_runner_->PostTask(FROM_HERE, base::Bind(&HidServiceNetBSD::AddDevice,
++ task_runner_->PostTask(FROM_HERE, base::BindOnce(&HidServiceNetBSD::AddDevice,
+ service_, device_info));
+ }
+
@@ -182,8 +195,8 @@ $NetBSD$
+ base::ScopedBlockingCall scoped_blocking_call(
+ FROM_HERE, base::BlockingType::MAY_BLOCK);
+ task_runner_->PostTask(
-+ FROM_HERE, base::Bind(&HidServiceNetBSD::RemoveDevice, service_,
-+ device_id));
++ FROM_HERE, base::BindOnce(&HidServiceNetBSD::RemoveDevice, service_,
++ device_id));
+ }
+
+ private:
@@ -224,16 +237,16 @@ $NetBSD$
+ struct sockaddr_un sa;
+
+ sa.sun_family = AF_UNIX;
-+ strlcpy(sa.sun_path, "/var/run/devd.seqpacket.pipe", sizeof(sa.sun_path));
++ strlcpy(sa.sun_path, "@VARBASE@/run/devd.seqpacket.pipe", sizeof(sa.sun_path));
+ if (connect(devd_fd, (struct sockaddr *) &sa, sizeof(sa)) < 0) {
+ close(devd_fd);
+ return;
-+ }
++ }
+
+ devd_fd_.reset(devd_fd);
+ file_watcher_ = base::FileDescriptorWatcher::WatchReadable(
-+ devd_fd_.get(), base::Bind(&BlockingTaskHelper::OnDevdMessageCanBeRead,
-+ base::Unretained(this)));
++ devd_fd_.get(), base::BindRepeating(&BlockingTaskRunnerHelper::OnDevdMessageCanBeRead,
++ base::Unretained(this)));
+ }
+
+ void OnDevdMessageCanBeRead() {
@@ -265,8 +278,8 @@ $NetBSD$
+ // Do not re-add to checks
+ if (permissions_checks_attempts_.find(device_name) == permissions_checks_attempts_.end()) {
+ permissions_checks_attempts_.insert(std::pair<std::string, int>(device_name, kMaxPermissionChecks));
-+ timer_->Start(FROM_HERE, base::TimeDelta::FromSeconds(1),
-+ this, &BlockingTaskHelper::CheckPendingPermissionChange);
++ timer_->Start(FROM_HERE, base::Seconds(1),
++ this, &BlockingTaskRunnerHelper::CheckPendingPermissionChange);
+ }
+ }
+ }
@@ -298,19 +311,16 @@ $NetBSD$
+ base::ScopedFD devd_fd_;
+ scoped_refptr<net::IOBufferWithSize> devd_buffer_;
+ std::map<std::string, int> permissions_checks_attempts_;
-+
-+ DISALLOW_COPY_AND_ASSIGN(BlockingTaskHelper);
+};
+
+HidServiceNetBSD::HidServiceNetBSD()
-+ : task_runner_(base::ThreadTaskRunnerHandle::Get()),
-+ blocking_task_runner_(
-+ base::CreateSequencedTaskRunner(kBlockingTaskTraits)),
-+ weak_factory_(this) {
-+ helper_ = std::make_unique<BlockingTaskHelper>(weak_factory_.GetWeakPtr());
++ : blocking_task_runner_(
++ base::ThreadPool::CreateSequencedTaskRunner(kBlockingTaskTraits)),
++ helper_(nullptr, base::OnTaskRunnerDeleter(blocking_task_runner_)) {
++ helper_.reset(new BlockingTaskRunnerHelper(weak_factory_.GetWeakPtr()));
+ blocking_task_runner_->PostTask(
+ FROM_HERE,
-+ base::Bind(&BlockingTaskHelper::Start, base::Unretained(helper_.get())));
++ base::BindOnce(&BlockingTaskRunnerHelper::Start, base::Unretained(helper_.get())));
+}
+
+HidServiceNetBSD::~HidServiceNetBSD() {
@@ -347,19 +357,24 @@ $NetBSD$
+}
+
+void HidServiceNetBSD::Connect(const std::string& device_guid,
-+ ConnectCallback callback) {
++ bool allow_protected_reports,
++ bool allow_fido_reports,
++ ConnectCallback callback) {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+
+ const auto& map_entry = devices().find(device_guid);
+ if (map_entry == devices().end()) {
-+ base::ThreadTaskRunnerHandle::Get()->PostTask(
++ base::SequencedTaskRunner::GetCurrentDefault()->PostTask(
+ FROM_HERE, base::BindOnce(std::move(callback), nullptr));
+ return;
+ }
+
+ scoped_refptr<HidDeviceInfo> device_info = map_entry->second;
+
-+ auto params = std::make_unique<ConnectParams>(device_info, std::move(callback));
++ auto params = std::make_unique<ConnectParams>(device_info,
++ allow_protected_reports,
++ allow_fido_reports,
++ std::move(callback));
+ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner =
+ params->blocking_task_runner;
+
@@ -380,7 +395,9 @@ $NetBSD$
+ std::move(params->callback).Run(base::MakeRefCounted<HidConnectionNetBSD>(
+ std::move(params->device_info),
+ std::move(params->fd),
-+ std::move(params->blocking_task_runner)
++ std::move(params->blocking_task_runner),
++ params->allow_protected_reports,
++ params->allow_fido_reports
+ ));
+}
+
diff --git a/chromium/patches/patch-services_device_hid_hid__service__netbsd.h b/chromium/patches/patch-services_device_hid_hid__service__netbsd.h
index 387d7a10b7..0096a5db64 100644
--- a/chromium/patches/patch-services_device_hid_hid__service__netbsd.h
+++ b/chromium/patches/patch-services_device_hid_hid__service__netbsd.h
@@ -1,8 +1,12 @@
$NetBSD$
---- services/device/hid/hid_service_netbsd.h.orig 2020-07-23 00:21:18.942556354 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/device/hid/hid_service_netbsd.h.orig 2024-08-01 14:09:00.357545802 +0000
+++ services/device/hid/hid_service_netbsd.h
-@@ -0,0 +1,47 @@
+@@ -0,0 +1,49 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
@@ -12,7 +16,6 @@ $NetBSD$
+
+#include <string>
+
-+#include "base/macros.h"
+#include "base/memory/ref_counted.h"
+#include "base/memory/weak_ptr.h"
+#include "base/timer/timer.h"
@@ -24,29 +27,32 @@ $NetBSD$
+class HidServiceNetBSD : public HidService {
+ public:
+ HidServiceNetBSD();
++
++ HidServiceNetBSD(const HidServiceNetBSD&) = delete;
++ HidServiceNetBSD& operator=(const HidServiceNetBSD&) = delete;
++
+ ~HidServiceNetBSD() override;
+
+ void Connect(const std::string& device_guid,
++ bool allow_protected_reports,
++ bool allow_fido_reports,
+ ConnectCallback connect) override;
+ base::WeakPtr<HidService> GetWeakPtr() override;
+
+ private:
+ struct ConnectParams;
-+ class BlockingTaskHelper;
++ class BlockingTaskRunnerHelper;
+
+ static void OpenOnBlockingThread(std::unique_ptr<ConnectParams> params);
+ static void FinishOpen(std::unique_ptr<ConnectParams> params);
+
-+ const scoped_refptr<base::SequencedTaskRunner> task_runner_;
+ const scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_;
+ // |helper_| lives on the sequence |blocking_task_runner_| posts to and holds
+ // a weak reference back to the service that owns it.
-+ std::unique_ptr<BlockingTaskHelper> helper_;
-+ base::WeakPtrFactory<HidServiceNetBSD> weak_factory_;
-+
-+ DISALLOW_COPY_AND_ASSIGN(HidServiceNetBSD);
++ std::unique_ptr<BlockingTaskRunnerHelper, base::OnTaskRunnerDeleter> helper_;
++ base::WeakPtrFactory<HidServiceNetBSD> weak_factory_{this};
+};
+
+} // namespace device
+
-+#endif // DEVICE_HID_HID_SERVICE_NETBSD_H_
++#endif // DEVICE_HID_HID_SERVICE_FREEBSD_H_
diff --git a/chromium/patches/patch-services_device_public_cpp_generic__sensor_sensor__reading.h b/chromium/patches/patch-services_device_public_cpp_generic__sensor_sensor__reading.h
new file mode 100644
index 0000000000..c0c83f975c
--- /dev/null
+++ b/chromium/patches/patch-services_device_public_cpp_generic__sensor_sensor__reading.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/device/public/cpp/generic_sensor/sensor_reading.h.orig 2024-07-24 02:44:43.657461400 +0000
++++ services/device/public/cpp/generic_sensor/sensor_reading.h
+@@ -8,6 +8,8 @@
+ #include <stddef.h>
+ #include <stdint.h>
+
++#include <cstdint>
++
+ #include <type_traits>
+
+ namespace device {
diff --git a/chromium/patches/patch-services_device_public_mojom_BUILD.gn b/chromium/patches/patch-services_device_public_mojom_BUILD.gn
new file mode 100644
index 0000000000..e4625c4a3b
--- /dev/null
+++ b/chromium/patches/patch-services_device_public_mojom_BUILD.gn
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/device/public/mojom/BUILD.gn.orig 2024-07-24 02:44:43.665462300 +0000
++++ services/device/public/mojom/BUILD.gn
+@@ -96,7 +96,7 @@ mojom("device_service") {
+ enable_js_fuzzing = false
+
+ enabled_features = []
+- if ((is_linux || is_chromeos) && use_udev) {
++ if ((is_linux || is_chromeos) && !is_bsd && use_udev) {
+ enabled_features += [ "enable_input_device_manager" ]
+ }
+
diff --git a/chromium/patches/patch-services_device_serial_BUILD.gn b/chromium/patches/patch-services_device_serial_BUILD.gn
index 8b49484c76..2b2bb4ab36 100644
--- a/chromium/patches/patch-services_device_serial_BUILD.gn
+++ b/chromium/patches/patch-services_device_serial_BUILD.gn
@@ -1,13 +1,17 @@
$NetBSD$
---- services/device/serial/BUILD.gn.orig 2020-06-25 09:31:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/device/serial/BUILD.gn.orig 2024-07-24 02:44:43.669462700 +0000
+++ services/device/serial/BUILD.gn
-@@ -4,7 +4,7 @@
-
+@@ -5,7 +5,7 @@
+ import("//build/config/chromeos/ui_mode.gni")
import("//build/config/features.gni")
--if (is_win || (is_linux && use_udev) || is_mac) {
-+if (is_win || (is_linux && use_udev) || is_mac || is_bsd) {
+-if (is_win || ((is_linux || is_chromeos) && use_udev) || is_mac) {
++if (is_win || ((!is_bsd && is_linux || is_chromeos) && use_udev) || is_mac) {
config("platform_support") {
visibility = [ ":serial" ]
if (is_win) {
diff --git a/chromium/patches/patch-services_device_serial_serial__device__enumerator.cc b/chromium/patches/patch-services_device_serial_serial__device__enumerator.cc
index b136ff90e7..1c8e98cb47 100644
--- a/chromium/patches/patch-services_device_serial_serial__device__enumerator.cc
+++ b/chromium/patches/patch-services_device_serial_serial__device__enumerator.cc
@@ -1,22 +1,26 @@
$NetBSD$
---- services/device/serial/serial_device_enumerator.cc.orig 2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/device/serial/serial_device_enumerator.cc.orig 2024-07-24 02:44:43.669462700 +0000
+++ services/device/serial/serial_device_enumerator.cc
-@@ -9,7 +9,7 @@
- #include "base/unguessable_token.h"
+@@ -12,7 +12,7 @@
#include "build/build_config.h"
+ #include "components/device_event_log/device_event_log.h"
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "services/device/serial/serial_device_enumerator_linux.h"
- #elif defined(OS_MACOSX)
+ #elif BUILDFLAG(IS_MAC)
#include "services/device/serial/serial_device_enumerator_mac.h"
-@@ -22,7 +22,7 @@ namespace device {
+@@ -25,7 +25,7 @@ namespace device {
// static
std::unique_ptr<SerialDeviceEnumerator> SerialDeviceEnumerator::Create(
scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- return std::make_unique<SerialDeviceEnumeratorLinux>();
- #elif defined(OS_MACOSX)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ return SerialDeviceEnumeratorLinux::Create();
+ #elif BUILDFLAG(IS_MAC)
return std::make_unique<SerialDeviceEnumeratorMac>();
diff --git a/chromium/patches/patch-services_device_serial_serial__io__handler__posix.cc b/chromium/patches/patch-services_device_serial_serial__io__handler__posix.cc
index 8baf0f4d05..eebef2ebe1 100644
--- a/chromium/patches/patch-services_device_serial_serial__io__handler__posix.cc
+++ b/chromium/patches/patch-services_device_serial_serial__io__handler__posix.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- services/device/serial/serial_io_handler_posix.cc.orig 2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/device/serial/serial_io_handler_posix.cc.orig 2024-07-24 02:44:43.673463000 +0000
+++ services/device/serial/serial_io_handler_posix.cc
-@@ -66,7 +66,7 @@ bool BitrateToSpeedConstant(int bitrate,
+@@ -68,7 +68,7 @@ bool BitrateToSpeedConstant(int bitrate,
BITRATE_TO_SPEED_CASE(9600)
BITRATE_TO_SPEED_CASE(19200)
BITRATE_TO_SPEED_CASE(38400)
--#if !defined(OS_MACOSX)
-+#if !defined(OS_MACOSX) && !defined(OS_BSD)
+-#if !BUILDFLAG(IS_MAC)
++#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD)
BITRATE_TO_SPEED_CASE(57600)
BITRATE_TO_SPEED_CASE(115200)
BITRATE_TO_SPEED_CASE(230400)
diff --git a/chromium/patches/patch-services_device_time__zone__monitor_time__zone__monitor__linux.cc b/chromium/patches/patch-services_device_time__zone__monitor_time__zone__monitor__linux.cc
index eb4f6d12d3..6a43770738 100644
--- a/chromium/patches/patch-services_device_time__zone__monitor_time__zone__monitor__linux.cc
+++ b/chromium/patches/patch-services_device_time__zone__monitor_time__zone__monitor__linux.cc
@@ -1,16 +1,20 @@
$NetBSD$
---- services/device/time_zone_monitor/time_zone_monitor_linux.cc.orig 2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/device/time_zone_monitor/time_zone_monitor_linux.cc.orig 2024-07-24 02:44:43.673463000 +0000
+++ services/device/time_zone_monitor/time_zone_monitor_linux.cc
-@@ -127,7 +127,11 @@ class TimeZoneMonitorLinuxImpl
+@@ -131,7 +131,11 @@ class TimeZoneMonitorLinuxImpl
// false positives are harmless, assuming the false positive rate is
// reasonable.
const char* const kFilesToWatch[] = {
-+#if defined(OS_BSD)
-+ "/etc/localtime",
++#if BUILDFLAG(IS_BSD)
++ "@PKG_SYSCONFBASE@/localtime",
+#else
"/etc/localtime", "/etc/timezone", "/etc/TZ",
+#endif
};
- for (size_t index = 0; index < base::size(kFilesToWatch); ++index) {
+ for (size_t index = 0; index < std::size(kFilesToWatch); ++index) {
file_path_watchers_.push_back(std::make_unique<base::FilePathWatcher>());
diff --git a/chromium/patches/patch-services_device_usb_BUILD.gn b/chromium/patches/patch-services_device_usb_BUILD.gn
new file mode 100644
index 0000000000..43a6b30e50
--- /dev/null
+++ b/chromium/patches/patch-services_device_usb_BUILD.gn
@@ -0,0 +1,40 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/device/usb/BUILD.gn.orig 2024-07-24 02:44:43.673463000 +0000
++++ services/device/usb/BUILD.gn
+@@ -91,7 +91,7 @@ static_library("usb") {
+ deps += [ "//third_party/re2" ]
+ }
+
+- if (is_mac) {
++ if (is_mac || is_openbsd) {
+ # These sources and deps are required for libusb.
+ # TODO(crbug.com/40136337) Remove these sources.
+ sources += [
+@@ -114,6 +114,13 @@ static_library("usb") {
+ deps += [ "//third_party/libusb" ]
+ }
+
++ if (is_freebsd || is_netbsd) {
++ sources += [
++ "usb_service_fake.cc",
++ "usb_service_fake.h",
++ ]
++ }
++
+ if (is_linux || is_chromeos) {
+ sources += [
+ "usb_device_linux.cc",
+@@ -131,7 +138,7 @@ static_library("usb") {
+ deps += [ "//device/udev_linux" ]
+ }
+
+- if (is_android || is_chromeos || is_linux) {
++ if (is_android || is_chromeos || is_linux && !is_bsd) {
+ sources += [
+ "usb_device_handle_usbfs.cc",
+ "usb_device_handle_usbfs.h",
diff --git a/chromium/patches/patch-services_device_usb_usb__service.cc b/chromium/patches/patch-services_device_usb_usb__service.cc
new file mode 100644
index 0000000000..328704c52b
--- /dev/null
+++ b/chromium/patches/patch-services_device_usb_usb__service.cc
@@ -0,0 +1,42 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/device/usb/usb_service.cc.orig 2024-07-24 02:44:43.681463700 +0000
++++ services/device/usb/usb_service.cc
+@@ -20,12 +20,16 @@
+
+ #if BUILDFLAG(IS_ANDROID)
+ #include "services/device/usb/usb_service_android.h"
+-#elif defined(USE_UDEV)
++#elif defined(USE_UDEV) && !BUILDFLAG(IS_BSD)
+ #include "services/device/usb/usb_service_linux.h"
+ #elif BUILDFLAG(IS_MAC)
+ #include "services/device/usb/usb_service_impl.h"
+ #elif BUILDFLAG(IS_WIN)
+ #include "services/device/usb/usb_service_win.h"
++#elif BUILDFLAG(IS_OPENBSD)
++#include "services/device/usb/usb_service_impl.h"
++#elif BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
++#include "services/device/usb/usb_service_fake.h"
+ #endif
+
+ namespace device {
+@@ -48,12 +52,14 @@ constexpr base::TaskTraits UsbService::k
+ std::unique_ptr<UsbService> UsbService::Create() {
+ #if BUILDFLAG(IS_ANDROID)
+ return base::WrapUnique(new UsbServiceAndroid());
+-#elif defined(USE_UDEV)
++#elif defined(USE_UDEV) && !BUILDFLAG(IS_BSD)
+ return base::WrapUnique(new UsbServiceLinux());
+ #elif BUILDFLAG(IS_WIN)
+ return base::WrapUnique(new UsbServiceWin());
+ #elif BUILDFLAG(IS_MAC)
+ return base::WrapUnique(new UsbServiceImpl());
++#elif BUILDFLAG(IS_BSD)
++ return base::WrapUnique(new UsbServiceImpl());
+ #else
+ return nullptr;
+ #endif
diff --git a/chromium/patches/patch-services_device_usb_usb__service__fake.cc b/chromium/patches/patch-services_device_usb_usb__service__fake.cc
new file mode 100644
index 0000000000..221b1cad97
--- /dev/null
+++ b/chromium/patches/patch-services_device_usb_usb__service__fake.cc
@@ -0,0 +1,58 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/device/usb/usb_service_fake.cc.orig 2024-08-01 14:09:00.383248542 +0000
++++ services/device/usb/usb_service_fake.cc
+@@ -0,0 +1,49 @@
++// Copyright 2014 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "services/device/usb/usb_service_fake.h"
++
++#include <stdint.h>
++
++#include <list>
++#include <memory>
++#include <set>
++#include <utility>
++
++#include "base/barrier_closure.h"
++#include "base/containers/contains.h"
++#include "base/location.h"
++#include "base/memory/ref_counted_memory.h"
++#include "base/memory/weak_ptr.h"
++#include "base/strings/string_number_conversions.h"
++#include "base/strings/utf_string_conversions.h"
++#include "base/task/sequenced_task_runner.h"
++#include "base/task/single_thread_task_runner.h"
++#include "base/task/thread_pool.h"
++#include "base/threading/scoped_blocking_call.h"
++#include "build/build_config.h"
++#include "components/device_event_log/device_event_log.h"
++#include "services/device/usb/usb_device_handle.h"
++#include "services/device/usb/usb_error.h"
++#include "services/device/usb/webusb_descriptors.h"
++
++namespace device {
++
++UsbServiceImpl::UsbServiceImpl()
++ : task_runner_(base::SequencedTaskRunner::GetCurrentDefault()) {
++ NOTIMPLEMENTED();
++}
++
++UsbServiceImpl::~UsbServiceImpl() {
++ NOTIMPLEMENTED();
++ NotifyWillDestroyUsbService();
++}
++
++void UsbServiceImpl::GetDevices(GetDevicesCallback callback) {
++ NOTIMPLEMENTED();
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++ UsbService::GetDevices(std::move(callback));
++}
++
++} // namespace device
diff --git a/chromium/patches/patch-services_device_usb_usb__service__fake.h b/chromium/patches/patch-services_device_usb_usb__service__fake.h
new file mode 100644
index 0000000000..836fef8cfc
--- /dev/null
+++ b/chromium/patches/patch-services_device_usb_usb__service__fake.h
@@ -0,0 +1,57 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/device/usb/usb_service_fake.h.orig 2024-08-01 14:09:00.384441153 +0000
++++ services/device/usb/usb_service_fake.h
+@@ -0,0 +1,48 @@
++// Copyright 2015 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef SERVICES_DEVICE_USB_USB_SERVICE_IMPL_H_
++#define SERVICES_DEVICE_USB_USB_SERVICE_IMPL_H_
++
++#include "services/device/usb/usb_service.h"
++
++#include <stddef.h>
++
++#include <map>
++#include <set>
++#include <string>
++#include <vector>
++
++#include "base/containers/queue.h"
++#include "base/memory/weak_ptr.h"
++#include "build/build_config.h"
++#include "services/device/usb/usb_context.h"
++#include "services/device/usb/usb_device_impl.h"
++#include "third_party/abseil-cpp/absl/types/optional.h"
++
++namespace device {
++
++class UsbDeviceImpl;
++
++class UsbServiceImpl final : public UsbService {
++ public:
++ UsbServiceImpl();
++
++ UsbServiceImpl(const UsbServiceImpl&) = delete;
++ UsbServiceImpl& operator=(const UsbServiceImpl&) = delete;
++
++ ~UsbServiceImpl() override;
++
++ private:
++ // device::UsbService implementation
++ void GetDevices(GetDevicesCallback callback) override;
++
++ void OnUsbContext(scoped_refptr<UsbContext> context);
++
++ scoped_refptr<base::SequencedTaskRunner> task_runner_;
++};
++
++} // namespace device
++
++#endif // SERVICES_DEVICE_USB_USB_SERVICE_IMPL_H_
diff --git a/chromium/patches/patch-services_device_wake__lock_power__save__blocker_BUILD.gn b/chromium/patches/patch-services_device_wake__lock_power__save__blocker_BUILD.gn
deleted file mode 100644
index a7af44d5aa..0000000000
--- a/chromium/patches/patch-services_device_wake__lock_power__save__blocker_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- services/device/wake_lock/power_save_blocker/BUILD.gn.orig 2020-07-15 18:56:47.000000000 +0000
-+++ services/device/wake_lock/power_save_blocker/BUILD.gn
-@@ -40,7 +40,7 @@ source_set("power_save_blocker") {
- "//chromeos/dbus/power",
- "//chromeos/dbus/power:power_manager_proto",
- ]
-- } else if (is_linux && use_dbus) {
-+ } else if ((is_linux || is_bsd) && use_dbus) {
- sources += [ "power_save_blocker_linux.cc" ]
- deps += [
- "//dbus",
diff --git a/chromium/patches/patch-services_network_BUILD.gn b/chromium/patches/patch-services_network_BUILD.gn
index 9f39a1c2c5..b9c89ffa74 100644
--- a/chromium/patches/patch-services_network_BUILD.gn
+++ b/chromium/patches/patch-services_network_BUILD.gn
@@ -1,25 +1,16 @@
$NetBSD$
---- services/network/BUILD.gn.orig 2020-06-25 09:31:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/network/BUILD.gn.orig 2024-07-24 02:44:43.697465400 +0000
+++ services/network/BUILD.gn
-@@ -256,13 +256,19 @@ jumbo_component("network_service") {
- deps += [ "//components/certificate_transparency" ]
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- deps += [
- "//sandbox/linux:sandbox_services",
- "//services/service_manager/sandbox:sandbox",
+@@ -418,7 +418,6 @@ if (is_linux || is_chromeos) {
+ ]
+ deps = [
+ "//base:base",
+- "//sandbox/linux:sandbox_services",
+ "//sandbox/policy:policy",
]
- }
-
-+ if (is_bsd) {
-+ deps -= [
-+ "//sandbox/linux:sandbox_services",
-+ ]
-+ }
-+
- if (is_android) {
- deps += [
- "//crypto",
+ configs += [ "//build/config/compiler:wexit_time_destructors" ]
diff --git a/chromium/patches/patch-services_network_network__context.cc b/chromium/patches/patch-services_network_network__context.cc
index ff5e9c07c5..63d2fa0202 100644
--- a/chromium/patches/patch-services_network_network__context.cc
+++ b/chromium/patches/patch-services_network_network__context.cc
@@ -1,13 +1,26 @@
$NetBSD$
---- services/network/network_context.cc.orig 2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/network/network_context.cc.orig 2024-07-24 02:44:43.717467300 +0000
+++ services/network/network_context.cc
-@@ -1819,7 +1819,7 @@ URLRequestContextOwner NetworkContext::M
+@@ -589,7 +589,7 @@ NetworkContext::NetworkContextHttpAuthPr
+ NetworkContext::NetworkContextHttpAuthPreferences::
+ ~NetworkContextHttpAuthPreferences() = default;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool NetworkContext::NetworkContextHttpAuthPreferences::AllowGssapiLibraryLoad()
+ const {
+ if (network_service_) {
+@@ -2355,7 +2355,7 @@ void NetworkContext::OnHttpAuthDynamicPa
+ http_auth_dynamic_network_service_params->android_negotiate_account_type);
+ #endif // BUILDFLAG(IS_ANDROID)
- net::CookieCryptoDelegate* crypto_delegate = nullptr;
- if (params_->enable_encrypted_cookies) {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !BUILDFLAG(IS_CHROMECAST)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS) && !BUILDFLAG(IS_CHROMECAST)
- DCHECK(network_service_->os_crypt_config_set())
- << "NetworkService::SetCryptConfig must be called before creating a "
- "NetworkContext with encrypted cookies.";
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ http_auth_merged_preferences_.set_allow_gssapi_library_load(
+ http_auth_dynamic_network_service_params->allow_gssapi_library_load);
+ #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
diff --git a/chromium/patches/patch-services_network_network__context.h b/chromium/patches/patch-services_network_network__context.h
new file mode 100644
index 0000000000..844ef4aa75
--- /dev/null
+++ b/chromium/patches/patch-services_network_network__context.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/network/network_context.h.orig 2024-07-24 02:44:43.717467300 +0000
++++ services/network/network_context.h
+@@ -685,7 +685,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE)
+ public:
+ explicit NetworkContextHttpAuthPreferences(NetworkService* network_service);
+ ~NetworkContextHttpAuthPreferences() override;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool AllowGssapiLibraryLoad() const override;
+ #endif // BUILDFLAG(IS_LINUX)
+ private:
diff --git a/chromium/patches/patch-services_network_network__sandbox__hook__linux.cc b/chromium/patches/patch-services_network_network__sandbox__hook__linux.cc
index 3f9f5f36ca..66193cb6ed 100644
--- a/chromium/patches/patch-services_network_network__sandbox__hook__linux.cc
+++ b/chromium/patches/patch-services_network_network__sandbox__hook__linux.cc
@@ -1,20 +1,43 @@
$NetBSD$
---- services/network/network_sandbox_hook_linux.cc.orig 2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/network/network_sandbox_hook_linux.cc.orig 2024-07-24 02:44:43.721467700 +0000
+++ services/network/network_sandbox_hook_linux.cc
-@@ -14,6 +14,7 @@ using sandbox::syscall_broker::MakeBroke
- namespace network {
+@@ -15,11 +15,14 @@
+ #include "sandbox/linux/syscall_broker/broker_file_permission.h"
+ #include "sandbox/policy/features.h"
- bool NetworkPreSandboxHook(service_manager::SandboxLinux::Options options) {
-+#if !defined(OS_BSD)
- auto* instance = service_manager::SandboxLinux::GetInstance();
++#if !BUILDFLAG(IS_BSD)
+ using sandbox::syscall_broker::BrokerFilePermission;
+ using sandbox::syscall_broker::MakeBrokerCommandSet;
++#endif
- // TODO(tsepez): remove universal permission under filesytem root.
-@@ -32,6 +33,7 @@ bool NetworkPreSandboxHook(service_manag
- service_manager::SandboxLinux::PreSandboxHook(), options);
+ namespace network {
- instance->EngageNamespaceSandboxIfPossible();
++#if !BUILDFLAG(IS_BSD)
+ sandbox::syscall_broker::BrokerCommandSet GetNetworkBrokerCommandSet() {
+ return MakeBrokerCommandSet({
+ sandbox::syscall_broker::COMMAND_ACCESS,
+@@ -103,9 +106,11 @@ void LoadNetworkLibraries() {
+ }
+ }
+ #endif // BUILDFLAG(IS_CHROMEOS)
+#endif
+
+ bool NetworkPreSandboxHook(std::vector<std::string> network_context_parent_dirs,
+ sandbox::policy::SandboxLinux::Options options) {
++#if !BUILDFLAG(IS_BSD)
+ #if BUILDFLAG(IS_CHROMEOS)
+ LoadNetworkLibraries();
+ #endif
+@@ -118,6 +123,7 @@ bool NetworkPreSandboxHook(std::vector<s
+ GetNetworkBrokerCommandSet(),
+ GetNetworkFilePermissions(std::move(network_context_parent_dirs)),
+ options);
++#endif
+
return true;
}
-
diff --git a/chromium/patches/patch-services_network_network__sandbox__hook__linux.h b/chromium/patches/patch-services_network_network__sandbox__hook__linux.h
new file mode 100644
index 0000000000..cdc9b812c2
--- /dev/null
+++ b/chromium/patches/patch-services_network_network__sandbox__hook__linux.h
@@ -0,0 +1,20 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/network/network_sandbox_hook_linux.h.orig 2024-07-24 02:44:43.721467700 +0000
++++ services/network/network_sandbox_hook_linux.h
+@@ -6,7 +6,11 @@
+ #define SERVICES_NETWORK_NETWORK_SANDBOX_HOOK_LINUX_H_
+
+ #include "base/component_export.h"
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
++#include "sandbox/policy/sandbox.h"
++#else
+ #include "sandbox/policy/linux/sandbox_linux.h"
++#endif
+
+ namespace network {
+
diff --git a/chromium/patches/patch-services_network_network__service.cc b/chromium/patches/patch-services_network_network__service.cc
index 73befb89a3..4137a91307 100644
--- a/chromium/patches/patch-services_network_network__service.cc
+++ b/chromium/patches/patch-services_network_network__service.cc
@@ -1,22 +1,35 @@
$NetBSD$
---- services/network/network_service.cc.orig 2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/network/network_service.cc.orig 2024-07-24 02:44:43.721467700 +0000
+++ services/network/network_service.cc
-@@ -67,7 +67,7 @@
+@@ -99,7 +99,7 @@
#include "third_party/boringssl/src/include/openssl/cpu.h"
#endif
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !BUILDFLAG(IS_CHROMECAST)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS) && !BUILDFLAG(IS_CHROMECAST)
- #include "components/os_crypt/key_storage_config_linux.h"
- #endif
+-#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS)) || \
++#if ((BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS)) || BUILDFLAG(IS_BSD)) || \
+ BUILDFLAG(IS_CHROMEOS_LACROS)
+
+ #include "components/os_crypt/sync/key_storage_config_linux.h"
+@@ -983,7 +983,7 @@ void NetworkService::SetExplicitlyAllowe
+ net::SetExplicitlyAllowedPorts(ports);
+ }
-@@ -646,7 +646,7 @@ void NetworkService::OnCertDBChanged() {
- net::CertDatabase::GetInstance()->NotifyObserversCertDBChanged();
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void NetworkService::SetGssapiLibraryLoadObserver(
+ mojo::PendingRemote<mojom::GssapiLibraryLoadObserver>
+ gssapi_library_load_observer) {
+@@ -1065,7 +1065,7 @@ NetworkService::CreateHttpAuthHandlerFac
+ );
}
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- void NetworkService::SetCryptConfig(mojom::CryptConfigPtr crypt_config) {
- #if !BUILDFLAG(IS_CHROMECAST)
- DCHECK(!os_crypt_config_set_);
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void NetworkService::OnBeforeGssapiLibraryLoad() {
+ if (gssapi_library_load_observer_.is_bound()) {
+ gssapi_library_load_observer_->OnBeforeGssapiLibraryLoad();
diff --git a/chromium/patches/patch-services_network_network__service.h b/chromium/patches/patch-services_network_network__service.h
index 5b73173e7e..6b9b1d4dfb 100644
--- a/chromium/patches/patch-services_network_network__service.h
+++ b/chromium/patches/patch-services_network_network__service.h
@@ -1,13 +1,35 @@
$NetBSD$
---- services/network/network_service.h.orig 2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/network/network_service.h.orig 2024-07-24 02:44:43.721467700 +0000
+++ services/network/network_service.h
-@@ -192,7 +192,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE)
- base::span<const uint8_t> config,
- mojom::NetworkService::UpdateLegacyTLSConfigCallback callback) override;
- void OnCertDBChanged() override;
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- void SetCryptConfig(mojom::CryptConfigPtr crypt_config) override;
- #endif
- #if defined(OS_WIN) || (defined(OS_MACOSX) && !defined(OS_IOS))
+@@ -238,7 +238,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE)
+ const std::vector<ContentSettingPatternSource>& settings) override;
+
+ void SetExplicitlyAllowedPorts(const std::vector<uint16_t>& ports) override;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void SetGssapiLibraryLoadObserver(
+ mojo::PendingRemote<mojom::GssapiLibraryLoadObserver>
+ gssapi_library_load_observer) override;
+@@ -264,7 +264,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE)
+ std::unique_ptr<net::HttpAuthHandlerFactory> CreateHttpAuthHandlerFactory(
+ NetworkContext* network_context);
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // This is called just before a GSSAPI library may be loaded.
+ void OnBeforeGssapiLibraryLoad();
+ #endif // BUILDFLAG(IS_LINUX)
+@@ -494,7 +494,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE)
+ // leaking stale listeners between tests.
+ std::unique_ptr<net::NetworkChangeNotifier> mock_network_change_notifier_;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ mojo::Remote<mojom::GssapiLibraryLoadObserver> gssapi_library_load_observer_;
+ #endif // BUILDFLAG(IS_LINUX)
+
diff --git a/chromium/patches/patch-services_network_public_cpp_BUILD.gn b/chromium/patches/patch-services_network_public_cpp_BUILD.gn
new file mode 100644
index 0000000000..17cfaaa395
--- /dev/null
+++ b/chromium/patches/patch-services_network_public_cpp_BUILD.gn
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/network/public/cpp/BUILD.gn.orig 2024-07-24 02:44:43.729468300 +0000
++++ services/network/public/cpp/BUILD.gn
+@@ -515,7 +515,7 @@ component("cpp_base") {
+ sources += [ "transferable_directory_fuchsia.cc" ]
+ }
+
+- if (is_linux) {
++ if (is_linux && !is_bsd) {
+ sources += [
+ "network_interface_change_listener_mojom_traits.cc",
+ "network_interface_change_listener_mojom_traits.h",
+@@ -637,7 +637,7 @@ source_set("tests") {
+ ]
+ }
+
+- if (is_linux) {
++ if ((is_linux) && !is_bsd) {
+ sources += [ "network_interface_change_listener_mojom_traits_unittest.cc" ]
+ }
+
diff --git a/chromium/patches/patch-services_network_public_cpp_features.cc b/chromium/patches/patch-services_network_public_cpp_features.cc
new file mode 100644
index 0000000000..3c45d14fc9
--- /dev/null
+++ b/chromium/patches/patch-services_network_public_cpp_features.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/network/public/cpp/features.cc.orig 2024-07-24 02:44:43.741469600 +0000
++++ services/network/public/cpp/features.cc
+@@ -120,7 +120,7 @@ BASE_FEATURE(kSplitAuthCacheByNetworkIso
+ BASE_FEATURE(kDnsOverHttpsUpgrade,
+ "DnsOverHttpsUpgrade",
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)
++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+ base::FEATURE_DISABLED_BY_DEFAULT
diff --git a/chromium/patches/patch-services_network_public_mojom_BUILD.gn b/chromium/patches/patch-services_network_public_mojom_BUILD.gn
index c55f20a9aa..61b3870d74 100644
--- a/chromium/patches/patch-services_network_public_mojom_BUILD.gn
+++ b/chromium/patches/patch-services_network_public_mojom_BUILD.gn
@@ -1,13 +1,31 @@
$NetBSD$
---- services/network/public/mojom/BUILD.gn.orig 2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/network/public/mojom/BUILD.gn.orig 2024-07-24 02:44:43.761471500 +0000
+++ services/network/public/mojom/BUILD.gn
-@@ -506,7 +506,7 @@ mojom("mojom") {
+@@ -529,11 +529,11 @@ mojom("url_loader_base") {
+ }
+
+ enabled_features = []
+- if (is_android || is_chromeos || is_linux) {
++ if (!is_bsd && (is_android || is_chromeos || is_linux)) {
+ enabled_features += [ "network_change_notifier_in_browser" ]
+ }
- # This is only needed on desktop linux, but the defines make this difficult
- # because IS_CHROMECAST is not available in build/build_config.h.
-- if (is_linux && !is_chromeos) {
-+ if ((is_linux || is_bsd) && !is_chromeos) {
- enabled_features += [ "needs_crypt_config" ]
+- if (is_linux) {
++ if (is_linux && !is_bsd) {
+ # TODO(crbug.com/40263697): Remove this once is_linux in the mojom IDL does
+ # not include lacros.
+ enabled_features += [ "use_network_interface_change_listener" ]
+@@ -1495,7 +1495,7 @@ mojom("mojom") {
+ }
}
+- if (is_linux) {
++ if (is_linux && !is_bsd) {
+ # TODO(crbug.com/40263697): Remove this once is_linux in the mojom IDL does
+ # not include lacros.
+ enabled_features += [ "use_network_interface_change_listener" ]
diff --git a/chromium/patches/patch-services_network_shared__dictionary_shared__dictionary__writer__in__memory.h b/chromium/patches/patch-services_network_shared__dictionary_shared__dictionary__writer__in__memory.h
new file mode 100644
index 0000000000..cee90bf274
--- /dev/null
+++ b/chromium/patches/patch-services_network_shared__dictionary_shared__dictionary__writer__in__memory.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/network/shared_dictionary/shared_dictionary_writer_in_memory.h.orig 2024-07-24 02:44:43.781473400 +0000
++++ services/network/shared_dictionary/shared_dictionary_writer_in_memory.h
+@@ -9,6 +9,8 @@
+ #include <string>
+ #include <vector>
+
++#include <vector>
++
+ #include "base/component_export.h"
+ #include "base/functional/callback.h"
+ #include "crypto/secure_hash.h"
diff --git a/chromium/patches/patch-services_on__device__model_on__device__model__service.h b/chromium/patches/patch-services_on__device__model_on__device__model__service.h
new file mode 100644
index 0000000000..458de6922d
--- /dev/null
+++ b/chromium/patches/patch-services_on__device__model_on__device__model__service.h
@@ -0,0 +1,28 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/on_device_model/on_device_model_service.h.orig 2024-07-24 02:44:43.805475700 +0000
++++ services/on_device_model/on_device_model_service.h
+@@ -22,6 +22,10 @@
+ #include "sandbox/policy/linux/sandbox_linux.h"
+ #endif
+
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
++#endif
++
+ namespace on_device_model {
+
+ class COMPONENT_EXPORT(ON_DEVICE_MODEL) OnDeviceModelService
+@@ -35,7 +39,7 @@ class COMPONENT_EXPORT(ON_DEVICE_MODEL)
+ // Must be called in the service's process after the run loop finished.
+ [[nodiscard]] static bool Shutdown();
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ static void AddSandboxLinuxOptions(
+ sandbox::policy::SandboxLinux::Options& options);
+ #endif
diff --git a/chromium/patches/patch-services_on__device__model_pre__sandbox__init.cc b/chromium/patches/patch-services_on__device__model_pre__sandbox__init.cc
new file mode 100644
index 0000000000..11e0c78f4f
--- /dev/null
+++ b/chromium/patches/patch-services_on__device__model_pre__sandbox__init.cc
@@ -0,0 +1,44 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/on_device_model/pre_sandbox_init.cc.orig 2024-07-24 02:44:43.805475700 +0000
++++ services/on_device_model/pre_sandbox_init.cc
+@@ -14,7 +14,7 @@
+ #include "services/on_device_model/ml/chrome_ml.h" // nogncheck
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "gpu/config/gpu_info_collector.h" // nogncheck
+ #include "third_party/dawn/include/dawn/dawn_proc.h" // nogncheck
+ #include "third_party/dawn/include/dawn/native/DawnNative.h" // nogncheck
+@@ -31,7 +31,7 @@ namespace on_device_model {
+
+ namespace {
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ constexpr uint32_t kVendorIdAMD = 0x1002;
+ constexpr uint32_t kVendorIdIntel = 0x8086;
+ constexpr uint32_t kVendorIdNVIDIA = 0x10DE;
+@@ -80,7 +80,7 @@ bool OnDeviceModelService::PreSandboxIni
+ }
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Warm any relevant drivers before attempting to bring up the sandbox. For
+ // good measure we initialize a device instance for any adapter with an
+ // appropriate backend on top of any integrated or discrete GPU.
+@@ -116,7 +116,7 @@ bool OnDeviceModelService::PreSandboxIni
+ return true;
+ }
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // static
+ void OnDeviceModelService::AddSandboxLinuxOptions(
+ sandbox::policy::SandboxLinux::Options& options) {
diff --git a/chromium/patches/patch-services_resource__coordinator_memory__instrumentation_queued__request__dispatcher.cc b/chromium/patches/patch-services_resource__coordinator_memory__instrumentation_queued__request__dispatcher.cc
index 431a196d37..86cb71d3d9 100644
--- a/chromium/patches/patch-services_resource__coordinator_memory__instrumentation_queued__request__dispatcher.cc
+++ b/chromium/patches/patch-services_resource__coordinator_memory__instrumentation_queued__request__dispatcher.cc
@@ -1,31 +1,71 @@
$NetBSD$
---- services/resource_coordinator/memory_instrumentation/queued_request_dispatcher.cc.orig 2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/resource_coordinator/memory_instrumentation/queued_request_dispatcher.cc.orig 2024-07-24 02:44:43.825477800 +0000
+++ services/resource_coordinator/memory_instrumentation/queued_request_dispatcher.cc
-@@ -43,7 +43,7 @@ namespace {
- uint32_t CalculatePrivateFootprintKb(const mojom::RawOSMemDump& os_dump,
+@@ -54,7 +54,7 @@ uint32_t CalculatePrivateFootprintKb(con
uint32_t shared_resident_kb) {
DCHECK(os_dump.platform_private_footprint);
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+- BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
uint64_t rss_anon_bytes = os_dump.platform_private_footprint->rss_anon_bytes;
uint64_t vm_swap_bytes = os_dump.platform_private_footprint->vm_swap_bytes;
return (rss_anon_bytes + vm_swap_bytes) / 1024;
-@@ -82,7 +82,7 @@ memory_instrumentation::mojom::OSMemDump
+@@ -83,7 +83,7 @@ memory_instrumentation::mojom::OSMemDump
os_dump->is_peak_rss_resettable = internal_os_dump.is_peak_rss_resettable;
os_dump->private_footprint_kb =
CalculatePrivateFootprintKb(internal_os_dump, shared_resident_kb);
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
os_dump->private_footprint_swap_kb =
internal_os_dump.platform_private_footprint->vm_swap_bytes / 1024;
#endif
-@@ -243,7 +243,7 @@ void QueuedRequestDispatcher::SetUpAndDi
+@@ -219,7 +219,7 @@ void QueuedRequestDispatcher::SetUpAndDi
// On most platforms each process can dump data about their own process
// so ask each process to do so Linux is special see below.
--#if !defined(OS_LINUX)
-+#if !defined(OS_LINUX) && !defined(OS_BSD)
+-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD)
request->pending_responses.insert({client_info.pid, ResponseType::kOSDump});
client->RequestOSMemoryDump(request->memory_map_option(),
{base::kNullProcessId},
+@@ -234,7 +234,7 @@ void QueuedRequestDispatcher::SetUpAndDi
+
+ // In some cases, OS stats can only be dumped from a privileged process to
+ // get around to sandboxing/selinux restrictions (see crbug.com/461788).
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ std::vector<base::ProcessId> pids;
+ mojom::ClientProcess* browser_client = nullptr;
+ base::ProcessId browser_client_pid = base::kNullProcessId;
+@@ -280,7 +280,7 @@ void QueuedRequestDispatcher::SetUpAndDi
+ const OsCallback& os_callback) {
+ // On Linux, OS stats can only be dumped from a privileged process to
+ // get around to sandboxing/selinux restrictions (see crbug.com/461788).
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ mojom::ClientProcess* browser_client = nullptr;
+ base::ProcessId browser_client_pid = 0;
+ for (const auto& client_info : clients) {
+@@ -330,7 +330,7 @@ QueuedRequestDispatcher::FinalizeVmRegio
+ // each client process provides 1 OS dump, % the case where the client is
+ // disconnected mid dump.
+ OSMemDumpMap& extra_os_dumps = response.second.os_dumps;
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ for (auto& kv : extra_os_dumps) {
+ auto pid = kv.first == base::kNullProcessId ? original_pid : kv.first;
+ DCHECK(results.find(pid) == results.end());
+@@ -391,7 +391,7 @@ void QueuedRequestDispatcher::Finalize(Q
+ // crash). In the latter case (OS_LINUX) we expect the full map to come
+ // from the browser process response.
+ OSMemDumpMap& extra_os_dumps = response.second.os_dumps;
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ for (const auto& kv : extra_os_dumps) {
+ auto pid = kv.first == base::kNullProcessId ? original_pid : kv.first;
+ DCHECK_EQ(pid_to_os_dump[pid], nullptr);
diff --git a/chromium/patches/patch-services_resource__coordinator_public_cpp_memory__instrumentation_BUILD.gn b/chromium/patches/patch-services_resource__coordinator_public_cpp_memory__instrumentation_BUILD.gn
new file mode 100644
index 0000000000..feb528310c
--- /dev/null
+++ b/chromium/patches/patch-services_resource__coordinator_public_cpp_memory__instrumentation_BUILD.gn
@@ -0,0 +1,24 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/resource_coordinator/public/cpp/memory_instrumentation/BUILD.gn.orig 2024-07-24 02:44:43.825477800 +0000
++++ services/resource_coordinator/public/cpp/memory_instrumentation/BUILD.gn
+@@ -29,10 +29,14 @@ component("memory_instrumentation") {
+ sources += [ "os_metrics_win.cc" ]
+ }
+
+- if (is_android || is_linux || is_chromeos) {
++ if ((is_android || is_linux || is_chromeos) && !is_bsd) {
+ sources += [ "os_metrics_linux.cc" ]
+ }
+
++ if (is_bsd) {
++ sources += [ "os_metrics_bsd.cc" ]
++ }
++
+ if (is_fuchsia) {
+ sources += [ "os_metrics_fuchsia.cc" ]
+ }
diff --git a/chromium/patches/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics.h b/chromium/patches/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics.h
index 3fa43465e9..906b58e6f2 100644
--- a/chromium/patches/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics.h
+++ b/chromium/patches/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics.h
@@ -1,22 +1,26 @@
$NetBSD$
---- services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics.h.orig 2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics.h.orig 2024-07-24 02:44:43.825477800 +0000
+++ services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics.h
-@@ -28,7 +28,7 @@ class COMPONENT_EXPORT(
+@@ -45,7 +45,7 @@ class COMPONENT_EXPORT(
mojom::RawOSMemDump*);
static std::vector<mojom::VmRegionPtr> GetProcessMemoryMaps(base::ProcessId);
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
static void SetProcSmapsForTesting(FILE*);
- #endif // defined(OS_LINUX) || defined(OS_ANDROID)
-
-@@ -44,7 +44,7 @@ class COMPONENT_EXPORT(
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ||
+ // BUILDFLAG(IS_ANDROID)
+@@ -62,7 +62,7 @@ class COMPONENT_EXPORT(
static std::vector<mojom::VmRegionPtr> GetProcessModules(base::ProcessId);
#endif
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
// Provides information on the dump state of resident pages. These values are
// written to logs. New enum values can be added, but existing enums must
// never be renumbered or deleted and reused.
diff --git a/chromium/patches/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics__bsd.cc b/chromium/patches/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics__bsd.cc
new file mode 100644
index 0000000000..42405538b3
--- /dev/null
+++ b/chromium/patches/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics__bsd.cc
@@ -0,0 +1,75 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_bsd.cc.orig 2024-08-01 14:09:00.473365973 +0000
++++ services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_bsd.cc
+@@ -0,0 +1,66 @@
++// Copyright 2022 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics.h"
++
++#include "base/memory/page_size.h"
++#include "base/process/process.h"
++#include "base/process/process_handle.h"
++
++#include <sys/sysctl.h>
++
++#include <vector>
++
++#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
++#define vm_rssize info.p_vm_rssize
++#elif BUILDFLAG(IS_FREEBSD)
++#include <sys/user.h>
++#define vm_rssize info.ki_rssize
++#endif
++
++namespace memory_instrumentation {
++
++// static
++bool OSMetrics::FillOSMemoryDump(base::ProcessId pid,
++ mojom::RawOSMemDump* dump) {
++ base::Process process = pid == base::kNullProcessId
++ ? base::Process::Current()
++ : base::Process::Open(pid);
++ const size_t kPageSize = base::GetPageSize();
++#if BUILDFLAG(IS_NETBSD)
++ struct kinfo_proc2 info;
++ size_t length = sizeof(struct kinfo_proc2);
++#else
++ struct kinfo_proc info;
++ size_t length = sizeof(struct kinfo_proc);
++#endif
++#if BUILDFLAG(IS_OPENBSD)
++ int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process.Handle(),
++ static_cast<int>(length), 1 };
++#elif BUILDFLAG(IS_FREEBSD)
++ int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process.Handle() };
++#elif BUILDFLAG(IS_NETBSD)
++ int mib[] = { CTL_KERN, KERN_PROC2, KERN_PROC_PID, process.Handle(),
++ sizeof(struct kinfo_proc2), 1 };
++#endif
++
++ if (sysctl(mib, std::size(mib), &info, &length, NULL, 0) < 0)
++ return false;
++
++ dump->resident_set_kb = (vm_rssize * kPageSize) / 1024;
++ dump->platform_private_footprint->rss_anon_bytes =
++ vm_rssize * kPageSize;
++ dump->platform_private_footprint->vm_swap_bytes = 0;
++
++ return true;
++}
++
++// static
++std::vector<mojom::VmRegionPtr> OSMetrics::GetProcessMemoryMaps(
++ base::ProcessId) {
++ NOTIMPLEMENTED();
++ return std::vector<mojom::VmRegionPtr>();
++}
++
++} // namespace memory_instrumentation
diff --git a/chromium/patches/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics__linux.cc b/chromium/patches/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics__linux.cc
deleted file mode 100644
index 473c6a660d..0000000000
--- a/chromium/patches/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics__linux.cc
+++ /dev/null
@@ -1,75 +0,0 @@
-$NetBSD$
-
---- services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_linux.cc.orig 2020-07-15 18:56:01.000000000 +0000
-+++ services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_linux.cc
-@@ -23,8 +23,10 @@
- #include "build/build_config.h"
- #include "services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics.h"
-
-+#if !defined(OS_BSD)
- // Symbol with virtual address of the start of ELF header of the current binary.
- extern char __ehdr_start;
-+#endif
-
- namespace memory_instrumentation {
-
-@@ -36,6 +38,7 @@ using mojom::VmRegionPtr;
- const char kClearPeakRssCommand[] = "5";
- const uint32_t kMaxLineSize = 4096;
-
-+#if !defined(OS_BSD)
- // TODO(chiniforooshan): Many of the utility functions in this anonymous
- // namespace should move to base/process/process_metrics_linux.cc to make the
- // code a lot cleaner. However, we should do so after we made sure the metrics
-@@ -227,6 +230,7 @@ uint32_t ReadLinuxProcSmapsFile(FILE* sm
- }
- return num_valid_regions;
- }
-+#endif
-
- } // namespace
-
-@@ -240,6 +244,9 @@ void OSMetrics::SetProcSmapsForTesting(F
- // static
- bool OSMetrics::FillOSMemoryDump(base::ProcessId pid,
- mojom::RawOSMemDump* dump) {
-+#if defined(OS_BSD)
-+ return false;
-+#else
- // TODO(chiniforooshan): There is no need to read both /statm and /status
- // files. Refactor to get everything from /status using ProcessMetric.
- auto statm_file = GetProcPidDir(pid).Append("statm");
-@@ -296,10 +303,15 @@ bool OSMetrics::FillOSMemoryDump(base::P
- #endif // defined(OS_ANDROID)
-
- return true;
-+#endif
- }
-
- // static
- std::vector<VmRegionPtr> OSMetrics::GetProcessMemoryMaps(base::ProcessId pid) {
-+#if defined(OS_BSD)
-+ NOTIMPLEMENTED();
-+ return std::vector<VmRegionPtr>();
-+#else
- std::vector<VmRegionPtr> maps;
- uint32_t res = 0;
- if (g_proc_smaps_for_testing) {
-@@ -317,8 +329,10 @@ std::vector<VmRegionPtr> OSMetrics::GetP
- return std::vector<VmRegionPtr>();
-
- return maps;
-+#endif
- }
-
-+#if !defined(OS_BSD)
- // static
- OSMetrics::MappedAndResidentPagesDumpState OSMetrics::GetMappedAndResidentPages(
- const size_t start_address,
-@@ -400,5 +414,6 @@ size_t OSMetrics::GetPeakResidentSetSize
- }
- return 0;
- }
-+#endif
-
- } // namespace memory_instrumentation
diff --git a/chromium/patches/patch-services_resource__coordinator_public_mojom_BUILD.gn b/chromium/patches/patch-services_resource__coordinator_public_mojom_BUILD.gn
deleted file mode 100644
index 6b1243ab54..0000000000
--- a/chromium/patches/patch-services_resource__coordinator_public_mojom_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- services/resource_coordinator/public/mojom/BUILD.gn.orig 2020-07-15 18:56:01.000000000 +0000
-+++ services/resource_coordinator/public/mojom/BUILD.gn
-@@ -20,7 +20,7 @@ mojom_component("mojom") {
- ]
-
- enabled_features = []
-- if (is_linux || is_android) {
-+ if (is_linux || is_android || is_bsd) {
- enabled_features += [ "private_swap_info" ]
- }
- }
diff --git a/chromium/patches/patch-services_screen__ai_public_cpp_utilities.cc b/chromium/patches/patch-services_screen__ai_public_cpp_utilities.cc
new file mode 100644
index 0000000000..85d3ad14e3
--- /dev/null
+++ b/chromium/patches/patch-services_screen__ai_public_cpp_utilities.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/screen_ai/public/cpp/utilities.cc.orig 2024-07-24 02:44:43.829478000 +0000
++++ services/screen_ai/public/cpp/utilities.cc
+@@ -19,7 +19,7 @@ namespace screen_ai {
+
+ namespace {
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ constexpr char kBinaryPathSwitch[] = "screen-ai-binary";
+ #endif
+
+@@ -40,7 +40,7 @@ constexpr char kScreenAIDlcRootPath[] =
+ #endif
+
+ #if BUILDFLAG(ENABLE_SCREEN_AI_BROWSERTESTS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ constexpr base::FilePath::CharType kScreenAIResourcePathForTests[] =
+ FILE_PATH_LITERAL("third_party/screen-ai/linux/resources");
+ #elif BUILDFLAG(IS_MAC)
+@@ -127,7 +127,7 @@ base::FilePath GetComponentBinaryPathFor
+
+ const char* GetBinaryPathSwitch() {
+ // This is only used on Linux and ChromeOS.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ return kBinaryPathSwitch;
+ #else
+ return nullptr;
diff --git a/chromium/patches/patch-services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.cc b/chromium/patches/patch-services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.cc
new file mode 100644
index 0000000000..b2255e101d
--- /dev/null
+++ b/chromium/patches/patch-services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.cc
@@ -0,0 +1,24 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/screen_ai/sandbox/screen_ai_sandbox_hook_linux.cc.orig 2024-07-24 02:44:43.829478000 +0000
++++ services/screen_ai/sandbox/screen_ai_sandbox_hook_linux.cc
+@@ -53,6 +53,7 @@ bool ScreenAIPreSandboxHook(base::FilePa
+ }
+ }
+
++#if !BUILDFLAG(IS_BSD)
+ auto* instance = sandbox::policy::SandboxLinux::GetInstance();
+
+ std::vector<BrokerFilePermission> permissions{
+@@ -75,6 +76,7 @@ bool ScreenAIPreSandboxHook(base::FilePa
+ sandbox::syscall_broker::COMMAND_OPEN}),
+ permissions, options);
+ instance->EngageNamespaceSandboxIfPossible();
++#endif
+
+ return true;
+ }
diff --git a/chromium/patches/patch-services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.h b/chromium/patches/patch-services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.h
new file mode 100644
index 0000000000..f08f095051
--- /dev/null
+++ b/chromium/patches/patch-services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.h
@@ -0,0 +1,22 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/screen_ai/sandbox/screen_ai_sandbox_hook_linux.h.orig 2024-07-24 02:44:43.829478000 +0000
++++ services/screen_ai/sandbox/screen_ai_sandbox_hook_linux.h
+@@ -6,7 +6,13 @@
+ #define SERVICES_SCREEN_AI_SANDBOX_SCREEN_AI_SANDBOX_HOOK_LINUX_H_
+
+ #include "base/files/file_path.h"
++#include "build/build_config.h"
++
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
++#else
+ #include "sandbox/policy/linux/sandbox_linux.h"
++#endif
+
+ namespace screen_ai {
+
diff --git a/chromium/patches/patch-services_service__manager_BUILD.gn b/chromium/patches/patch-services_service__manager_BUILD.gn
new file mode 100644
index 0000000000..1b4858518b
--- /dev/null
+++ b/chromium/patches/patch-services_service__manager_BUILD.gn
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/service_manager/BUILD.gn.orig 2024-07-24 02:44:43.829478000 +0000
++++ services/service_manager/BUILD.gn
+@@ -66,7 +66,7 @@ source_set("service_manager") {
+ ]
+ }
+
+- if (is_linux || is_chromeos) {
++ if ((is_linux || is_chromeos) && !is_bsd) {
+ deps += [ "//sandbox/linux:sandbox_services" ]
+ }
+ }
diff --git a/chromium/patches/patch-services_service__manager_embedder_BUILD.gn b/chromium/patches/patch-services_service__manager_embedder_BUILD.gn
deleted file mode 100644
index 1657dbf863..0000000000
--- a/chromium/patches/patch-services_service__manager_embedder_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- services/service_manager/embedder/BUILD.gn.orig 2020-06-25 09:31:34.000000000 +0000
-+++ services/service_manager/embedder/BUILD.gn
-@@ -58,7 +58,7 @@ if (!is_ios) {
- deps += [ "//ui/base" ]
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- deps += [ ":set_process_title_linux" ]
- }
-
-@@ -79,7 +79,7 @@ source_set("embedder_result_codes") {
- sources = [ "result_codes.h" ]
- }
-
--if (is_linux) {
-+if (is_linux || is_bsd) {
- source_set("set_process_title_linux") {
- public = [ "set_process_title_linux.h" ]
- sources = [ "set_process_title_linux.cc" ]
diff --git a/chromium/patches/patch-services_service__manager_embedder_main.cc b/chromium/patches/patch-services_service__manager_embedder_main.cc
deleted file mode 100644
index 4ff35f7657..0000000000
--- a/chromium/patches/patch-services_service__manager_embedder_main.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- services/service_manager/embedder/main.cc.orig 2020-07-15 18:56:47.000000000 +0000
-+++ services/service_manager/embedder/main.cc
-@@ -275,7 +275,7 @@ int Main(const MainParams& params) {
- #endif
- base::EnableTerminationOnOutOfMemory();
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // The various desktop environments set this environment variable that
- // allows the dbus client library to connect directly to the bus. When this
- // variable is not set (test environments like xvfb-run), the dbus client
diff --git a/chromium/patches/patch-services_service__manager_embedder_set__process__title__linux.h b/chromium/patches/patch-services_service__manager_embedder_set__process__title__linux.h
deleted file mode 100644
index 7190a5dbb0..0000000000
--- a/chromium/patches/patch-services_service__manager_embedder_set__process__title__linux.h
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- services/service_manager/embedder/set_process_title_linux.h.orig 2020-07-15 18:56:01.000000000 +0000
-+++ services/service_manager/embedder/set_process_title_linux.h
-@@ -5,6 +5,9 @@
- #ifndef SERVICES_SERVICE_MANAGER_EMBEDDER_SET_PROCESS_TITLE_LINUX_H_
- #define SERVICES_SERVICE_MANAGER_EMBEDDER_SET_PROCESS_TITLE_LINUX_H_
-
-+#include "build/build_config.h"
-+
-+#if !defined(OS_BSD)
- // Set the process title that will show in "ps" and similar tools. Takes
- // printf-style format string and arguments. After calling setproctitle()
- // the original main() argv[] array should not be used. By default, the
-@@ -14,6 +17,7 @@
- // This signature and naming is to be compatible with most other Unix
- // implementations of setproctitle().
- void setproctitle(const char* fmt, ...);
-+#endif
-
- // Initialize state needed for setproctitle() on Linux. Pass the argv pointer
- // from main() to setproctitle_init() before calling setproctitle().
diff --git a/chromium/patches/patch-services_service__manager_public_cpp_service__executable_BUILD.gn b/chromium/patches/patch-services_service__manager_public_cpp_service__executable_BUILD.gn
index 5fad888313..bfef7300c5 100644
--- a/chromium/patches/patch-services_service__manager_public_cpp_service__executable_BUILD.gn
+++ b/chromium/patches/patch-services_service__manager_public_cpp_service__executable_BUILD.gn
@@ -1,24 +1,17 @@
$NetBSD$
---- services/service_manager/public/cpp/service_executable/BUILD.gn.orig 2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/service_manager/public/cpp/service_executable/BUILD.gn.orig 2024-07-24 02:44:43.833478500 +0000
+++ services/service_manager/public/cpp/service_executable/BUILD.gn
-@@ -22,13 +22,18 @@ source_set("support") {
+@@ -22,7 +22,7 @@ source_set("support") {
"//services/service_manager/public/mojom",
]
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
+- if (is_linux || is_chromeos) {
++ if ((is_linux || is_chromeos) && !is_bsd) {
deps += [
"//sandbox/linux:sandbox",
"//sandbox/linux:sandbox_services",
- "//sandbox/linux:seccomp_bpf",
- ]
- }
-+ if (is_bsd) {
-+ deps -= [
-+ "//sandbox/linux:seccomp_bpf"
-+ ]
-+ }
- }
-
- source_set("switches") {
diff --git a/chromium/patches/patch-services_service__manager_sandbox_switches.cc b/chromium/patches/patch-services_service__manager_sandbox_switches.cc
deleted file mode 100644
index 8b99d711bc..0000000000
--- a/chromium/patches/patch-services_service__manager_sandbox_switches.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- services/service_manager/sandbox/switches.cc.orig 2020-07-15 18:56:47.000000000 +0000
-+++ services/service_manager/sandbox/switches.cc
-@@ -85,7 +85,7 @@ const char kGpuSandboxFailuresFatal[] =
- // Meant to be used as a browser-level switch for testing purposes only.
- const char kNoSandbox[] = "no-sandbox";
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // Instructs the zygote to launch without a sandbox. Processes forked from this
- // type of zygote will apply their own custom sandboxes later.
- const char kNoZygoteSandbox[] = "no-zygote-sandbox";
diff --git a/chromium/patches/patch-services_service__manager_sandbox_switches.h b/chromium/patches/patch-services_service__manager_sandbox_switches.h
deleted file mode 100644
index e55c502c81..0000000000
--- a/chromium/patches/patch-services_service__manager_sandbox_switches.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- services/service_manager/sandbox/switches.h.orig 2020-07-15 18:56:47.000000000 +0000
-+++ services/service_manager/sandbox/switches.h
-@@ -55,7 +55,7 @@ SERVICE_MANAGER_SANDBOX_EXPORT extern co
- SERVICE_MANAGER_SANDBOX_EXPORT extern const char kGpuSandboxAllowSysVShm[];
- SERVICE_MANAGER_SANDBOX_EXPORT extern const char kGpuSandboxFailuresFatal[];
- SERVICE_MANAGER_SANDBOX_EXPORT extern const char kNoSandbox[];
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- SERVICE_MANAGER_SANDBOX_EXPORT extern const char kNoZygoteSandbox[];
- #endif
- #if defined(OS_WIN)
diff --git a/chromium/patches/patch-services_tracing_public_cpp_perfetto_trace__time.cc b/chromium/patches/patch-services_tracing_public_cpp_perfetto_trace__time.cc
deleted file mode 100644
index 7115aca648..0000000000
--- a/chromium/patches/patch-services_tracing_public_cpp_perfetto_trace__time.cc
+++ /dev/null
@@ -1,27 +0,0 @@
-$NetBSD$
-
---- services/tracing/public/cpp/perfetto/trace_time.cc.orig 2020-07-15 18:56:01.000000000 +0000
-+++ services/tracing/public/cpp/perfetto/trace_time.cc
-@@ -12,13 +12,19 @@ namespace tracing {
-
- int64_t TraceBootTicksNow() {
- // On Windows and Mac, TRACE_TIME_TICKS_NOW() behaves like boottime already.
--#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FUCHSIA) || defined(OS_BSD)
- struct timespec ts;
-+#if defined(OS_FREEBSD)
-+ int res = clock_gettime(CLOCK_UPTIME, &ts);
-+#elif defined(OS_NETBSD)
-+ int res = clock_gettime(CLOCK_MONOTONIC, &ts);
-+#else
- int res = clock_gettime(CLOCK_BOOTTIME, &ts);
-+#endif
- if (res != -1)
- return static_cast<int64_t>(perfetto::base::FromPosixTimespec(ts).count());
- #endif
- return TRACE_TIME_TICKS_NOW().since_origin().InNanoseconds();
- }
-
--} // namespace tracing
-\ No newline at end of file
-+} // namespace tracing
diff --git a/chromium/patches/patch-services_tracing_public_cpp_perfetto_trace__time.h b/chromium/patches/patch-services_tracing_public_cpp_perfetto_trace__time.h
deleted file mode 100644
index e370e2564e..0000000000
--- a/chromium/patches/patch-services_tracing_public_cpp_perfetto_trace__time.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- services/tracing/public/cpp/perfetto/trace_time.h.orig 2020-07-15 18:56:01.000000000 +0000
-+++ services/tracing/public/cpp/perfetto/trace_time.h
-@@ -10,7 +10,7 @@
-
- namespace tracing {
-
--#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FUCHSIA) || defined(OS_BSD)
- // Linux, Android, and Fuchsia all use CLOCK_MONOTONIC. See crbug.com/166153
- // about efforts to unify base::TimeTicks across all platforms.
- constexpr perfetto::protos::pbzero::BuiltinClock kTraceClockId =
diff --git a/chromium/patches/patch-services_tracing_public_cpp_stack__sampling_tracing__sampler__profiler.cc b/chromium/patches/patch-services_tracing_public_cpp_stack__sampling_tracing__sampler__profiler.cc
index df12041070..fe81e0f375 100644
--- a/chromium/patches/patch-services_tracing_public_cpp_stack__sampling_tracing__sampler__profiler.cc
+++ b/chromium/patches/patch-services_tracing_public_cpp_stack__sampling_tracing__sampler__profiler.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.cc.orig 2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.cc.orig 2024-07-24 02:44:43.873482500 +0000
+++ services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.cc
-@@ -525,7 +525,7 @@ void TracingSamplerProfiler::TracingProf
+@@ -38,7 +38,7 @@
+ #include "third_party/perfetto/protos/perfetto/trace/track_event/process_descriptor.pbzero.h"
+ #include "third_party/perfetto/protos/perfetto/trace/track_event/thread_descriptor.pbzero.h"
- // static
- void TracingSamplerProfiler::MangleModuleIDIfNeeded(std::string* module_id) {
--#if defined(OS_ANDROID) || defined(OS_LINUX)
-+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD)
- // Linux ELF module IDs are 160bit integers, which we need to mangle
- // down to 128bit integers to match the id that Breakpad outputs.
- // Example on version '66.0.3359.170' x64:
+-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_APPLE)
++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD)
+ #include "base/profiler/thread_delegate_posix.h"
+ #define INITIALIZE_THREAD_DELEGATE_POSIX 1
+ #else // BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_APPLE)
diff --git a/chromium/patches/patch-services_video__capture_broadcasting__receiver.cc b/chromium/patches/patch-services_video__capture_broadcasting__receiver.cc
deleted file mode 100644
index 5503bf0ca7..0000000000
--- a/chromium/patches/patch-services_video__capture_broadcasting__receiver.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- services/video_capture/broadcasting_receiver.cc.orig 2020-07-15 18:56:01.000000000 +0000
-+++ services/video_capture/broadcasting_receiver.cc
-@@ -39,7 +39,7 @@ void CloneSharedBufferHandle(const mojo:
- void CloneSharedBufferToRawFileDescriptorHandle(
- const mojo::ScopedSharedBufferHandle& source,
- media::mojom::VideoBufferHandlePtr* target) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // |source| is unwrapped to a |PlatformSharedMemoryRegion|, from whence a file
- // descriptor can be extracted which is then mojo-wrapped.
- base::subtle::PlatformSharedMemoryRegion platform_region =
-@@ -182,7 +182,7 @@ void BroadcastingReceiver::BufferContext
- ConvertRawFileDescriptorToSharedBuffer() {
- DCHECK(buffer_handle_->is_shared_memory_via_raw_file_descriptor());
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // The conversion unwraps the descriptor from its mojo handle to the raw file
- // descriptor (ie, an int). This is used to create a
- // PlatformSharedMemoryRegion which is then wrapped as a
diff --git a/chromium/patches/patch-services_video__capture_public_mojom_video__capture__service.mojom b/chromium/patches/patch-services_video__capture_public_mojom_video__capture__service.mojom
new file mode 100644
index 0000000000..f991fe56bf
--- /dev/null
+++ b/chromium/patches/patch-services_video__capture_public_mojom_video__capture__service.mojom
@@ -0,0 +1,21 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/video_capture/public/mojom/video_capture_service.mojom.orig 2024-07-24 02:44:43.881483000 +0000
++++ services/video_capture/public/mojom/video_capture_service.mojom
+@@ -25,10 +25,10 @@ interface AcceleratorFactory {
+ pending_receiver<chromeos_camera.mojom.MjpegDecodeAccelerator> jda);
+ };
+
+-[EnableIf=is_fuchsia]
++[EnableIf=is_openbsd]
+ const sandbox.mojom.Sandbox kVideoCaptureSandbox
+ = sandbox.mojom.Sandbox.kVideoCapture;
+-[EnableIfNot=is_fuchsia]
++[EnableIfNot=is_openbsd]
+ const sandbox.mojom.Sandbox kVideoCaptureSandbox
+ = sandbox.mojom.Sandbox.kNoSandbox;
+
diff --git a/chromium/patches/patch-services_video__capture_video__capture__service__impl.cc b/chromium/patches/patch-services_video__capture_video__capture__service__impl.cc
new file mode 100644
index 0000000000..69a250d895
--- /dev/null
+++ b/chromium/patches/patch-services_video__capture_video__capture__service__impl.cc
@@ -0,0 +1,44 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/video_capture/video_capture_service_impl.cc.orig 2024-07-24 02:44:43.885483500 +0000
++++ services/video_capture/video_capture_service_impl.cc
+@@ -41,7 +41,7 @@
+ #include "services/video_capture/lacros/device_factory_adapter_lacros.h"
+ #endif // BUILDFLAG(IS_CHROMEOS_LACROS)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ #include "media/capture/capture_switches.h"
+ #include "media/capture/video/video_capture_gpu_channel_host.h"
+ #include "services/viz/public/cpp/gpu/context_provider_command_buffer.h"
+@@ -109,7 +109,7 @@ class VideoCaptureServiceImpl::GpuDepend
+ this};
+ };
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ // Intended usage of this class is to create viz::Gpu in utility process and
+ // connect to viz::GpuClient of browser process, which will call to Gpu service.
+ // Also, this class holds the viz::ContextProvider to listen and monitor Gpu
+@@ -311,7 +311,7 @@ void VideoCaptureServiceImpl::LazyInitia
+ gpu_dependencies_context_ = std::make_unique<GpuDependenciesContext>();
+
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
+-#if BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ {
+ #else
+ if (switches::IsVideoCaptureUseGpuMemoryBufferEnabled()) {
+@@ -433,7 +433,7 @@ void VideoCaptureServiceImpl::OnGpuInfoU
+ }
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ void VideoCaptureServiceImpl::SetVizGpu(std::unique_ptr<viz::Gpu> viz_gpu) {
+ viz_gpu_ = std::move(viz_gpu);
+ }
diff --git a/chromium/patches/patch-services_video__capture_video__capture__service__impl.h b/chromium/patches/patch-services_video__capture_video__capture__service__impl.h
new file mode 100644
index 0000000000..dc4671cbe8
--- /dev/null
+++ b/chromium/patches/patch-services_video__capture_video__capture__service__impl.h
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- services/video_capture/video_capture_service_impl.h.orig 2024-07-24 02:44:43.885483500 +0000
++++ services/video_capture/video_capture_service_impl.h
+@@ -27,7 +27,7 @@
+ #include "services/video_capture/ash/video_capture_device_factory_ash.h"
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ #include "services/viz/public/cpp/gpu/gpu.h"
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ||
+ // BUILDFLAG(IS_CHROMEOS_ASH)
+@@ -71,7 +71,7 @@ class VideoCaptureServiceImpl : public m
+ #if BUILDFLAG(IS_WIN)
+ void OnGpuInfoUpdate(const CHROME_LUID& luid) override;
+ #endif
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ void SetVizGpu(std::unique_ptr<viz::Gpu> viz_gpu);
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ||
+ // BUILDFLAG(IS_CHROMEOS_ASH)
+@@ -112,7 +112,7 @@ class VideoCaptureServiceImpl : public m
+ factory_receivers_ash_;
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ class VizGpuContextProvider;
+ std::unique_ptr<VizGpuContextProvider> viz_gpu_context_provider_;
+ std::unique_ptr<viz::Gpu> viz_gpu_;
diff --git a/chromium/patches/patch-services_viz_privileged_mojom_compositing_display__private.mojom b/chromium/patches/patch-services_viz_privileged_mojom_compositing_display__private.mojom
deleted file mode 100644
index 0f8f2fa08c..0000000000
--- a/chromium/patches/patch-services_viz_privileged_mojom_compositing_display__private.mojom
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- services/viz/privileged/mojom/compositing/display_private.mojom.orig 2020-07-15 18:56:01.000000000 +0000
-+++ services/viz/privileged/mojom/compositing/display_private.mojom
-@@ -90,6 +90,8 @@ interface DisplayClient {
- // Notifies that a swap has occurred with a new size.
- [EnableIf=is_linux]
- DidCompleteSwapWithNewSize(gfx.mojom.Size size);
-+ [EnableIf=is_bsd]
-+ DidCompleteSwapWithNewSize(gfx.mojom.Size size);
-
- // Notifies the client of the result of context creation attempt. On Android we can't
- // fall back to SW in failure cases, so we need to handle this specifically.
diff --git a/chromium/patches/patch-skia_BUILD.gn b/chromium/patches/patch-skia_BUILD.gn
deleted file mode 100644
index 40fb25cb24..0000000000
--- a/chromium/patches/patch-skia_BUILD.gn
+++ /dev/null
@@ -1,40 +0,0 @@
-$NetBSD$
-
---- skia/BUILD.gn.orig 2020-07-15 18:56:47.000000000 +0000
-+++ skia/BUILD.gn
-@@ -150,7 +150,7 @@ config("skia_library_config") {
- }
-
- # Settings for text blitting, chosen to approximate the system browser.
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- defines += [
- "SK_GAMMA_EXPONENT=1.2",
- "SK_GAMMA_CONTRAST=0.2",
-@@ -447,7 +447,7 @@ component("skia") {
- set_sources_assignment_filter(sources_assignment_filter)
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "//third_party/skia/src/ports/SkFontConfigInterface.cpp",
- "//third_party/skia/src/ports/SkFontConfigInterface_direct.cpp",
-@@ -456,7 +456,7 @@ component("skia") {
- ]
- }
-
-- if (is_linux || is_android) {
-+ if (is_linux || is_android || is_bsd) {
- sources += [
- # Retain the files for the SkFontMgr_Android on linux to emulate android
- # fonts. See content/zygote/zygote_main_linux.cc
-@@ -534,7 +534,7 @@ component("skia") {
- ]
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- deps += [
- "//third_party/expat",
- "//third_party/fontconfig",
diff --git a/chromium/patches/patch-skia_ext_SkMemory__new__handler.cpp b/chromium/patches/patch-skia_ext_SkMemory__new__handler.cpp
index 9509d864e6..4ee9d99de5 100644
--- a/chromium/patches/patch-skia_ext_SkMemory__new__handler.cpp
+++ b/chromium/patches/patch-skia_ext_SkMemory__new__handler.cpp
@@ -1,22 +1,26 @@
$NetBSD$
---- skia/ext/SkMemory_new_handler.cpp.orig 2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- skia/ext/SkMemory_new_handler.cpp.orig 2024-07-24 02:44:43.913486200 +0000
+++ skia/ext/SkMemory_new_handler.cpp
-@@ -78,7 +78,7 @@ static void* malloc_nothrow(size_t size)
+@@ -19,7 +19,7 @@
+ #include <windows.h>
+ #elif BUILDFLAG(IS_APPLE)
+ #include <malloc/malloc.h>
+-#else
++#elif !BUILDFLAG(IS_BSD)
+ #include <malloc.h>
+ #endif
+
+@@ -105,7 +105,7 @@ static void* malloc_nothrow(size_t size,
// TODO(b.kelemen): we should always use UncheckedMalloc but currently it
// doesn't work as intended everywhere.
void* result;
--#if defined(OS_IOS)
-+#if defined(OS_IOS) || defined(OS_BSD)
- result = malloc(size);
- #else
- // It's the responsibility of the caller to check the return value.
-@@ -98,7 +98,7 @@ static void* calloc_nothrow(size_t size)
- // TODO(b.kelemen): we should always use UncheckedCalloc but currently it
- // doesn't work as intended everywhere.
- void* result;
--#if defined(OS_IOS)
-+#if defined(OS_IOS) || defined(OS_BSD)
- result = calloc(1, size);
+-#if BUILDFLAG(IS_IOS)
++#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_BSD)
+ result = malloc(size);
#else
- // It's the responsibility of the caller to check the return value.
+ // It's the responsibility of the caller to check the return value.
diff --git a/chromium/patches/patch-skia_ext_font__utils.cc b/chromium/patches/patch-skia_ext_font__utils.cc
new file mode 100644
index 0000000000..e56d23c5e9
--- /dev/null
+++ b/chromium/patches/patch-skia_ext_font__utils.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- skia/ext/font_utils.cc.orig 2024-07-24 02:44:43.917486700 +0000
++++ skia/ext/font_utils.cc
+@@ -19,7 +19,7 @@
+ #include "third_party/skia/include/ports/SkFontMgr_mac_ct.h"
+ #endif
+
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "third_party/skia/include/ports/SkFontConfigInterface.h"
+ #include "third_party/skia/include/ports/SkFontMgr_FontConfigInterface.h"
+ #endif
+@@ -60,7 +60,7 @@ static sk_sp<SkFontMgr> fontmgr_factory(
+ return SkFontMgr_New_Android(nullptr);
+ #elif BUILDFLAG(IS_APPLE)
+ return SkFontMgr_New_CoreText(nullptr);
+-#elif BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ sk_sp<SkFontConfigInterface> fci(SkFontConfigInterface::RefGlobal());
+ return fci ? SkFontMgr_New_FCI(std::move(fci)) : nullptr;
+ #elif BUILDFLAG(IS_FUCHSIA)
diff --git a/chromium/patches/patch-skia_ext_platform__canvas.h b/chromium/patches/patch-skia_ext_platform__canvas.h
index f0e73397f0..432c68620b 100644
--- a/chromium/patches/patch-skia_ext_platform__canvas.h
+++ b/chromium/patches/patch-skia_ext_platform__canvas.h
@@ -1,6 +1,10 @@
$NetBSD$
---- skia/ext/platform_canvas.h.orig 2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- skia/ext/platform_canvas.h.orig 2024-07-24 02:44:43.921487000 +0000
+++ skia/ext/platform_canvas.h
@@ -58,7 +58,7 @@ SK_API HDC GetNativeDrawingContext(SkCan
diff --git a/chromium/patches/patch-skia_ext_skcolorspace__trfn.cc b/chromium/patches/patch-skia_ext_skcolorspace__trfn.cc
new file mode 100644
index 0000000000..3b77b3bafc
--- /dev/null
+++ b/chromium/patches/patch-skia_ext_skcolorspace__trfn.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- skia/ext/skcolorspace_trfn.cc.orig 2024-07-24 02:44:43.921487000 +0000
++++ skia/ext/skcolorspace_trfn.cc
+@@ -2,6 +2,8 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
++#include <cmath>
++
+ #include "skia/ext/skcolorspace_trfn.h"
+
+ #include <cmath>
diff --git a/chromium/patches/patch-third__party_abseil-cpp_absl_base_config.h b/chromium/patches/patch-third__party_abseil-cpp_absl_base_config.h
new file mode 100644
index 0000000000..5a5df40c9d
--- /dev/null
+++ b/chromium/patches/patch-third__party_abseil-cpp_absl_base_config.h
@@ -0,0 +1,27 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/abseil-cpp/absl/base/config.h.orig 2024-07-24 02:44:44.181512000 +0000
++++ third_party/abseil-cpp/absl/base/config.h
+@@ -412,7 +412,7 @@ static_assert(ABSL_INTERNAL_INLINE_NAMES
+ #ifdef ABSL_HAVE_SCHED_YIELD
+ #error ABSL_HAVE_SCHED_YIELD cannot be directly set
+ #elif defined(__linux__) || defined(__ros__) || defined(__native_client__) || \
+- defined(__VXWORKS__)
++ defined(__VXWORKS__) || defined(__OpenBSD__) || defined(__FreeBSD__)
+ #define ABSL_HAVE_SCHED_YIELD 1
+ #endif
+
+@@ -427,7 +427,8 @@ static_assert(ABSL_INTERNAL_INLINE_NAMES
+ // platforms.
+ #ifdef ABSL_HAVE_SEMAPHORE_H
+ #error ABSL_HAVE_SEMAPHORE_H cannot be directly set
+-#elif defined(__linux__) || defined(__ros__) || defined(__VXWORKS__)
++#elif defined(__linux__) || defined(__ros__) || defined(__VXWORKS__) || \
++ defined(__OpenBSD__) || defined(__FreeBSD__)
+ #define ABSL_HAVE_SEMAPHORE_H 1
+ #endif
+
diff --git a/chromium/patches/patch-third__party_abseil-cpp_absl_base_internal_raw__logging.cc b/chromium/patches/patch-third__party_abseil-cpp_absl_base_internal_raw__logging.cc
new file mode 100644
index 0000000000..f337e9d087
--- /dev/null
+++ b/chromium/patches/patch-third__party_abseil-cpp_absl_base_internal_raw__logging.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/abseil-cpp/absl/base/internal/raw_logging.cc.orig 2024-07-24 02:44:44.185512500 +0000
++++ third_party/abseil-cpp/absl/base/internal/raw_logging.cc
+@@ -44,7 +44,7 @@
+ #if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || \
+ defined(__hexagon__) || defined(__Fuchsia__) || \
+ defined(__native_client__) || defined(__OpenBSD__) || \
+- defined(__EMSCRIPTEN__) || defined(__ASYLO__)
++ defined(__EMSCRIPTEN__) || defined(__ASYLO__) || defined(__NetBSD__)
+
+ #include <unistd.h>
+
diff --git a/chromium/patches/patch-third__party_abseil-cpp_absl_base_internal_sysinfo.cc b/chromium/patches/patch-third__party_abseil-cpp_absl_base_internal_sysinfo.cc
new file mode 100644
index 0000000000..568ec35834
--- /dev/null
+++ b/chromium/patches/patch-third__party_abseil-cpp_absl_base_internal_sysinfo.cc
@@ -0,0 +1,71 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/abseil-cpp/absl/base/internal/sysinfo.cc.orig 2024-07-24 02:44:44.189513000 +0000
++++ third_party/abseil-cpp/absl/base/internal/sysinfo.cc
+@@ -30,7 +30,7 @@
+ #include <sys/syscall.h>
+ #endif
+
+-#if defined(__APPLE__) || defined(__FreeBSD__)
++#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__)
+ #include <sys/sysctl.h>
+ #endif
+
+@@ -194,6 +194,7 @@ static double GetNominalCPUFrequency() {
+
+ #else
+
++#if !defined(__OpenBSD__) && !defined(__FreeBSD__)
+ // Helper function for reading a long from a file. Returns true if successful
+ // and the memory location pointed to by value is set to the value read.
+ static bool ReadLongFromFile(const char *file, long *value) {
+@@ -226,6 +227,7 @@ static bool ReadLongFromFile(const char
+ }
+ return ret;
+ }
++#endif
+
+ #if defined(ABSL_INTERNAL_UNSCALED_CYCLECLOCK_FREQUENCY_IS_CPU_FREQUENCY)
+
+@@ -325,9 +327,11 @@ static double GetNominalCPUFrequency() {
+ // a new mode (turbo mode). Essentially, those frequencies cannot
+ // always be relied upon. The same reasons apply to /proc/cpuinfo as
+ // well.
++#if !defined(__OpenBSD__) && !defined(__FreeBSD__) // pledge violation
+ if (ReadLongFromFile("/sys/devices/system/cpu/cpu0/tsc_freq_khz", &freq)) {
+ return freq * 1e3; // Value is kHz.
+ }
++#endif
+
+ #if defined(ABSL_INTERNAL_UNSCALED_CYCLECLOCK_FREQUENCY_IS_CPU_FREQUENCY)
+ // On these platforms, the TSC frequency is the nominal CPU
+@@ -346,10 +350,12 @@ static double GetNominalCPUFrequency() {
+ // If CPU scaling is in effect, we want to use the *maximum*
+ // frequency, not whatever CPU speed some random processor happens
+ // to be using now.
++#if !defined(__OpenBSD__) && !defined(__FreeBSD__) // pledge violation
+ if (ReadLongFromFile("/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq",
+ &freq)) {
+ return freq * 1e3; // Value is kHz.
+ }
++#endif
+
+ return 1.0;
+ #endif // !ABSL_INTERNAL_UNSCALED_CYCLECLOCK_FREQUENCY_IS_CPU_FREQUENCY
+@@ -461,6 +467,12 @@ pid_t GetTID() {
+ return reinterpret_cast<pid_t>(thread);
+ }
+
++#elif defined(__OpenBSD__)
++
++pid_t GetTID() {
++ return getthrid();
++}
++
+ #else
+
+ // Fallback implementation of `GetTID` using `pthread_self`.
diff --git a/chromium/patches/patch-third__party_abseil-cpp_absl_debugging_internal_elf__mem__image.h b/chromium/patches/patch-third__party_abseil-cpp_absl_debugging_internal_elf__mem__image.h
new file mode 100644
index 0000000000..be7cd4bd48
--- /dev/null
+++ b/chromium/patches/patch-third__party_abseil-cpp_absl_debugging_internal_elf__mem__image.h
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h.orig 2024-07-24 02:44:44.209514900 +0000
++++ third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h
+@@ -34,7 +34,8 @@
+ #if defined(__ELF__) && !defined(__OpenBSD__) && !defined(__QNX__) && \
+ !defined(__native_client__) && !defined(__asmjs__) && \
+ !defined(__wasm__) && !defined(__HAIKU__) && !defined(__sun) && \
+- !defined(__VXWORKS__) && !defined(__hexagon__)
++ !defined(__VXWORKS__) && !defined(__hexagon__) && !defined(__FreeBSD__) && \
++ !defined(__NetBSD__)
+ #define ABSL_HAVE_ELF_MEM_IMAGE 1
+ #endif
+
diff --git a/chromium/patches/patch-third__party_abseil-cpp_absl_time_internal_cctz_src_time__zone__format.cc b/chromium/patches/patch-third__party_abseil-cpp_absl_time_internal_cctz_src_time__zone__format.cc
new file mode 100644
index 0000000000..d6e374348a
--- /dev/null
+++ b/chromium/patches/patch-third__party_abseil-cpp_absl_time_internal_cctz_src_time__zone__format.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc.orig 2024-07-24 02:44:44.273521200 +0000
++++ third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc
+@@ -19,7 +19,8 @@
+ #endif
+
+ #if defined(HAS_STRPTIME) && HAS_STRPTIME
+-#if !defined(_XOPEN_SOURCE) && !defined(__FreeBSD__) && !defined(__OpenBSD__)
++#if !defined(_XOPEN_SOURCE) && !defined(__FreeBSD__) && !defined(__OpenBSD__) && \
++ !defined(__NetBSD__)
+ #define _XOPEN_SOURCE 500 // Exposes definitions for SUSv2 (UNIX 98).
+ #endif
+ #endif
diff --git a/chromium/patches/patch-third__party_afl_src_afl-fuzz.c b/chromium/patches/patch-third__party_afl_src_afl-fuzz.c
new file mode 100644
index 0000000000..5ecf6e77ec
--- /dev/null
+++ b/chromium/patches/patch-third__party_afl_src_afl-fuzz.c
@@ -0,0 +1,48 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/afl/src/afl-fuzz.c.orig 2024-07-24 02:44:44.345528100 +0000
++++ third_party/afl/src/afl-fuzz.c
+@@ -58,7 +58,8 @@
+ #include <sys/ioctl.h>
+ #include <sys/file.h>
+
+-#if defined(__APPLE__) || defined(__FreeBSD__) || defined (__OpenBSD__)
++#if defined(__APPLE__) || defined(__FreeBSD__) || defined (__OpenBSD__) || \
++ defined (__NetBSD__)
+ # include <sys/sysctl.h>
+ #endif /* __APPLE__ || __FreeBSD__ || __OpenBSD__ */
+
+@@ -3531,7 +3532,8 @@ static double get_runnable_processes(voi
+
+ static double res;
+
+-#if defined(__APPLE__) || defined(__FreeBSD__) || defined (__OpenBSD__)
++#if defined(__APPLE__) || defined(__FreeBSD__) || defined (__OpenBSD__) || \
++ defined (__NetBSD__)
+
+ /* I don't see any portable sysctl or so that would quickly give us the
+ number of runnable processes; the 1-minute load average can be a
+@@ -7347,7 +7349,8 @@ static void get_core_count(void) {
+
+ u32 cur_runnable = 0;
+
+-#if defined(__APPLE__) || defined(__FreeBSD__) || defined (__OpenBSD__)
++#if defined(__APPLE__) || defined(__FreeBSD__) || defined (__OpenBSD__) || \
++ defined (__NetBSD__)
+
+ size_t s = sizeof(cpu_core_count);
+
+@@ -7392,7 +7395,8 @@ static void get_core_count(void) {
+
+ cur_runnable = (u32)get_runnable_processes();
+
+-#if defined(__APPLE__) || defined(__FreeBSD__) || defined (__OpenBSD__)
++#if defined(__APPLE__) || defined(__FreeBSD__) || defined (__OpenBSD__) || \
++ defined (__NetBSD__)
+
+ /* Add ourselves, since the 1-minute average doesn't include that yet. */
+
diff --git a/chromium/patches/patch-third__party_angle_BUILD.gn b/chromium/patches/patch-third__party_angle_BUILD.gn
index 167dda0bdd..a8f168422c 100644
--- a/chromium/patches/patch-third__party_angle_BUILD.gn
+++ b/chromium/patches/patch-third__party_angle_BUILD.gn
@@ -1,39 +1,35 @@
$NetBSD$
---- third_party/angle/BUILD.gn.orig 2020-07-15 19:01:32.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/angle/BUILD.gn.orig 2024-07-24 02:45:19.152899500 +0000
+++ third_party/angle/BUILD.gn
-@@ -19,7 +19,7 @@ if (angle_has_build) {
-
- declare_args() {
- # Use the PCI lib to collect GPU information on Linux.
-- use_libpci = is_linux && (!is_chromecast || is_cast_desktop_build) &&
-+ use_libpci = (is_linux || is_bsd) && (!is_chromecast || is_cast_desktop_build) &&
- (angle_use_x11 || use_ozone)
+@@ -347,7 +347,6 @@ config("extra_warnings") {
+ "-Wtautological-type-limit-compare",
+ "-Wundefined-reinterpret-cast",
+ "-Wunneeded-internal-declaration",
+- "-Wunused-but-set-variable",
+ "-Wsuggest-destructor-override",
+ "-Wsuggest-override",
- # Link in system libGL, to work with apitrace. See doc/DebuggingTips.md.
-@@ -352,7 +352,7 @@ angle_static_library("angle_gpu_info_uti
- libs += [ "dxgi.lib" ]
- }
+@@ -524,7 +523,7 @@ template("angle_common_lib") {
+ all_dependent_configs = [ ":angle_disable_pool_alloc" ]
+ }
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += libangle_gpu_info_util_linux_sources
+- if (is_linux || is_chromeos) {
++ if ((is_linux || is_chromeos) && !is_bsd) {
+ libs = [ "dl" ]
+ }
- if (angle_use_x11) {
-@@ -363,6 +363,7 @@ angle_static_library("angle_gpu_info_uti
- "X11",
+@@ -679,6 +678,9 @@ angle_static_library("angle_gpu_info_uti
"Xi",
"Xext",
-+ "GL",
]
++ if (is_bsd) {
++ libs += [ "GL" ]
++ }
}
- }
-@@ -684,7 +685,7 @@ angle_source_set("libANGLE_base") {
- sources += libangle_gl_egl_dl_sources
- sources += libangle_gl_egl_android_sources
- }
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += libangle_gl_egl_sources
- sources += libangle_gl_egl_dl_sources
- }
+
+ if (angle_use_wayland && angle_has_build) {
diff --git a/chromium/patches/patch-third__party_angle_gni_angle.gni b/chromium/patches/patch-third__party_angle_gni_angle.gni
deleted file mode 100644
index cad9b86883..0000000000
--- a/chromium/patches/patch-third__party_angle_gni_angle.gni
+++ /dev/null
@@ -1,49 +0,0 @@
-$NetBSD$
-
---- third_party/angle/gni/angle.gni.orig 2020-07-15 19:01:32.000000000 +0000
-+++ third_party/angle/gni/angle.gni
-@@ -33,7 +33,7 @@ if (angle_has_build) {
- is_asan = false
- build_with_chromium = false
- dcheck_always_on = false
-- angle_use_x11 = is_linux && !is_ggp
-+ angle_use_x11 = (is_linux || is_bsd) && !is_ggp
- use_ozone = false
- use_fuzzing_engine = false
- }
-@@ -100,7 +100,7 @@ declare_args() {
- angle_enable_d3d9 = is_win && !angle_is_winuwp
- angle_enable_d3d11 = is_win
- angle_enable_gl =
-- (ozone_platform_gbm || !is_linux || (angle_use_x11 && !is_chromeos)) &&
-+ (ozone_platform_gbm || !(is_linux || is_bsd) || (angle_use_x11 && !is_chromeos)) &&
- !is_fuchsia && !angle_is_winuwp && !is_ggp && !is_win_arm64
-
- # ANGLE Vulkan backend on Android requires API level 26, i.e. Oreo, due to
-@@ -154,7 +154,7 @@ if (angle_has_build) {
- angle_remove_configs += [ "//build/config/compiler:default_include_dirs" ]
- }
- angle_better_stack_traces =
-- (is_debug || dcheck_always_on) && is_linux && !is_asan && !is_cfi
-+ (is_debug || dcheck_always_on) && (is_linux || is_bsd) && !is_asan && !is_cfi
-
- if (angle_has_build && is_clang) {
- angle_remove_configs += [ "//build/config/clang:find_bad_constructs" ]
-@@ -349,7 +349,7 @@ template("angle_test") {
- configs -= [ "//build/config/android:hide_all_but_jni" ]
- }
-
-- if (is_linux && !is_component_build) {
-+ if ((is_linux || is_bsd) && !is_component_build) {
- # Set rpath to find shared libs in a non-component build.
- configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
- }
-@@ -371,7 +371,7 @@ template("angle_test") {
- }
- data = invoker.data + [ "//testing/xvfb.py" ]
-
-- if (is_linux && !is_component_build) {
-+ if ((is_linux || is_bsd) && !is_component_build) {
- # Set rpath to find shared libs in a non-component build.
- configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
- }
diff --git a/chromium/patches/patch-third__party_angle_src_common_platform.h b/chromium/patches/patch-third__party_angle_src_common_platform.h
new file mode 100644
index 0000000000..02da899d1f
--- /dev/null
+++ b/chromium/patches/patch-third__party_angle_src_common_platform.h
@@ -0,0 +1,30 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/angle/src/common/platform.h.orig 2024-07-24 02:45:19.284912300 +0000
++++ third_party/angle/src/common/platform.h
+@@ -26,8 +26,19 @@
+ #elif defined(__linux__) || defined(EMSCRIPTEN)
+ # define ANGLE_PLATFORM_LINUX 1
+ # define ANGLE_PLATFORM_POSIX 1
+-#elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || \
+- defined(__DragonFly__) || defined(__sun) || defined(__GLIBC__) || defined(__GNU__) || \
++#elif defined(__OpenBSD__)
++# define ANGLE_PLATFORM_OPENBSD 1
++# define ANGLE_PLATFORM_POSIX 1
++# define ANGLE_PLATFORM_BSD 1
++#elif defined(__NetBSD__)
++# define ANGLE_PLATFORM_NETBSD 1
++# define ANGLE_PLATFORM_POSIX 1
++# define ANGLE_PLATFORM_BSD 1
++#elif defined(__FreeBSD__)
++# define ANGLE_PLATFORM_FREEBSD 1
++# define ANGLE_PLATFORM_POSIX 1
++# define ANGLE_PLATFORM_BSD 1
++#elif defined(__DragonFly__) || defined(__sun) || defined(__GLIBC__) || defined(__GNU__) || \
+ defined(__QNX__) || defined(__Fuchsia__) || defined(__HAIKU__)
+ # define ANGLE_PLATFORM_POSIX 1
+ #else
diff --git a/chromium/patches/patch-third__party_angle_src_common_platform__helpers.h b/chromium/patches/patch-third__party_angle_src_common_platform__helpers.h
new file mode 100644
index 0000000000..43ad050b3c
--- /dev/null
+++ b/chromium/patches/patch-third__party_angle_src_common_platform__helpers.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/angle/src/common/platform_helpers.h.orig 2024-07-24 02:45:19.284912300 +0000
++++ third_party/angle/src/common/platform_helpers.h
+@@ -62,7 +62,7 @@ inline constexpr bool IsIOS()
+
+ inline constexpr bool IsLinux()
+ {
+-#if defined(ANGLE_PLATFORM_LINUX)
++#if defined(ANGLE_PLATFORM_LINUX) || defined(ANGLE_PLATFORM_BSD)
+ return true;
+ #else
+ return false;
diff --git a/chromium/patches/patch-third__party_angle_src_common_system__utils.cpp b/chromium/patches/patch-third__party_angle_src_common_system__utils.cpp
new file mode 100644
index 0000000000..4636b3bae8
--- /dev/null
+++ b/chromium/patches/patch-third__party_angle_src_common_system__utils.cpp
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/angle/src/common/system_utils.cpp.orig 2024-07-24 02:45:19.288912800 +0000
++++ third_party/angle/src/common/system_utils.cpp
+@@ -25,7 +25,7 @@ namespace angle
+ {
+ std::string GetExecutableName()
+ {
+-#if defined(ANGLE_PLATFORM_ANDROID) && __ANDROID_API__ >= 21
++#if (defined(ANGLE_PLATFORM_ANDROID) && __ANDROID_API__ >= 21) || defined(ANGLE_PLATFORM_BSD)
+ // Support for "getprogname" function in bionic was introduced in L (API level 21)
+ const char *executableName = getprogname();
+ return (executableName) ? std::string(executableName) : "ANGLE";
diff --git a/chromium/patches/patch-third__party_angle_src_common_system__utils__linux.cpp b/chromium/patches/patch-third__party_angle_src_common_system__utils__linux.cpp
new file mode 100644
index 0000000000..ca1fa9915c
--- /dev/null
+++ b/chromium/patches/patch-third__party_angle_src_common_system__utils__linux.cpp
@@ -0,0 +1,45 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/angle/src/common/system_utils_linux.cpp.orig 2024-07-24 02:45:19.288912800 +0000
++++ third_party/angle/src/common/system_utils_linux.cpp
+@@ -15,8 +15,15 @@
+
+ #include <array>
+
++#if ANGLE_PLATFORM_OPENBSD
++#include <pthread_np.h>
++#elif ANGLE_PLATFORM_NETBSD
++#include <pthread.h>
++#endif
++
+ namespace angle
+ {
++#if ANGLE_PLATFORM_LINUX
+ std::string GetExecutablePath()
+ {
+ // We cannot use lstat to get the size of /proc/self/exe as it always returns 0
+@@ -32,6 +39,7 @@ std::string GetExecutablePath()
+ path[result] = '\0';
+ return path;
+ }
++#endif
+
+ std::string GetExecutableDirectory()
+ {
+@@ -56,6 +64,12 @@ void SetCurrentThreadName(const char *na
+ {
+ // There's a 15-character (16 including '\0') limit. If the name is too big (and ERANGE is
+ // returned), just ignore the name.
++#if ANGLE_PLATFORM_OPENBSD
++ pthread_set_name_np(pthread_self(), name);
++#elif ANGLE_PLATFORM_NETBSD
++ pthread_setname_np(pthread_self(), "%s", (void *)name);
++#else
+ pthread_setname_np(pthread_self(), name);
++#endif
+ }
+ } // namespace angle
diff --git a/chromium/patches/patch-third__party_angle_src_compiler_translator_InfoSink.h b/chromium/patches/patch-third__party_angle_src_compiler_translator_InfoSink.h
deleted file mode 100644
index 932bb7c2c6..0000000000
--- a/chromium/patches/patch-third__party_angle_src_compiler_translator_InfoSink.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/angle/src/compiler/translator/InfoSink.h.orig 2020-07-15 19:01:32.000000000 +0000
-+++ third_party/angle/src/compiler/translator/InfoSink.h
-@@ -7,7 +7,7 @@
- #ifndef COMPILER_TRANSLATOR_INFOSINK_H_
- #define COMPILER_TRANSLATOR_INFOSINK_H_
-
--#include <math.h>
-+#include <cmath>
- #include <stdlib.h>
- #include "compiler/translator/Common.h"
- #include "compiler/translator/Severity.h"
diff --git a/chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__internal.h b/chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__internal.h
index 3892d56df0..3c4dad2322 100644
--- a/chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__internal.h
+++ b/chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__internal.h
@@ -1,14 +1,22 @@
$NetBSD$
---- third_party/angle/src/gpu_info_util/SystemInfo_internal.h.orig 2020-07-15 19:01:32.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/angle/src/gpu_info_util/SystemInfo_internal.h.orig 2024-07-24 02:45:19.668949600 +0000
+++ third_party/angle/src/gpu_info_util/SystemInfo_internal.h
-@@ -16,6 +18,9 @@ namespace angle
+@@ -15,6 +15,13 @@
+ namespace angle
+ {
- // Defined in SystemInfo_libpci when GPU_INFO_USE_LIBPCI is defined.
- bool GetPCIDevicesWithLibPCI(std::vector<GPUDeviceInfo> *devices);
-+#if defined(OS_FREEBSD)
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
++bool CollectMesaCardInfo(std::vector<GPUDeviceInfo> *devices);
++#if defined(__FreeBSD__)
+bool GetPCIDevicesFreeBSD(std::vector<GPUDeviceInfo> *devices);
+#endif
++#endif
++
+ // Defined in SystemInfo_libpci when GPU_INFO_USE_LIBPCI is defined.
+ bool GetPCIDevicesWithLibPCI(std::vector<GPUDeviceInfo> *devices);
// Defined in SystemInfo_x11 when GPU_INFO_USE_X11 is defined.
- bool GetNvidiaDriverVersionWithXNVCtrl(std::string *version);
-
diff --git a/chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__libpci.cpp b/chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__libpci.cpp
index 1049e886d2..df26a4ec15 100644
--- a/chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__libpci.cpp
+++ b/chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__libpci.cpp
@@ -1,15 +1,96 @@
$NetBSD$
-* Use pci.h from pkgsrc pciutils.
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
---- third_party/angle/src/gpu_info_util/SystemInfo_libpci.cpp.orig 2020-07-15 19:01:32.000000000 +0000
+--- third_party/angle/src/gpu_info_util/SystemInfo_libpci.cpp.orig 2024-07-24 02:45:19.668949600 +0000
+++ third_party/angle/src/gpu_info_util/SystemInfo_libpci.cpp
-@@ -9,7 +9,7 @@
- #include "gpu_info_util/SystemInfo_internal.h"
-
- #include <dlfcn.h>
--#include <pci/pci.h>
-+#include <pciutils/pci.h>
+@@ -12,6 +12,11 @@
+ #include <pci/pci.h>
#include <unistd.h>
++#if defined(__FreeBSD__)
++#include <fcntl.h>
++#include <sys/pciio.h>
++#endif
++
#include "common/angleutils.h"
+ #include "common/debug.h"
+
+@@ -86,6 +91,75 @@ struct LibPCI : private angle::NonCopyab
+
+ } // anonymous namespace
+
++#if defined(__FreeBSD__)
++// Adds an entry per PCI GPU found and fills the device and vendor ID.
++bool GetPCIDevicesFreeBSD(std::vector<GPUDeviceInfo> *devices)
++{
++ int fd;
++ struct pci_conf_io conf;
++ struct pci_conf *matches;
++ uint32_t offset = 0;
++
++ fd = open("/dev/pci", O_RDONLY);
++ if (fd < 0)
++ return false;
++
++ matches = new struct pci_conf[32];
++ conf.generation = 0;
++ do {
++ conf.pat_buf_len = 0;
++ conf.num_patterns = 0;
++ conf.patterns = NULL;
++ conf.match_buf_len = 32 * sizeof(struct pci_conf);
++ conf.num_matches = 32;
++ conf.matches = matches;
++ conf.offset = offset;
++ conf.status = PCI_GETCONF_ERROR;
++ if (ioctl(fd, PCIOCGETCONF, &conf) < 0) {
++ if (errno == ENODEV)
++ break;
++ }
++ /* PCI_GETCONF_LIST_CHANGED would require us to start over. */
++ if (conf.status == PCI_GETCONF_ERROR || conf.status == PCI_GETCONF_LIST_CHANGED) {
++ break;
++ }
++
++ for (unsigned int i = 0; i < conf.num_matches; i++) {
++ uint16_t device_class = (matches[i].pc_class << 8) | matches[i].pc_subclass;
++
++ // Skip non-GPU devices
++ switch (device_class)
++ {
++ case PCI_CLASS_DISPLAY_VGA:
++ case PCI_CLASS_DISPLAY_XGA:
++ case PCI_CLASS_DISPLAY_3D:
++ break;
++ default:
++ continue;
++ }
++
++ // Skip unknown devices
++ if (matches[i].pc_vendor == 0 || matches[i].pc_device == 0) {
++ continue;
++ }
++
++ GPUDeviceInfo info;
++ info.vendorId = matches[i].pc_vendor;
++ info.deviceId = matches[i].pc_device;
++
++ devices->push_back(info);
++ }
++ offset += conf.num_matches;
++ } while (conf.status == PCI_GETCONF_MORE_DEVS);
++
++ delete[] matches;
++
++ close(fd);
++
++ return true;
++}
++#endif
++
+ // Adds an entry per PCI GPU found and fills the device and vendor ID.
+ bool GetPCIDevicesWithLibPCI(std::vector<GPUDeviceInfo> *devices)
+ {
diff --git a/chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__linux.cpp b/chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__linux.cpp
index 55514d8d76..9df01c8f55 100644
--- a/chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__linux.cpp
+++ b/chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__linux.cpp
@@ -1,22 +1,41 @@
$NetBSD$
---- third_party/angle/src/gpu_info_util/SystemInfo_linux.cpp.orig 2020-07-15 19:01:32.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/angle/src/gpu_info_util/SystemInfo_linux.cpp.orig 2024-07-24 02:45:19.668949600 +0000
+++ third_party/angle/src/gpu_info_util/SystemInfo_linux.cpp
-@@ -71,10 +73,17 @@ bool GetPCIDevicesWithLibPCI(std::vector
+@@ -71,6 +71,24 @@ bool GetPCIDevicesWithLibPCI(std::vector
bool GetSystemInfo(SystemInfo *info)
{
-+#if defined(OS_OPENBSD) || defined(OS_FREEBSD) || defined(OS_NETBSD)
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ if (!CollectMesaCardInfo(&(info->gpus)))
+ {
-+ return false;
++#if defined(__FreeBSD__)
++ if (!GetPCIDevicesFreeBSD(&(info->gpus)))
++ {
++#endif
++#if defined(ANGLE_USE_VULKAN_SYSTEM_INFO)
++ // Try vulkan backend to get GPU info
++ return GetSystemInfoVulkan(info);
++#else
++ return false;
++#endif
++#if defined(__FreeBSD__)
++ }
++#endif
+ }
+#else
if (!GetPCIDevicesWithLibPCI(&(info->gpus)))
+ {
+ #if defined(ANGLE_USE_VULKAN_SYSTEM_INFO)
+@@ -85,6 +103,7 @@ bool GetSystemInfo(SystemInfo *info)
{
return false;
}
+#endif
- if (info->gpus.size() == 0)
- {
+ GetDualGPUInfo(info);
+
diff --git a/chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__x11.cpp b/chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__x11.cpp
index 4bfdf00f60..fab68b4c8e 100644
--- a/chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__x11.cpp
+++ b/chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__x11.cpp
@@ -1,29 +1,37 @@
$NetBSD$
---- third_party/angle/src/gpu_info_util/SystemInfo_x11.cpp.orig 2020-07-15 19:01:32.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/angle/src/gpu_info_util/SystemInfo_x11.cpp.orig 2024-07-24 02:45:19.672950000 +0000
+++ third_party/angle/src/gpu_info_util/SystemInfo_x11.cpp
-@@ -8,6 +8,8 @@
+@@ -8,6 +8,10 @@
#include "gpu_info_util/SystemInfo_internal.h"
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+#include <GL/glx.h>
+#include <GL/glxext.h>
++#endif
#include <X11/Xlib.h>
#include "common/debug.h"
-@@ -18,9 +20,44 @@
+@@ -18,9 +22,47 @@
# error SystemInfo_x11.cpp compiled without GPU_INFO_USE_X11
#endif
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+#define GLX_RENDERER_VENDOR_ID_MESA 0x8183
+#define GLX_RENDERER_DEVICE_ID_MESA 0x8184
++#endif
+
namespace angle
{
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+bool CollectMesaCardInfo(std::vector<GPUDeviceInfo> *devices)
+{
-+
+ unsigned int vid[3], did[3];
+
+ Display *display = XOpenDisplay(NULL);
@@ -52,6 +60,7 @@ $NetBSD$
+
+ return true;
+}
++#endif
+
bool GetNvidiaDriverVersionWithXNVCtrl(std::string *version)
{
diff --git a/chromium/patches/patch-third__party_angle_src_libANGLE_Display.cpp b/chromium/patches/patch-third__party_angle_src_libANGLE_Display.cpp
index 787e1ac2e1..314215037e 100644
--- a/chromium/patches/patch-third__party_angle_src_libANGLE_Display.cpp
+++ b/chromium/patches/patch-third__party_angle_src_libANGLE_Display.cpp
@@ -1,49 +1,53 @@
$NetBSD$
---- third_party/angle/src/libANGLE/Display.cpp.orig 2020-07-15 19:01:32.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/angle/src/libANGLE/Display.cpp.orig 2024-07-24 02:45:19.704953200 +0000
+++ third_party/angle/src/libANGLE/Display.cpp
-@@ -55,7 +55,7 @@
+@@ -60,7 +60,7 @@
# include "libANGLE/renderer/gl/cgl/DisplayCGL.h"
- # elif defined(ANGLE_PLATFORM_IOS)
+ # elif ANGLE_ENABLE_EAGL
# include "libANGLE/renderer/gl/eagl/DisplayEAGL.h"
-# elif defined(ANGLE_PLATFORM_LINUX)
-+# elif defined(ANGLE_PLATFORM_POSIX)
++# elif defined(ANGLE_PLATFORM_LINUX) || defined(ANGLE_PLATFORM_BSD)
# include "libANGLE/renderer/gl/egl/DisplayEGL.h"
- # if defined(ANGLE_USE_GBM)
- # include "libANGLE/renderer/gl/egl/gbm/DisplayGbm.h"
-@@ -264,7 +264,7 @@ rx::DisplayImpl *CreateDisplayFromAttrib
- impl = new rx::DisplayCGL(state);
- # elif defined(ANGLE_PLATFORM_IOS)
+ # if defined(ANGLE_USE_X11)
+ # include "libANGLE/renderer/gl/glx/DisplayGLX_api.h"
+@@ -416,7 +416,7 @@ rx::DisplayImpl *CreateDisplayFromAttrib
impl = new rx::DisplayEAGL(state);
+ break;
+
-# elif defined(ANGLE_PLATFORM_LINUX)
-+# elif defined(ANGLE_PLATFORM_POSIX)
++# elif defined(ANGLE_PLATFORM_LINUX) || defined(ANGLE_PLATFORM_BSD)
# if defined(ANGLE_USE_GBM)
if (platformType == 0)
{
-@@ -305,7 +305,7 @@ rx::DisplayImpl *CreateDisplayFromAttrib
+@@ -462,7 +462,7 @@ rx::DisplayImpl *CreateDisplayFromAttrib
#if defined(ANGLE_ENABLE_OPENGL)
# if defined(ANGLE_PLATFORM_WINDOWS)
impl = new rx::DisplayWGL(state);
-# elif defined(ANGLE_PLATFORM_LINUX)
-+# elif defined(ANGLE_PLATFORM_POSIX)
++# elif defined(ANGLE_PLATFORM_LINUX) || defined(ANGLE_PLATFORM_BSD)
# if defined(ANGLE_USE_GBM)
if (platformType == 0)
{
-@@ -346,7 +346,7 @@ rx::DisplayImpl *CreateDisplayFromAttrib
- {
+@@ -513,7 +513,7 @@ rx::DisplayImpl *CreateDisplayFromAttrib
impl = rx::CreateVulkanWin32Display(state);
}
+ break;
-# elif defined(ANGLE_PLATFORM_LINUX)
-+# elif defined(ANGLE_PLATFORM_POSIX)
- # if defined(ANGLE_USE_X11)
- if (platformType == EGL_PLATFORM_X11_EXT && rx::IsVulkanXcbDisplayAvailable())
++# elif defined(ANGLE_PLATFORM_LINUX) || defined(ANGLE_PLATFORM_BSD)
+ # if defined(ANGLE_USE_GBM)
+ if (platformType == EGL_PLATFORM_GBM_KHR && rx::IsVulkanGbmDisplayAvailable())
{
-@@ -1508,7 +1508,7 @@ static ClientExtensions GenerateClientEx
+@@ -2157,7 +2157,7 @@ static ClientExtensions GenerateClientEx
extensions.x11Visual = true;
#endif
-#if defined(ANGLE_PLATFORM_LINUX)
-+#if defined(ANGLE_PLATFORM_POSIX)
++#if defined(ANGLE_PLATFORM_LINUX) || defined(ANGLE_PLATFORM_BSD)
extensions.platformANGLEDeviceTypeEGLANGLE = true;
#endif
diff --git a/chromium/patches/patch-third__party_angle_src_libANGLE_formatutils.cpp b/chromium/patches/patch-third__party_angle_src_libANGLE_formatutils.cpp
new file mode 100644
index 0000000000..6763acd0d4
--- /dev/null
+++ b/chromium/patches/patch-third__party_angle_src_libANGLE_formatutils.cpp
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/angle/src/libANGLE/formatutils.cpp.orig 2024-07-24 02:45:19.772959700 +0000
++++ third_party/angle/src/libANGLE/formatutils.cpp
+@@ -1475,7 +1475,7 @@ static InternalFormatInfoMap BuildIntern
+ AddYUVFormat(&map, GL_G8_B8R8_2PLANE_420_UNORM_ANGLE, true, 8, 8, 8, 0, 0, GL_G8_B8R8_2PLANE_420_UNORM_ANGLE, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::yuvInternalFormatANGLE>, RequireExt<&Extensions::yuvInternalFormatANGLE>, RequireExt<&Extensions::yuvInternalFormatANGLE>, NeverSupported, NeverSupported);
+ AddYUVFormat(&map, GL_G8_B8_R8_3PLANE_420_UNORM_ANGLE, true, 8, 8, 8, 0, 0, GL_G8_B8_R8_3PLANE_420_UNORM_ANGLE, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::yuvInternalFormatANGLE>, RequireExt<&Extensions::yuvInternalFormatANGLE>, RequireExt<&Extensions::yuvInternalFormatANGLE>, NeverSupported, NeverSupported);
+
+-#if defined(ANGLE_PLATFORM_LINUX)
++#if defined(ANGLE_PLATFORM_LINUX) || defined(ANGLE_PLATFORM_BSD)
+ // From GL_OES_required_internalformat
+ // The |shared| bit shouldn't be 2. But given this hits assertion when bits
+ // are checked, it's fine to have this bit set as 2 as a workaround.
diff --git a/chromium/patches/patch-third__party_angle_src_libANGLE_renderer_driver__utils.cpp b/chromium/patches/patch-third__party_angle_src_libANGLE_renderer_driver__utils.cpp
deleted file mode 100644
index dd14f246ac..0000000000
--- a/chromium/patches/patch-third__party_angle_src_libANGLE_renderer_driver__utils.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-$NetBSD$
-
---- third_party/angle/src/libANGLE/renderer/driver_utils.cpp.orig 2020-07-15 19:01:32.000000000 +0000
-+++ third_party/angle/src/libANGLE/renderer/driver_utils.cpp
-@@ -16,7 +18,7 @@
- # include <sys/system_properties.h>
- #endif
-
--#if defined(ANGLE_PLATFORM_LINUX)
-+#if defined(ANGLE_PLATFORM_POSIX)
- # include <sys/utsname.h>
- #endif
-
-@@ -206,12 +208,20 @@ OSVersion GetMacOSVersion()
- }
- #endif
-
--#if defined(ANGLE_PLATFORM_LINUX)
-+#if defined(ANGLE_PLATFORM_POSIX)
- bool ParseLinuxOSVersion(const char *version, int *major, int *minor, int *patch)
- {
- errno = 0; // reset global error flag.
- char *next;
- *major = static_cast<int>(strtol(version, &next, 10));
-+#if defined(OS_BSD)
-+ if (next == nullptr || *next != '-' || errno != 0)
-+ {
-+ return false;
-+ }
-+
-+ *patch = 0;
-+#else
- if (next == nullptr || *next != '.' || errno != 0)
- {
- return false;
-@@ -228,6 +238,7 @@ bool ParseLinuxOSVersion(const char *ver
- {
- return false;
- }
-+#endif
-
- return true;
- }
-@@ -235,7 +246,7 @@ bool ParseLinuxOSVersion(const char *ver
-
- OSVersion GetLinuxOSVersion()
- {
--#if defined(ANGLE_PLATFORM_LINUX)
-+#if defined(ANGLE_PLATFORM_POSIX)
- struct utsname uname_info;
- if (uname(&uname_info) != 0)
- {
diff --git a/chromium/patches/patch-third__party_angle_src_libANGLE_renderer_driver__utils.h b/chromium/patches/patch-third__party_angle_src_libANGLE_renderer_driver__utils.h
deleted file mode 100644
index fc79620529..0000000000
--- a/chromium/patches/patch-third__party_angle_src_libANGLE_renderer_driver__utils.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/angle/src/libANGLE/renderer/driver_utils.h.orig 2020-07-15 19:01:32.000000000 +0000
-+++ third_party/angle/src/libANGLE/renderer/driver_utils.h
-@@ -139,7 +139,7 @@ inline bool IsWindows()
-
- inline bool IsLinux()
- {
--#if defined(ANGLE_PLATFORM_LINUX)
-+#if defined(ANGLE_PLATFORM_POSIX)
- return true;
- #else
- return false;
diff --git a/chromium/patches/patch-third__party_angle_src_libANGLE_renderer_gl_glx_FunctionsGLX.cpp b/chromium/patches/patch-third__party_angle_src_libANGLE_renderer_gl_glx_FunctionsGLX.cpp
new file mode 100644
index 0000000000..0ae6e6bb10
--- /dev/null
+++ b/chromium/patches/patch-third__party_angle_src_libANGLE_renderer_gl_glx_FunctionsGLX.cpp
@@ -0,0 +1,21 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/angle/src/libANGLE/renderer/gl/glx/FunctionsGLX.cpp.orig 2024-07-24 02:45:19.900972100 +0000
++++ third_party/angle/src/libANGLE/renderer/gl/glx/FunctionsGLX.cpp
+@@ -144,10 +144,10 @@ bool FunctionsGLX::initialize(Display *x
+ // which a GLXWindow was ever created.
+ if (!sLibHandle)
+ {
+- sLibHandle = dlopen("libGL.so.1", RTLD_NOW);
++ sLibHandle = dlopen("libGL.so", RTLD_NOW);
+ if (!sLibHandle)
+ {
+- *errorString = std::string("Could not dlopen libGL.so.1: ") + dlerror();
++ *errorString = std::string("Could not dlopen libGL.so: ") + dlerror();
+ return false;
+ }
+ }
diff --git a/chromium/patches/patch-third__party_angle_src_libANGLE_renderer_vulkan_DisplayVk__api.h b/chromium/patches/patch-third__party_angle_src_libANGLE_renderer_vulkan_DisplayVk__api.h
index 1a79b1b62f..ef61d024f0 100644
--- a/chromium/patches/patch-third__party_angle_src_libANGLE_renderer_vulkan_DisplayVk__api.h
+++ b/chromium/patches/patch-third__party_angle_src_libANGLE_renderer_vulkan_DisplayVk__api.h
@@ -1,13 +1,17 @@
$NetBSD$
---- third_party/angle/src/libANGLE/renderer/vulkan/DisplayVk_api.h.orig 2020-07-15 19:01:32.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/angle/src/libANGLE/renderer/vulkan/DisplayVk_api.h.orig 2024-07-24 02:45:19.940976000 +0000
+++ third_party/angle/src/libANGLE/renderer/vulkan/DisplayVk_api.h
-@@ -19,7 +19,7 @@ bool IsVulkanWin32DisplayAvailable();
+@@ -23,7 +23,7 @@ bool IsVulkanWin32DisplayAvailable();
DisplayImpl *CreateVulkanWin32Display(const egl::DisplayState &state);
#endif // defined(ANGLE_PLATFORM_WINDOWS)
-#if defined(ANGLE_PLATFORM_LINUX)
+#if defined(ANGLE_PLATFORM_POSIX)
- bool IsVulkanXcbDisplayAvailable();
- DisplayImpl *CreateVulkanXcbDisplay(const egl::DisplayState &state);
- #endif // defined(ANGLE_PLATFORM_LINUX)
+ bool IsVulkanWaylandDisplayAvailable();
+ DisplayImpl *CreateVulkanWaylandDisplay(const egl::DisplayState &state);
+
diff --git a/chromium/patches/patch-third__party_angle_src_libGLESv2.gni b/chromium/patches/patch-third__party_angle_src_libGLESv2.gni
deleted file mode 100644
index a4fc9a125b..0000000000
--- a/chromium/patches/patch-third__party_angle_src_libGLESv2.gni
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/angle/src/libGLESv2.gni.orig 2020-07-15 19:01:32.000000000 +0000
-+++ third_party/angle/src/libGLESv2.gni
-@@ -74,7 +74,7 @@ angle_system_utils_sources = [
- "src/common/system_utils.h",
- ]
-
--if (is_linux || is_android || is_fuchsia) {
-+if (is_linux || is_android || is_fuchsia || is_bsd) {
- angle_system_utils_sources += [
- "src/common/system_utils_linux.cpp",
- "src/common/system_utils_posix.cpp",
diff --git a/chromium/patches/patch-third__party_angle_src_tests_BUILD.gn b/chromium/patches/patch-third__party_angle_src_tests_BUILD.gn
deleted file mode 100644
index 902ae0238e..0000000000
--- a/chromium/patches/patch-third__party_angle_src_tests_BUILD.gn
+++ /dev/null
@@ -1,92 +0,0 @@
-$NetBSD$
-
---- third_party/angle/src/tests/BUILD.gn.orig 2020-06-25 09:34:42.000000000 +0000
-+++ third_party/angle/src/tests/BUILD.gn
-@@ -134,7 +134,7 @@ angle_test("angle_unittests") {
- }
- }
-
--if (is_win || is_linux || is_mac || is_android || is_fuchsia) {
-+if (is_win || is_linux || is_mac || is_android || is_fuchsia || is_bsd) {
- import("angle_end2end_tests.gni")
-
- angle_test("angle_end2end_tests") {
-@@ -187,7 +187,7 @@ if (is_win || is_linux || is_mac || is_a
- }
- }
-
--if (is_win || is_linux || is_mac || is_android) {
-+if (is_win || is_linux || is_mac || is_android || is_bsd) {
- import("angle_white_box_tests.gni")
-
- angle_test("angle_white_box_tests") {
-@@ -251,7 +251,7 @@ angle_perftests_common("angle_perftests_
- test_utils = ":angle_common_test_utils_static"
- }
-
--if (is_win || is_linux || is_android || is_mac) {
-+if (is_win || is_linux || is_android || is_mac || is_bsd) {
- import("angle_perftests.gni")
-
- # This test suite is for perf tests that use ANGLE's internals in some direct way.
-@@ -279,7 +279,7 @@ if (is_win || is_linux || is_android ||
- }
- }
-
--if (is_win || is_linux || is_android || is_mac || is_fuchsia) {
-+if (is_win || is_linux || is_android || is_mac || is_fuchsia || is_bsd) {
- import("angle_perftests.gni")
-
- angle_source_set("angle_trace_perftests") {
-@@ -367,13 +367,13 @@ if (is_win || is_linux || is_android ||
- "${angle_root}:libGLESv2",
- ]
-
-- if (is_win || is_linux) {
-+ if (is_win || is_linux || is_bsd) {
- data_deps += [ "${angle_root}/third_party/glmark2:glmark2_angle" ]
- }
- if (is_win && target_cpu != "arm64") {
- data_deps += [ "${angle_root}/third_party/glmark2:glmark2_wgl" ]
- }
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- data_deps += [ "${angle_root}/third_party/glmark2:glmark2_glx" ]
- }
-
-@@ -793,7 +793,7 @@ if (build_angle_gles1_conform_tests) {
-
- sources += angle_gles1_conform_common_source
-
-- if (!is_win && !is_linux) {
-+ if (!is_win && !is_linux || !is_bsd) {
- defines = [ "NULLWS" ]
- }
- }
-@@ -807,7 +807,7 @@ if (build_angle_gles1_conform_tests) {
-
- if (is_win) {
- sources += [ "$gles1_conform_root/conform/covegl/native_w32.c" ]
-- } else if (is_linux) {
-+ } else if (is_linux || is_bsd) {
- sources += [ "$gles1_conform_root/conform/covegl/native.c" ]
- } else {
- sources += [ "$gles1_conform_root/conform/covegl/native_nws.c" ]
-@@ -910,7 +910,7 @@ if (build_angle_deqp_tests && !is_fuchsi
- # Ask the system headers to expose all the regular function otherwise
- # dEQP doesn't compile and produces warnings about implicitly defined
- # functions.
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- # This has to be GNU_SOURCE as on Linux dEQP uses syscall()
- defines += [ "_GNU_SOURCE" ]
- }
-@@ -1045,7 +1045,7 @@ if (build_angle_deqp_tests && !is_fuchsi
- if (is_win) {
- sources += deqp_framework_delibs_sources_win
- }
-- if (is_linux || is_android || is_mac) {
-+ if (is_linux || is_android || is_mac || is_bsd) {
- sources += deqp_framework_delibs_sources_unix
- }
-
diff --git a/chromium/patches/patch-third__party_angle_third__party_glmark2_BUILD.gn b/chromium/patches/patch-third__party_angle_third__party_glmark2_BUILD.gn
deleted file mode 100644
index c843c76a3d..0000000000
--- a/chromium/patches/patch-third__party_angle_third__party_glmark2_BUILD.gn
+++ /dev/null
@@ -1,38 +0,0 @@
-$NetBSD$
-
---- third_party/angle/third_party/glmark2/BUILD.gn.orig 2020-06-25 09:34:42.000000000 +0000
-+++ third_party/angle/third_party/glmark2/BUILD.gn
-@@ -111,7 +111,7 @@ source_set("glmark2_headers") {
- "src/src/texture.h",
- ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [ "src/src/gl-state-glx.h" ]
- }
- if (is_win) {
-@@ -346,7 +346,7 @@ template("glmark2_exe") {
- "src/src/native-state-win32.h",
- ]
- }
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- defines += [ "GLMARK2_USE_X11" ]
- sources += [
- "src/src/native-state-x11.cpp",
-@@ -370,13 +370,13 @@ glmark2_exe("glmark2_angle") {
- "GLMARK2_USE_EGL",
- ]
-
-- if (is_linux && !is_component_build) {
-+ if ((is_linux || is_bsd) && !is_component_build) {
- # Set rpath to find shared libs in a non-component build.
- public_configs = [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
- }
- }
-
--if (is_linux) {
-+if (is_linux || is_bsd) {
- glmark2_exe("glmark2_glx") {
- sources = [
- "src/src/gl-state-glx.cpp",
diff --git a/chromium/patches/patch-third__party_angle_third__party_vulkan-loader_src_loader_loader.c b/chromium/patches/patch-third__party_angle_third__party_vulkan-loader_src_loader_loader.c
deleted file mode 100644
index 56d61022b8..0000000000
--- a/chromium/patches/patch-third__party_angle_third__party_vulkan-loader_src_loader_loader.c
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/angle/third_party/vulkan-loader/src/loader/loader.c.orig 2020-07-15 19:01:42.000000000 +0000
-+++ third_party/angle/third_party/vulkan-loader/src/loader/loader.c
-@@ -246,7 +246,7 @@ void *loader_device_heap_realloc(const s
- }
-
- // Environment variables
--#if defined(__linux__) || defined(__APPLE__)
-+#if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__)
-
- static inline bool IsHighIntegrity() {
- return geteuid() != getuid() || getegid() != getgid();
diff --git a/chromium/patches/patch-third__party_angle_third__party_vulkan-loader_src_loader_vk__loader__platform.h b/chromium/patches/patch-third__party_angle_third__party_vulkan-loader_src_loader_vk__loader__platform.h
deleted file mode 100644
index 5b5d1931a6..0000000000
--- a/chromium/patches/patch-third__party_angle_third__party_vulkan-loader_src_loader_vk__loader__platform.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/angle/third_party/vulkan-loader/src/loader/vk_loader_platform.h.orig 2020-07-15 19:01:42.000000000 +0000
-+++ third_party/angle/third_party/vulkan-loader/src/loader/vk_loader_platform.h
-@@ -31,7 +31,7 @@
- #include "vulkan/vk_platform.h"
- #include "vulkan/vk_sdk_platform.h"
-
--#if defined(__linux__) || defined(__APPLE__)
-+#if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__)
- /* Linux-specific common code: */
-
- // Headers:
diff --git a/chromium/patches/patch-third__party_angle_third__party_vulkan-validation-layers_src_layers_vk__loader__platform.h b/chromium/patches/patch-third__party_angle_third__party_vulkan-validation-layers_src_layers_vk__loader__platform.h
deleted file mode 100644
index 668bc5104c..0000000000
--- a/chromium/patches/patch-third__party_angle_third__party_vulkan-validation-layers_src_layers_vk__loader__platform.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/angle/third_party/vulkan-validation-layers/src/layers/vk_loader_platform.h.orig 2020-07-15 19:01:42.000000000 +0000
-+++ third_party/angle/third_party/vulkan-validation-layers/src/layers/vk_loader_platform.h
-@@ -33,7 +33,7 @@
- #undef NOMINMAX
- #include "vulkan/vk_sdk_platform.h"
-
--#if defined(__linux__) || defined(__APPLE__)
-+#if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__)
- /* Linux-specific common code: */
-
- // Headers:
diff --git a/chromium/patches/patch-third__party_angle_util_BUILD.gn b/chromium/patches/patch-third__party_angle_util_BUILD.gn
index c463c63a99..0c0f4515a3 100644
--- a/chromium/patches/patch-third__party_angle_util_BUILD.gn
+++ b/chromium/patches/patch-third__party_angle_util_BUILD.gn
@@ -1,22 +1,17 @@
$NetBSD$
---- third_party/angle/util/BUILD.gn.orig 2020-07-15 19:01:32.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/angle/util/BUILD.gn.orig 2024-07-24 02:45:20.825061600 +0000
+++ third_party/angle/util/BUILD.gn
-@@ -135,7 +135,7 @@ angle_source_set("angle_util_loader") {
- config("angle_util_config") {
- # Force users to include "util/header.h" instead of just "header.h".
- include_dirs = [ ".." ]
-- if (is_linux && angle_use_x11) {
-+ if ((is_linux || is_bsd) && angle_use_x11) {
- libs = [ "X11" ]
- }
- }
-@@ -165,7 +165,7 @@ foreach(is_shared_library,
+@@ -311,7 +311,7 @@ foreach(is_shared_library,
]
libs = []
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
+- if (is_linux || is_chromeos) {
++ if ((is_linux || is_chromeos) && !is_bsd) {
libs += [
"rt",
"dl",
diff --git a/chromium/patches/patch-third__party_blink_common_renderer__preferences_renderer__preferences__mojom__traits.cc b/chromium/patches/patch-third__party_blink_common_renderer__preferences_renderer__preferences__mojom__traits.cc
new file mode 100644
index 0000000000..a65c7ae0e7
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_common_renderer__preferences_renderer__preferences__mojom__traits.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/common/renderer_preferences/renderer_preferences_mojom_traits.cc.orig 2024-07-24 02:44:44.489542000 +0000
++++ third_party/blink/common/renderer_preferences/renderer_preferences_mojom_traits.cc
+@@ -68,7 +68,7 @@ bool StructTraits<blink::mojom::Renderer
+
+ out->send_subresource_notification = data.send_subresource_notification();
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ if (!data.ReadSystemFontFamilyName(&out->system_font_family_name))
+ return false;
+ #endif
diff --git a/chromium/patches/patch-third__party_blink_public_common_renderer__preferences_renderer__preferences.h b/chromium/patches/patch-third__party_blink_public_common_renderer__preferences_renderer__preferences.h
new file mode 100644
index 0000000000..6c7d4cc29c
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_public_common_renderer__preferences_renderer__preferences.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/public/common/renderer_preferences/renderer_preferences.h.orig 2024-07-24 02:44:45.049596300 +0000
++++ third_party/blink/public/common/renderer_preferences/renderer_preferences.h
+@@ -65,7 +65,7 @@ struct BLINK_COMMON_EXPORT RendererPrefe
+ UserAgentOverride user_agent_override;
+ std::string accept_languages;
+ bool send_subresource_notification{false};
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ std::string system_font_family_name;
+ #endif
+ #if BUILDFLAG(IS_WIN)
diff --git a/chromium/patches/patch-third__party_blink_public_common_renderer__preferences_renderer__preferences__mojom__traits.h b/chromium/patches/patch-third__party_blink_public_common_renderer__preferences_renderer__preferences__mojom__traits.h
new file mode 100644
index 0000000000..0a6f0ec72e
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_public_common_renderer__preferences_renderer__preferences__mojom__traits.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/public/common/renderer_preferences/renderer_preferences_mojom_traits.h.orig 2024-07-24 02:44:45.049596300 +0000
++++ third_party/blink/public/common/renderer_preferences/renderer_preferences_mojom_traits.h
+@@ -166,7 +166,7 @@ struct BLINK_COMMON_EXPORT
+ return data.send_subresource_notification;
+ }
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ static const std::string& system_font_family_name(
+ const ::blink::RendererPreferences& data) {
+ return data.system_font_family_name;
diff --git a/chromium/patches/patch-third__party_blink_public_mojom_BUILD.gn b/chromium/patches/patch-third__party_blink_public_mojom_BUILD.gn
deleted file mode 100644
index 410589365a..0000000000
--- a/chromium/patches/patch-third__party_blink_public_mojom_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/blink/public/mojom/BUILD.gn.orig 2020-07-15 18:56:47.000000000 +0000
-+++ third_party/blink/public/mojom/BUILD.gn
-@@ -237,7 +237,7 @@ mojom("mojom_platform") {
- ]
- }
-
-- if (is_linux || is_chromeos) {
-+ if (is_linux || is_chromeos || is_bsd) {
- enabled_features = [ "renderer_pref_system_font_family_name" ]
- }
-
diff --git a/chromium/patches/patch-third__party_blink_public_platform_platform.h b/chromium/patches/patch-third__party_blink_public_platform_platform.h
new file mode 100644
index 0000000000..ab8b68f71f
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_public_platform_platform.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/public/platform/platform.h.orig 2024-07-24 02:44:45.109602200 +0000
++++ third_party/blink/public/platform/platform.h
+@@ -354,7 +354,7 @@ class BLINK_PLATFORM_EXPORT Platform {
+ return nullptr;
+ }
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // This is called after the thread is created, so the embedder
+ // can initiate an IPC to change its thread type (on Linux we can't
+ // increase the nice value, so we need to ask the browser process). This
diff --git a/chromium/patches/patch-third__party_blink_public_platform_web__vector.h b/chromium/patches/patch-third__party_blink_public_platform_web__vector.h
new file mode 100644
index 0000000000..f59abaff2a
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_public_platform_web__vector.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/public/platform/web_vector.h.orig 2024-07-24 02:44:45.117602800 +0000
++++ third_party/blink/public/platform/web_vector.h
+@@ -86,7 +86,7 @@ class WebVector {
+ // The vector can be populated using reserve() and emplace_back().
+ WebVector() = default;
+
+-#if defined(ARCH_CPU_64_BITS)
++#if defined(ARCH_CPU_64_BITS) || defined(__OpenBSD__)
+ // Create a vector with |size| default-constructed elements. We define
+ // a constructor with size_t otherwise we'd have a duplicate define.
+ explicit WebVector(size_t size) : data_(size) {}
diff --git a/chromium/patches/patch-third__party_blink_renderer_BUILD.gn b/chromium/patches/patch-third__party_blink_renderer_BUILD.gn
deleted file mode 100644
index 6513504a50..0000000000
--- a/chromium/patches/patch-third__party_blink_renderer_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/blink/renderer/BUILD.gn.orig 2020-06-25 09:31:36.000000000 +0000
-+++ third_party/blink/renderer/BUILD.gn
-@@ -45,8 +45,6 @@ config("inside_blink") {
- "-Wconversion",
- "-Wno-float-conversion",
- "-Wno-sign-conversion",
-- "-Wno-implicit-float-conversion",
-- "-Wno-implicit-int-conversion",
- ]
-
- if (!is_chromeos || default_toolchain != "//build/toolchain/cros:target") {
diff --git a/chromium/patches/patch-third__party_blink_renderer_bindings_scripts_bind__gen_style__format.py b/chromium/patches/patch-third__party_blink_renderer_bindings_scripts_bind__gen_style__format.py
index 227d468621..f494c60587 100644
--- a/chromium/patches/patch-third__party_blink_renderer_bindings_scripts_bind__gen_style__format.py
+++ b/chromium/patches/patch-third__party_blink_renderer_bindings_scripts_bind__gen_style__format.py
@@ -1,28 +1,17 @@
$NetBSD$
---- third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py.orig 2020-07-15 18:56:02.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py.orig 2024-07-24 02:44:45.217612500 +0000
+++ third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py
-@@ -29,6 +29,15 @@ def init(root_src_dir):
- elif sys.platform.startswith(("cygwin", "win")):
- platform = "win"
- exe_suffix = ".exe"
-+ elif sys.platform.startswith("freebsd"):
-+ platform = "freebsd"
-+ exe_suffix = ""
-+ elif sys.platform.startswith("openbsd"):
-+ platform = "openbsd"
-+ exe_suffix = ""
-+ elif sys.platform.startswith("netbsd"):
-+ platform = "netbsd"
-+ exe_suffix = ""
- else:
- assert False, "Unknown platform: {}".format(sys.platform)
- buildtools_platform_dir = os.path.join(root_src_dir, "buildtools",
-@@ -37,6 +46,7 @@ def init(root_src_dir):
- # //buildtools/<platform>/clang-format
- _clang_format_command_path = os.path.join(
- buildtools_platform_dir, "clang-format{}".format(exe_suffix))
-+ _clang_format_command_path = "@PREFIX@/bin/clang-format"
+@@ -30,7 +30,7 @@ def init(root_src_dir, enable_style_form
- # //buildtools/<platform>/gn
- _gn_command_path = os.path.join(buildtools_platform_dir,
+ # Determine //buildtools/<platform>/ directory
+ new_path_platform_suffix = ""
+- if sys.platform.startswith("linux"):
++ if sys.platform.startswith(("linux","openbsd","freebsd","netbsd")):
+ platform = "linux64"
+ exe_suffix = ""
+ elif sys.platform.startswith("darwin"):
diff --git a/chromium/patches/patch-third__party_blink_renderer_build_scripts_run__with__pythonpath.py b/chromium/patches/patch-third__party_blink_renderer_build_scripts_run__with__pythonpath.py
new file mode 100644
index 0000000000..13cdc7edc3
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_build_scripts_run__with__pythonpath.py
@@ -0,0 +1,16 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/build/scripts/run_with_pythonpath.py.orig 2024-07-24 02:44:45.233614200 +0000
++++ third_party/blink/renderer/build/scripts/run_with_pythonpath.py
+@@ -22,6 +22,7 @@ def main():
+ existing_pp = (
+ os.pathsep + env['PYTHONPATH']) if 'PYTHONPATH' in env else ''
+ env['PYTHONPATH'] = os.pathsep.join(python_paths) + existing_pp
++ env['LD_LIBRARY_PATH'] = "${WRKSRC}/out/Release"
+ sys.exit(subprocess.call([sys.executable] + args, env=env))
+
+
diff --git a/chromium/patches/patch-third__party_blink_renderer_controller_BUILD.gn b/chromium/patches/patch-third__party_blink_renderer_controller_BUILD.gn
deleted file mode 100644
index 4bea63ab94..0000000000
--- a/chromium/patches/patch-third__party_blink_renderer_controller_BUILD.gn
+++ /dev/null
@@ -1,40 +0,0 @@
-$NetBSD$
-
---- third_party/blink/renderer/controller/BUILD.gn.orig 2020-07-15 18:56:47.000000000 +0000
-+++ third_party/blink/renderer/controller/BUILD.gn
-@@ -45,7 +45,7 @@ jumbo_component("controller") {
- "memory_usage_monitor.h",
- ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "memory_usage_monitor_posix.cc",
- "memory_usage_monitor_posix.h",
-@@ -81,7 +81,7 @@ jumbo_component("controller") {
-
- # HighestPmfReporter depends on MemoryUsageMonitor and MemoryUsageMonitor
- # depends on platform specific code. Explicitly specify supported platforms.
-- if (is_linux || is_win || is_android || is_mac) {
-+ if (is_linux || is_win || is_android || is_mac || is_bsd) {
- sources += [
- "highest_pmf_reporter.cc",
- "highest_pmf_reporter.h",
-@@ -165,7 +165,7 @@ jumbo_source_set("blink_unittests_source
-
- sources = [ "tests/run_all_tests.cc" ]
- sources += bindings_unittest_files
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [ "memory_usage_monitor_posix_test.cc" ]
- }
- if (is_android) {
-@@ -176,7 +176,7 @@ jumbo_source_set("blink_unittests_source
- ]
- }
-
-- if (is_linux || is_android || is_mac || is_win) {
-+ if (is_linux || is_android || is_mac || is_win || is_bsd) {
- sources += [
- "highest_pmf_reporter_test.cc",
- "memory_usage_monitor_test.cc",
diff --git a/chromium/patches/patch-third__party_blink_renderer_controller_blink__initializer.cc b/chromium/patches/patch-third__party_blink_renderer_controller_blink__initializer.cc
index e7b065f749..186de3cf37 100644
--- a/chromium/patches/patch-third__party_blink_renderer_controller_blink__initializer.cc
+++ b/chromium/patches/patch-third__party_blink_renderer_controller_blink__initializer.cc
@@ -1,37 +1,41 @@
$NetBSD$
---- third_party/blink/renderer/controller/blink_initializer.cc.orig 2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/controller/blink_initializer.cc.orig 2024-07-24 02:44:45.381628500 +0000
+++ third_party/blink/renderer/controller/blink_initializer.cc
-@@ -66,12 +66,12 @@
- #include "third_party/blink/renderer/controller/oom_intervention_impl.h"
+@@ -81,12 +81,12 @@
+ #include "third_party/blink/renderer/controller/private_memory_footprint_provider.h"
#endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "third_party/blink/renderer/controller/memory_usage_monitor_posix.h"
#endif
- #if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_MACOSX) || \
-- defined(OS_WIN)
-+ defined(OS_WIN) || defined(OS_BSD)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+- BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
#include "third_party/blink/renderer/controller/highest_pmf_reporter.h"
#include "third_party/blink/renderer/controller/user_level_memory_pressure_signal_generator.h"
#endif
-@@ -143,7 +143,7 @@ void InitializeCommon(Platform* platform
+@@ -256,7 +256,7 @@ void BlinkInitializer::RegisterInterface
+ main_thread_task_runner);
#endif
- #if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_MACOSX) || \
-- defined(OS_WIN)
-+ defined(OS_WIN) || defined(OS_BSD)
- // Initialize UserLevelMemoryPressureSignalGenerator so it starts monitoring.
- if (UserLevelMemoryPressureSignalGenerator::Enabled())
- UserLevelMemoryPressureSignalGenerator::Instance();
-@@ -195,7 +195,7 @@ void BlinkInitializer::RegisterInterface
- &CrashMemoryMetricsReporterImpl::Bind)),
- main_thread->GetTaskRunner());
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ binders.Add<mojom::blink::MemoryUsageMonitorLinux>(
+ ConvertToBaseRepeatingCallback(
+ CrossThreadBindRepeating(&MemoryUsageMonitorPosix::Bind)),
+@@ -303,7 +303,7 @@ void BlinkInitializer::RegisterMemoryWat
#endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- binders.Add(ConvertToBaseRepeatingCallback(
- CrossThreadBindRepeating(&MemoryUsageMonitorPosix::Bind)),
- main_thread->GetTaskRunner());
+
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+- BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ // Start reporting the highest private memory footprint after the first
+ // navigation.
+ HighestPmfReporter::Initialize(main_thread_task_runner);
diff --git a/chromium/patches/patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.cc b/chromium/patches/patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.cc
index 5afcbbc57f..bebda43575 100644
--- a/chromium/patches/patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.cc
+++ b/chromium/patches/patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.cc
@@ -1,13 +1,27 @@
$NetBSD$
---- third_party/blink/renderer/controller/memory_usage_monitor_posix.cc.orig 2020-07-15 18:56:02.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/controller/memory_usage_monitor_posix.cc.orig 2024-07-24 02:44:45.381628500 +0000
+++ third_party/blink/renderer/controller/memory_usage_monitor_posix.cc
-@@ -134,7 +134,7 @@ void MemoryUsageMonitorPosix::SetProcFil
+@@ -128,15 +128,17 @@ void MemoryUsageMonitorPosix::ResetFileD
+
+ void MemoryUsageMonitorPosix::SetProcFiles(base::File statm_file,
+ base::File status_file) {
++#if !BUILDFLAG(IS_BSD)
+ DCHECK(statm_file.IsValid());
+ DCHECK(status_file.IsValid());
+ DCHECK_EQ(-1, statm_fd_.get());
+ DCHECK_EQ(-1, status_fd_.get());
+ statm_fd_.reset(statm_file.TakePlatformFile());
status_fd_.reset(status_file.TakePlatformFile());
++#endif
}
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// static
void MemoryUsageMonitorPosix::Bind(
mojo::PendingReceiver<mojom::blink::MemoryUsageMonitorLinux> receiver) {
diff --git a/chromium/patches/patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.h b/chromium/patches/patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.h
index 35ccf9297b..8a2ea29245 100644
--- a/chromium/patches/patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.h
+++ b/chromium/patches/patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.h
@@ -1,49 +1,53 @@
$NetBSD$
---- third_party/blink/renderer/controller/memory_usage_monitor_posix.h.orig 2020-07-15 18:56:02.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/controller/memory_usage_monitor_posix.h.orig 2024-07-24 02:44:45.381628500 +0000
+++ third_party/blink/renderer/controller/memory_usage_monitor_posix.h
-@@ -12,7 +12,7 @@
+@@ -13,7 +13,7 @@
#include "third_party/blink/renderer/controller/controller_export.h"
#include "third_party/blink/renderer/controller/memory_usage_monitor.h"
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "third_party/blink/public/mojom/memory_usage_monitor_linux.mojom-blink.h"
#endif
-@@ -21,7 +21,7 @@ namespace blink {
+@@ -22,7 +22,7 @@ namespace blink {
// MemoryUsageMonitor implementation for Android and Linux.
class CONTROLLER_EXPORT MemoryUsageMonitorPosix
: public MemoryUsageMonitor
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
,
public mojom::blink::MemoryUsageMonitorLinux
#endif
-@@ -29,7 +29,7 @@ class CONTROLLER_EXPORT MemoryUsageMonit
+@@ -30,7 +30,7 @@ class CONTROLLER_EXPORT MemoryUsageMonit
public:
MemoryUsageMonitorPosix() = default;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
static void Bind(
mojo::PendingReceiver<mojom::blink::MemoryUsageMonitorLinux> receiver);
#endif
-@@ -47,7 +47,7 @@ class CONTROLLER_EXPORT MemoryUsageMonit
+@@ -48,7 +48,7 @@ class CONTROLLER_EXPORT MemoryUsageMonit
uint64_t* vm_size,
uint64_t* vm_hwm_size);
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// mojom::MemoryUsageMonitorLinux implementations:
void SetProcFiles(base::File statm_file, base::File status_file) override;
#endif
-@@ -65,7 +65,7 @@ class CONTROLLER_EXPORT MemoryUsageMonit
+@@ -66,7 +66,7 @@ class CONTROLLER_EXPORT MemoryUsageMonit
base::ScopedFD statm_fd_;
base::ScopedFD status_fd_;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
mojo::Receiver<mojom::blink::MemoryUsageMonitorLinux> receiver_{this};
#endif
};
diff --git a/chromium/patches/patch-third__party_blink_renderer_core_editing_editing__behavior.cc b/chromium/patches/patch-third__party_blink_renderer_core_editing_editing__behavior.cc
index d4a210c5a8..ec01dbcc91 100644
--- a/chromium/patches/patch-third__party_blink_renderer_core_editing_editing__behavior.cc
+++ b/chromium/patches/patch-third__party_blink_renderer_core_editing_editing__behavior.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- third_party/blink/renderer/core/editing/editing_behavior.cc.orig 2020-07-15 18:56:02.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/core/editing/editing_behavior.cc.orig 2024-07-24 02:44:45.601649800 +0000
+++ third_party/blink/renderer/core/editing/editing_behavior.cc
-@@ -274,7 +274,7 @@ bool EditingBehavior::ShouldInsertCharac
+@@ -324,7 +324,7 @@ bool EditingBehavior::ShouldInsertCharac
// unexpected behaviour
if (ch < ' ')
return false;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// According to XKB map no keyboard combinations with ctrl key are mapped to
// printable characters, however we need the filter as the DomKey/text could
// contain printable characters.
diff --git a/chromium/patches/patch-third__party_blink_renderer_core_execution__context_navigator__base.cc b/chromium/patches/patch-third__party_blink_renderer_core_execution__context_navigator__base.cc
new file mode 100644
index 0000000000..23e2800391
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_core_execution__context_navigator__base.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/core/execution_context/navigator_base.cc.orig 2024-07-24 02:44:45.649654400 +0000
++++ third_party/blink/renderer/core/execution_context/navigator_base.cc
+@@ -31,7 +31,7 @@ String GetReducedNavigatorPlatform() {
+ return "Win32";
+ #elif BUILDFLAG(IS_FUCHSIA)
+ return "";
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ return "Linux x86_64";
+ #elif BUILDFLAG(IS_IOS)
+ return "iPhone";
diff --git a/chromium/patches/patch-third__party_blink_renderer_core_exported_web__view__impl.cc b/chromium/patches/patch-third__party_blink_renderer_core_exported_web__view__impl.cc
new file mode 100644
index 0000000000..322d429d78
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_core_exported_web__view__impl.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/core/exported/web_view_impl.cc.orig 2024-07-24 02:44:45.661655700 +0000
++++ third_party/blink/renderer/core/exported/web_view_impl.cc
+@@ -427,7 +427,7 @@ SkFontHinting RendererPreferencesToSkiaH
+ const blink::RendererPreferences& prefs) {
+ // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is
+ // complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ if (!prefs.should_antialias_text) {
+ // When anti-aliasing is off, GTK maps all non-zero hinting settings to
+ // 'Normal' hinting so we do the same. Otherwise, folks who have 'Slight'
+@@ -3380,7 +3380,7 @@ void WebViewImpl::UpdateFontRenderingFro
+ renderer_preferences_.use_subpixel_positioning);
+ // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is
+ // complete.
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) && \
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)) && \
+ !BUILDFLAG(IS_ANDROID)
+ if (!renderer_preferences_.system_font_family_name.empty()) {
+ WebFontRenderStyle::SetSystemFontFamily(blink::WebString::FromUTF8(
diff --git a/chromium/patches/patch-third__party_blink_renderer_core_frame_web__frame__test.cc b/chromium/patches/patch-third__party_blink_renderer_core_frame_web__frame__test.cc
new file mode 100644
index 0000000000..357aacb011
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_core_frame_web__frame__test.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/core/frame/web_frame_test.cc.orig 2024-07-24 02:44:45.721661300 +0000
++++ third_party/blink/renderer/core/frame/web_frame_test.cc
+@@ -6471,7 +6471,7 @@ TEST_F(WebFrameTest, DISABLED_PositionFo
+ }
+
+ #if BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD)
+ // TODO(crbug.com/1090246): Fix these tests on Fuchsia and re-enable.
+ // TODO(crbug.com/1317375): Build these tests on all platforms.
+ #define MAYBE_SelectRangeStaysHorizontallyAlignedWhenMoved \
+@@ -6880,7 +6880,7 @@ TEST_F(CompositedSelectionBoundsTest, La
+ TEST_F(CompositedSelectionBoundsTest, LargeSelectionNoScroll) {
+ RunTest("composited_selection_bounds_large_selection_noscroll.html");
+ }
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #if !BUILDFLAG(IS_ANDROID)
+ TEST_F(CompositedSelectionBoundsTest, Input) {
+ web_view_helper_.GetWebView()->GetSettings()->SetDefaultFontSize(16);
diff --git a/chromium/patches/patch-third__party_blink_renderer_core_html_canvas_canvas__async__blob__creator.cc b/chromium/patches/patch-third__party_blink_renderer_core_html_canvas_canvas__async__blob__creator.cc
index 25357e2072..f8e36a4814 100644
--- a/chromium/patches/patch-third__party_blink_renderer_core_html_canvas_canvas__async__blob__creator.cc
+++ b/chromium/patches/patch-third__party_blink_renderer_core_html_canvas_canvas__async__blob__creator.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc.orig 2020-07-15 18:56:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc.orig 2024-07-24 02:44:45.733662600 +0000
+++ third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc
-@@ -43,7 +43,7 @@ constexpr base::TimeDelta kEncodeRowSlac
- base::TimeDelta::FromMicroseconds(100);
+@@ -50,7 +50,7 @@ constexpr base::TimeDelta kEncodeRowSlac
/* The value is based on user statistics on Nov 2017. */
--#if (defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN))
-+#if (defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN)) || defined(OS_BSD)
+ #if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_WIN))
++ BUILDFLAG(IS_WIN)) || BUILDFLAG(IS_BSD)
const double kIdleTaskStartTimeoutDelayMs = 1000.0;
#else
const double kIdleTaskStartTimeoutDelayMs = 4000.0; // For ChromeOS, Mobile
diff --git a/chromium/patches/patch-third__party_blink_renderer_core_html_forms_internal__popup__menu.cc b/chromium/patches/patch-third__party_blink_renderer_core_html_forms_internal__popup__menu.cc
deleted file mode 100644
index 14a0083571..0000000000
--- a/chromium/patches/patch-third__party_blink_renderer_core_html_forms_internal__popup__menu.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/blink/renderer/core/html/forms/internal_popup_menu.cc.orig 2020-07-15 18:56:02.000000000 +0000
-+++ third_party/blink/renderer/core/html/forms/internal_popup_menu.cc
-@@ -113,7 +113,7 @@ class InternalPopupMenu::ItemIterationCo
- is_in_group_(false),
- buffer_(buffer) {
- DCHECK(buffer_);
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // On other platforms, the <option> background color is the same as the
- // <select> background color. On Linux, that makes the <option>
- // background color very dark, so by default, try to use a lighter
diff --git a/chromium/patches/patch-third__party_blink_renderer_core_inspector_inspector__memory__agent.cc b/chromium/patches/patch-third__party_blink_renderer_core_inspector_inspector__memory__agent.cc
index 1f3c83d026..fac63055ea 100644
--- a/chromium/patches/patch-third__party_blink_renderer_core_inspector_inspector__memory__agent.cc
+++ b/chromium/patches/patch-third__party_blink_renderer_core_inspector_inspector__memory__agent.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- third_party/blink/renderer/core/inspector/inspector_memory_agent.cc.orig 2020-07-15 18:56:02.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/core/inspector/inspector_memory_agent.cc.orig 2024-07-24 02:44:45.837672700 +0000
+++ third_party/blink/renderer/core/inspector/inspector_memory_agent.cc
-@@ -185,7 +185,7 @@ InspectorMemoryAgent::GetSamplingProfile
+@@ -192,7 +192,7 @@ InspectorMemoryAgent::GetSamplingProfile
Vector<String> InspectorMemoryAgent::Symbolize(
- const WebVector<void*>& addresses) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+ const WebVector<const void*>& addresses) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// TODO(alph): Move symbolization to the client.
- Vector<void*> addresses_to_symbolize;
- for (size_t i = 0; i < addresses.size(); i++) {
+ Vector<const void*> addresses_to_symbolize;
+ for (const void* address : addresses) {
diff --git a/chromium/patches/patch-third__party_blink_renderer_core_layout_BUILD.gn b/chromium/patches/patch-third__party_blink_renderer_core_layout_BUILD.gn
deleted file mode 100644
index 88be40a3f4..0000000000
--- a/chromium/patches/patch-third__party_blink_renderer_core_layout_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/blink/renderer/core/layout/BUILD.gn.orig 2020-07-15 18:56:48.000000000 +0000
-+++ third_party/blink/renderer/core/layout/BUILD.gn
-@@ -614,7 +614,7 @@ blink_core_sources("layout") {
- sources += [ "layout_theme_font_provider_default.cc" ]
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "layout_theme_linux.cc",
- "layout_theme_linux.h",
diff --git a/chromium/patches/patch-third__party_blink_renderer_core_layout_layout__view.cc b/chromium/patches/patch-third__party_blink_renderer_core_layout_layout__view.cc
index 5d61924366..3fa4678c8a 100644
--- a/chromium/patches/patch-third__party_blink_renderer_core_layout_layout__view.cc
+++ b/chromium/patches/patch-third__party_blink_renderer_core_layout_layout__view.cc
@@ -1,22 +1,26 @@
$NetBSD$
---- third_party/blink/renderer/core/layout/layout_view.cc.orig 2020-07-15 18:56:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/core/layout/layout_view.cc.orig 2024-07-24 02:44:45.937682400 +0000
+++ third_party/blink/renderer/core/layout/layout_view.cc
-@@ -62,7 +62,7 @@
- #include "third_party/blink/renderer/platform/instrumentation/tracing/traced_value.h"
- #include "third_party/blink/renderer/platform/runtime_enabled_features.h"
+@@ -72,7 +72,7 @@
+ #include "ui/display/screen_info.h"
+ #include "ui/gfx/geometry/quad_f.h"
--#if defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "third_party/blink/renderer/platform/fonts/font_cache.h"
#endif
-@@ -330,7 +330,7 @@ void LayoutView::UpdateLayout() {
- DCHECK(!layout_state_);
- LayoutState root_layout_state(*this);
+@@ -775,7 +775,7 @@ void LayoutView::LayoutRoot() {
+ intrinsic_logical_widths_ = LogicalWidth();
+ }
--#if defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// The font code in FontPlatformData does not have a direct connection to the
// document, the frame or anything from which we could retrieve the device
// scale factor. After using zoom for DSF, the GraphicsContext does only ever
diff --git a/chromium/patches/patch-third__party_blink_renderer_core_paint_paint__layer.cc b/chromium/patches/patch-third__party_blink_renderer_core_paint_paint__layer.cc
index 8a6c17e31b..8db1e0ca55 100644
--- a/chromium/patches/patch-third__party_blink_renderer_core_paint_paint__layer.cc
+++ b/chromium/patches/patch-third__party_blink_renderer_core_paint_paint__layer.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- third_party/blink/renderer/core/paint/paint_layer.cc.orig 2020-07-15 18:56:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/core/paint/paint_layer.cc.orig 2024-07-24 02:44:46.045692700 +0000
+++ third_party/blink/renderer/core/paint/paint_layer.cc
-@@ -108,7 +108,7 @@ namespace {
- static CompositingQueryMode g_compositing_query_mode =
- kCompositingQueriesAreOnlyAllowedInCertainDocumentLifecyclePhases;
+@@ -122,7 +122,7 @@ namespace blink {
+
+ namespace {
--#ifdef OS_LINUX
-+#if defined(OS_LINUX) || defined(OS_BSD)
- struct SameSizeAsPaintLayer : DisplayItemClient {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ struct SameSizeAsPaintLayer : GarbageCollected<PaintLayer>, DisplayItemClient {
// The bit fields may fit into the machine word of DisplayItemClient which
// has only 8-bit data.
diff --git a/chromium/patches/patch-third__party_blink_renderer_core_scroll_scrollbar__theme__aura.cc b/chromium/patches/patch-third__party_blink_renderer_core_scroll_scrollbar__theme__aura.cc
index ce7211fb3f..e98145bf74 100644
--- a/chromium/patches/patch-third__party_blink_renderer_core_scroll_scrollbar__theme__aura.cc
+++ b/chromium/patches/patch-third__party_blink_renderer_core_scroll_scrollbar__theme__aura.cc
@@ -1,22 +1,26 @@
$NetBSD$
---- third_party/blink/renderer/core/scroll/scrollbar_theme_aura.cc.orig 2020-07-15 18:56:03.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/core/scroll/scrollbar_theme_aura.cc.orig 2024-07-24 02:44:46.093697500 +0000
+++ third_party/blink/renderer/core/scroll/scrollbar_theme_aura.cc
-@@ -137,7 +137,7 @@ bool ScrollbarThemeAura::SupportsDragSna
- // Disable snapback on desktop Linux to better integrate with the desktop
- // behavior. Typically, Linux apps do not implement scrollbar snapback (this
+@@ -149,7 +149,7 @@ bool ScrollbarThemeAura::SupportsDragSna
// is true for at least GTK and QT apps).
--#if (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is
+ // complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
return false;
#else
return true;
-@@ -301,7 +301,7 @@ ScrollbarPart ScrollbarThemeAura::PartsT
-
- bool ScrollbarThemeAura::ShouldCenterOnThumb(const Scrollbar& scrollbar,
- const WebMouseEvent& event) {
--#if (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+@@ -371,7 +371,7 @@ bool ScrollbarThemeAura::ShouldCenterOnT
+ const WebMouseEvent& event) const {
+ // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is
+ // complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
if (event.button == WebPointerProperties::Button::kMiddle)
return true;
#endif
diff --git a/chromium/patches/patch-third__party_blink_renderer_core_xml_xslt__processor.h b/chromium/patches/patch-third__party_blink_renderer_core_xml_xslt__processor.h
new file mode 100644
index 0000000000..0b2d11cc4f
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_core_xml_xslt__processor.h
@@ -0,0 +1,20 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/core/xml/xslt_processor.h.orig 2024-07-24 02:44:46.249712500 +0000
++++ third_party/blink/renderer/core/xml/xslt_processor.h
+@@ -77,7 +77,11 @@ class XSLTProcessor final : public Scrip
+
+ void reset();
+
++#if (LIBXML_VERSION >= 21200)
+ static void ParseErrorFunc(void* user_data, const xmlError*);
++#else
++ static void ParseErrorFunc(void* user_data, xmlError*);
++#endif
+ static void GenericErrorFunc(void* user_data, const char* msg, ...);
+
+ // Only for libXSLT callbacks
diff --git a/chromium/patches/patch-third__party_blink_renderer_core_xml_xslt__processor__libxslt.cc b/chromium/patches/patch-third__party_blink_renderer_core_xml_xslt__processor__libxslt.cc
new file mode 100644
index 0000000000..253f4662a7
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_core_xml_xslt__processor__libxslt.cc
@@ -0,0 +1,20 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc.orig 2024-07-24 02:44:46.249712500 +0000
++++ third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc
+@@ -66,7 +66,11 @@ void XSLTProcessor::GenericErrorFunc(voi
+ // It would be nice to do something with this error message.
+ }
+
++#if (LIBXML_VERSION >= 21200)
+ void XSLTProcessor::ParseErrorFunc(void* user_data, const xmlError* error) {
++#else
++void XSLTProcessor::ParseErrorFunc(void* user_data, xmlError* error) {
++#endif
+ FrameConsole* console = static_cast<FrameConsole*>(user_data);
+ if (!console)
+ return;
diff --git a/chromium/patches/patch-third__party_blink_renderer_modules_media_audio_audio__device__factory.cc b/chromium/patches/patch-third__party_blink_renderer_modules_media_audio_audio__device__factory.cc
new file mode 100644
index 0000000000..c5e3d51bd4
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_modules_media_audio_audio__device__factory.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/modules/media/audio/audio_device_factory.cc.orig 2024-07-24 02:44:46.397726800 +0000
++++ third_party/blink/renderer/modules/media/audio/audio_device_factory.cc
+@@ -35,7 +35,7 @@ namespace {
+ AudioDeviceFactory* g_factory_override = nullptr;
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_LACROS)
++ BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ // Due to driver deadlock issues on Windows (http://crbug/422522) there is a
+ // chance device authorization response is never received from the browser side.
+ // In this case we will time out, to avoid renderer hang forever waiting for
diff --git a/chromium/patches/patch-third__party_blink_renderer_modules_media_audio_audio__renderer__mixer__manager__test.cc b/chromium/patches/patch-third__party_blink_renderer_modules_media_audio_audio__renderer__mixer__manager__test.cc
new file mode 100644
index 0000000000..979c079a02
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_modules_media_audio_audio__renderer__mixer__manager__test.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager_test.cc.orig 2024-07-24 02:44:46.397726800 +0000
++++ third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager_test.cc
+@@ -813,7 +813,7 @@ TEST_F(AudioRendererMixerManagerTest, Mi
+ mixer->get_output_params_for_testing().sample_rate());
+
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_APPLE) || \
+- BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ // Use 10 ms buffer (441 frames per buffer).
+ EXPECT_EQ(output_sample_rate / 100,
+ mixer->get_output_params_for_testing().frames_per_buffer());
diff --git a/chromium/patches/patch-third__party_blink_renderer_modules_mediastream_processed__local__audio__source.cc b/chromium/patches/patch-third__party_blink_renderer_modules_mediastream_processed__local__audio__source.cc
deleted file mode 100644
index 2462102843..0000000000
--- a/chromium/patches/patch-third__party_blink_renderer_modules_mediastream_processed__local__audio__source.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/blink/renderer/modules/mediastream/processed_local_audio_source.cc.orig 2020-07-15 18:56:03.000000000 +0000
-+++ third_party/blink/renderer/modules/mediastream/processed_local_audio_source.cc
-@@ -408,7 +408,7 @@ void ProcessedLocalAudioSource::CaptureU
- bool key_pressed) {
- #if defined(OS_WIN) || defined(OS_MACOSX)
- DCHECK_LE(volume, 1.0);
--#elif (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_OPENBSD)
-+#elif (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_BSD)
- // We have a special situation on Linux where the microphone volume can be
- // "higher than maximum". The input volume slider in the sound preference
- // allows the user to set a scaling that is higher than 100%. It means that
diff --git a/chromium/patches/patch-third__party_blink_renderer_modules_peerconnection_webrtc__audio__renderer__test.cc b/chromium/patches/patch-third__party_blink_renderer_modules_peerconnection_webrtc__audio__renderer__test.cc
new file mode 100644
index 0000000000..bc8b1b0497
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_modules_peerconnection_webrtc__audio__renderer__test.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/modules/peerconnection/webrtc_audio_renderer_test.cc.orig 2024-07-24 02:44:46.529739600 +0000
++++ third_party/blink/renderer/modules/peerconnection/webrtc_audio_renderer_test.cc
+@@ -301,7 +301,7 @@ TEST_F(WebRtcAudioRendererTest, DISABLED
+ SetupRenderer(kDefaultOutputDeviceId);
+ renderer_proxy_->Start();
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_APPLE) || \
+- BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ static const int kExpectedBufferSize = kHardwareSampleRate / 100;
+ #elif BUILDFLAG(IS_ANDROID)
+ static const int kExpectedBufferSize = 2 * kHardwareSampleRate / 100;
diff --git a/chromium/patches/patch-third__party_blink_renderer_modules_webaudio_audio__worklet__thread__test.cc b/chromium/patches/patch-third__party_blink_renderer_modules_webaudio_audio__worklet__thread__test.cc
new file mode 100644
index 0000000000..a204b63c67
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_modules_webaudio_audio__worklet__thread__test.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc.orig 2024-07-24 02:44:46.601746600 +0000
++++ third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc
+@@ -463,7 +463,7 @@ class AudioWorkletThreadPriorityTest
+
+ // TODO(crbug.com/1022888): The worklet thread priority is always NORMAL
+ // on OS_LINUX and OS_CHROMEOS regardless of the thread priority setting.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ if (expected_priority == base::ThreadPriorityForTest::kRealtimeAudio ||
+ expected_priority == base::ThreadPriorityForTest::kDisplay) {
+ EXPECT_EQ(actual_priority, base::ThreadPriorityForTest::kNormal);
diff --git a/chromium/patches/patch-third__party_blink_renderer_modules_webgl_webgl__rendering__context__base.cc b/chromium/patches/patch-third__party_blink_renderer_modules_webgl_webgl__rendering__context__base.cc
new file mode 100644
index 0000000000..375f23ec44
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_modules_webgl_webgl__rendering__context__base.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc.orig 2024-07-24 02:44:46.661752500 +0000
++++ third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
+@@ -6310,7 +6310,7 @@ void WebGLRenderingContextBase::TexImage
+ constexpr bool kAllowZeroCopyImages = true;
+ #endif
+
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // TODO(crbug.com/1175907): Only TexImage2D seems to work with the GPU path on
+ // Android M -- appears to work fine on R, but to avoid regressions in <video>
+ // limit to TexImage2D only for now. Fails conformance test on Nexus 5X:
diff --git a/chromium/patches/patch-third__party_blink_renderer_modules_webgpu_gpu__queue.cc b/chromium/patches/patch-third__party_blink_renderer_modules_webgpu_gpu__queue.cc
new file mode 100644
index 0000000000..6494b2eec1
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_modules_webgpu_gpu__queue.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/modules/webgpu/gpu_queue.cc.orig 2024-07-24 02:44:46.673753500 +0000
++++ third_party/blink/renderer/modules/webgpu/gpu_queue.cc
+@@ -783,7 +783,7 @@ bool GPUQueue::CopyFromCanvasSourceImage
+ // on linux platform.
+ // TODO(crbug.com/1424119): using a webgpu mailbox texture on the OpenGLES
+ // backend is failing for unknown reasons.
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool forceReadback = true;
+ #elif BUILDFLAG(IS_ANDROID)
+ // TODO(crbug.com/dawn/1969): Some Android devices don't fail to copy from
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_BUILD.gn b/chromium/patches/patch-third__party_blink_renderer_platform_BUILD.gn
index 4dd7eea79f..9114ad3d9b 100644
--- a/chromium/patches/patch-third__party_blink_renderer_platform_BUILD.gn
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_BUILD.gn
@@ -1,13 +1,17 @@
$NetBSD$
---- third_party/blink/renderer/platform/BUILD.gn.orig 2020-07-15 18:56:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/BUILD.gn.orig 2024-07-24 02:44:46.709757000 +0000
+++ third_party/blink/renderer/platform/BUILD.gn
-@@ -2211,7 +2211,7 @@ test("blink_fuzzer_unittests") {
-
- sources = [ "testing/run_all_tests.cc" ]
+@@ -1993,7 +1993,7 @@ static_library("test_support") {
+ ]
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- deps += [
- "//third_party/blink/renderer/platform/scheduler:scheduler_fuzzer_tests",
- ]
+ # fuzzed_data_provider may not work with a custom toolchain.
+- if (custom_toolchain == "" && is_clang) {
++ if ((custom_toolchain == "" && is_clang) && !is_bsd) {
+ sources += [
+ "testing/fuzzed_data_provider.cc",
+ "testing/fuzzed_data_provider.h",
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__cache.cc b/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__cache.cc
index c0d691a9fe..9291be353e 100644
--- a/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__cache.cc
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__cache.cc
@@ -1,22 +1,26 @@
$NetBSD$
---- third_party/blink/renderer/platform/fonts/font_cache.cc.orig 2020-07-15 18:56:03.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/fonts/font_cache.cc.orig 2024-07-24 02:44:46.757761700 +0000
+++ third_party/blink/renderer/platform/fonts/font_cache.cc
-@@ -80,7 +80,7 @@ const char kColorEmojiLocale[] = "und-Zs
+@@ -73,7 +73,7 @@ extern const char kNotoColorEmojiCompat[
SkFontMgr* FontCache::static_font_manager_ = nullptr;
--#if defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
float FontCache::device_scale_factor_ = 1.0;
#endif
-@@ -120,7 +120,7 @@ FontCache::FontCache()
- FontPlatformData* FontCache::SystemFontPlatformData(
+@@ -124,7 +124,7 @@ const FontPlatformData* FontCache::Syste
const FontDescription& font_description) {
const AtomicString& family = FontCache::SystemFontFamily();
--#if defined(OS_LINUX) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_FUCHSIA) || defined(OS_BSD)
- if (family.IsEmpty() || family == font_family_names::kSystemUi)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || \
+- BUILDFLAG(IS_IOS)
++ BUILDFLAG(IS_IOS) || BUILDFLAG(IS_BSD)
+ if (family.empty() || family == font_family_names::kSystemUi)
return nullptr;
#else
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__cache.h b/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__cache.h
index e6280322e9..beb21d3961 100644
--- a/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__cache.h
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__cache.h
@@ -1,49 +1,53 @@
$NetBSD$
---- third_party/blink/renderer/platform/fonts/font_cache.h.orig 2020-07-15 18:56:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/fonts/font_cache.h.orig 2024-07-24 02:44:46.757761700 +0000
+++ third_party/blink/renderer/platform/fonts/font_cache.h
-@@ -58,7 +58,7 @@
+@@ -55,7 +55,7 @@
#include "third_party/skia/include/core/SkFontMgr.h"
#include "third_party/skia/include/core/SkRefCnt.h"
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "ui/gfx/font_fallback_linux.h"
#endif
-@@ -174,7 +174,7 @@ class PLATFORM_EXPORT FontCache {
- sk_sp<SkFontMgr> FontManager() { return font_manager_; }
- static void SetFontManager(sk_sp<SkFontMgr>);
+@@ -163,7 +163,7 @@ class PLATFORM_EXPORT FontCache final {
+ static void PrewarmFamily(const AtomicString& family_name) {}
+ #endif
--#if defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// These are needed for calling QueryRenderStyleForStrike, since
// gfx::GetFontRenderParams makes distinctions based on DSF.
static float DeviceScaleFactor() { return device_scale_factor_; }
-@@ -249,7 +249,7 @@ class PLATFORM_EXPORT FontCache {
- const FontDescription&);
- #endif // defined(OS_ANDROID)
+@@ -239,7 +239,7 @@ class PLATFORM_EXPORT FontCache final {
+ const char* locale_family_name);
+ #endif // BUILDFLAG(IS_ANDROID)
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
static bool GetFontForCharacter(UChar32,
const char* preferred_locale,
gfx::FallbackFontData*);
-@@ -334,7 +334,7 @@ class PLATFORM_EXPORT FontCache {
+@@ -312,7 +312,7 @@ class PLATFORM_EXPORT FontCache final {
const FontFaceCreationParams&,
std::string& name);
--#if defined(OS_ANDROID) || defined(OS_LINUX)
-+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
static AtomicString GetFamilyNameForCharacter(SkFontMgr*,
UChar32,
const FontDescription&,
-@@ -379,7 +379,7 @@ class PLATFORM_EXPORT FontCache {
- std::unique_ptr<FallbackFamilyStyleCache> fallback_params_cache_;
- #endif // defined(OS_WIN)
+@@ -349,7 +349,7 @@ class PLATFORM_EXPORT FontCache final {
+ bool is_test_font_mgr_ = false;
+ #endif // BUILDFLAG(IS_WIN)
--#if defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
static float device_scale_factor_;
#endif
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__description.cc b/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__description.cc
index 534eacd3e2..14f693605d 100644
--- a/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__description.cc
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__description.cc
@@ -1,22 +1,26 @@
$NetBSD$
---- third_party/blink/renderer/platform/fonts/font_description.cc.orig 2020-07-15 18:56:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/fonts/font_description.cc.orig 2024-07-24 02:44:46.757761700 +0000
+++ third_party/blink/renderer/platform/fonts/font_description.cc
-@@ -38,7 +38,7 @@
+@@ -39,7 +39,7 @@
#include "third_party/blink/renderer/platform/wtf/text/string_hash.h"
#include "third_party/blink/renderer/platform/wtf/text/string_hasher.h"
--#if defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
#include "third_party/blink/renderer/platform/fonts/font_cache.h"
#endif
-@@ -239,7 +239,7 @@ FontCacheKey FontDescription::CacheKey(
- static_cast<unsigned>(fields_.orientation_) << 1 | // bit 2-3
- static_cast<unsigned>(fields_.subpixel_text_position_); // bit 1
+@@ -277,7 +277,7 @@ FontCacheKey FontDescription::CacheKey(
+ static_cast<unsigned>(fields_.orientation_) << 1 | // bit 2-3
+ static_cast<unsigned>(fields_.subpixel_text_position_); // bit 1
--#if defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
float device_scale_factor_for_key = FontCache::DeviceScaleFactor();
#else
float device_scale_factor_for_key = 1.0f;
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__metrics.cc b/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__metrics.cc
index 1da8da2f70..ac54234d67 100644
--- a/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__metrics.cc
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__metrics.cc
@@ -1,31 +1,35 @@
$NetBSD$
---- third_party/blink/renderer/platform/fonts/font_metrics.cc.orig 2020-07-15 18:56:03.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/fonts/font_metrics.cc.orig 2024-07-24 02:44:46.761762100 +0000
+++ third_party/blink/renderer/platform/fonts/font_metrics.cc
-@@ -38,7 +38,7 @@
-
+@@ -39,7 +39,7 @@
namespace blink {
--#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FUCHSIA) || defined(OS_BSD)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+- BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
// This is the largest VDMX table which we'll try to load and parse.
static const size_t kMaxVDMXTableSize = 1024 * 1024; // 1 MB
#endif
-@@ -60,7 +60,7 @@ void FontMetrics::AscentDescentWithHacks
- int vdmx_ascent = 0, vdmx_descent = 0;
+@@ -67,7 +67,7 @@ void FontMetrics::AscentDescentWithHacks
bool is_vdmx_valid = false;
--#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FUCHSIA) || defined(OS_BSD)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+- BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
// Manually digging up VDMX metrics is only applicable when bytecode hinting
// using FreeType. With DirectWrite or CoreText, no bytecode hinting is ever
// done. This code should be pushed into FreeType (hinted font metrics).
-@@ -106,7 +106,7 @@ void FontMetrics::AscentDescentWithHacks
- visual_overflow_inflation_for_ascent = 1;
- if (descent < metrics.fDescent) {
- visual_overflow_inflation_for_descent = 1;
--#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FUCHSIA) || defined(OS_BSD)
- // When subpixel positioning is enabled, if the descent is rounded down,
- // the descent part of the glyph may be truncated when displayed in a
- // 'overflow: hidden' container. To avoid that, borrow 1 unit from the
+@@ -111,7 +111,7 @@ void FontMetrics::AscentDescentWithHacks
+ descent = SkScalarRoundToScalar(metrics.fDescent);
+
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+- BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ // When subpixel positioning is enabled, if the descent is rounded down,
+ // the descent part of the glyph may be truncated when displayed in a
+ // 'overflow: hidden' container. To avoid that, borrow 1 unit from the
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__platform__data.cc b/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__platform__data.cc
new file mode 100644
index 0000000000..0e2925e21e
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__platform__data.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/fonts/font_platform_data.cc.orig 2024-07-24 02:44:46.761762100 +0000
++++ third_party/blink/renderer/platform/fonts/font_platform_data.cc
+@@ -49,7 +49,7 @@
+ namespace blink {
+ namespace {
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Getting the system font render style takes a significant amount of time on
+ // Linux because looking up fonts using fontconfig can be very slow. We fetch
+ // the render style for each font family and text size, while it's very
+@@ -128,7 +128,7 @@ FontPlatformData::FontPlatformData(sk_sp
+ style_ = WebFontRenderStyle::GetDefault();
+ #if !BUILDFLAG(IS_WIN)
+ WebFontRenderStyle system_style;
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ bool override_font_name_and_size =
+ base::FeatureList::IsEnabled(kOptimizeLinuxFonts);
+ #else
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__unique__name__lookup.cc b/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__unique__name__lookup.cc
index ed99eaa746..2f3aa6868b 100644
--- a/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__unique__name__lookup.cc
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__unique__name__lookup.cc
@@ -1,22 +1,26 @@
$NetBSD$
---- third_party/blink/renderer/platform/fonts/font_unique_name_lookup.cc.orig 2020-07-15 18:56:03.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/fonts/font_unique_name_lookup.cc.orig 2024-07-24 02:44:46.761762100 +0000
+++ third_party/blink/renderer/platform/fonts/font_unique_name_lookup.cc
-@@ -8,7 +8,7 @@
- #if defined(OS_ANDROID)
+@@ -9,7 +9,7 @@
+ #if BUILDFLAG(IS_ANDROID)
#include "third_party/blink/public/mojom/font_unique_name_lookup/font_unique_name_lookup.mojom-blink.h"
#include "third_party/blink/renderer/platform/fonts/android/font_unique_name_lookup_android.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "third_party/blink/renderer/platform/fonts/linux/font_unique_name_lookup_linux.h"
- #elif defined(OS_WIN)
+ #elif BUILDFLAG(IS_WIN)
#include "third_party/blink/renderer/platform/fonts/win/font_unique_name_lookup_win.h"
-@@ -23,7 +23,7 @@ std::unique_ptr<FontUniqueNameLookup>
+@@ -24,7 +24,7 @@ std::unique_ptr<FontUniqueNameLookup>
FontUniqueNameLookup::GetPlatformUniqueNameLookup() {
- #if defined(OS_ANDROID)
+ #if BUILDFLAG(IS_ANDROID)
return std::make_unique<FontUniqueNameLookupAndroid>();
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
return std::make_unique<FontUniqueNameLookupLinux>();
- #elif defined(OS_WIN)
+ #elif BUILDFLAG(IS_WIN)
return std::make_unique<FontUniqueNameLookupWin>();
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_fonts_skia_font__cache__skia.cc b/chromium/patches/patch-third__party_blink_renderer_platform_fonts_skia_font__cache__skia.cc
index 4bb63edac7..a8db13e446 100644
--- a/chromium/patches/patch-third__party_blink_renderer_platform_fonts_skia_font__cache__skia.cc
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_fonts_skia_font__cache__skia.cc
@@ -1,31 +1,26 @@
$NetBSD$
---- third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc.orig 2020-07-15 18:56:03.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc.orig 2024-07-24 02:44:46.777763600 +0000
+++ third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc
-@@ -61,7 +61,7 @@ AtomicString ToAtomicString(const SkStri
+@@ -65,7 +65,7 @@ AtomicString ToAtomicString(const SkStri
return AtomicString::FromUTF8(str.c_str(), str.size());
}
--#if defined(OS_ANDROID) || defined(OS_LINUX)
-+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// This function is called on android or when we are emulating android fonts on
// linux and the embedder has overriden the default fontManager with
// WebFontRendering::setSkiaFontMgr.
-@@ -229,7 +229,7 @@ sk_sp<SkTypeface> FontCache::CreateTypef
- }
- #endif
-
--#if defined(OS_LINUX) || defined(OS_WIN)
-+#if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_BSD)
- // On linux if the fontManager has been overridden then we should be calling
- // the embedder provided font Manager rather than calling
- // SkTypeface::CreateFromName which may redirect the call to the default font
-@@ -263,7 +263,7 @@ std::unique_ptr<FontPlatformData> FontCa
+@@ -246,7 +246,7 @@ const FontPlatformData* FontCache::Creat
std::string name;
sk_sp<SkTypeface> typeface;
--#if defined(OS_ANDROID) || defined(OS_LINUX)
-+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD)
- if (alternate_name == AlternateFontName::kLocalUniqueFace &&
- RuntimeEnabledFeatures::FontSrcLocalMatchingEnabled()) {
- typeface = CreateTypefaceFromUniqueName(creation_params);
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ bool noto_color_emoji_from_gmscore = false;
+ #if BUILDFLAG(IS_ANDROID)
+ // Use the unique local matching pathway for fetching Noto Color Emoji Compat
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_graphics_begin__frame__provider.cc b/chromium/patches/patch-third__party_blink_renderer_platform_graphics_begin__frame__provider.cc
new file mode 100644
index 0000000000..545dce3c14
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_graphics_begin__frame__provider.cc
@@ -0,0 +1,21 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/graphics/begin_frame_provider.cc.orig 2024-07-24 02:44:46.785764500 +0000
++++ third_party/blink/renderer/platform/graphics/begin_frame_provider.cc
+@@ -71,8 +71,12 @@ void BeginFrameProvider::CreateComposito
+
+ // Once we are using RAF, this thread is driving user interactive display
+ // updates. Update priority accordingly.
++ // pledge(2)
++ // stop this baloney
++#if !defined(OS_OPENBSD)
+ base::PlatformThread::SetCurrentThreadType(
+ base::ThreadType::kDisplayCritical);
++#endif
+
+ mojo::Remote<mojom::blink::EmbeddedFrameSinkProvider> provider;
+ Platform::Current()->GetBrowserInterfaceBroker()->GetInterface(
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_graphics_video__frame__submitter.cc b/chromium/patches/patch-third__party_blink_renderer_platform_graphics_video__frame__submitter.cc
index d0722473be..9135c50ac2 100644
--- a/chromium/patches/patch-third__party_blink_renderer_platform_graphics_video__frame__submitter.cc
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_graphics_video__frame__submitter.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- third_party/blink/renderer/platform/graphics/video_frame_submitter.cc.orig 2020-07-15 18:56:03.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/graphics/video_frame_submitter.cc.orig 2024-07-24 02:44:46.837769500 +0000
+++ third_party/blink/renderer/platform/graphics/video_frame_submitter.cc
-@@ -195,7 +195,7 @@ void VideoFrameSubmitter::OnBeginFrame(
- if (viz::FrameTokenGT(pair.key, *next_frame_token_))
+@@ -407,7 +407,7 @@ void VideoFrameSubmitter::OnBeginFrame(
continue;
- auto& feedback = pair.value.presentation_feedback;
--#ifdef OS_LINUX
-+#if defined(OS_LINUX) || defined(OS_BSD)
+ auto& feedback =
+ timing_details.find(frame_token)->value.presentation_feedback;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
// TODO: On Linux failure flag is unreliable, and perfectly rendered frames
// are reported as failures all the time.
bool presentation_failure = false;
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_instrumentation_partition__alloc__memory__dump__provider.cc b/chromium/patches/patch-third__party_blink_renderer_platform_instrumentation_partition__alloc__memory__dump__provider.cc
new file mode 100644
index 0000000000..ac64918e77
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_instrumentation_partition__alloc__memory__dump__provider.cc
@@ -0,0 +1,34 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/instrumentation/partition_alloc_memory_dump_provider.cc.orig 2024-07-24 02:44:46.857771400 +0000
++++ third_party/blink/renderer/platform/instrumentation/partition_alloc_memory_dump_provider.cc
+@@ -14,7 +14,9 @@
+
+ namespace blink {
+
++#if !BUILDFLAG(IS_BSD)
+ const char kPartitionAllocDumpName[] = "partition_alloc";
++#endif
+
+ PartitionAllocMemoryDumpProvider* PartitionAllocMemoryDumpProvider::Instance() {
+ DEFINE_STATIC_LOCAL(PartitionAllocMemoryDumpProvider, instance, ());
+@@ -24,6 +26,7 @@ PartitionAllocMemoryDumpProvider* Partit
+ bool PartitionAllocMemoryDumpProvider::OnMemoryDump(
+ const base::trace_event::MemoryDumpArgs& args,
+ base::trace_event::ProcessMemoryDump* memory_dump) {
++#if !BUILDFLAG(IS_BSD)
+ using base::trace_event::MemoryDumpLevelOfDetail;
+
+ MemoryDumpLevelOfDetail level_of_detail = args.level_of_detail;
+@@ -49,6 +52,7 @@ bool PartitionAllocMemoryDumpProvider::O
+ "size", "bytes", partition_stats_dumper.total_active_bytes());
+ memory_dump->AddOwnershipEdge(allocated_objects_dump->guid(),
+ partitions_dump->guid());
++#endif
+
+ return true;
+ }
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_peerconnection_rtc__video__encoder__factory.cc b/chromium/patches/patch-third__party_blink_renderer_platform_peerconnection_rtc__video__encoder__factory.cc
new file mode 100644
index 0000000000..88c17ca146
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_peerconnection_rtc__video__encoder__factory.cc
@@ -0,0 +1,23 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_factory.cc.orig 2024-07-24 02:44:46.917777300 +0000
++++ third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_factory.cc
+@@ -254,12 +254,12 @@ SupportedFormats GetSupportedFormatsInte
+ supported_formats.scalability_modes.push_back(profile.scalability_modes);
+ supported_formats.sdp_formats.push_back(std::move(*format));
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #if BUILDFLAG(IS_WIN)
+ const bool kShouldAddH264Cbp =
+ base::FeatureList::IsEnabled(kMediaFoundationH264CbpEncoding) &&
+ profile.profile == media::VideoCodecProfile::H264PROFILE_BASELINE;
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const bool kShouldAddH264Cbp =
+ profile.profile == media::VideoCodecProfile::H264PROFILE_BASELINE;
+ #endif
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5 b/chromium/patches/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5
new file mode 100644
index 0000000000..c06dd0d1e0
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5
@@ -0,0 +1,98 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/runtime_enabled_features.json5.orig 2024-07-24 02:44:46.921777700 +0000
++++ third_party/blink/renderer/platform/runtime_enabled_features.json5
+@@ -324,7 +324,7 @@
+ name: "AppTitle",
+ status: "experimental",
+ origin_trial_feature_name: "AppTitle",
+- origin_trial_os: ["win", "mac", "linux", "chromeos"],
++ origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd", "netbsd"],
+ base_feature: "WebAppEnableAppTitle",
+ },
+ {
+@@ -1528,7 +1528,7 @@
+ status: "test",
+ base_feature: "none",
+ origin_trial_feature_name: "FedCmContinueOnBundle",
+- origin_trial_os: ["win", "mac", "linux", "chromeos"],
++ origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd", "netbsd"],
+ origin_trial_allows_third_party: true,
+ },
+ {
+@@ -1545,7 +1545,7 @@
+ status: "test",
+ base_feature: "none",
+ origin_trial_feature_name: "FedCmButtonMode",
+- origin_trial_os: ["win", "mac", "linux", "chromeos"],
++ origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd", "netbsd"],
+ origin_trial_allows_third_party: true,
+ },
+ {
+@@ -1590,7 +1590,7 @@
+ base_feature: "none",
+ public: true,
+ origin_trial_feature_name: "FedCmMultipleIdentityProviders",
+- origin_trial_os: ["win", "mac", "linux", "chromeos"],
++ origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd", "netbsd"],
+ origin_trial_allows_third_party: true,
+ },
+ {
+@@ -1928,7 +1928,7 @@
+ base_feature_status: "enabled",
+ copied_from_base_feature_if: "overridden",
+ origin_trial_feature_name: "FullscreenPopupWindows",
+- origin_trial_os: ["win", "mac", "linux", "chromeos"],
++ origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd", "netbsd"],
+ },
+ {
+ name: "GamepadButtonAxisEvents",
+@@ -3005,7 +3005,7 @@
+ // Tracking bug for the implementation: https://crbug.com/1462930
+ name: "PermissionElement",
+ origin_trial_feature_name: "PermissionElement",
+- origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos"],
++ origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos", "openbsd", "freebsd", "netbsd"],
+ status: "experimental",
+ public: true,
+ base_feature_status: "enabled",
+@@ -3140,7 +3140,7 @@
+ {
+ name: "PrivateNetworkAccessPermissionPrompt",
+ origin_trial_feature_name: "PrivateNetworkAccessPermissionPrompt",
+- origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos"],
++ origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos", "openbsd", "freebsd", "netbsd"],
+ status: "stable",
+ public: true,
+ base_feature: "none",
+@@ -4116,7 +4116,7 @@
+ name: "UnrestrictedSharedArrayBuffer",
+ base_feature: "none",
+ origin_trial_feature_name: "UnrestrictedSharedArrayBuffer",
+- origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos"],
++ origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos", "openbsd", "freebsd", "netbsd"],
+ },
+ // Enables using policy-controlled feature "usb-unrestricted" to allow
+ // isolated context to access protected USB interface classes and to
+@@ -4285,7 +4285,7 @@
+ {
+ name: "WebAppScopeExtensions",
+ origin_trial_feature_name: "WebAppScopeExtensions",
+- origin_trial_os: ["win", "mac", "linux", "chromeos"],
++ origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd", "netbsd"],
+ status: "experimental",
+ base_feature: "none",
+ },
+@@ -4328,7 +4328,7 @@
+ status: "experimental",
+ base_feature: "none",
+ origin_trial_feature_name: "WebAppUrlHandling",
+- origin_trial_os: ["win", "mac", "linux"],
++ origin_trial_os: ["win", "mac", "linux", "openbsd", "freebsd", "netbsd"],
+ },
+ {
+ // WebAssembly JS Promise Integration,
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_scheduler_BUILD.gn b/chromium/patches/patch-third__party_blink_renderer_platform_scheduler_BUILD.gn
deleted file mode 100644
index 74cce3b8ec..0000000000
--- a/chromium/patches/patch-third__party_blink_renderer_platform_scheduler_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/blink/renderer/platform/scheduler/BUILD.gn.orig 2020-07-15 18:56:48.000000000 +0000
-+++ third_party/blink/renderer/platform/scheduler/BUILD.gn
-@@ -287,7 +287,7 @@ jumbo_source_set("scheduler_fuzzer_tests
- "//third_party/blink/renderer/platform/scheduler:test_support",
- ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "test/fuzzer/sequence_manager_fuzzer_processor.cc",
- "test/fuzzer/sequence_manager_fuzzer_processor.h",
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_scheduler_common_thread.cc b/chromium/patches/patch-third__party_blink_renderer_platform_scheduler_common_thread.cc
new file mode 100644
index 0000000000..bbd6ba677f
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_scheduler_common_thread.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/scheduler/common/thread.cc.orig 2024-07-24 02:44:46.925778000 +0000
++++ third_party/blink/renderer/platform/scheduler/common/thread.cc
+@@ -82,7 +82,7 @@ void Thread::CreateAndSetCompositorThrea
+ std::make_unique<scheduler::CompositorThread>(params);
+ compositor_thread->Init();
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_OPENBSD)
+ compositor_thread->GetTaskRunner()->PostTaskAndReplyWithResult(
+ FROM_HERE, base::BindOnce(&base::PlatformThread::CurrentId),
+ base::BindOnce([](base::PlatformThreadId compositor_thread_id) {
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_video__capture_video__capture__impl.cc b/chromium/patches/patch-third__party_blink_renderer_platform_video__capture_video__capture__impl.cc
new file mode 100644
index 0000000000..19834a7805
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_video__capture_video__capture__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/video_capture/video_capture_impl.cc.orig 2024-07-24 02:44:46.993784700 +0000
++++ third_party/blink/renderer/platform/video_capture/video_capture_impl.cc
+@@ -608,7 +608,7 @@ bool VideoCaptureImpl::BindVideoFrameOnM
+ }
+
+ const unsigned texture_target =
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Explicitly set GL_TEXTURE_EXTERNAL_OES if necessary:
+ // `media::VideoFrame::RequiresExternalSampler()` requires it for NV12
+ // format, while `ClientSharedImage::GetTextureTarget(BufferUsage,
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_widget_compositing_blink__categorized__worker__pool__delegate.cc b/chromium/patches/patch-third__party_blink_renderer_platform_widget_compositing_blink__categorized__worker__pool__delegate.cc
new file mode 100644
index 0000000000..36e64b1f99
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_widget_compositing_blink__categorized__worker__pool__delegate.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/widget/compositing/blink_categorized_worker_pool_delegate.cc.orig 2024-07-24 02:44:47.001785300 +0000
++++ third_party/blink/renderer/platform/widget/compositing/blink_categorized_worker_pool_delegate.cc
+@@ -27,7 +27,7 @@ BlinkCategorizedWorkerPoolDelegate& Blin
+
+ void BlinkCategorizedWorkerPoolDelegate::NotifyThreadWillRun(
+ base::PlatformThreadId tid) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ scoped_refptr<base::TaskRunner> task_runner =
+ Thread::MainThread()->GetTaskRunner(MainThreadTaskRunnerRestricted());
+ task_runner->PostTask(FROM_HERE, base::BindOnce(
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_wtf_container__annotations.h b/chromium/patches/patch-third__party_blink_renderer_platform_wtf_container__annotations.h
index 70aa8c7be5..202909c947 100644
--- a/chromium/patches/patch-third__party_blink_renderer_platform_wtf_container__annotations.h
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_wtf_container__annotations.h
@@ -1,13 +1,17 @@
$NetBSD$
---- third_party/blink/renderer/platform/wtf/container_annotations.h.orig 2020-07-15 18:56:04.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/wtf/container_annotations.h.orig 2024-07-24 02:44:47.013786600 +0000
+++ third_party/blink/renderer/platform/wtf/container_annotations.h
-@@ -10,7 +10,7 @@
-
+@@ -12,7 +12,7 @@
// TODO(ochang): Remove the ARCH_CPU_X86_64 condition to enable this for X86
// once the crashes there have been fixed: http://crbug.com/461406
--#if defined(ADDRESS_SANITIZER) && defined(OS_LINUX) && defined(ARCH_CPU_X86_64)
-+#if defined(ADDRESS_SANITIZER) && (defined(OS_LINUX) || defined(OS_BSD)) && defined(ARCH_CPU_X86_64)
- #define ANNOTATE_CONTIGUOUS_CONTAINER
- #define ANNOTATE_NEW_BUFFER(buffer, capacity, newSize) \
- if (buffer) { \
+ #if defined(ADDRESS_SANITIZER) && \
+- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \
++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && \
+ defined(ARCH_CPU_X86_64)
+
+ // Annotations require buffers to begin on an 8-byte boundary. See
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_wtf_math__extras.h b/chromium/patches/patch-third__party_blink_renderer_platform_wtf_math__extras.h
new file mode 100644
index 0000000000..cb790d3156
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_wtf_math__extras.h
@@ -0,0 +1,29 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/wtf/math_extras.h.orig 2024-07-24 02:44:47.017787000 +0000
++++ third_party/blink/renderer/platform/wtf/math_extras.h
+@@ -128,6 +128,10 @@ constexpr float Grad2turn(float g) {
+ return g * (1.0f / 400.0f);
+ }
+
++#if defined(OS_FREEBSD)
++#pragma clang diagnostic push
++#pragma clang diagnostic ignored "-Winvalid-constexpr"
++#endif
+ constexpr double RoundHalfTowardsPositiveInfinity(double value) {
+ return std::floor(value + 0.5);
+ }
+@@ -135,6 +139,9 @@ constexpr double RoundHalfTowardsPositiv
+ constexpr float RoundHalfTowardsPositiveInfinity(float value) {
+ return std::floor(value + 0.5f);
+ }
++#if defined(OS_FREEBSD)
++#pragma clang diagnostic pop
++#endif
+
+ // ClampTo() is implemented by templated helper classes (to allow for partial
+ // template specialization) as well as several helper functions.
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_wtf_stack__util.cc b/chromium/patches/patch-third__party_blink_renderer_platform_wtf_stack__util.cc
index 2df2694764..3fb5012d6a 100644
--- a/chromium/patches/patch-third__party_blink_renderer_platform_wtf_stack__util.cc
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_wtf_stack__util.cc
@@ -1,36 +1,82 @@
$NetBSD$
---- third_party/blink/renderer/platform/wtf/stack_util.cc.orig 2020-07-15 18:56:04.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/wtf/stack_util.cc.orig 2024-07-24 02:44:47.021787400 +0000
+++ third_party/blink/renderer/platform/wtf/stack_util.cc
-@@ -18,6 +18,13 @@
+@@ -19,6 +19,13 @@
extern "C" void* __libc_stack_end; // NOLINT
#endif
-+#if defined(OS_FREEBSD)
++#if BUILDFLAG(IS_BSD)
++#include <sys/signal.h>
++#if !BUILDFLAG(IS_NETBSD)
+#include <pthread_np.h>
+#endif
-+#if defined(OS_BSD)
-+#include <sys/signal.h>
+#endif
+
namespace WTF {
size_t GetUnderestimatedStackSize() {
-@@ -29,7 +36,7 @@ size_t GetUnderestimatedStackSize() {
- // FIXME: On Mac OSX and Linux, this method cannot estimate stack size
+@@ -31,7 +38,8 @@ size_t GetUnderestimatedStackSize() {
// correctly for the main thread.
--#elif defined(__GLIBC__) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \
-+#elif defined(__GLIBC__) || defined(OS_ANDROID) || defined(OS_BSD) || \
- defined(OS_FUCHSIA)
+ #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_FUCHSIA) || \
++ BUILDFLAG(IS_NETBSD)
// pthread_getattr_np() can fail if the thread is not invoked by
// pthread_create() (e.g., the main thread of blink_unittests).
-@@ -97,7 +104,7 @@ return Threading::ThreadStackSize();
- }
+ // If so, a conservative size estimate is returned.
+@@ -52,7 +60,7 @@ size_t GetUnderestimatedStackSize() {
+ pthread_attr_destroy(&attr);
+ return size;
+ }
+-#if BUILDFLAG(IS_FREEBSD)
++#if BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
+ pthread_attr_destroy(&attr);
+ #endif
+
+@@ -63,6 +71,8 @@ size_t GetUnderestimatedStackSize() {
+ // low as 512k.
+ //
+ return 512 * 1024;
++#elif BUILDFLAG(IS_OPENBSD)
++ return 512 * 1024;
+ #elif BUILDFLAG(IS_APPLE)
+ // pthread_get_stacksize_np() returns too low a value for the main thread on
+ // OSX 10.9,
+@@ -99,7 +109,7 @@ size_t GetUnderestimatedStackSize() {
void* GetStackStart() {
--#if defined(__GLIBC__) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \
-+#if defined(__GLIBC__) || defined(OS_ANDROID) || defined(OS_BSD) || \
- defined(OS_FUCHSIA)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+- BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_NETBSD)
pthread_attr_t attr;
int error;
+ #if BUILDFLAG(IS_FREEBSD)
+@@ -116,7 +126,7 @@ void* GetStackStart() {
+ pthread_attr_destroy(&attr);
+ return reinterpret_cast<uint8_t*>(base) + size;
+ }
+-#if BUILDFLAG(IS_FREEBSD)
++#if BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
+ pthread_attr_destroy(&attr);
+ #endif
+ #if defined(__GLIBC__)
+@@ -150,6 +160,13 @@ void* GetStackStart() {
+ ::GetCurrentThreadStackLimits(&lowLimit, &highLimit);
+ return reinterpret_cast<void*>(highLimit);
+ #endif
++#elif BUILDFLAG(IS_OPENBSD)
++ stack_t ss;
++ void *base;
++ int error = pthread_stackseg_np(pthread_self(), &ss);
++ CHECK(!error);
++ base = (void*)((size_t) ss.ss_sp - ss.ss_size);
++ return reinterpret_cast<uint8_t*>(base) + ss.ss_size;
+ #else
+ #error Unsupported getStackStart on this platform.
+ #endif
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_wtf_text_text__codec__icu.cc b/chromium/patches/patch-third__party_blink_renderer_platform_wtf_text_text__codec__icu.cc
new file mode 100644
index 0000000000..9f68026ec9
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_wtf_text_text__codec__icu.cc
@@ -0,0 +1,24 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc.orig 2024-07-24 02:44:47.029788000 +0000
++++ third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc
+@@ -610,6 +610,7 @@ static void GbkUrlEscapedEntityCallack(
+ code_point, reason, err);
+ }
+
++#if !BUILDFLAG(IS_BSD)
+ static void GbkCallbackSubstitute(const void* context,
+ UConverterFromUnicodeArgs* from_unicode_args,
+ const UChar* code_units,
+@@ -627,6 +628,7 @@ static void GbkCallbackSubstitute(const
+ UCNV_FROM_U_CALLBACK_SUBSTITUTE(context, from_unicode_args, code_units,
+ length, code_point, reason, err);
+ }
++#endif
+ #endif // USING_SYSTEM_ICU
+
+ static void NotReachedEntityCallback(const void* context,
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_wtf_thread__specific.h b/chromium/patches/patch-third__party_blink_renderer_platform_wtf_thread__specific.h
new file mode 100644
index 0000000000..4f7660cb14
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_wtf_thread__specific.h
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/wtf/thread_specific.h.orig 2024-07-24 02:44:47.033788400 +0000
++++ third_party/blink/renderer/platform/wtf/thread_specific.h
+@@ -104,7 +104,8 @@ inline bool ThreadSpecific<T>::IsSet() {
+ template <typename T>
+ inline ThreadSpecific<T>::operator T*() {
+ T* off_thread_ptr;
+-#if defined(__GLIBC__) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FREEBSD)
++#if defined(__GLIBC__) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FREEBSD) || \
++ BUILDFLAG(IS_NETBSD)
+ // TLS is fast on these platforms.
+ // TODO(csharrison): Qualify this statement for Android.
+ const bool kMainThreadAlwaysChecksTLS = true;
diff --git a/chromium/patches/patch-third__party_boringssl_BUILD.gn b/chromium/patches/patch-third__party_boringssl_BUILD.gn
deleted file mode 100644
index 26b936ca57..0000000000
--- a/chromium/patches/patch-third__party_boringssl_BUILD.gn
+++ /dev/null
@@ -1,46 +0,0 @@
-$NetBSD$
-
---- third_party/boringssl/BUILD.gn.orig 2020-07-15 18:56:30.000000000 +0000
-+++ third_party/boringssl/BUILD.gn
-@@ -35,7 +35,6 @@ config("internal_config") {
- ]
- if (is_posix || is_fuchsia) {
- cflags_c = [ "-std=c99" ]
-- defines += [ "_XOPEN_SOURCE=700" ]
- }
- }
-
-@@ -72,7 +71,7 @@ if (is_win && !is_msan && current_cpu !=
- } else if (current_cpu == "x64") {
- if (is_mac) {
- sources += crypto_sources_mac_x86_64
-- } else if (is_linux || is_android) {
-+ } else if (is_linux || is_android || is_bsd) {
- sources += crypto_sources_linux_x86_64
- } else {
- public_configs = [ ":no_asm_config" ]
-@@ -80,13 +79,13 @@ if (is_win && !is_msan && current_cpu !=
- } else if (current_cpu == "x86") {
- if (is_mac) {
- sources += crypto_sources_mac_x86
-- } else if (is_linux || is_android) {
-+ } else if (is_linux || is_android || is_bsd) {
- sources += crypto_sources_linux_x86
- } else {
- public_configs = [ ":no_asm_config" ]
- }
- } else if (current_cpu == "arm") {
-- if (is_linux || is_android) {
-+ if (is_linux || is_android || is_bsd) {
- sources += crypto_sources_linux_arm
- } else if (is_ios) {
- sources += crypto_sources_ios_arm
-@@ -94,7 +93,7 @@ if (is_win && !is_msan && current_cpu !=
- public_configs = [ ":no_asm_config" ]
- }
- } else if (current_cpu == "arm64") {
-- if (is_linux || is_android) {
-+ if (is_linux || is_android || is_bsd) {
- sources += crypto_sources_linux_aarch64
- } else if (is_ios) {
- sources += crypto_sources_ios_aarch64
diff --git a/chromium/patches/patch-third__party_boringssl_src_crypto_bio_socket__helper.c b/chromium/patches/patch-third__party_boringssl_src_crypto_bio_socket__helper.c
deleted file mode 100644
index 66e2ef755e..0000000000
--- a/chromium/patches/patch-third__party_boringssl_src_crypto_bio_socket__helper.c
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
---- third_party/boringssl/src/crypto/bio/socket_helper.c.orig 2020-07-15 19:01:31.000000000 +0000
-+++ third_party/boringssl/src/crypto/bio/socket_helper.c
-@@ -12,8 +12,8 @@
- * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
-
--#undef _POSIX_C_SOURCE
--#define _POSIX_C_SOURCE 200112L
-+//#undef _POSIX_C_SOURCE
-+//#define _POSIX_C_SOURCE 200112L
-
- #include <openssl/bio.h>
- #include <openssl/err.h>
diff --git a/chromium/patches/patch-third__party_boringssl_src_crypto_ex__data.c b/chromium/patches/patch-third__party_boringssl_src_crypto_ex__data.c
deleted file mode 100644
index f4da037163..0000000000
--- a/chromium/patches/patch-third__party_boringssl_src_crypto_ex__data.c
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
---- third_party/boringssl/src/crypto/ex_data.c.orig 2020-07-15 19:01:32.000000000 +0000
-+++ third_party/boringssl/src/crypto/ex_data.c
-@@ -186,7 +186,9 @@ int CRYPTO_set_ex_data(CRYPTO_EX_DATA *a
- }
- }
-
-- sk_void_set(ad->sk, index, val);
-+ // expression result unused; should this cast be to 'void'?
-+ // seems it should, feel free to investigate those #def
-+ (void) sk_void_set(ad->sk, index, val);
- return 1;
- }
-
diff --git a/chromium/patches/patch-third__party_boringssl_src_include_openssl_thread.h b/chromium/patches/patch-third__party_boringssl_src_include_openssl_thread.h
deleted file mode 100644
index 3efe0233d4..0000000000
--- a/chromium/patches/patch-third__party_boringssl_src_include_openssl_thread.h
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD$
-
-https://bugs.chromium.org/p/boringssl/issues/detail?id=482
-
---- third_party/boringssl/src/include/openssl/thread.h.orig 2020-06-25 09:34:42.000000000 +0000
-+++ third_party/boringssl/src/include/openssl/thread.h
-@@ -88,6 +88,9 @@ typedef pthread_rwlock_t CRYPTO_MUTEX;
- typedef union crypto_mutex_st {
- double alignment;
- uint8_t padding[3*sizeof(int) + 5*sizeof(unsigned) + 16 + 8];
-+#if defined(__NetBSD__)
-+ uint8_t nbpad[64 + 8];
-+#endif
- } CRYPTO_MUTEX;
- #endif
-
diff --git a/chromium/patches/patch-third__party_breakpad_BUILD.gn b/chromium/patches/patch-third__party_breakpad_BUILD.gn
deleted file mode 100644
index c5f34af520..0000000000
--- a/chromium/patches/patch-third__party_breakpad_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/breakpad/BUILD.gn.orig 2020-06-25 09:32:02.000000000 +0000
-+++ third_party/breakpad/BUILD.gn
-@@ -465,7 +465,7 @@ if (is_mac) {
- }
- }
-
--if (is_linux || is_android) {
-+if (is_linux || is_android || is_bsd) {
- if (current_toolchain == host_toolchain) {
- executable("symupload") {
- sources = [
diff --git a/chromium/patches/patch-third__party_breakpad_breakpad_src_common_simple__string__dictionary.h b/chromium/patches/patch-third__party_breakpad_breakpad_src_common_simple__string__dictionary.h
deleted file mode 100644
index 42f6a11fe3..0000000000
--- a/chromium/patches/patch-third__party_breakpad_breakpad_src_common_simple__string__dictionary.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/breakpad/breakpad/src/common/simple_string_dictionary.h.orig 2020-07-15 19:01:31.000000000 +0000
-+++ third_party/breakpad/breakpad/src/common/simple_string_dictionary.h
-@@ -33,7 +33,7 @@
- #include <assert.h>
- #include <string.h>
-
--#include "common/basictypes.h"
-+#include "third_party/breakpad/breakpad/src/common/basictypes.h"
-
- namespace google_breakpad {
-
diff --git a/chromium/patches/patch-third__party_brotli_common_platform.h b/chromium/patches/patch-third__party_brotli_common_platform.h
new file mode 100644
index 0000000000..1c78738b2b
--- /dev/null
+++ b/chromium/patches/patch-third__party_brotli_common_platform.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/brotli/common/platform.h.orig 2024-07-24 02:45:04.211452200 +0000
++++ third_party/brotli/common/platform.h
+@@ -28,7 +28,7 @@
+ #include <brotli/port.h>
+ #include <brotli/types.h>
+
+-#if defined(OS_LINUX) || defined(OS_CYGWIN) || defined(__EMSCRIPTEN__)
++#if defined(OS_LINUX) || defined(OS_CYGWIN) || defined(__EMSCRIPTEN__) || defined(OS_BSD)
+ #include <endian.h>
+ #elif defined(OS_FREEBSD)
+ #include <machine/endian.h>
diff --git a/chromium/patches/patch-third__party_brotli_common_transform.c b/chromium/patches/patch-third__party_brotli_common_transform.c
deleted file mode 100644
index cc044f1a28..0000000000
--- a/chromium/patches/patch-third__party_brotli_common_transform.c
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/brotli/common/transform.c.orig 2020-06-25 09:32:02.000000000 +0000
-+++ third_party/brotli/common/transform.c
-@@ -24,7 +24,7 @@ static const char kPrefixSuffix[217] =
- /* 8x _0 _ _3 _8 _C _E _ _1 _7 _F */
- " not \3er \3al \4ful \4ive \5less \4es"
- /* Ax _5 _9 _D _2 _7 _D */
-- "t \4ize \2\xc2\xa0\4ous \5 the \2e \0";
-+ "t \4ize \2\xc2\xa0\4ous \5 the \2e ";
- /* Cx _2 _7___ ___ _A _F _5 _8 */
-
- static const uint16_t kPrefixSuffixMap[50] = {
diff --git a/chromium/patches/patch-third__party_cacheinvalidation_src_google_cacheinvalidation_include_types.h b/chromium/patches/patch-third__party_cacheinvalidation_src_google_cacheinvalidation_include_types.h
deleted file mode 100644
index b48c801e83..0000000000
--- a/chromium/patches/patch-third__party_cacheinvalidation_src_google_cacheinvalidation_include_types.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/cacheinvalidation/src/google/cacheinvalidation/include/types.h.orig 2020-07-15 18:56:49.000000000 +0000
-+++ third_party/cacheinvalidation/src/google/cacheinvalidation/include/types.h
-@@ -335,6 +335,8 @@ class Status {
- PERMANENT_FAILURE
- };
-
-+ Status() : code_(SUCCESS), message_() {}
-+
- /* Creates a new Status object given the code and message. */
- Status(Code code, const string& message) : code_(code), message_(message) {}
-
diff --git a/chromium/patches/patch-third__party_closure__compiler_compile__js.gni b/chromium/patches/patch-third__party_closure__compiler_compile__js.gni
deleted file mode 100644
index f50e394a0c..0000000000
--- a/chromium/patches/patch-third__party_closure__compiler_compile__js.gni
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/closure_compiler/compile_js.gni.orig 2020-07-15 18:56:30.000000000 +0000
-+++ third_party/closure_compiler/compile_js.gni
-@@ -8,7 +8,7 @@ declare_args() {
- # Enable closure type-checking for Chrome's web technology-based UI. This
- # enables the webui_closure_compile target which does a no-op without this
- # flag enabled. Requires Java.
-- enable_js_type_check = is_chromeos || is_linux || is_android
-+ enable_js_type_check = is_chromeos || is_linux || is_android || is_bsd
- }
-
- script_path = "//third_party/closure_compiler"
diff --git a/chromium/patches/patch-third__party_cpuinfo_cpuinfo.gni b/chromium/patches/patch-third__party_cpuinfo_cpuinfo.gni
new file mode 100644
index 0000000000..8c5afbd91f
--- /dev/null
+++ b/chromium/patches/patch-third__party_cpuinfo_cpuinfo.gni
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/cpuinfo/cpuinfo.gni.orig 2024-07-24 02:45:04.339464700 +0000
++++ third_party/cpuinfo/cpuinfo.gni
+@@ -8,7 +8,7 @@ use_cpuinfo =
+ current_cpu != "s390" && current_cpu != "s390x" &&
+ current_cpu != "riscv64" &&
+ # cpuinfo is not supported on fuchsia.
+- !is_fuchsia &&
++ !is_fuchsia && !is_bsd &&
+ # There's a few arm architectures that are not supported by cpuinfo,
+ # especially amongst ChromeOS devices.
+ # See //third_party/cpuinfo/src/src/arm/linux/cp.h.
diff --git a/chromium/patches/patch-third__party_crashpad_crashpad_build_crashpad__buildconfig.gni b/chromium/patches/patch-third__party_crashpad_crashpad_build_crashpad__buildconfig.gni
index 53b102f1b9..f40dcea1b4 100644
--- a/chromium/patches/patch-third__party_crashpad_crashpad_build_crashpad__buildconfig.gni
+++ b/chromium/patches/patch-third__party_crashpad_crashpad_build_crashpad__buildconfig.gni
@@ -1,22 +1,17 @@
$NetBSD$
---- third_party/crashpad/crashpad/build/crashpad_buildconfig.gni.orig 2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/crashpad/crashpad/build/crashpad_buildconfig.gni.orig 2024-07-24 02:45:04.339464700 +0000
+++ third_party/crashpad/crashpad/build/crashpad_buildconfig.gni
-@@ -41,6 +41,8 @@ if (crashpad_is_in_chromium) {
- crashpad_is_linux = is_linux
+@@ -61,7 +61,7 @@ if (crashpad_is_in_chromium) {
+ crashpad_is_ios = is_ios
+ crashpad_is_apple = is_apple
+ crashpad_is_win = is_win
+- crashpad_is_linux = is_linux || is_chromeos
++ crashpad_is_linux = (is_linux || is_chromeos) && !is_bsd
crashpad_is_android = is_android
crashpad_is_fuchsia = is_fuchsia
-+ crashpad_is_bsd = is_bsd
-+ crashpad_is_netbsd = is_netbsd
-
- crashpad_is_posix = is_posix
-
-@@ -62,6 +64,8 @@ if (crashpad_is_in_chromium) {
- crashpad_is_linux = mini_chromium_is_linux
- crashpad_is_android = mini_chromium_is_android
- crashpad_is_fuchsia = mini_chromium_is_fuchsia
-+ crashpad_is_bsd = mini_chromium_is_bsd
-+ crashpad_is_netbsd = is_netbsd
-
- crashpad_is_posix = mini_chromium_is_posix
diff --git a/chromium/patches/patch-third__party_crashpad_crashpad_client_BUILD.gn b/chromium/patches/patch-third__party_crashpad_crashpad_client_BUILD.gn
index 124acaedf4..dde6db1925 100644
--- a/chromium/patches/patch-third__party_crashpad_crashpad_client_BUILD.gn
+++ b/chromium/patches/patch-third__party_crashpad_crashpad_client_BUILD.gn
@@ -1,11 +1,16 @@
$NetBSD$
---- third_party/crashpad/crashpad/client/BUILD.gn.orig 2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/crashpad/crashpad/client/BUILD.gn.orig 2024-07-24 02:45:04.339464700 +0000
+++ third_party/crashpad/crashpad/client/BUILD.gn
-@@ -78,6 +78,12 @@ static_library("client") {
- sources += [ "crashpad_client_fuchsia.cc" ]
+@@ -137,6 +137,13 @@ static_library("common") {
+ if (crashpad_is_win) {
+ sources += [ "crash_report_database_win.cc" ]
}
-
++
+ if (crashpad_is_posix) {
+ sources += [
+ "crashpad_client_posix.cc",
@@ -13,5 +18,5 @@ $NetBSD$
+ }
+
if (crashpad_is_linux || crashpad_is_android || crashpad_is_fuchsia) {
- sources += [ "crash_report_database_generic.cc" ]
- }
+ sources += [
+ "crash_report_database_generic.cc",
diff --git a/chromium/patches/patch-third__party_crashpad_crashpad_client_crashpad__client__posix.cc b/chromium/patches/patch-third__party_crashpad_crashpad_client_crashpad__client__posix.cc
index 597289d388..d00a3ded26 100644
--- a/chromium/patches/patch-third__party_crashpad_crashpad_client_crashpad__client__posix.cc
+++ b/chromium/patches/patch-third__party_crashpad_crashpad_client_crashpad__client__posix.cc
@@ -1,8 +1,12 @@
$NetBSD$
---- third_party/crashpad/crashpad/client/crashpad_client_posix.cc.orig 2020-07-18 10:06:29.144926214 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/crashpad/crashpad/client/crashpad_client_posix.cc.orig 2024-08-01 14:09:00.857856937 +0000
+++ third_party/crashpad/crashpad/client/crashpad_client_posix.cc
-@@ -0,0 +1,38 @@
+@@ -0,0 +1,40 @@
+// Copyright 2017 The Crashpad Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
@@ -20,6 +24,7 @@ $NetBSD$
+#include "client/crashpad_client.h"
+
+#include "base/logging.h"
++#include "base/notreached.h"
+
+namespace crashpad {
+
@@ -35,7 +40,8 @@ $NetBSD$
+ const std::map<std::string, std::string>& annotations,
+ const std::vector<std::string>& arguments,
+ bool restartable,
-+ bool asynchronous_start) {
++ bool asynchronous_start,
++ const std::vector<base::FilePath>& attachments) {
+ NOTREACHED(); // TODO(scottmg): https://crashpad.chromium.org/bug/196
+ return false;
+}
diff --git a/chromium/patches/patch-third__party_crashpad_crashpad_minidump_minidump__misc__info__writer.cc b/chromium/patches/patch-third__party_crashpad_crashpad_minidump_minidump__misc__info__writer.cc
new file mode 100644
index 0000000000..62657aa08e
--- /dev/null
+++ b/chromium/patches/patch-third__party_crashpad_crashpad_minidump_minidump__misc__info__writer.cc
@@ -0,0 +1,21 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc.orig 2024-07-24 02:45:04.363467000 +0000
++++ third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc
+@@ -159,6 +159,12 @@ std::string MinidumpMiscInfoDebugBuildSt
+ static constexpr char kOS[] = "win";
+ #elif BUILDFLAG(IS_FUCHSIA)
+ static constexpr char kOS[] = "fuchsia";
++#elif defined(OS_OPENBSD)
++ static constexpr char kOS[] = "openbsd";
++#elif defined(OS_FREEBSD)
++ static constexpr char kOS[] = "freebsd";
++#elif defined(OS_NETBSD)
++ static constexpr char kOS[] = "netbsd";
+ #else
+ #error define kOS for this operating system
+ #endif
diff --git a/chromium/patches/patch-third__party_crashpad_crashpad_util_misc_address__types.h b/chromium/patches/patch-third__party_crashpad_crashpad_util_misc_address__types.h
index f39148825b..310297d848 100644
--- a/chromium/patches/patch-third__party_crashpad_crashpad_util_misc_address__types.h
+++ b/chromium/patches/patch-third__party_crashpad_crashpad_util_misc_address__types.h
@@ -1,22 +1,26 @@
$NetBSD$
---- third_party/crashpad/crashpad/util/misc/address_types.h.orig 2020-07-15 18:56:30.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/crashpad/crashpad/util/misc/address_types.h.orig 2024-07-24 02:45:04.419472500 +0000
+++ third_party/crashpad/crashpad/util/misc/address_types.h
@@ -25,7 +25,7 @@
#include <mach/mach_types.h>
- #elif defined(OS_WIN)
+ #elif BUILDFLAG(IS_WIN)
#include "util/win/address_types.h"
--#elif defined(OS_LINUX) || defined(OS_ANDROID)
-+#elif defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
#include "util/linux/address_types.h"
- #elif defined(OS_FUCHSIA)
+ #elif BUILDFLAG(IS_FUCHSIA)
#include <zircon/types.h>
@@ -55,7 +55,7 @@ using VMSize = mach_vm_size_t;
using VMAddress = WinVMAddress;
using VMSize = WinVMSize;
--#elif defined(OS_LINUX) || defined(OS_ANDROID)
-+#elif defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
using VMAddress = LinuxVMAddress;
using VMSize = LinuxVMSize;
diff --git a/chromium/patches/patch-third__party_crashpad_crashpad_util_misc_capture__context.h b/chromium/patches/patch-third__party_crashpad_crashpad_util_misc_capture__context.h
index c8759e102c..ddc66b16f3 100644
--- a/chromium/patches/patch-third__party_crashpad_crashpad_util_misc_capture__context.h
+++ b/chromium/patches/patch-third__party_crashpad_crashpad_util_misc_capture__context.h
@@ -1,22 +1,28 @@
$NetBSD$
---- third_party/crashpad/crashpad/util/misc/capture_context.h.orig 2020-07-15 18:56:30.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/crashpad/crashpad/util/misc/capture_context.h.orig 2024-07-24 02:45:04.419472500 +0000
+++ third_party/crashpad/crashpad/util/misc/capture_context.h
-@@ -21,7 +21,7 @@
+@@ -21,7 +21,8 @@
#include <mach/mach.h>
- #elif defined(OS_WIN)
+ #elif BUILDFLAG(IS_WIN)
#include <windows.h>
--#elif defined(OS_LINUX) || defined(OS_ANDROID)
-+#elif defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
++ BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
#include <ucontext.h>
- #elif defined(OS_FUCHSIA)
- #include <signal.h>
-@@ -37,7 +37,7 @@ using NativeCPUContext = arm_unified_thr
+ #endif // BUILDFLAG(IS_APPLE)
+
+@@ -35,7 +36,8 @@ using NativeCPUContext = arm_unified_thr
#endif
- #elif defined(OS_WIN)
+ #elif BUILDFLAG(IS_WIN)
using NativeCPUContext = CONTEXT;
--#elif defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FUCHSIA)
-+#elif defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FUCHSIA) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
++ BUILDFLAG(IS_BSD)
using NativeCPUContext = ucontext_t;
- #endif // OS_MACOSX
+ #endif // BUILDFLAG(IS_APPLE)
diff --git a/chromium/patches/patch-third__party_crashpad_crashpad_util_misc_metrics.cc b/chromium/patches/patch-third__party_crashpad_crashpad_util_misc_metrics.cc
index 089fcd6e3c..9312f4816d 100644
--- a/chromium/patches/patch-third__party_crashpad_crashpad_util_misc_metrics.cc
+++ b/chromium/patches/patch-third__party_crashpad_crashpad_util_misc_metrics.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- third_party/crashpad/crashpad/util/misc/metrics.cc.orig 2020-07-15 18:56:30.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/crashpad/crashpad/util/misc/metrics.cc.orig 2024-07-24 02:45:04.423473000 +0000
+++ third_party/crashpad/crashpad/util/misc/metrics.cc
@@ -25,7 +25,7 @@
#define METRICS_OS_NAME "Win"
- #elif defined(OS_ANDROID)
+ #elif BUILDFLAG(IS_ANDROID)
#define METRICS_OS_NAME "Android"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#define METRICS_OS_NAME "Linux"
- #elif defined(OS_FUCHSIA)
+ #elif BUILDFLAG(IS_FUCHSIA)
#define METRICS_OS_NAME "Fuchsia"
diff --git a/chromium/patches/patch-third__party_crashpad_crashpad_util_misc_uuid.cc b/chromium/patches/patch-third__party_crashpad_crashpad_util_misc_uuid.cc
index c832279ff8..6ec0caa535 100644
--- a/chromium/patches/patch-third__party_crashpad_crashpad_util_misc_uuid.cc
+++ b/chromium/patches/patch-third__party_crashpad_crashpad_util_misc_uuid.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- third_party/crashpad/crashpad/util/misc/uuid.cc.orig 2020-07-15 18:56:30.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/crashpad/crashpad/util/misc/uuid.cc.orig 2024-07-24 02:45:04.423473000 +0000
+++ third_party/crashpad/crashpad/util/misc/uuid.cc
-@@ -94,7 +94,7 @@ bool UUID::InitializeWithNew() {
+@@ -110,7 +110,7 @@ bool UUID::InitializeWithNew() {
InitializeFromBytes(uuid);
return true;
- #elif defined(OS_WIN) || defined(OS_LINUX) || defined(OS_ANDROID) || \
-- defined(OS_FUCHSIA)
-+ defined(OS_FUCHSIA) || defined(OS_BSD)
+ #elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
// Linux, Android, and Fuchsia do not provide a UUID generator in a
// widely-available system library. On Linux and Android, uuid_generate()
// from libuuid is not available everywhere.
diff --git a/chromium/patches/patch-third__party_crashpad_crashpad_util_posix_close__multiple.cc b/chromium/patches/patch-third__party_crashpad_crashpad_util_posix_close__multiple.cc
index a108e229c2..d45f0787d5 100644
--- a/chromium/patches/patch-third__party_crashpad_crashpad_util_posix_close__multiple.cc
+++ b/chromium/patches/patch-third__party_crashpad_crashpad_util_posix_close__multiple.cc
@@ -1,22 +1,17 @@
$NetBSD$
---- third_party/crashpad/crashpad/util/posix/close_multiple.cc.orig 2020-07-15 18:56:30.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/crashpad/crashpad/util/posix/close_multiple.cc.orig 2024-07-24 02:45:04.427473300 +0000
+++ third_party/crashpad/crashpad/util/posix/close_multiple.cc
-@@ -31,7 +31,7 @@
- #include "util/file/directory_reader.h"
- #include "util/misc/implicit_cast.h"
-
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_BSD)
- #include <sys/sysctl.h>
- #endif
-
-@@ -72,7 +72,7 @@ void CloseNowOrOnExec(int fd, bool ebadf
+@@ -73,7 +73,7 @@ void CloseNowOrOnExec(int fd, bool ebadf
// This is an advantage over looping over all possible file descriptors, because
// no attempt needs to be made to close file descriptors that are not open.
bool CloseMultipleNowOrOnExecUsingFDDir(int min_fd, int preserve_fd) {
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_APPLE)
++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
static constexpr char kFDDir[] = "/dev/fd";
- #elif defined(OS_LINUX) || defined(OS_ANDROID)
+ #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
static constexpr char kFDDir[] = "/proc/self/fd";
diff --git a/chromium/patches/patch-third__party_crashpad_crashpad_util_posix_drop__privileges.cc b/chromium/patches/patch-third__party_crashpad_crashpad_util_posix_drop__privileges.cc
index dc09f51520..2cca85dd78 100644
--- a/chromium/patches/patch-third__party_crashpad_crashpad_util_posix_drop__privileges.cc
+++ b/chromium/patches/patch-third__party_crashpad_crashpad_util_posix_drop__privileges.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- third_party/crashpad/crashpad/util/posix/drop_privileges.cc.orig 2020-07-15 18:56:30.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/crashpad/crashpad/util/posix/drop_privileges.cc.orig 2024-07-24 02:45:04.427473300 +0000
+++ third_party/crashpad/crashpad/util/posix/drop_privileges.cc
@@ -25,7 +25,7 @@ void DropPrivileges() {
gid_t gid = getgid();
uid_t uid = getuid();
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_APPLE)
++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
// Based on the POSIX.1-2008 2013 edition documentation for setreuid() and
// setregid(), setreuid() and setregid() alone should be sufficient to drop
// privileges. The standard specifies that the saved ID should be set to the
diff --git a/chromium/patches/patch-third__party_crashpad_crashpad_util_posix_signals.cc b/chromium/patches/patch-third__party_crashpad_crashpad_util_posix_signals.cc
index 2f48998ab7..cf222030dc 100644
--- a/chromium/patches/patch-third__party_crashpad_crashpad_util_posix_signals.cc
+++ b/chromium/patches/patch-third__party_crashpad_crashpad_util_posix_signals.cc
@@ -1,22 +1,39 @@
$NetBSD$
---- third_party/crashpad/crashpad/util/posix/signals.cc.orig 2020-07-15 18:56:30.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/crashpad/crashpad/util/posix/signals.cc.orig 2024-07-24 02:45:04.427473300 +0000
+++ third_party/crashpad/crashpad/util/posix/signals.cc
-@@ -46,7 +46,7 @@ constexpr int kCrashSignals[] = {
+@@ -51,7 +51,7 @@ constexpr int kCrashSignals[] = {
#if defined(SIGEMT)
SIGEMT,
#endif // defined(SIGEMT)
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
SIGXCPU,
SIGXFSZ,
- #endif // defined(OS_LINUX)
-@@ -86,7 +86,7 @@ constexpr int kTerminateSignals[] = {
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+@@ -91,7 +91,7 @@ constexpr int kTerminateSignals[] = {
SIGXCPU,
SIGXFSZ,
- #endif // defined(OS_MACOSX)
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+ #endif // BUILDFLAG(IS_APPLE)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
SIGIO,
- #endif // defined(OS_LINUX)
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
};
+@@ -251,8 +251,12 @@ bool Signals::WillSignalReraiseAutonomou
+ // remains. See 10.12.3 xnu-3789.41.3/bsd/kern/kern_sig.c
+ // psignal_internal().
+ (code > 0 &&
++#if defined(SI_ASYNCIO)
+ code != SI_ASYNCIO &&
++#endif
++#if defined(SI_MESGQ)
+ code != SI_MESGQ &&
++#endif
+ code != SI_QUEUE &&
+ code != SI_TIMER &&
+ code != SI_USER &&
diff --git a/chromium/patches/patch-third__party_crashpad_crashpad_util_posix_symbolic__constants__posix.cc b/chromium/patches/patch-third__party_crashpad_crashpad_util_posix_symbolic__constants__posix.cc
index 2310f21829..68020ff6d8 100644
--- a/chromium/patches/patch-third__party_crashpad_crashpad_util_posix_symbolic__constants__posix.cc
+++ b/chromium/patches/patch-third__party_crashpad_crashpad_util_posix_symbolic__constants__posix.cc
@@ -1,22 +1,26 @@
$NetBSD$
---- third_party/crashpad/crashpad/util/posix/symbolic_constants_posix.cc.orig 2020-07-15 18:56:30.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/crashpad/crashpad/util/posix/symbolic_constants_posix.cc.orig 2024-07-24 02:45:04.431473700 +0000
+++ third_party/crashpad/crashpad/util/posix/symbolic_constants_posix.cc
-@@ -64,7 +64,7 @@ constexpr const char* kSignalNames[] = {
+@@ -67,7 +67,7 @@ constexpr const char* kSignalNames[] = {
"INFO",
"USR1",
"USR2",
--#elif defined(OS_LINUX) || defined(OS_ANDROID)
-+#elif defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
#if defined(ARCH_CPU_MIPS_FAMILY)
"HUP",
"INT",
-@@ -135,7 +135,7 @@ constexpr const char* kSignalNames[] = {
+@@ -138,7 +138,7 @@ constexpr const char* kSignalNames[] = {
#endif // defined(ARCH_CPU_MIPS_FAMILY)
#endif
};
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
// NSIG is 64 to account for real-time signals.
- static_assert(base::size(kSignalNames) == 32, "kSignalNames length");
+ static_assert(std::size(kSignalNames) == 32, "kSignalNames length");
#else
diff --git a/chromium/patches/patch-third__party_crc32c_BUILD.gn b/chromium/patches/patch-third__party_crc32c_BUILD.gn
index c4d09954a6..9fbe6c65c8 100644
--- a/chromium/patches/patch-third__party_crc32c_BUILD.gn
+++ b/chromium/patches/patch-third__party_crc32c_BUILD.gn
@@ -1,13 +1,17 @@
$NetBSD$
---- third_party/crc32c/BUILD.gn.orig 2020-07-15 18:56:30.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/crc32c/BUILD.gn.orig 2024-07-24 02:45:04.439474300 +0000
+++ third_party/crc32c/BUILD.gn
-@@ -47,7 +47,7 @@ config("crc32c_config") {
+@@ -46,7 +46,7 @@ config("crc32c_config") {
}
# Android added <sys/auxv.h> in API level 18.
- if (is_linux || is_chromeos || is_android) {
-+ if (is_linux || is_chromeos || is_android || is_bsd) {
++ if (is_linux || is_chromeos || is_android && !is_bsd) {
defines += [
"HAVE_STRONG_GETAUXVAL=1",
"HAVE_WEAK_GETAUXVAL=1",
diff --git a/chromium/patches/patch-third__party_dav1d_BUILD.gn b/chromium/patches/patch-third__party_dav1d_BUILD.gn
deleted file mode 100644
index 0a9bf15599..0000000000
--- a/chromium/patches/patch-third__party_dav1d_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/dav1d/BUILD.gn.orig 2020-07-15 18:56:49.000000000 +0000
-+++ third_party/dav1d/BUILD.gn
-@@ -113,7 +113,7 @@ if (is_win) {
- if (is_mac) {
- dav1d_copts += [ "-D_DARWIN_C_SOURCE" ]
- }
-- if (is_linux || is_android || current_os == "aix") {
-+ if (is_linux || is_android || current_os == "aix" || is_bsd) {
- if (!is_clang) {
- dav1d_copts += [ "-D_GNU_SOURCE" ]
- }
diff --git a/chromium/patches/patch-third__party_dawn_include_dawn_native_VulkanBackend.h b/chromium/patches/patch-third__party_dawn_include_dawn_native_VulkanBackend.h
new file mode 100644
index 0000000000..268370c3a7
--- /dev/null
+++ b/chromium/patches/patch-third__party_dawn_include_dawn_native_VulkanBackend.h
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/dawn/include/dawn/native/VulkanBackend.h.orig 2024-07-24 02:46:31.139872300 +0000
++++ third_party/dawn/include/dawn/native/VulkanBackend.h
+@@ -83,7 +83,8 @@ struct ExternalImageExportInfoVk : Exter
+ };
+
+ // Can't use DAWN_PLATFORM_IS(LINUX) since header included in both Dawn and Chrome
+-#if defined(__linux__) || defined(__Fuchsia__)
++#if defined(__linux__) || defined(__Fuchsia__) || defined(__OpenBSD__) || defined(__FreeBSD__) || \
++ defined(__NetBSD__)
+
+ // Common properties of external images represented by FDs. On successful import the file
+ // descriptor's ownership is transferred to the Dawn implementation and they shouldn't be
diff --git a/chromium/patches/patch-third__party_dawn_scripts_dawn__component.gni b/chromium/patches/patch-third__party_dawn_scripts_dawn__component.gni
deleted file mode 100644
index 934f7cbd3d..0000000000
--- a/chromium/patches/patch-third__party_dawn_scripts_dawn__component.gni
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/dawn/scripts/dawn_component.gni.orig 2020-07-15 19:01:32.000000000 +0000
-+++ third_party/dawn/scripts/dawn_component.gni
-@@ -63,7 +63,7 @@ template("dawn_component") {
- "@executable_path/",
- ]
- }
-- if (is_linux && dawn_has_build) {
-+ if ((is_linux || is_bsd) && dawn_has_build) {
- configs = [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
- }
- }
diff --git a/chromium/patches/patch-third__party_dawn_scripts_dawn__features.gni b/chromium/patches/patch-third__party_dawn_scripts_dawn__features.gni
deleted file mode 100644
index 2ef724474e..0000000000
--- a/chromium/patches/patch-third__party_dawn_scripts_dawn__features.gni
+++ /dev/null
@@ -1,28 +0,0 @@
-$NetBSD$
-
---- third_party/dawn/scripts/dawn_features.gni.orig 2020-07-15 19:01:32.000000000 +0000
-+++ third_party/dawn/scripts/dawn_features.gni
-@@ -49,7 +49,7 @@ declare_args() {
-
- # Enables the compilation of Dawn's OpenGL backend
- # (best effort, non-conformant)
-- dawn_enable_opengl = is_linux && !is_chromeos
-+ dawn_enable_opengl = (is_linux || is_bsd) && !is_chromeos
-
- # Enables the compilation of Dawn's Vulkan backend
- dawn_enable_vulkan =
-@@ -67,7 +67,7 @@ declare_args() {
- is_debug || (build_with_chromium && use_fuzzing_engine)
-
- # Whether Dawn should enable X11 support.
-- dawn_use_x11 = is_linux && !is_chromeos
-+ dawn_use_x11 = (is_linux || is_bsd) && !is_chromeos
-
- # Enable support WGSL for shaders. Currently this is
- # experimental, and requires dawn_tint_dir to be set.
-@@ -88,4 +88,4 @@ declare_args() {
- }
-
- dawn_supports_glfw_for_windowing =
-- is_win || (is_linux && !is_chromeos) || is_mac
-+ is_win || ((is_linux || is_bsd) && !is_chromeos) || is_mac
diff --git a/chromium/patches/patch-third__party_dawn_src_common_BUILD.gn b/chromium/patches/patch-third__party_dawn_src_common_BUILD.gn
deleted file mode 100644
index dc79003d04..0000000000
--- a/chromium/patches/patch-third__party_dawn_src_common_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/dawn/src/common/BUILD.gn.orig 2020-06-25 09:34:42.000000000 +0000
-+++ third_party/dawn/src/common/BUILD.gn
-@@ -135,7 +135,7 @@ config("dawn_internal") {
- # This GN file is discovered by all Chromium builds, but common doesn't support
- # all of Chromium's OSes so we explicitly make the target visible only on
- # systems we know Dawn is able to compile on.
--if (is_win || is_linux || is_mac || is_fuchsia || is_android) {
-+if (is_win || is_linux || is_mac || is_fuchsia || is_android || is_bsd) {
- static_library("common") {
- sources = [
- "Assert.cpp",
diff --git a/chromium/patches/patch-third__party_dawn_src_dawn_common_Platform.h b/chromium/patches/patch-third__party_dawn_src_dawn_common_Platform.h
new file mode 100644
index 0000000000..02eb0595e1
--- /dev/null
+++ b/chromium/patches/patch-third__party_dawn_src_dawn_common_Platform.h
@@ -0,0 +1,20 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/dawn/src/dawn/common/Platform.h.orig 2024-07-24 02:46:31.147873200 +0000
++++ third_party/dawn/src/dawn/common/Platform.h
+@@ -59,6 +59,11 @@
+ #error "Unsupported Windows platform."
+ #endif
+
++#elif defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
++#define DAWN_PLATFORM_IS_LINUX 1
++#define DAWN_PLATFORM_IS_BSD 1
++#define DAWN_PLATFORM_IS_POSIX 1
++
+ #elif defined(__linux__)
+ #define DAWN_PLATFORM_IS_LINUX 1
+ #define DAWN_PLATFORM_IS_POSIX 1
diff --git a/chromium/patches/patch-third__party_dawn_src_dawn_native_vulkan_BackendVk.cpp b/chromium/patches/patch-third__party_dawn_src_dawn_native_vulkan_BackendVk.cpp
new file mode 100644
index 0000000000..ade57ab673
--- /dev/null
+++ b/chromium/patches/patch-third__party_dawn_src_dawn_native_vulkan_BackendVk.cpp
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp.orig 2024-07-24 02:46:31.219880000 +0000
++++ third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp
+@@ -56,7 +56,7 @@ constexpr char kSwiftshaderLibName[] = "
+ #endif
+
+ #if DAWN_PLATFORM_IS(LINUX)
+-#if DAWN_PLATFORM_IS(ANDROID)
++#if DAWN_PLATFORM_IS(ANDROID) || DAWN_PLATFORM_IS(BSD)
+ constexpr char kVulkanLibName[] = "libvulkan.so";
+ #else
+ constexpr char kVulkanLibName[] = "libvulkan.so.1";
diff --git a/chromium/patches/patch-third__party_dawn_third__party_gn_glfw_BUILD.gn b/chromium/patches/patch-third__party_dawn_third__party_gn_glfw_BUILD.gn
deleted file mode 100644
index 232f58917b..0000000000
--- a/chromium/patches/patch-third__party_dawn_third__party_gn_glfw_BUILD.gn
+++ /dev/null
@@ -1,30 +0,0 @@
-$NetBSD$
-
---- third_party/dawn/third_party/gn/glfw/BUILD.gn.orig 2020-07-15 19:01:33.000000000 +0000
-+++ third_party/dawn/third_party/gn/glfw/BUILD.gn
-@@ -34,7 +34,7 @@ config("glfw_public") {
- defines = [ "_GLFW_COCOA" ]
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- defines = [ "_GLFW_X11" ]
- }
- }
-@@ -89,14 +89,14 @@ static_library("glfw") {
- ]
- }
-
-- if (is_linux || is_mac) {
-+ if (is_linux || is_mac || is_bsd) {
- sources += [
- "${glfw_dir}/src/posix_thread.c",
- "${glfw_dir}/src/posix_thread.h",
- ]
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "${glfw_dir}/src/glx_context.c",
- "${glfw_dir}/src/glx_context.h",
diff --git a/chromium/patches/patch-third__party_devtools-frontend_src_BUILD.gn b/chromium/patches/patch-third__party_devtools-frontend_src_BUILD.gn
deleted file mode 100644
index 8a3c9c78cf..0000000000
--- a/chromium/patches/patch-third__party_devtools-frontend_src_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- third_party/devtools-frontend/src/BUILD.gn.orig 2020-07-15 19:01:33.000000000 +0000
-+++ third_party/devtools-frontend/src/BUILD.gn
-@@ -1749,7 +1749,7 @@ group("devtools_type_check") {
- ]
- }
-
--if (is_linux && !is_chromeos) {
-+if ((is_linux || is_bsd) && !is_chromeos) {
- group("devtools_lint_check") {
- data = [
- # Needed for isolate script to execute.
-@@ -1787,7 +1787,7 @@ group("devtools_closure_compile") {
- ]
- }
-
--if (is_linux && !is_chromeos) {
-+if ((is_linux || is_bsd) && !is_chromeos) {
- group("devtools_eslint") {
- data = [
- # Needed for isolate script to execute.
diff --git a/chromium/patches/patch-third__party_expat_BUILD.gn b/chromium/patches/patch-third__party_expat_BUILD.gn
deleted file mode 100644
index 3a89db1bd8..0000000000
--- a/chromium/patches/patch-third__party_expat_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/expat/BUILD.gn.orig 2020-07-15 18:56:30.000000000 +0000
-+++ third_party/expat/BUILD.gn
-@@ -9,7 +9,7 @@ import("//testing/libfuzzer/fuzzer_test.
- # let's not pull it in twice.
- # Chromecast doesn't ship expat as a system library.
- # Libfuzzer and AFL need to build library from sources.
--if (is_linux && !is_chromecast && !use_fuzzing_engine) {
-+if ((is_linux || is_bsd) && !is_chromecast && !use_fuzzing_engine) {
- config("expat_config") {
- libs = [ "expat" ]
- }
diff --git a/chromium/patches/patch-third__party_ffmpeg_BUILD.gn b/chromium/patches/patch-third__party_ffmpeg_BUILD.gn
new file mode 100644
index 0000000000..bd77736f94
--- /dev/null
+++ b/chromium/patches/patch-third__party_ffmpeg_BUILD.gn
@@ -0,0 +1,16 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/ffmpeg/BUILD.gn.orig 2024-07-24 02:45:26.369598600 +0000
++++ third_party/ffmpeg/BUILD.gn
+@@ -343,7 +343,6 @@ target(link_target_type, "ffmpeg_interna
+ libs += [
+ "m",
+ "z",
+- "rt",
+ ]
+ }
+ if (is_component_ffmpeg) {
diff --git a/chromium/patches/patch-third__party_ffmpeg_ffmpeg__generated.gni b/chromium/patches/patch-third__party_ffmpeg_ffmpeg__generated.gni
deleted file mode 100644
index 681c069bc0..0000000000
--- a/chromium/patches/patch-third__party_ffmpeg_ffmpeg__generated.gni
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/ffmpeg/ffmpeg_generated.gni.orig 2020-07-15 19:01:33.000000000 +0000
-+++ third_party/ffmpeg/ffmpeg_generated.gni
-@@ -12,7 +12,7 @@ ffmpeg_c_sources = []
- ffmpeg_gas_sources = []
- ffmpeg_asm_sources = []
-
--use_linux_config = is_linux || is_fuchsia
-+use_linux_config = is_linux || is_fuchsia || is_bsd
-
- if ((is_android && current_cpu == "arm" && arm_use_neon) || (is_android && current_cpu == "arm64") || (is_android && current_cpu == "x64") || (is_android && current_cpu == "x86") || (is_mac) || (is_win) || (use_linux_config)) {
- ffmpeg_c_sources += [
diff --git a/chromium/patches/patch-third__party_ffmpeg_ffmpeg__options.gni b/chromium/patches/patch-third__party_ffmpeg_ffmpeg__options.gni
deleted file mode 100644
index 086b442be9..0000000000
--- a/chromium/patches/patch-third__party_ffmpeg_ffmpeg__options.gni
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/ffmpeg/ffmpeg_options.gni.orig 2020-07-15 19:01:33.000000000 +0000
-+++ third_party/ffmpeg/ffmpeg_options.gni
-@@ -64,7 +64,7 @@ if (current_cpu == "x86") {
- }
-
- os_config = current_os
--if ((is_linux || is_chromeos) && is_msan) {
-+if ((is_linux || is_chromeos || is_bsd) && is_msan) {
- os_config = "linux-noasm"
- } else if (is_chromeos || is_fuchsia) {
- os_config = "linux"
diff --git a/chromium/patches/patch-third__party_ffmpeg_libavcodec_x86_cabac.h b/chromium/patches/patch-third__party_ffmpeg_libavcodec_x86_cabac.h
new file mode 100644
index 0000000000..2d745896e5
--- /dev/null
+++ b/chromium/patches/patch-third__party_ffmpeg_libavcodec_x86_cabac.h
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/ffmpeg/libavcodec/x86/cabac.h.orig 2024-07-24 02:45:26.949654800 +0000
++++ third_party/ffmpeg/libavcodec/x86/cabac.h
+@@ -31,7 +31,8 @@
+
+ #if (defined(__i386) && defined(__clang__) && (__clang_major__<2 || (__clang_major__==2 && __clang_minor__<10)))\
+ || ( !defined(__clang__) && defined(__llvm__) && __GNUC__==4 && __GNUC_MINOR__==2 && __GNUC_PATCHLEVEL__<=1)\
+- || (defined(__INTEL_COMPILER) && defined(_MSC_VER))
++ || (defined(__INTEL_COMPILER) && defined(_MSC_VER)) \
++ || ((defined(__FreeBSD__) || defined(__OpenBSD__)) && defined(__i386))
+ # define BROKEN_COMPILER 1
+ #else
+ # define BROKEN_COMPILER 0
diff --git a/chromium/patches/patch-third__party_ffmpeg_libavutil_cpu.c b/chromium/patches/patch-third__party_ffmpeg_libavutil_cpu.c
new file mode 100644
index 0000000000..f6dd804f7c
--- /dev/null
+++ b/chromium/patches/patch-third__party_ffmpeg_libavutil_cpu.c
@@ -0,0 +1,20 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/ffmpeg/libavutil/cpu.c.orig 2024-07-24 02:45:27.321690800 +0000
++++ third_party/ffmpeg/libavutil/cpu.c
+@@ -38,10 +38,7 @@
+ #if HAVE_GETPROCESSAFFINITYMASK || HAVE_WINRT
+ #include <windows.h>
+ #endif
+-#if HAVE_SYSCTL
+-#if HAVE_SYS_PARAM_H
+-#include <sys/param.h>
+-#endif
++#if HAVE_SYSCTL && !defined(__OpenBSD__)
+ #include <sys/types.h>
+ #include <sys/sysctl.h>
+ #endif
diff --git a/chromium/patches/patch-third__party_ffmpeg_libavutil_mem.c b/chromium/patches/patch-third__party_ffmpeg_libavutil_mem.c
index 319c97e4a2..ba4f996f33 100644
--- a/chromium/patches/patch-third__party_ffmpeg_libavutil_mem.c
+++ b/chromium/patches/patch-third__party_ffmpeg_libavutil_mem.c
@@ -1,14 +1,18 @@
$NetBSD$
---- third_party/ffmpeg/libavutil/mem.c.orig 2020-07-15 19:01:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/ffmpeg/libavutil/mem.c.orig 2024-07-24 02:45:27.341692700 +0000
+++ third_party/ffmpeg/libavutil/mem.c
-@@ -32,9 +32,6 @@
- #include <stdint.h>
+@@ -33,9 +33,6 @@
#include <stdlib.h>
+ #include <stdatomic.h>
#include <string.h>
-#if HAVE_MALLOC_H
-#include <malloc.h>
-#endif
+ #include "attributes.h"
#include "avassert.h"
- #include "avutil.h"
diff --git a/chromium/patches/patch-third__party_ffmpeg_libavutil_random__seed.c b/chromium/patches/patch-third__party_ffmpeg_libavutil_random__seed.c
new file mode 100644
index 0000000000..ada5abc435
--- /dev/null
+++ b/chromium/patches/patch-third__party_ffmpeg_libavutil_random__seed.c
@@ -0,0 +1,31 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/ffmpeg/libavutil/random_seed.c.orig 2024-07-24 02:45:27.349693500 +0000
++++ third_party/ffmpeg/libavutil/random_seed.c
+@@ -20,6 +20,10 @@
+
+ #include "config.h"
+
++#if defined(__NetBSD__)
++#define _NETBSD_SOURCE 1
++#endif
++
+ #if HAVE_UNISTD_H
+ #include <unistd.h>
+ #endif
+@@ -35,6 +39,11 @@
+ #elif CONFIG_OPENSSL
+ #include <openssl/rand.h>
+ #endif
++#if HAVE_ARC4RANDOM_BUF
++#undef __BSD_VISIBLE
++#define __BSD_VISIBLE 1
++#include <stdlib.h>
++#endif
+ #include <fcntl.h>
+ #include <math.h>
+ #include <time.h>
diff --git a/chromium/patches/patch-third__party_ffmpeg_libavutil_x86_x86inc.asm b/chromium/patches/patch-third__party_ffmpeg_libavutil_x86_x86inc.asm
new file mode 100644
index 0000000000..fd9504cd51
--- /dev/null
+++ b/chromium/patches/patch-third__party_ffmpeg_libavutil_x86_x86inc.asm
@@ -0,0 +1,29 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/ffmpeg/libavutil/x86/x86inc.asm.orig 2024-07-24 02:45:27.365695200 +0000
++++ third_party/ffmpeg/libavutil/x86/x86inc.asm
+@@ -46,6 +46,12 @@
+ %endif
+ %endif
+
++%if ARCH_X86_64
++ %define _CET_ENDBR endbr64
++%else
++ %define _CET_ENDBR
++%endif
++
+ %define WIN64 0
+ %define UNIX64 0
+ %if ARCH_X86_64
+@@ -861,6 +867,7 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle,
+ %endif
+ align function_align
+ %2:
++ _CET_ENDBR
+ RESET_MM_PERMUTATION ; needed for x86-64, also makes disassembly somewhat nicer
+ %xdefine rstk rsp ; copy of the original stack pointer, used when greater alignment than the known stack alignment is required
+ %assign stack_offset 0 ; stack pointer offset relative to the return address
diff --git a/chromium/patches/patch-third__party_flatbuffers_src_src_util.cpp b/chromium/patches/patch-third__party_flatbuffers_src_src_util.cpp
deleted file mode 100644
index f9c3198ccc..0000000000
--- a/chromium/patches/patch-third__party_flatbuffers_src_src_util.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- third_party/flatbuffers/src/src/util.cpp.orig 2020-07-15 19:01:33.000000000 +0000
-+++ third_party/flatbuffers/src/src/util.cpp
-@@ -16,7 +16,7 @@
-
- // clang-format off
- // Dont't remove `format off`, it prevent reordering of win-includes.
--#define _POSIX_C_SOURCE 200112L // For stat from stat/stat.h and fseeko() (POSIX extensions).
-+//#define _POSIX_C_SOURCE 200112L // For stat from stat/stat.h and fseeko() (POSIX extensions).
- #ifdef _WIN32
- # ifndef WIN32_LEAN_AND_MEAN
- # define WIN32_LEAN_AND_MEAN
-@@ -32,7 +32,7 @@
- # include <winbase.h>
- # undef interface // This is also important because of reasons
- #else
--# define _XOPEN_SOURCE 600 // For PATH_MAX from limits.h (SUSv2 extension)
-+//# define _XOPEN_SOURCE 600 // For PATH_MAX from limits.h (SUSv2 extension)
- # include <limits.h>
- #endif
- // clang-format on
diff --git a/chromium/patches/patch-third__party_fontconfig_BUILD.gn b/chromium/patches/patch-third__party_fontconfig_BUILD.gn
deleted file mode 100644
index b8c27702d6..0000000000
--- a/chromium/patches/patch-third__party_fontconfig_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/fontconfig/BUILD.gn.orig 2020-07-15 18:56:30.000000000 +0000
-+++ third_party/fontconfig/BUILD.gn
-@@ -5,7 +5,7 @@
- import("//build/config/sanitizers/sanitizers.gni")
- import("//third_party/fontconfig/fontconfig.gni")
-
--assert(is_linux)
-+assert(is_linux || is_bsd)
-
- if (use_bundled_fontconfig) {
- config("fontconfig_config") {
diff --git a/chromium/patches/patch-third__party_fontconfig_fontconfig.gni b/chromium/patches/patch-third__party_fontconfig_fontconfig.gni
deleted file mode 100644
index 95436f8da8..0000000000
--- a/chromium/patches/patch-third__party_fontconfig_fontconfig.gni
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
---- third_party/fontconfig/fontconfig.gni.orig 2020-07-15 18:56:30.000000000 +0000
-+++ third_party/fontconfig/fontconfig.gni
-@@ -5,8 +5,8 @@
- import("//build/config/chromeos/args.gni")
- import("//build/config/features.gni")
-
--assert(is_linux)
-+assert(is_linux || is_bsd)
-
- declare_args() {
-- use_bundled_fontconfig = is_linux && !is_chromeos_device
-+ use_bundled_fontconfig = (is_linux || is_bsd) && !is_chromeos_device
- }
diff --git a/chromium/patches/patch-third__party_fontconfig_include_config.h b/chromium/patches/patch-third__party_fontconfig_include_config.h
new file mode 100644
index 0000000000..154790f3fc
--- /dev/null
+++ b/chromium/patches/patch-third__party_fontconfig_include_config.h
@@ -0,0 +1,55 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/fontconfig/include/config.h.orig 2024-07-24 02:45:04.467477000 +0000
++++ third_party/fontconfig/include/config.h
+@@ -13,7 +13,7 @@
+
+ #define FC_CACHEDIR "/var/cache/fontconfig"
+
+-#define FC_DEFAULT_FONTS "\t<dir>/usr/share/fonts</dir>\n\t<dir>/usr/local/share/fonts</dir>\n"
++#define FC_DEFAULT_FONTS "\t<dir>/usr/X11R6/lib/X11/fonts</dir>"
+
+ #define FC_FONTPATH ""
+
+@@ -66,7 +66,7 @@
+
+ #define HAVE_MMAP 1
+
+-#define HAVE_POSIX_FADVISE 1
++#define HAVE_POSIX_FADVISE 0
+
+ #define HAVE_PTHREAD 1
+
+@@ -74,10 +74,13 @@
+
+ #define HAVE_RANDOM 1
+
+-#define HAVE_RANDOM_R 1
++/* #undef HAVE_RANDOM_R */
+
+ #define HAVE_RAND_R 1
+
++/* Define to 1 if you have the `arc4_random' function. */
++#define HAVE_ARC4RANDOM 1
++
+ #define HAVE_READLINK 1
+
+ #define HAVE_STDATOMIC_PRIMITIVES 1
+@@ -92,11 +95,11 @@
+
+ #define HAVE_SYS_PARAM_H 1
+
+-#define HAVE_SYS_STATFS_H 1
++/* #undef HAVE_SYS_STATFS_H */
+
+ #define HAVE_SYS_STATVFS_H 1
+
+-#define HAVE_SYS_VFS_H 1
++/* #undef HAVE_SYS_VFS_H */
+
+ #define HAVE_UNISTD_H 1
+
diff --git a/chromium/patches/patch-third__party_fontconfig_src_src_fccompat.c b/chromium/patches/patch-third__party_fontconfig_src_src_fccompat.c
new file mode 100644
index 0000000000..0c0fd5b729
--- /dev/null
+++ b/chromium/patches/patch-third__party_fontconfig_src_src_fccompat.c
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/fontconfig/src/src/fccompat.c.orig 2024-07-24 02:45:26.453606800 +0000
++++ third_party/fontconfig/src/src/fccompat.c
+@@ -184,7 +184,9 @@ FcRandom(void)
+ {
+ int32_t result;
+
+-#if HAVE_RANDOM_R
++#if HAVE_ARC4RANDOM
++ result = arc4random() & 0x7fffffff;
++#elif HAVE_RANDOM_R
+ static struct random_data fcrandbuf;
+ static char statebuf[256];
+ static FcBool initialized = FcFalse;
diff --git a/chromium/patches/patch-third__party_freetype_BUILD.gn b/chromium/patches/patch-third__party_freetype_BUILD.gn
deleted file mode 100644
index b2e5baf1ca..0000000000
--- a/chromium/patches/patch-third__party_freetype_BUILD.gn
+++ /dev/null
@@ -1,20 +0,0 @@
-$NetBSD$
-
---- third_party/freetype/BUILD.gn.orig 2020-07-15 18:56:49.000000000 +0000
-+++ third_party/freetype/BUILD.gn
-@@ -121,13 +121,13 @@ source_set("freetype_source") {
- ]
- }
-
-- if (is_linux || is_chromecast) {
-+ if (is_linux || is_chromecast || is_bsd) {
- # Needed for content_shell on Linux and Chromecast, since fontconfig
- # requires FT_Get_BDF_Property.
- sources += [ "src/src/base/ftbdf.c" ]
- }
-
-- if (is_linux || is_chromecast) {
-+ if (is_linux || is_chromecast || is_bsd) {
- # Needed on Fedora whose libfreetype builds ftsynth.c containing
- # FT_GlyphSlot_Embolden, which we need to replace in content_shell if
- # we are linking against our own FreeType.
diff --git a/chromium/patches/patch-third__party_icu_BUILD.gn b/chromium/patches/patch-third__party_icu_BUILD.gn
deleted file mode 100644
index 2b32faf8fb..0000000000
--- a/chromium/patches/patch-third__party_icu_BUILD.gn
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- third_party/icu/BUILD.gn.orig 2020-06-25 09:34:44.000000000 +0000
-+++ third_party/icu/BUILD.gn
-@@ -92,7 +92,7 @@ config("icu_code") {
- "/wd4267", # Conversion from size_t on 64-bits.
- "/utf-8", # ICU source files are in UTF-8.
- ]
-- } else if (is_linux || is_android) {
-+ } else if (is_linux || is_android || is_bsd) {
- cflags += [
- "-Wno-unused-function",
- ]
-@@ -110,7 +110,7 @@ config("icu_code") {
- "-Wno-unused-variable",
- ]
- }
-- if (is_clang || is_linux || is_android) {
-+ if (is_clang || is_linux || is_android || is_bsd) {
- cflags += [
- # ICU uses its own deprecated functions.
- "-Wno-deprecated-declarations",
-@@ -121,7 +121,7 @@ config("icu_code") {
- # Config used to set default visibility to hidden.
- config("visibility_hidden") {
- cflags = []
-- if (is_mac || is_linux || is_android) {
-+ if (is_mac || is_linux || is_android || is_bsd) {
- cflags += [ "-fvisibility=hidden" ]
- }
- }
diff --git a/chromium/patches/patch-third__party_icu_source_common_putil.cpp b/chromium/patches/patch-third__party_icu_source_common_putil.cpp
deleted file mode 100644
index 7a6e6a2a87..0000000000
--- a/chromium/patches/patch-third__party_icu_source_common_putil.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/icu/source/common/putil.cpp.orig 2020-07-15 19:01:35.000000000 +0000
-+++ third_party/icu/source/common/putil.cpp
-@@ -41,7 +41,7 @@
-
- // Defines _XOPEN_SOURCE for access to POSIX functions.
- // Must be before any other #includes.
--#include "uposixdefs.h"
-+//#include "uposixdefs.h"
-
- // First, the platform type. Need this for U_PLATFORM.
- #include "unicode/platform.h"
diff --git a/chromium/patches/patch-third__party_icu_source_common_umapfile.cpp b/chromium/patches/patch-third__party_icu_source_common_umapfile.cpp
deleted file mode 100644
index cbde1d721c..0000000000
--- a/chromium/patches/patch-third__party_icu_source_common_umapfile.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/icu/source/common/umapfile.cpp.orig 2020-07-15 19:01:35.000000000 +0000
-+++ third_party/icu/source/common/umapfile.cpp
-@@ -19,7 +19,7 @@
- *----------------------------------------------------------------------------*/
- /* Defines _XOPEN_SOURCE for access to POSIX functions.
- * Must be before any other #includes. */
--#include "uposixdefs.h"
-+//#include "uposixdefs.h"
-
- #include "unicode/putil.h"
- #include "unicode/ustring.h"
diff --git a/chromium/patches/patch-third__party_ijar_BUILD.gn b/chromium/patches/patch-third__party_ijar_BUILD.gn
deleted file mode 100644
index 5abb69368d..0000000000
--- a/chromium/patches/patch-third__party_ijar_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/ijar/BUILD.gn.orig 2020-07-15 18:56:30.000000000 +0000
-+++ third_party/ijar/BUILD.gn
-@@ -4,7 +4,7 @@
-
- # A tool that removes all non-interface-specific parts from a .jar file.
-
--if (is_linux) {
-+if (is_linux || is_bsd) {
- executable("ijar") {
- sources = [
- "classfile.cc",
diff --git a/chromium/patches/patch-third__party_ipcz_src_reference__drivers_random.cc b/chromium/patches/patch-third__party_ipcz_src_reference__drivers_random.cc
new file mode 100644
index 0000000000..0c19f0df55
--- /dev/null
+++ b/chromium/patches/patch-third__party_ipcz_src_reference__drivers_random.cc
@@ -0,0 +1,55 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/ipcz/src/reference_drivers/random.cc.orig 2024-07-24 02:45:05.211549300 +0000
++++ third_party/ipcz/src/reference_drivers/random.cc
+@@ -14,7 +14,8 @@
+ #include <windows.h>
+ #elif BUILDFLAG(IS_FUCHSIA)
+ #include <zircon/syscalls.h>
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)) && \
++ !BUILDFLAG(IS_NETBSD)
+ #include <asm/unistd.h>
+ #include <sys/syscall.h>
+ #include <unistd.h>
+@@ -25,7 +26,7 @@
+ #include <nacl/nacl_random.h>
+ #endif
+
+-#if BUILDFLAG(IS_POSIX)
++#if BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_NETBSD)
+ #include <errno.h>
+ #include <fcntl.h>
+ #include <unistd.h>
+@@ -55,7 +56,7 @@ decltype(&ProcessPrng) GetProcessPrng()
+ }
+ #endif
+
+-#if defined(OS_POSIX) && !BUILDFLAG(IS_MAC)
++#if (defined(OS_POSIX) && !BUILDFLAG(IS_MAC)) || BUILDFLAG(IS_NETBSD)
+ void RandomBytesFromDevUrandom(absl::Span<uint8_t> destination) {
+ static int urandom_fd = [] {
+ for (;;) {
+@@ -86,7 +87,8 @@ void RandomBytes(absl::Span<uint8_t> des
+ process_prng_fn(destination.data(), destination.size());
+ #elif BUILDFLAG(IS_FUCHSIA)
+ zx_cprng_draw(destination.data(), destination.size());
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)) && \
++ !BUILDFLAG(IS_NETBSD)
+ while (!destination.empty()) {
+ ssize_t result =
+ syscall(__NR_getrandom, destination.data(), destination.size(), 0);
+@@ -102,7 +104,7 @@ void RandomBytes(absl::Span<uint8_t> des
+ #elif BUILDFLAG(IS_MAC)
+ const bool ok = getentropy(destination.data(), destination.size()) == 0;
+ ABSL_ASSERT(ok);
+-#elif BUILDFLAG(IS_IOS)
++#elif BUILDFLAG(IS_IOS) || BUILDFLAG(IS_NETBSD)
+ RandomBytesFromDevUrandom(destination);
+ #elif BUILDFLAG(IS_NACL)
+ while (!destination.empty()) {
diff --git a/chromium/patches/patch-third__party_ipcz_src_standalone_base_logging.cc b/chromium/patches/patch-third__party_ipcz_src_standalone_base_logging.cc
new file mode 100644
index 0000000000..4e37b8f5b5
--- /dev/null
+++ b/chromium/patches/patch-third__party_ipcz_src_standalone_base_logging.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/ipcz/src/standalone/base/logging.cc.orig 2024-07-24 02:45:05.215549700 +0000
++++ third_party/ipcz/src/standalone/base/logging.cc
+@@ -50,6 +50,9 @@ LogMessage::LogMessage(const char* file,
+ #elif BUILDFLAG(IS_ANDROID)
+ stream_ << getpid() << ":" << gettid() << ":";
+ const char* trimmed_file = strrchr(file, '/') + 1;
++#elif BUILDFLAG(IS_BSD)
++ stream_ << getpid() << ":" << pthread_self() << ":";
++ const char* trimmed_file = strrchr(file, '/') + 1;
+ #elif BUILDFLAG(IS_WIN)
+ const char* trimmed_file = file;
+ stream_ << (::GetCurrentProcessId()) << ":" << ::GetCurrentThreadId() << ":";
diff --git a/chromium/patches/patch-third__party_leveldatabase_env__chromium.cc b/chromium/patches/patch-third__party_leveldatabase_env__chromium.cc
index 9945ac8acd..e9e86077c6 100644
--- a/chromium/patches/patch-third__party_leveldatabase_env__chromium.cc
+++ b/chromium/patches/patch-third__party_leveldatabase_env__chromium.cc
@@ -1,13 +1,18 @@
$NetBSD$
---- third_party/leveldatabase/env_chromium.cc.orig 2020-07-15 18:56:31.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/leveldatabase/env_chromium.cc.orig 2024-07-24 02:45:05.255553500 +0000
+++ third_party/leveldatabase/env_chromium.cc
-@@ -37,7 +37,7 @@
- #include "third_party/leveldatabase/leveldb_chrome.h"
- #include "third_party/leveldatabase/leveldb_features.h"
- #include "third_party/leveldatabase/src/include/leveldb/options.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
+@@ -326,7 +326,8 @@ ChromiumWritableFile::ChromiumWritableFi
- using base::FilePath;
- using base::trace_event::MemoryAllocatorDump;
+ Status ChromiumWritableFile::SyncParent() {
+ TRACE_EVENT0("leveldb", "SyncParent");
+-#if defined(OS_POSIX) || defined(OS_FUCHSIA)
++// pledge violation (directory passed as fd)
++#if (defined(OS_POSIX) || defined(OS_FUCHSIA)) && !defined(OS_OPENBSD)
+ FilePath path = FilePath::FromUTF8Unsafe(parent_dir_);
+ FileErrorOr<base::File> result = filesystem_->OpenFile(
+ path, base::File::FLAG_OPEN | base::File::FLAG_READ);
diff --git a/chromium/patches/patch-third__party_libXNVCtrl_NVCtrl.c b/chromium/patches/patch-third__party_libXNVCtrl_NVCtrl.c
deleted file mode 100644
index 3b6bd0a35a..0000000000
--- a/chromium/patches/patch-third__party_libXNVCtrl_NVCtrl.c
+++ /dev/null
@@ -1,27 +0,0 @@
-$NetBSD$
-
---- third_party/libXNVCtrl/NVCtrl.c.orig 2020-07-15 18:56:31.000000000 +0000
-+++ third_party/libXNVCtrl/NVCtrl.c
-@@ -27,10 +27,6 @@
- * libXNVCtrl library properly protects the Display connection.
- */
-
--#if !defined(XTHREADS)
--#define XTHREADS
--#endif /* XTHREADS */
--
- #define NEED_EVENTS
- #define NEED_REPLIES
- #include <stdint.h>
-@@ -39,6 +35,11 @@
- #include <X11/Xutil.h>
- #include <X11/extensions/Xext.h>
- #include <X11/extensions/extutil.h>
-+
-+#if !defined(XTHREADS)
-+#define XTHREADS
-+#endif /* XTHREADS */
-+
- #include "NVCtrlLib.h"
- #include "nv_control.h"
-
diff --git a/chromium/patches/patch-third__party_libaom_source_libaom_aom__ports_aarch64__cpudetect.c b/chromium/patches/patch-third__party_libaom_source_libaom_aom__ports_aarch64__cpudetect.c
new file mode 100644
index 0000000000..6d67a67abb
--- /dev/null
+++ b/chromium/patches/patch-third__party_libaom_source_libaom_aom__ports_aarch64__cpudetect.c
@@ -0,0 +1,56 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/libaom/source/libaom/aom_ports/aarch64_cpudetect.c.orig 2024-07-24 02:45:29.389891100 +0000
++++ third_party/libaom/source/libaom/aom_ports/aarch64_cpudetect.c
+@@ -99,10 +99,46 @@ static int arm_get_cpu_caps(void) {
+ return flags;
+ }
+
+-#elif defined(__linux__) // end defined(AOM_USE_ANDROID_CPU_FEATURES)
++#elif defined(__OpenBSD__)
++#include <sys/sysctl.h>
++#include <machine/cpu.h>
++#include <machine/armreg.h>
++
++static int arm_get_cpu_caps(void) {
++ int flags = 0;
++ int isar0_mib[] = { CTL_MACHDEP, CPU_ID_AA64ISAR0 };
++ uint64_t cpu_id = 0;
++ size_t len = sizeof(cpu_id);
++
++ flags |= HAS_NEON; // Neon is mandatory in Armv8.0-A.
++
++ if (sysctl(isar0_mib, 2, &cpu_id, &len, NULL, 0) < 0)
++ return flags;
++
++ if (ID_AA64ISAR0_CRC32(cpu_id) >= ID_AA64ISAR0_CRC32_BASE)
++ flags |= HAS_ARM_CRC32;
++
++ return flags;
++}
++
++#elif defined(__linux__) || defined(__FreeBSD__) // end defined(AOM_USE_ANDROID_CPU_FEATURES)
+
+ #include <sys/auxv.h>
+
++#if defined(__FreeBSD__)
++static unsigned long getauxval(unsigned long type)
++{
++ /* Only AT_HWCAP* return unsigned long */
++ if (type != AT_HWCAP && type != AT_HWCAP2) {
++ return 0;
++ }
++
++ unsigned long ret = 0;
++ elf_aux_info(type, &ret, sizeof(ret));
++ return ret;
++}
++#endif
++
+ // Define hwcap values ourselves: building with an old auxv header where these
+ // hwcap values are not defined should not prevent features from being enabled.
+ #define AOM_AARCH64_HWCAP_CRC32 (1 << 7)
diff --git a/chromium/patches/patch-third__party_libc++_src_src_chrono.cpp b/chromium/patches/patch-third__party_libc++_src_src_chrono.cpp
new file mode 100644
index 0000000000..0db36b76ad
--- /dev/null
+++ b/chromium/patches/patch-third__party_libc++_src_src_chrono.cpp
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/libc++/src/src/chrono.cpp.orig 2024-07-24 02:45:27.085668000 +0000
++++ third_party/libc++/src/src/chrono.cpp
+@@ -31,7 +31,8 @@
+ # include <sys/time.h> // for gettimeofday and timeval
+ #endif
+
+-#if defined(__APPLE__) || defined(__gnu_hurd__) || (defined(_POSIX_TIMERS) && _POSIX_TIMERS > 0)
++#if defined(__APPLE__) || defined(__gnu_hurd__) || (defined(_POSIX_TIMERS) && _POSIX_TIMERS > 0) || defined(__OpenBSD__) || \
++ defined(__FreeBSD__) || defined(__NetBSD__)
+ # define _LIBCPP_HAS_CLOCK_GETTIME
+ #endif
+
diff --git a/chromium/patches/patch-third__party_libc++_src_src_filesystem_filesystem__clock.cpp b/chromium/patches/patch-third__party_libc++_src_src_filesystem_filesystem__clock.cpp
new file mode 100644
index 0000000000..c04957fb92
--- /dev/null
+++ b/chromium/patches/patch-third__party_libc++_src_src_filesystem_filesystem__clock.cpp
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/libc++/src/src/filesystem/filesystem_clock.cpp.orig 2024-07-24 02:45:27.085668000 +0000
++++ third_party/libc++/src/src/filesystem/filesystem_clock.cpp
+@@ -29,7 +29,8 @@
+ # include <sys/time.h> // for gettimeofday and timeval
+ #endif
+
+-#if defined(__APPLE__) || defined(__gnu_hurd__) || (defined(_POSIX_TIMERS) && _POSIX_TIMERS > 0)
++#if defined(__APPLE__) || defined(__gnu_hurd__) || (defined(_POSIX_TIMERS) && _POSIX_TIMERS > 0) || defined(__OpenBSD__) || \
++ defined(__FreeBSD__) || defined(__NetBSD__)
+ # define _LIBCPP_HAS_CLOCK_GETTIME
+ #endif
+
diff --git a/chromium/patches/patch-third__party_libc++abi_src_src_cxa__guard__impl.h b/chromium/patches/patch-third__party_libc++abi_src_src_cxa__guard__impl.h
new file mode 100644
index 0000000000..dd808ce6d8
--- /dev/null
+++ b/chromium/patches/patch-third__party_libc++abi_src_src_cxa__guard__impl.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/libc++abi/src/src/cxa_guard_impl.h.orig 2024-07-24 02:45:27.829740000 +0000
++++ third_party/libc++abi/src/src/cxa_guard_impl.h
+@@ -425,6 +425,17 @@ void PlatformFutexWake(int* addr) {
+ __tsan_release(addr);
+ futex(reinterpret_cast<volatile uint32_t*>(addr), WAKE, INT_MAX, NULL, NULL);
+ }
++#elif defined(__NetBSD__)
++void PlatformFutexWait(int* addr, int expect) {
++ constexpr int WAIT = 0;
++ syscall(SYS___futex, addr, WAIT, expect, NULL, NULL, 0, 0);
++ __tsan_acquire(addr);
++}
++void PlatformFutexWake(int* addr) {
++ constexpr int WAKE = 1;
++ __tsan_release(addr);
++ syscall(SYS___futex, addr, WAKE, INT_MAX, NULL, NULL, 0, 0);
++}
+ #elif defined(SYS_futex)
+ void PlatformFutexWait(int* addr, int expect) {
+ constexpr int WAIT = 0;
diff --git a/chromium/patches/patch-third__party_libdrm_BUILD.gn b/chromium/patches/patch-third__party_libdrm_BUILD.gn
deleted file mode 100644
index 7c54539cce..0000000000
--- a/chromium/patches/patch-third__party_libdrm_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/libdrm/BUILD.gn.orig 2020-07-15 18:56:31.000000000 +0000
-+++ third_party/libdrm/BUILD.gn
-@@ -1,7 +1,7 @@
- # Copyright 2016 The Chromium Authors. All rights reserved.
- # Use of this source code is governed by a BSD-style license that can be
- # found in the LICENSE file.
--assert(is_linux)
-+assert(is_linux || is_bsd)
-
- config("libdrm_config") {
- # TODO(thomasanderson): Remove this hack once
diff --git a/chromium/patches/patch-third__party_libdrm_src_xf86drmMode.c b/chromium/patches/patch-third__party_libdrm_src_xf86drmMode.c
new file mode 100644
index 0000000000..a0e84f94d5
--- /dev/null
+++ b/chromium/patches/patch-third__party_libdrm_src_xf86drmMode.c
@@ -0,0 +1,29 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/libdrm/src/xf86drmMode.c.orig 2024-07-24 02:46:53.990085800 +0000
++++ third_party/libdrm/src/xf86drmMode.c
+@@ -966,7 +966,7 @@ drm_public int drmCheckModesettingSuppor
+ }
+ #elif defined(__DragonFly__)
+ return 0;
+-#elif defined(__OpenBSD__)
++#elif defined(__OpenBSD__) || defined(__NetBSD__)
+ int fd;
+ struct drm_mode_card_res res;
+ drmModeResPtr r = 0;
+@@ -1119,7 +1119,11 @@ drm_public int drmModePageFlipTarget(int
+
+ drm_public int drmModeSetPlane(int fd, uint32_t plane_id, uint32_t crtc_id,
+ uint32_t fb_id, uint32_t flags,
++#if defined(__NetBSD__)
++ uint32_t crtc_x, uint32_t crtc_y,
++#else
+ int32_t crtc_x, int32_t crtc_y,
++#endif
+ uint32_t crtc_w, uint32_t crtc_h,
+ uint32_t src_x, uint32_t src_y,
+ uint32_t src_w, uint32_t src_h)
diff --git a/chromium/patches/patch-third__party_libjpeg__turbo_BUILD.gn b/chromium/patches/patch-third__party_libjpeg__turbo_BUILD.gn
deleted file mode 100644
index c1043208f1..0000000000
--- a/chromium/patches/patch-third__party_libjpeg__turbo_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/libjpeg_turbo/BUILD.gn.orig 2020-07-15 19:01:36.000000000 +0000
-+++ third_party/libjpeg_turbo/BUILD.gn
-@@ -128,7 +128,7 @@ if (current_cpu == "x86" || current_cpu
- }
- } else if (is_mac || is_ios) {
- defines += [ "MACHO" ]
-- } else if (is_linux || is_android || is_fuchsia) {
-+ } else if (is_linux || is_android || is_fuchsia || is_bsd) {
- defines += [ "ELF" ]
- }
- }
diff --git a/chromium/patches/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_memory_singleton.h b/chromium/patches/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_memory_singleton.h
index 45ce9a87f5..925d6ac8be 100644
--- a/chromium/patches/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_memory_singleton.h
+++ b/chromium/patches/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_memory_singleton.h
@@ -1,13 +1,18 @@
$NetBSD$
---- third_party/libphonenumber/dist/cpp/src/phonenumbers/base/memory/singleton.h.orig 2020-07-15 19:01:36.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/libphonenumber/dist/cpp/src/phonenumbers/base/memory/singleton.h.orig 2024-07-24 02:46:31.927948700 +0000
+++ third_party/libphonenumber/dist/cpp/src/phonenumbers/base/memory/singleton.h
-@@ -56,7 +56,7 @@ template <class T> boost::once_flag Sing
- #include "phonenumbers/base/logging.h"
- #include "phonenumbers/base/thread_checker.h"
-
--#if !defined(__linux__) && !defined(__APPLE__)
-+#if !defined(__linux__) && !defined(__APPLE__) && !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__)
-
- namespace i18n {
- namespace phonenumbers {
+@@ -22,7 +22,8 @@
+ #elif (__cplusplus >= 201103L) && defined(I18N_PHONENUMBERS_USE_STDMUTEX)
+ // C++11 Lock implementation based on std::mutex.
+ #include "phonenumbers/base/memory/singleton_stdmutex.h"
+-#elif defined(__linux__) || defined(__APPLE__) || defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD)
++#elif defined(__linux__) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__FreeBSD__) || \
++ defined(__NetBSD__) || defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD)
+ #include "phonenumbers/base/memory/singleton_posix.h"
+ #elif defined(WIN32)
+ #include "phonenumbers/base/memory/singleton_win32.h"
diff --git a/chromium/patches/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_synchronization_lock.h b/chromium/patches/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_synchronization_lock.h
index d2c7a50e40..7e7d1975a7 100644
--- a/chromium/patches/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_synchronization_lock.h
+++ b/chromium/patches/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_synchronization_lock.h
@@ -1,13 +1,18 @@
$NetBSD$
---- third_party/libphonenumber/dist/cpp/src/phonenumbers/base/synchronization/lock.h.orig 2020-07-15 19:01:36.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/libphonenumber/dist/cpp/src/phonenumbers/base/synchronization/lock.h.orig 2024-07-24 02:46:31.931949100 +0000
+++ third_party/libphonenumber/dist/cpp/src/phonenumbers/base/synchronization/lock.h
-@@ -63,7 +63,7 @@ private:
- // Dummy lock implementation on non-POSIX platforms. If you are running on a
- // different platform and care about thread-safety, please compile with
- // -DI18N_PHONENUMBERS_USE_BOOST.
--#elif !defined(__linux__) && !defined(__APPLE__)
-+#elif !defined(__linux__) && !defined(__APPLE__) && !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__)
-
- namespace i18n {
- namespace phonenumbers {
+@@ -22,7 +22,8 @@
+ #elif (__cplusplus >= 201103L) && defined(I18N_PHONENUMBERS_USE_STDMUTEX)
+ // C++11 Lock implementation based on std::mutex.
+ #include "phonenumbers/base/synchronization/lock_stdmutex.h"
+-#elif defined(__linux__) || defined(__APPLE__) || defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD)
++#elif defined(__linux__) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__FreeBSD__) || \
++ defined(__NetBSD__) || defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD)
+ #include "phonenumbers/base/synchronization/lock_posix.h"
+ #elif defined(WIN32)
+ #include "phonenumbers/base/synchronization/lock_win32.h"
diff --git a/chromium/patches/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_thread__checker.h b/chromium/patches/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_thread__checker.h
index a353b61cf0..58a3eda6d0 100644
--- a/chromium/patches/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_thread__checker.h
+++ b/chromium/patches/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_thread__checker.h
@@ -1,21 +1,29 @@
$NetBSD$
---- third_party/libphonenumber/dist/cpp/src/phonenumbers/base/thread_checker.h.orig 2020-07-15 19:01:36.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/libphonenumber/dist/cpp/src/phonenumbers/base/thread_checker.h.orig 2024-07-24 02:46:31.931949100 +0000
+++ third_party/libphonenumber/dist/cpp/src/phonenumbers/base/thread_checker.h
-@@ -23,6 +23,7 @@
+@@ -22,8 +22,8 @@
+ // Note that I18N_PHONENUMBERS_NO_THREAD_SAFETY must be defined only to let the
// user of the library know that it can't be used in a thread-safe manner when
// it is not depending on Boost.
- #if !defined(__linux__) && !defined(__APPLE__) && \
-+ !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__) && \
- !defined(I18N_PHONENUMBERS_NO_THREAD_SAFETY)
+-#if !defined(__linux__) && !defined(__APPLE__) && !defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD) && \
+- !defined(I18N_PHONENUMBERS_NO_THREAD_SAFETY) && \
++#if !defined(__linux__) && !defined(__APPLE__) && !defined(__OpenBSD__) && !defined(__FreeBSD__) && !defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD) && \
++ !defined(__NetBSD__) && !defined(I18N_PHONENUMBERS_NO_THREAD_SAFETY) && \
+ !((__cplusplus >= 201103L) && defined(I18N_PHONENUMBERS_USE_STDMUTEX)) && \
+ !defined(WIN32)
#error Building without Boost, please provide \
- -DI18N_PHONENUMBERS_NO_THREAD_SAFETY
-@@ -31,7 +32,7 @@
+@@ -33,7 +33,8 @@
#endif
#if !defined(NDEBUG) && !defined(I18N_PHONENUMBERS_USE_BOOST) && \
-- (defined(__linux__) || defined(__apple__))
-+ (defined(__linux__) || defined(__apple__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__))
+- (defined(__linux__) || defined(__APPLE__) || defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD))
++ (defined(__linux__) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__FreeBSD__) || \
++ defined(__NetBSD__) || defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD))
#include <pthread.h>
diff --git a/chromium/patches/patch-third__party_libpng_pnglibconf.h b/chromium/patches/patch-third__party_libpng_pnglibconf.h
deleted file mode 100644
index 3915476519..0000000000
--- a/chromium/patches/patch-third__party_libpng_pnglibconf.h
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
---- third_party/libpng/pnglibconf.h.orig 2020-07-15 18:56:31.000000000 +0000
-+++ third_party/libpng/pnglibconf.h
-@@ -230,8 +230,10 @@
- * This is necessary to build multiple copies of libpng. We need this while pdfium builds
- * its own copy of libpng.
- */
-+#if 0
- #define PNG_PREFIX
- #include "pngprefix.h"
-+#endif
- /* end of chromium prefixing */
-
- #endif /* PNGLCONF_H */
diff --git a/chromium/patches/patch-third__party_libsync_src_include_sync_sync.h b/chromium/patches/patch-third__party_libsync_src_include_sync_sync.h
new file mode 100644
index 0000000000..bce8437677
--- /dev/null
+++ b/chromium/patches/patch-third__party_libsync_src_include_sync_sync.h
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/libsync/src/include/sync/sync.h.orig 2024-07-24 02:45:54.588332000 +0000
++++ third_party/libsync/src/include/sync/sync.h
+@@ -22,7 +22,9 @@
+ #include <sys/cdefs.h>
+ #include <stdint.h>
+
++#if !defined(__OpenBSD__) && !defined(__FreeBSD__) && !defined(__NetBSD__)
+ #include <linux/types.h>
++#endif
+
+ __BEGIN_DECLS
+
diff --git a/chromium/patches/patch-third__party_libsync_src_sync.c b/chromium/patches/patch-third__party_libsync_src_sync.c
new file mode 100644
index 0000000000..85f63bb2a5
--- /dev/null
+++ b/chromium/patches/patch-third__party_libsync_src_sync.c
@@ -0,0 +1,31 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/libsync/src/sync.c.orig 2024-07-24 02:45:54.588332000 +0000
++++ third_party/libsync/src/sync.c
+@@ -17,8 +17,8 @@
+ */
+
+ #include <fcntl.h>
+-#include <malloc.h>
+ #include <stdint.h>
++#include <stdlib.h>
+ #include <string.h>
+ #include <errno.h>
+ #include <poll.h>
+@@ -29,6 +29,12 @@
+
+ #include <sync/sync.h>
+
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
++typedef __uint8_t __u8;
++typedef __uint32_t __u32;
++typedef __int32_t __s32;
++#define ETIME ETIMEDOUT
++#endif
+
+ struct sw_sync_create_fence_data {
+ __u32 value;
diff --git a/chromium/patches/patch-third__party_libusb_BUILD.gn b/chromium/patches/patch-third__party_libusb_BUILD.gn
new file mode 100644
index 0000000000..97de98b48d
--- /dev/null
+++ b/chromium/patches/patch-third__party_libusb_BUILD.gn
@@ -0,0 +1,58 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/libusb/BUILD.gn.orig 2024-07-24 02:45:05.375565000 +0000
++++ third_party/libusb/BUILD.gn
+@@ -3,7 +3,7 @@
+ # found in the LICENSE file.
+
+ # libusb is only used by //services/device/usb on macOS.
+-assert(is_mac)
++assert(is_mac || is_bsd)
+
+ import("//build/config/chromeos/ui_mode.gni")
+ import("//build/config/features.gni")
+@@ -103,7 +103,7 @@ static_library("libusb") {
+ ]
+ }
+
+- if (is_linux || is_chromeos) {
++ if ((is_linux || is_chromeos) && !is_bsd) {
+ sources += [
+ "src/libusb/os/linux_usbfs.c",
+ "src/libusb/os/linux_usbfs.h",
+@@ -114,11 +114,21 @@ static_library("libusb") {
+ ]
+ }
+
++ if (is_openbsd) {
++ sources += [
++ "src/libusb/os/openbsd_usb.c",
++ ]
++ defines += [
++ "OS_OPENBSD=1",
++ "_GNU_SOURCE=1",
++ ]
++ }
++
+ if (is_chromeos_ash) {
+ defines += [ "USBI_TIMERFD_AVAILABLE" ]
+ }
+
+- if (use_udev) {
++ if (use_udev && !is_bsd) {
+ sources += [ "src/libusb/os/linux_udev.cc" ]
+ defines += [
+ "HAVE_LIBUDEV=1",
+@@ -127,7 +137,7 @@ static_library("libusb") {
+ deps += [ "//build/linux/libudev" ]
+ }
+
+- if ((is_linux || is_chromeos) && !use_udev) {
++ if ((is_linux || is_chromeos) && !use_udev && !is_bsd) {
+ sources += [ "src/libusb/os/linux_netlink.c" ]
+ defines += [ "HAVE_LINUX_NETLINK_H" ]
+ }
diff --git a/chromium/patches/patch-third__party_libusb_src_libusb_core.c b/chromium/patches/patch-third__party_libusb_src_libusb_core.c
new file mode 100644
index 0000000000..7f6c0cae3c
--- /dev/null
+++ b/chromium/patches/patch-third__party_libusb_src_libusb_core.c
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/libusb/src/libusb/core.c.orig 2024-07-24 02:45:05.375565000 +0000
++++ third_party/libusb/src/libusb/core.c
+@@ -448,7 +448,7 @@ libusb_free_device_list(list, 1);
+ * which grows when required. it can be freed once discovery has completed,
+ * eliminating the need for a list node in the libusb_device structure
+ * itself. */
+-#define DISCOVERED_DEVICES_SIZE_STEP 8
++#define DISCOVERED_DEVICES_SIZE_STEP 16
+
+ static struct discovered_devs *discovered_devs_alloc(void)
+ {
diff --git a/chromium/patches/patch-third__party_libusb_src_libusb_os_threads__posix.c b/chromium/patches/patch-third__party_libusb_src_libusb_os_threads__posix.c
new file mode 100644
index 0000000000..8012bd83ed
--- /dev/null
+++ b/chromium/patches/patch-third__party_libusb_src_libusb_os_threads__posix.c
@@ -0,0 +1,30 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/libusb/src/libusb/os/threads_posix.c.orig 2024-07-24 02:45:05.379565500 +0000
++++ third_party/libusb/src/libusb/os/threads_posix.c
+@@ -19,9 +19,11 @@
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+-#if defined(__linux__) || defined(__OpenBSD__)
++#if defined(__linux__)
+ # include <unistd.h>
+ # include <sys/syscall.h>
++#elif defined(__OpenBSD__)
++# include <unistd.h>
+ #elif defined(__APPLE__)
+ # include <mach/mach.h>
+ #elif defined(__CYGWIN__)
+@@ -65,7 +67,7 @@ int usbi_get_tid(void)
+ #elif defined(__OpenBSD__)
+ /* The following only works with OpenBSD > 5.1 as it requires
+ real thread support. For 5.1 and earlier, -1 is returned. */
+- ret = syscall(SYS_getthrid);
++ ret = getthrid();
+ #elif defined(__APPLE__)
+ ret = mach_thread_self();
+ mach_port_deallocate(mach_task_self(), ret);
diff --git a/chromium/patches/patch-third__party_libvpx_source_libvpx_vpx__ports_aarch64__cpudetect.c b/chromium/patches/patch-third__party_libvpx_source_libvpx_vpx__ports_aarch64__cpudetect.c
new file mode 100644
index 0000000000..975f547251
--- /dev/null
+++ b/chromium/patches/patch-third__party_libvpx_source_libvpx_vpx__ports_aarch64__cpudetect.c
@@ -0,0 +1,34 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/libvpx/source/libvpx/vpx_ports/aarch64_cpudetect.c.orig 2024-07-24 02:45:33.802318600 +0000
++++ third_party/libvpx/source/libvpx/vpx_ports/aarch64_cpudetect.c
+@@ -92,10 +92,24 @@ static int arm_get_cpu_caps(void) {
+ return flags;
+ }
+
+-#elif defined(__linux__) // end defined(VPX_USE_ANDROID_CPU_FEATURES)
++#elif defined(__linux__) || defined(__FreeBSD__) // end defined(VPX_USE_ANDROID_CPU_FEATURES)
+
+ #include <sys/auxv.h>
+
++#if defined(__FreeBSD__)
++static unsigned long getauxval(unsigned long type)
++{
++ /* Only AT_HWCAP* return unsigned long */
++ if (type != AT_HWCAP && type != AT_HWCAP2) {
++ return 0;
++ }
++
++ unsigned long ret = 0;
++ elf_aux_info(type, &ret, sizeof(ret));
++ return ret;
++}
++#endif
++
+ // Define hwcap values ourselves: building with an old auxv header where these
+ // hwcap values are not defined should not prevent features from being enabled.
+ #define VPX_AARCH64_HWCAP_ASIMDDP (1 << 20)
diff --git a/chromium/patches/patch-third__party_libxml_BUILD.gn b/chromium/patches/patch-third__party_libxml_BUILD.gn
deleted file mode 100644
index dd229b6844..0000000000
--- a/chromium/patches/patch-third__party_libxml_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- third_party/libxml/BUILD.gn.orig 2020-07-15 18:56:49.000000000 +0000
-+++ third_party/libxml/BUILD.gn
-@@ -4,7 +4,7 @@
-
- # Define an "os_include" variable that points at the OS-specific generated
- # headers. These were generated by running the configure script offline.
--if (is_linux || is_android || is_nacl || is_fuchsia) {
-+if (is_linux || is_android || is_nacl || is_fuchsia || is_bsd) {
- os_include = "linux"
- } else if (is_mac || is_ios) {
- os_include = "mac"
-@@ -66,7 +66,7 @@ config("libxml_warnings") {
- # TODO(hans): See if we can fix upstream (http://crbug.com/763944).
- "-Wno-enum-compare",
- ]
-- } else if (is_linux) {
-+ } else if (is_linux || is_bsd) {
- cflags = [
- # gcc spits out a bunch of warnings about passing too many arguments to
- # __xmlSimpleError.
diff --git a/chromium/patches/patch-third__party_libxslt_BUILD.gn b/chromium/patches/patch-third__party_libxslt_BUILD.gn
deleted file mode 100644
index fd2bab7fbc..0000000000
--- a/chromium/patches/patch-third__party_libxslt_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/libxslt/BUILD.gn.orig 2020-07-15 18:56:31.000000000 +0000
-+++ third_party/libxslt/BUILD.gn
-@@ -81,7 +81,7 @@ static_library("libxslt") {
- public_configs = [ ":libxslt_config" ]
-
- cflags = []
-- if (is_linux || is_android || is_fuchsia) {
-+ if (is_linux || is_android || is_fuchsia || is_bsd) {
- include_dirs = [ "linux" ]
- } else if (is_win) {
- include_dirs = [ "win32" ]
diff --git a/chromium/patches/patch-third__party_libyuv_BUILD.gn b/chromium/patches/patch-third__party_libyuv_BUILD.gn
deleted file mode 100644
index 32830ad9f0..0000000000
--- a/chromium/patches/patch-third__party_libyuv_BUILD.gn
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- third_party/libyuv/BUILD.gn.orig 2020-07-15 19:01:37.000000000 +0000
-+++ third_party/libyuv/BUILD.gn
-@@ -312,7 +312,7 @@ if (libyuv_include_tests) {
- ]
- public_configs = [ ":libyuv_unittest_config" ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- cflags = [ "-fexceptions" ]
- }
- if (is_ios) {
-@@ -352,7 +352,7 @@ if (libyuv_include_tests) {
- deps = [
- ":libyuv",
- ]
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- cflags = [ "-fexceptions" ]
- }
- }
-@@ -365,7 +365,7 @@ if (libyuv_include_tests) {
- deps = [
- ":libyuv",
- ]
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- cflags = [ "-fexceptions" ]
- }
- }
diff --git a/chromium/patches/patch-third__party_lzma__sdk_C_CpuArch.c b/chromium/patches/patch-third__party_lzma__sdk_C_CpuArch.c
new file mode 100644
index 0000000000..9f235597ac
--- /dev/null
+++ b/chromium/patches/patch-third__party_lzma__sdk_C_CpuArch.c
@@ -0,0 +1,50 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/lzma_sdk/C/CpuArch.c.orig 2024-07-24 02:45:05.615588400 +0000
++++ third_party/lzma_sdk/C/CpuArch.c
+@@ -412,12 +412,40 @@ BoolInt CPU_IsSupported_SHA1(void) { ret
+ BoolInt CPU_IsSupported_SHA2(void) { return APPLE_CRYPTO_SUPPORT_VAL; }
+ BoolInt CPU_IsSupported_AES (void) { return APPLE_CRYPTO_SUPPORT_VAL; }
+
++#elif defined(__OpenBSD__)
++
++#include <sys/param.h>
++#include <sys/sysctl.h>
++#include <machine/cpu.h>
++#include <machine/armreg.h>
++
++BoolInt CPU_IsSupported_NEON() { return 1; }
++
++#define MY_HWCAP_CHECK_FUNC_2(name1, name2) \
++ BoolInt CPU_IsSupported_ ## name1() { \
++ int isar0_mib[] = { CTL_MACHDEP, CPU_ID_AA64ISAR0 }; \
++ size_t len = sizeof(uint64_t); \
++ uint64_t cpu_id = 0; \
++ if (sysctl(isar0_mib, 2, &cpu_id, &len, NULL, 0) < 0) \
++ return 0; \
++ if (ID_AA64ISAR0_ ## name2(cpu_id) >= ID_AA64ISAR0_## name2 ##_BASE) \
++ return 1; \
++ return 0; \
++ }
++
++#define MY_HWCAP_CHECK_FUNC(name) \
++ MY_HWCAP_CHECK_FUNC_2(name, name)
++
++MY_HWCAP_CHECK_FUNC (CRC32)
++MY_HWCAP_CHECK_FUNC (SHA1)
++MY_HWCAP_CHECK_FUNC (SHA2)
++MY_HWCAP_CHECK_FUNC (AES)
+
+ #else // __APPLE__
+
+ #include <sys/auxv.h>
+
+-#if !defined(ARMV8_OS_FUCHSIA)
++#if !defined(ARMV8_OS_FUCHSIA) && !defined(__FreeBSD__) && !defined(__NetBSD__)
+ #define USE_HWCAP
+ #endif // !defined(ARMV8_OS_FUCHSIA)
+
diff --git a/chromium/patches/patch-third__party_material__color__utilities_src_cpp_palettes_tones.cc b/chromium/patches/patch-third__party_material__color__utilities_src_cpp_palettes_tones.cc
new file mode 100644
index 0000000000..3dc4501517
--- /dev/null
+++ b/chromium/patches/patch-third__party_material__color__utilities_src_cpp_palettes_tones.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/material_color_utilities/src/cpp/palettes/tones.cc.orig 2024-07-24 02:45:30.594007700 +0000
++++ third_party/material_color_utilities/src/cpp/palettes/tones.cc
+@@ -14,6 +14,8 @@
+ * limitations under the License.
+ */
+
++#include <cmath>
++
+ #include "cpp/palettes/tones.h"
+
+ #include <cmath>
diff --git a/chromium/patches/patch-third__party_minigbm_BUILD.gn b/chromium/patches/patch-third__party_minigbm_BUILD.gn
deleted file mode 100644
index 87260dd8f2..0000000000
--- a/chromium/patches/patch-third__party_minigbm_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/minigbm/BUILD.gn.orig 2020-06-25 09:32:10.000000000 +0000
-+++ third_party/minigbm/BUILD.gn
-@@ -5,7 +5,7 @@
- import("//build/config/chromecast_build.gni")
- import("//build/config/linux/pkg_config.gni")
-
--assert(is_linux)
-+assert(is_linux || is_bsd)
-
- declare_args() {
- # Controls whether the build should use the version of minigbm library shipped
diff --git a/chromium/patches/patch-third__party_nasm_BUILD.gn b/chromium/patches/patch-third__party_nasm_BUILD.gn
new file mode 100644
index 0000000000..c60e677930
--- /dev/null
+++ b/chromium/patches/patch-third__party_nasm_BUILD.gn
@@ -0,0 +1,22 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/nasm/BUILD.gn.orig 2024-07-24 02:45:31.066053600 +0000
++++ third_party/nasm/BUILD.gn
+@@ -63,6 +63,13 @@ config("nasm_config") {
+
+ defines = [ "HAVE_CONFIG_H" ]
+
++ _string_h_lines =
++ read_file("/usr/include/string.h", "list lines")
++ _mempcpy = filter_include(_string_h_lines, [ "*\*mempcpy*" ])
++ if (_mempcpy != []) {
++ defines += [ "HAVE_MEMPCPY=1" ]
++ }
++
+ if (is_clang) {
+ cflags = [
+ # The inline functions in NASM's headers flag this.
diff --git a/chromium/patches/patch-third__party_nasm_config_config-linux.h b/chromium/patches/patch-third__party_nasm_config_config-linux.h
index f351b9090a..17e309197c 100644
--- a/chromium/patches/patch-third__party_nasm_config_config-linux.h
+++ b/chromium/patches/patch-third__party_nasm_config_config-linux.h
@@ -1,13 +1,108 @@
$NetBSD$
---- third_party/nasm/config/config-linux.h.orig 2020-07-15 19:01:37.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/nasm/config/config-linux.h.orig 2024-07-24 02:45:31.078054700 +0000
+++ third_party/nasm/config/config-linux.h
-@@ -117,7 +117,7 @@
- #define HAVE_ACCESS 1
+@@ -160,7 +160,7 @@
+
+ /* Define to 1 if you have the declaration of `strlcpy', and to 0 if you
+ don't. */
+-#define HAVE_DECL_STRLCPY 0
++#define HAVE_DECL_STRLCPY 1
+
+ /* Define to 1 if you have the declaration of `strncasecmp', and to 0 if you
+ don't. */
+@@ -183,7 +183,7 @@
+ #define HAVE_DECL_STRSEP 1
+
+ /* Define to 1 if you have the <endian.h> header file. */
+-#define HAVE_ENDIAN_H 1
++/* #undef HAVE_ENDIAN_H */
+
+ /* Define to 1 if you have the `faccessat' function. */
+ #define HAVE_FACCESSAT 1
+@@ -327,16 +327,16 @@
+ #define HAVE_ISASCII 1
+
+ /* Define to 1 if you have the `iscntrl' function. */
+-/* #undef HAVE_ISCNTRL */
++#define HAVE_ISCNTRL 1
+
+ /* Define to 1 if you have the <machine/endian.h> header file. */
+-/* #undef HAVE_MACHINE_ENDIAN_H */
++#define HAVE_MACHINE_ENDIAN_H 1
+
+ /* Define to 1 if you have the <memory.h> header file. */
+ #define HAVE_MEMORY_H 1
+
+ /* Define to 1 if you have the `mempcpy' function. */
+-#define HAVE_MEMPCPY 1
++/* #undef HAVE_MEMPCPY */
+
+ /* Define to 1 if you have a working `mmap' system call. */
+ #define HAVE_MMAP 1
+@@ -357,7 +357,7 @@
+ #define HAVE_STDARG_H 1
+
+ /* Define to 1 if stdbool.h conforms to C99. */
+-/* #undef HAVE_STDBOOL_H */
++#define HAVE_STDBOOL_H 1
+
+ /* Define to 1 if your compiler supports C99 extern inline */
+ #define HAVE_STDC_INLINE 1
+@@ -384,7 +384,7 @@
+ #define HAVE_STRING_H 1
+
+ /* Define to 1 if you have the `strlcpy' function. */
+-/* #undef HAVE_STRLCPY */
++#define HAVE_STRLCPY 1
+
+ /* Define to 1 if you have the `strncasecmp' function. */
+ #define HAVE_STRNCASECMP 1
+@@ -411,7 +411,7 @@
+ #define HAVE_SYSCONF 1
+
+ /* Define to 1 if you have the <sys/endian.h> header file. */
+-/* #undef HAVE_SYS_ENDIAN_H */
++#define HAVE_SYS_ENDIAN_H 1
+
+ /* Define to 1 if you have the <sys/mman.h> header file. */
+ #define HAVE_SYS_MMAN_H 1
+@@ -486,13 +486,13 @@
+ /* #undef HAVE__STATI64 */
+
+ /* Define to 1 if you have the `__bswap_16' intrinsic function. */
+-#define HAVE___BSWAP_16 1
++/* #undef HAVE___BSWAP_16 */
+
+ /* Define to 1 if you have the `__bswap_32' intrinsic function. */
+-#define HAVE___BSWAP_32 1
++/* #undef HAVE___BSWAP_32 */
+
+ /* Define to 1 if you have the `__bswap_64' intrinsic function. */
+-#define HAVE___BSWAP_64 1
++/* #undef HAVE___BSWAP_64 */
+
+ /* Define to 1 if you have the `__builtin_bswap16' intrinsic function. */
+ #define HAVE___BUILTIN_BSWAP16 1
+@@ -620,7 +620,7 @@
+ /* Define to the equivalent of the C99 'restrict' keyword, or to
+ nothing if this is not supported. Do not define if restrict is
+ supported directly. */
+-#define restrict __restrict
++#define restrict __restrict__
+ /* Work around a bug in Sun C++: it does not support _Restrict or
+ __restrict__, even though the corresponding Sun C compiler ends up with
+ "#define restrict _Restrict" or "#define restrict __restrict__" in the
+@@ -637,7 +637,7 @@
+ /* Define if your snprintf function is not named snprintf. */
+ /* #undef snprintf */
- /* Define to 1 if you have the `canonicalize_file_name' function. */
--#define HAVE_CANONICALIZE_FILE_NAME 1
-+/* #undef HAVE_CANONICALIZE_FILE_NAME */
+-/* Define if your typeof operator is not named typeof. */
++/* Define if your typeof operator is not named `typeof'. */
+ #define typeof __typeof
- /* Define to 1 if you have the `cpu_to_le16' intrinsic function. */
- /* #undef HAVE_CPU_TO_LE16 */
+ /* Define to the type of an unsigned integer type wide enough to hold a
diff --git a/chromium/patches/patch-third__party_node_node.gni b/chromium/patches/patch-third__party_node_node.gni
new file mode 100644
index 0000000000..ca86b84eb9
--- /dev/null
+++ b/chromium/patches/patch-third__party_node_node.gni
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/node/node.gni.orig 2024-07-24 02:45:05.847611000 +0000
++++ third_party/node/node.gni
+@@ -19,7 +19,7 @@ template("node") {
+
+ # When use_remoteexec=true, node actions may run on remote
+ # Linux worker. So it should include linux node binary in inputs.
+- if (is_linux || is_chromeos || use_remoteexec) {
++ if ((is_linux || is_chromeos || use_remoteexec) && !is_bsd) {
+ inputs += [ "//third_party/node/linux/node-linux-x64/bin/node" ]
+ }
+ if (is_win && host_os == "win") {
diff --git a/chromium/patches/patch-third__party_node_node.py b/chromium/patches/patch-third__party_node_node.py
index 32dd0e9041..26d129256d 100644
--- a/chromium/patches/patch-third__party_node_node.py
+++ b/chromium/patches/patch-third__party_node_node.py
@@ -1,12 +1,18 @@
$NetBSD$
---- third_party/node/node.py.orig 2020-07-09 10:26:29.252112529 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/node/node.py.orig 2024-07-24 02:45:05.847611000 +0000
+++ third_party/node/node.py
-@@ -13,6 +13,7 @@ def GetBinaryPath():
+@@ -20,6 +20,9 @@ def GetBinaryPath():
return os_path.join(os_path.dirname(__file__), *{
- 'Darwin': ('mac', 'node-darwin-x64', 'bin', 'node'),
+ 'Darwin': (darwin_path, darwin_name, 'bin', 'node'),
'Linux': ('linux', 'node-linux-x64', 'bin', 'node'),
-+ 'NetBSD': ('netbsd', 'node', 'bin', 'node'),
++ 'OpenBSD': ('openbsd', 'node-openbsd', 'bin', 'node'),
++ 'FreeBSD': ('freebsd', 'node-freebsd', 'bin', 'node'),
++ 'NetBSD': ('netbsd', 'node-netbsd', 'bin', 'node'),
'Windows': ('win', 'node.exe'),
}[platform.system()])
diff --git a/chromium/patches/patch-third__party_openh264_BUILD.gn b/chromium/patches/patch-third__party_openh264_BUILD.gn
deleted file mode 100644
index 75a6a0d3c1..0000000000
--- a/chromium/patches/patch-third__party_openh264_BUILD.gn
+++ /dev/null
@@ -1,49 +0,0 @@
-$NetBSD$
-
---- third_party/openh264/BUILD.gn.orig 2020-07-15 18:56:31.000000000 +0000
-+++ third_party/openh264/BUILD.gn
-@@ -45,7 +45,7 @@ config("config") {
- # is believed to work.
- # MSAN builds are flaky with assembler. crbug.com/685168
-
--use_assembler = (is_win || is_linux) &&
-+use_assembler = (is_win || is_linux || is_bsd) &&
- (current_cpu == "x86" || current_cpu == "x64") && !is_msan
-
- # This IF statement will make the targets visible only on specific builds,
-@@ -55,7 +55,7 @@ if (use_assembler) {
- if (!is_component_build) {
- if (is_mac || is_ios) {
- asm_defines += [ "WELS_PRIVATE_EXTERN=private_extern" ]
-- } else if (is_linux || is_android || is_fuchsia) {
-+ } else if (is_linux || is_android || is_fuchsia || is_bsd) {
- asm_defines += [ "WELS_PRIVATE_EXTERN=hidden" ]
- }
- }
-@@ -74,7 +74,7 @@ if (use_assembler) {
- ]
- } else if (is_win) {
- defines += [ "WIN64" ]
-- } else if (is_linux) {
-+ } else if (is_linux || is_bsd) {
- defines += [ "UNIX64" ]
- }
- }
-@@ -95,7 +95,7 @@ if (use_assembler) {
- ]
- } else if (is_win) {
- defines += [ "WIN64" ]
-- } else if (is_linux) {
-+ } else if (is_linux || is_bsd) {
- defines += [ "UNIX64" ]
- }
- }
-@@ -116,7 +116,7 @@ if (use_assembler) {
- ]
- } else if (is_win) {
- defines += [ "WIN64" ]
-- } else if (is_linux) {
-+ } else if (is_linux || is_bsd) {
- defines += [ "UNIX64" ]
- }
- }
diff --git a/chromium/patches/patch-third__party_openscreen_src_build_config_BUILD.gn b/chromium/patches/patch-third__party_openscreen_src_build_config_BUILD.gn
deleted file mode 100644
index 8fd5fae2f8..0000000000
--- a/chromium/patches/patch-third__party_openscreen_src_build_config_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/openscreen/src/build/config/BUILD.gn.orig 2020-07-15 19:01:37.000000000 +0000
-+++ third_party/openscreen/src/build/config/BUILD.gn
-@@ -32,7 +32,7 @@ config("compiler_defaults") {
- }
-
- ldflags = []
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- ldflags += [ "-pthread" ]
- }
- if (is_posix && !is_mac) {
diff --git a/chromium/patches/patch-third__party_openscreen_src_build_config_BUILDCONFIG.gn b/chromium/patches/patch-third__party_openscreen_src_build_config_BUILDCONFIG.gn
deleted file mode 100644
index 36d71d3693..0000000000
--- a/chromium/patches/patch-third__party_openscreen_src_build_config_BUILDCONFIG.gn
+++ /dev/null
@@ -1,25 +0,0 @@
-$NetBSD$
-
---- third_party/openscreen/src/build/config/BUILDCONFIG.gn.orig 2020-07-15 19:01:37.000000000 +0000
-+++ third_party/openscreen/src/build/config/BUILDCONFIG.gn
-@@ -131,10 +131,20 @@ if (current_os == "chromeos" || current_
- is_linux = true
- is_mac = false
- is_posix = true
-+ is_bsd = false
-+ is_netbsd = false
-+} else if (current_os == "netbsd") {
-+ is_linux = false
-+ is_mac = false
-+ is_posix = true
-+ is_bsd = true
-+ is_netbsd = true
- } else if (current_os == "mac") {
- is_linux = false
- is_mac = true
- is_posix = true
-+ is_bsd = false
-+ is_netbsd = false
- } else {
- # TODO(miu): Windows, and others.
- assert(false, "is_FOO booleans not defined for current_os.")
diff --git a/chromium/patches/patch-third__party_openscreen_src_platform_BUILD.gn b/chromium/patches/patch-third__party_openscreen_src_platform_BUILD.gn
deleted file mode 100644
index 9eec472520..0000000000
--- a/chromium/patches/patch-third__party_openscreen_src_platform_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- third_party/openscreen/src/platform/BUILD.gn.orig 2020-07-15 19:01:37.000000000 +0000
-+++ third_party/openscreen/src/platform/BUILD.gn
-@@ -84,7 +84,7 @@ if (!build_with_chromium) {
-
- public_configs = [ "//util:trace_logging_config" ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "impl/network_interface_linux.cc",
- "impl/scoped_wake_lock_linux.cc",
-@@ -175,7 +175,7 @@ source_set("test") {
- if (is_posix) {
- sources += [ "test/paths_posix.cc" ]
- }
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [ "test/paths_internal_linux.cc" ]
- } else if (is_mac) {
- sources += [ "test/paths_internal_mac.cc" ]
diff --git a/chromium/patches/patch-third__party_openscreen_src_third__party_boringssl_BUILD.gn b/chromium/patches/patch-third__party_openscreen_src_third__party_boringssl_BUILD.gn
deleted file mode 100644
index a47a171f09..0000000000
--- a/chromium/patches/patch-third__party_openscreen_src_third__party_boringssl_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/openscreen/src/third_party/boringssl/BUILD.gn.orig 2020-07-15 19:01:37.000000000 +0000
-+++ third_party/openscreen/src/third_party/boringssl/BUILD.gn
-@@ -53,7 +53,7 @@ if (build_with_chromium) {
- sources = []
- asmflags = []
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- if (current_cpu == "x64") {
- sources += crypto_sources_linux_x86_64
- } else if (current_cpu == "x86") {
diff --git a/chromium/patches/patch-third__party_openscreen_src_third__party_chromium__quic_build_base_BUILD.gn b/chromium/patches/patch-third__party_openscreen_src_third__party_chromium__quic_build_base_BUILD.gn
deleted file mode 100644
index 30796ee99d..0000000000
--- a/chromium/patches/patch-third__party_openscreen_src_third__party_chromium__quic_build_base_BUILD.gn
+++ /dev/null
@@ -1,35 +0,0 @@
-$NetBSD$
-
---- third_party/openscreen/src/third_party/chromium_quic/build/base/BUILD.gn.orig 2020-07-15 19:01:37.000000000 +0000
-+++ third_party/openscreen/src/third_party/chromium_quic/build/base/BUILD.gn
-@@ -33,6 +33,8 @@ config("base_config") {
- defines = [ "HAVE_CONFIG_H" ]
- if (is_linux) {
- include_dirs = [ "../../src/base/third_party/libevent/linux" ]
-+ } else if (is_netbsd) {
-+ include_dirs = [ "../../src/base/third_party/libevent/netbsd" ]
- } else if (is_mac) {
- include_dirs = [ "../../src/base/third_party/libevent/mac" ]
- }
-@@ -584,7 +586,7 @@ source_set("base") {
- ]
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "../../src/base/base_paths_posix.cc",
- "../../src/base/debug/proc_maps_linux.cc",
-@@ -765,6 +767,12 @@ source_set("libevent") {
- "../../src/base/third_party/libevent/mac/config.h",
- "../../src/base/third_party/libevent/mac/event-config.h",
- ]
-+ } else if (is_netbsd) {
-+ sources += [
-+ "../../src/base/third_party/libevent/kqueue.c",
-+ "../../src/base/third_party/libevent/netbsd/config.h",
-+ "../../src/base/third_party/libevent/netbsd/event-config.h",
-+ ]
- }
-
- configs += [ ":base_config" ]
diff --git a/chromium/patches/patch-third__party_pdfium_BUILD.gn b/chromium/patches/patch-third__party_pdfium_BUILD.gn
deleted file mode 100644
index 8fc5e9c2d7..0000000000
--- a/chromium/patches/patch-third__party_pdfium_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/pdfium/BUILD.gn.orig 2020-07-15 19:01:38.000000000 +0000
-+++ third_party/pdfium/BUILD.gn
-@@ -86,7 +86,7 @@ config("pdfium_core_config") {
- "//build/config/compiler:noshadowing",
- ]
- defines = []
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- if (current_cpu == "x64") {
- defines += [ "_FX_CPU_=_FX_X64_" ]
- cflags += [ "-fPIC" ]
diff --git a/chromium/patches/patch-third__party_pdfium_core_fxcrt_cfx__datetime.cpp b/chromium/patches/patch-third__party_pdfium_core_fxcrt_cfx__datetime.cpp
deleted file mode 100644
index aeaf38e43b..0000000000
--- a/chromium/patches/patch-third__party_pdfium_core_fxcrt_cfx__datetime.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/pdfium/core/fxcrt/cfx_datetime.cpp.orig 2020-07-15 19:01:38.000000000 +0000
-+++ third_party/pdfium/core/fxcrt/cfx_datetime.cpp
-@@ -10,7 +10,7 @@
- #include "core/fxcrt/fx_system.h"
-
- #if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_MACOSX) || \
-- defined(OS_ASMJS) || defined(__wasm__)
-+ defined(OS_ASMJS) || defined(__wasm__) || defined(OS_BSD)
- #include <sys/time.h>
- #include <time.h>
- #endif
diff --git a/chromium/patches/patch-third__party_pdfium_core_fxcrt_fx__system.h b/chromium/patches/patch-third__party_pdfium_core_fxcrt_fx__system.h
deleted file mode 100644
index 96017a1287..0000000000
--- a/chromium/patches/patch-third__party_pdfium_core_fxcrt_fx__system.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/pdfium/core/fxcrt/fx_system.h.orig 2020-07-15 19:01:38.000000000 +0000
-+++ third_party/pdfium/core/fxcrt/fx_system.h
-@@ -26,7 +26,7 @@
- #define _FX_PLATFORM_ _FX_PLATFORM_WINDOWS_
- #elif defined(_WIN64)
- #define _FX_PLATFORM_ _FX_PLATFORM_WINDOWS_
--#elif defined(__linux__)
-+#elif defined(__linux__) || defined(__NetBSD__)
- #define _FX_PLATFORM_ _FX_PLATFORM_LINUX_
- #elif defined(__APPLE__)
- #define _FX_PLATFORM_ _FX_PLATFORM_APPLE_
diff --git a/chromium/patches/patch-third__party_pdfium_core_fxge_BUILD.gn b/chromium/patches/patch-third__party_pdfium_core_fxge_BUILD.gn
deleted file mode 100644
index efee9c98a0..0000000000
--- a/chromium/patches/patch-third__party_pdfium_core_fxge_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/pdfium/core/fxge/BUILD.gn.orig 2020-07-15 19:01:38.000000000 +0000
-+++ third_party/pdfium/core/fxge/BUILD.gn
-@@ -161,7 +161,7 @@ source_set("fxge") {
- ]
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [ "fx_ge_linux.cpp" ]
- }
-
diff --git a/chromium/patches/patch-third__party_pdfium_core_fxge_cfx__fontmapper.cpp b/chromium/patches/patch-third__party_pdfium_core_fxge_cfx__fontmapper.cpp
new file mode 100644
index 0000000000..6108f04fb0
--- /dev/null
+++ b/chromium/patches/patch-third__party_pdfium_core_fxge_cfx__fontmapper.cpp
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/pdfium/core/fxge/cfx_fontmapper.cpp.orig 2024-07-24 02:47:13.279954200 +0000
++++ third_party/pdfium/core/fxge/cfx_fontmapper.cpp
+@@ -157,7 +157,7 @@ constexpr AltFontFamily kAltFontFamilies
+ {"ForteMT", "Forte"},
+ };
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || defined(OS_ASMJS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || defined(OS_ASMJS) || BUILDFLAG(IS_BSD)
+ const char kNarrowFamily[] = "LiberationSansNarrow";
+ #elif BUILDFLAG(IS_ANDROID)
+ const char kNarrowFamily[] = "RobotoCondensed";
diff --git a/chromium/patches/patch-third__party_pdfium_core_fxge_fx__ge__linux.cpp b/chromium/patches/patch-third__party_pdfium_core_fxge_fx__ge__linux.cpp
deleted file mode 100644
index 56cd03b08a..0000000000
--- a/chromium/patches/patch-third__party_pdfium_core_fxge_fx__ge__linux.cpp
+++ /dev/null
@@ -1,12 +0,0 @@
-$NetBSD$
-
---- third_party/pdfium/core/fxge/fx_ge_linux.cpp.orig 2020-07-15 19:01:39.000000000 +0000
-+++ third_party/pdfium/core/fxge/fx_ge_linux.cpp
-@@ -159,6 +159,7 @@ std::unique_ptr<SystemFontInfoIface> Sys
- pInfo->AddPath("/usr/share/X11/fonts/Type1");
- pInfo->AddPath("/usr/share/X11/fonts/TTF");
- pInfo->AddPath("/usr/local/share/fonts");
-+ pInfo->AddPath("@X11BASE@/share/fonts");
- }
- return std::move(pInfo);
- }
diff --git a/chromium/patches/patch-third__party_pdfium_core_fxge_linux_fx__linux__impl.cpp b/chromium/patches/patch-third__party_pdfium_core_fxge_linux_fx__linux__impl.cpp
new file mode 100644
index 0000000000..4c8900e5a1
--- /dev/null
+++ b/chromium/patches/patch-third__party_pdfium_core_fxge_linux_fx__linux__impl.cpp
@@ -0,0 +1,29 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/pdfium/core/fxge/linux/fx_linux_impl.cpp.orig 2024-07-24 02:47:13.303956500 +0000
++++ third_party/pdfium/core/fxge/linux/fx_linux_impl.cpp
+@@ -20,7 +20,7 @@
+ #include "core/fxge/fx_font.h"
+ #include "core/fxge/systemfontinfo_iface.h"
+
+-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !defined(OS_ASMJS)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !defined(OS_ASMJS) && !BUILDFLAG(IS_BSD)
+ #error "Included on the wrong platform"
+ #endif
+
+@@ -172,9 +172,8 @@ class CLinuxPlatform : public CFX_GEModu
+ std::unique_ptr<SystemFontInfoIface> CreateDefaultSystemFontInfo() override {
+ auto pInfo = std::make_unique<CFX_LinuxFontInfo>();
+ if (!pInfo->ParseFontCfg(CFX_GEModule::Get()->GetUserFontPaths())) {
+- pInfo->AddPath("/usr/share/fonts");
+- pInfo->AddPath("/usr/share/X11/fonts/Type1");
+- pInfo->AddPath("/usr/share/X11/fonts/TTF");
++ pInfo->AddPath("/usr/X11R6/lib/X11/fonts/Type1");
++ pInfo->AddPath("/usr/X11R6/lib/X11/fonts/TTF");
+ pInfo->AddPath("/usr/local/share/fonts");
+ }
+ return pInfo;
diff --git a/chromium/patches/patch-third__party_pdfium_fxjs_cjs__publicmethods.cpp b/chromium/patches/patch-third__party_pdfium_fxjs_cjs__publicmethods.cpp
deleted file mode 100644
index 17ef683993..0000000000
--- a/chromium/patches/patch-third__party_pdfium_fxjs_cjs__publicmethods.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-$NetBSD$
-
---- third_party/pdfium/fxjs/cjs_publicmethods.cpp.orig 2020-07-15 19:01:39.000000000 +0000
-+++ third_party/pdfium/fxjs/cjs_publicmethods.cpp
-@@ -87,6 +87,103 @@ constexpr const wchar_t* kDateFormats[]
- constexpr const wchar_t* kTimeFormats[] = {L"HH:MM", L"h:MM tt", L"HH:MM:ss",
- L"h:MM:ss tt"};
-
-+#if defined(__FreeBSD__) || defined(__NetBSD__)
-+/*
-+ * cvt.c - IEEE floating point formatting routines for FreeBSD
-+ * from GNU libc-4.6.27
-+ */
-+
-+/*
-+ * ap_ecvt converts to decimal
-+ * the number of digits is specified by ndigit
-+ * decpt is set to the position of the decimal point
-+ * sign is set to 0 for positive, 1 for negative
-+ */
-+
-+#define NDIG 80
-+
-+static char *
-+ ap_cvt(double arg, int ndigits, int *decpt, int *sign, int eflag)
-+{
-+ register int r2;
-+ double fi, fj;
-+ register char *p, *p1;
-+ static char buf[NDIG];
-+
-+ if (ndigits >= NDIG - 1)
-+ ndigits = NDIG - 2;
-+ r2 = 0;
-+ *sign = 0;
-+ p = &buf[0];
-+ if (arg < 0) {
-+ *sign = 1;
-+ arg = -arg;
-+ }
-+ arg = modf(arg, &fi);
-+ p1 = &buf[NDIG];
-+ /*
-+ * Do integer part
-+ */
-+ if (fi != 0) {
-+ p1 = &buf[NDIG];
-+ while (fi != 0) {
-+ fj = modf(fi / 10, &fi);
-+ *--p1 = (int) ((fj + .03) * 10) + '0';
-+ r2++;
-+ }
-+ while (p1 < &buf[NDIG])
-+ *p++ = *p1++;
-+ }
-+ else if (arg > 0) {
-+ while ((fj = arg * 10) < 1) {
-+ arg = fj;
-+ r2--;
-+ }
-+ }
-+ p1 = &buf[ndigits];
-+ if (eflag == 0)
-+ p1 += r2;
-+ *decpt = r2;
-+ if (p1 < &buf[0]) {
-+ buf[0] = '\0';
-+ return (buf);
-+ }
-+ while (p <= p1 && p < &buf[NDIG]) {
-+ arg *= 10;
-+ arg = modf(arg, &fj);
-+ *p++ = (int) fj + '0';
-+ }
-+ if (p1 >= &buf[NDIG]) {
-+ buf[NDIG - 1] = '\0';
-+ return (buf);
-+ }
-+ p = p1;
-+ *p1 += 5;
-+ while (*p1 > '9') {
-+ *p1 = '0';
-+ if (p1 > buf)
-+ ++ * --p1;
-+ else {
-+ *p1 = '1';
-+ (*decpt)++;
-+ if (eflag == 0) {
-+ if (p > buf)
-+ *p = '0';
-+ p++;
-+ }
-+ }
-+ }
-+ *p = '\0';
-+ return (buf);
-+}
-+
-+static char *
-+ fcvt(double arg, int ndigits, int *decpt, int *sign)
-+{
-+ return (ap_cvt(arg, ndigits, decpt, sign, 0));
-+}
-+#endif // defined(__FreeBSD__)
-+
- template <typename T>
- T StrTrim(const T& str) {
- T result = str;
diff --git a/chromium/patches/patch-third__party_pdfium_fxjs_cjs__runtime.cpp b/chromium/patches/patch-third__party_pdfium_fxjs_cjs__runtime.cpp
deleted file mode 100644
index 3f51c48eff..0000000000
--- a/chromium/patches/patch-third__party_pdfium_fxjs_cjs__runtime.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/pdfium/fxjs/cjs_runtime.cpp.orig 2020-07-15 19:01:39.000000000 +0000
-+++ third_party/pdfium/fxjs/cjs_runtime.cpp
-@@ -226,7 +226,7 @@ v8::Local<v8::Value> CJS_Runtime::MaybeC
- return value;
-
- v8::Local<v8::Number> num = maybeNum.ToLocalChecked();
-- if (std::isnan(num->Value()) && !bAllowNaN)
-+ if (isnan(num->Value()) && !bAllowNaN)
- return value;
-
- return num;
diff --git a/chromium/patches/patch-third__party_pdfium_fxjs_fx__date__helpers.cpp b/chromium/patches/patch-third__party_pdfium_fxjs_fx__date__helpers.cpp
new file mode 100644
index 0000000000..7a88dca7db
--- /dev/null
+++ b/chromium/patches/patch-third__party_pdfium_fxjs_fx__date__helpers.cpp
@@ -0,0 +1,28 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/pdfium/fxjs/fx_date_helpers.cpp.orig 2024-07-24 02:47:13.347960700 +0000
++++ third_party/pdfium/fxjs/fx_date_helpers.cpp
+@@ -39,6 +39,11 @@ double GetLocalTZA() {
+ return 0;
+ time_t t = 0;
+ FXSYS_time(&t);
++#ifdef __FreeBSD__
++ struct tm lt;
++ localtime_r(&t, <);
++ return (double)(-(lt.tm_gmtoff * 1000));
++#else
+ FXSYS_localtime(&t);
+ #if BUILDFLAG(IS_WIN)
+ // In gcc 'timezone' is a global variable declared in time.h. In VC++, that
+@@ -47,6 +52,7 @@ double GetLocalTZA() {
+ _get_timezone(&timezone);
+ #endif
+ return (double)(-(timezone * 1000));
++#endif // __FreeBSD__
+ }
+
+ int GetDaylightSavingTA(double d) {
diff --git a/chromium/patches/patch-third__party_pdfium_pdfium.gni b/chromium/patches/patch-third__party_pdfium_pdfium.gni
new file mode 100644
index 0000000000..6946e3ac2d
--- /dev/null
+++ b/chromium/patches/patch-third__party_pdfium_pdfium.gni
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/pdfium/pdfium.gni.orig 2024-07-24 02:47:13.359962000 +0000
++++ third_party/pdfium/pdfium.gni
+@@ -42,7 +42,7 @@ declare_args() {
+ # PDFium will use PartitionAlloc partitions to separate strings, scalars,
+ # etc. from other allocations. However, the use of PartitionAlloc for new or
+ # malloc is controlled by args in build_overrides/partition_alloc.gni.
+- pdf_use_partition_alloc = pdf_use_partition_alloc_override
++ pdf_use_partition_alloc = pdf_use_partition_alloc_override && use_partition_alloc_as_malloc
+
+ # Build PDFium to use Skia (experimental) for all PDFium graphics.
+ # If enabled, coexists in build with AGG graphics and the default
diff --git a/chromium/patches/patch-third__party_pdfium_skia_BUILD.gn b/chromium/patches/patch-third__party_pdfium_skia_BUILD.gn
deleted file mode 100644
index df97264422..0000000000
--- a/chromium/patches/patch-third__party_pdfium_skia_BUILD.gn
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- third_party/pdfium/skia/BUILD.gn.orig 2020-07-15 19:01:39.000000000 +0000
-+++ third_party/pdfium/skia/BUILD.gn
-@@ -79,7 +79,7 @@ config("skia_library_config") {
- }
-
- # Settings for text blitting, chosen to approximate the system browser.
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- defines += [
- "SK_GAMMA_EXPONENT=1.2",
- "SK_GAMMA_CONTRAST=0.2",
-@@ -278,7 +278,7 @@ component("skia") {
- "//third_party/skia/src/ports/SkFontMgr_android_parser.cpp",
- ]
- }
-- if (!is_linux && !is_android && !is_win && !is_mac) {
-+ if (!is_linux && !is_android && !is_win && !is_mac && !is_bsd) {
- sources -= [
- "//third_party/skia/src/ports/SkFontHost_FreeType.cpp",
- "//third_party/skia/src/ports/SkFontHost_FreeType_common.cpp",
-@@ -310,7 +310,7 @@ component("skia") {
- ]
- public_deps = [ ":skia_core_and_effects" ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- deps += [ "//third_party/icu:icuuc" ]
- }
-
diff --git a/chromium/patches/patch-third__party_pdfium_xfa_fgas_font_cfx__fontsourceenum__file.cpp b/chromium/patches/patch-third__party_pdfium_xfa_fgas_font_cfx__fontsourceenum__file.cpp
deleted file mode 100644
index 5ea2f36981..0000000000
--- a/chromium/patches/patch-third__party_pdfium_xfa_fgas_font_cfx__fontsourceenum__file.cpp
+++ /dev/null
@@ -1,12 +0,0 @@
-$NetBSD$
-
---- third_party/pdfium/xfa/fgas/font/cfx_fontsourceenum_file.cpp.orig 2020-07-15 19:01:39.000000000 +0000
-+++ third_party/pdfium/xfa/fgas/font/cfx_fontsourceenum_file.cpp
-@@ -20,6 +20,7 @@ constexpr const char* kFontFolders[] = {
- "/usr/share/X11/fonts/Type1",
- "/usr/share/X11/fonts/TTF",
- "/usr/local/share/fonts",
-+ "@X11BASE@/share/fonts",
- #elif defined(OS_MACOSX)
- "~/Library/Fonts",
- "/Library/Fonts",
diff --git a/chromium/patches/patch-third__party_pdfium_xfa_fxfa_parser_cxfa__timezoneprovider.cpp b/chromium/patches/patch-third__party_pdfium_xfa_fxfa_parser_cxfa__timezoneprovider.cpp
new file mode 100644
index 0000000000..37b73f1ae3
--- /dev/null
+++ b/chromium/patches/patch-third__party_pdfium_xfa_fxfa_parser_cxfa__timezoneprovider.cpp
@@ -0,0 +1,47 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/pdfium/xfa/fxfa/parser/cxfa_timezoneprovider.cpp.orig 2024-07-24 02:47:13.587984000 +0000
++++ third_party/pdfium/xfa/fxfa/parser/cxfa_timezoneprovider.cpp
+@@ -6,12 +6,16 @@
+
+ #include "xfa/fxfa/parser/cxfa_timezoneprovider.h"
+
++#include <stdint.h>
+ #include <stdlib.h>
+ #include <time.h>
+
+ #include "build/build_config.h"
+
+ static bool g_bProviderTimeZoneSet = false;
++#if defined(OS_FREEBSD)
++static long g_lTimeZoneOffset = 0;
++#endif
+
+ #if BUILDFLAG(IS_WIN)
+ #define TIMEZONE _timezone
+@@ -24,9 +28,21 @@ static bool g_bProviderTimeZoneSet = fal
+ CXFA_TimeZoneProvider::CXFA_TimeZoneProvider() {
+ if (!g_bProviderTimeZoneSet) {
+ g_bProviderTimeZoneSet = true;
++#if defined(OS_FREEBSD)
++ time_t now = time(nullptr);
++ struct tm tm = {};
++
++ localtime_r(&now, &tm);
++ g_lTimeZoneOffset = tm.tm_gmtoff;
++#else
+ TZSET();
++#endif
+ }
++#if defined(OS_FREEBSD)
++ tz_minutes_ = static_cast<int8_t>((abs(g_lTimeZoneOffset) % 3600) / 60);
++#else
+ tz_minutes_ = TIMEZONE / -60;
++#endif
+ }
+
+ CXFA_TimeZoneProvider::~CXFA_TimeZoneProvider() = default;
diff --git a/chromium/patches/patch-third__party_perfetto_buildtools_BUILD.gn b/chromium/patches/patch-third__party_perfetto_buildtools_BUILD.gn
deleted file mode 100644
index 55073954a8..0000000000
--- a/chromium/patches/patch-third__party_perfetto_buildtools_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- third_party/perfetto/buildtools/BUILD.gn.orig 2020-07-15 19:01:38.000000000 +0000
-+++ third_party/perfetto/buildtools/BUILD.gn
-@@ -678,7 +678,7 @@ if (use_custom_libcxx) {
- "//gn/standalone/sanitizers:sanitizer_options_link_helper",
- ]
- defines = [ "_LIBCPP_BUILDING_LIBRARY" ]
-- if ((is_linux || is_android) && (is_asan || is_tsan || is_msan)) {
-+ if ((is_linux || is_android || is_bsd) && (is_asan || is_tsan || is_msan)) {
- # In {a,t,m}san configurations, operator new and operator delete will be
- # provided by the sanitizer runtime library. Since libc++ defines these
- # symbols with weak linkage, and the *san runtime uses strong linkage, it
-@@ -748,7 +748,7 @@ source_set("benchmark") {
- }
-
- # On Linux/Android use libbacktrace in debug builds for better stacktraces.
--if (is_linux || is_android) {
-+if (is_linux || is_android || is_bsd) {
- config("libbacktrace_config") {
- visibility = _buildtools_visibility
- include_dirs = [
diff --git a/chromium/patches/patch-third__party_perfetto_gn_BUILD.gn b/chromium/patches/patch-third__party_perfetto_gn_BUILD.gn
deleted file mode 100644
index f3d42fb063..0000000000
--- a/chromium/patches/patch-third__party_perfetto_gn_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/perfetto/gn/BUILD.gn.orig 2020-07-15 19:01:38.000000000 +0000
-+++ third_party/perfetto/gn/BUILD.gn
-@@ -291,7 +291,7 @@ if (enable_perfetto_benchmarks) {
-
- # Libbacktrace, used for printing stack traces from crash handler, only in
- # standalone debug builds.
--if (perfetto_build_standalone && (is_linux || is_android)) {
-+if (perfetto_build_standalone && (is_linux || is_android || is_bsd)) {
- group("libbacktrace") {
- public_deps = [ "//buildtools:libbacktrace" ]
- }
diff --git a/chromium/patches/patch-third__party_perfetto_gn_perfetto.gni b/chromium/patches/patch-third__party_perfetto_gn_perfetto.gni
deleted file mode 100644
index a630845709..0000000000
--- a/chromium/patches/patch-third__party_perfetto_gn_perfetto.gni
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- third_party/perfetto/gn/perfetto.gni.orig 2020-07-15 19:01:38.000000000 +0000
-+++ third_party/perfetto/gn/perfetto.gni
-@@ -149,7 +149,7 @@ declare_args() {
- enable_perfetto_heapprofd =
- perfetto_build_with_android ||
- (perfetto_build_standalone && is_clang &&
-- (is_linux || (is_android && android_api_level >= 26)))
-+ (is_linux || is_bsd || (is_android && android_api_level >= 26)))
-
- # Build the perf event profiler (traced_perf).
- # TODO(b/144281346): under development.
-@@ -222,7 +222,7 @@ declare_args() {
- # Enables the REPL interactive prompt in the trace processor.
- enable_perfetto_trace_processor_linenoise =
- perfetto_build_standalone && enable_perfetto_trace_processor &&
-- (is_linux || is_android || is_mac)
-+ (is_linux || is_android || is_mac || is_bsd)
-
- # Enables JSON support in the trace processor. Required for JSON trace import
- # and export.
diff --git a/chromium/patches/patch-third__party_perfetto_gn_perfetto__unittests.gni b/chromium/patches/patch-third__party_perfetto_gn_perfetto__unittests.gni
deleted file mode 100644
index 3a13ad4441..0000000000
--- a/chromium/patches/patch-third__party_perfetto_gn_perfetto__unittests.gni
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/perfetto/gn/perfetto_unittests.gni.orig 2020-07-15 19:01:38.000000000 +0000
-+++ third_party/perfetto/gn/perfetto_unittests.gni
-@@ -34,7 +34,7 @@ if (enable_perfetto_tools && current_too
- # TODO(primiano): sanitizers_unittests shouldn't really be under tools. It's
- # not a tool and it's intended to run on both host and targets to check that
- # sanitizers are actually working.
--if ((is_linux || is_android) && !perfetto_build_with_embedder) {
-+if ((is_linux || is_android || is_bsd) && !perfetto_build_with_embedder) {
- # This test depends on pthread and can't run on non-Linux-based OS.
- perfetto_unittests_targets += [ "tools/sanitizers_unittests" ]
- }
diff --git a/chromium/patches/patch-third__party_perfetto_gn_standalone_BUILD.gn b/chromium/patches/patch-third__party_perfetto_gn_standalone_BUILD.gn
deleted file mode 100644
index a079fcb1c9..0000000000
--- a/chromium/patches/patch-third__party_perfetto_gn_standalone_BUILD.gn
+++ /dev/null
@@ -1,40 +0,0 @@
-$NetBSD$
-
---- third_party/perfetto/gn/standalone/BUILD.gn.orig 2020-07-15 19:01:38.000000000 +0000
-+++ third_party/perfetto/gn/standalone/BUILD.gn
-@@ -143,7 +143,7 @@ config("default") {
- cflags += [ "-fno-omit-frame-pointer" ]
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- libs += [
- "pthread",
- "rt",
-@@ -238,7 +238,7 @@ config("release") {
- }
-
- config("shared_library") {
-- if (is_android || is_linux) {
-+ if (is_android || is_linux || is_bsd) {
- ldflags = [ "-fPIC" ]
- }
- }
-@@ -248,7 +248,7 @@ config("executable") {
-
- # Android will refuse to run executables if they aren't position independent.
- # Instead on Linux there isn't any need and they break ASan (goo.gl/paFR6K).
-- if (is_android || is_linux) {
-+ if (is_android || is_linux || is_bsd) {
- asmflags = [ "-fPIE" ]
- cflags = [ "-fPIE" ]
- ldflags += [ "-pie" ]
-@@ -259,7 +259,7 @@ config("executable") {
- # supported only by Linux, not Android. But concretely we need this only when
- # use_custom_libcxx=true && custom_libcxx_is_static=false, which happens only
- # on Linux right now.
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- ldflags += [
- "-Wl,-rpath=\$ORIGIN/.",
- "-Wl,-rpath-link=.",
diff --git a/chromium/patches/patch-third__party_perfetto_include_perfetto_base_build__config.h b/chromium/patches/patch-third__party_perfetto_include_perfetto_base_build__config.h
index 45e3d65f5b..40059c2103 100644
--- a/chromium/patches/patch-third__party_perfetto_include_perfetto_base_build__config.h
+++ b/chromium/patches/patch-third__party_perfetto_include_perfetto_base_build__config.h
@@ -1,54 +1,72 @@
$NetBSD$
---- third_party/perfetto/include/perfetto/base/build_config.h.orig 2020-06-25 09:34:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/include/perfetto/base/build_config.h.orig 2024-07-24 02:46:50.085707700 +0000
+++ third_party/perfetto/include/perfetto/base/build_config.h
-@@ -57,6 +57,7 @@
+@@ -27,6 +27,7 @@
+ #if defined(__ANDROID__)
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 1
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 0
++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MAC() 0
+@@ -38,6 +39,7 @@
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE() 1
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 0
++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WASM() 0
#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_FUCHSIA() 0
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_NACL() 0
+@@ -51,9 +53,10 @@
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MAC() 1
#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_IOS() 0
-+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_NETBSD() 0
+ #endif
+-#elif defined(__linux__)
++#elif defined(__linux__) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 1
++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 1
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MAC() 0
+@@ -64,6 +67,8 @@
#elif defined(_WIN32)
#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 0
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MACOSX() 0
-@@ -66,6 +67,7 @@
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_FUCHSIA() 0
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_NACL() 0
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_IOS() 0
-+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_NETBSD() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 0
++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 0
++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_FREEBSD() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 1
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MAC() 0
+@@ -74,6 +79,8 @@
#elif defined(__EMSCRIPTEN__)
#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 0
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MACOSX() 0
-@@ -75,6 +77,7 @@
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_FUCHSIA() 0
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_NACL() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 0
++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 0
++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_FREEBSD() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MAC() 0
+@@ -87,6 +94,8 @@
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MAC() 0
#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_IOS() 0
-+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_NETBSD() 0
- #elif defined(__Fuchsia__)
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 0
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MACOSX() 0
-@@ -84,6 +87,7 @@
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 0
++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 0
++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_FREEBSD() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WASM() 0
#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_FUCHSIA() 1
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_NACL() 0
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_IOS() 0
-+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_NETBSD() 0
+@@ -94,6 +103,8 @@
#elif defined(__native_client__)
#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 0
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MACOSX() 0
-@@ -93,6 +97,17 @@
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_FUCHSIA() 0
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_NACL() 1
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_IOS() 0
-+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_NETBSD() 0
-+#elif defined(__NetBSD__)
-+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 0
-+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MACOSX() 0
-+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 0
-+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0
-+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WASM() 0
-+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_FUCHSIA() 0
-+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_NACL() 0
-+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_IOS() 0
-+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_NETBSD() 1
- #else
- #error OS not supported (see build_config.h)
- #endif
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 0
++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 0
++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_FREEBSD() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MAC() 0
diff --git a/chromium/patches/patch-third__party_perfetto_include_perfetto_base_thread__utils.h b/chromium/patches/patch-third__party_perfetto_include_perfetto_base_thread__utils.h
index 650aeb78ec..16cd73b0aa 100644
--- a/chromium/patches/patch-third__party_perfetto_include_perfetto_base_thread__utils.h
+++ b/chromium/patches/patch-third__party_perfetto_include_perfetto_base_thread__utils.h
@@ -1,16 +1,28 @@
$NetBSD$
---- third_party/perfetto/include/perfetto/base/thread_utils.h.orig 2020-06-25 09:34:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/include/perfetto/base/thread_utils.h.orig 2024-07-24 02:46:50.085707700 +0000
+++ third_party/perfetto/include/perfetto/base/thread_utils.h
-@@ -71,6 +71,11 @@ using PlatformThreadId = pid_t;
+@@ -34,6 +34,7 @@ __declspec(dllimport) unsigned long __st
+ #include <sys/syscall.h>
+ #include <sys/types.h>
+ #include <unistd.h>
++#include <pthread.h>
+ #else
+ #include <pthread.h>
+ #endif
+@@ -46,6 +47,11 @@ using PlatformThreadId = pid_t;
inline PlatformThreadId GetThreadId() {
- return reinterpret_cast<int32_t>(pthread_self());
+ return gettid();
}
-+#elif PERFETTO_BUILDFLAG(PERFETTO_OS_NETBSD)
++#elif PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)
+using PlatformThreadId = uint64_t;
+inline PlatformThreadId GetThreadId() {
-+ return reinterpret_cast<int64_t>(pthread_self());
++ return reinterpret_cast<uint64_t>(pthread_self());
+}
- #else // Default to pthreads in case no OS is set.
- using PlatformThreadId = pthread_t;
+ #elif PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX)
+ using PlatformThreadId = pid_t;
inline PlatformThreadId GetThreadId() {
diff --git a/chromium/patches/patch-third__party_perfetto_include_perfetto_base_time.h b/chromium/patches/patch-third__party_perfetto_include_perfetto_base_time.h
index 7ed9063ede..9417a9b68c 100644
--- a/chromium/patches/patch-third__party_perfetto_include_perfetto_base_time.h
+++ b/chromium/patches/patch-third__party_perfetto_include_perfetto_base_time.h
@@ -1,18 +1,22 @@
$NetBSD$
---- third_party/perfetto/include/perfetto/base/time.h.orig 2020-06-25 09:34:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/include/perfetto/base/time.h.orig 2024-07-24 02:46:50.085707700 +0000
+++ third_party/perfetto/include/perfetto/base/time.h
-@@ -141,6 +141,9 @@ inline TimeNanos GetTimeInternalNs(clock
+@@ -199,6 +199,9 @@ inline TimeNanos GetTimeInternalNs(clock
// Return ns from boot. Conversely to GetWallTimeNs, this clock counts also time
// during suspend (when supported).
inline TimeNanos GetBootTimeNs() {
-+#if PERFETTO_BUILDFLAG(PERFETTO_OS_NETBSD)
++#if defined(__FreeBSD__) || defined(__NetBSD__)
+ return GetTimeInternalNs(kWallTimeClockSource);
+#else
// Determine if CLOCK_BOOTTIME is available on the first call.
static const clockid_t kBootTimeClockSource = [] {
struct timespec ts = {};
-@@ -148,6 +151,7 @@ inline TimeNanos GetBootTimeNs() {
+@@ -206,6 +209,7 @@ inline TimeNanos GetBootTimeNs() {
return res == 0 ? CLOCK_BOOTTIME : kWallTimeClockSource;
}();
return GetTimeInternalNs(kBootTimeClockSource);
@@ -20,3 +24,17 @@ $NetBSD$
}
inline TimeNanos GetWallTimeNs() {
+@@ -213,7 +217,13 @@ inline TimeNanos GetWallTimeNs() {
+ }
+
+ inline TimeNanos GetWallTimeRawNs() {
++#if defined(__OpenBSD__) || defined(__NetBSD__)
++ return GetTimeInternalNs(CLOCK_MONOTONIC);
++#elif defined(__FreeBSD__)
++ return GetTimeInternalNs(CLOCK_MONOTONIC_FAST);
++#else
+ return GetTimeInternalNs(CLOCK_MONOTONIC_RAW);
++#endif
+ }
+
+ inline TimeNanos GetThreadCPUTimeNs() {
diff --git a/chromium/patches/patch-third__party_perfetto_include_perfetto_base_unix__socket.cc b/chromium/patches/patch-third__party_perfetto_include_perfetto_base_unix__socket.cc
deleted file mode 100644
index 97878ecb49..0000000000
--- a/chromium/patches/patch-third__party_perfetto_include_perfetto_base_unix__socket.cc
+++ /dev/null
@@ -1,28 +0,0 @@
-$NetBSD$
-
---- third_party/perfetto/src/base/unix_socket.cc.orig 2020-06-25 09:34:47.000000000 +0000
-+++ third_party/perfetto/src/base/unix_socket.cc
-@@ -37,7 +37,7 @@
- #include "perfetto/ext/base/string_utils.h"
- #include "perfetto/ext/base/utils.h"
-
--#if PERFETTO_BUILDFLAG(PERFETTO_OS_MACOSX)
-+#if PERFETTO_BUILDFLAG(PERFETTO_OS_MACOSX) || PERFETTO_BUILDFLAG(PERFETTO_OS_NETBSD)
- #include <sys/ucred.h>
- #endif
-
-@@ -615,6 +615,14 @@ void UnixSocket::ReadPeerCredentials() {
- PERFETTO_CHECK(res == 0);
- peer_uid_ = user_cred.uid;
- peer_pid_ = user_cred.pid;
-+#elif PERFETTO_BUILDFLAG(PERFETTO_OS_NETBSD)
-+ struct unpcbid user_cred;
-+ socklen_t len = sizeof(user_cred);
-+ int fd = sock_raw_.fd();
-+ int res = getsockopt(fd, 0, LOCAL_PEEREID, &user_cred, &len);
-+ PERFETTO_CHECK(res == 0);
-+ peer_uid_ = user_cred.unp_euid;
-+ peer_pid_ = user_cred.unp_pid;
- #else
- struct xucred user_cred;
- socklen_t len = sizeof(user_cred);
diff --git a/chromium/patches/patch-third__party_perfetto_include_perfetto_ext_base_event__fd.h b/chromium/patches/patch-third__party_perfetto_include_perfetto_ext_base_event__fd.h
new file mode 100644
index 0000000000..febf5e9764
--- /dev/null
+++ b/chromium/patches/patch-third__party_perfetto_include_perfetto_ext_base_event__fd.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/include/perfetto/ext/base/event_fd.h.orig 2024-07-24 02:46:50.085707700 +0000
++++ third_party/perfetto/include/perfetto/ext/base/event_fd.h
+@@ -55,6 +55,8 @@ class EventFd {
+ // On Mac and other non-Linux UNIX platforms a pipe-based fallback is used.
+ // The write end of the wakeup pipe.
+ ScopedFile write_fd_;
++#else
++ ScopedFile write_fd_;
+ #endif
+ };
+
diff --git a/chromium/patches/patch-third__party_perfetto_include_perfetto_ext_base_thread__utils.h b/chromium/patches/patch-third__party_perfetto_include_perfetto_ext_base_thread__utils.h
new file mode 100644
index 0000000000..7e9086e577
--- /dev/null
+++ b/chromium/patches/patch-third__party_perfetto_include_perfetto_ext_base_thread__utils.h
@@ -0,0 +1,21 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/include/perfetto/ext/base/thread_utils.h.orig 2024-07-24 02:46:50.089707900 +0000
++++ third_party/perfetto/include/perfetto/ext/base/thread_utils.h
+@@ -41,9 +41,10 @@
+ namespace perfetto {
+ namespace base {
+
+-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
+ PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) || \
+- PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE)
++ PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE)) && \
++ !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)
+ // Sets the "comm" of the calling thread to the first 15 chars of the given
+ // string.
+ inline bool MaybeSetThreadName(const std::string& name) {
diff --git a/chromium/patches/patch-third__party_perfetto_include_perfetto_ext_base_unix__socket.h b/chromium/patches/patch-third__party_perfetto_include_perfetto_ext_base_unix__socket.h
deleted file mode 100644
index 1232cc6cdd..0000000000
--- a/chromium/patches/patch-third__party_perfetto_include_perfetto_ext_base_unix__socket.h
+++ /dev/null
@@ -1,14 +0,0 @@
-$NetBSD$
-
---- third_party/perfetto/include/perfetto/ext/base/unix_socket.h.orig 2020-06-25 09:34:47.000000000 +0000
-+++ third_party/perfetto/include/perfetto/ext/base/unix_socket.h
-@@ -321,7 +321,8 @@ class UnixSocket {
- int last_error_ = 0;
- uid_t peer_uid_ = kInvalidUid;
- #if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
-- PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
-+ PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) || \
-+ PERFETTO_BUILDFLAG(PERFETTO_OS_NETBSD)
- pid_t peer_pid_ = kInvalidPid;
- #endif
- EventListener* const event_listener_;
diff --git a/chromium/patches/patch-third__party_perfetto_include_perfetto_tracing_internal_track__event__legacy.h b/chromium/patches/patch-third__party_perfetto_include_perfetto_tracing_internal_track__event__legacy.h
new file mode 100644
index 0000000000..f91bcdecc0
--- /dev/null
+++ b/chromium/patches/patch-third__party_perfetto_include_perfetto_tracing_internal_track__event__legacy.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/include/perfetto/tracing/internal/track_event_legacy.h.orig 2024-07-24 02:46:50.105709600 +0000
++++ third_party/perfetto/include/perfetto/tracing/internal/track_event_legacy.h
+@@ -249,7 +249,7 @@ class PERFETTO_EXPORT_COMPONENT LegacyTr
+ // are different. E.g. on Mac size_t is considered a different type from
+ // uint64_t even though it has the same size and signedness.
+ // Below we add overloads for those types that are known to cause ambiguity.
+-#if PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE)
++#if PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE) || defined(__OpenBSD__)
+ explicit LegacyTraceId(size_t raw_id) : raw_id_(raw_id) {}
+ explicit LegacyTraceId(intptr_t raw_id)
+ : raw_id_(static_cast<uint64_t>(raw_id)) {}
diff --git a/chromium/patches/patch-third__party_perfetto_protos_perfetto_trace_ftrace_v4l2.proto b/chromium/patches/patch-third__party_perfetto_protos_perfetto_trace_ftrace_v4l2.proto
new file mode 100644
index 0000000000..822ad48961
--- /dev/null
+++ b/chromium/patches/patch-third__party_perfetto_protos_perfetto_trace_ftrace_v4l2.proto
@@ -0,0 +1,62 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/protos/perfetto/trace/ftrace/v4l2.proto.orig 2024-07-24 02:46:50.153714200 +0000
++++ third_party/perfetto/protos/perfetto/trace/ftrace/v4l2.proto
+@@ -10,7 +10,7 @@ message V4l2QbufFtraceEvent {
+ optional uint32 field = 2;
+ optional uint32 flags = 3;
+ optional uint32 index = 4;
+- optional int32 minor = 5;
++ optional int32 gminor = 5;
+ optional uint32 sequence = 6;
+ optional uint32 timecode_flags = 7;
+ optional uint32 timecode_frames = 8;
+@@ -30,7 +30,7 @@ message V4l2DqbufFtraceEvent {
+ optional uint32 field = 2;
+ optional uint32 flags = 3;
+ optional uint32 index = 4;
+- optional int32 minor = 5;
++ optional int32 gminor = 5;
+ optional uint32 sequence = 6;
+ optional uint32 timecode_flags = 7;
+ optional uint32 timecode_frames = 8;
+@@ -48,7 +48,7 @@ message V4l2DqbufFtraceEvent {
+ message Vb2V4l2BufQueueFtraceEvent {
+ optional uint32 field = 1;
+ optional uint32 flags = 2;
+- optional int32 minor = 3;
++ optional int32 gminor = 3;
+ optional uint32 sequence = 4;
+ optional uint32 timecode_flags = 5;
+ optional uint32 timecode_frames = 6;
+@@ -65,7 +65,7 @@ message Vb2V4l2BufQueueFtraceEvent {
+ message Vb2V4l2BufDoneFtraceEvent {
+ optional uint32 field = 1;
+ optional uint32 flags = 2;
+- optional int32 minor = 3;
++ optional int32 gminor = 3;
+ optional uint32 sequence = 4;
+ optional uint32 timecode_flags = 5;
+ optional uint32 timecode_frames = 6;
+@@ -82,7 +82,7 @@ message Vb2V4l2BufDoneFtraceEvent {
+ message Vb2V4l2QbufFtraceEvent {
+ optional uint32 field = 1;
+ optional uint32 flags = 2;
+- optional int32 minor = 3;
++ optional int32 gminor = 3;
+ optional uint32 sequence = 4;
+ optional uint32 timecode_flags = 5;
+ optional uint32 timecode_frames = 6;
+@@ -99,7 +99,7 @@ message Vb2V4l2QbufFtraceEvent {
+ message Vb2V4l2DqbufFtraceEvent {
+ optional uint32 field = 1;
+ optional uint32 flags = 2;
+- optional int32 minor = 3;
++ optional int32 gminor = 3;
+ optional uint32 sequence = 4;
+ optional uint32 timecode_flags = 5;
+ optional uint32 timecode_frames = 6;
diff --git a/chromium/patches/patch-third__party_perfetto_src_base_BUILD.gn b/chromium/patches/patch-third__party_perfetto_src_base_BUILD.gn
deleted file mode 100644
index a6f321d66a..0000000000
--- a/chromium/patches/patch-third__party_perfetto_src_base_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- third_party/perfetto/src/base/BUILD.gn.orig 2020-07-15 19:01:38.000000000 +0000
-+++ third_party/perfetto/src/base/BUILD.gn
-@@ -66,7 +66,7 @@ if (enable_stack_trace) {
- "../../include/perfetto/ext/base",
- "../../include/perfetto/ext/base",
- ]
-- if (is_linux || is_android) {
-+ if (is_linux || is_android || is_bsd) {
- deps += [ "../../gn:libbacktrace" ]
- }
- cflags = [ "-Wno-deprecated" ]
-@@ -147,7 +147,7 @@ perfetto_unittest_source_set("unittests"
- if (perfetto_build_standalone || perfetto_build_with_android) {
- # This causes some problems on the chromium waterfall.
- sources += [ "unix_socket_unittest.cc" ]
-- if (is_linux || is_android) {
-+ if (is_linux || is_android || is_bsd) {
- sources += [ "watchdog_unittest.cc" ]
- }
- }
diff --git a/chromium/patches/patch-third__party_perfetto_src_base_event__fd.cc b/chromium/patches/patch-third__party_perfetto_src_base_event__fd.cc
new file mode 100644
index 0000000000..116f289ec4
--- /dev/null
+++ b/chromium/patches/patch-third__party_perfetto_src_base_event__fd.cc
@@ -0,0 +1,28 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/src/base/event_fd.cc.orig 2024-07-24 02:46:50.173716000 +0000
++++ third_party/perfetto/src/base/event_fd.cc
+@@ -22,7 +22,8 @@
+ #if PERFETTO_BUILDFLAG(PERFETTO_OS_WIN)
+ #include <Windows.h>
+ #include <synchapi.h>
+-#elif PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
++#elif (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) && \
++ !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \
+ PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
+ #include <sys/eventfd.h>
+ #include <unistd.h>
+@@ -57,7 +58,8 @@ void EventFd::Clear() {
+ PERFETTO_DFATAL("EventFd::Clear()");
+ }
+
+-#elif PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
++#elif (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) && \
++ !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \
+ PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
+
+ EventFd::EventFd() {
diff --git a/chromium/patches/patch-third__party_perfetto_src_base_periodic__task.cc b/chromium/patches/patch-third__party_perfetto_src_base_periodic__task.cc
new file mode 100644
index 0000000000..3fd322e651
--- /dev/null
+++ b/chromium/patches/patch-third__party_perfetto_src_base_periodic__task.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/src/base/periodic_task.cc.orig 2024-07-24 02:46:50.177716500 +0000
++++ third_party/perfetto/src/base/periodic_task.cc
+@@ -24,7 +24,7 @@
+ #include "perfetto/base/time.h"
+ #include "perfetto/ext/base/file_utils.h"
+
+-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) && !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \
+ (PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) && __ANDROID_API__ >= 19)
+ #include <sys/timerfd.h>
+ #endif
+@@ -44,7 +44,7 @@ uint32_t GetNextDelayMs(const TimeMillis
+ }
+
+ ScopedPlatformHandle CreateTimerFd(const PeriodicTask::Args& args) {
+-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) && !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \
+ (PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) && __ANDROID_API__ >= 19)
+ ScopedPlatformHandle tfd(
+ timerfd_create(CLOCK_BOOTTIME, TFD_CLOEXEC | TFD_NONBLOCK));
diff --git a/chromium/patches/patch-third__party_perfetto_src_base_string__utils.cc b/chromium/patches/patch-third__party_perfetto_src_base_string__utils.cc
new file mode 100644
index 0000000000..2711015e0c
--- /dev/null
+++ b/chromium/patches/patch-third__party_perfetto_src_base_string__utils.cc
@@ -0,0 +1,21 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/src/base/string_utils.cc.orig 2024-07-24 02:46:50.177716500 +0000
++++ third_party/perfetto/src/base/string_utils.cc
+@@ -38,9 +38,10 @@ namespace base {
+
+ // Locale-independant as possible version of strtod.
+ double StrToD(const char* nptr, char** endptr) {
+-#if PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) || \
++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) || \
+ PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
+- PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE)
++ PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE)) && \
++ !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)
+ static auto c_locale = newlocale(LC_ALL, "C", nullptr);
+ return strtod_l(nptr, endptr, c_locale);
+ #else
diff --git a/chromium/patches/patch-third__party_perfetto_src_base_subprocess__posix.cc b/chromium/patches/patch-third__party_perfetto_src_base_subprocess__posix.cc
new file mode 100644
index 0000000000..f6e922ccc8
--- /dev/null
+++ b/chromium/patches/patch-third__party_perfetto_src_base_subprocess__posix.cc
@@ -0,0 +1,28 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/src/base/subprocess_posix.cc.orig 2024-07-24 02:46:50.177716500 +0000
++++ third_party/perfetto/src/base/subprocess_posix.cc
+@@ -35,7 +35,8 @@
+ #include <thread>
+ #include <tuple>
+
+-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) && \
++ !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \
+ PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
+ #include <sys/prctl.h>
+ #endif
+@@ -64,7 +65,8 @@ struct ChildProcessArgs {
+ // Don't add any dynamic allocation in this function. This will be invoked
+ // under a fork(), potentially in a state where the allocator lock is held.
+ void __attribute__((noreturn)) ChildProcess(ChildProcessArgs* args) {
+-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) && \
++ !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \
+ PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
+ // In no case we want a child process to outlive its parent process. This is
+ // relevant for tests, so that a test failure/crash doesn't leave child
diff --git a/chromium/patches/patch-third__party_perfetto_src_base_test_vm__test__utils.cc b/chromium/patches/patch-third__party_perfetto_src_base_test_vm__test__utils.cc
new file mode 100644
index 0000000000..49ebcc6ce9
--- /dev/null
+++ b/chromium/patches/patch-third__party_perfetto_src_base_test_vm__test__utils.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/src/base/test/vm_test_utils.cc.orig 2024-07-24 02:46:50.181717000 +0000
++++ third_party/perfetto/src/base/test/vm_test_utils.cc
+@@ -91,7 +91,7 @@ bool IsMapped(void* start, size_t size)
+ // Fuchsia doesn't yet support paging (b/119503290).
+ ignore_result(page_size);
+ return true;
+-#elif PERFETTO_BUILDFLAG(PERFETTO_OS_NACL)
++#elif PERFETTO_BUILDFLAG(PERFETTO_OS_NACL) || PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)
+ // mincore isn't available on NaCL.
+ ignore_result(page_size);
+ return true;
diff --git a/chromium/patches/patch-third__party_perfetto_src_base_thread__task__runner.cc b/chromium/patches/patch-third__party_perfetto_src_base_thread__task__runner.cc
new file mode 100644
index 0000000000..66d0092708
--- /dev/null
+++ b/chromium/patches/patch-third__party_perfetto_src_base_thread__task__runner.cc
@@ -0,0 +1,20 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/src/base/thread_task_runner.cc.orig 2024-07-24 02:46:50.181717000 +0000
++++ third_party/perfetto/src/base/thread_task_runner.cc
+@@ -27,8 +27,9 @@
+ #include "perfetto/ext/base/thread_utils.h"
+ #include "perfetto/ext/base/unix_task_runner.h"
+
+-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
+- PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
++ PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)) && \
++ !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)
+ #include <sys/prctl.h>
+ #endif
+
diff --git a/chromium/patches/patch-third__party_perfetto_src_base_unix__socket.cc b/chromium/patches/patch-third__party_perfetto_src_base_unix__socket.cc
new file mode 100644
index 0000000000..2d7bbdda34
--- /dev/null
+++ b/chromium/patches/patch-third__party_perfetto_src_base_unix__socket.cc
@@ -0,0 +1,46 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/src/base/unix_socket.cc.orig 2024-07-24 02:46:50.181717000 +0000
++++ third_party/perfetto/src/base/unix_socket.cc
+@@ -44,7 +44,7 @@
+ #include <unistd.h>
+ #endif
+
+-#if PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE)
++#if PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE) || defined(__FreeBSD__) || defined(__NetBSD__)
+ #include <sys/ucred.h>
+ #endif
+
+@@ -917,15 +917,27 @@ void UnixSocket::ReadPeerCredentialsPosi
+ return;
+ PERFETTO_CHECK(peer_cred_mode_ != SockPeerCredMode::kIgnore);
+
+-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
++#if !defined(__FreeBSD__) && !defined(__NetBSD__) && PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
+ PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
++#if PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)
++ struct sockpeercred user_cred;
++#else
+ struct ucred user_cred;
++#endif
+ socklen_t len = sizeof(user_cred);
+ int fd = sock_raw_.fd();
+ int res = getsockopt(fd, SOL_SOCKET, SO_PEERCRED, &user_cred, &len);
+ PERFETTO_CHECK(res == 0);
+ peer_uid_ = user_cred.uid;
+ peer_pid_ = user_cred.pid;
++#elif defined(__NetBSD__)
++ struct unpcbid user_cred;
++ socklen_t len = sizeof(user_cred);
++ int fd = sock_raw_.fd();
++ int res = getsockopt(fd, 0, LOCAL_PEEREID, &user_cred, &len);
++ PERFETTO_CHECK(res == 0);
++ peer_uid_ = user_cred.unp_euid;
++ peer_pid_ = user_cred.unp_pid;
+ #elif PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE)
+ struct xucred user_cred;
+ socklen_t len = sizeof(user_cred);
diff --git a/chromium/patches/patch-third__party_perfetto_src_trace__processor_importers_ftrace_v4l2__tracker.cc b/chromium/patches/patch-third__party_perfetto_src_trace__processor_importers_ftrace_v4l2__tracker.cc
new file mode 100644
index 0000000000..9ae8957625
--- /dev/null
+++ b/chromium/patches/patch-third__party_perfetto_src_trace__processor_importers_ftrace_v4l2__tracker.cc
@@ -0,0 +1,62 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/src/trace_processor/importers/ftrace/v4l2_tracker.cc.orig 2024-07-24 02:46:50.241722600 +0000
++++ third_party/perfetto/src/trace_processor/importers/ftrace/v4l2_tracker.cc
+@@ -62,7 +62,7 @@ void V4l2Tracker::ParseV4l2Event(uint64_
+ case FtraceEvent::kV4l2QbufFieldNumber: {
+ V4l2QbufFtraceEvent::Decoder pb_evt(bytes.data, bytes.size);
+ BufferEvent evt;
+- evt.device_minor = pb_evt.minor();
++ evt.device_minor = pb_evt.gminor();
+ evt.index = pb_evt.index();
+ evt.type = pb_evt.type();
+ evt.bytesused = pb_evt.bytesused();
+@@ -103,7 +103,7 @@ void V4l2Tracker::ParseV4l2Event(uint64_
+ case FtraceEvent::kV4l2DqbufFieldNumber: {
+ V4l2DqbufFtraceEvent::Decoder pb_evt(bytes.data, bytes.size);
+ BufferEvent evt;
+- evt.device_minor = pb_evt.minor();
++ evt.device_minor = pb_evt.gminor();
+ evt.index = pb_evt.index();
+ evt.type = pb_evt.type();
+ evt.bytesused = pb_evt.bytesused();
+@@ -149,7 +149,7 @@ void V4l2Tracker::ParseV4l2Event(uint64_
+ case FtraceEvent::kVb2V4l2BufQueueFieldNumber: {
+ Vb2V4l2BufQueueFtraceEvent::Decoder pb_evt(bytes.data, bytes.size);
+ BufferEvent evt;
+- evt.device_minor = pb_evt.minor();
++ evt.device_minor = pb_evt.gminor();
+ evt.index = std::nullopt;
+ evt.type = std::nullopt;
+ evt.bytesused = std::nullopt;
+@@ -180,7 +180,7 @@ void V4l2Tracker::ParseV4l2Event(uint64_
+ case FtraceEvent::kVb2V4l2BufDoneFieldNumber: {
+ Vb2V4l2BufDoneFtraceEvent::Decoder pb_evt(bytes.data, bytes.size);
+ BufferEvent evt;
+- evt.device_minor = pb_evt.minor();
++ evt.device_minor = pb_evt.gminor();
+ evt.index = std::nullopt;
+ evt.type = std::nullopt;
+ evt.bytesused = std::nullopt;
+@@ -211,7 +211,7 @@ void V4l2Tracker::ParseV4l2Event(uint64_
+ case FtraceEvent::kVb2V4l2QbufFieldNumber: {
+ Vb2V4l2QbufFtraceEvent::Decoder pb_evt(bytes.data, bytes.size);
+ BufferEvent evt;
+- evt.device_minor = pb_evt.minor();
++ evt.device_minor = pb_evt.gminor();
+ evt.index = std::nullopt;
+ evt.type = std::nullopt;
+ evt.bytesused = std::nullopt;
+@@ -242,7 +242,7 @@ void V4l2Tracker::ParseV4l2Event(uint64_
+ case FtraceEvent::kVb2V4l2DqbufFieldNumber: {
+ Vb2V4l2DqbufFtraceEvent::Decoder pb_evt(bytes.data, bytes.size);
+ BufferEvent evt;
+- evt.device_minor = pb_evt.minor();
++ evt.device_minor = pb_evt.gminor();
+ evt.index = std::nullopt;
+ evt.type = std::nullopt;
+ evt.bytesused = std::nullopt;
diff --git a/chromium/patches/patch-third__party_perfetto_src_tracing_core_clock__snapshots.cc b/chromium/patches/patch-third__party_perfetto_src_tracing_core_clock__snapshots.cc
new file mode 100644
index 0000000000..f0192c787e
--- /dev/null
+++ b/chromium/patches/patch-third__party_perfetto_src_tracing_core_clock__snapshots.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/src/tracing/core/clock_snapshots.cc.orig 2024-07-24 02:46:51.581852400 +0000
++++ third_party/perfetto/src/tracing/core/clock_snapshots.cc
+@@ -26,7 +26,8 @@ ClockSnapshotVector CaptureClockSnapshot
+ ClockSnapshotVector snapshot_data;
+ #if !PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE) && \
+ !PERFETTO_BUILDFLAG(PERFETTO_OS_WIN) && \
+- !PERFETTO_BUILDFLAG(PERFETTO_OS_NACL)
++ !PERFETTO_BUILDFLAG(PERFETTO_OS_NACL) && \
++ !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)
+ struct {
+ clockid_t id;
+ protos::pbzero::BuiltinClock type;
diff --git a/chromium/patches/patch-third__party_perfetto_src_tracing_core_tracing__service__impl.cc b/chromium/patches/patch-third__party_perfetto_src_tracing_core_tracing__service__impl.cc
deleted file mode 100644
index 49d5af7772..0000000000
--- a/chromium/patches/patch-third__party_perfetto_src_tracing_core_tracing__service__impl.cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$NetBSD$
-
---- third_party/perfetto/src/tracing/core/tracing_service_impl.cc.orig 2020-06-25 09:34:48.000000000 +0000
-+++ third_party/perfetto/src/tracing/core/tracing_service_impl.cc
-@@ -2458,6 +2458,7 @@ void TracingServiceImpl::SnapshotClocks(
-
- #if !PERFETTO_BUILDFLAG(PERFETTO_OS_MACOSX) && \
- !PERFETTO_BUILDFLAG(PERFETTO_OS_WIN) && \
-+ !PERFETTO_BUILDFLAG(PERFETTO_OS_NETBSD) && \
- !PERFETTO_BUILDFLAG(PERFETTO_OS_NACL)
- struct {
- clockid_t id;
diff --git a/chromium/patches/patch-third__party_perfetto_src_tracing_ipc_memfd.cc b/chromium/patches/patch-third__party_perfetto_src_tracing_ipc_memfd.cc
new file mode 100644
index 0000000000..3e3be42141
--- /dev/null
+++ b/chromium/patches/patch-third__party_perfetto_src_tracing_ipc_memfd.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/src/tracing/ipc/memfd.cc.orig 2024-07-24 02:46:51.589853300 +0000
++++ third_party/perfetto/src/tracing/ipc/memfd.cc
+@@ -20,7 +20,8 @@
+
+ #define PERFETTO_MEMFD_ENABLED() \
+ PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) || \
+- PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX)
++ (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) && \
++ !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD))
+
+ #if PERFETTO_MEMFD_ENABLED()
+
diff --git a/chromium/patches/patch-third__party_perfetto_src_tracing_track.cc b/chromium/patches/patch-third__party_perfetto_src_tracing_track.cc
new file mode 100644
index 0000000000..a25bd89a91
--- /dev/null
+++ b/chromium/patches/patch-third__party_perfetto_src_tracing_track.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/src/tracing/track.cc.orig 2024-07-24 02:46:51.601854300 +0000
++++ third_party/perfetto/src/tracing/track.cc
+@@ -155,7 +155,7 @@ namespace internal {
+ namespace {
+
+ uint64_t GetProcessStartTime() {
+-#if !PERFETTO_BUILDFLAG(PERFETTO_OS_WIN)
++#if !PERFETTO_BUILDFLAG(PERFETTO_OS_WIN) && !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)
+ std::string stat;
+ if (!base::ReadFile("/proc/self/stat", &stat))
+ return 0u;
diff --git a/chromium/patches/patch-third__party_perfetto_tools_BUILD.gn b/chromium/patches/patch-third__party_perfetto_tools_BUILD.gn
deleted file mode 100644
index 9ceb846e0a..0000000000
--- a/chromium/patches/patch-third__party_perfetto_tools_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- third_party/perfetto/tools/BUILD.gn.orig 2020-07-15 19:01:39.000000000 +0000
-+++ third_party/perfetto/tools/BUILD.gn
-@@ -27,7 +27,7 @@ group("tools") {
- "ftrace_proto_gen",
- "protoprofile",
- ]
-- if (is_linux || is_android) {
-+ if (is_linux || is_android || is_bsd) {
- deps += [
- "busy_threads",
- "cpu_utilization",
-@@ -43,7 +43,7 @@ group("tools") {
- }
- }
-
--if (is_linux && enable_perfetto_heapprofd) {
-+if ((is_linux || is_bsd) && enable_perfetto_heapprofd) {
- executable("profiling_sample_distribution") {
- sources = [ "profiling_sample_distribution.cc" ]
- deps = [
diff --git a/chromium/patches/patch-third__party_protobuf_src_google_protobuf_stubs_platform__macros.h b/chromium/patches/patch-third__party_protobuf_src_google_protobuf_stubs_platform__macros.h
index e1d0c50236..2814381341 100644
--- a/chromium/patches/patch-third__party_protobuf_src_google_protobuf_stubs_platform__macros.h
+++ b/chromium/patches/patch-third__party_protobuf_src_google_protobuf_stubs_platform__macros.h
@@ -1,13 +1,17 @@
$NetBSD$
---- third_party/protobuf/src/google/protobuf/stubs/platform_macros.h.orig 2020-07-15 18:56:32.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/protobuf/src/google/protobuf/stubs/platform_macros.h.orig 2024-07-24 02:45:06.443668600 +0000
+++ third_party/protobuf/src/google/protobuf/stubs/platform_macros.h
-@@ -118,7 +118,7 @@ GOOGLE_PROTOBUF_PLATFORM_ERROR
+@@ -122,7 +122,7 @@ GOOGLE_PROTOBUF_PLATFORM_ERROR
#undef GOOGLE_PROTOBUF_PLATFORM_ERROR
--#if defined(GOOGLE_PROTOBUF_OS_ANDROID) || defined(GOOGLE_PROTOBUF_OS_IPHONE) || defined(__OpenBSD__)
-+#if defined(GOOGLE_PROTOBUF_OS_ANDROID) || defined(GOOGLE_PROTOBUF_OS_IPHONE) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+-#if defined(GOOGLE_PROTOBUF_OS_ANDROID) || defined(GOOGLE_PROTOBUF_OS_IPHONE)
++#if defined(GOOGLE_PROTOBUF_OS_ANDROID) || defined(GOOGLE_PROTOBUF_OS_IPHONE) || defined(__OpenBSD__)
// Android ndk does not support the __thread keyword very well yet. Here
// we use pthread_key_create()/pthread_getspecific()/... methods for
// TLS support on android.
diff --git a/chromium/patches/patch-third__party_skia_BUILD.gn b/chromium/patches/patch-third__party_skia_BUILD.gn
deleted file mode 100644
index 6b76ff74fd..0000000000
--- a/chromium/patches/patch-third__party_skia_BUILD.gn
+++ /dev/null
@@ -1,123 +0,0 @@
-$NetBSD$
-
-https://skia-review.googlesource.com/c/skia/+/310856
-
---- third_party/skia/BUILD.gn.orig 2020-07-15 19:01:38.000000000 +0000
-+++ third_party/skia/BUILD.gn
-@@ -32,7 +32,7 @@ config("skia_public") {
- if (is_component_build) {
- defines += [ "SKIA_DLL" ]
- }
-- if (is_fuchsia || is_linux) {
-+ if (is_fuchsia || is_linux || is_bsd) {
- defines += [ "SK_R32_SHIFT=16" ]
- }
- if (skia_enable_flutter_defines) {
-@@ -607,7 +607,7 @@ optional("gpu") {
- } else if (skia_use_egl) {
- sources += [ "src/gpu/gl/egl/GrGLMakeNativeInterface_egl.cpp" ]
- libs += [ "EGL" ]
-- } else if (is_linux && skia_use_x11) {
-+ } else if ((is_linux || is_bsd) && skia_use_x11) {
- sources += [ "src/gpu/gl/glx/GrGLMakeNativeInterface_glx.cpp" ]
- libs += [ "GL" ]
- } else if (is_mac) {
-@@ -1075,7 +1075,7 @@ component("skia") {
- ]
- }
-
-- if (is_linux || target_cpu == "wasm") {
-+ if (is_linux || target_cpu == "wasm" || is_bsd) {
- sources += [ "src/ports/SkDebug_stdio.cpp" ]
- if (skia_use_egl) {
- libs += [ "GLESv2" ]
-@@ -1448,7 +1448,7 @@ if (skia_enable_tools) {
- if (is_android || skia_use_egl) {
- sources += [ "tools/gpu/gl/egl/CreatePlatformGLTestContext_egl.cpp" ]
- libs += [ "EGL" ]
-- } else if (is_linux) {
-+ } else if (is_linux || is_bsd) {
- sources += [ "tools/gpu/gl/glx/CreatePlatformGLTestContext_glx.cpp" ]
- libs += [
- "GLU",
-@@ -1762,7 +1762,7 @@ if (skia_enable_tools) {
- }
- }
-
-- if (is_linux || is_mac) {
-+ if (is_linux || is_mac || is_bsd) {
- test_app("skottie_tool") {
- deps = [ "modules/skottie:tool" ]
- }
-@@ -2206,7 +2206,7 @@ if (skia_enable_tools) {
- "tools/sk_app/android/surface_glue_android.cpp",
- ]
- libs += [ "android" ]
-- } else if (is_linux) {
-+ } else if (is_linux || is_bsd) {
- sources += [
- "tools/sk_app/unix/RasterWindowContext_unix.cpp",
- "tools/sk_app/unix/Window_unix.cpp",
-@@ -2247,7 +2247,7 @@ if (skia_enable_tools) {
- sources += [ "tools/sk_app/GLWindowContext.cpp" ]
- if (is_android) {
- sources += [ "tools/sk_app/android/GLWindowContext_android.cpp" ]
-- } else if (is_linux) {
-+ } else if (is_linux || is_bsd) {
- sources += [ "tools/sk_app/unix/GLWindowContext_unix.cpp" ]
- } else if (is_win) {
- sources += [ "tools/sk_app/win/GLWindowContext_win.cpp" ]
-@@ -2265,7 +2265,7 @@ if (skia_enable_tools) {
- sources += [ "tools/sk_app/VulkanWindowContext.cpp" ]
- if (is_android) {
- sources += [ "tools/sk_app/android/VulkanWindowContext_android.cpp" ]
-- } else if (is_linux) {
-+ } else if (is_linux || is_bsd) {
- sources += [ "tools/sk_app/unix/VulkanWindowContext_unix.cpp" ]
- libs += [ "X11-xcb" ]
- } else if (is_win) {
-@@ -2288,7 +2288,7 @@ if (skia_enable_tools) {
-
- if (skia_use_dawn) {
- sources += [ "tools/sk_app/DawnWindowContext.cpp" ]
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- if (dawn_enable_vulkan) {
- sources += [ "tools/sk_app/unix/DawnVulkanWindowContext_unix.cpp" ]
- defines = [ "VK_USE_PLATFORM_XCB_KHR" ]
-@@ -2314,7 +2314,7 @@ if (skia_enable_tools) {
- }
- }
-
-- if (!skia_use_vulkan && (is_mac || is_linux || is_win)) {
-+ if (!skia_use_vulkan && (is_mac || is_linux || is_win || is_bsd)) {
- test_app("fiddle_examples") {
- sources = [
- "tools/fiddle/all_examples.cpp",
-@@ -2389,7 +2389,7 @@ if (skia_enable_tools) {
- }
- }
-
-- if (skia_use_gl && !skia_use_angle && (is_linux || is_win || is_mac)) {
-+ if (skia_use_gl && !skia_use_angle && (is_linux || is_win || is_mac || is_bsd)) {
- test_app("HelloWorld") {
- sources = [ "example/HelloWorld.cpp" ]
- libs = []
-@@ -2404,7 +2404,7 @@ if (skia_enable_tools) {
- }
- }
-
-- if (skia_use_gl && (is_linux || is_mac || is_ios)) {
-+ if (skia_use_gl && (is_linux || is_mac || is_ios || is_bsd)) {
- test_app("SkiaSDLExample") {
- sources = [ "example/SkiaSDLExample.cpp" ]
- libs = []
-@@ -2416,7 +2416,7 @@ if (skia_enable_tools) {
- }
- }
-
-- if (skia_qt_path != "" && (is_win || is_linux || is_mac)) {
-+ if (skia_qt_path != "" && (is_win || is_linux || is_mac || is_bsd)) {
- action_foreach("generate_mocs") {
- script = "gn/call.py"
- sources = [ "tools/mdbviz/MainWindow.h" ]
diff --git a/chromium/patches/patch-third__party_skia_gn_BUILD.gn b/chromium/patches/patch-third__party_skia_gn_BUILD.gn
deleted file mode 100644
index e7b8eb2b90..0000000000
--- a/chromium/patches/patch-third__party_skia_gn_BUILD.gn
+++ /dev/null
@@ -1,33 +0,0 @@
-$NetBSD$
-
-https://skia-review.googlesource.com/c/skia/+/310856
-
---- third_party/skia/gn/BUILD.gn.orig 2020-07-15 19:01:39.000000000 +0000
-+++ third_party/skia/gn/BUILD.gn
-@@ -211,7 +211,7 @@ config("default") {
- libs += [ "objc" ]
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- libs += [ "pthread" ]
- }
-
-@@ -287,7 +287,7 @@ config("default") {
- ldflags += [ "-fsanitize=$sanitizers" ]
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- cflags_cc += [ "-stdlib=libc++" ]
- ldflags += [ "-stdlib=libc++" ]
- }
-@@ -572,7 +572,7 @@ config("executable") {
- ]
- } else if (is_mac) {
- ldflags = [ "-Wl,-rpath,@loader_path/." ]
-- } else if (is_linux) {
-+ } else if (is_linux || is_bsd) {
- ldflags = [
- "-rdynamic",
- "-Wl,-rpath,\$ORIGIN",
diff --git a/chromium/patches/patch-third__party_skia_gn_skia.gni b/chromium/patches/patch-third__party_skia_gn_skia.gni
deleted file mode 100644
index 106b8ac44a..0000000000
--- a/chromium/patches/patch-third__party_skia_gn_skia.gni
+++ /dev/null
@@ -1,36 +0,0 @@
-$NetBSD$
-
-https://skia-review.googlesource.com/c/skia/+/310856
-
---- third_party/skia/gn/skia.gni.orig 2020-07-15 19:01:39.000000000 +0000
-+++ third_party/skia/gn/skia.gni
-@@ -26,7 +26,7 @@ declare_args() {
- skia_enable_skrive = true
- skia_enable_sksl_interpreter = is_skia_dev_build
- skia_enable_skvm_jit =
-- is_skia_dev_build && ((target_cpu == "x64" && (is_linux || is_mac)) ||
-+ is_skia_dev_build && ((target_cpu == "x64" && (is_linux || is_mac || is_bsd)) ||
- (target_cpu == "arm64" && is_android))
- skia_enable_tools = is_skia_dev_build
- skia_enable_gpu_debug_layers = is_skia_dev_build && is_debug
-@@ -48,9 +48,9 @@ declare_args() {
- skia_use_experimental_xform = false
- skia_use_ffmpeg = false
- skia_use_fixed_gamma_text = is_android
-- skia_use_fontconfig = is_linux
-+ skia_use_fontconfig = is_linux || is_bsd
- skia_use_fonthost_mac = is_mac || is_ios
-- skia_use_freetype = is_android || is_fuchsia || is_linux
-+ skia_use_freetype = is_android || is_fuchsia || is_linux || is_bsd
- skia_use_harfbuzz = true
- skia_use_gl = !is_fuchsia
- skia_use_icu = !is_fuchsia
-@@ -66,7 +66,7 @@ declare_args() {
- skia_use_opencl = false
- skia_use_piex = !is_win
- skia_use_wuffs = false
-- skia_use_x11 = is_linux
-+ skia_use_x11 = is_linux || is_bsd
- skia_use_xps = true
- skia_use_zlib = true
-
diff --git a/chromium/patches/patch-third__party_skia_src_gpu_GrAutoLocaleSetter.h b/chromium/patches/patch-third__party_skia_src_gpu_GrAutoLocaleSetter.h
deleted file mode 100644
index 2d74016602..0000000000
--- a/chromium/patches/patch-third__party_skia_src_gpu_GrAutoLocaleSetter.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/skia/src/gpu/GrAutoLocaleSetter.h.orig 2020-07-15 19:01:40.000000000 +0000
-+++ third_party/skia/src/gpu/GrAutoLocaleSetter.h
-@@ -27,7 +27,7 @@
- #define HAVE_XLOCALE 0
- #endif
-
--#if defined(SK_BUILD_FOR_ANDROID) || defined(__UCLIBC__) || defined(_NEWLIB_VERSION)
-+#if defined(SK_BUILD_FOR_ANDROID) || defined(__UCLIBC__) || defined(_NEWLIB_VERSION) || defined(__NetBSD__)
- #define HAVE_LOCALE_T 0
- #else
- #define HAVE_LOCALE_T 1
diff --git a/chromium/patches/patch-third__party_skia_src_gpu_ganesh_GrAutoLocaleSetter.h b/chromium/patches/patch-third__party_skia_src_gpu_ganesh_GrAutoLocaleSetter.h
new file mode 100644
index 0000000000..48406687ba
--- /dev/null
+++ b/chromium/patches/patch-third__party_skia_src_gpu_ganesh_GrAutoLocaleSetter.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/skia/src/gpu/ganesh/GrAutoLocaleSetter.h.orig 2024-07-24 02:45:41.783091500 +0000
++++ third_party/skia/src/gpu/ganesh/GrAutoLocaleSetter.h
+@@ -27,7 +27,7 @@
+ #define HAVE_XLOCALE 0
+ #endif
+
+-#if defined(SK_BUILD_FOR_ANDROID) || defined(__UCLIBC__) || defined(_NEWLIB_VERSION)
++#if defined(SK_BUILD_FOR_ANDROID) || defined(__UCLIBC__) || defined(_NEWLIB_VERSION) || defined(__NetBSD__)
+ #define HAVE_LOCALE_T 0
+ #else
+ #define HAVE_LOCALE_T 1
diff --git a/chromium/patches/patch-third__party_skia_src_images_SkJpegEncoder.cpp b/chromium/patches/patch-third__party_skia_src_images_SkJpegEncoder.cpp
deleted file mode 100644
index 66b38cb8f5..0000000000
--- a/chromium/patches/patch-third__party_skia_src_images_SkJpegEncoder.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-$NetBSD$
-
---- third_party/skia/src/images/SkJpegEncoder.cpp.orig 2020-07-15 19:01:41.000000000 +0000
-+++ third_party/skia/src/images/SkJpegEncoder.cpp
-@@ -76,9 +76,14 @@ bool SkJpegEncoderMgr::setParams(const S
- return (transform_scanline_proc) nullptr;
- };
-
-+#if defined(JCS_EXTENSIONS)
- J_COLOR_SPACE jpegColorType = JCS_EXT_RGBA;
-+#else
-+ J_COLOR_SPACE jpegColorType = JCS_RGBA;
-+#endif
- int numComponents = 0;
- switch (srcInfo.colorType()) {
-+#if defined(JCS_EXTENSIONS)
- case kRGBA_8888_SkColorType:
- fProc = chooseProc8888();
- jpegColorType = JCS_EXT_RGBA;
-@@ -89,6 +94,7 @@ bool SkJpegEncoderMgr::setParams(const S
- jpegColorType = JCS_EXT_BGRA;
- numComponents = 4;
- break;
-+#endif
- case kRGB_565_SkColorType:
- fProc = transform_scanline_565;
- jpegColorType = JCS_RGB;
-@@ -108,6 +114,7 @@ bool SkJpegEncoderMgr::setParams(const S
- jpegColorType = JCS_GRAYSCALE;
- numComponents = 1;
- break;
-+#if defined(JCS_EXTENSIONS)
- case kRGBA_F16_SkColorType:
- if (kUnpremul_SkAlphaType == srcInfo.alphaType() &&
- options.fAlphaOption == SkJpegEncoder::AlphaOption::kBlendOnBlack) {
-@@ -118,6 +125,7 @@ bool SkJpegEncoderMgr::setParams(const S
- jpegColorType = JCS_EXT_RGBA;
- numComponents = 4;
- break;
-+#endif
- default:
- return false;
- }
diff --git a/chromium/patches/patch-third__party_skia_src_ports_SkMemory__malloc.cpp b/chromium/patches/patch-third__party_skia_src_ports_SkMemory__malloc.cpp
new file mode 100644
index 0000000000..c26f5eafd5
--- /dev/null
+++ b/chromium/patches/patch-third__party_skia_src_ports_SkMemory__malloc.cpp
@@ -0,0 +1,27 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/skia/src/ports/SkMemory_malloc.cpp.orig 2024-07-24 02:45:41.951108000 +0000
++++ third_party/skia/src/ports/SkMemory_malloc.cpp
+@@ -15,7 +15,8 @@
+
+ #if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS)
+ #include <malloc/malloc.h>
+-#elif defined(SK_BUILD_FOR_ANDROID) || defined(SK_BUILD_FOR_UNIX)
++#elif defined(SK_BUILD_FOR_ANDROID) || defined(SK_BUILD_FOR_UNIX) && !defined(__OpenBSD__) && \
++ !defined(__NetBSD__)
+ #include <malloc.h>
+ #elif defined(SK_BUILD_FOR_WIN)
+ #include <malloc.h>
+@@ -126,7 +127,7 @@ size_t sk_malloc_size(void* addr, size_t
+ #elif defined(SK_BUILD_FOR_ANDROID) && __ANDROID_API__ >= 17
+ completeSize = malloc_usable_size(addr);
+ SkASSERT(completeSize >= size);
+- #elif defined(SK_BUILD_FOR_UNIX)
++ #elif defined(SK_BUILD_FOR_UNIX) && !defined(__OpenBSD__) && !defined(__NetBSD__)
+ completeSize = malloc_usable_size(addr);
+ SkASSERT(completeSize >= size);
+ #elif defined(SK_BUILD_FOR_WIN)
diff --git a/chromium/patches/patch-third__party_skia_src_ports_SkOSFile__posix.cpp b/chromium/patches/patch-third__party_skia_src_ports_SkOSFile__posix.cpp
new file mode 100644
index 0000000000..24b7984e3b
--- /dev/null
+++ b/chromium/patches/patch-third__party_skia_src_ports_SkOSFile__posix.cpp
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/skia/src/ports/SkOSFile_posix.cpp.orig 2024-07-24 02:45:41.951108000 +0000
++++ third_party/skia/src/ports/SkOSFile_posix.cpp
+@@ -25,7 +25,7 @@
+ #endif
+
+ void sk_fsync(FILE* f) {
+-#if !defined(SK_BUILD_FOR_ANDROID) && !defined(__UCLIBC__) && !defined(_NEWLIB_VERSION)
++#if !defined(SK_BUILD_FOR_ANDROID) && !defined(__UCLIBC__) && !defined(_NEWLIB_VERSION) && !defined(__OpenBSD__)
+ int fd = fileno(f);
+ fsync(fd);
+ #endif
diff --git a/chromium/patches/patch-third__party_skia_src_sksl_SkSLString.h b/chromium/patches/patch-third__party_skia_src_sksl_SkSLString.h
deleted file mode 100644
index 5f97db2fed..0000000000
--- a/chromium/patches/patch-third__party_skia_src_sksl_SkSLString.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/skia/src/sksl/SkSLString.h.orig 2020-07-15 19:01:41.000000000 +0000
-+++ third_party/skia/src/sksl/SkSLString.h
-@@ -17,6 +17,8 @@
- #include "include/core/SkString.h"
- #endif
-
-+#include <stdarg.h>
-+
- namespace SkSL {
-
- // Represents a (not necessarily null-terminated) slice of a string.
diff --git a/chromium/patches/patch-third__party_skia_third__party_angle2_BUILD.gn b/chromium/patches/patch-third__party_skia_third__party_angle2_BUILD.gn
deleted file mode 100644
index 7e091e7fe4..0000000000
--- a/chromium/patches/patch-third__party_skia_third__party_angle2_BUILD.gn
+++ /dev/null
@@ -1,26 +0,0 @@
-$NetBSD$
-
-https://skia-review.googlesource.com/c/skia/+/310856
-
---- third_party/skia/third_party/angle2/BUILD.gn.orig 2020-07-15 19:01:41.000000000 +0000
-+++ third_party/skia/third_party/angle2/BUILD.gn
-@@ -37,8 +37,8 @@ config("common") {
- "$angle_root/src/third_party/khronos",
- ]
- cflags_cc = []
-- assert(is_linux || is_win) # TODO: is_mac?
-- if (is_linux) {
-+ assert(is_linux || is_win || is_bsd) # TODO: is_mac?
-+ if (is_linux || is_bsd) {
- defines += [
- "ANGLE_USE_X11",
- "GL_APICALL=__attribute__((visibility(\"default\")))",
-@@ -112,7 +112,7 @@ shared_library("libGLESv2") {
- if (is_win) {
- sources += [ "$angle_root/src/libGLESv2/libGLESv2_autogen.def" ]
- }
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- libs += [
- "X11",
- "Xi",
diff --git a/chromium/patches/patch-third__party_skia_third__party_libsdl_BUILD.gn b/chromium/patches/patch-third__party_skia_third__party_libsdl_BUILD.gn
deleted file mode 100644
index c097f3489d..0000000000
--- a/chromium/patches/patch-third__party_skia_third__party_libsdl_BUILD.gn
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
-https://skia-review.googlesource.com/c/skia/+/310856
-
---- third_party/skia/third_party/libsdl/BUILD.gn.orig 2020-07-15 19:01:41.000000000 +0000
-+++ third_party/skia/third_party/libsdl/BUILD.gn
-@@ -125,7 +125,7 @@ third_party("libsdl") {
- ]
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "../externals/sdl/src/filesystem/unix/SDL_sysfilesystem.c",
- "../externals/sdl/src/render/opengl/SDL_render_gl.c",
diff --git a/chromium/patches/patch-third__party_skia_third__party_opencl_BUILD.gn b/chromium/patches/patch-third__party_skia_third__party_opencl_BUILD.gn
deleted file mode 100644
index 0a2e28c594..0000000000
--- a/chromium/patches/patch-third__party_skia_third__party_opencl_BUILD.gn
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
-https://skia-review.googlesource.com/c/skia/+/310856
-
---- third_party/skia/third_party/opencl/BUILD.gn.orig 2020-07-15 19:01:41.000000000 +0000
-+++ third_party/skia/third_party/opencl/BUILD.gn
-@@ -5,7 +5,7 @@ third_party("opencl") {
- # (Some platforms only ship the C APIs, which cl.hpp builds on.)
- public_include_dirs = [ "../externals/opencl-registry/api/2.1" ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- libs = [ "OpenCL" ]
- } else if (is_mac) {
- libs = [ "OpenCL.framework" ]
diff --git a/chromium/patches/patch-third__party_speech-dispatcher_libspeechd__version.h b/chromium/patches/patch-third__party_speech-dispatcher_libspeechd__version.h
new file mode 100644
index 0000000000..9bcf39d757
--- /dev/null
+++ b/chromium/patches/patch-third__party_speech-dispatcher_libspeechd__version.h
@@ -0,0 +1,38 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/speech-dispatcher/libspeechd_version.h.orig 2024-08-01 14:09:01.033823374 +0000
++++ third_party/speech-dispatcher/libspeechd_version.h
+@@ -0,0 +1,29 @@
++/*
++ * libspeechd_version.h - Shared library for easy access to Speech Dispatcher functions (header)
++ *
++ * Copyright (C) 2001, 2002, 2003, 2004 Brailcom, o.p.s.
++ *
++ * This is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU Lesser General Public License as published by
++ * the Free Software Foundation; either version 2.1, or (at your option)
++ * any later version.
++ *
++ * This software is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program. If not, see <https://www.gnu.org/licenses/>.
++ *
++ * Id: patch-third_party_speech-dispatcher_libspeechd_version_h,v 1.4 2024/03/22 13:10:56 robert
++ */
++
++#ifndef _LIBSPEECHD_VERSION_H
++#define _LIBSPEECHD_VERSION_H
++
++#define LIBSPEECHD_MAJOR_VERSION 0
++#define LIBSPEECHD_MINOR_VERSION 11
++#define LIBSPEECHD_MICRO_VERSION 5
++
++#endif /* ifndef _LIBSPEECHD_VERSION_H */
diff --git a/chromium/patches/patch-third__party_speech-dispatcher_speechd__types.h b/chromium/patches/patch-third__party_speech-dispatcher_speechd__types.h
new file mode 100644
index 0000000000..cb77495cb7
--- /dev/null
+++ b/chromium/patches/patch-third__party_speech-dispatcher_speechd__types.h
@@ -0,0 +1,148 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/speech-dispatcher/speechd_types.h.orig 2024-07-24 02:45:07.539774700 +0000
++++ third_party/speech-dispatcher/speechd_types.h
+@@ -119,4 +119,139 @@ typedef struct {
+ SPDVoice voice;
+ } SPDMsgSettings;
+
++/* TEMP_FAILURE_RETRY seems to be available only on Linux. For systems that
++ * don't have this macro we provide our own version. This code was taken from
++ * file "/usr/include/unistd.h" from Debian package "libc6-dev"
++ * version 2.3.2.ds1-20. */
++#ifndef TEMP_FAILURE_RETRY
++#define TEMP_FAILURE_RETRY(expression) \
++ (__extension__ \
++ ({ long int __result; \
++ do __result = (long int) (expression); \
++ while (__result == -1L && errno == EINTR); \
++ __result; }))
++#endif
++
++#endif /* not ifndef SPEECHD_TYPES */
++
++/*
++ * speechd_types.h - types for Speech Dispatcher
++ *
++ * Copyright (C) 2001, 2002, 2003 Brailcom, o.p.s.
++ *
++ * This is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU Lesser General Public License as published by
++ * the Free Software Foundation; either version 2.1, or (at your option)
++ * any later version.
++ *
++ * This software is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program. If not, see <https://www.gnu.org/licenses/>.
++ */
++
++#ifndef SPEECHD_TYPES_H
++#define SPEECHD_TYPES_H
++
++typedef enum {
++ SPD_PUNCT_ALL = 0,
++ SPD_PUNCT_NONE = 1,
++ SPD_PUNCT_SOME = 2,
++ SPD_PUNCT_MOST = 3
++} SPDPunctuation;
++
++typedef enum {
++ SPD_CAP_NONE = 0,
++ SPD_CAP_SPELL = 1,
++ SPD_CAP_ICON = 2
++} SPDCapitalLetters;
++
++typedef enum {
++ SPD_SPELL_OFF = 0,
++ SPD_SPELL_ON = 1
++} SPDSpelling;
++
++typedef enum {
++ SPD_MALE1 = 1,
++ SPD_MALE2 = 2,
++ SPD_MALE3 = 3,
++ SPD_FEMALE1 = 4,
++ SPD_FEMALE2 = 5,
++ SPD_FEMALE3 = 6,
++ SPD_CHILD_MALE = 7,
++ SPD_CHILD_FEMALE = 8,
++ SPD_UNSPECIFIED = -1
++} SPDVoiceType;
++
++typedef struct {
++ char *name; /* Name of the voice (id) */
++ char *language; /* 2/3-letter ISO language code,
++ * possibly followed by 2/3-letter ISO region code,
++ * e.g. en-US */
++ char *variant; /* a not-well defined string describing dialect etc. */
++} SPDVoice;
++
++typedef enum {
++ SPD_DATA_TEXT = 0,
++ SPD_DATA_SSML = 1
++} SPDDataMode;
++
++typedef enum {
++ SPD_IMPORTANT = 1,
++ SPD_MESSAGE = 2,
++ SPD_TEXT = 3,
++ SPD_NOTIFICATION = 4,
++ SPD_PROGRESS = 5
++} SPDPriority;
++
++typedef enum {
++ SPD_BEGIN = 1,
++ SPD_END = 2,
++ SPD_INDEX_MARKS = 4,
++ SPD_CANCEL = 8,
++ SPD_PAUSE = 16,
++ SPD_RESUME = 32,
++
++ SPD_ALL = 0x3f
++} SPDNotification;
++
++typedef enum {
++ SPD_EVENT_BEGIN,
++ SPD_EVENT_END,
++ SPD_EVENT_INDEX_MARK,
++ SPD_EVENT_CANCEL,
++ SPD_EVENT_PAUSE,
++ SPD_EVENT_RESUME
++} SPDNotificationType;
++
++typedef enum {
++ SORT_BY_TIME = 0,
++ SORT_BY_ALPHABET = 1
++} ESort;
++
++typedef enum {
++ SPD_MSGTYPE_TEXT = 0,
++ SPD_MSGTYPE_SOUND_ICON = 1,
++ SPD_MSGTYPE_CHAR = 2,
++ SPD_MSGTYPE_KEY = 3,
++ SPD_MSGTYPE_SPELL = 99
++} SPDMessageType;
++
++typedef struct {
++ signed int rate;
++ signed int pitch;
++ signed int pitch_range;
++ signed int volume;
++
++ SPDPunctuation punctuation_mode;
++ SPDSpelling spelling_mode;
++ SPDCapitalLetters cap_let_recogn;
++
++ SPDVoiceType voice_type;
++ SPDVoice voice;
++} SPDMsgSettings;
++
+ #endif /* not ifndef SPEECHD_TYPES */
diff --git a/chromium/patches/patch-third__party_sqlite_BUILD.gn b/chromium/patches/patch-third__party_sqlite_BUILD.gn
index bbf5ff54a2..eb9e339d26 100644
--- a/chromium/patches/patch-third__party_sqlite_BUILD.gn
+++ b/chromium/patches/patch-third__party_sqlite_BUILD.gn
@@ -1,31 +1,17 @@
$NetBSD$
---- third_party/sqlite/BUILD.gn.orig 2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/sqlite/BUILD.gn.orig 2024-07-24 02:45:07.539774700 +0000
+++ third_party/sqlite/BUILD.gn
-@@ -138,7 +138,7 @@ config("sqlite_warnings") {
+@@ -142,7 +142,7 @@ config("sqlite_warnings") {
]
}
}
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
+- if (is_linux || is_chromeos) {
++ if ((is_linux || is_chromeos) && !is_bsd) {
cflags += [
# SQLite doesn't believe in compiler warnings, preferring testing.
# http://www.sqlite.org/faq.html#q17
-@@ -191,7 +191,7 @@ component("chromium_sqlite3") {
- }
- }
-
-- if (is_linux || is_android) {
-+ if (is_linux || is_android || is_bsd) {
- defines += [
- # Linux provides fdatasync(), a faster equivalent of fsync().
- "fdatasync=fdatasync",
-@@ -344,7 +344,7 @@ group("sqlite_dev") {
- ]
- }
-
--if (is_win || is_mac || is_linux) {
-+if (is_win || is_mac || is_linux || is_bsd) {
- executable("sqlite_shell") {
- include_dirs = [
- # SQLite's shell.c contains an '#include "sqlite3.h", which we want to be
diff --git a/chromium/patches/patch-third__party_sqlite_src_amalgamation__dev_sqlite3.c b/chromium/patches/patch-third__party_sqlite_src_amalgamation__dev_sqlite3.c
new file mode 100644
index 0000000000..9ad0b23dae
--- /dev/null
+++ b/chromium/patches/patch-third__party_sqlite_src_amalgamation__dev_sqlite3.c
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/sqlite/src/amalgamation_dev/sqlite3.c.orig 2024-07-24 02:46:40.672795800 +0000
++++ third_party/sqlite/src/amalgamation_dev/sqlite3.c
+@@ -20545,6 +20545,9 @@ SQLITE_PRIVATE int sqlite3HeapNearlyFull
+ ** The alloca() routine never returns NULL. This will cause code paths
+ ** that deal with sqlite3StackAlloc() failures to be unreachable.
+ */
++#if defined(__NetBSD__)
++# undef SQLITE_USE_ALLOCA
++#endif
+ #ifdef SQLITE_USE_ALLOCA
+ # define sqlite3StackAllocRaw(D,N) alloca(N)
+ # define sqlite3StackAllocRawNN(D,N) alloca(N)
diff --git a/chromium/patches/patch-third__party_sqlite_src_amalgamation_sqlite3.c b/chromium/patches/patch-third__party_sqlite_src_amalgamation_sqlite3.c
new file mode 100644
index 0000000000..3d095146e3
--- /dev/null
+++ b/chromium/patches/patch-third__party_sqlite_src_amalgamation_sqlite3.c
@@ -0,0 +1,47 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/sqlite/src/amalgamation/sqlite3.c.orig 2024-07-24 02:46:40.588787600 +0000
++++ third_party/sqlite/src/amalgamation/sqlite3.c
+@@ -14119,7 +14119,7 @@ struct fts5_api {
+ ** But _XOPEN_SOURCE define causes problems for Mac OS X, so omit
+ ** it.
+ */
+-#if !defined(_XOPEN_SOURCE) && !defined(__DARWIN__) && !defined(__APPLE__)
++#if !defined(_XOPEN_SOURCE) && !defined(__DARWIN__) && !defined(__APPLE__) && !defined(__FreeBSD__)
+ # define _XOPEN_SOURCE 600
+ #endif
+
+@@ -20532,6 +20532,9 @@ SQLITE_PRIVATE int sqlite3HeapNearlyFull
+ ** The alloca() routine never returns NULL. This will cause code paths
+ ** that deal with sqlite3StackAlloc() failures to be unreachable.
+ */
++#if defined(__NetBSD__)
++# undef SQLITE_USE_ALLOCA
++#endif
+ #ifdef SQLITE_USE_ALLOCA
+ # define sqlite3StackAllocRaw(D,N) alloca(N)
+ # define sqlite3StackAllocRawNN(D,N) alloca(N)
+@@ -44777,6 +44780,11 @@ static int unixRandomness(sqlite3_vfs *N
+ memset(zBuf, 0, nBuf);
+ randomnessPid = osGetpid(0);
+ #if !defined(SQLITE_TEST) && !defined(SQLITE_OMIT_RANDOMNESS)
++#if defined(__OpenBSD__)
++ {
++ arc4random_buf(zBuf, nBuf);
++ }
++#else
+ {
+ int fd, got;
+ fd = robust_open("/dev/urandom", O_RDONLY, 0);
+@@ -44793,6 +44801,7 @@ static int unixRandomness(sqlite3_vfs *N
+ }
+ }
+ #endif
++#endif
+ return nBuf;
+ }
+
diff --git a/chromium/patches/patch-third__party_swiftshader_BUILD.gn b/chromium/patches/patch-third__party_swiftshader_BUILD.gn
deleted file mode 100644
index fcd82e22c3..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/BUILD.gn.orig 2020-07-15 19:01:39.000000000 +0000
-+++ third_party/swiftshader/BUILD.gn
-@@ -134,7 +134,7 @@ config("swiftshader_config") {
- ]
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- ldflags = [ "-Wl,--gc-sections" ]
-
- if (current_cpu == "mipsel") {
diff --git a/chromium/patches/patch-third__party_swiftshader_src_Common_Configurator.cpp b/chromium/patches/patch-third__party_swiftshader_src_Common_Configurator.cpp
deleted file mode 100644
index ff9f03921b..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_Common_Configurator.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/Common/Configurator.cpp.orig 2020-07-15 19:01:39.000000000 +0000
-+++ third_party/swiftshader/src/Common/Configurator.cpp
-@@ -42,6 +42,9 @@ namespace sw
-
- bool Configurator::readFile()
- {
-+#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
-+ return false;
-+#endif
- #if defined(__unix__)
- if(access(path.c_str(), R_OK) != 0)
- {
diff --git a/chromium/patches/patch-third__party_swiftshader_src_Common_MutexLock.hpp b/chromium/patches/patch-third__party_swiftshader_src_Common_MutexLock.hpp
deleted file mode 100644
index 0b2d78a5a9..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_Common_MutexLock.hpp
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/Common/MutexLock.hpp.orig 2020-07-15 19:01:39.000000000 +0000
-+++ third_party/swiftshader/src/Common/MutexLock.hpp
-@@ -17,7 +17,7 @@
-
- #include "Thread.hpp"
-
--#if defined(__linux__)
-+#if defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
- // Use a pthread mutex on Linux. Since many processes may use SwiftShader
- // at the same time it's best to just have the scheduler overhead.
- #include <pthread.h>
diff --git a/chromium/patches/patch-third__party_swiftshader_src_Common_SharedLibrary.hpp b/chromium/patches/patch-third__party_swiftshader_src_Common_SharedLibrary.hpp
deleted file mode 100644
index 667e1c2614..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_Common_SharedLibrary.hpp
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/Common/SharedLibrary.hpp.orig 2020-07-15 19:01:39.000000000 +0000
-+++ third_party/swiftshader/src/Common/SharedLibrary.hpp
-@@ -97,7 +97,7 @@ void *loadLibrary(const std::string &lib
-
- inline void *getLibraryHandle(const char *path)
- {
-- #ifdef __ANDROID__
-+ #if defined(__ANDROID__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
- // bionic doesn't support RTLD_NOLOAD before L
- return dlopen(path, RTLD_NOW | RTLD_LOCAL);
- #else
diff --git a/chromium/patches/patch-third__party_swiftshader_src_Main_BUILD.gn b/chromium/patches/patch-third__party_swiftshader_src_Main_BUILD.gn
deleted file mode 100644
index 83a5038206..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_Main_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/Main/BUILD.gn.orig 2020-07-15 19:01:39.000000000 +0000
-+++ third_party/swiftshader/src/Main/BUILD.gn
-@@ -49,7 +49,7 @@ swiftshader_source_set("swiftshader_main
-
- if (use_ozone && !is_win) {
- sources += [ "FrameBufferOzone.cpp" ]
-- } else if (is_linux) {
-+ } else if (is_linux || is_bsd) {
- if (use_x11) {
- sources += [
- "FrameBufferX11.cpp",
diff --git a/chromium/patches/patch-third__party_swiftshader_src_Main_SwiftConfig.cpp b/chromium/patches/patch-third__party_swiftshader_src_Main_SwiftConfig.cpp
deleted file mode 100644
index 3c95c47a65..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_Main_SwiftConfig.cpp
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/Main/SwiftConfig.cpp.orig 2020-07-15 19:01:39.000000000 +0000
-+++ third_party/swiftshader/src/Main/SwiftConfig.cpp
-@@ -764,7 +764,11 @@ namespace sw
- struct stat status;
- int lastModified = ini.getInteger("LastModified", "Time", 0);
-
-+#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
-+ bool noConfig = false;
-+#else
- bool noConfig = stat("SwiftShader.ini", &status) != 0;
-+#endif
- newConfig = !noConfig && abs((int)status.st_mtime - lastModified) > 1;
-
- if(disableServerOverride)
diff --git a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_compiler_BUILD.gn b/chromium/patches/patch-third__party_swiftshader_src_OpenGL_compiler_BUILD.gn
deleted file mode 100644
index 11028368bb..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_compiler_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/OpenGL/compiler/BUILD.gn.orig 2020-07-15 19:01:39.000000000 +0000
-+++ third_party/swiftshader/src/OpenGL/compiler/BUILD.gn
-@@ -76,7 +76,7 @@ swiftshader_source_set("swiftshader_open
- all_dependent_configs = [ ":swiftshader_translator_disable_pool_alloc" ]
- }
-
-- if (is_linux || is_mac || is_fuchsia) {
-+ if (is_linux || is_mac || is_fuchsia || is_bsd) {
- sources += [ "ossource_posix.cpp" ]
- } else if (is_win) {
- sources += [ "ossource_win.cpp" ]
diff --git a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_BUILD.gn b/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_BUILD.gn
deleted file mode 100644
index 64f5399083..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/OpenGL/libEGL/BUILD.gn.orig 2020-07-15 19:01:39.000000000 +0000
-+++ third_party/swiftshader/src/OpenGL/libEGL/BUILD.gn
-@@ -78,7 +78,7 @@ swiftshader_shared_library("swiftshader_
- "-Wl,-exported_symbols_list," +
- rebase_path("libEGL.exports", root_build_dir),
- ]
-- } else if (is_linux) {
-+ } else if (is_linux || is_bsd) {
- if (use_x11) {
- sources += [ "../../Main/libX11.cpp" ]
- }
diff --git a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_Display.cpp b/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_Display.cpp
deleted file mode 100644
index 1717879ce9..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_Display.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/OpenGL/libEGL/Display.cpp.orig 2020-07-15 19:01:39.000000000 +0000
-+++ third_party/swiftshader/src/OpenGL/libEGL/Display.cpp
-@@ -691,7 +691,7 @@ bool Display::isValidWindow(EGLNativeWin
- return status != 0;
- }
- return false;
-- #elif defined(__linux__)
-+ #elif defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
- return false; // Non X11 linux is headless only
- #elif defined(__APPLE__)
- return sw::OSX::IsValidWindow(window);
-@@ -869,7 +869,7 @@ sw::Format Display::getDisplayFormat() c
- {
- return sw::FORMAT_X8R8G8B8;
- }
-- #elif defined(__linux__) // Non X11 linux is headless only
-+ #elif defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) // Non X11 linux is headless only
- return sw::FORMAT_A8B8G8R8;
- #elif defined(__APPLE__)
- return sw::FORMAT_A8B8G8R8;
diff --git a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_Surface.cpp b/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_Surface.cpp
deleted file mode 100644
index fad4b6e811..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_Surface.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/OpenGL/libEGL/Surface.cpp.orig 2020-07-15 19:01:39.000000000 +0000
-+++ third_party/swiftshader/src/OpenGL/libEGL/Surface.cpp
-@@ -362,7 +362,7 @@ bool WindowSurface::checkForResize()
-
- int windowWidth = windowAttributes.width;
- int windowHeight = windowAttributes.height;
-- #elif defined(__linux__)
-+ #elif defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
- // Non X11 linux is headless only
- int windowWidth = 100;
- int windowHeight = 100;
diff --git a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_libEGL.cpp b/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_libEGL.cpp
deleted file mode 100644
index 90fac783de..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_libEGL.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/OpenGL/libEGL/libEGL.cpp.orig 2020-07-15 19:01:39.000000000 +0000
-+++ third_party/swiftshader/src/OpenGL/libEGL/libEGL.cpp
-@@ -153,7 +153,7 @@ EGLDisplay EGLAPIENTRY GetDisplay(EGLNat
- // FIXME: Check if display_id is the default display
- }
-
-- #if defined(__linux__) && !defined(__ANDROID__)
-+ #if (defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)) && !defined(__ANDROID__)
- #if defined(USE_X11)
- if(!libX11)
- #endif // Non X11 linux is headless only
-@@ -216,7 +216,7 @@ const char *EGLAPIENTRY QueryString(EGLD
- {
- return success(
- "EGL_KHR_client_get_all_proc_addresses "
--#if defined(__linux__) && !defined(__ANDROID__)
-+#if (defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)) && !defined(__ANDROID__)
- "EGL_KHR_platform_gbm "
- #endif
- #if defined(USE_X11)
-@@ -1298,7 +1298,7 @@ EGLDisplay EGLAPIENTRY GetPlatformDispla
- {
- TRACE("(EGLenum platform = 0x%X, void *native_display = %p, const EGLAttrib *attrib_list = %p)", platform, native_display, attrib_list);
-
-- #if defined(__linux__) && !defined(__ANDROID__)
-+ #if (defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)) && !defined(__ANDROID__)
- switch(platform)
- {
- #if defined(USE_X11)
diff --git a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_libEGL.hpp b/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_libEGL.hpp
deleted file mode 100644
index d46389ccb0..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_libEGL.hpp
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/OpenGL/libEGL/libEGL.hpp.orig 2020-07-15 19:01:39.000000000 +0000
-+++ third_party/swiftshader/src/OpenGL/libEGL/libEGL.hpp
-@@ -100,7 +100,7 @@ private:
- #endif
- #elif defined(__ANDROID__)
- const char *libEGL_lib[] = {"libEGL_swiftshader.so", "libEGL_swiftshader.so"};
-- #elif defined(__linux__)
-+ #elif defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__))
- #if defined(__LP64__)
- const char *libEGL_lib[] = {"lib64EGL_translator.so", "libEGL.so.1", "libEGL.so"};
- #else
diff --git a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libGLES__CM_libGLES__CM.hpp b/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libGLES__CM_libGLES__CM.hpp
deleted file mode 100644
index c7bf7ec00a..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libGLES__CM_libGLES__CM.hpp
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/OpenGL/libGLES_CM/libGLES_CM.hpp.orig 2020-07-15 19:01:39.000000000 +0000
-+++ third_party/swiftshader/src/OpenGL/libGLES_CM/libGLES_CM.hpp
-@@ -261,7 +261,7 @@ private:
- #endif
- #elif defined(__ANDROID__)
- const char *libGLES_CM_lib[] = {"libGLESv1_CM_swiftshader.so", "libGLESv1_CM_swiftshader.so"};
-- #elif defined(__linux__)
-+ #elif defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__))
- #if defined(__LP64__)
- const char *libGLES_CM_lib[] = {"lib64GLES_CM_translator.so", "libGLES_CM.so.1", "libGLES_CM.so"};
- #else
diff --git a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libGLESv2_BUILD.gn b/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libGLESv2_BUILD.gn
deleted file mode 100644
index ae5a860813..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libGLESv2_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/OpenGL/libGLESv2/BUILD.gn.orig 2020-07-15 19:01:39.000000000 +0000
-+++ third_party/swiftshader/src/OpenGL/libGLESv2/BUILD.gn
-@@ -130,7 +130,7 @@ swiftshader_shared_library("swiftshader_
- "-Wl,-exported_symbols_list," +
- rebase_path("libGLESv2.exports", root_build_dir),
- ]
-- } else if (is_linux) {
-+ } else if (is_linux || is_bsd) {
- inputs = [
- "libGLESv2.lds",
- ]
diff --git a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libGLESv2_libGLESv2.hpp b/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libGLESv2_libGLESv2.hpp
deleted file mode 100644
index 08b9d658fe..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libGLESv2_libGLESv2.hpp
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/OpenGL/libGLESv2/libGLESv2.hpp.orig 2020-07-15 19:01:39.000000000 +0000
-+++ third_party/swiftshader/src/OpenGL/libGLESv2/libGLESv2.hpp
-@@ -286,7 +286,7 @@ private:
- #endif
- #elif defined(__ANDROID__)
- const char *libGLESv2_lib[] = {"libGLESv2_swiftshader.so", "libGLESv2_swiftshader.so"};
-- #elif defined(__linux__)
-+ #elif defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__))
- #if defined(__LP64__)
- const char *libGLESv2_lib[] = {"lib64GLES_V2_translator.so", "libGLESv2.so.2", "libGLESv2.so"};
- #else
diff --git a/chromium/patches/patch-third__party_swiftshader_src_Reactor_BUILD.gn b/chromium/patches/patch-third__party_swiftshader_src_Reactor_BUILD.gn
deleted file mode 100644
index 2fea2fe92f..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_Reactor_BUILD.gn
+++ /dev/null
@@ -1,40 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/Reactor/BUILD.gn.orig 2020-07-15 19:01:39.000000000 +0000
-+++ third_party/swiftshader/src/Reactor/BUILD.gn
-@@ -19,7 +19,7 @@ declare_args() {
- # PPC64.
- use_swiftshader_with_subzero =
- current_cpu != "arm64" && current_cpu != "mips64el" && current_cpu != "ppc64"
-- supports_llvm = is_linux || is_fuchsia || is_win || is_android || is_mac
-+ supports_llvm = is_linux || is_fuchsia || is_win || is_android || is_mac || is_bsd
- }
-
- config("swiftshader_reactor_private_config") {
-@@ -109,6 +109,8 @@ if (use_swiftshader_with_subzero) {
- [ "../../third_party/llvm-subzero/build/Fuchsia/include/" ]
- } else if (is_mac) {
- include_dirs += [ "../../third_party/llvm-subzero/build/MacOS/include/" ]
-+ } else if (is_netbsd) {
-+ include_dirs += [ "../../third_party/llvm-subzero/build/NetBSD/include/" ]
- }
- }
-
-@@ -143,7 +145,7 @@ if (use_swiftshader_with_subzero) {
- cflags += [ "-Wno-sign-compare" ]
- }
- }
-- } else if (is_linux || is_mac || is_fuchsia) {
-+ } else if (is_linux || is_mac || is_fuchsia || is_bsd) {
- cflags += [ "-Wno-macro-redefined" ]
- }
-
-@@ -352,6 +354,8 @@ if (supports_llvm) {
- include_dirs += [ "$llvm7_dir/configs/android/include/" ]
- } else if (is_mac) {
- include_dirs += [ "$llvm7_dir/configs/darwin/include/" ]
-+ } else if (is_netbsd) {
-+ include_dirs += [ "$llvm7_dir/configs/netbsd/include/" ]
- } else {
- assert(false, "llvm-7.0 not configured for target platform")
- }
diff --git a/chromium/patches/patch-third__party_swiftshader_src_Reactor_Debug.cpp b/chromium/patches/patch-third__party_swiftshader_src_Reactor_Debug.cpp
index 04e2c630ab..830a37c5ff 100644
--- a/chromium/patches/patch-third__party_swiftshader_src_Reactor_Debug.cpp
+++ b/chromium/patches/patch-third__party_swiftshader_src_Reactor_Debug.cpp
@@ -1,58 +1,18 @@
$NetBSD$
---- third_party/swiftshader/src/Reactor/Debug.cpp.orig 2020-07-15 19:01:39.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/swiftshader/src/Reactor/Debug.cpp.orig 2024-07-24 02:45:37.738700000 +0000
+++ third_party/swiftshader/src/Reactor/Debug.cpp
-@@ -23,13 +23,13 @@
- # include <android/log.h>
- #endif
-
--#if defined(__unix__)
-+#if defined(__unix__) && !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__)
- # define PTRACE
- # include <sys/ptrace.h>
- # include <sys/types.h>
- #elif defined(_WIN32) || defined(_WIN64)
- # include <windows.h>
--#elif defined(__APPLE__) || defined(__MACH__)
-+#elif defined(__APPLE__) || defined(__MACH__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
- # include <sys/sysctl.h>
- # include <unistd.h>
- #endif
-@@ -46,7 +46,7 @@ namespace {
+@@ -46,7 +46,8 @@ namespace {
bool IsUnderDebugger()
{
-#if defined(PTRACE) && !defined(__APPLE__) && !defined(__MACH__)
-+#if defined(PTRACE) && !defined(__APPLE__) && !defined(__MACH__) && !defined(__NetBSD__) && !defined(__FreeBSD__) && !defined(__OpenBSD__)
++#if defined(PTRACE) && !defined(__APPLE__) && !defined(__MACH__) && !defined(__OpenBSD__) && !defined(__FreeBSD__) && \
++ !defined(__NetBSD__)
static bool checked = false;
static bool res = false;
-@@ -91,6 +91,28 @@ bool IsUnderDebugger()
-
- // We're being debugged if the P_TRACED flag is set
- return ((info.kp_proc.p_flag & P_TRACED) != 0);
-+#elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
-+ int res = 0;
-+ struct kinfo_proc2 info;
-+ size_t length;
-+
-+ int request[6] = {
-+ CTL_KERN,
-+ KERN_PROC2,
-+ KERN_PROC_PID,
-+ getpid(),
-+ sizeof(struct kinfo_proc2),
-+ 1,
-+ };
-+
-+ if (sysctl(request, 6, NULL, &length, NULL, 0) < 0)
-+ return -1;
-+
-+ request[5] = (length / sizeof(struct kinfo_proc2));
-+ if (sysctl(request, 6, &info, &length, NULL, 0) < 0)
-+ return -1;
-+
-+ return ((info.p_flag & P_TRACED) != 0);
- #else
- return false;
- #endif
diff --git a/chromium/patches/patch-third__party_swiftshader_src_System_BUILD.gn b/chromium/patches/patch-third__party_swiftshader_src_System_BUILD.gn
deleted file mode 100644
index 39e5e82672..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_System_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/System/BUILD.gn.orig 2020-07-15 19:01:40.000000000 +0000
-+++ third_party/swiftshader/src/System/BUILD.gn
-@@ -28,7 +28,7 @@ swiftshader_source_set("System_headers")
- "Socket.hpp",
- "Timer.hpp",
- ]
-- if (is_linux || is_android) {
-+ if (is_linux || is_android || is_bsd) {
- sources += [
- "Linux/MemFd.hpp",
- ]
-@@ -46,7 +46,7 @@ swiftshader_source_set("System") {
- "Memory.cpp",
- "Timer.cpp",
- ]
-- if (is_linux || is_android) {
-+ if (is_linux || is_android || is_bsd) {
- sources += [
- "Linux/MemFd.cpp",
- ]
diff --git a/chromium/patches/patch-third__party_swiftshader_src_System_Configurator.cpp b/chromium/patches/patch-third__party_swiftshader_src_System_Configurator.cpp
new file mode 100644
index 0000000000..4c00e98321
--- /dev/null
+++ b/chromium/patches/patch-third__party_swiftshader_src_System_Configurator.cpp
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/swiftshader/src/System/Configurator.cpp.orig 2024-07-24 02:45:37.746700800 +0000
++++ third_party/swiftshader/src/System/Configurator.cpp
+@@ -38,6 +38,9 @@ namespace sw {
+
+ Configurator::Configurator(const std::string &filePath)
+ {
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
++ return;
++#endif
+ std::fstream file(filePath, std::ios::in);
+ if(file.fail())
+ {
diff --git a/chromium/patches/patch-third__party_swiftshader_src_System_Debug.cpp b/chromium/patches/patch-third__party_swiftshader_src_System_Debug.cpp
deleted file mode 100644
index 989d2b0438..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_System_Debug.cpp
+++ /dev/null
@@ -1,58 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/System/Debug.cpp.orig 2020-07-15 19:01:40.000000000 +0000
-+++ third_party/swiftshader/src/System/Debug.cpp
-@@ -18,13 +18,13 @@
- # include <android/log.h>
- #endif
-
--#if defined(__unix__)
-+#if defined(__unix__) && !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__)
- # define PTRACE
- # include <sys/ptrace.h>
- # include <sys/types.h>
- #elif defined(_WIN32) || defined(_WIN64)
- # include <windows.h>
--#elif defined(__APPLE__) || defined(__MACH__)
-+#elif defined(__APPLE__) || defined(__MACH__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
- # include <sys/sysctl.h>
- # include <unistd.h>
- #endif
-@@ -46,7 +46,7 @@ namespace {
-
- bool IsUnderDebugger()
- {
--#if defined(PTRACE) && !defined(__APPLE__) && !defined(__MACH__)
-+#if defined(PTRACE) && !defined(__APPLE__) && !defined(__MACH__) && !defined(__NetBSD__) && !defined(__FreeBSD__) && !defined(__OpenBSD__)
- static bool checked = false;
- static bool res = false;
-
-@@ -91,6 +91,28 @@ bool IsUnderDebugger()
-
- // We're being debugged if the P_TRACED flag is set
- return ((info.kp_proc.p_flag & P_TRACED) != 0);
-+#elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
-+ int res = 0;
-+ struct kinfo_proc2 info;
-+ size_t length;
-+
-+ int request[6] = {
-+ CTL_KERN,
-+ KERN_PROC2,
-+ KERN_PROC_PID,
-+ getpid(),
-+ sizeof(struct kinfo_proc2),
-+ 1,
-+ };
-+
-+ if (sysctl(request, 6, NULL, &length, NULL, 0) < 0)
-+ return -1;
-+
-+ request[5] = (length / sizeof(struct kinfo_proc2));
-+ if (sysctl(request, 6, &info, &length, NULL, 0) < 0)
-+ return -1;
-+
-+ return ((info.p_flag & P_TRACED) != 0);
- #else
- return false;
- #endif
diff --git a/chromium/patches/patch-third__party_swiftshader_src_System_Linux_MemFd.cpp b/chromium/patches/patch-third__party_swiftshader_src_System_Linux_MemFd.cpp
new file mode 100644
index 0000000000..ccc72321ef
--- /dev/null
+++ b/chromium/patches/patch-third__party_swiftshader_src_System_Linux_MemFd.cpp
@@ -0,0 +1,43 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/swiftshader/src/System/Linux/MemFd.cpp.orig 2024-07-24 02:45:37.746700800 +0000
++++ third_party/swiftshader/src/System/Linux/MemFd.cpp
+@@ -25,6 +25,7 @@
+ # define MFD_CLOEXEC 0x0001U
+ #endif
+
++#if !defined(__OpenBSD__) && !defined(__FreeBSD__) && !defined(__NetBSD__)
+ #if __aarch64__
+ # define __NR_memfd_create 279
+ #elif __arm__
+@@ -36,6 +37,7 @@
+ #elif __x86_64__
+ # define __NR_memfd_create 319
+ #endif /* __NR_memfd_create__ */
++#endif
+
+ LinuxMemFd::~LinuxMemFd()
+ {
+@@ -63,13 +65,17 @@ bool LinuxMemFd::allocate(const char *na
+ {
+ close();
+
+-#ifndef __NR_memfd_create
++#if !defined(__NR_memfd_create) || defined(__OpenBSD__)
+ TRACE("memfd_create() not supported on this system!");
+ return false;
+ #else
+ // In the event of no system call this returns -1 with errno set
+ // as ENOSYS.
++#if defined(__FreeBSD__) || defined(__NetBSD__)
++ fd_ = memfd_create(name, MFD_CLOEXEC);
++#else
+ fd_ = syscall(__NR_memfd_create, name, MFD_CLOEXEC);
++#endif
+ if(fd_ < 0)
+ {
+ TRACE("memfd_create() returned %d: %s", errno, strerror(errno));
diff --git a/chromium/patches/patch-third__party_swiftshader_src_Vulkan_VkSemaphoreExternalLinux.hpp b/chromium/patches/patch-third__party_swiftshader_src_Vulkan_VkSemaphoreExternalLinux.hpp
new file mode 100644
index 0000000000..b657074703
--- /dev/null
+++ b/chromium/patches/patch-third__party_swiftshader_src_Vulkan_VkSemaphoreExternalLinux.hpp
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/swiftshader/src/Vulkan/VkSemaphoreExternalLinux.hpp.orig 2024-07-24 02:45:37.758701800 +0000
++++ third_party/swiftshader/src/Vulkan/VkSemaphoreExternalLinux.hpp
+@@ -49,13 +49,17 @@ public:
+ {
+ pthread_mutexattr_t mattr;
+ pthread_mutexattr_init(&mattr);
++#if 0
+ pthread_mutexattr_setpshared(&mattr, PTHREAD_PROCESS_SHARED);
++#endif
+ pthread_mutex_init(&mutex, &mattr);
+ pthread_mutexattr_destroy(&mattr);
+
+ pthread_condattr_t cattr;
+ pthread_condattr_init(&cattr);
++#if 0
+ pthread_condattr_setpshared(&cattr, PTHREAD_PROCESS_SHARED);
++#endif
+ pthread_cond_init(&cond, &cattr);
+ pthread_condattr_destroy(&cattr);
+ }
diff --git a/chromium/patches/patch-third__party_swiftshader_src_WSI_BUILD.gn b/chromium/patches/patch-third__party_swiftshader_src_WSI_BUILD.gn
deleted file mode 100644
index d137f011cd..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_WSI_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/WSI/BUILD.gn.orig 2020-07-15 19:01:40.000000000 +0000
-+++ third_party/swiftshader/src/WSI/BUILD.gn
-@@ -31,7 +31,7 @@ swiftshader_source_set("WSI") {
- "VkSwapchainKHR.hpp",
- ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "XcbSurfaceKHR.cpp",
- "XcbSurfaceKHR.hpp",
diff --git a/chromium/patches/patch-third__party_swiftshader_src_WSI_libXCB.cpp b/chromium/patches/patch-third__party_swiftshader_src_WSI_libXCB.cpp
new file mode 100644
index 0000000000..99bf12ecfb
--- /dev/null
+++ b/chromium/patches/patch-third__party_swiftshader_src_WSI_libXCB.cpp
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/swiftshader/src/WSI/libXCB.cpp.orig 2024-07-24 02:45:37.762702200 +0000
++++ third_party/swiftshader/src/WSI/libXCB.cpp
+@@ -57,7 +57,7 @@ LibXcbExports *LibXCB::loadExports()
+ }
+ else
+ {
+- libxcb = loadLibrary("libxcb.so.1");
++ libxcb = loadLibrary("libxcb.so");
+ }
+
+ if(getProcAddress(RTLD_DEFAULT, "xcb_shm_query_version")) // Search the global scope for pre-loaded XCB library.
+@@ -66,7 +66,7 @@ LibXcbExports *LibXCB::loadExports()
+ }
+ else
+ {
+- libshm = loadLibrary("libxcb-shm.so.0");
++ libshm = loadLibrary("libxcb-shm.so");
+ }
+
+ return LibXcbExports(libxcb, libshm);
diff --git a/chromium/patches/patch-third__party_swiftshader_src_vulkan_BUILD.gn b/chromium/patches/patch-third__party_swiftshader_src_vulkan_BUILD.gn
deleted file mode 100644
index eb88215325..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_vulkan_BUILD.gn
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/Vulkan/BUILD.gn.orig 2020-07-15 19:01:40.000000000 +0000
-+++ third_party/swiftshader/src/Vulkan/BUILD.gn
-@@ -18,7 +18,7 @@ import("vulkan.gni")
-
- # Need a separate config to ensure the warnings are added to the end.
- config("swiftshader_libvulkan_private_config") {
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- defines = [
- "VK_USE_PLATFORM_XLIB_KHR",
- "VK_USE_PLATFORM_XCB_KHR",
-@@ -95,7 +95,7 @@ swiftshader_source_set("swiftshader_libv
- "VkStringify.hpp",
- "VulkanPlatform.hpp",
- ]
-- if (is_linux || is_android) {
-+ if (is_linux || is_android || is_bsd) {
- sources += [
- "VkDeviceMemoryExternalLinux.hpp",
- "VkSemaphoreExternalLinux.hpp",
-@@ -158,7 +158,7 @@ swiftshader_shared_library("swiftshader_
- "-Wl,-exported_symbols_list," +
- rebase_path("vk_swiftshader.exports", root_build_dir),
- ]
-- } else if (is_linux || is_fuchsia) {
-+ } else if (is_linux || is_fuchsia || is_bsd) {
- inputs = [
- "vk_swiftshader.lds",
- ]
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-10.0_configs_linux_include_llvm_Config_config.h b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-10.0_configs_linux_include_llvm_Config_config.h
new file mode 100644
index 0000000000..b3ac04586a
--- /dev/null
+++ b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-10.0_configs_linux_include_llvm_Config_config.h
@@ -0,0 +1,180 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/config.h.orig 2024-07-24 02:45:42.055118000 +0000
++++ third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/config.h
+@@ -29,7 +29,7 @@
+
+ /* Define to 1 if you have the declaration of `arc4random', and to 0 if you
+ don't. */
+-#define HAVE_DECL_ARC4RANDOM 0
++#define HAVE_DECL_ARC4RANDOM 1
+
+ /* Define to 1 if you have the declaration of `FE_ALL_EXCEPT', and to 0 if you
+ don't. */
+@@ -53,7 +53,7 @@
+ #define HAVE_DLOPEN 1
+
+ /* Define if dladdr() is available on this platform. */
+-/* #undef HAVE_DLADDR */
++#define HAVE_DLADDR 1
+
+ /* Define to 1 if you have the <errno.h> header file. */
+ #define HAVE_ERRNO_H 1
+@@ -92,7 +92,7 @@
+ #define HAVE_ISATTY 1
+
+ /* Define to 1 if you have the `edit' library (-ledit). */
+-/* #undef HAVE_LIBEDIT */
++#define HAVE_LIBEDIT 1
+
+ /* Define to 1 if you have the `pfm' library (-lpfm). */
+ /* #undef HAVE_LIBPFM */
+@@ -110,13 +110,13 @@
+ /* #undef HAVE_PTHREAD_SETNAME_NP */
+
+ /* Define to 1 if you have the `z' library (-lz). */
+-/* #undef HAVE_LIBZ */
++#define HAVE_LIBZ 1
+
+ /* Define to 1 if you have the <link.h> header file. */
+-#define HAVE_LINK_H 1
++/* #undef HAVE_LINK_H */
+
+ /* Define to 1 if you have the `lseek64' function. */
+-#define HAVE_LSEEK64 1
++/* #undef HAVE_LSEEK64 */
+
+ /* Define to 1 if you have the <mach/mach.h> header file. */
+ /* #undef HAVE_MACH_MACH_H */
+@@ -125,7 +125,7 @@
+ /* #undef HAVE_MALLCTL */
+
+ /* Define to 1 if you have the `mallinfo' function. */
+-#define HAVE_MALLINFO 1
++/* #undef HAVE_MALLINFO */
+
+ /* Define to 1 if you have the <malloc/malloc.h> header file. */
+ /* #undef HAVE_MALLOC_MALLOC_H */
+@@ -134,10 +134,10 @@
+ /* #undef HAVE_MALLOC_ZONE_STATISTICS */
+
+ /* Define to 1 if you have the `posix_fallocate' function. */
+-#define HAVE_POSIX_FALLOCATE 1
++/* #undef HAVE_POSIX_FALLOCATE */
+
+ /* Define to 1 if you have the `posix_spawn' function. */
+-/* #undef HAVE_POSIX_SPAWN */
++#define HAVE_POSIX_SPAWN 1
+
+ /* Define to 1 if you have the `pread' function. */
+ #define HAVE_PREAD 1
+@@ -161,10 +161,10 @@
+ #define HAVE_SETENV 1
+
+ /* Define to 1 if you have the `sched_getaffinity' function. */
+-#define HAVE_SCHED_GETAFFINITY 1
++/* #undef HAVE_SCHED_GETAFFINITY */
+
+ /* Define to 1 if you have the `CPU_COUNT' macro. */
+-#define HAVE_CPU_COUNT 1
++/* #undef HAVE_CPU_COUNT */
+
+ /* Define to 1 if you have the `setrlimit' function. */
+ #define HAVE_SETRLIMIT 1
+@@ -182,7 +182,7 @@
+ #define HAVE_STRERROR_R 1
+
+ /* Define to 1 if you have the `sysconf' function. */
+-#define HAVE_SYSCONF 1
++/* #undef HAVE_SYSCONF */
+
+ /* Define to 1 if you have the <sys/ioctl.h> header file. */
+ #define HAVE_SYS_IOCTL_H 1
+@@ -209,7 +209,7 @@
+ #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1
+
+ /* Define to 1 if you have the <sys/types.h> header file. */
+-#define HAVE_SYS_TYPES_H 1
++/* #undef HAVE_SYS_TYPES_H */
+
+ /* Define if the setupterm() function is supported this platform. */
+ /* #undef HAVE_TERMINFO */
+@@ -218,16 +218,16 @@
+ /* #undef HAVE_LIBXAR */
+
+ /* Define to 1 if you have the <termios.h> header file. */
+-/* #undef HAVE_TERMIOS_H */
++#define HAVE_TERMIOS_H 1
+
+ /* Define to 1 if you have the <unistd.h> header file. */
+ #define HAVE_UNISTD_H 1
+
+ /* Define to 1 if you have the <valgrind/valgrind.h> header file. */
+-/* #undef HAVE_VALGRIND_VALGRIND_H */
++/* #define HAVE_VALGRIND_VALGRIND_H 1 */
+
+ /* Define to 1 if you have the <zlib.h> header file. */
+-/* #undef HAVE_ZLIB_H */
++#define HAVE_ZLIB_H 1
+
+ /* Have host's _alloca */
+ /* #undef HAVE__ALLOCA */
+@@ -292,30 +292,8 @@
+ /* Linker version detected at compile time. */
+ /* #undef HOST_LINK_VERSION */
+
+-/* Target triple LLVM will generate code for by default */
+-/* Doesn't use `cmakedefine` because it is allowed to be empty. */
+-#if defined(__x86_64__)
+-#define LLVM_DEFAULT_TARGET_TRIPLE "x86_64-unknown-linux-gnu"
+-#elif defined(__i386__)
+-#define LLVM_DEFAULT_TARGET_TRIPLE "i686-pc-linux-gnu"
+-#elif defined(__arm__)
+-#define LLVM_DEFAULT_TARGET_TRIPLE "armv7-linux-gnueabihf"
+-#elif defined(__aarch64__)
+-#define LLVM_DEFAULT_TARGET_TRIPLE "aarch64-linux-gnu"
+-#elif defined(__mips__)
+-#define LLVM_DEFAULT_TARGET_TRIPLE "mipsel-linux-gnu"
+-#elif defined(__mips64)
+-#define LLVM_DEFAULT_TARGET_TRIPLE "mips64el-linux-gnuabi64"
+-#elif defined(__powerpc64__)
+-#define LLVM_DEFAULT_TARGET_TRIPLE "powerpc64le-unknown-linux-gnu"
+-#elif defined(__riscv) && __riscv_xlen == 64
+-#define LLVM_DEFAULT_TARGET_TRIPLE "riscv64-unknown-linux-gnu"
+-#else
+-#error "unknown architecture"
+-#endif
+-
+ /* Define if zlib compression is available */
+-#define LLVM_ENABLE_ZLIB 0
++/* #define LLVM_ENABLE_ZLIB 1 */
+
+ /* Define if overriding target triple is enabled */
+ /* #undef LLVM_TARGET_TRIPLE_ENV */
+@@ -339,10 +317,10 @@
+ #define PACKAGE_NAME "LLVM"
+
+ /* Define to the full name and version of this package. */
+-#define PACKAGE_STRING "LLVM 10.0.0"
++#define PACKAGE_STRING "LLVM 11.1.0"
+
+ /* Define to the version of this package. */
+-#define PACKAGE_VERSION "10.0.0"
++#define PACKAGE_VERSION "11.1.0"
+
+ /* Define to the vendor of this package. */
+ /* #undef PACKAGE_VENDOR */
+@@ -362,9 +340,6 @@
+ /* Whether GlobalISel rule coverage is being collected */
+ #define LLVM_GISEL_COV_ENABLED 0
+
+-/* Define if we have z3 and want to build it */
+-#define LLVM_WITH_Z3 1
+-
+ /* Define to the default GlobalISel coverage file prefix */
+ /* #undef LLVM_GISEL_COV_PREFIX */
+
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_BUILD.gn b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_BUILD.gn
deleted file mode 100644
index e873916be2..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-7.0/BUILD.gn.orig 2020-07-15 19:01:43.000000000 +0000
-+++ third_party/swiftshader/third_party/llvm-7.0/BUILD.gn
-@@ -107,6 +107,8 @@ if (is_linux) {
- llvm_include_dirs += [ "configs/android/include/" ]
- } else if (is_mac) {
- llvm_include_dirs += [ "configs/darwin/include/" ]
-+} else if (is_netbsd) {
-+ llvm_include_dirs += [ "configs/netbsd/include/" ]
- } else {
- assert(false, "llvm-7.0 not configured for target platform")
- }
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_AsmParsers.def b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_AsmParsers.def
deleted file mode 100644
index 51154f92fa..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_AsmParsers.def
+++ /dev/null
@@ -1,45 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-7.0/configs/netbsd/include/llvm/Config/AsmParsers.def.orig 2020-07-23 07:09:16.381598634 +0000
-+++ third_party/swiftshader/third_party/llvm-7.0/configs/netbsd/include/llvm/Config/AsmParsers.def
-@@ -0,0 +1,40 @@
-+/*===- llvm/Config/AsmParsers.def - LLVM Assembly Parsers -------*- C++ -*-===*\
-+|* *|
-+|* The LLVM Compiler Infrastructure *|
-+|* *|
-+|* This file is distributed under the University of Illinois Open Source *|
-+|* License. See LICENSE.TXT for details. *|
-+|* *|
-+|*===----------------------------------------------------------------------===*|
-+|* *|
-+|* This file enumerates all of the assembly-language parsers *|
-+|* supported by this build of LLVM. Clients of this file should define *|
-+|* the LLVM_ASM_PARSER macro to be a function-like macro with a *|
-+|* single parameter (the name of the target whose assembly can be *|
-+|* generated); including this file will then enumerate all of the *|
-+|* targets with assembly parsers. *|
-+|* *|
-+|* The set of targets supported by LLVM is generated at configuration *|
-+|* time, at which point this header is generated. Do not modify this *|
-+|* header directly. *|
-+|* *|
-+\*===----------------------------------------------------------------------===*/
-+
-+#ifndef LLVM_ASM_PARSER
-+# error Please define the macro LLVM_ASM_PARSER(TargetName)
-+#endif
-+
-+LLVM_ASM_PARSER(AArch64)
-+LLVM_ASM_PARSER(AMDGPU)
-+LLVM_ASM_PARSER(ARM)
-+LLVM_ASM_PARSER(BPF)
-+LLVM_ASM_PARSER(Hexagon)
-+LLVM_ASM_PARSER(Lanai)
-+LLVM_ASM_PARSER(Mips)
-+LLVM_ASM_PARSER(PowerPC)
-+LLVM_ASM_PARSER(Sparc)
-+LLVM_ASM_PARSER(SystemZ)
-+LLVM_ASM_PARSER(X86)
-+
-+
-+#undef LLVM_ASM_PARSER
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_AsmPrinters.def b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_AsmPrinters.def
deleted file mode 100644
index 11264f93ee..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_AsmPrinters.def
+++ /dev/null
@@ -1,48 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-7.0/configs/netbsd/include/llvm/Config/AsmPrinters.def.orig 2020-07-23 07:09:16.381612755 +0000
-+++ third_party/swiftshader/third_party/llvm-7.0/configs/netbsd/include/llvm/Config/AsmPrinters.def
-@@ -0,0 +1,43 @@
-+/*===- llvm/Config/AsmPrinters.def - LLVM Assembly Printers -----*- C++ -*-===*\
-+|* *|
-+|* The LLVM Compiler Infrastructure *|
-+|* *|
-+|* This file is distributed under the University of Illinois Open Source *|
-+|* License. See LICENSE.TXT for details. *|
-+|* *|
-+|*===----------------------------------------------------------------------===*|
-+|* *|
-+|* This file enumerates all of the assembly-language printers *|
-+|* supported by this build of LLVM. Clients of this file should define *|
-+|* the LLVM_ASM_PRINTER macro to be a function-like macro with a *|
-+|* single parameter (the name of the target whose assembly can be *|
-+|* generated); including this file will then enumerate all of the *|
-+|* targets with assembly printers. *|
-+|* *|
-+|* The set of targets supported by LLVM is generated at configuration *|
-+|* time, at which point this header is generated. Do not modify this *|
-+|* header directly. *|
-+|* *|
-+\*===----------------------------------------------------------------------===*/
-+
-+#ifndef LLVM_ASM_PRINTER
-+# error Please define the macro LLVM_ASM_PRINTER(TargetName)
-+#endif
-+
-+LLVM_ASM_PRINTER(AArch64)
-+LLVM_ASM_PRINTER(AMDGPU)
-+LLVM_ASM_PRINTER(ARM)
-+LLVM_ASM_PRINTER(BPF)
-+LLVM_ASM_PRINTER(Hexagon)
-+LLVM_ASM_PRINTER(Lanai)
-+LLVM_ASM_PRINTER(Mips)
-+LLVM_ASM_PRINTER(MSP430)
-+LLVM_ASM_PRINTER(NVPTX)
-+LLVM_ASM_PRINTER(PowerPC)
-+LLVM_ASM_PRINTER(Sparc)
-+LLVM_ASM_PRINTER(SystemZ)
-+LLVM_ASM_PRINTER(X86)
-+LLVM_ASM_PRINTER(XCore)
-+
-+
-+#undef LLVM_ASM_PRINTER
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_Disassemblers.def b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_Disassemblers.def
deleted file mode 100644
index 452aa2976b..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_Disassemblers.def
+++ /dev/null
@@ -1,46 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-7.0/configs/netbsd/include/llvm/Config/Disassemblers.def.orig 2020-07-23 07:09:16.381623375 +0000
-+++ third_party/swiftshader/third_party/llvm-7.0/configs/netbsd/include/llvm/Config/Disassemblers.def
-@@ -0,0 +1,41 @@
-+/*===- llvm/Config/Disassemblers.def - LLVM Assembly Parsers ----*- C++ -*-===*\
-+|* *|
-+|* The LLVM Compiler Infrastructure *|
-+|* *|
-+|* This file is distributed under the University of Illinois Open Source *|
-+|* License. See LICENSE.TXT for details. *|
-+|* *|
-+|*===----------------------------------------------------------------------===*|
-+|* *|
-+|* This file enumerates all of the assembly-language parsers *|
-+|* supported by this build of LLVM. Clients of this file should define *|
-+|* the LLVM_DISASSEMBLER macro to be a function-like macro with a *|
-+|* single parameter (the name of the target whose assembly can be *|
-+|* generated); including this file will then enumerate all of the *|
-+|* targets with assembly parsers. *|
-+|* *|
-+|* The set of targets supported by LLVM is generated at configuration *|
-+|* time, at which point this header is generated. Do not modify this *|
-+|* header directly. *|
-+|* *|
-+\*===----------------------------------------------------------------------===*/
-+
-+#ifndef LLVM_DISASSEMBLER
-+# error Please define the macro LLVM_DISASSEMBLER(TargetName)
-+#endif
-+
-+LLVM_DISASSEMBLER(AArch64)
-+LLVM_DISASSEMBLER(AMDGPU)
-+LLVM_DISASSEMBLER(ARM)
-+LLVM_DISASSEMBLER(BPF)
-+LLVM_DISASSEMBLER(Hexagon)
-+LLVM_DISASSEMBLER(Lanai)
-+LLVM_DISASSEMBLER(Mips)
-+LLVM_DISASSEMBLER(PowerPC)
-+LLVM_DISASSEMBLER(Sparc)
-+LLVM_DISASSEMBLER(SystemZ)
-+LLVM_DISASSEMBLER(X86)
-+LLVM_DISASSEMBLER(XCore)
-+
-+
-+#undef LLVM_DISASSEMBLER
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_Targets.def b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_Targets.def
deleted file mode 100644
index 80636bf9de..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_Targets.def
+++ /dev/null
@@ -1,47 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-7.0/configs/netbsd/include/llvm/Config/Targets.def.orig 2020-07-23 07:09:16.381633345 +0000
-+++ third_party/swiftshader/third_party/llvm-7.0/configs/netbsd/include/llvm/Config/Targets.def
-@@ -0,0 +1,42 @@
-+/*===- llvm/Config/Targets.def - LLVM Target Architectures ------*- C++ -*-===*\
-+|* *|
-+|* The LLVM Compiler Infrastructure *|
-+|* *|
-+|* This file is distributed under the University of Illinois Open Source *|
-+|* License. See LICENSE.TXT for details. *|
-+|* *|
-+|*===----------------------------------------------------------------------===*|
-+|* *|
-+|* This file enumerates all of the target architectures supported by *|
-+|* this build of LLVM. Clients of this file should define the *|
-+|* LLVM_TARGET macro to be a function-like macro with a single *|
-+|* parameter (the name of the target); including this file will then *|
-+|* enumerate all of the targets. *|
-+|* *|
-+|* The set of targets supported by LLVM is generated at configuration *|
-+|* time, at which point this header is generated. Do not modify this *|
-+|* header directly. *|
-+|* *|
-+\*===----------------------------------------------------------------------===*/
-+
-+#ifndef LLVM_TARGET
-+# error Please define the macro LLVM_TARGET(TargetName)
-+#endif
-+
-+LLVM_TARGET(AArch64)
-+LLVM_TARGET(AMDGPU)
-+LLVM_TARGET(ARM)
-+LLVM_TARGET(BPF)
-+LLVM_TARGET(Hexagon)
-+LLVM_TARGET(Lanai)
-+LLVM_TARGET(Mips)
-+LLVM_TARGET(MSP430)
-+LLVM_TARGET(NVPTX)
-+LLVM_TARGET(PowerPC)
-+LLVM_TARGET(Sparc)
-+LLVM_TARGET(SystemZ)
-+LLVM_TARGET(X86)
-+LLVM_TARGET(XCore)
-+
-+
-+#undef LLVM_TARGET
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_abi-breaking.h b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_abi-breaking.h
deleted file mode 100644
index b12c395683..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_abi-breaking.h
+++ /dev/null
@@ -1,55 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-7.0/configs/netbsd/include/llvm/Config/abi-breaking.h.orig 2020-07-23 07:09:16.381643815 +0000
-+++ third_party/swiftshader/third_party/llvm-7.0/configs/netbsd/include/llvm/Config/abi-breaking.h
-@@ -0,0 +1,50 @@
-+/*===------- llvm/Config/abi-breaking.h - llvm configuration -------*- C -*-===*/
-+/* */
-+/* The LLVM Compiler Infrastructure */
-+/* */
-+/* This file is distributed under the University of Illinois Open Source */
-+/* License. See LICENSE.TXT for details. */
-+/* */
-+/*===----------------------------------------------------------------------===*/
-+
-+/* This file controls the C++ ABI break introduced in LLVM public header. */
-+
-+#ifndef LLVM_ABI_BREAKING_CHECKS_H
-+#define LLVM_ABI_BREAKING_CHECKS_H
-+
-+/* Define to enable checks that alter the LLVM C++ ABI */
-+#define LLVM_ENABLE_ABI_BREAKING_CHECKS 1
-+
-+/* Define to enable reverse iteration of unordered llvm containers */
-+#define LLVM_ENABLE_REVERSE_ITERATION 0
-+
-+/* Allow selectively disabling link-time mismatch checking so that header-only
-+ ADT content from LLVM can be used without linking libSupport. */
-+#if !LLVM_DISABLE_ABI_BREAKING_CHECKS_ENFORCING
-+
-+// ABI_BREAKING_CHECKS protection: provides link-time failure when clients build
-+// mismatch with LLVM
-+#if defined(_MSC_VER)
-+// Use pragma with MSVC
-+#define LLVM_XSTR(s) LLVM_STR(s)
-+#define LLVM_STR(s) #s
-+#pragma detect_mismatch("LLVM_ENABLE_ABI_BREAKING_CHECKS", LLVM_XSTR(LLVM_ENABLE_ABI_BREAKING_CHECKS))
-+#undef LLVM_XSTR
-+#undef LLVM_STR
-+#elif defined(_WIN32) || defined(__CYGWIN__) // Win32 w/o #pragma detect_mismatch
-+// FIXME: Implement checks without weak.
-+#elif defined(__cplusplus)
-+namespace llvm {
-+#if LLVM_ENABLE_ABI_BREAKING_CHECKS
-+extern int EnableABIBreakingChecks;
-+__attribute__((weak, visibility ("hidden"))) int *VerifyEnableABIBreakingChecks = &EnableABIBreakingChecks;
-+#else
-+extern int DisableABIBreakingChecks;
-+__attribute__((weak, visibility ("hidden"))) int *VerifyDisableABIBreakingChecks = &DisableABIBreakingChecks;
-+#endif
-+}
-+#endif // _MSC_VER
-+
-+#endif // LLVM_DISABLE_ABI_BREAKING_CHECKS_ENFORCING
-+
-+#endif
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_config.h b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_config.h
deleted file mode 100644
index 33080f21cb..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_config.h
+++ /dev/null
@@ -1,349 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-7.0/configs/netbsd/include/llvm/Config/config.h.orig 2020-07-23 07:09:16.381653744 +0000
-+++ third_party/swiftshader/third_party/llvm-7.0/configs/netbsd/include/llvm/Config/config.h
-@@ -0,0 +1,344 @@
-+#ifndef CONFIG_H
-+#define CONFIG_H
-+
-+/* Exported configuration */
-+#include "llvm/Config/llvm-config.h"
-+
-+/* Bug report URL. */
-+#define BUG_REPORT_URL "https://bugs.llvm.org/"
-+
-+/* Define to 1 to enable backtraces, and to 0 otherwise. */
-+#define ENABLE_BACKTRACES 1
-+
-+/* Define to 1 to enable crash overrides, and to 0 otherwise. */
-+#define ENABLE_CRASH_OVERRIDES 1
-+
-+/* Define to 1 if you have the `backtrace' function. */
-+#define HAVE_BACKTRACE TRUE
-+
-+#define BACKTRACE_HEADER <execinfo.h>
-+
-+/* Define to 1 if you have the <CrashReporterClient.h> header file. */
-+/* #undef HAVE_CRASHREPORTERCLIENT_H */
-+
-+/* can use __crashreporter_info__ */
-+#define HAVE_CRASHREPORTER_INFO 0
-+
-+/* Define to 1 if you have the declaration of `arc4random', and to 0 if you
-+ don't. */
-+#define HAVE_DECL_ARC4RANDOM 1
-+
-+/* Define to 1 if you have the declaration of `FE_ALL_EXCEPT', and to 0 if you
-+ don't. */
-+#define HAVE_DECL_FE_ALL_EXCEPT 1
-+
-+/* Define to 1 if you have the declaration of `FE_INEXACT', and to 0 if you
-+ don't. */
-+#define HAVE_DECL_FE_INEXACT 1
-+
-+/* Define to 1 if you have the declaration of `strerror_s', and to 0 if you
-+ don't. */
-+#define HAVE_DECL_STRERROR_S 0
-+
-+/* Define to 1 if you have the DIA SDK installed, and to 0 if you don't. */
-+#define LLVM_ENABLE_DIA_SDK 0
-+
-+/* Define to 1 if you have the <dlfcn.h> header file. */
-+#define HAVE_DLFCN_H 1
-+
-+/* Define if dlopen() is available on this platform. */
-+#define HAVE_DLOPEN 1
-+
-+/* Define if dladdr() is available on this platform. */
-+#define HAVE_DLADDR 1
-+
-+/* Define to 1 if you have the <errno.h> header file. */
-+#define HAVE_ERRNO_H 1
-+
-+/* Define to 1 if you have the <fcntl.h> header file. */
-+#define HAVE_FCNTL_H 1
-+
-+/* Define to 1 if you have the <fenv.h> header file. */
-+#define HAVE_FENV_H 1
-+
-+/* Define if libffi is available on this platform. */
-+/* #undef HAVE_FFI_CALL */
-+
-+/* Define to 1 if you have the <ffi/ffi.h> header file. */
-+/* #undef HAVE_FFI_FFI_H */
-+
-+/* Define to 1 if you have the <ffi.h> header file. */
-+/* #undef HAVE_FFI_H */
-+
-+/* Define to 1 if you have the `futimens' function. */
-+#define HAVE_FUTIMENS 1
-+
-+/* Define to 1 if you have the `futimes' function. */
-+#define HAVE_FUTIMES 1
-+
-+/* Define to 1 if you have the `getpagesize' function. */
-+#define HAVE_GETPAGESIZE 1
-+
-+/* Define to 1 if you have the `getrlimit' function. */
-+#define HAVE_GETRLIMIT 1
-+
-+/* Define to 1 if you have the `getrusage' function. */
-+#define HAVE_GETRUSAGE 1
-+
-+/* Define to 1 if you have the `isatty' function. */
-+#define HAVE_ISATTY 1
-+
-+/* Define to 1 if you have the `edit' library (-ledit). */
-+#define HAVE_LIBEDIT 1
-+
-+/* Define to 1 if you have the `pfm' library (-lpfm). */
-+/* #undef HAVE_LIBPFM */
-+
-+/* Define to 1 if you have the `psapi' library (-lpsapi). */
-+/* #undef HAVE_LIBPSAPI */
-+
-+/* Define to 1 if you have the `pthread' library (-lpthread). */
-+#define HAVE_LIBPTHREAD 1
-+
-+/* Define to 1 if you have the `pthread_getname_np' function. */
-+#define HAVE_PTHREAD_GETNAME_NP 1
-+
-+/* Define to 1 if you have the `pthread_setname_np' function. */
-+#define HAVE_PTHREAD_SETNAME_NP 1
-+
-+/* Define to 1 if you have the `z' library (-lz). */
-+#define HAVE_LIBZ 1
-+
-+/* Define to 1 if you have the <link.h> header file. */
-+#define HAVE_LINK_H 1
-+
-+/* Define to 1 if you have the `lseek64' function. */
-+/* #undef HAVE_LSEEK64 */
-+
-+/* Define to 1 if you have the <mach/mach.h> header file. */
-+/* #undef HAVE_MACH_MACH_H */
-+
-+/* Define to 1 if you have the `mallctl' function. */
-+/* #undef HAVE_MALLCTL */
-+
-+/* Define to 1 if you have the `mallinfo' function. */
-+/* #undef HAVE_MALLINFO */
-+
-+/* Define to 1 if you have the <malloc.h> header file. */
-+#define HAVE_MALLOC_H 1
-+
-+/* Define to 1 if you have the <malloc/malloc.h> header file. */
-+/* #undef HAVE_MALLOC_MALLOC_H */
-+
-+/* Define to 1 if you have the `malloc_zone_statistics' function. */
-+/* #undef HAVE_MALLOC_ZONE_STATISTICS */
-+
-+/* Define to 1 if you have the `posix_fallocate' function. */
-+#define HAVE_POSIX_FALLOCATE 1
-+
-+/* Define to 1 if you have the `posix_spawn' function. */
-+#define HAVE_POSIX_SPAWN 1
-+
-+/* Define to 1 if you have the `pread' function. */
-+#define HAVE_PREAD 1
-+
-+/* Have pthread_getspecific */
-+#define HAVE_PTHREAD_GETSPECIFIC 1
-+
-+/* Define to 1 if you have the <pthread.h> header file. */
-+#define HAVE_PTHREAD_H 1
-+
-+/* Have pthread_mutex_lock */
-+#define HAVE_PTHREAD_MUTEX_LOCK 1
-+
-+/* Have pthread_rwlock_init */
-+#define HAVE_PTHREAD_RWLOCK_INIT 1
-+
-+/* Define to 1 if you have the `realpath' function. */
-+#define HAVE_REALPATH 1
-+
-+/* Define to 1 if you have the `sbrk' function. */
-+#define HAVE_SBRK 1
-+
-+/* Define to 1 if you have the `setenv' function. */
-+#define HAVE_SETENV 1
-+
-+/* Define to 1 if you have the `sched_getaffinity' function. */
-+/* #undef HAVE_SCHED_GETAFFINITY */
-+
-+/* Define to 1 if you have the `CPU_COUNT' macro. */
-+/* #undef HAVE_CPU_COUNT */
-+
-+/* Define to 1 if you have the `setrlimit' function. */
-+#define HAVE_SETRLIMIT 1
-+
-+/* Define to 1 if you have the `sigaltstack' function. */
-+#define HAVE_SIGALTSTACK 1
-+
-+/* Define to 1 if you have the <signal.h> header file. */
-+#define HAVE_SIGNAL_H 1
-+
-+/* Define to 1 if you have the `strerror' function. */
-+#define HAVE_STRERROR 1
-+
-+/* Define to 1 if you have the `strerror_r' function. */
-+#define HAVE_STRERROR_R 1
-+
-+/* Define to 1 if you have the `sysconf' function. */
-+#define HAVE_SYSCONF 1
-+
-+/* Define to 1 if you have the <sys/ioctl.h> header file. */
-+#define HAVE_SYS_IOCTL_H 1
-+
-+/* Define to 1 if you have the <sys/mman.h> header file. */
-+#define HAVE_SYS_MMAN_H 1
-+
-+/* Define to 1 if you have the <sys/param.h> header file. */
-+#define HAVE_SYS_PARAM_H 1
-+
-+/* Define to 1 if you have the <sys/resource.h> header file. */
-+#define HAVE_SYS_RESOURCE_H 1
-+
-+/* Define to 1 if you have the <sys/stat.h> header file. */
-+#define HAVE_SYS_STAT_H 1
-+
-+/* Define to 1 if you have the <sys/time.h> header file. */
-+#define HAVE_SYS_TIME_H 1
-+
-+/* Define to 1 if you have the <sys/types.h> header file. */
-+#define HAVE_SYS_TYPES_H 1
-+
-+/* Define if the setupterm() function is supported this platform. */
-+#define HAVE_TERMINFO 1
-+
-+/* Define if the xar_open() function is supported this platform. */
-+/* #undef HAVE_LIBXAR */
-+
-+/* Define to 1 if you have the <termios.h> header file. */
-+#define HAVE_TERMIOS_H 1
-+
-+/* Define to 1 if you have the <unistd.h> header file. */
-+#define HAVE_UNISTD_H 1
-+
-+/* Define to 1 if you have the <valgrind/valgrind.h> header file. */
-+/* #undef HAVE_VALGRIND_VALGRIND_H */
-+
-+/* Define to 1 if you have the <zlib.h> header file. */
-+#define HAVE_ZLIB_H 1
-+
-+/* Have host's _alloca */
-+/* #undef HAVE__ALLOCA */
-+
-+/* Define to 1 if you have the `_chsize_s' function. */
-+/* #undef HAVE__CHSIZE_S */
-+
-+/* Define to 1 if you have the `_Unwind_Backtrace' function. */
-+#define HAVE__UNWIND_BACKTRACE 1
-+
-+/* Have host's __alloca */
-+/* #undef HAVE___ALLOCA */
-+
-+/* Have host's __ashldi3 */
-+/* #undef HAVE___ASHLDI3 */
-+
-+/* Have host's __ashrdi3 */
-+/* #undef HAVE___ASHRDI3 */
-+
-+/* Have host's __chkstk */
-+/* #undef HAVE___CHKSTK */
-+
-+/* Have host's __chkstk_ms */
-+/* #undef HAVE___CHKSTK_MS */
-+
-+/* Have host's __cmpdi2 */
-+/* #undef HAVE___CMPDI2 */
-+
-+/* Have host's __divdi3 */
-+/* #undef HAVE___DIVDI3 */
-+
-+/* Have host's __fixdfdi */
-+/* #undef HAVE___FIXDFDI */
-+
-+/* Have host's __fixsfdi */
-+/* #undef HAVE___FIXSFDI */
-+
-+/* Have host's __floatdidf */
-+/* #undef HAVE___FLOATDIDF */
-+
-+/* Have host's __lshrdi3 */
-+/* #undef HAVE___LSHRDI3 */
-+
-+/* Have host's __main */
-+/* #undef HAVE___MAIN */
-+
-+/* Have host's __moddi3 */
-+/* #undef HAVE___MODDI3 */
-+
-+/* Have host's __udivdi3 */
-+/* #undef HAVE___UDIVDI3 */
-+
-+/* Have host's __umoddi3 */
-+/* #undef HAVE___UMODDI3 */
-+
-+/* Have host's ___chkstk */
-+/* #undef HAVE____CHKSTK */
-+
-+/* Have host's ___chkstk_ms */
-+/* #undef HAVE____CHKSTK_MS */
-+
-+/* Linker version detected at compile time. */
-+/* #undef HOST_LINK_VERSION */
-+
-+/* Target triple LLVM will generate code for by default */
-+/* Doesn't use `cmakedefine` because it is allowed to be empty. */
-+#define LLVM_DEFAULT_TARGET_TRIPLE "x86_64-unknown-netbsd9.99.69"
-+
-+/* Define if zlib compression is available */
-+#define LLVM_ENABLE_ZLIB 1
-+
-+/* Define if overriding target triple is enabled */
-+/* #undef LLVM_TARGET_TRIPLE_ENV */
-+
-+/* LLVM version information */
-+/* #undef LLVM_VERSION_INFO */
-+
-+/* Whether tools show host and target info when invoked with --version */
-+#define LLVM_VERSION_PRINTER_SHOW_HOST_TARGET_INFO 1
-+
-+/* Define if libxml2 is supported on this platform. */
-+/* #undef LLVM_LIBXML2_ENABLED */
-+
-+/* Define to the extension used for shared libraries, say, ".so". */
-+#define LTDL_SHLIB_EXT ".so"
-+
-+/* Define to the address where bug reports for this package should be sent. */
-+#define PACKAGE_BUGREPORT "https://bugs.llvm.org/"
-+
-+/* Define to the full name of this package. */
-+#define PACKAGE_NAME "LLVM"
-+
-+/* Define to the full name and version of this package. */
-+#define PACKAGE_STRING "LLVM 7.0.1"
-+
-+/* Define to the version of this package. */
-+#define PACKAGE_VERSION "7.0.1"
-+
-+/* Define to the vendor of this package. */
-+/* #undef PACKAGE_VENDOR */
-+
-+/* Define as the return type of signal handlers (`int' or `void'). */
-+#define RETSIGTYPE void
-+
-+/* Define to a function implementing stricmp */
-+/* #undef stricmp */
-+
-+/* Define to a function implementing strdup */
-+/* #undef strdup */
-+
-+/* Whether GlobalISel rule coverage is being collected */
-+#define LLVM_GISEL_COV_ENABLED 0
-+
-+/* Define to the default GlobalISel coverage file prefix */
-+/* #undef LLVM_GISEL_COV_PREFIX */
-+
-+#endif
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_llvm-config.h b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_llvm-config.h
deleted file mode 100644
index 41e2bb6d5b..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_llvm-config.h
+++ /dev/null
@@ -1,90 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-7.0/configs/netbsd/include/llvm/Config/llvm-config.h.orig 2020-07-23 07:09:16.381666223 +0000
-+++ third_party/swiftshader/third_party/llvm-7.0/configs/netbsd/include/llvm/Config/llvm-config.h
-@@ -0,0 +1,85 @@
-+/*===------- llvm/Config/llvm-config.h - llvm configuration -------*- C -*-===*/
-+/* */
-+/* The LLVM Compiler Infrastructure */
-+/* */
-+/* This file is distributed under the University of Illinois Open Source */
-+/* License. See LICENSE.TXT for details. */
-+/* */
-+/*===----------------------------------------------------------------------===*/
-+
-+/* This file enumerates variables from the LLVM configuration so that they
-+ can be in exported headers and won't override package specific directives.
-+ This is a C header that can be included in the llvm-c headers. */
-+
-+#ifndef LLVM_CONFIG_H
-+#define LLVM_CONFIG_H
-+
-+/* Define if LLVM_ENABLE_DUMP is enabled */
-+/* #undef LLVM_ENABLE_DUMP */
-+
-+/* Define if we link Polly to the tools */
-+/* #undef LINK_POLLY_INTO_TOOLS */
-+
-+/* Target triple LLVM will generate code for by default */
-+#define LLVM_DEFAULT_TARGET_TRIPLE "x86_64-unknown-netbsd9.99.69"
-+
-+/* Define if threads enabled */
-+#define LLVM_ENABLE_THREADS 1
-+
-+/* Has gcc/MSVC atomic intrinsics */
-+#define LLVM_HAS_ATOMICS 1
-+
-+/* Host triple LLVM will be executed on */
-+#define LLVM_HOST_TRIPLE "x86_64-unknown-netbsd9.99.69"
-+
-+/* LLVM architecture name for the native architecture, if available */
-+#define LLVM_NATIVE_ARCH X86
-+
-+/* LLVM name for the native AsmParser init function, if available */
-+#define LLVM_NATIVE_ASMPARSER LLVMInitializeX86AsmParser
-+
-+/* LLVM name for the native AsmPrinter init function, if available */
-+#define LLVM_NATIVE_ASMPRINTER LLVMInitializeX86AsmPrinter
-+
-+/* LLVM name for the native Disassembler init function, if available */
-+#define LLVM_NATIVE_DISASSEMBLER LLVMInitializeX86Disassembler
-+
-+/* LLVM name for the native Target init function, if available */
-+#define LLVM_NATIVE_TARGET LLVMInitializeX86Target
-+
-+/* LLVM name for the native TargetInfo init function, if available */
-+#define LLVM_NATIVE_TARGETINFO LLVMInitializeX86TargetInfo
-+
-+/* LLVM name for the native target MC init function, if available */
-+#define LLVM_NATIVE_TARGETMC LLVMInitializeX86TargetMC
-+
-+/* Define if this is Unixish platform */
-+#define LLVM_ON_UNIX 1
-+
-+/* Define if we have the Intel JIT API runtime support library */
-+#define LLVM_USE_INTEL_JITEVENTS 0
-+
-+/* Define if we have the oprofile JIT-support library */
-+#define LLVM_USE_OPROFILE 0
-+
-+/* Define if we have the perf JIT-support library */
-+#define LLVM_USE_PERF 0
-+
-+/* Major version of the LLVM API */
-+#define LLVM_VERSION_MAJOR 7
-+
-+/* Minor version of the LLVM API */
-+#define LLVM_VERSION_MINOR 0
-+
-+/* Patch version of the LLVM API */
-+#define LLVM_VERSION_PATCH 1
-+
-+/* LLVM version string */
-+#define LLVM_VERSION_STRING "7.0.1"
-+
-+/* Whether LLVM records statistics for use with GetStatistics(),
-+ * PrintStatistics() or PrintStatisticsJSON()
-+ */
-+#define LLVM_FORCE_ENABLE_STATS 0
-+
-+#endif
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_Linux_include_llvm_Config_config.h b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_Linux_include_llvm_Config_config.h
new file mode 100644
index 0000000000..2652054619
--- /dev/null
+++ b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_Linux_include_llvm_Config_config.h
@@ -0,0 +1,53 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/swiftshader/third_party/llvm-subzero/build/Linux/include/llvm/Config/config.h.orig 2024-07-24 02:45:44.667371000 +0000
++++ third_party/swiftshader/third_party/llvm-subzero/build/Linux/include/llvm/Config/config.h
+@@ -5,8 +5,6 @@
+ #include "llvm/Config/llvm-config.h"
+
+ /* For detecting __GLIBC__ usage */
+-#include <features.h>
+-
+ /* Bug report URL. */
+ #define BUG_REPORT_URL "http://llvm.org/bugs/"
+
+@@ -27,7 +25,7 @@
+
+ /* Define to 1 if you have the declaration of `arc4random', and to 0 if you
+ don't. */
+-#define HAVE_DECL_ARC4RANDOM 0
++#define HAVE_DECL_ARC4RANDOM 1
+
+ /* Define to 1 if you have the declaration of `FE_ALL_EXCEPT', and to 0 if you
+ don't. */
+@@ -124,7 +122,7 @@
+ #define HAVE_LINK_H 1
+
+ /* Define to 1 if you have the `lseek64' function. */
+-#define HAVE_LSEEK64 1
++/* #define HAVE_LSEEK64 */
+
+ /* Define to 1 if you have the <mach/mach.h> header file. */
+ /* #undef HAVE_MACH_MACH_H */
+@@ -133,7 +131,7 @@
+ /* #undef HAVE_MALLCTL */
+
+ /* Define to 1 if you have the `mallinfo' function. */
+-#define HAVE_MALLINFO 1
++/* #define HAVE_MALLINFO */
+
+ /* Some projects using SwiftShader bypass cmake (eg Chromium via gn) */
+ /* so we need to check glibc version for the new API to be safe */
+@@ -163,7 +161,7 @@
+ /* #undef HAVE_NDIR_H */
+
+ /* Define to 1 if you have the `posix_fallocate' function. */
+-#define HAVE_POSIX_FALLOCATE 1
++/* #define HAVE_POSIX_FALLOCATE */
+
+ /* Define to 1 if you have the `posix_spawn' function. */
+ #define HAVE_POSIX_SPAWN 1
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_CMakeFiles_CMakeDirectoryInformation.cmake b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_CMakeFiles_CMakeDirectoryInformation.cmake
deleted file mode 100644
index 974c53a3c3..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_CMakeFiles_CMakeDirectoryInformation.cmake
+++ /dev/null
@@ -1,21 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/CMakeFiles/CMakeDirectoryInformation.cmake.orig 2020-07-23 08:46:21.567619938 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/CMakeFiles/CMakeDirectoryInformation.cmake
-@@ -0,0 +1,16 @@
-+# CMAKE generated file: DO NOT EDIT!
-+# Generated by "Unix Makefiles" Generator, CMake Version 3.17
-+
-+# Relative path conversion top directories.
-+set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/ryoon/tmp4/llvm-7.0.1.src")
-+set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/ryoon/tmp4/build")
-+
-+# Force unix paths in dependencies.
-+set(CMAKE_FORCE_UNIX_PATHS 1)
-+
-+
-+# The C and CXX include file regular expressions for this directory.
-+set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
-+set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
-+set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
-+set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_CMakeFiles_progress.marks b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_CMakeFiles_progress.marks
deleted file mode 100644
index 4eeba04077..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_CMakeFiles_progress.marks
+++ /dev/null
@@ -1,6 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/CMakeFiles/progress.marks.orig 2020-07-23 08:46:21.571912048 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/CMakeFiles/progress.marks
-@@ -0,0 +1 @@
-+0
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_AsmParsers.def b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_AsmParsers.def
deleted file mode 100644
index fe1089c992..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_AsmParsers.def
+++ /dev/null
@@ -1,45 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Config/AsmParsers.def.orig 2020-07-23 08:46:21.541246496 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Config/AsmParsers.def
-@@ -0,0 +1,40 @@
-+/*===- llvm/Config/AsmParsers.def - LLVM Assembly Parsers -------*- C++ -*-===*\
-+|* *|
-+|* The LLVM Compiler Infrastructure *|
-+|* *|
-+|* This file is distributed under the University of Illinois Open Source *|
-+|* License. See LICENSE.TXT for details. *|
-+|* *|
-+|*===----------------------------------------------------------------------===*|
-+|* *|
-+|* This file enumerates all of the assembly-language parsers *|
-+|* supported by this build of LLVM. Clients of this file should define *|
-+|* the LLVM_ASM_PARSER macro to be a function-like macro with a *|
-+|* single parameter (the name of the target whose assembly can be *|
-+|* generated); including this file will then enumerate all of the *|
-+|* targets with assembly parsers. *|
-+|* *|
-+|* The set of targets supported by LLVM is generated at configuration *|
-+|* time, at which point this header is generated. Do not modify this *|
-+|* header directly. *|
-+|* *|
-+\*===----------------------------------------------------------------------===*/
-+
-+#ifndef LLVM_ASM_PARSER
-+# error Please define the macro LLVM_ASM_PARSER(TargetName)
-+#endif
-+
-+LLVM_ASM_PARSER(AArch64)
-+LLVM_ASM_PARSER(AMDGPU)
-+LLVM_ASM_PARSER(ARM)
-+LLVM_ASM_PARSER(BPF)
-+LLVM_ASM_PARSER(Hexagon)
-+LLVM_ASM_PARSER(Lanai)
-+LLVM_ASM_PARSER(Mips)
-+LLVM_ASM_PARSER(PowerPC)
-+LLVM_ASM_PARSER(Sparc)
-+LLVM_ASM_PARSER(SystemZ)
-+LLVM_ASM_PARSER(X86)
-+
-+
-+#undef LLVM_ASM_PARSER
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_AsmPrinters.def b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_AsmPrinters.def
deleted file mode 100644
index 4afadef5d9..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_AsmPrinters.def
+++ /dev/null
@@ -1,48 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Config/AsmPrinters.def.orig 2020-07-23 08:46:21.536844743 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Config/AsmPrinters.def
-@@ -0,0 +1,43 @@
-+/*===- llvm/Config/AsmPrinters.def - LLVM Assembly Printers -----*- C++ -*-===*\
-+|* *|
-+|* The LLVM Compiler Infrastructure *|
-+|* *|
-+|* This file is distributed under the University of Illinois Open Source *|
-+|* License. See LICENSE.TXT for details. *|
-+|* *|
-+|*===----------------------------------------------------------------------===*|
-+|* *|
-+|* This file enumerates all of the assembly-language printers *|
-+|* supported by this build of LLVM. Clients of this file should define *|
-+|* the LLVM_ASM_PRINTER macro to be a function-like macro with a *|
-+|* single parameter (the name of the target whose assembly can be *|
-+|* generated); including this file will then enumerate all of the *|
-+|* targets with assembly printers. *|
-+|* *|
-+|* The set of targets supported by LLVM is generated at configuration *|
-+|* time, at which point this header is generated. Do not modify this *|
-+|* header directly. *|
-+|* *|
-+\*===----------------------------------------------------------------------===*/
-+
-+#ifndef LLVM_ASM_PRINTER
-+# error Please define the macro LLVM_ASM_PRINTER(TargetName)
-+#endif
-+
-+LLVM_ASM_PRINTER(AArch64)
-+LLVM_ASM_PRINTER(AMDGPU)
-+LLVM_ASM_PRINTER(ARM)
-+LLVM_ASM_PRINTER(BPF)
-+LLVM_ASM_PRINTER(Hexagon)
-+LLVM_ASM_PRINTER(Lanai)
-+LLVM_ASM_PRINTER(Mips)
-+LLVM_ASM_PRINTER(MSP430)
-+LLVM_ASM_PRINTER(NVPTX)
-+LLVM_ASM_PRINTER(PowerPC)
-+LLVM_ASM_PRINTER(Sparc)
-+LLVM_ASM_PRINTER(SystemZ)
-+LLVM_ASM_PRINTER(X86)
-+LLVM_ASM_PRINTER(XCore)
-+
-+
-+#undef LLVM_ASM_PRINTER
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_Disassemblers.def b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_Disassemblers.def
deleted file mode 100644
index f690e9e5bb..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_Disassemblers.def
+++ /dev/null
@@ -1,46 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Config/Disassemblers.def.orig 2020-07-23 08:46:21.532406406 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Config/Disassemblers.def
-@@ -0,0 +1,41 @@
-+/*===- llvm/Config/Disassemblers.def - LLVM Assembly Parsers ----*- C++ -*-===*\
-+|* *|
-+|* The LLVM Compiler Infrastructure *|
-+|* *|
-+|* This file is distributed under the University of Illinois Open Source *|
-+|* License. See LICENSE.TXT for details. *|
-+|* *|
-+|*===----------------------------------------------------------------------===*|
-+|* *|
-+|* This file enumerates all of the assembly-language parsers *|
-+|* supported by this build of LLVM. Clients of this file should define *|
-+|* the LLVM_DISASSEMBLER macro to be a function-like macro with a *|
-+|* single parameter (the name of the target whose assembly can be *|
-+|* generated); including this file will then enumerate all of the *|
-+|* targets with assembly parsers. *|
-+|* *|
-+|* The set of targets supported by LLVM is generated at configuration *|
-+|* time, at which point this header is generated. Do not modify this *|
-+|* header directly. *|
-+|* *|
-+\*===----------------------------------------------------------------------===*/
-+
-+#ifndef LLVM_DISASSEMBLER
-+# error Please define the macro LLVM_DISASSEMBLER(TargetName)
-+#endif
-+
-+LLVM_DISASSEMBLER(AArch64)
-+LLVM_DISASSEMBLER(AMDGPU)
-+LLVM_DISASSEMBLER(ARM)
-+LLVM_DISASSEMBLER(BPF)
-+LLVM_DISASSEMBLER(Hexagon)
-+LLVM_DISASSEMBLER(Lanai)
-+LLVM_DISASSEMBLER(Mips)
-+LLVM_DISASSEMBLER(PowerPC)
-+LLVM_DISASSEMBLER(Sparc)
-+LLVM_DISASSEMBLER(SystemZ)
-+LLVM_DISASSEMBLER(X86)
-+LLVM_DISASSEMBLER(XCore)
-+
-+
-+#undef LLVM_DISASSEMBLER
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_Targets.def b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_Targets.def
deleted file mode 100644
index fba845d19c..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_Targets.def
+++ /dev/null
@@ -1,47 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Config/Targets.def.orig 2020-07-23 08:46:21.550067128 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Config/Targets.def
-@@ -0,0 +1,42 @@
-+/*===- llvm/Config/Targets.def - LLVM Target Architectures ------*- C++ -*-===*\
-+|* *|
-+|* The LLVM Compiler Infrastructure *|
-+|* *|
-+|* This file is distributed under the University of Illinois Open Source *|
-+|* License. See LICENSE.TXT for details. *|
-+|* *|
-+|*===----------------------------------------------------------------------===*|
-+|* *|
-+|* This file enumerates all of the target architectures supported by *|
-+|* this build of LLVM. Clients of this file should define the *|
-+|* LLVM_TARGET macro to be a function-like macro with a single *|
-+|* parameter (the name of the target); including this file will then *|
-+|* enumerate all of the targets. *|
-+|* *|
-+|* The set of targets supported by LLVM is generated at configuration *|
-+|* time, at which point this header is generated. Do not modify this *|
-+|* header directly. *|
-+|* *|
-+\*===----------------------------------------------------------------------===*/
-+
-+#ifndef LLVM_TARGET
-+# error Please define the macro LLVM_TARGET(TargetName)
-+#endif
-+
-+LLVM_TARGET(AArch64)
-+LLVM_TARGET(AMDGPU)
-+LLVM_TARGET(ARM)
-+LLVM_TARGET(BPF)
-+LLVM_TARGET(Hexagon)
-+LLVM_TARGET(Lanai)
-+LLVM_TARGET(Mips)
-+LLVM_TARGET(MSP430)
-+LLVM_TARGET(NVPTX)
-+LLVM_TARGET(PowerPC)
-+LLVM_TARGET(Sparc)
-+LLVM_TARGET(SystemZ)
-+LLVM_TARGET(X86)
-+LLVM_TARGET(XCore)
-+
-+
-+#undef LLVM_TARGET
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_abi-breaking.h b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_abi-breaking.h
deleted file mode 100644
index 3eec822bf9..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_abi-breaking.h
+++ /dev/null
@@ -1,55 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Config/abi-breaking.h.orig 2020-07-23 08:46:21.558989086 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Config/abi-breaking.h
-@@ -0,0 +1,50 @@
-+/*===------- llvm/Config/abi-breaking.h - llvm configuration -------*- C -*-===*/
-+/* */
-+/* The LLVM Compiler Infrastructure */
-+/* */
-+/* This file is distributed under the University of Illinois Open Source */
-+/* License. See LICENSE.TXT for details. */
-+/* */
-+/*===----------------------------------------------------------------------===*/
-+
-+/* This file controls the C++ ABI break introduced in LLVM public header. */
-+
-+#ifndef LLVM_ABI_BREAKING_CHECKS_H
-+#define LLVM_ABI_BREAKING_CHECKS_H
-+
-+/* Define to enable checks that alter the LLVM C++ ABI */
-+#define LLVM_ENABLE_ABI_BREAKING_CHECKS 1
-+
-+/* Define to enable reverse iteration of unordered llvm containers */
-+#define LLVM_ENABLE_REVERSE_ITERATION 0
-+
-+/* Allow selectively disabling link-time mismatch checking so that header-only
-+ ADT content from LLVM can be used without linking libSupport. */
-+#if !LLVM_DISABLE_ABI_BREAKING_CHECKS_ENFORCING
-+
-+// ABI_BREAKING_CHECKS protection: provides link-time failure when clients build
-+// mismatch with LLVM
-+#if defined(_MSC_VER)
-+// Use pragma with MSVC
-+#define LLVM_XSTR(s) LLVM_STR(s)
-+#define LLVM_STR(s) #s
-+#pragma detect_mismatch("LLVM_ENABLE_ABI_BREAKING_CHECKS", LLVM_XSTR(LLVM_ENABLE_ABI_BREAKING_CHECKS))
-+#undef LLVM_XSTR
-+#undef LLVM_STR
-+#elif defined(_WIN32) || defined(__CYGWIN__) // Win32 w/o #pragma detect_mismatch
-+// FIXME: Implement checks without weak.
-+#elif defined(__cplusplus)
-+namespace llvm {
-+#if LLVM_ENABLE_ABI_BREAKING_CHECKS
-+extern int EnableABIBreakingChecks;
-+__attribute__((weak, visibility ("hidden"))) int *VerifyEnableABIBreakingChecks = &EnableABIBreakingChecks;
-+#else
-+extern int DisableABIBreakingChecks;
-+__attribute__((weak, visibility ("hidden"))) int *VerifyDisableABIBreakingChecks = &DisableABIBreakingChecks;
-+#endif
-+}
-+#endif // _MSC_VER
-+
-+#endif // LLVM_DISABLE_ABI_BREAKING_CHECKS_ENFORCING
-+
-+#endif
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_config.h b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_config.h
deleted file mode 100644
index a8897474f4..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_config.h
+++ /dev/null
@@ -1,351 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Config/config.h.orig 2020-07-23 08:56:22.120075107 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Config/config.h
-@@ -0,0 +1,346 @@
-+#ifndef CONFIG_H
-+#define CONFIG_H
-+
-+/* Exported configuration */
-+#include "llvm/Config/llvm-config.h"
-+
-+/* Bug report URL. */
-+#define BUG_REPORT_URL "https://bugs.llvm.org/"
-+
-+/* Define to 1 to enable backtraces, and to 0 otherwise. */
-+#define ENABLE_BACKTRACES 1
-+
-+/* Define to 1 to enable crash overrides, and to 0 otherwise. */
-+#define ENABLE_CRASH_OVERRIDES 1
-+
-+/* Define to 1 if you have the `backtrace' function. */
-+#define HAVE_BACKTRACE TRUE
-+
-+#define HAVE_DIRENT_H 1
-+#define HAVE_EXECINFO_H 1
-+#define BACKTRACE_HEADER <execinfo.h>
-+
-+/* Define to 1 if you have the <CrashReporterClient.h> header file. */
-+/* #undef HAVE_CRASHREPORTERCLIENT_H */
-+
-+/* can use __crashreporter_info__ */
-+#define HAVE_CRASHREPORTER_INFO 0
-+
-+/* Define to 1 if you have the declaration of `arc4random', and to 0 if you
-+ don't. */
-+#define HAVE_DECL_ARC4RANDOM 1
-+
-+/* Define to 1 if you have the declaration of `FE_ALL_EXCEPT', and to 0 if you
-+ don't. */
-+#define HAVE_DECL_FE_ALL_EXCEPT 1
-+
-+/* Define to 1 if you have the declaration of `FE_INEXACT', and to 0 if you
-+ don't. */
-+#define HAVE_DECL_FE_INEXACT 1
-+
-+/* Define to 1 if you have the declaration of `strerror_s', and to 0 if you
-+ don't. */
-+#define HAVE_DECL_STRERROR_S 0
-+
-+/* Define to 1 if you have the DIA SDK installed, and to 0 if you don't. */
-+#define LLVM_ENABLE_DIA_SDK 0
-+
-+/* Define to 1 if you have the <dlfcn.h> header file. */
-+#define HAVE_DLFCN_H 1
-+
-+/* Define if dlopen() is available on this platform. */
-+#define HAVE_DLOPEN 1
-+
-+/* Define if dladdr() is available on this platform. */
-+#define HAVE_DLADDR 1
-+
-+/* Define to 1 if you have the <errno.h> header file. */
-+#define HAVE_ERRNO_H 1
-+
-+/* Define to 1 if you have the <fcntl.h> header file. */
-+#define HAVE_FCNTL_H 1
-+
-+/* Define to 1 if you have the <fenv.h> header file. */
-+#define HAVE_FENV_H 1
-+
-+/* Define if libffi is available on this platform. */
-+/* #undef HAVE_FFI_CALL */
-+
-+/* Define to 1 if you have the <ffi/ffi.h> header file. */
-+/* #undef HAVE_FFI_FFI_H */
-+
-+/* Define to 1 if you have the <ffi.h> header file. */
-+/* #undef HAVE_FFI_H */
-+
-+/* Define to 1 if you have the `futimens' function. */
-+#define HAVE_FUTIMENS 1
-+
-+/* Define to 1 if you have the `futimes' function. */
-+#define HAVE_FUTIMES 1
-+
-+/* Define to 1 if you have the `getpagesize' function. */
-+#define HAVE_GETPAGESIZE 1
-+
-+/* Define to 1 if you have the `getrlimit' function. */
-+#define HAVE_GETRLIMIT 1
-+
-+/* Define to 1 if you have the `getrusage' function. */
-+#define HAVE_GETRUSAGE 1
-+
-+/* Define to 1 if you have the `isatty' function. */
-+#define HAVE_ISATTY 1
-+
-+/* Define to 1 if you have the `edit' library (-ledit). */
-+#define HAVE_LIBEDIT 1
-+
-+/* Define to 1 if you have the `pfm' library (-lpfm). */
-+/* #undef HAVE_LIBPFM */
-+
-+/* Define to 1 if you have the `psapi' library (-lpsapi). */
-+/* #undef HAVE_LIBPSAPI */
-+
-+/* Define to 1 if you have the `pthread' library (-lpthread). */
-+#define HAVE_LIBPTHREAD 1
-+
-+/* Define to 1 if you have the `pthread_getname_np' function. */
-+#define HAVE_PTHREAD_GETNAME_NP 1
-+
-+/* Define to 1 if you have the `pthread_setname_np' function. */
-+#define HAVE_PTHREAD_SETNAME_NP 1
-+
-+/* Define to 1 if you have the `z' library (-lz). */
-+#define HAVE_LIBZ 1
-+
-+/* Define to 1 if you have the <link.h> header file. */
-+#define HAVE_LINK_H 1
-+
-+/* Define to 1 if you have the `lseek64' function. */
-+/* #undef HAVE_LSEEK64 */
-+
-+/* Define to 1 if you have the <mach/mach.h> header file. */
-+/* #undef HAVE_MACH_MACH_H */
-+
-+/* Define to 1 if you have the `mallctl' function. */
-+/* #undef HAVE_MALLCTL */
-+
-+/* Define to 1 if you have the `mallinfo' function. */
-+/* #undef HAVE_MALLINFO */
-+
-+/* Define to 1 if you have the <malloc.h> header file. */
-+#define HAVE_MALLOC_H 1
-+
-+/* Define to 1 if you have the <malloc/malloc.h> header file. */
-+/* #undef HAVE_MALLOC_MALLOC_H */
-+
-+/* Define to 1 if you have the `malloc_zone_statistics' function. */
-+/* #undef HAVE_MALLOC_ZONE_STATISTICS */
-+
-+/* Define to 1 if you have the `posix_fallocate' function. */
-+#define HAVE_POSIX_FALLOCATE 1
-+
-+/* Define to 1 if you have the `posix_spawn' function. */
-+#define HAVE_POSIX_SPAWN 1
-+
-+/* Define to 1 if you have the `pread' function. */
-+#define HAVE_PREAD 1
-+
-+/* Have pthread_getspecific */
-+#define HAVE_PTHREAD_GETSPECIFIC 1
-+
-+/* Define to 1 if you have the <pthread.h> header file. */
-+#define HAVE_PTHREAD_H 1
-+
-+/* Have pthread_mutex_lock */
-+#define HAVE_PTHREAD_MUTEX_LOCK 1
-+
-+/* Have pthread_rwlock_init */
-+#define HAVE_PTHREAD_RWLOCK_INIT 1
-+
-+/* Define to 1 if you have the `realpath' function. */
-+#define HAVE_REALPATH 1
-+
-+/* Define to 1 if you have the `sbrk' function. */
-+#define HAVE_SBRK 1
-+
-+/* Define to 1 if you have the `setenv' function. */
-+#define HAVE_SETENV 1
-+
-+/* Define to 1 if you have the `sched_getaffinity' function. */
-+/* #undef HAVE_SCHED_GETAFFINITY */
-+
-+/* Define to 1 if you have the `CPU_COUNT' macro. */
-+/* #undef HAVE_CPU_COUNT */
-+
-+/* Define to 1 if you have the `setrlimit' function. */
-+#define HAVE_SETRLIMIT 1
-+
-+/* Define to 1 if you have the `sigaltstack' function. */
-+#define HAVE_SIGALTSTACK 1
-+
-+/* Define to 1 if you have the <signal.h> header file. */
-+#define HAVE_SIGNAL_H 1
-+
-+/* Define to 1 if you have the `strerror' function. */
-+#define HAVE_STRERROR 1
-+
-+/* Define to 1 if you have the `strerror_r' function. */
-+#define HAVE_STRERROR_R 1
-+
-+/* Define to 1 if you have the `sysconf' function. */
-+#define HAVE_SYSCONF 1
-+
-+/* Define to 1 if you have the <sys/ioctl.h> header file. */
-+#define HAVE_SYS_IOCTL_H 1
-+
-+/* Define to 1 if you have the <sys/mman.h> header file. */
-+#define HAVE_SYS_MMAN_H 1
-+
-+/* Define to 1 if you have the <sys/param.h> header file. */
-+#define HAVE_SYS_PARAM_H 1
-+
-+/* Define to 1 if you have the <sys/resource.h> header file. */
-+#define HAVE_SYS_RESOURCE_H 1
-+
-+/* Define to 1 if you have the <sys/stat.h> header file. */
-+#define HAVE_SYS_STAT_H 1
-+
-+/* Define to 1 if you have the <sys/time.h> header file. */
-+#define HAVE_SYS_TIME_H 1
-+
-+/* Define to 1 if you have the <sys/types.h> header file. */
-+#define HAVE_SYS_TYPES_H 1
-+
-+/* Define if the setupterm() function is supported this platform. */
-+#define HAVE_TERMINFO 1
-+
-+/* Define if the xar_open() function is supported this platform. */
-+/* #undef HAVE_LIBXAR */
-+
-+/* Define to 1 if you have the <termios.h> header file. */
-+#define HAVE_TERMIOS_H 1
-+
-+/* Define to 1 if you have the <unistd.h> header file. */
-+#define HAVE_UNISTD_H 1
-+
-+/* Define to 1 if you have the <valgrind/valgrind.h> header file. */
-+/* #undef HAVE_VALGRIND_VALGRIND_H */
-+
-+/* Define to 1 if you have the <zlib.h> header file. */
-+#define HAVE_ZLIB_H 1
-+
-+/* Have host's _alloca */
-+/* #undef HAVE__ALLOCA */
-+
-+/* Define to 1 if you have the `_chsize_s' function. */
-+/* #undef HAVE__CHSIZE_S */
-+
-+/* Define to 1 if you have the `_Unwind_Backtrace' function. */
-+#define HAVE__UNWIND_BACKTRACE 1
-+
-+/* Have host's __alloca */
-+/* #undef HAVE___ALLOCA */
-+
-+/* Have host's __ashldi3 */
-+/* #undef HAVE___ASHLDI3 */
-+
-+/* Have host's __ashrdi3 */
-+/* #undef HAVE___ASHRDI3 */
-+
-+/* Have host's __chkstk */
-+/* #undef HAVE___CHKSTK */
-+
-+/* Have host's __chkstk_ms */
-+/* #undef HAVE___CHKSTK_MS */
-+
-+/* Have host's __cmpdi2 */
-+/* #undef HAVE___CMPDI2 */
-+
-+/* Have host's __divdi3 */
-+/* #undef HAVE___DIVDI3 */
-+
-+/* Have host's __fixdfdi */
-+/* #undef HAVE___FIXDFDI */
-+
-+/* Have host's __fixsfdi */
-+/* #undef HAVE___FIXSFDI */
-+
-+/* Have host's __floatdidf */
-+/* #undef HAVE___FLOATDIDF */
-+
-+/* Have host's __lshrdi3 */
-+/* #undef HAVE___LSHRDI3 */
-+
-+/* Have host's __main */
-+/* #undef HAVE___MAIN */
-+
-+/* Have host's __moddi3 */
-+/* #undef HAVE___MODDI3 */
-+
-+/* Have host's __udivdi3 */
-+/* #undef HAVE___UDIVDI3 */
-+
-+/* Have host's __umoddi3 */
-+/* #undef HAVE___UMODDI3 */
-+
-+/* Have host's ___chkstk */
-+/* #undef HAVE____CHKSTK */
-+
-+/* Have host's ___chkstk_ms */
-+/* #undef HAVE____CHKSTK_MS */
-+
-+/* Linker version detected at compile time. */
-+/* #undef HOST_LINK_VERSION */
-+
-+/* Target triple LLVM will generate code for by default */
-+/* Doesn't use `cmakedefine` because it is allowed to be empty. */
-+#define LLVM_DEFAULT_TARGET_TRIPLE "x86_64-unknown-netbsd9.99.69"
-+
-+/* Define if zlib compression is available */
-+#define LLVM_ENABLE_ZLIB 1
-+
-+/* Define if overriding target triple is enabled */
-+/* #undef LLVM_TARGET_TRIPLE_ENV */
-+
-+/* LLVM version information */
-+/* #undef LLVM_VERSION_INFO */
-+
-+/* Whether tools show host and target info when invoked with --version */
-+#define LLVM_VERSION_PRINTER_SHOW_HOST_TARGET_INFO 1
-+
-+/* Define if libxml2 is supported on this platform. */
-+/* #undef LLVM_LIBXML2_ENABLED */
-+
-+/* Define to the extension used for shared libraries, say, ".so". */
-+#define LTDL_SHLIB_EXT ".so"
-+
-+/* Define to the address where bug reports for this package should be sent. */
-+#define PACKAGE_BUGREPORT "https://bugs.llvm.org/"
-+
-+/* Define to the full name of this package. */
-+#define PACKAGE_NAME "LLVM"
-+
-+/* Define to the full name and version of this package. */
-+#define PACKAGE_STRING "LLVM 7.0.1"
-+
-+/* Define to the version of this package. */
-+#define PACKAGE_VERSION "7.0.1"
-+
-+/* Define to the vendor of this package. */
-+/* #undef PACKAGE_VENDOR */
-+
-+/* Define as the return type of signal handlers (`int' or `void'). */
-+#define RETSIGTYPE void
-+
-+/* Define to a function implementing stricmp */
-+/* #undef stricmp */
-+
-+/* Define to a function implementing strdup */
-+/* #undef strdup */
-+
-+/* Whether GlobalISel rule coverage is being collected */
-+#define LLVM_GISEL_COV_ENABLED 0
-+
-+/* Define to the default GlobalISel coverage file prefix */
-+/* #undef LLVM_GISEL_COV_PREFIX */
-+
-+#endif
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_llvm-config.h b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_llvm-config.h
deleted file mode 100644
index b9f3bb0f71..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_llvm-config.h
+++ /dev/null
@@ -1,90 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Config/llvm-config.h.orig 2020-07-23 08:46:21.545648353 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Config/llvm-config.h
-@@ -0,0 +1,85 @@
-+/*===------- llvm/Config/llvm-config.h - llvm configuration -------*- C -*-===*/
-+/* */
-+/* The LLVM Compiler Infrastructure */
-+/* */
-+/* This file is distributed under the University of Illinois Open Source */
-+/* License. See LICENSE.TXT for details. */
-+/* */
-+/*===----------------------------------------------------------------------===*/
-+
-+/* This file enumerates variables from the LLVM configuration so that they
-+ can be in exported headers and won't override package specific directives.
-+ This is a C header that can be included in the llvm-c headers. */
-+
-+#ifndef LLVM_CONFIG_H
-+#define LLVM_CONFIG_H
-+
-+/* Define if LLVM_ENABLE_DUMP is enabled */
-+/* #undef LLVM_ENABLE_DUMP */
-+
-+/* Define if we link Polly to the tools */
-+/* #undef LINK_POLLY_INTO_TOOLS */
-+
-+/* Target triple LLVM will generate code for by default */
-+#define LLVM_DEFAULT_TARGET_TRIPLE "x86_64-unknown-netbsd9.99.69"
-+
-+/* Define if threads enabled */
-+#define LLVM_ENABLE_THREADS 1
-+
-+/* Has gcc/MSVC atomic intrinsics */
-+#define LLVM_HAS_ATOMICS 1
-+
-+/* Host triple LLVM will be executed on */
-+#define LLVM_HOST_TRIPLE "x86_64-unknown-netbsd9.99.69"
-+
-+/* LLVM architecture name for the native architecture, if available */
-+#define LLVM_NATIVE_ARCH X86
-+
-+/* LLVM name for the native AsmParser init function, if available */
-+#define LLVM_NATIVE_ASMPARSER LLVMInitializeX86AsmParser
-+
-+/* LLVM name for the native AsmPrinter init function, if available */
-+#define LLVM_NATIVE_ASMPRINTER LLVMInitializeX86AsmPrinter
-+
-+/* LLVM name for the native Disassembler init function, if available */
-+#define LLVM_NATIVE_DISASSEMBLER LLVMInitializeX86Disassembler
-+
-+/* LLVM name for the native Target init function, if available */
-+#define LLVM_NATIVE_TARGET LLVMInitializeX86Target
-+
-+/* LLVM name for the native TargetInfo init function, if available */
-+#define LLVM_NATIVE_TARGETINFO LLVMInitializeX86TargetInfo
-+
-+/* LLVM name for the native target MC init function, if available */
-+#define LLVM_NATIVE_TARGETMC LLVMInitializeX86TargetMC
-+
-+/* Define if this is Unixish platform */
-+#define LLVM_ON_UNIX 1
-+
-+/* Define if we have the Intel JIT API runtime support library */
-+#define LLVM_USE_INTEL_JITEVENTS 0
-+
-+/* Define if we have the oprofile JIT-support library */
-+#define LLVM_USE_OPROFILE 0
-+
-+/* Define if we have the perf JIT-support library */
-+#define LLVM_USE_PERF 0
-+
-+/* Major version of the LLVM API */
-+#define LLVM_VERSION_MAJOR 7
-+
-+/* Minor version of the LLVM API */
-+#define LLVM_VERSION_MINOR 0
-+
-+/* Patch version of the LLVM API */
-+#define LLVM_VERSION_PATCH 1
-+
-+/* LLVM version string */
-+#define LLVM_VERSION_STRING "7.0.1"
-+
-+/* Whether LLVM records statistics for use with GetStatistics(),
-+ * PrintStatistics() or PrintStatisticsJSON()
-+ */
-+#define LLVM_FORCE_ENABLE_STATS 0
-+
-+#endif
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_Attributes.gen b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_Attributes.gen
deleted file mode 100644
index e088e61528..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_Attributes.gen
+++ /dev/null
@@ -1,463 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/Attributes.gen.orig 2020-07-23 10:06:54.229863415 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/Attributes.gen
-@@ -0,0 +1,458 @@
-+#ifdef GET_ATTR_ENUM
-+#undef GET_ATTR_ENUM
-+Alignment,
-+AllocSize,
-+AlwaysInline,
-+ArgMemOnly,
-+Builtin,
-+ByVal,
-+Cold,
-+Convergent,
-+Dereferenceable,
-+DereferenceableOrNull,
-+InAlloca,
-+InReg,
-+InaccessibleMemOnly,
-+InaccessibleMemOrArgMemOnly,
-+InlineHint,
-+JumpTable,
-+MinSize,
-+Naked,
-+Nest,
-+NoAlias,
-+NoBuiltin,
-+NoCapture,
-+NoDuplicate,
-+NoImplicitFloat,
-+NoInline,
-+NoRecurse,
-+NoRedZone,
-+NoReturn,
-+NoUnwind,
-+NonLazyBind,
-+NonNull,
-+OptimizeForSize,
-+OptimizeNone,
-+ReadNone,
-+ReadOnly,
-+Returned,
-+ReturnsTwice,
-+SExt,
-+SafeStack,
-+SanitizeAddress,
-+SanitizeMemory,
-+SanitizeThread,
-+StackAlignment,
-+StackProtect,
-+StackProtectReq,
-+StackProtectStrong,
-+StructRet,
-+SwiftError,
-+SwiftSelf,
-+UWTable,
-+WriteOnly,
-+ZExt,
-+#endif
-+#ifdef GET_ATTR_KIND_FROM_NAME
-+#undef GET_ATTR_KIND_FROM_NAME
-+static Attribute::AttrKind getAttrKindFromName(StringRef AttrName) {
-+ return StringSwitch<Attribute::AttrKind>(AttrName)
-+ .Case("align", Attribute::Alignment)
-+ .Case("allocsize", Attribute::AllocSize)
-+ .Case("alwaysinline", Attribute::AlwaysInline)
-+ .Case("argmemonly", Attribute::ArgMemOnly)
-+ .Case("builtin", Attribute::Builtin)
-+ .Case("byval", Attribute::ByVal)
-+ .Case("cold", Attribute::Cold)
-+ .Case("convergent", Attribute::Convergent)
-+ .Case("dereferenceable", Attribute::Dereferenceable)
-+ .Case("dereferenceable_or_null", Attribute::DereferenceableOrNull)
-+ .Case("inalloca", Attribute::InAlloca)
-+ .Case("inreg", Attribute::InReg)
-+ .Case("inaccessiblememonly", Attribute::InaccessibleMemOnly)
-+ .Case("inaccessiblemem_or_argmemonly", Attribute::InaccessibleMemOrArgMemOnly)
-+ .Case("inlinehint", Attribute::InlineHint)
-+ .Case("jumptable", Attribute::JumpTable)
-+ .Case("minsize", Attribute::MinSize)
-+ .Case("naked", Attribute::Naked)
-+ .Case("nest", Attribute::Nest)
-+ .Case("noalias", Attribute::NoAlias)
-+ .Case("nobuiltin", Attribute::NoBuiltin)
-+ .Case("nocapture", Attribute::NoCapture)
-+ .Case("noduplicate", Attribute::NoDuplicate)
-+ .Case("noimplicitfloat", Attribute::NoImplicitFloat)
-+ .Case("noinline", Attribute::NoInline)
-+ .Case("norecurse", Attribute::NoRecurse)
-+ .Case("noredzone", Attribute::NoRedZone)
-+ .Case("noreturn", Attribute::NoReturn)
-+ .Case("nounwind", Attribute::NoUnwind)
-+ .Case("nonlazybind", Attribute::NonLazyBind)
-+ .Case("nonnull", Attribute::NonNull)
-+ .Case("optsize", Attribute::OptimizeForSize)
-+ .Case("optnone", Attribute::OptimizeNone)
-+ .Case("readnone", Attribute::ReadNone)
-+ .Case("readonly", Attribute::ReadOnly)
-+ .Case("returned", Attribute::Returned)
-+ .Case("returns_twice", Attribute::ReturnsTwice)
-+ .Case("signext", Attribute::SExt)
-+ .Case("safestack", Attribute::SafeStack)
-+ .Case("sanitize_address", Attribute::SanitizeAddress)
-+ .Case("sanitize_memory", Attribute::SanitizeMemory)
-+ .Case("sanitize_thread", Attribute::SanitizeThread)
-+ .Case("alignstack", Attribute::StackAlignment)
-+ .Case("ssp", Attribute::StackProtect)
-+ .Case("sspreq", Attribute::StackProtectReq)
-+ .Case("sspstrong", Attribute::StackProtectStrong)
-+ .Case("sret", Attribute::StructRet)
-+ .Case("swifterror", Attribute::SwiftError)
-+ .Case("swiftself", Attribute::SwiftSelf)
-+ .Case("uwtable", Attribute::UWTable)
-+ .Case("writeonly", Attribute::WriteOnly)
-+ .Case("zeroext", Attribute::ZExt)
-+ .Default(Attribute::None);
-+}
-+
-+#endif
-+#ifdef GET_ATTR_COMPAT_FUNC
-+#undef GET_ATTR_COMPAT_FUNC
-+struct EnumAttr {
-+ static bool isSet(const Function &Fn,
-+ Attribute::AttrKind Kind) {
-+ return Fn.hasFnAttribute(Kind);
-+ }
-+
-+ static void set(Function &Fn,
-+ Attribute::AttrKind Kind, bool Val) {
-+ if (Val)
-+ Fn.addFnAttr(Kind);
-+ else
-+ Fn.removeFnAttr(Kind);
-+ }
-+};
-+
-+struct StrBoolAttr {
-+ static bool isSet(const Function &Fn,
-+ StringRef Kind) {
-+ auto A = Fn.getFnAttribute(Kind);
-+ return A.getValueAsString().equals("true");
-+ }
-+
-+ static void set(Function &Fn,
-+ StringRef Kind, bool Val) {
-+ Fn.addFnAttr(Kind, Val ? "true" : "false");
-+ }
-+};
-+
-+// EnumAttr classes
-+struct AlignmentAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::Alignment;
-+ }
-+};
-+struct AllocSizeAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::AllocSize;
-+ }
-+};
-+struct AlwaysInlineAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::AlwaysInline;
-+ }
-+};
-+struct ArgMemOnlyAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::ArgMemOnly;
-+ }
-+};
-+struct BuiltinAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::Builtin;
-+ }
-+};
-+struct ByValAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::ByVal;
-+ }
-+};
-+struct ColdAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::Cold;
-+ }
-+};
-+struct ConvergentAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::Convergent;
-+ }
-+};
-+struct DereferenceableAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::Dereferenceable;
-+ }
-+};
-+struct DereferenceableOrNullAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::DereferenceableOrNull;
-+ }
-+};
-+struct InAllocaAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::InAlloca;
-+ }
-+};
-+struct InRegAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::InReg;
-+ }
-+};
-+struct InaccessibleMemOnlyAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::InaccessibleMemOnly;
-+ }
-+};
-+struct InaccessibleMemOrArgMemOnlyAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::InaccessibleMemOrArgMemOnly;
-+ }
-+};
-+struct InlineHintAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::InlineHint;
-+ }
-+};
-+struct JumpTableAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::JumpTable;
-+ }
-+};
-+struct MinSizeAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::MinSize;
-+ }
-+};
-+struct NakedAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::Naked;
-+ }
-+};
-+struct NestAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::Nest;
-+ }
-+};
-+struct NoAliasAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::NoAlias;
-+ }
-+};
-+struct NoBuiltinAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::NoBuiltin;
-+ }
-+};
-+struct NoCaptureAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::NoCapture;
-+ }
-+};
-+struct NoDuplicateAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::NoDuplicate;
-+ }
-+};
-+struct NoImplicitFloatAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::NoImplicitFloat;
-+ }
-+};
-+struct NoInlineAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::NoInline;
-+ }
-+};
-+struct NoRecurseAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::NoRecurse;
-+ }
-+};
-+struct NoRedZoneAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::NoRedZone;
-+ }
-+};
-+struct NoReturnAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::NoReturn;
-+ }
-+};
-+struct NoUnwindAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::NoUnwind;
-+ }
-+};
-+struct NonLazyBindAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::NonLazyBind;
-+ }
-+};
-+struct NonNullAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::NonNull;
-+ }
-+};
-+struct OptimizeForSizeAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::OptimizeForSize;
-+ }
-+};
-+struct OptimizeNoneAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::OptimizeNone;
-+ }
-+};
-+struct ReadNoneAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::ReadNone;
-+ }
-+};
-+struct ReadOnlyAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::ReadOnly;
-+ }
-+};
-+struct ReturnedAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::Returned;
-+ }
-+};
-+struct ReturnsTwiceAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::ReturnsTwice;
-+ }
-+};
-+struct SExtAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::SExt;
-+ }
-+};
-+struct SafeStackAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::SafeStack;
-+ }
-+};
-+struct SanitizeAddressAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::SanitizeAddress;
-+ }
-+};
-+struct SanitizeMemoryAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::SanitizeMemory;
-+ }
-+};
-+struct SanitizeThreadAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::SanitizeThread;
-+ }
-+};
-+struct StackAlignmentAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::StackAlignment;
-+ }
-+};
-+struct StackProtectAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::StackProtect;
-+ }
-+};
-+struct StackProtectReqAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::StackProtectReq;
-+ }
-+};
-+struct StackProtectStrongAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::StackProtectStrong;
-+ }
-+};
-+struct StructRetAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::StructRet;
-+ }
-+};
-+struct SwiftErrorAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::SwiftError;
-+ }
-+};
-+struct SwiftSelfAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::SwiftSelf;
-+ }
-+};
-+struct UWTableAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::UWTable;
-+ }
-+};
-+struct WriteOnlyAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::WriteOnly;
-+ }
-+};
-+struct ZExtAttr : EnumAttr {
-+ static enum Attribute::AttrKind getKind() {
-+ return llvm::Attribute::ZExt;
-+ }
-+};
-+
-+// StrBoolAttr classes
-+struct LessPreciseFPMADAttr : StrBoolAttr {
-+ static StringRef getKind() {
-+ return "less-precise-fpmad";
-+ }
-+};
-+struct NoInfsFPMathAttr : StrBoolAttr {
-+ static StringRef getKind() {
-+ return "no-infs-fp-math";
-+ }
-+};
-+struct NoJumpTablesAttr : StrBoolAttr {
-+ static StringRef getKind() {
-+ return "no-jump-tables";
-+ }
-+};
-+struct NoNansFPMathAttr : StrBoolAttr {
-+ static StringRef getKind() {
-+ return "no-nans-fp-math";
-+ }
-+};
-+struct UnsafeFPMathAttr : StrBoolAttr {
-+ static StringRef getKind() {
-+ return "unsafe-fp-math";
-+ }
-+};
-+
-+static inline bool hasCompatibleFnAttrs(const Function &Caller,
-+ const Function &Callee) {
-+ bool Ret = true;
-+
-+ Ret &= isEqual<SanitizeAddressAttr>(Caller, Callee);
-+ Ret &= isEqual<SanitizeThreadAttr>(Caller, Callee);
-+ Ret &= isEqual<SanitizeMemoryAttr>(Caller, Callee);
-+ Ret &= isEqual<SafeStackAttr>(Caller, Callee);
-+
-+ return Ret;
-+}
-+
-+static inline void mergeFnAttrs(Function &Caller,
-+ const Function &Callee) {
-+ adjustCallerSSPLevel(Caller, Callee);
-+ setAND<LessPreciseFPMADAttr>(Caller, Callee);
-+ setAND<NoInfsFPMathAttr>(Caller, Callee);
-+ setAND<NoNansFPMathAttr>(Caller, Callee);
-+ setAND<UnsafeFPMathAttr>(Caller, Callee);
-+ setOR<NoImplicitFloatAttr>(Caller, Callee);
-+ setOR<NoJumpTablesAttr>(Caller, Callee);
-+}
-+
-+#endif
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_CMakeDirectoryInformation.cmake b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_CMakeDirectoryInformation.cmake
deleted file mode 100644
index d05fc776ae..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_CMakeDirectoryInformation.cmake
+++ /dev/null
@@ -1,21 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/CMakeFiles/CMakeDirectoryInformation.cmake.orig 2020-07-23 08:46:21.605822052 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/CMakeFiles/CMakeDirectoryInformation.cmake
-@@ -0,0 +1,16 @@
-+# CMAKE generated file: DO NOT EDIT!
-+# Generated by "Unix Makefiles" Generator, CMake Version 3.17
-+
-+# Relative path conversion top directories.
-+set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/ryoon/tmp4/llvm-7.0.1.src")
-+set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/ryoon/tmp4/build")
-+
-+# Force unix paths in dependencies.
-+set(CMAKE_FORCE_UNIX_PATHS 1)
-+
-+
-+# The C and CXX include file regular expressions for this directory.
-+set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
-+set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
-+set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
-+set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_DependInfo.cmake b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_DependInfo.cmake
deleted file mode 100644
index 65d0319a86..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_DependInfo.cmake
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/CMakeFiles/intrinsics_gen.dir/DependInfo.cmake.orig 2020-07-23 08:46:21.601673038 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/CMakeFiles/intrinsics_gen.dir/DependInfo.cmake
-@@ -0,0 +1,11 @@
-+# The set of languages for which implicit dependencies are needed:
-+set(CMAKE_DEPENDS_LANGUAGES
-+ )
-+# The set of files for implicit dependencies of each language:
-+
-+# Targets to which this target links.
-+set(CMAKE_TARGET_LINKED_INFO_FILES
-+ )
-+
-+# Fortran module output directory.
-+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_build.make b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_build.make
deleted file mode 100644
index c36394a918..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_build.make
+++ /dev/null
@@ -1,265 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/CMakeFiles/intrinsics_gen.dir/build.make.orig 2020-07-23 08:46:21.597505478 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/CMakeFiles/intrinsics_gen.dir/build.make
-@@ -0,0 +1,260 @@
-+# CMAKE generated file: DO NOT EDIT!
-+# Generated by "Unix Makefiles" Generator, CMake Version 3.17
-+
-+# Delete rule output on recipe failure.
-+.DELETE_ON_ERROR:
-+
-+
-+#=============================================================================
-+# Special targets provided by cmake.
-+
-+# Disable implicit rules so canonical targets will work.
-+.SUFFIXES:
-+
-+
-+# Disable VCS-based implicit rules.
-+% : %,v
-+
-+
-+# Disable VCS-based implicit rules.
-+% : RCS/%
-+
-+
-+# Disable VCS-based implicit rules.
-+% : RCS/%,v
-+
-+
-+# Disable VCS-based implicit rules.
-+% : SCCS/s.%
-+
-+
-+# Disable VCS-based implicit rules.
-+% : s.%
-+
-+
-+.SUFFIXES: .hpux_make_needs_suffix_list
-+
-+
-+# Command-line flag to silence nested $(MAKE).
-+$(VERBOSE)MAKESILENT = -s
-+
-+# Suppress display of executed commands.
-+$(VERBOSE).SILENT:
-+
-+
-+# A target that is always out of date.
-+cmake_force:
-+
-+.PHONY : cmake_force
-+
-+#=============================================================================
-+# Set environment variables for the build.
-+
-+# The shell in which to execute make rules.
-+SHELL = /bin/sh
-+
-+# The CMake executable.
-+CMAKE_COMMAND = /usr/pkg/bin/cmake
-+
-+# The command to remove a file.
-+RM = /usr/pkg/bin/cmake -E rm -f
-+
-+# Escaping for special characters.
-+EQUALS = =
-+
-+# The top-level source directory on which CMake was run.
-+CMAKE_SOURCE_DIR = /home/ryoon/tmp4/llvm-7.0.1.src
-+
-+# The top-level build directory on which CMake was run.
-+CMAKE_BINARY_DIR = /home/ryoon/tmp4/build
-+
-+# Utility rule file for intrinsics_gen.
-+
-+# Include the progress variables for this target.
-+include include/llvm/IR/CMakeFiles/intrinsics_gen.dir/progress.make
-+
-+include/llvm/IR/CMakeFiles/intrinsics_gen: include/llvm/IR/Attributes.inc
-+include/llvm/IR/CMakeFiles/intrinsics_gen: include/llvm/IR/IntrinsicEnums.inc
-+include/llvm/IR/CMakeFiles/intrinsics_gen: include/llvm/IR/IntrinsicImpl.inc
-+
-+
-+include/llvm/IR/Attributes.inc: include/llvm/IR/Attributes.inc.tmp
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir=/home/ryoon/tmp4/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Updating Attributes.inc..."
-+ cd /home/ryoon/tmp4/build/include/llvm/IR && /usr/pkg/bin/cmake -E copy_if_different /home/ryoon/tmp4/build/include/llvm/IR/Attributes.inc.tmp /home/ryoon/tmp4/build/include/llvm/IR/Attributes.inc
-+
-+include/llvm/IR/IntrinsicEnums.inc: include/llvm/IR/IntrinsicEnums.inc.tmp
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir=/home/ryoon/tmp4/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Updating IntrinsicEnums.inc..."
-+ cd /home/ryoon/tmp4/build/include/llvm/IR && /usr/pkg/bin/cmake -E copy_if_different /home/ryoon/tmp4/build/include/llvm/IR/IntrinsicEnums.inc.tmp /home/ryoon/tmp4/build/include/llvm/IR/IntrinsicEnums.inc
-+
-+include/llvm/IR/IntrinsicImpl.inc: include/llvm/IR/IntrinsicImpl.inc.tmp
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir=/home/ryoon/tmp4/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Updating IntrinsicImpl.inc..."
-+ cd /home/ryoon/tmp4/build/include/llvm/IR && /usr/pkg/bin/cmake -E copy_if_different /home/ryoon/tmp4/build/include/llvm/IR/IntrinsicImpl.inc.tmp /home/ryoon/tmp4/build/include/llvm/IR/IntrinsicImpl.inc
-+
-+include/llvm/IR/Attributes.inc.tmp: bin/llvm-tblgen
-+include/llvm/IR/Attributes.inc.tmp: bin/llvm-tblgen
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Attributes.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Intrinsics.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsAArch64.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsAMDGPU.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsARM.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsBPF.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsHexagon.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsMips.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsNVVM.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsPowerPC.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsSystemZ.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsWebAssembly.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsX86.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsXCore.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/CodeGen/SDNodeProperties.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/CodeGen/ValueTypes.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Attributes.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Intrinsics.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsAArch64.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsAMDGPU.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsARM.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsBPF.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsHexagon.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsMips.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsNVVM.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsPowerPC.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsSystemZ.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsWebAssembly.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsX86.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsXCore.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Option/OptParser.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/TableGen/SearchableTable.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/GenericOpcodes.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/GlobalISel/RegisterBank.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/GlobalISel/Target.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/Target.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/TargetCallingConv.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/TargetInstrPredicate.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/TargetItinerary.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/TargetSchedule.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/TargetSelectionDAG.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Attributes.td
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir=/home/ryoon/tmp4/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Building Attributes.inc..."
-+ cd /home/ryoon/tmp4/build/include/llvm/IR && ../../../bin/llvm-tblgen -gen-attrs -I /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR -I /home/ryoon/tmp4/llvm-7.0.1.src/include /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Attributes.td -o /home/ryoon/tmp4/build/include/llvm/IR/Attributes.inc.tmp
-+
-+include/llvm/IR/IntrinsicEnums.inc.tmp: bin/llvm-tblgen
-+include/llvm/IR/IntrinsicEnums.inc.tmp: bin/llvm-tblgen
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Attributes.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Intrinsics.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsAArch64.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsAMDGPU.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsARM.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsBPF.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsHexagon.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsMips.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsNVVM.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsPowerPC.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsSystemZ.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsWebAssembly.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsX86.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsXCore.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/CodeGen/SDNodeProperties.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/CodeGen/ValueTypes.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Attributes.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Intrinsics.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsAArch64.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsAMDGPU.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsARM.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsBPF.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsHexagon.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsMips.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsNVVM.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsPowerPC.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsSystemZ.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsWebAssembly.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsX86.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsXCore.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Option/OptParser.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/TableGen/SearchableTable.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/GenericOpcodes.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/GlobalISel/RegisterBank.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/GlobalISel/Target.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/Target.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/TargetCallingConv.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/TargetInstrPredicate.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/TargetItinerary.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/TargetSchedule.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/TargetSelectionDAG.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Intrinsics.td
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir=/home/ryoon/tmp4/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_5) "Building IntrinsicEnums.inc..."
-+ cd /home/ryoon/tmp4/build/include/llvm/IR && ../../../bin/llvm-tblgen -gen-intrinsic-enums -I /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR -I /home/ryoon/tmp4/llvm-7.0.1.src/include /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Intrinsics.td -o /home/ryoon/tmp4/build/include/llvm/IR/IntrinsicEnums.inc.tmp
-+
-+include/llvm/IR/IntrinsicImpl.inc.tmp: bin/llvm-tblgen
-+include/llvm/IR/IntrinsicImpl.inc.tmp: bin/llvm-tblgen
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Attributes.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Intrinsics.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsAArch64.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsAMDGPU.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsARM.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsBPF.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsHexagon.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsMips.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsNVVM.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsPowerPC.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsSystemZ.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsWebAssembly.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsX86.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsXCore.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/CodeGen/SDNodeProperties.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/CodeGen/ValueTypes.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Attributes.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Intrinsics.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsAArch64.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsAMDGPU.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsARM.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsBPF.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsHexagon.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsMips.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsNVVM.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsPowerPC.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsSystemZ.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsWebAssembly.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsX86.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsXCore.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Option/OptParser.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/TableGen/SearchableTable.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/GenericOpcodes.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/GlobalISel/RegisterBank.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/GlobalISel/Target.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/Target.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/TargetCallingConv.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/TargetInstrPredicate.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/TargetItinerary.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/TargetSchedule.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/TargetSelectionDAG.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Intrinsics.td
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir=/home/ryoon/tmp4/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_6) "Building IntrinsicImpl.inc..."
-+ cd /home/ryoon/tmp4/build/include/llvm/IR && ../../../bin/llvm-tblgen -gen-intrinsic-impl -I /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR -I /home/ryoon/tmp4/llvm-7.0.1.src/include /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Intrinsics.td -o /home/ryoon/tmp4/build/include/llvm/IR/IntrinsicImpl.inc.tmp
-+
-+intrinsics_gen: include/llvm/IR/CMakeFiles/intrinsics_gen
-+intrinsics_gen: include/llvm/IR/Attributes.inc
-+intrinsics_gen: include/llvm/IR/IntrinsicEnums.inc
-+intrinsics_gen: include/llvm/IR/IntrinsicImpl.inc
-+intrinsics_gen: include/llvm/IR/Attributes.inc.tmp
-+intrinsics_gen: include/llvm/IR/IntrinsicEnums.inc.tmp
-+intrinsics_gen: include/llvm/IR/IntrinsicImpl.inc.tmp
-+intrinsics_gen: include/llvm/IR/CMakeFiles/intrinsics_gen.dir/build.make
-+
-+.PHONY : intrinsics_gen
-+
-+# Rule to build all files generated by this target.
-+include/llvm/IR/CMakeFiles/intrinsics_gen.dir/build: intrinsics_gen
-+
-+.PHONY : include/llvm/IR/CMakeFiles/intrinsics_gen.dir/build
-+
-+include/llvm/IR/CMakeFiles/intrinsics_gen.dir/clean:
-+ cd /home/ryoon/tmp4/build/include/llvm/IR && $(CMAKE_COMMAND) -P CMakeFiles/intrinsics_gen.dir/cmake_clean.cmake
-+.PHONY : include/llvm/IR/CMakeFiles/intrinsics_gen.dir/clean
-+
-+include/llvm/IR/CMakeFiles/intrinsics_gen.dir/depend:
-+ cd /home/ryoon/tmp4/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ryoon/tmp4/llvm-7.0.1.src /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR /home/ryoon/tmp4/build /home/ryoon/tmp4/build/include/llvm/IR /home/ryoon/tmp4/build/include/llvm/IR/CMakeFiles/intrinsics_gen.dir/DependInfo.cmake --color=$(COLOR)
-+.PHONY : include/llvm/IR/CMakeFiles/intrinsics_gen.dir/depend
-+
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_cmake__clean.cmake b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_cmake__clean.cmake
deleted file mode 100644
index 048e0815f3..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_cmake__clean.cmake
+++ /dev/null
@@ -1,19 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/CMakeFiles/intrinsics_gen.dir/cmake_clean.cmake.orig 2020-07-23 08:46:21.593341283 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/CMakeFiles/intrinsics_gen.dir/cmake_clean.cmake
-@@ -0,0 +1,14 @@
-+file(REMOVE_RECURSE
-+ "Attributes.inc"
-+ "Attributes.inc.tmp"
-+ "CMakeFiles/intrinsics_gen"
-+ "IntrinsicEnums.inc"
-+ "IntrinsicEnums.inc.tmp"
-+ "IntrinsicImpl.inc"
-+ "IntrinsicImpl.inc.tmp"
-+)
-+
-+# Per-language clean rules from dependency scanning.
-+foreach(lang )
-+ include(CMakeFiles/intrinsics_gen.dir/cmake_clean_${lang}.cmake OPTIONAL)
-+endforeach()
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_progress.make b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_progress.make
deleted file mode 100644
index aad0c082d2..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_progress.make
+++ /dev/null
@@ -1,12 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/CMakeFiles/intrinsics_gen.dir/progress.make.orig 2020-07-23 08:46:21.589070238 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/CMakeFiles/intrinsics_gen.dir/progress.make
-@@ -0,0 +1,7 @@
-+CMAKE_PROGRESS_1 =
-+CMAKE_PROGRESS_2 =
-+CMAKE_PROGRESS_3 =
-+CMAKE_PROGRESS_4 =
-+CMAKE_PROGRESS_5 =
-+CMAKE_PROGRESS_6 =
-+
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_progress.marks b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_progress.marks
deleted file mode 100644
index f25e6f1e30..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_progress.marks
+++ /dev/null
@@ -1,6 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/CMakeFiles/progress.marks.orig 2020-07-23 08:46:21.609997791 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/CMakeFiles/progress.marks
-@@ -0,0 +1 @@
-+0
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_Intrinsics.gen b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_Intrinsics.gen
deleted file mode 100644
index 9ed25e67fd..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_Intrinsics.gen
+++ /dev/null
@@ -1,34229 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/Intrinsics.gen.orig 2020-07-23 10:06:59.445242736 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/Intrinsics.gen
-@@ -0,0 +1,34224 @@
-+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
-+|* *|
-+|* Intrinsic Function Source Fragment *|
-+|* *|
-+|* Automatically generated file, do not edit! *|
-+|* *|
-+\*===----------------------------------------------------------------------===*/
-+
-+// VisualStudio defines setjmp as _setjmp
-+#if defined(_MSC_VER) && defined(setjmp) && \
-+ !defined(setjmp_undefined_for_msvc)
-+# pragma push_macro("setjmp")
-+# undef setjmp
-+# define setjmp_undefined_for_msvc
-+#endif
-+
-+// Enum values for Intrinsics.h
-+#ifdef GET_INTRINSIC_ENUM_VALUES
-+ addressofreturnaddress, // llvm.addressofreturnaddress
-+ adjust_trampoline, // llvm.adjust.trampoline
-+ annotation, // llvm.annotation
-+ assume, // llvm.assume
-+ bitreverse, // llvm.bitreverse
-+ bswap, // llvm.bswap
-+ canonicalize, // llvm.canonicalize
-+ ceil, // llvm.ceil
-+ clear_cache, // llvm.clear_cache
-+ convert_from_fp16, // llvm.convert.from.fp16
-+ convert_to_fp16, // llvm.convert.to.fp16
-+ convertff, // llvm.convertff
-+ convertfsi, // llvm.convertfsi
-+ convertfui, // llvm.convertfui
-+ convertsif, // llvm.convertsif
-+ convertss, // llvm.convertss
-+ convertsu, // llvm.convertsu
-+ convertuif, // llvm.convertuif
-+ convertus, // llvm.convertus
-+ convertuu, // llvm.convertuu
-+ copysign, // llvm.copysign
-+ coro_alloc, // llvm.coro.alloc
-+ coro_begin, // llvm.coro.begin
-+ coro_destroy, // llvm.coro.destroy
-+ coro_done, // llvm.coro.done
-+ coro_end, // llvm.coro.end
-+ coro_frame, // llvm.coro.frame
-+ coro_free, // llvm.coro.free
-+ coro_id, // llvm.coro.id
-+ coro_param, // llvm.coro.param
-+ coro_promise, // llvm.coro.promise
-+ coro_resume, // llvm.coro.resume
-+ coro_save, // llvm.coro.save
-+ coro_size, // llvm.coro.size
-+ coro_subfn_addr, // llvm.coro.subfn.addr
-+ coro_suspend, // llvm.coro.suspend
-+ cos, // llvm.cos
-+ ctlz, // llvm.ctlz
-+ ctpop, // llvm.ctpop
-+ cttz, // llvm.cttz
-+ dbg_declare, // llvm.dbg.declare
-+ dbg_value, // llvm.dbg.value
-+ debugtrap, // llvm.debugtrap
-+ donothing, // llvm.donothing
-+ eh_dwarf_cfa, // llvm.eh.dwarf.cfa
-+ eh_exceptioncode, // llvm.eh.exceptioncode
-+ eh_exceptionpointer, // llvm.eh.exceptionpointer
-+ eh_return_i32, // llvm.eh.return.i32
-+ eh_return_i64, // llvm.eh.return.i64
-+ eh_sjlj_callsite, // llvm.eh.sjlj.callsite
-+ eh_sjlj_functioncontext, // llvm.eh.sjlj.functioncontext
-+ eh_sjlj_longjmp, // llvm.eh.sjlj.longjmp
-+ eh_sjlj_lsda, // llvm.eh.sjlj.lsda
-+ eh_sjlj_setjmp, // llvm.eh.sjlj.setjmp
-+ eh_sjlj_setup_dispatch, // llvm.eh.sjlj.setup.dispatch
-+ eh_typeid_for, // llvm.eh.typeid.for
-+ eh_unwind_init, // llvm.eh.unwind.init
-+ exp, // llvm.exp
-+ exp2, // llvm.exp2
-+ expect, // llvm.expect
-+ experimental_deoptimize, // llvm.experimental.deoptimize
-+ experimental_gc_relocate, // llvm.experimental.gc.relocate
-+ experimental_gc_result, // llvm.experimental.gc.result
-+ experimental_gc_statepoint, // llvm.experimental.gc.statepoint
-+ experimental_guard, // llvm.experimental.guard
-+ experimental_patchpoint_i64, // llvm.experimental.patchpoint.i64
-+ experimental_patchpoint_void, // llvm.experimental.patchpoint.void
-+ experimental_stackmap, // llvm.experimental.stackmap
-+ fabs, // llvm.fabs
-+ floor, // llvm.floor
-+ flt_rounds, // llvm.flt.rounds
-+ fma, // llvm.fma
-+ fmuladd, // llvm.fmuladd
-+ frameaddress, // llvm.frameaddress
-+ gcread, // llvm.gcread
-+ gcroot, // llvm.gcroot
-+ gcwrite, // llvm.gcwrite
-+ get_dynamic_area_offset, // llvm.get.dynamic.area.offset
-+ init_trampoline, // llvm.init.trampoline
-+ instrprof_increment, // llvm.instrprof.increment
-+ instrprof_increment_step, // llvm.instrprof.increment.step
-+ instrprof_value_profile, // llvm.instrprof.value.profile
-+ invariant_end, // llvm.invariant.end
-+ invariant_group_barrier, // llvm.invariant.group.barrier
-+ invariant_start, // llvm.invariant.start
-+ lifetime_end, // llvm.lifetime.end
-+ lifetime_start, // llvm.lifetime.start
-+ load_relative, // llvm.load.relative
-+ localaddress, // llvm.localaddress
-+ localescape, // llvm.localescape
-+ localrecover, // llvm.localrecover
-+ log, // llvm.log
-+ log10, // llvm.log10
-+ log2, // llvm.log2
-+ longjmp, // llvm.longjmp
-+ masked_compressstore, // llvm.masked.compressstore
-+ masked_expandload, // llvm.masked.expandload
-+ masked_gather, // llvm.masked.gather
-+ masked_load, // llvm.masked.load
-+ masked_scatter, // llvm.masked.scatter
-+ masked_store, // llvm.masked.store
-+ maxnum, // llvm.maxnum
-+ memcpy, // llvm.memcpy
-+ memmove, // llvm.memmove
-+ memset, // llvm.memset
-+ minnum, // llvm.minnum
-+ nearbyint, // llvm.nearbyint
-+ objectsize, // llvm.objectsize
-+ pcmarker, // llvm.pcmarker
-+ pow, // llvm.pow
-+ powi, // llvm.powi
-+ prefetch, // llvm.prefetch
-+ ptr_annotation, // llvm.ptr.annotation
-+ read_register, // llvm.read_register
-+ readcyclecounter, // llvm.readcyclecounter
-+ returnaddress, // llvm.returnaddress
-+ rint, // llvm.rint
-+ round, // llvm.round
-+ sadd_with_overflow, // llvm.sadd.with.overflow
-+ setjmp, // llvm.setjmp
-+ siglongjmp, // llvm.siglongjmp
-+ sigsetjmp, // llvm.sigsetjmp
-+ sin, // llvm.sin
-+ smul_with_overflow, // llvm.smul.with.overflow
-+ sqrt, // llvm.sqrt
-+ ssub_with_overflow, // llvm.ssub.with.overflow
-+ stackguard, // llvm.stackguard
-+ stackprotector, // llvm.stackprotector
-+ stackrestore, // llvm.stackrestore
-+ stacksave, // llvm.stacksave
-+ thread_pointer, // llvm.thread.pointer
-+ trap, // llvm.trap
-+ trunc, // llvm.trunc
-+ type_checked_load, // llvm.type.checked.load
-+ type_test, // llvm.type.test
-+ uadd_with_overflow, // llvm.uadd.with.overflow
-+ umul_with_overflow, // llvm.umul.with.overflow
-+ usub_with_overflow, // llvm.usub.with.overflow
-+ vacopy, // llvm.va_copy
-+ vaend, // llvm.va_end
-+ vastart, // llvm.va_start
-+ var_annotation, // llvm.var.annotation
-+ write_register, // llvm.write_register
-+ aarch64_clrex, // llvm.aarch64.clrex
-+ aarch64_crc32b, // llvm.aarch64.crc32b
-+ aarch64_crc32cb, // llvm.aarch64.crc32cb
-+ aarch64_crc32ch, // llvm.aarch64.crc32ch
-+ aarch64_crc32cw, // llvm.aarch64.crc32cw
-+ aarch64_crc32cx, // llvm.aarch64.crc32cx
-+ aarch64_crc32h, // llvm.aarch64.crc32h
-+ aarch64_crc32w, // llvm.aarch64.crc32w
-+ aarch64_crc32x, // llvm.aarch64.crc32x
-+ aarch64_crypto_aesd, // llvm.aarch64.crypto.aesd
-+ aarch64_crypto_aese, // llvm.aarch64.crypto.aese
-+ aarch64_crypto_aesimc, // llvm.aarch64.crypto.aesimc
-+ aarch64_crypto_aesmc, // llvm.aarch64.crypto.aesmc
-+ aarch64_crypto_sha1c, // llvm.aarch64.crypto.sha1c
-+ aarch64_crypto_sha1h, // llvm.aarch64.crypto.sha1h
-+ aarch64_crypto_sha1m, // llvm.aarch64.crypto.sha1m
-+ aarch64_crypto_sha1p, // llvm.aarch64.crypto.sha1p
-+ aarch64_crypto_sha1su0, // llvm.aarch64.crypto.sha1su0
-+ aarch64_crypto_sha1su1, // llvm.aarch64.crypto.sha1su1
-+ aarch64_crypto_sha256h, // llvm.aarch64.crypto.sha256h
-+ aarch64_crypto_sha256h2, // llvm.aarch64.crypto.sha256h2
-+ aarch64_crypto_sha256su0, // llvm.aarch64.crypto.sha256su0
-+ aarch64_crypto_sha256su1, // llvm.aarch64.crypto.sha256su1
-+ aarch64_dmb, // llvm.aarch64.dmb
-+ aarch64_dsb, // llvm.aarch64.dsb
-+ aarch64_hint, // llvm.aarch64.hint
-+ aarch64_isb, // llvm.aarch64.isb
-+ aarch64_ldaxp, // llvm.aarch64.ldaxp
-+ aarch64_ldaxr, // llvm.aarch64.ldaxr
-+ aarch64_ldxp, // llvm.aarch64.ldxp
-+ aarch64_ldxr, // llvm.aarch64.ldxr
-+ aarch64_neon_abs, // llvm.aarch64.neon.abs
-+ aarch64_neon_addhn, // llvm.aarch64.neon.addhn
-+ aarch64_neon_addp, // llvm.aarch64.neon.addp
-+ aarch64_neon_cls, // llvm.aarch64.neon.cls
-+ aarch64_neon_fabd, // llvm.aarch64.neon.fabd
-+ aarch64_neon_facge, // llvm.aarch64.neon.facge
-+ aarch64_neon_facgt, // llvm.aarch64.neon.facgt
-+ aarch64_neon_faddv, // llvm.aarch64.neon.faddv
-+ aarch64_neon_fcvtas, // llvm.aarch64.neon.fcvtas
-+ aarch64_neon_fcvtau, // llvm.aarch64.neon.fcvtau
-+ aarch64_neon_fcvtms, // llvm.aarch64.neon.fcvtms
-+ aarch64_neon_fcvtmu, // llvm.aarch64.neon.fcvtmu
-+ aarch64_neon_fcvtns, // llvm.aarch64.neon.fcvtns
-+ aarch64_neon_fcvtnu, // llvm.aarch64.neon.fcvtnu
-+ aarch64_neon_fcvtps, // llvm.aarch64.neon.fcvtps
-+ aarch64_neon_fcvtpu, // llvm.aarch64.neon.fcvtpu
-+ aarch64_neon_fcvtxn, // llvm.aarch64.neon.fcvtxn
-+ aarch64_neon_fcvtzs, // llvm.aarch64.neon.fcvtzs
-+ aarch64_neon_fcvtzu, // llvm.aarch64.neon.fcvtzu
-+ aarch64_neon_fmax, // llvm.aarch64.neon.fmax
-+ aarch64_neon_fmaxnm, // llvm.aarch64.neon.fmaxnm
-+ aarch64_neon_fmaxnmp, // llvm.aarch64.neon.fmaxnmp
-+ aarch64_neon_fmaxnmv, // llvm.aarch64.neon.fmaxnmv
-+ aarch64_neon_fmaxp, // llvm.aarch64.neon.fmaxp
-+ aarch64_neon_fmaxv, // llvm.aarch64.neon.fmaxv
-+ aarch64_neon_fmin, // llvm.aarch64.neon.fmin
-+ aarch64_neon_fminnm, // llvm.aarch64.neon.fminnm
-+ aarch64_neon_fminnmp, // llvm.aarch64.neon.fminnmp
-+ aarch64_neon_fminnmv, // llvm.aarch64.neon.fminnmv
-+ aarch64_neon_fminp, // llvm.aarch64.neon.fminp
-+ aarch64_neon_fminv, // llvm.aarch64.neon.fminv
-+ aarch64_neon_fmulx, // llvm.aarch64.neon.fmulx
-+ aarch64_neon_frecpe, // llvm.aarch64.neon.frecpe
-+ aarch64_neon_frecps, // llvm.aarch64.neon.frecps
-+ aarch64_neon_frecpx, // llvm.aarch64.neon.frecpx
-+ aarch64_neon_frintn, // llvm.aarch64.neon.frintn
-+ aarch64_neon_frsqrte, // llvm.aarch64.neon.frsqrte
-+ aarch64_neon_frsqrts, // llvm.aarch64.neon.frsqrts
-+ aarch64_neon_ld1x2, // llvm.aarch64.neon.ld1x2
-+ aarch64_neon_ld1x3, // llvm.aarch64.neon.ld1x3
-+ aarch64_neon_ld1x4, // llvm.aarch64.neon.ld1x4
-+ aarch64_neon_ld2, // llvm.aarch64.neon.ld2
-+ aarch64_neon_ld2lane, // llvm.aarch64.neon.ld2lane
-+ aarch64_neon_ld2r, // llvm.aarch64.neon.ld2r
-+ aarch64_neon_ld3, // llvm.aarch64.neon.ld3
-+ aarch64_neon_ld3lane, // llvm.aarch64.neon.ld3lane
-+ aarch64_neon_ld3r, // llvm.aarch64.neon.ld3r
-+ aarch64_neon_ld4, // llvm.aarch64.neon.ld4
-+ aarch64_neon_ld4lane, // llvm.aarch64.neon.ld4lane
-+ aarch64_neon_ld4r, // llvm.aarch64.neon.ld4r
-+ aarch64_neon_pmul, // llvm.aarch64.neon.pmul
-+ aarch64_neon_pmull, // llvm.aarch64.neon.pmull
-+ aarch64_neon_pmull64, // llvm.aarch64.neon.pmull64
-+ aarch64_neon_raddhn, // llvm.aarch64.neon.raddhn
-+ aarch64_neon_rbit, // llvm.aarch64.neon.rbit
-+ aarch64_neon_rshrn, // llvm.aarch64.neon.rshrn
-+ aarch64_neon_rsubhn, // llvm.aarch64.neon.rsubhn
-+ aarch64_neon_sabd, // llvm.aarch64.neon.sabd
-+ aarch64_neon_saddlp, // llvm.aarch64.neon.saddlp
-+ aarch64_neon_saddlv, // llvm.aarch64.neon.saddlv
-+ aarch64_neon_saddv, // llvm.aarch64.neon.saddv
-+ aarch64_neon_scalar_sqxtn, // llvm.aarch64.neon.scalar.sqxtn
-+ aarch64_neon_scalar_sqxtun, // llvm.aarch64.neon.scalar.sqxtun
-+ aarch64_neon_scalar_uqxtn, // llvm.aarch64.neon.scalar.uqxtn
-+ aarch64_neon_shadd, // llvm.aarch64.neon.shadd
-+ aarch64_neon_shll, // llvm.aarch64.neon.shll
-+ aarch64_neon_shsub, // llvm.aarch64.neon.shsub
-+ aarch64_neon_smax, // llvm.aarch64.neon.smax
-+ aarch64_neon_smaxp, // llvm.aarch64.neon.smaxp
-+ aarch64_neon_smaxv, // llvm.aarch64.neon.smaxv
-+ aarch64_neon_smin, // llvm.aarch64.neon.smin
-+ aarch64_neon_sminp, // llvm.aarch64.neon.sminp
-+ aarch64_neon_sminv, // llvm.aarch64.neon.sminv
-+ aarch64_neon_smull, // llvm.aarch64.neon.smull
-+ aarch64_neon_sqabs, // llvm.aarch64.neon.sqabs
-+ aarch64_neon_sqadd, // llvm.aarch64.neon.sqadd
-+ aarch64_neon_sqdmulh, // llvm.aarch64.neon.sqdmulh
-+ aarch64_neon_sqdmull, // llvm.aarch64.neon.sqdmull
-+ aarch64_neon_sqdmulls_scalar, // llvm.aarch64.neon.sqdmulls.scalar
-+ aarch64_neon_sqneg, // llvm.aarch64.neon.sqneg
-+ aarch64_neon_sqrdmulh, // llvm.aarch64.neon.sqrdmulh
-+ aarch64_neon_sqrshl, // llvm.aarch64.neon.sqrshl
-+ aarch64_neon_sqrshrn, // llvm.aarch64.neon.sqrshrn
-+ aarch64_neon_sqrshrun, // llvm.aarch64.neon.sqrshrun
-+ aarch64_neon_sqshl, // llvm.aarch64.neon.sqshl
-+ aarch64_neon_sqshlu, // llvm.aarch64.neon.sqshlu
-+ aarch64_neon_sqshrn, // llvm.aarch64.neon.sqshrn
-+ aarch64_neon_sqshrun, // llvm.aarch64.neon.sqshrun
-+ aarch64_neon_sqsub, // llvm.aarch64.neon.sqsub
-+ aarch64_neon_sqxtn, // llvm.aarch64.neon.sqxtn
-+ aarch64_neon_sqxtun, // llvm.aarch64.neon.sqxtun
-+ aarch64_neon_srhadd, // llvm.aarch64.neon.srhadd
-+ aarch64_neon_srshl, // llvm.aarch64.neon.srshl
-+ aarch64_neon_sshl, // llvm.aarch64.neon.sshl
-+ aarch64_neon_sshll, // llvm.aarch64.neon.sshll
-+ aarch64_neon_st1x2, // llvm.aarch64.neon.st1x2
-+ aarch64_neon_st1x3, // llvm.aarch64.neon.st1x3
-+ aarch64_neon_st1x4, // llvm.aarch64.neon.st1x4
-+ aarch64_neon_st2, // llvm.aarch64.neon.st2
-+ aarch64_neon_st2lane, // llvm.aarch64.neon.st2lane
-+ aarch64_neon_st3, // llvm.aarch64.neon.st3
-+ aarch64_neon_st3lane, // llvm.aarch64.neon.st3lane
-+ aarch64_neon_st4, // llvm.aarch64.neon.st4
-+ aarch64_neon_st4lane, // llvm.aarch64.neon.st4lane
-+ aarch64_neon_subhn, // llvm.aarch64.neon.subhn
-+ aarch64_neon_suqadd, // llvm.aarch64.neon.suqadd
-+ aarch64_neon_tbl1, // llvm.aarch64.neon.tbl1
-+ aarch64_neon_tbl2, // llvm.aarch64.neon.tbl2
-+ aarch64_neon_tbl3, // llvm.aarch64.neon.tbl3
-+ aarch64_neon_tbl4, // llvm.aarch64.neon.tbl4
-+ aarch64_neon_tbx1, // llvm.aarch64.neon.tbx1
-+ aarch64_neon_tbx2, // llvm.aarch64.neon.tbx2
-+ aarch64_neon_tbx3, // llvm.aarch64.neon.tbx3
-+ aarch64_neon_tbx4, // llvm.aarch64.neon.tbx4
-+ aarch64_neon_uabd, // llvm.aarch64.neon.uabd
-+ aarch64_neon_uaddlp, // llvm.aarch64.neon.uaddlp
-+ aarch64_neon_uaddlv, // llvm.aarch64.neon.uaddlv
-+ aarch64_neon_uaddv, // llvm.aarch64.neon.uaddv
-+ aarch64_neon_uhadd, // llvm.aarch64.neon.uhadd
-+ aarch64_neon_uhsub, // llvm.aarch64.neon.uhsub
-+ aarch64_neon_umax, // llvm.aarch64.neon.umax
-+ aarch64_neon_umaxp, // llvm.aarch64.neon.umaxp
-+ aarch64_neon_umaxv, // llvm.aarch64.neon.umaxv
-+ aarch64_neon_umin, // llvm.aarch64.neon.umin
-+ aarch64_neon_uminp, // llvm.aarch64.neon.uminp
-+ aarch64_neon_uminv, // llvm.aarch64.neon.uminv
-+ aarch64_neon_umull, // llvm.aarch64.neon.umull
-+ aarch64_neon_uqadd, // llvm.aarch64.neon.uqadd
-+ aarch64_neon_uqrshl, // llvm.aarch64.neon.uqrshl
-+ aarch64_neon_uqrshrn, // llvm.aarch64.neon.uqrshrn
-+ aarch64_neon_uqshl, // llvm.aarch64.neon.uqshl
-+ aarch64_neon_uqshrn, // llvm.aarch64.neon.uqshrn
-+ aarch64_neon_uqsub, // llvm.aarch64.neon.uqsub
-+ aarch64_neon_uqxtn, // llvm.aarch64.neon.uqxtn
-+ aarch64_neon_urecpe, // llvm.aarch64.neon.urecpe
-+ aarch64_neon_urhadd, // llvm.aarch64.neon.urhadd
-+ aarch64_neon_urshl, // llvm.aarch64.neon.urshl
-+ aarch64_neon_ursqrte, // llvm.aarch64.neon.ursqrte
-+ aarch64_neon_ushl, // llvm.aarch64.neon.ushl
-+ aarch64_neon_ushll, // llvm.aarch64.neon.ushll
-+ aarch64_neon_usqadd, // llvm.aarch64.neon.usqadd
-+ aarch64_neon_vcopy_lane, // llvm.aarch64.neon.vcopy.lane
-+ aarch64_neon_vcvtfp2fxs, // llvm.aarch64.neon.vcvtfp2fxs
-+ aarch64_neon_vcvtfp2fxu, // llvm.aarch64.neon.vcvtfp2fxu
-+ aarch64_neon_vcvtfp2hf, // llvm.aarch64.neon.vcvtfp2hf
-+ aarch64_neon_vcvtfxs2fp, // llvm.aarch64.neon.vcvtfxs2fp
-+ aarch64_neon_vcvtfxu2fp, // llvm.aarch64.neon.vcvtfxu2fp
-+ aarch64_neon_vcvthf2fp, // llvm.aarch64.neon.vcvthf2fp
-+ aarch64_neon_vsli, // llvm.aarch64.neon.vsli
-+ aarch64_neon_vsri, // llvm.aarch64.neon.vsri
-+ aarch64_rbit, // llvm.aarch64.rbit
-+ aarch64_sdiv, // llvm.aarch64.sdiv
-+ aarch64_sisd_fabd, // llvm.aarch64.sisd.fabd
-+ aarch64_sisd_fcvtxn, // llvm.aarch64.sisd.fcvtxn
-+ aarch64_stlxp, // llvm.aarch64.stlxp
-+ aarch64_stlxr, // llvm.aarch64.stlxr
-+ aarch64_stxp, // llvm.aarch64.stxp
-+ aarch64_stxr, // llvm.aarch64.stxr
-+ aarch64_udiv, // llvm.aarch64.udiv
-+ amdgcn_atomic_dec, // llvm.amdgcn.atomic.dec
-+ amdgcn_atomic_inc, // llvm.amdgcn.atomic.inc
-+ amdgcn_buffer_atomic_add, // llvm.amdgcn.buffer.atomic.add
-+ amdgcn_buffer_atomic_and, // llvm.amdgcn.buffer.atomic.and
-+ amdgcn_buffer_atomic_cmpswap, // llvm.amdgcn.buffer.atomic.cmpswap
-+ amdgcn_buffer_atomic_or, // llvm.amdgcn.buffer.atomic.or
-+ amdgcn_buffer_atomic_smax, // llvm.amdgcn.buffer.atomic.smax
-+ amdgcn_buffer_atomic_smin, // llvm.amdgcn.buffer.atomic.smin
-+ amdgcn_buffer_atomic_sub, // llvm.amdgcn.buffer.atomic.sub
-+ amdgcn_buffer_atomic_swap, // llvm.amdgcn.buffer.atomic.swap
-+ amdgcn_buffer_atomic_umax, // llvm.amdgcn.buffer.atomic.umax
-+ amdgcn_buffer_atomic_umin, // llvm.amdgcn.buffer.atomic.umin
-+ amdgcn_buffer_atomic_xor, // llvm.amdgcn.buffer.atomic.xor
-+ amdgcn_buffer_load, // llvm.amdgcn.buffer.load
-+ amdgcn_buffer_load_format, // llvm.amdgcn.buffer.load.format
-+ amdgcn_buffer_store, // llvm.amdgcn.buffer.store
-+ amdgcn_buffer_store_format, // llvm.amdgcn.buffer.store.format
-+ amdgcn_buffer_wbinvl1, // llvm.amdgcn.buffer.wbinvl1
-+ amdgcn_buffer_wbinvl1_sc, // llvm.amdgcn.buffer.wbinvl1.sc
-+ amdgcn_buffer_wbinvl1_vol, // llvm.amdgcn.buffer.wbinvl1.vol
-+ amdgcn_class, // llvm.amdgcn.class
-+ amdgcn_cos, // llvm.amdgcn.cos
-+ amdgcn_cubeid, // llvm.amdgcn.cubeid
-+ amdgcn_cubema, // llvm.amdgcn.cubema
-+ amdgcn_cubesc, // llvm.amdgcn.cubesc
-+ amdgcn_cubetc, // llvm.amdgcn.cubetc
-+ amdgcn_cvt_pk_u8_f32, // llvm.amdgcn.cvt.pk.u8.f32
-+ amdgcn_dispatch_id, // llvm.amdgcn.dispatch.id
-+ amdgcn_dispatch_ptr, // llvm.amdgcn.dispatch.ptr
-+ amdgcn_div_fixup, // llvm.amdgcn.div.fixup
-+ amdgcn_div_fmas, // llvm.amdgcn.div.fmas
-+ amdgcn_div_scale, // llvm.amdgcn.div.scale
-+ amdgcn_ds_bpermute, // llvm.amdgcn.ds.bpermute
-+ amdgcn_ds_permute, // llvm.amdgcn.ds.permute
-+ amdgcn_ds_swizzle, // llvm.amdgcn.ds.swizzle
-+ amdgcn_fcmp, // llvm.amdgcn.fcmp
-+ amdgcn_fmul_legacy, // llvm.amdgcn.fmul.legacy
-+ amdgcn_fract, // llvm.amdgcn.fract
-+ amdgcn_frexp_exp, // llvm.amdgcn.frexp.exp
-+ amdgcn_frexp_mant, // llvm.amdgcn.frexp.mant
-+ amdgcn_groupstaticsize, // llvm.amdgcn.groupstaticsize
-+ amdgcn_icmp, // llvm.amdgcn.icmp
-+ amdgcn_image_atomic_add, // llvm.amdgcn.image.atomic.add
-+ amdgcn_image_atomic_and, // llvm.amdgcn.image.atomic.and
-+ amdgcn_image_atomic_cmpswap, // llvm.amdgcn.image.atomic.cmpswap
-+ amdgcn_image_atomic_dec, // llvm.amdgcn.image.atomic.dec
-+ amdgcn_image_atomic_inc, // llvm.amdgcn.image.atomic.inc
-+ amdgcn_image_atomic_or, // llvm.amdgcn.image.atomic.or
-+ amdgcn_image_atomic_smax, // llvm.amdgcn.image.atomic.smax
-+ amdgcn_image_atomic_smin, // llvm.amdgcn.image.atomic.smin
-+ amdgcn_image_atomic_sub, // llvm.amdgcn.image.atomic.sub
-+ amdgcn_image_atomic_swap, // llvm.amdgcn.image.atomic.swap
-+ amdgcn_image_atomic_umax, // llvm.amdgcn.image.atomic.umax
-+ amdgcn_image_atomic_umin, // llvm.amdgcn.image.atomic.umin
-+ amdgcn_image_atomic_xor, // llvm.amdgcn.image.atomic.xor
-+ amdgcn_image_gather4, // llvm.amdgcn.image.gather4
-+ amdgcn_image_gather4_b, // llvm.amdgcn.image.gather4.b
-+ amdgcn_image_gather4_b_cl, // llvm.amdgcn.image.gather4.b.cl
-+ amdgcn_image_gather4_b_cl_o, // llvm.amdgcn.image.gather4.b.cl.o
-+ amdgcn_image_gather4_b_o, // llvm.amdgcn.image.gather4.b.o
-+ amdgcn_image_gather4_c, // llvm.amdgcn.image.gather4.c
-+ amdgcn_image_gather4_c_b, // llvm.amdgcn.image.gather4.c.b
-+ amdgcn_image_gather4_c_b_cl, // llvm.amdgcn.image.gather4.c.b.cl
-+ amdgcn_image_gather4_c_b_cl_o, // llvm.amdgcn.image.gather4.c.b.cl.o
-+ amdgcn_image_gather4_c_b_o, // llvm.amdgcn.image.gather4.c.b.o
-+ amdgcn_image_gather4_c_cl, // llvm.amdgcn.image.gather4.c.cl
-+ amdgcn_image_gather4_c_cl_o, // llvm.amdgcn.image.gather4.c.cl.o
-+ amdgcn_image_gather4_c_l, // llvm.amdgcn.image.gather4.c.l
-+ amdgcn_image_gather4_c_l_o, // llvm.amdgcn.image.gather4.c.l.o
-+ amdgcn_image_gather4_c_lz, // llvm.amdgcn.image.gather4.c.lz
-+ amdgcn_image_gather4_c_lz_o, // llvm.amdgcn.image.gather4.c.lz.o
-+ amdgcn_image_gather4_c_o, // llvm.amdgcn.image.gather4.c.o
-+ amdgcn_image_gather4_cl, // llvm.amdgcn.image.gather4.cl
-+ amdgcn_image_gather4_cl_o, // llvm.amdgcn.image.gather4.cl.o
-+ amdgcn_image_gather4_l, // llvm.amdgcn.image.gather4.l
-+ amdgcn_image_gather4_l_o, // llvm.amdgcn.image.gather4.l.o
-+ amdgcn_image_gather4_lz, // llvm.amdgcn.image.gather4.lz
-+ amdgcn_image_gather4_lz_o, // llvm.amdgcn.image.gather4.lz.o
-+ amdgcn_image_gather4_o, // llvm.amdgcn.image.gather4.o
-+ amdgcn_image_getlod, // llvm.amdgcn.image.getlod
-+ amdgcn_image_getresinfo, // llvm.amdgcn.image.getresinfo
-+ amdgcn_image_load, // llvm.amdgcn.image.load
-+ amdgcn_image_load_mip, // llvm.amdgcn.image.load.mip
-+ amdgcn_image_sample, // llvm.amdgcn.image.sample
-+ amdgcn_image_sample_b, // llvm.amdgcn.image.sample.b
-+ amdgcn_image_sample_b_cl, // llvm.amdgcn.image.sample.b.cl
-+ amdgcn_image_sample_b_cl_o, // llvm.amdgcn.image.sample.b.cl.o
-+ amdgcn_image_sample_b_o, // llvm.amdgcn.image.sample.b.o
-+ amdgcn_image_sample_c, // llvm.amdgcn.image.sample.c
-+ amdgcn_image_sample_c_b, // llvm.amdgcn.image.sample.c.b
-+ amdgcn_image_sample_c_b_cl, // llvm.amdgcn.image.sample.c.b.cl
-+ amdgcn_image_sample_c_b_cl_o, // llvm.amdgcn.image.sample.c.b.cl.o
-+ amdgcn_image_sample_c_b_o, // llvm.amdgcn.image.sample.c.b.o
-+ amdgcn_image_sample_c_cd, // llvm.amdgcn.image.sample.c.cd
-+ amdgcn_image_sample_c_cd_cl, // llvm.amdgcn.image.sample.c.cd.cl
-+ amdgcn_image_sample_c_cd_cl_o, // llvm.amdgcn.image.sample.c.cd.cl.o
-+ amdgcn_image_sample_c_cd_o, // llvm.amdgcn.image.sample.c.cd.o
-+ amdgcn_image_sample_c_cl, // llvm.amdgcn.image.sample.c.cl
-+ amdgcn_image_sample_c_cl_o, // llvm.amdgcn.image.sample.c.cl.o
-+ amdgcn_image_sample_c_d, // llvm.amdgcn.image.sample.c.d
-+ amdgcn_image_sample_c_d_cl, // llvm.amdgcn.image.sample.c.d.cl
-+ amdgcn_image_sample_c_d_cl_o, // llvm.amdgcn.image.sample.c.d.cl.o
-+ amdgcn_image_sample_c_d_o, // llvm.amdgcn.image.sample.c.d.o
-+ amdgcn_image_sample_c_l, // llvm.amdgcn.image.sample.c.l
-+ amdgcn_image_sample_c_l_o, // llvm.amdgcn.image.sample.c.l.o
-+ amdgcn_image_sample_c_lz, // llvm.amdgcn.image.sample.c.lz
-+ amdgcn_image_sample_c_lz_o, // llvm.amdgcn.image.sample.c.lz.o
-+ amdgcn_image_sample_c_o, // llvm.amdgcn.image.sample.c.o
-+ amdgcn_image_sample_cd, // llvm.amdgcn.image.sample.cd
-+ amdgcn_image_sample_cd_cl, // llvm.amdgcn.image.sample.cd.cl
-+ amdgcn_image_sample_cd_cl_o, // llvm.amdgcn.image.sample.cd.cl.o
-+ amdgcn_image_sample_cd_o, // llvm.amdgcn.image.sample.cd.o
-+ amdgcn_image_sample_cl, // llvm.amdgcn.image.sample.cl
-+ amdgcn_image_sample_cl_o, // llvm.amdgcn.image.sample.cl.o
-+ amdgcn_image_sample_d, // llvm.amdgcn.image.sample.d
-+ amdgcn_image_sample_d_cl, // llvm.amdgcn.image.sample.d.cl
-+ amdgcn_image_sample_d_cl_o, // llvm.amdgcn.image.sample.d.cl.o
-+ amdgcn_image_sample_d_o, // llvm.amdgcn.image.sample.d.o
-+ amdgcn_image_sample_l, // llvm.amdgcn.image.sample.l
-+ amdgcn_image_sample_l_o, // llvm.amdgcn.image.sample.l.o
-+ amdgcn_image_sample_lz, // llvm.amdgcn.image.sample.lz
-+ amdgcn_image_sample_lz_o, // llvm.amdgcn.image.sample.lz.o
-+ amdgcn_image_sample_o, // llvm.amdgcn.image.sample.o
-+ amdgcn_image_store, // llvm.amdgcn.image.store
-+ amdgcn_image_store_mip, // llvm.amdgcn.image.store.mip
-+ amdgcn_implicitarg_ptr, // llvm.amdgcn.implicitarg.ptr
-+ amdgcn_interp_mov, // llvm.amdgcn.interp.mov
-+ amdgcn_interp_p1, // llvm.amdgcn.interp.p1
-+ amdgcn_interp_p2, // llvm.amdgcn.interp.p2
-+ amdgcn_kernarg_segment_ptr, // llvm.amdgcn.kernarg.segment.ptr
-+ amdgcn_ldexp, // llvm.amdgcn.ldexp
-+ amdgcn_lerp, // llvm.amdgcn.lerp
-+ amdgcn_log_clamp, // llvm.amdgcn.log.clamp
-+ amdgcn_mbcnt_hi, // llvm.amdgcn.mbcnt.hi
-+ amdgcn_mbcnt_lo, // llvm.amdgcn.mbcnt.lo
-+ amdgcn_mov_dpp, // llvm.amdgcn.mov.dpp
-+ amdgcn_mqsad_pk_u16_u8, // llvm.amdgcn.mqsad.pk.u16.u8
-+ amdgcn_mqsad_u32_u8, // llvm.amdgcn.mqsad.u32.u8
-+ amdgcn_msad_u8, // llvm.amdgcn.msad.u8
-+ amdgcn_ps_live, // llvm.amdgcn.ps.live
-+ amdgcn_qsad_pk_u16_u8, // llvm.amdgcn.qsad.pk.u16.u8
-+ amdgcn_queue_ptr, // llvm.amdgcn.queue.ptr
-+ amdgcn_rcp, // llvm.amdgcn.rcp
-+ amdgcn_rcp_legacy, // llvm.amdgcn.rcp.legacy
-+ amdgcn_readfirstlane, // llvm.amdgcn.readfirstlane
-+ amdgcn_readlane, // llvm.amdgcn.readlane
-+ amdgcn_rsq, // llvm.amdgcn.rsq
-+ amdgcn_rsq_clamp, // llvm.amdgcn.rsq.clamp
-+ amdgcn_rsq_legacy, // llvm.amdgcn.rsq.legacy
-+ amdgcn_s_barrier, // llvm.amdgcn.s.barrier
-+ amdgcn_s_dcache_inv, // llvm.amdgcn.s.dcache.inv
-+ amdgcn_s_dcache_inv_vol, // llvm.amdgcn.s.dcache.inv.vol
-+ amdgcn_s_dcache_wb, // llvm.amdgcn.s.dcache.wb
-+ amdgcn_s_dcache_wb_vol, // llvm.amdgcn.s.dcache.wb.vol
-+ amdgcn_s_decperflevel, // llvm.amdgcn.s.decperflevel
-+ amdgcn_s_getreg, // llvm.amdgcn.s.getreg
-+ amdgcn_s_incperflevel, // llvm.amdgcn.s.incperflevel
-+ amdgcn_s_memrealtime, // llvm.amdgcn.s.memrealtime
-+ amdgcn_s_memtime, // llvm.amdgcn.s.memtime
-+ amdgcn_s_sleep, // llvm.amdgcn.s.sleep
-+ amdgcn_s_waitcnt, // llvm.amdgcn.s.waitcnt
-+ amdgcn_sad_hi_u8, // llvm.amdgcn.sad.hi.u8
-+ amdgcn_sad_u16, // llvm.amdgcn.sad.u16
-+ amdgcn_sad_u8, // llvm.amdgcn.sad.u8
-+ amdgcn_sffbh, // llvm.amdgcn.sffbh
-+ amdgcn_sin, // llvm.amdgcn.sin
-+ amdgcn_trig_preop, // llvm.amdgcn.trig.preop
-+ amdgcn_wave_barrier, // llvm.amdgcn.wave.barrier
-+ amdgcn_workgroup_id_x, // llvm.amdgcn.workgroup.id.x
-+ amdgcn_workgroup_id_y, // llvm.amdgcn.workgroup.id.y
-+ amdgcn_workgroup_id_z, // llvm.amdgcn.workgroup.id.z
-+ amdgcn_workitem_id_x, // llvm.amdgcn.workitem.id.x
-+ amdgcn_workitem_id_y, // llvm.amdgcn.workitem.id.y
-+ amdgcn_workitem_id_z, // llvm.amdgcn.workitem.id.z
-+ arm_cdp, // llvm.arm.cdp
-+ arm_cdp2, // llvm.arm.cdp2
-+ arm_clrex, // llvm.arm.clrex
-+ arm_crc32b, // llvm.arm.crc32b
-+ arm_crc32cb, // llvm.arm.crc32cb
-+ arm_crc32ch, // llvm.arm.crc32ch
-+ arm_crc32cw, // llvm.arm.crc32cw
-+ arm_crc32h, // llvm.arm.crc32h
-+ arm_crc32w, // llvm.arm.crc32w
-+ arm_dbg, // llvm.arm.dbg
-+ arm_dmb, // llvm.arm.dmb
-+ arm_dsb, // llvm.arm.dsb
-+ arm_get_fpscr, // llvm.arm.get.fpscr
-+ arm_hint, // llvm.arm.hint
-+ arm_isb, // llvm.arm.isb
-+ arm_ldaex, // llvm.arm.ldaex
-+ arm_ldaexd, // llvm.arm.ldaexd
-+ arm_ldc, // llvm.arm.ldc
-+ arm_ldc2, // llvm.arm.ldc2
-+ arm_ldc2l, // llvm.arm.ldc2l
-+ arm_ldcl, // llvm.arm.ldcl
-+ arm_ldrex, // llvm.arm.ldrex
-+ arm_ldrexd, // llvm.arm.ldrexd
-+ arm_mcr, // llvm.arm.mcr
-+ arm_mcr2, // llvm.arm.mcr2
-+ arm_mcrr, // llvm.arm.mcrr
-+ arm_mcrr2, // llvm.arm.mcrr2
-+ arm_mrc, // llvm.arm.mrc
-+ arm_mrc2, // llvm.arm.mrc2
-+ arm_mrrc, // llvm.arm.mrrc
-+ arm_mrrc2, // llvm.arm.mrrc2
-+ arm_neon_aesd, // llvm.arm.neon.aesd
-+ arm_neon_aese, // llvm.arm.neon.aese
-+ arm_neon_aesimc, // llvm.arm.neon.aesimc
-+ arm_neon_aesmc, // llvm.arm.neon.aesmc
-+ arm_neon_sha1c, // llvm.arm.neon.sha1c
-+ arm_neon_sha1h, // llvm.arm.neon.sha1h
-+ arm_neon_sha1m, // llvm.arm.neon.sha1m
-+ arm_neon_sha1p, // llvm.arm.neon.sha1p
-+ arm_neon_sha1su0, // llvm.arm.neon.sha1su0
-+ arm_neon_sha1su1, // llvm.arm.neon.sha1su1
-+ arm_neon_sha256h, // llvm.arm.neon.sha256h
-+ arm_neon_sha256h2, // llvm.arm.neon.sha256h2
-+ arm_neon_sha256su0, // llvm.arm.neon.sha256su0
-+ arm_neon_sha256su1, // llvm.arm.neon.sha256su1
-+ arm_neon_vabds, // llvm.arm.neon.vabds
-+ arm_neon_vabdu, // llvm.arm.neon.vabdu
-+ arm_neon_vabs, // llvm.arm.neon.vabs
-+ arm_neon_vacge, // llvm.arm.neon.vacge
-+ arm_neon_vacgt, // llvm.arm.neon.vacgt
-+ arm_neon_vbsl, // llvm.arm.neon.vbsl
-+ arm_neon_vcls, // llvm.arm.neon.vcls
-+ arm_neon_vcvtas, // llvm.arm.neon.vcvtas
-+ arm_neon_vcvtau, // llvm.arm.neon.vcvtau
-+ arm_neon_vcvtfp2fxs, // llvm.arm.neon.vcvtfp2fxs
-+ arm_neon_vcvtfp2fxu, // llvm.arm.neon.vcvtfp2fxu
-+ arm_neon_vcvtfp2hf, // llvm.arm.neon.vcvtfp2hf
-+ arm_neon_vcvtfxs2fp, // llvm.arm.neon.vcvtfxs2fp
-+ arm_neon_vcvtfxu2fp, // llvm.arm.neon.vcvtfxu2fp
-+ arm_neon_vcvthf2fp, // llvm.arm.neon.vcvthf2fp
-+ arm_neon_vcvtms, // llvm.arm.neon.vcvtms
-+ arm_neon_vcvtmu, // llvm.arm.neon.vcvtmu
-+ arm_neon_vcvtns, // llvm.arm.neon.vcvtns
-+ arm_neon_vcvtnu, // llvm.arm.neon.vcvtnu
-+ arm_neon_vcvtps, // llvm.arm.neon.vcvtps
-+ arm_neon_vcvtpu, // llvm.arm.neon.vcvtpu
-+ arm_neon_vhadds, // llvm.arm.neon.vhadds
-+ arm_neon_vhaddu, // llvm.arm.neon.vhaddu
-+ arm_neon_vhsubs, // llvm.arm.neon.vhsubs
-+ arm_neon_vhsubu, // llvm.arm.neon.vhsubu
-+ arm_neon_vld1, // llvm.arm.neon.vld1
-+ arm_neon_vld2, // llvm.arm.neon.vld2
-+ arm_neon_vld2lane, // llvm.arm.neon.vld2lane
-+ arm_neon_vld3, // llvm.arm.neon.vld3
-+ arm_neon_vld3lane, // llvm.arm.neon.vld3lane
-+ arm_neon_vld4, // llvm.arm.neon.vld4
-+ arm_neon_vld4lane, // llvm.arm.neon.vld4lane
-+ arm_neon_vmaxnm, // llvm.arm.neon.vmaxnm
-+ arm_neon_vmaxs, // llvm.arm.neon.vmaxs
-+ arm_neon_vmaxu, // llvm.arm.neon.vmaxu
-+ arm_neon_vminnm, // llvm.arm.neon.vminnm
-+ arm_neon_vmins, // llvm.arm.neon.vmins
-+ arm_neon_vminu, // llvm.arm.neon.vminu
-+ arm_neon_vmullp, // llvm.arm.neon.vmullp
-+ arm_neon_vmulls, // llvm.arm.neon.vmulls
-+ arm_neon_vmullu, // llvm.arm.neon.vmullu
-+ arm_neon_vmulp, // llvm.arm.neon.vmulp
-+ arm_neon_vpadals, // llvm.arm.neon.vpadals
-+ arm_neon_vpadalu, // llvm.arm.neon.vpadalu
-+ arm_neon_vpadd, // llvm.arm.neon.vpadd
-+ arm_neon_vpaddls, // llvm.arm.neon.vpaddls
-+ arm_neon_vpaddlu, // llvm.arm.neon.vpaddlu
-+ arm_neon_vpmaxs, // llvm.arm.neon.vpmaxs
-+ arm_neon_vpmaxu, // llvm.arm.neon.vpmaxu
-+ arm_neon_vpmins, // llvm.arm.neon.vpmins
-+ arm_neon_vpminu, // llvm.arm.neon.vpminu
-+ arm_neon_vqabs, // llvm.arm.neon.vqabs
-+ arm_neon_vqadds, // llvm.arm.neon.vqadds
-+ arm_neon_vqaddu, // llvm.arm.neon.vqaddu
-+ arm_neon_vqdmulh, // llvm.arm.neon.vqdmulh
-+ arm_neon_vqdmull, // llvm.arm.neon.vqdmull
-+ arm_neon_vqmovns, // llvm.arm.neon.vqmovns
-+ arm_neon_vqmovnsu, // llvm.arm.neon.vqmovnsu
-+ arm_neon_vqmovnu, // llvm.arm.neon.vqmovnu
-+ arm_neon_vqneg, // llvm.arm.neon.vqneg
-+ arm_neon_vqrdmulh, // llvm.arm.neon.vqrdmulh
-+ arm_neon_vqrshiftns, // llvm.arm.neon.vqrshiftns
-+ arm_neon_vqrshiftnsu, // llvm.arm.neon.vqrshiftnsu
-+ arm_neon_vqrshiftnu, // llvm.arm.neon.vqrshiftnu
-+ arm_neon_vqrshifts, // llvm.arm.neon.vqrshifts
-+ arm_neon_vqrshiftu, // llvm.arm.neon.vqrshiftu
-+ arm_neon_vqshiftns, // llvm.arm.neon.vqshiftns
-+ arm_neon_vqshiftnsu, // llvm.arm.neon.vqshiftnsu
-+ arm_neon_vqshiftnu, // llvm.arm.neon.vqshiftnu
-+ arm_neon_vqshifts, // llvm.arm.neon.vqshifts
-+ arm_neon_vqshiftsu, // llvm.arm.neon.vqshiftsu
-+ arm_neon_vqshiftu, // llvm.arm.neon.vqshiftu
-+ arm_neon_vqsubs, // llvm.arm.neon.vqsubs
-+ arm_neon_vqsubu, // llvm.arm.neon.vqsubu
-+ arm_neon_vraddhn, // llvm.arm.neon.vraddhn
-+ arm_neon_vrecpe, // llvm.arm.neon.vrecpe
-+ arm_neon_vrecps, // llvm.arm.neon.vrecps
-+ arm_neon_vrhadds, // llvm.arm.neon.vrhadds
-+ arm_neon_vrhaddu, // llvm.arm.neon.vrhaddu
-+ arm_neon_vrinta, // llvm.arm.neon.vrinta
-+ arm_neon_vrintm, // llvm.arm.neon.vrintm
-+ arm_neon_vrintn, // llvm.arm.neon.vrintn
-+ arm_neon_vrintp, // llvm.arm.neon.vrintp
-+ arm_neon_vrintx, // llvm.arm.neon.vrintx
-+ arm_neon_vrintz, // llvm.arm.neon.vrintz
-+ arm_neon_vrshiftn, // llvm.arm.neon.vrshiftn
-+ arm_neon_vrshifts, // llvm.arm.neon.vrshifts
-+ arm_neon_vrshiftu, // llvm.arm.neon.vrshiftu
-+ arm_neon_vrsqrte, // llvm.arm.neon.vrsqrte
-+ arm_neon_vrsqrts, // llvm.arm.neon.vrsqrts
-+ arm_neon_vrsubhn, // llvm.arm.neon.vrsubhn
-+ arm_neon_vshiftins, // llvm.arm.neon.vshiftins
-+ arm_neon_vshifts, // llvm.arm.neon.vshifts
-+ arm_neon_vshiftu, // llvm.arm.neon.vshiftu
-+ arm_neon_vst1, // llvm.arm.neon.vst1
-+ arm_neon_vst2, // llvm.arm.neon.vst2
-+ arm_neon_vst2lane, // llvm.arm.neon.vst2lane
-+ arm_neon_vst3, // llvm.arm.neon.vst3
-+ arm_neon_vst3lane, // llvm.arm.neon.vst3lane
-+ arm_neon_vst4, // llvm.arm.neon.vst4
-+ arm_neon_vst4lane, // llvm.arm.neon.vst4lane
-+ arm_neon_vtbl1, // llvm.arm.neon.vtbl1
-+ arm_neon_vtbl2, // llvm.arm.neon.vtbl2
-+ arm_neon_vtbl3, // llvm.arm.neon.vtbl3
-+ arm_neon_vtbl4, // llvm.arm.neon.vtbl4
-+ arm_neon_vtbx1, // llvm.arm.neon.vtbx1
-+ arm_neon_vtbx2, // llvm.arm.neon.vtbx2
-+ arm_neon_vtbx3, // llvm.arm.neon.vtbx3
-+ arm_neon_vtbx4, // llvm.arm.neon.vtbx4
-+ arm_qadd, // llvm.arm.qadd
-+ arm_qsub, // llvm.arm.qsub
-+ arm_rbit, // llvm.arm.rbit
-+ arm_set_fpscr, // llvm.arm.set.fpscr
-+ arm_space, // llvm.arm.space
-+ arm_ssat, // llvm.arm.ssat
-+ arm_stc, // llvm.arm.stc
-+ arm_stc2, // llvm.arm.stc2
-+ arm_stc2l, // llvm.arm.stc2l
-+ arm_stcl, // llvm.arm.stcl
-+ arm_stlex, // llvm.arm.stlex
-+ arm_stlexd, // llvm.arm.stlexd
-+ arm_strex, // llvm.arm.strex
-+ arm_strexd, // llvm.arm.strexd
-+ arm_undefined, // llvm.arm.undefined
-+ arm_usat, // llvm.arm.usat
-+ arm_vcvtr, // llvm.arm.vcvtr
-+ arm_vcvtru, // llvm.arm.vcvtru
-+ bpf_load_byte, // llvm.bpf.load.byte
-+ bpf_load_half, // llvm.bpf.load.half
-+ bpf_load_word, // llvm.bpf.load.word
-+ bpf_pseudo, // llvm.bpf.pseudo
-+ hexagon_A2_abs, // llvm.hexagon.A2.abs
-+ hexagon_A2_absp, // llvm.hexagon.A2.absp
-+ hexagon_A2_abssat, // llvm.hexagon.A2.abssat
-+ hexagon_A2_add, // llvm.hexagon.A2.add
-+ hexagon_A2_addh_h16_hh, // llvm.hexagon.A2.addh.h16.hh
-+ hexagon_A2_addh_h16_hl, // llvm.hexagon.A2.addh.h16.hl
-+ hexagon_A2_addh_h16_lh, // llvm.hexagon.A2.addh.h16.lh
-+ hexagon_A2_addh_h16_ll, // llvm.hexagon.A2.addh.h16.ll
-+ hexagon_A2_addh_h16_sat_hh, // llvm.hexagon.A2.addh.h16.sat.hh
-+ hexagon_A2_addh_h16_sat_hl, // llvm.hexagon.A2.addh.h16.sat.hl
-+ hexagon_A2_addh_h16_sat_lh, // llvm.hexagon.A2.addh.h16.sat.lh
-+ hexagon_A2_addh_h16_sat_ll, // llvm.hexagon.A2.addh.h16.sat.ll
-+ hexagon_A2_addh_l16_hl, // llvm.hexagon.A2.addh.l16.hl
-+ hexagon_A2_addh_l16_ll, // llvm.hexagon.A2.addh.l16.ll
-+ hexagon_A2_addh_l16_sat_hl, // llvm.hexagon.A2.addh.l16.sat.hl
-+ hexagon_A2_addh_l16_sat_ll, // llvm.hexagon.A2.addh.l16.sat.ll
-+ hexagon_A2_addi, // llvm.hexagon.A2.addi
-+ hexagon_A2_addp, // llvm.hexagon.A2.addp
-+ hexagon_A2_addpsat, // llvm.hexagon.A2.addpsat
-+ hexagon_A2_addsat, // llvm.hexagon.A2.addsat
-+ hexagon_A2_addsp, // llvm.hexagon.A2.addsp
-+ hexagon_A2_and, // llvm.hexagon.A2.and
-+ hexagon_A2_andir, // llvm.hexagon.A2.andir
-+ hexagon_A2_andp, // llvm.hexagon.A2.andp
-+ hexagon_A2_aslh, // llvm.hexagon.A2.aslh
-+ hexagon_A2_asrh, // llvm.hexagon.A2.asrh
-+ hexagon_A2_combine_hh, // llvm.hexagon.A2.combine.hh
-+ hexagon_A2_combine_hl, // llvm.hexagon.A2.combine.hl
-+ hexagon_A2_combine_lh, // llvm.hexagon.A2.combine.lh
-+ hexagon_A2_combine_ll, // llvm.hexagon.A2.combine.ll
-+ hexagon_A2_combineii, // llvm.hexagon.A2.combineii
-+ hexagon_A2_combinew, // llvm.hexagon.A2.combinew
-+ hexagon_A2_max, // llvm.hexagon.A2.max
-+ hexagon_A2_maxp, // llvm.hexagon.A2.maxp
-+ hexagon_A2_maxu, // llvm.hexagon.A2.maxu
-+ hexagon_A2_maxup, // llvm.hexagon.A2.maxup
-+ hexagon_A2_min, // llvm.hexagon.A2.min
-+ hexagon_A2_minp, // llvm.hexagon.A2.minp
-+ hexagon_A2_minu, // llvm.hexagon.A2.minu
-+ hexagon_A2_minup, // llvm.hexagon.A2.minup
-+ hexagon_A2_neg, // llvm.hexagon.A2.neg
-+ hexagon_A2_negp, // llvm.hexagon.A2.negp
-+ hexagon_A2_negsat, // llvm.hexagon.A2.negsat
-+ hexagon_A2_not, // llvm.hexagon.A2.not
-+ hexagon_A2_notp, // llvm.hexagon.A2.notp
-+ hexagon_A2_or, // llvm.hexagon.A2.or
-+ hexagon_A2_orir, // llvm.hexagon.A2.orir
-+ hexagon_A2_orp, // llvm.hexagon.A2.orp
-+ hexagon_A2_roundsat, // llvm.hexagon.A2.roundsat
-+ hexagon_A2_sat, // llvm.hexagon.A2.sat
-+ hexagon_A2_satb, // llvm.hexagon.A2.satb
-+ hexagon_A2_sath, // llvm.hexagon.A2.sath
-+ hexagon_A2_satub, // llvm.hexagon.A2.satub
-+ hexagon_A2_satuh, // llvm.hexagon.A2.satuh
-+ hexagon_A2_sub, // llvm.hexagon.A2.sub
-+ hexagon_A2_subh_h16_hh, // llvm.hexagon.A2.subh.h16.hh
-+ hexagon_A2_subh_h16_hl, // llvm.hexagon.A2.subh.h16.hl
-+ hexagon_A2_subh_h16_lh, // llvm.hexagon.A2.subh.h16.lh
-+ hexagon_A2_subh_h16_ll, // llvm.hexagon.A2.subh.h16.ll
-+ hexagon_A2_subh_h16_sat_hh, // llvm.hexagon.A2.subh.h16.sat.hh
-+ hexagon_A2_subh_h16_sat_hl, // llvm.hexagon.A2.subh.h16.sat.hl
-+ hexagon_A2_subh_h16_sat_lh, // llvm.hexagon.A2.subh.h16.sat.lh
-+ hexagon_A2_subh_h16_sat_ll, // llvm.hexagon.A2.subh.h16.sat.ll
-+ hexagon_A2_subh_l16_hl, // llvm.hexagon.A2.subh.l16.hl
-+ hexagon_A2_subh_l16_ll, // llvm.hexagon.A2.subh.l16.ll
-+ hexagon_A2_subh_l16_sat_hl, // llvm.hexagon.A2.subh.l16.sat.hl
-+ hexagon_A2_subh_l16_sat_ll, // llvm.hexagon.A2.subh.l16.sat.ll
-+ hexagon_A2_subp, // llvm.hexagon.A2.subp
-+ hexagon_A2_subri, // llvm.hexagon.A2.subri
-+ hexagon_A2_subsat, // llvm.hexagon.A2.subsat
-+ hexagon_A2_svaddh, // llvm.hexagon.A2.svaddh
-+ hexagon_A2_svaddhs, // llvm.hexagon.A2.svaddhs
-+ hexagon_A2_svadduhs, // llvm.hexagon.A2.svadduhs
-+ hexagon_A2_svavgh, // llvm.hexagon.A2.svavgh
-+ hexagon_A2_svavghs, // llvm.hexagon.A2.svavghs
-+ hexagon_A2_svnavgh, // llvm.hexagon.A2.svnavgh
-+ hexagon_A2_svsubh, // llvm.hexagon.A2.svsubh
-+ hexagon_A2_svsubhs, // llvm.hexagon.A2.svsubhs
-+ hexagon_A2_svsubuhs, // llvm.hexagon.A2.svsubuhs
-+ hexagon_A2_swiz, // llvm.hexagon.A2.swiz
-+ hexagon_A2_sxtb, // llvm.hexagon.A2.sxtb
-+ hexagon_A2_sxth, // llvm.hexagon.A2.sxth
-+ hexagon_A2_sxtw, // llvm.hexagon.A2.sxtw
-+ hexagon_A2_tfr, // llvm.hexagon.A2.tfr
-+ hexagon_A2_tfrih, // llvm.hexagon.A2.tfrih
-+ hexagon_A2_tfril, // llvm.hexagon.A2.tfril
-+ hexagon_A2_tfrp, // llvm.hexagon.A2.tfrp
-+ hexagon_A2_tfrpi, // llvm.hexagon.A2.tfrpi
-+ hexagon_A2_tfrsi, // llvm.hexagon.A2.tfrsi
-+ hexagon_A2_vabsh, // llvm.hexagon.A2.vabsh
-+ hexagon_A2_vabshsat, // llvm.hexagon.A2.vabshsat
-+ hexagon_A2_vabsw, // llvm.hexagon.A2.vabsw
-+ hexagon_A2_vabswsat, // llvm.hexagon.A2.vabswsat
-+ hexagon_A2_vaddb_map, // llvm.hexagon.A2.vaddb.map
-+ hexagon_A2_vaddh, // llvm.hexagon.A2.vaddh
-+ hexagon_A2_vaddhs, // llvm.hexagon.A2.vaddhs
-+ hexagon_A2_vaddub, // llvm.hexagon.A2.vaddub
-+ hexagon_A2_vaddubs, // llvm.hexagon.A2.vaddubs
-+ hexagon_A2_vadduhs, // llvm.hexagon.A2.vadduhs
-+ hexagon_A2_vaddw, // llvm.hexagon.A2.vaddw
-+ hexagon_A2_vaddws, // llvm.hexagon.A2.vaddws
-+ hexagon_A2_vavgh, // llvm.hexagon.A2.vavgh
-+ hexagon_A2_vavghcr, // llvm.hexagon.A2.vavghcr
-+ hexagon_A2_vavghr, // llvm.hexagon.A2.vavghr
-+ hexagon_A2_vavgub, // llvm.hexagon.A2.vavgub
-+ hexagon_A2_vavgubr, // llvm.hexagon.A2.vavgubr
-+ hexagon_A2_vavguh, // llvm.hexagon.A2.vavguh
-+ hexagon_A2_vavguhr, // llvm.hexagon.A2.vavguhr
-+ hexagon_A2_vavguw, // llvm.hexagon.A2.vavguw
-+ hexagon_A2_vavguwr, // llvm.hexagon.A2.vavguwr
-+ hexagon_A2_vavgw, // llvm.hexagon.A2.vavgw
-+ hexagon_A2_vavgwcr, // llvm.hexagon.A2.vavgwcr
-+ hexagon_A2_vavgwr, // llvm.hexagon.A2.vavgwr
-+ hexagon_A2_vcmpbeq, // llvm.hexagon.A2.vcmpbeq
-+ hexagon_A2_vcmpbgtu, // llvm.hexagon.A2.vcmpbgtu
-+ hexagon_A2_vcmpheq, // llvm.hexagon.A2.vcmpheq
-+ hexagon_A2_vcmphgt, // llvm.hexagon.A2.vcmphgt
-+ hexagon_A2_vcmphgtu, // llvm.hexagon.A2.vcmphgtu
-+ hexagon_A2_vcmpweq, // llvm.hexagon.A2.vcmpweq
-+ hexagon_A2_vcmpwgt, // llvm.hexagon.A2.vcmpwgt
-+ hexagon_A2_vcmpwgtu, // llvm.hexagon.A2.vcmpwgtu
-+ hexagon_A2_vconj, // llvm.hexagon.A2.vconj
-+ hexagon_A2_vmaxb, // llvm.hexagon.A2.vmaxb
-+ hexagon_A2_vmaxh, // llvm.hexagon.A2.vmaxh
-+ hexagon_A2_vmaxub, // llvm.hexagon.A2.vmaxub
-+ hexagon_A2_vmaxuh, // llvm.hexagon.A2.vmaxuh
-+ hexagon_A2_vmaxuw, // llvm.hexagon.A2.vmaxuw
-+ hexagon_A2_vmaxw, // llvm.hexagon.A2.vmaxw
-+ hexagon_A2_vminb, // llvm.hexagon.A2.vminb
-+ hexagon_A2_vminh, // llvm.hexagon.A2.vminh
-+ hexagon_A2_vminub, // llvm.hexagon.A2.vminub
-+ hexagon_A2_vminuh, // llvm.hexagon.A2.vminuh
-+ hexagon_A2_vminuw, // llvm.hexagon.A2.vminuw
-+ hexagon_A2_vminw, // llvm.hexagon.A2.vminw
-+ hexagon_A2_vnavgh, // llvm.hexagon.A2.vnavgh
-+ hexagon_A2_vnavghcr, // llvm.hexagon.A2.vnavghcr
-+ hexagon_A2_vnavghr, // llvm.hexagon.A2.vnavghr
-+ hexagon_A2_vnavgw, // llvm.hexagon.A2.vnavgw
-+ hexagon_A2_vnavgwcr, // llvm.hexagon.A2.vnavgwcr
-+ hexagon_A2_vnavgwr, // llvm.hexagon.A2.vnavgwr
-+ hexagon_A2_vraddub, // llvm.hexagon.A2.vraddub
-+ hexagon_A2_vraddub_acc, // llvm.hexagon.A2.vraddub.acc
-+ hexagon_A2_vrsadub, // llvm.hexagon.A2.vrsadub
-+ hexagon_A2_vrsadub_acc, // llvm.hexagon.A2.vrsadub.acc
-+ hexagon_A2_vsubb_map, // llvm.hexagon.A2.vsubb.map
-+ hexagon_A2_vsubh, // llvm.hexagon.A2.vsubh
-+ hexagon_A2_vsubhs, // llvm.hexagon.A2.vsubhs
-+ hexagon_A2_vsubub, // llvm.hexagon.A2.vsubub
-+ hexagon_A2_vsububs, // llvm.hexagon.A2.vsububs
-+ hexagon_A2_vsubuhs, // llvm.hexagon.A2.vsubuhs
-+ hexagon_A2_vsubw, // llvm.hexagon.A2.vsubw
-+ hexagon_A2_vsubws, // llvm.hexagon.A2.vsubws
-+ hexagon_A2_xor, // llvm.hexagon.A2.xor
-+ hexagon_A2_xorp, // llvm.hexagon.A2.xorp
-+ hexagon_A2_zxtb, // llvm.hexagon.A2.zxtb
-+ hexagon_A2_zxth, // llvm.hexagon.A2.zxth
-+ hexagon_A4_andn, // llvm.hexagon.A4.andn
-+ hexagon_A4_andnp, // llvm.hexagon.A4.andnp
-+ hexagon_A4_bitsplit, // llvm.hexagon.A4.bitsplit
-+ hexagon_A4_bitspliti, // llvm.hexagon.A4.bitspliti
-+ hexagon_A4_boundscheck, // llvm.hexagon.A4.boundscheck
-+ hexagon_A4_cmpbeq, // llvm.hexagon.A4.cmpbeq
-+ hexagon_A4_cmpbeqi, // llvm.hexagon.A4.cmpbeqi
-+ hexagon_A4_cmpbgt, // llvm.hexagon.A4.cmpbgt
-+ hexagon_A4_cmpbgti, // llvm.hexagon.A4.cmpbgti
-+ hexagon_A4_cmpbgtu, // llvm.hexagon.A4.cmpbgtu
-+ hexagon_A4_cmpbgtui, // llvm.hexagon.A4.cmpbgtui
-+ hexagon_A4_cmpheq, // llvm.hexagon.A4.cmpheq
-+ hexagon_A4_cmpheqi, // llvm.hexagon.A4.cmpheqi
-+ hexagon_A4_cmphgt, // llvm.hexagon.A4.cmphgt
-+ hexagon_A4_cmphgti, // llvm.hexagon.A4.cmphgti
-+ hexagon_A4_cmphgtu, // llvm.hexagon.A4.cmphgtu
-+ hexagon_A4_cmphgtui, // llvm.hexagon.A4.cmphgtui
-+ hexagon_A4_combineir, // llvm.hexagon.A4.combineir
-+ hexagon_A4_combineri, // llvm.hexagon.A4.combineri
-+ hexagon_A4_cround_ri, // llvm.hexagon.A4.cround.ri
-+ hexagon_A4_cround_rr, // llvm.hexagon.A4.cround.rr
-+ hexagon_A4_modwrapu, // llvm.hexagon.A4.modwrapu
-+ hexagon_A4_orn, // llvm.hexagon.A4.orn
-+ hexagon_A4_ornp, // llvm.hexagon.A4.ornp
-+ hexagon_A4_rcmpeq, // llvm.hexagon.A4.rcmpeq
-+ hexagon_A4_rcmpeqi, // llvm.hexagon.A4.rcmpeqi
-+ hexagon_A4_rcmpneq, // llvm.hexagon.A4.rcmpneq
-+ hexagon_A4_rcmpneqi, // llvm.hexagon.A4.rcmpneqi
-+ hexagon_A4_round_ri, // llvm.hexagon.A4.round.ri
-+ hexagon_A4_round_ri_sat, // llvm.hexagon.A4.round.ri.sat
-+ hexagon_A4_round_rr, // llvm.hexagon.A4.round.rr
-+ hexagon_A4_round_rr_sat, // llvm.hexagon.A4.round.rr.sat
-+ hexagon_A4_tlbmatch, // llvm.hexagon.A4.tlbmatch
-+ hexagon_A4_vcmpbeq_any, // llvm.hexagon.A4.vcmpbeq.any
-+ hexagon_A4_vcmpbeqi, // llvm.hexagon.A4.vcmpbeqi
-+ hexagon_A4_vcmpbgt, // llvm.hexagon.A4.vcmpbgt
-+ hexagon_A4_vcmpbgti, // llvm.hexagon.A4.vcmpbgti
-+ hexagon_A4_vcmpbgtui, // llvm.hexagon.A4.vcmpbgtui
-+ hexagon_A4_vcmpheqi, // llvm.hexagon.A4.vcmpheqi
-+ hexagon_A4_vcmphgti, // llvm.hexagon.A4.vcmphgti
-+ hexagon_A4_vcmphgtui, // llvm.hexagon.A4.vcmphgtui
-+ hexagon_A4_vcmpweqi, // llvm.hexagon.A4.vcmpweqi
-+ hexagon_A4_vcmpwgti, // llvm.hexagon.A4.vcmpwgti
-+ hexagon_A4_vcmpwgtui, // llvm.hexagon.A4.vcmpwgtui
-+ hexagon_A4_vrmaxh, // llvm.hexagon.A4.vrmaxh
-+ hexagon_A4_vrmaxuh, // llvm.hexagon.A4.vrmaxuh
-+ hexagon_A4_vrmaxuw, // llvm.hexagon.A4.vrmaxuw
-+ hexagon_A4_vrmaxw, // llvm.hexagon.A4.vrmaxw
-+ hexagon_A4_vrminh, // llvm.hexagon.A4.vrminh
-+ hexagon_A4_vrminuh, // llvm.hexagon.A4.vrminuh
-+ hexagon_A4_vrminuw, // llvm.hexagon.A4.vrminuw
-+ hexagon_A4_vrminw, // llvm.hexagon.A4.vrminw
-+ hexagon_A5_vaddhubs, // llvm.hexagon.A5.vaddhubs
-+ hexagon_C2_all8, // llvm.hexagon.C2.all8
-+ hexagon_C2_and, // llvm.hexagon.C2.and
-+ hexagon_C2_andn, // llvm.hexagon.C2.andn
-+ hexagon_C2_any8, // llvm.hexagon.C2.any8
-+ hexagon_C2_bitsclr, // llvm.hexagon.C2.bitsclr
-+ hexagon_C2_bitsclri, // llvm.hexagon.C2.bitsclri
-+ hexagon_C2_bitsset, // llvm.hexagon.C2.bitsset
-+ hexagon_C2_cmpeq, // llvm.hexagon.C2.cmpeq
-+ hexagon_C2_cmpeqi, // llvm.hexagon.C2.cmpeqi
-+ hexagon_C2_cmpeqp, // llvm.hexagon.C2.cmpeqp
-+ hexagon_C2_cmpgei, // llvm.hexagon.C2.cmpgei
-+ hexagon_C2_cmpgeui, // llvm.hexagon.C2.cmpgeui
-+ hexagon_C2_cmpgt, // llvm.hexagon.C2.cmpgt
-+ hexagon_C2_cmpgti, // llvm.hexagon.C2.cmpgti
-+ hexagon_C2_cmpgtp, // llvm.hexagon.C2.cmpgtp
-+ hexagon_C2_cmpgtu, // llvm.hexagon.C2.cmpgtu
-+ hexagon_C2_cmpgtui, // llvm.hexagon.C2.cmpgtui
-+ hexagon_C2_cmpgtup, // llvm.hexagon.C2.cmpgtup
-+ hexagon_C2_cmplt, // llvm.hexagon.C2.cmplt
-+ hexagon_C2_cmpltu, // llvm.hexagon.C2.cmpltu
-+ hexagon_C2_mask, // llvm.hexagon.C2.mask
-+ hexagon_C2_mux, // llvm.hexagon.C2.mux
-+ hexagon_C2_muxii, // llvm.hexagon.C2.muxii
-+ hexagon_C2_muxir, // llvm.hexagon.C2.muxir
-+ hexagon_C2_muxri, // llvm.hexagon.C2.muxri
-+ hexagon_C2_not, // llvm.hexagon.C2.not
-+ hexagon_C2_or, // llvm.hexagon.C2.or
-+ hexagon_C2_orn, // llvm.hexagon.C2.orn
-+ hexagon_C2_pxfer_map, // llvm.hexagon.C2.pxfer.map
-+ hexagon_C2_tfrpr, // llvm.hexagon.C2.tfrpr
-+ hexagon_C2_tfrrp, // llvm.hexagon.C2.tfrrp
-+ hexagon_C2_vitpack, // llvm.hexagon.C2.vitpack
-+ hexagon_C2_vmux, // llvm.hexagon.C2.vmux
-+ hexagon_C2_xor, // llvm.hexagon.C2.xor
-+ hexagon_C4_and_and, // llvm.hexagon.C4.and.and
-+ hexagon_C4_and_andn, // llvm.hexagon.C4.and.andn
-+ hexagon_C4_and_or, // llvm.hexagon.C4.and.or
-+ hexagon_C4_and_orn, // llvm.hexagon.C4.and.orn
-+ hexagon_C4_cmplte, // llvm.hexagon.C4.cmplte
-+ hexagon_C4_cmpltei, // llvm.hexagon.C4.cmpltei
-+ hexagon_C4_cmplteu, // llvm.hexagon.C4.cmplteu
-+ hexagon_C4_cmplteui, // llvm.hexagon.C4.cmplteui
-+ hexagon_C4_cmpneq, // llvm.hexagon.C4.cmpneq
-+ hexagon_C4_cmpneqi, // llvm.hexagon.C4.cmpneqi
-+ hexagon_C4_fastcorner9, // llvm.hexagon.C4.fastcorner9
-+ hexagon_C4_fastcorner9_not, // llvm.hexagon.C4.fastcorner9.not
-+ hexagon_C4_nbitsclr, // llvm.hexagon.C4.nbitsclr
-+ hexagon_C4_nbitsclri, // llvm.hexagon.C4.nbitsclri
-+ hexagon_C4_nbitsset, // llvm.hexagon.C4.nbitsset
-+ hexagon_C4_or_and, // llvm.hexagon.C4.or.and
-+ hexagon_C4_or_andn, // llvm.hexagon.C4.or.andn
-+ hexagon_C4_or_or, // llvm.hexagon.C4.or.or
-+ hexagon_C4_or_orn, // llvm.hexagon.C4.or.orn
-+ hexagon_F2_conv_d2df, // llvm.hexagon.F2.conv.d2df
-+ hexagon_F2_conv_d2sf, // llvm.hexagon.F2.conv.d2sf
-+ hexagon_F2_conv_df2d, // llvm.hexagon.F2.conv.df2d
-+ hexagon_F2_conv_df2d_chop, // llvm.hexagon.F2.conv.df2d.chop
-+ hexagon_F2_conv_df2sf, // llvm.hexagon.F2.conv.df2sf
-+ hexagon_F2_conv_df2ud, // llvm.hexagon.F2.conv.df2ud
-+ hexagon_F2_conv_df2ud_chop, // llvm.hexagon.F2.conv.df2ud.chop
-+ hexagon_F2_conv_df2uw, // llvm.hexagon.F2.conv.df2uw
-+ hexagon_F2_conv_df2uw_chop, // llvm.hexagon.F2.conv.df2uw.chop
-+ hexagon_F2_conv_df2w, // llvm.hexagon.F2.conv.df2w
-+ hexagon_F2_conv_df2w_chop, // llvm.hexagon.F2.conv.df2w.chop
-+ hexagon_F2_conv_sf2d, // llvm.hexagon.F2.conv.sf2d
-+ hexagon_F2_conv_sf2d_chop, // llvm.hexagon.F2.conv.sf2d.chop
-+ hexagon_F2_conv_sf2df, // llvm.hexagon.F2.conv.sf2df
-+ hexagon_F2_conv_sf2ud, // llvm.hexagon.F2.conv.sf2ud
-+ hexagon_F2_conv_sf2ud_chop, // llvm.hexagon.F2.conv.sf2ud.chop
-+ hexagon_F2_conv_sf2uw, // llvm.hexagon.F2.conv.sf2uw
-+ hexagon_F2_conv_sf2uw_chop, // llvm.hexagon.F2.conv.sf2uw.chop
-+ hexagon_F2_conv_sf2w, // llvm.hexagon.F2.conv.sf2w
-+ hexagon_F2_conv_sf2w_chop, // llvm.hexagon.F2.conv.sf2w.chop
-+ hexagon_F2_conv_ud2df, // llvm.hexagon.F2.conv.ud2df
-+ hexagon_F2_conv_ud2sf, // llvm.hexagon.F2.conv.ud2sf
-+ hexagon_F2_conv_uw2df, // llvm.hexagon.F2.conv.uw2df
-+ hexagon_F2_conv_uw2sf, // llvm.hexagon.F2.conv.uw2sf
-+ hexagon_F2_conv_w2df, // llvm.hexagon.F2.conv.w2df
-+ hexagon_F2_conv_w2sf, // llvm.hexagon.F2.conv.w2sf
-+ hexagon_F2_dfclass, // llvm.hexagon.F2.dfclass
-+ hexagon_F2_dfcmpeq, // llvm.hexagon.F2.dfcmpeq
-+ hexagon_F2_dfcmpge, // llvm.hexagon.F2.dfcmpge
-+ hexagon_F2_dfcmpgt, // llvm.hexagon.F2.dfcmpgt
-+ hexagon_F2_dfcmpuo, // llvm.hexagon.F2.dfcmpuo
-+ hexagon_F2_dfimm_n, // llvm.hexagon.F2.dfimm.n
-+ hexagon_F2_dfimm_p, // llvm.hexagon.F2.dfimm.p
-+ hexagon_F2_sfadd, // llvm.hexagon.F2.sfadd
-+ hexagon_F2_sfclass, // llvm.hexagon.F2.sfclass
-+ hexagon_F2_sfcmpeq, // llvm.hexagon.F2.sfcmpeq
-+ hexagon_F2_sfcmpge, // llvm.hexagon.F2.sfcmpge
-+ hexagon_F2_sfcmpgt, // llvm.hexagon.F2.sfcmpgt
-+ hexagon_F2_sfcmpuo, // llvm.hexagon.F2.sfcmpuo
-+ hexagon_F2_sffixupd, // llvm.hexagon.F2.sffixupd
-+ hexagon_F2_sffixupn, // llvm.hexagon.F2.sffixupn
-+ hexagon_F2_sffixupr, // llvm.hexagon.F2.sffixupr
-+ hexagon_F2_sffma, // llvm.hexagon.F2.sffma
-+ hexagon_F2_sffma_lib, // llvm.hexagon.F2.sffma.lib
-+ hexagon_F2_sffma_sc, // llvm.hexagon.F2.sffma.sc
-+ hexagon_F2_sffms, // llvm.hexagon.F2.sffms
-+ hexagon_F2_sffms_lib, // llvm.hexagon.F2.sffms.lib
-+ hexagon_F2_sfimm_n, // llvm.hexagon.F2.sfimm.n
-+ hexagon_F2_sfimm_p, // llvm.hexagon.F2.sfimm.p
-+ hexagon_F2_sfmax, // llvm.hexagon.F2.sfmax
-+ hexagon_F2_sfmin, // llvm.hexagon.F2.sfmin
-+ hexagon_F2_sfmpy, // llvm.hexagon.F2.sfmpy
-+ hexagon_F2_sfsub, // llvm.hexagon.F2.sfsub
-+ hexagon_L2_loadw_locked, // llvm.hexagon.L2.loadw.locked
-+ hexagon_L4_loadd_locked, // llvm.hexagon.L4.loadd.locked
-+ hexagon_M2_acci, // llvm.hexagon.M2.acci
-+ hexagon_M2_accii, // llvm.hexagon.M2.accii
-+ hexagon_M2_cmaci_s0, // llvm.hexagon.M2.cmaci.s0
-+ hexagon_M2_cmacr_s0, // llvm.hexagon.M2.cmacr.s0
-+ hexagon_M2_cmacs_s0, // llvm.hexagon.M2.cmacs.s0
-+ hexagon_M2_cmacs_s1, // llvm.hexagon.M2.cmacs.s1
-+ hexagon_M2_cmacsc_s0, // llvm.hexagon.M2.cmacsc.s0
-+ hexagon_M2_cmacsc_s1, // llvm.hexagon.M2.cmacsc.s1
-+ hexagon_M2_cmpyi_s0, // llvm.hexagon.M2.cmpyi.s0
-+ hexagon_M2_cmpyr_s0, // llvm.hexagon.M2.cmpyr.s0
-+ hexagon_M2_cmpyrs_s0, // llvm.hexagon.M2.cmpyrs.s0
-+ hexagon_M2_cmpyrs_s1, // llvm.hexagon.M2.cmpyrs.s1
-+ hexagon_M2_cmpyrsc_s0, // llvm.hexagon.M2.cmpyrsc.s0
-+ hexagon_M2_cmpyrsc_s1, // llvm.hexagon.M2.cmpyrsc.s1
-+ hexagon_M2_cmpys_s0, // llvm.hexagon.M2.cmpys.s0
-+ hexagon_M2_cmpys_s1, // llvm.hexagon.M2.cmpys.s1
-+ hexagon_M2_cmpysc_s0, // llvm.hexagon.M2.cmpysc.s0
-+ hexagon_M2_cmpysc_s1, // llvm.hexagon.M2.cmpysc.s1
-+ hexagon_M2_cnacs_s0, // llvm.hexagon.M2.cnacs.s0
-+ hexagon_M2_cnacs_s1, // llvm.hexagon.M2.cnacs.s1
-+ hexagon_M2_cnacsc_s0, // llvm.hexagon.M2.cnacsc.s0
-+ hexagon_M2_cnacsc_s1, // llvm.hexagon.M2.cnacsc.s1
-+ hexagon_M2_dpmpyss_acc_s0, // llvm.hexagon.M2.dpmpyss.acc.s0
-+ hexagon_M2_dpmpyss_nac_s0, // llvm.hexagon.M2.dpmpyss.nac.s0
-+ hexagon_M2_dpmpyss_rnd_s0, // llvm.hexagon.M2.dpmpyss.rnd.s0
-+ hexagon_M2_dpmpyss_s0, // llvm.hexagon.M2.dpmpyss.s0
-+ hexagon_M2_dpmpyuu_acc_s0, // llvm.hexagon.M2.dpmpyuu.acc.s0
-+ hexagon_M2_dpmpyuu_nac_s0, // llvm.hexagon.M2.dpmpyuu.nac.s0
-+ hexagon_M2_dpmpyuu_s0, // llvm.hexagon.M2.dpmpyuu.s0
-+ hexagon_M2_hmmpyh_rs1, // llvm.hexagon.M2.hmmpyh.rs1
-+ hexagon_M2_hmmpyh_s1, // llvm.hexagon.M2.hmmpyh.s1
-+ hexagon_M2_hmmpyl_rs1, // llvm.hexagon.M2.hmmpyl.rs1
-+ hexagon_M2_hmmpyl_s1, // llvm.hexagon.M2.hmmpyl.s1
-+ hexagon_M2_maci, // llvm.hexagon.M2.maci
-+ hexagon_M2_macsin, // llvm.hexagon.M2.macsin
-+ hexagon_M2_macsip, // llvm.hexagon.M2.macsip
-+ hexagon_M2_mmachs_rs0, // llvm.hexagon.M2.mmachs.rs0
-+ hexagon_M2_mmachs_rs1, // llvm.hexagon.M2.mmachs.rs1
-+ hexagon_M2_mmachs_s0, // llvm.hexagon.M2.mmachs.s0
-+ hexagon_M2_mmachs_s1, // llvm.hexagon.M2.mmachs.s1
-+ hexagon_M2_mmacls_rs0, // llvm.hexagon.M2.mmacls.rs0
-+ hexagon_M2_mmacls_rs1, // llvm.hexagon.M2.mmacls.rs1
-+ hexagon_M2_mmacls_s0, // llvm.hexagon.M2.mmacls.s0
-+ hexagon_M2_mmacls_s1, // llvm.hexagon.M2.mmacls.s1
-+ hexagon_M2_mmacuhs_rs0, // llvm.hexagon.M2.mmacuhs.rs0
-+ hexagon_M2_mmacuhs_rs1, // llvm.hexagon.M2.mmacuhs.rs1
-+ hexagon_M2_mmacuhs_s0, // llvm.hexagon.M2.mmacuhs.s0
-+ hexagon_M2_mmacuhs_s1, // llvm.hexagon.M2.mmacuhs.s1
-+ hexagon_M2_mmaculs_rs0, // llvm.hexagon.M2.mmaculs.rs0
-+ hexagon_M2_mmaculs_rs1, // llvm.hexagon.M2.mmaculs.rs1
-+ hexagon_M2_mmaculs_s0, // llvm.hexagon.M2.mmaculs.s0
-+ hexagon_M2_mmaculs_s1, // llvm.hexagon.M2.mmaculs.s1
-+ hexagon_M2_mmpyh_rs0, // llvm.hexagon.M2.mmpyh.rs0
-+ hexagon_M2_mmpyh_rs1, // llvm.hexagon.M2.mmpyh.rs1
-+ hexagon_M2_mmpyh_s0, // llvm.hexagon.M2.mmpyh.s0
-+ hexagon_M2_mmpyh_s1, // llvm.hexagon.M2.mmpyh.s1
-+ hexagon_M2_mmpyl_rs0, // llvm.hexagon.M2.mmpyl.rs0
-+ hexagon_M2_mmpyl_rs1, // llvm.hexagon.M2.mmpyl.rs1
-+ hexagon_M2_mmpyl_s0, // llvm.hexagon.M2.mmpyl.s0
-+ hexagon_M2_mmpyl_s1, // llvm.hexagon.M2.mmpyl.s1
-+ hexagon_M2_mmpyuh_rs0, // llvm.hexagon.M2.mmpyuh.rs0
-+ hexagon_M2_mmpyuh_rs1, // llvm.hexagon.M2.mmpyuh.rs1
-+ hexagon_M2_mmpyuh_s0, // llvm.hexagon.M2.mmpyuh.s0
-+ hexagon_M2_mmpyuh_s1, // llvm.hexagon.M2.mmpyuh.s1
-+ hexagon_M2_mmpyul_rs0, // llvm.hexagon.M2.mmpyul.rs0
-+ hexagon_M2_mmpyul_rs1, // llvm.hexagon.M2.mmpyul.rs1
-+ hexagon_M2_mmpyul_s0, // llvm.hexagon.M2.mmpyul.s0
-+ hexagon_M2_mmpyul_s1, // llvm.hexagon.M2.mmpyul.s1
-+ hexagon_M2_mpy_acc_hh_s0, // llvm.hexagon.M2.mpy.acc.hh.s0
-+ hexagon_M2_mpy_acc_hh_s1, // llvm.hexagon.M2.mpy.acc.hh.s1
-+ hexagon_M2_mpy_acc_hl_s0, // llvm.hexagon.M2.mpy.acc.hl.s0
-+ hexagon_M2_mpy_acc_hl_s1, // llvm.hexagon.M2.mpy.acc.hl.s1
-+ hexagon_M2_mpy_acc_lh_s0, // llvm.hexagon.M2.mpy.acc.lh.s0
-+ hexagon_M2_mpy_acc_lh_s1, // llvm.hexagon.M2.mpy.acc.lh.s1
-+ hexagon_M2_mpy_acc_ll_s0, // llvm.hexagon.M2.mpy.acc.ll.s0
-+ hexagon_M2_mpy_acc_ll_s1, // llvm.hexagon.M2.mpy.acc.ll.s1
-+ hexagon_M2_mpy_acc_sat_hh_s0, // llvm.hexagon.M2.mpy.acc.sat.hh.s0
-+ hexagon_M2_mpy_acc_sat_hh_s1, // llvm.hexagon.M2.mpy.acc.sat.hh.s1
-+ hexagon_M2_mpy_acc_sat_hl_s0, // llvm.hexagon.M2.mpy.acc.sat.hl.s0
-+ hexagon_M2_mpy_acc_sat_hl_s1, // llvm.hexagon.M2.mpy.acc.sat.hl.s1
-+ hexagon_M2_mpy_acc_sat_lh_s0, // llvm.hexagon.M2.mpy.acc.sat.lh.s0
-+ hexagon_M2_mpy_acc_sat_lh_s1, // llvm.hexagon.M2.mpy.acc.sat.lh.s1
-+ hexagon_M2_mpy_acc_sat_ll_s0, // llvm.hexagon.M2.mpy.acc.sat.ll.s0
-+ hexagon_M2_mpy_acc_sat_ll_s1, // llvm.hexagon.M2.mpy.acc.sat.ll.s1
-+ hexagon_M2_mpy_hh_s0, // llvm.hexagon.M2.mpy.hh.s0
-+ hexagon_M2_mpy_hh_s1, // llvm.hexagon.M2.mpy.hh.s1
-+ hexagon_M2_mpy_hl_s0, // llvm.hexagon.M2.mpy.hl.s0
-+ hexagon_M2_mpy_hl_s1, // llvm.hexagon.M2.mpy.hl.s1
-+ hexagon_M2_mpy_lh_s0, // llvm.hexagon.M2.mpy.lh.s0
-+ hexagon_M2_mpy_lh_s1, // llvm.hexagon.M2.mpy.lh.s1
-+ hexagon_M2_mpy_ll_s0, // llvm.hexagon.M2.mpy.ll.s0
-+ hexagon_M2_mpy_ll_s1, // llvm.hexagon.M2.mpy.ll.s1
-+ hexagon_M2_mpy_nac_hh_s0, // llvm.hexagon.M2.mpy.nac.hh.s0
-+ hexagon_M2_mpy_nac_hh_s1, // llvm.hexagon.M2.mpy.nac.hh.s1
-+ hexagon_M2_mpy_nac_hl_s0, // llvm.hexagon.M2.mpy.nac.hl.s0
-+ hexagon_M2_mpy_nac_hl_s1, // llvm.hexagon.M2.mpy.nac.hl.s1
-+ hexagon_M2_mpy_nac_lh_s0, // llvm.hexagon.M2.mpy.nac.lh.s0
-+ hexagon_M2_mpy_nac_lh_s1, // llvm.hexagon.M2.mpy.nac.lh.s1
-+ hexagon_M2_mpy_nac_ll_s0, // llvm.hexagon.M2.mpy.nac.ll.s0
-+ hexagon_M2_mpy_nac_ll_s1, // llvm.hexagon.M2.mpy.nac.ll.s1
-+ hexagon_M2_mpy_nac_sat_hh_s0, // llvm.hexagon.M2.mpy.nac.sat.hh.s0
-+ hexagon_M2_mpy_nac_sat_hh_s1, // llvm.hexagon.M2.mpy.nac.sat.hh.s1
-+ hexagon_M2_mpy_nac_sat_hl_s0, // llvm.hexagon.M2.mpy.nac.sat.hl.s0
-+ hexagon_M2_mpy_nac_sat_hl_s1, // llvm.hexagon.M2.mpy.nac.sat.hl.s1
-+ hexagon_M2_mpy_nac_sat_lh_s0, // llvm.hexagon.M2.mpy.nac.sat.lh.s0
-+ hexagon_M2_mpy_nac_sat_lh_s1, // llvm.hexagon.M2.mpy.nac.sat.lh.s1
-+ hexagon_M2_mpy_nac_sat_ll_s0, // llvm.hexagon.M2.mpy.nac.sat.ll.s0
-+ hexagon_M2_mpy_nac_sat_ll_s1, // llvm.hexagon.M2.mpy.nac.sat.ll.s1
-+ hexagon_M2_mpy_rnd_hh_s0, // llvm.hexagon.M2.mpy.rnd.hh.s0
-+ hexagon_M2_mpy_rnd_hh_s1, // llvm.hexagon.M2.mpy.rnd.hh.s1
-+ hexagon_M2_mpy_rnd_hl_s0, // llvm.hexagon.M2.mpy.rnd.hl.s0
-+ hexagon_M2_mpy_rnd_hl_s1, // llvm.hexagon.M2.mpy.rnd.hl.s1
-+ hexagon_M2_mpy_rnd_lh_s0, // llvm.hexagon.M2.mpy.rnd.lh.s0
-+ hexagon_M2_mpy_rnd_lh_s1, // llvm.hexagon.M2.mpy.rnd.lh.s1
-+ hexagon_M2_mpy_rnd_ll_s0, // llvm.hexagon.M2.mpy.rnd.ll.s0
-+ hexagon_M2_mpy_rnd_ll_s1, // llvm.hexagon.M2.mpy.rnd.ll.s1
-+ hexagon_M2_mpy_sat_hh_s0, // llvm.hexagon.M2.mpy.sat.hh.s0
-+ hexagon_M2_mpy_sat_hh_s1, // llvm.hexagon.M2.mpy.sat.hh.s1
-+ hexagon_M2_mpy_sat_hl_s0, // llvm.hexagon.M2.mpy.sat.hl.s0
-+ hexagon_M2_mpy_sat_hl_s1, // llvm.hexagon.M2.mpy.sat.hl.s1
-+ hexagon_M2_mpy_sat_lh_s0, // llvm.hexagon.M2.mpy.sat.lh.s0
-+ hexagon_M2_mpy_sat_lh_s1, // llvm.hexagon.M2.mpy.sat.lh.s1
-+ hexagon_M2_mpy_sat_ll_s0, // llvm.hexagon.M2.mpy.sat.ll.s0
-+ hexagon_M2_mpy_sat_ll_s1, // llvm.hexagon.M2.mpy.sat.ll.s1
-+ hexagon_M2_mpy_sat_rnd_hh_s0, // llvm.hexagon.M2.mpy.sat.rnd.hh.s0
-+ hexagon_M2_mpy_sat_rnd_hh_s1, // llvm.hexagon.M2.mpy.sat.rnd.hh.s1
-+ hexagon_M2_mpy_sat_rnd_hl_s0, // llvm.hexagon.M2.mpy.sat.rnd.hl.s0
-+ hexagon_M2_mpy_sat_rnd_hl_s1, // llvm.hexagon.M2.mpy.sat.rnd.hl.s1
-+ hexagon_M2_mpy_sat_rnd_lh_s0, // llvm.hexagon.M2.mpy.sat.rnd.lh.s0
-+ hexagon_M2_mpy_sat_rnd_lh_s1, // llvm.hexagon.M2.mpy.sat.rnd.lh.s1
-+ hexagon_M2_mpy_sat_rnd_ll_s0, // llvm.hexagon.M2.mpy.sat.rnd.ll.s0
-+ hexagon_M2_mpy_sat_rnd_ll_s1, // llvm.hexagon.M2.mpy.sat.rnd.ll.s1
-+ hexagon_M2_mpy_up, // llvm.hexagon.M2.mpy.up
-+ hexagon_M2_mpy_up_s1, // llvm.hexagon.M2.mpy.up.s1
-+ hexagon_M2_mpy_up_s1_sat, // llvm.hexagon.M2.mpy.up.s1.sat
-+ hexagon_M2_mpyd_acc_hh_s0, // llvm.hexagon.M2.mpyd.acc.hh.s0
-+ hexagon_M2_mpyd_acc_hh_s1, // llvm.hexagon.M2.mpyd.acc.hh.s1
-+ hexagon_M2_mpyd_acc_hl_s0, // llvm.hexagon.M2.mpyd.acc.hl.s0
-+ hexagon_M2_mpyd_acc_hl_s1, // llvm.hexagon.M2.mpyd.acc.hl.s1
-+ hexagon_M2_mpyd_acc_lh_s0, // llvm.hexagon.M2.mpyd.acc.lh.s0
-+ hexagon_M2_mpyd_acc_lh_s1, // llvm.hexagon.M2.mpyd.acc.lh.s1
-+ hexagon_M2_mpyd_acc_ll_s0, // llvm.hexagon.M2.mpyd.acc.ll.s0
-+ hexagon_M2_mpyd_acc_ll_s1, // llvm.hexagon.M2.mpyd.acc.ll.s1
-+ hexagon_M2_mpyd_hh_s0, // llvm.hexagon.M2.mpyd.hh.s0
-+ hexagon_M2_mpyd_hh_s1, // llvm.hexagon.M2.mpyd.hh.s1
-+ hexagon_M2_mpyd_hl_s0, // llvm.hexagon.M2.mpyd.hl.s0
-+ hexagon_M2_mpyd_hl_s1, // llvm.hexagon.M2.mpyd.hl.s1
-+ hexagon_M2_mpyd_lh_s0, // llvm.hexagon.M2.mpyd.lh.s0
-+ hexagon_M2_mpyd_lh_s1, // llvm.hexagon.M2.mpyd.lh.s1
-+ hexagon_M2_mpyd_ll_s0, // llvm.hexagon.M2.mpyd.ll.s0
-+ hexagon_M2_mpyd_ll_s1, // llvm.hexagon.M2.mpyd.ll.s1
-+ hexagon_M2_mpyd_nac_hh_s0, // llvm.hexagon.M2.mpyd.nac.hh.s0
-+ hexagon_M2_mpyd_nac_hh_s1, // llvm.hexagon.M2.mpyd.nac.hh.s1
-+ hexagon_M2_mpyd_nac_hl_s0, // llvm.hexagon.M2.mpyd.nac.hl.s0
-+ hexagon_M2_mpyd_nac_hl_s1, // llvm.hexagon.M2.mpyd.nac.hl.s1
-+ hexagon_M2_mpyd_nac_lh_s0, // llvm.hexagon.M2.mpyd.nac.lh.s0
-+ hexagon_M2_mpyd_nac_lh_s1, // llvm.hexagon.M2.mpyd.nac.lh.s1
-+ hexagon_M2_mpyd_nac_ll_s0, // llvm.hexagon.M2.mpyd.nac.ll.s0
-+ hexagon_M2_mpyd_nac_ll_s1, // llvm.hexagon.M2.mpyd.nac.ll.s1
-+ hexagon_M2_mpyd_rnd_hh_s0, // llvm.hexagon.M2.mpyd.rnd.hh.s0
-+ hexagon_M2_mpyd_rnd_hh_s1, // llvm.hexagon.M2.mpyd.rnd.hh.s1
-+ hexagon_M2_mpyd_rnd_hl_s0, // llvm.hexagon.M2.mpyd.rnd.hl.s0
-+ hexagon_M2_mpyd_rnd_hl_s1, // llvm.hexagon.M2.mpyd.rnd.hl.s1
-+ hexagon_M2_mpyd_rnd_lh_s0, // llvm.hexagon.M2.mpyd.rnd.lh.s0
-+ hexagon_M2_mpyd_rnd_lh_s1, // llvm.hexagon.M2.mpyd.rnd.lh.s1
-+ hexagon_M2_mpyd_rnd_ll_s0, // llvm.hexagon.M2.mpyd.rnd.ll.s0
-+ hexagon_M2_mpyd_rnd_ll_s1, // llvm.hexagon.M2.mpyd.rnd.ll.s1
-+ hexagon_M2_mpyi, // llvm.hexagon.M2.mpyi
-+ hexagon_M2_mpysmi, // llvm.hexagon.M2.mpysmi
-+ hexagon_M2_mpysu_up, // llvm.hexagon.M2.mpysu.up
-+ hexagon_M2_mpyu_acc_hh_s0, // llvm.hexagon.M2.mpyu.acc.hh.s0
-+ hexagon_M2_mpyu_acc_hh_s1, // llvm.hexagon.M2.mpyu.acc.hh.s1
-+ hexagon_M2_mpyu_acc_hl_s0, // llvm.hexagon.M2.mpyu.acc.hl.s0
-+ hexagon_M2_mpyu_acc_hl_s1, // llvm.hexagon.M2.mpyu.acc.hl.s1
-+ hexagon_M2_mpyu_acc_lh_s0, // llvm.hexagon.M2.mpyu.acc.lh.s0
-+ hexagon_M2_mpyu_acc_lh_s1, // llvm.hexagon.M2.mpyu.acc.lh.s1
-+ hexagon_M2_mpyu_acc_ll_s0, // llvm.hexagon.M2.mpyu.acc.ll.s0
-+ hexagon_M2_mpyu_acc_ll_s1, // llvm.hexagon.M2.mpyu.acc.ll.s1
-+ hexagon_M2_mpyu_hh_s0, // llvm.hexagon.M2.mpyu.hh.s0
-+ hexagon_M2_mpyu_hh_s1, // llvm.hexagon.M2.mpyu.hh.s1
-+ hexagon_M2_mpyu_hl_s0, // llvm.hexagon.M2.mpyu.hl.s0
-+ hexagon_M2_mpyu_hl_s1, // llvm.hexagon.M2.mpyu.hl.s1
-+ hexagon_M2_mpyu_lh_s0, // llvm.hexagon.M2.mpyu.lh.s0
-+ hexagon_M2_mpyu_lh_s1, // llvm.hexagon.M2.mpyu.lh.s1
-+ hexagon_M2_mpyu_ll_s0, // llvm.hexagon.M2.mpyu.ll.s0
-+ hexagon_M2_mpyu_ll_s1, // llvm.hexagon.M2.mpyu.ll.s1
-+ hexagon_M2_mpyu_nac_hh_s0, // llvm.hexagon.M2.mpyu.nac.hh.s0
-+ hexagon_M2_mpyu_nac_hh_s1, // llvm.hexagon.M2.mpyu.nac.hh.s1
-+ hexagon_M2_mpyu_nac_hl_s0, // llvm.hexagon.M2.mpyu.nac.hl.s0
-+ hexagon_M2_mpyu_nac_hl_s1, // llvm.hexagon.M2.mpyu.nac.hl.s1
-+ hexagon_M2_mpyu_nac_lh_s0, // llvm.hexagon.M2.mpyu.nac.lh.s0
-+ hexagon_M2_mpyu_nac_lh_s1, // llvm.hexagon.M2.mpyu.nac.lh.s1
-+ hexagon_M2_mpyu_nac_ll_s0, // llvm.hexagon.M2.mpyu.nac.ll.s0
-+ hexagon_M2_mpyu_nac_ll_s1, // llvm.hexagon.M2.mpyu.nac.ll.s1
-+ hexagon_M2_mpyu_up, // llvm.hexagon.M2.mpyu.up
-+ hexagon_M2_mpyud_acc_hh_s0, // llvm.hexagon.M2.mpyud.acc.hh.s0
-+ hexagon_M2_mpyud_acc_hh_s1, // llvm.hexagon.M2.mpyud.acc.hh.s1
-+ hexagon_M2_mpyud_acc_hl_s0, // llvm.hexagon.M2.mpyud.acc.hl.s0
-+ hexagon_M2_mpyud_acc_hl_s1, // llvm.hexagon.M2.mpyud.acc.hl.s1
-+ hexagon_M2_mpyud_acc_lh_s0, // llvm.hexagon.M2.mpyud.acc.lh.s0
-+ hexagon_M2_mpyud_acc_lh_s1, // llvm.hexagon.M2.mpyud.acc.lh.s1
-+ hexagon_M2_mpyud_acc_ll_s0, // llvm.hexagon.M2.mpyud.acc.ll.s0
-+ hexagon_M2_mpyud_acc_ll_s1, // llvm.hexagon.M2.mpyud.acc.ll.s1
-+ hexagon_M2_mpyud_hh_s0, // llvm.hexagon.M2.mpyud.hh.s0
-+ hexagon_M2_mpyud_hh_s1, // llvm.hexagon.M2.mpyud.hh.s1
-+ hexagon_M2_mpyud_hl_s0, // llvm.hexagon.M2.mpyud.hl.s0
-+ hexagon_M2_mpyud_hl_s1, // llvm.hexagon.M2.mpyud.hl.s1
-+ hexagon_M2_mpyud_lh_s0, // llvm.hexagon.M2.mpyud.lh.s0
-+ hexagon_M2_mpyud_lh_s1, // llvm.hexagon.M2.mpyud.lh.s1
-+ hexagon_M2_mpyud_ll_s0, // llvm.hexagon.M2.mpyud.ll.s0
-+ hexagon_M2_mpyud_ll_s1, // llvm.hexagon.M2.mpyud.ll.s1
-+ hexagon_M2_mpyud_nac_hh_s0, // llvm.hexagon.M2.mpyud.nac.hh.s0
-+ hexagon_M2_mpyud_nac_hh_s1, // llvm.hexagon.M2.mpyud.nac.hh.s1
-+ hexagon_M2_mpyud_nac_hl_s0, // llvm.hexagon.M2.mpyud.nac.hl.s0
-+ hexagon_M2_mpyud_nac_hl_s1, // llvm.hexagon.M2.mpyud.nac.hl.s1
-+ hexagon_M2_mpyud_nac_lh_s0, // llvm.hexagon.M2.mpyud.nac.lh.s0
-+ hexagon_M2_mpyud_nac_lh_s1, // llvm.hexagon.M2.mpyud.nac.lh.s1
-+ hexagon_M2_mpyud_nac_ll_s0, // llvm.hexagon.M2.mpyud.nac.ll.s0
-+ hexagon_M2_mpyud_nac_ll_s1, // llvm.hexagon.M2.mpyud.nac.ll.s1
-+ hexagon_M2_mpyui, // llvm.hexagon.M2.mpyui
-+ hexagon_M2_nacci, // llvm.hexagon.M2.nacci
-+ hexagon_M2_naccii, // llvm.hexagon.M2.naccii
-+ hexagon_M2_subacc, // llvm.hexagon.M2.subacc
-+ hexagon_M2_vabsdiffh, // llvm.hexagon.M2.vabsdiffh
-+ hexagon_M2_vabsdiffw, // llvm.hexagon.M2.vabsdiffw
-+ hexagon_M2_vcmac_s0_sat_i, // llvm.hexagon.M2.vcmac.s0.sat.i
-+ hexagon_M2_vcmac_s0_sat_r, // llvm.hexagon.M2.vcmac.s0.sat.r
-+ hexagon_M2_vcmpy_s0_sat_i, // llvm.hexagon.M2.vcmpy.s0.sat.i
-+ hexagon_M2_vcmpy_s0_sat_r, // llvm.hexagon.M2.vcmpy.s0.sat.r
-+ hexagon_M2_vcmpy_s1_sat_i, // llvm.hexagon.M2.vcmpy.s1.sat.i
-+ hexagon_M2_vcmpy_s1_sat_r, // llvm.hexagon.M2.vcmpy.s1.sat.r
-+ hexagon_M2_vdmacs_s0, // llvm.hexagon.M2.vdmacs.s0
-+ hexagon_M2_vdmacs_s1, // llvm.hexagon.M2.vdmacs.s1
-+ hexagon_M2_vdmpyrs_s0, // llvm.hexagon.M2.vdmpyrs.s0
-+ hexagon_M2_vdmpyrs_s1, // llvm.hexagon.M2.vdmpyrs.s1
-+ hexagon_M2_vdmpys_s0, // llvm.hexagon.M2.vdmpys.s0
-+ hexagon_M2_vdmpys_s1, // llvm.hexagon.M2.vdmpys.s1
-+ hexagon_M2_vmac2, // llvm.hexagon.M2.vmac2
-+ hexagon_M2_vmac2es, // llvm.hexagon.M2.vmac2es
-+ hexagon_M2_vmac2es_s0, // llvm.hexagon.M2.vmac2es.s0
-+ hexagon_M2_vmac2es_s1, // llvm.hexagon.M2.vmac2es.s1
-+ hexagon_M2_vmac2s_s0, // llvm.hexagon.M2.vmac2s.s0
-+ hexagon_M2_vmac2s_s1, // llvm.hexagon.M2.vmac2s.s1
-+ hexagon_M2_vmac2su_s0, // llvm.hexagon.M2.vmac2su.s0
-+ hexagon_M2_vmac2su_s1, // llvm.hexagon.M2.vmac2su.s1
-+ hexagon_M2_vmpy2es_s0, // llvm.hexagon.M2.vmpy2es.s0
-+ hexagon_M2_vmpy2es_s1, // llvm.hexagon.M2.vmpy2es.s1
-+ hexagon_M2_vmpy2s_s0, // llvm.hexagon.M2.vmpy2s.s0
-+ hexagon_M2_vmpy2s_s0pack, // llvm.hexagon.M2.vmpy2s.s0pack
-+ hexagon_M2_vmpy2s_s1, // llvm.hexagon.M2.vmpy2s.s1
-+ hexagon_M2_vmpy2s_s1pack, // llvm.hexagon.M2.vmpy2s.s1pack
-+ hexagon_M2_vmpy2su_s0, // llvm.hexagon.M2.vmpy2su.s0
-+ hexagon_M2_vmpy2su_s1, // llvm.hexagon.M2.vmpy2su.s1
-+ hexagon_M2_vraddh, // llvm.hexagon.M2.vraddh
-+ hexagon_M2_vradduh, // llvm.hexagon.M2.vradduh
-+ hexagon_M2_vrcmaci_s0, // llvm.hexagon.M2.vrcmaci.s0
-+ hexagon_M2_vrcmaci_s0c, // llvm.hexagon.M2.vrcmaci.s0c
-+ hexagon_M2_vrcmacr_s0, // llvm.hexagon.M2.vrcmacr.s0
-+ hexagon_M2_vrcmacr_s0c, // llvm.hexagon.M2.vrcmacr.s0c
-+ hexagon_M2_vrcmpyi_s0, // llvm.hexagon.M2.vrcmpyi.s0
-+ hexagon_M2_vrcmpyi_s0c, // llvm.hexagon.M2.vrcmpyi.s0c
-+ hexagon_M2_vrcmpyr_s0, // llvm.hexagon.M2.vrcmpyr.s0
-+ hexagon_M2_vrcmpyr_s0c, // llvm.hexagon.M2.vrcmpyr.s0c
-+ hexagon_M2_vrcmpys_acc_s1, // llvm.hexagon.M2.vrcmpys.acc.s1
-+ hexagon_M2_vrcmpys_s1, // llvm.hexagon.M2.vrcmpys.s1
-+ hexagon_M2_vrcmpys_s1rp, // llvm.hexagon.M2.vrcmpys.s1rp
-+ hexagon_M2_vrmac_s0, // llvm.hexagon.M2.vrmac.s0
-+ hexagon_M2_vrmpy_s0, // llvm.hexagon.M2.vrmpy.s0
-+ hexagon_M2_xor_xacc, // llvm.hexagon.M2.xor.xacc
-+ hexagon_M4_and_and, // llvm.hexagon.M4.and.and
-+ hexagon_M4_and_andn, // llvm.hexagon.M4.and.andn
-+ hexagon_M4_and_or, // llvm.hexagon.M4.and.or
-+ hexagon_M4_and_xor, // llvm.hexagon.M4.and.xor
-+ hexagon_M4_cmpyi_wh, // llvm.hexagon.M4.cmpyi.wh
-+ hexagon_M4_cmpyi_whc, // llvm.hexagon.M4.cmpyi.whc
-+ hexagon_M4_cmpyr_wh, // llvm.hexagon.M4.cmpyr.wh
-+ hexagon_M4_cmpyr_whc, // llvm.hexagon.M4.cmpyr.whc
-+ hexagon_M4_mac_up_s1_sat, // llvm.hexagon.M4.mac.up.s1.sat
-+ hexagon_M4_mpyri_addi, // llvm.hexagon.M4.mpyri.addi
-+ hexagon_M4_mpyri_addr, // llvm.hexagon.M4.mpyri.addr
-+ hexagon_M4_mpyri_addr_u2, // llvm.hexagon.M4.mpyri.addr.u2
-+ hexagon_M4_mpyrr_addi, // llvm.hexagon.M4.mpyrr.addi
-+ hexagon_M4_mpyrr_addr, // llvm.hexagon.M4.mpyrr.addr
-+ hexagon_M4_nac_up_s1_sat, // llvm.hexagon.M4.nac.up.s1.sat
-+ hexagon_M4_or_and, // llvm.hexagon.M4.or.and
-+ hexagon_M4_or_andn, // llvm.hexagon.M4.or.andn
-+ hexagon_M4_or_or, // llvm.hexagon.M4.or.or
-+ hexagon_M4_or_xor, // llvm.hexagon.M4.or.xor
-+ hexagon_M4_pmpyw, // llvm.hexagon.M4.pmpyw
-+ hexagon_M4_pmpyw_acc, // llvm.hexagon.M4.pmpyw.acc
-+ hexagon_M4_vpmpyh, // llvm.hexagon.M4.vpmpyh
-+ hexagon_M4_vpmpyh_acc, // llvm.hexagon.M4.vpmpyh.acc
-+ hexagon_M4_vrmpyeh_acc_s0, // llvm.hexagon.M4.vrmpyeh.acc.s0
-+ hexagon_M4_vrmpyeh_acc_s1, // llvm.hexagon.M4.vrmpyeh.acc.s1
-+ hexagon_M4_vrmpyeh_s0, // llvm.hexagon.M4.vrmpyeh.s0
-+ hexagon_M4_vrmpyeh_s1, // llvm.hexagon.M4.vrmpyeh.s1
-+ hexagon_M4_vrmpyoh_acc_s0, // llvm.hexagon.M4.vrmpyoh.acc.s0
-+ hexagon_M4_vrmpyoh_acc_s1, // llvm.hexagon.M4.vrmpyoh.acc.s1
-+ hexagon_M4_vrmpyoh_s0, // llvm.hexagon.M4.vrmpyoh.s0
-+ hexagon_M4_vrmpyoh_s1, // llvm.hexagon.M4.vrmpyoh.s1
-+ hexagon_M4_xor_and, // llvm.hexagon.M4.xor.and
-+ hexagon_M4_xor_andn, // llvm.hexagon.M4.xor.andn
-+ hexagon_M4_xor_or, // llvm.hexagon.M4.xor.or
-+ hexagon_M4_xor_xacc, // llvm.hexagon.M4.xor.xacc
-+ hexagon_M5_vdmacbsu, // llvm.hexagon.M5.vdmacbsu
-+ hexagon_M5_vdmpybsu, // llvm.hexagon.M5.vdmpybsu
-+ hexagon_M5_vmacbsu, // llvm.hexagon.M5.vmacbsu
-+ hexagon_M5_vmacbuu, // llvm.hexagon.M5.vmacbuu
-+ hexagon_M5_vmpybsu, // llvm.hexagon.M5.vmpybsu
-+ hexagon_M5_vmpybuu, // llvm.hexagon.M5.vmpybuu
-+ hexagon_M5_vrmacbsu, // llvm.hexagon.M5.vrmacbsu
-+ hexagon_M5_vrmacbuu, // llvm.hexagon.M5.vrmacbuu
-+ hexagon_M5_vrmpybsu, // llvm.hexagon.M5.vrmpybsu
-+ hexagon_M5_vrmpybuu, // llvm.hexagon.M5.vrmpybuu
-+ hexagon_M6_vabsdiffb, // llvm.hexagon.M6.vabsdiffb
-+ hexagon_M6_vabsdiffub, // llvm.hexagon.M6.vabsdiffub
-+ hexagon_S2_addasl_rrri, // llvm.hexagon.S2.addasl.rrri
-+ hexagon_S2_asl_i_p, // llvm.hexagon.S2.asl.i.p
-+ hexagon_S2_asl_i_p_acc, // llvm.hexagon.S2.asl.i.p.acc
-+ hexagon_S2_asl_i_p_and, // llvm.hexagon.S2.asl.i.p.and
-+ hexagon_S2_asl_i_p_nac, // llvm.hexagon.S2.asl.i.p.nac
-+ hexagon_S2_asl_i_p_or, // llvm.hexagon.S2.asl.i.p.or
-+ hexagon_S2_asl_i_p_xacc, // llvm.hexagon.S2.asl.i.p.xacc
-+ hexagon_S2_asl_i_r, // llvm.hexagon.S2.asl.i.r
-+ hexagon_S2_asl_i_r_acc, // llvm.hexagon.S2.asl.i.r.acc
-+ hexagon_S2_asl_i_r_and, // llvm.hexagon.S2.asl.i.r.and
-+ hexagon_S2_asl_i_r_nac, // llvm.hexagon.S2.asl.i.r.nac
-+ hexagon_S2_asl_i_r_or, // llvm.hexagon.S2.asl.i.r.or
-+ hexagon_S2_asl_i_r_sat, // llvm.hexagon.S2.asl.i.r.sat
-+ hexagon_S2_asl_i_r_xacc, // llvm.hexagon.S2.asl.i.r.xacc
-+ hexagon_S2_asl_i_vh, // llvm.hexagon.S2.asl.i.vh
-+ hexagon_S2_asl_i_vw, // llvm.hexagon.S2.asl.i.vw
-+ hexagon_S2_asl_r_p, // llvm.hexagon.S2.asl.r.p
-+ hexagon_S2_asl_r_p_acc, // llvm.hexagon.S2.asl.r.p.acc
-+ hexagon_S2_asl_r_p_and, // llvm.hexagon.S2.asl.r.p.and
-+ hexagon_S2_asl_r_p_nac, // llvm.hexagon.S2.asl.r.p.nac
-+ hexagon_S2_asl_r_p_or, // llvm.hexagon.S2.asl.r.p.or
-+ hexagon_S2_asl_r_p_xor, // llvm.hexagon.S2.asl.r.p.xor
-+ hexagon_S2_asl_r_r, // llvm.hexagon.S2.asl.r.r
-+ hexagon_S2_asl_r_r_acc, // llvm.hexagon.S2.asl.r.r.acc
-+ hexagon_S2_asl_r_r_and, // llvm.hexagon.S2.asl.r.r.and
-+ hexagon_S2_asl_r_r_nac, // llvm.hexagon.S2.asl.r.r.nac
-+ hexagon_S2_asl_r_r_or, // llvm.hexagon.S2.asl.r.r.or
-+ hexagon_S2_asl_r_r_sat, // llvm.hexagon.S2.asl.r.r.sat
-+ hexagon_S2_asl_r_vh, // llvm.hexagon.S2.asl.r.vh
-+ hexagon_S2_asl_r_vw, // llvm.hexagon.S2.asl.r.vw
-+ hexagon_S2_asr_i_p, // llvm.hexagon.S2.asr.i.p
-+ hexagon_S2_asr_i_p_acc, // llvm.hexagon.S2.asr.i.p.acc
-+ hexagon_S2_asr_i_p_and, // llvm.hexagon.S2.asr.i.p.and
-+ hexagon_S2_asr_i_p_nac, // llvm.hexagon.S2.asr.i.p.nac
-+ hexagon_S2_asr_i_p_or, // llvm.hexagon.S2.asr.i.p.or
-+ hexagon_S2_asr_i_p_rnd, // llvm.hexagon.S2.asr.i.p.rnd
-+ hexagon_S2_asr_i_p_rnd_goodsyntax, // llvm.hexagon.S2.asr.i.p.rnd.goodsyntax
-+ hexagon_S2_asr_i_r, // llvm.hexagon.S2.asr.i.r
-+ hexagon_S2_asr_i_r_acc, // llvm.hexagon.S2.asr.i.r.acc
-+ hexagon_S2_asr_i_r_and, // llvm.hexagon.S2.asr.i.r.and
-+ hexagon_S2_asr_i_r_nac, // llvm.hexagon.S2.asr.i.r.nac
-+ hexagon_S2_asr_i_r_or, // llvm.hexagon.S2.asr.i.r.or
-+ hexagon_S2_asr_i_r_rnd, // llvm.hexagon.S2.asr.i.r.rnd
-+ hexagon_S2_asr_i_r_rnd_goodsyntax, // llvm.hexagon.S2.asr.i.r.rnd.goodsyntax
-+ hexagon_S2_asr_i_svw_trun, // llvm.hexagon.S2.asr.i.svw.trun
-+ hexagon_S2_asr_i_vh, // llvm.hexagon.S2.asr.i.vh
-+ hexagon_S2_asr_i_vw, // llvm.hexagon.S2.asr.i.vw
-+ hexagon_S2_asr_r_p, // llvm.hexagon.S2.asr.r.p
-+ hexagon_S2_asr_r_p_acc, // llvm.hexagon.S2.asr.r.p.acc
-+ hexagon_S2_asr_r_p_and, // llvm.hexagon.S2.asr.r.p.and
-+ hexagon_S2_asr_r_p_nac, // llvm.hexagon.S2.asr.r.p.nac
-+ hexagon_S2_asr_r_p_or, // llvm.hexagon.S2.asr.r.p.or
-+ hexagon_S2_asr_r_p_xor, // llvm.hexagon.S2.asr.r.p.xor
-+ hexagon_S2_asr_r_r, // llvm.hexagon.S2.asr.r.r
-+ hexagon_S2_asr_r_r_acc, // llvm.hexagon.S2.asr.r.r.acc
-+ hexagon_S2_asr_r_r_and, // llvm.hexagon.S2.asr.r.r.and
-+ hexagon_S2_asr_r_r_nac, // llvm.hexagon.S2.asr.r.r.nac
-+ hexagon_S2_asr_r_r_or, // llvm.hexagon.S2.asr.r.r.or
-+ hexagon_S2_asr_r_r_sat, // llvm.hexagon.S2.asr.r.r.sat
-+ hexagon_S2_asr_r_svw_trun, // llvm.hexagon.S2.asr.r.svw.trun
-+ hexagon_S2_asr_r_vh, // llvm.hexagon.S2.asr.r.vh
-+ hexagon_S2_asr_r_vw, // llvm.hexagon.S2.asr.r.vw
-+ hexagon_S2_brev, // llvm.hexagon.S2.brev
-+ hexagon_S2_brevp, // llvm.hexagon.S2.brevp
-+ hexagon_S2_cabacencbin, // llvm.hexagon.S2.cabacencbin
-+ hexagon_S2_cl0, // llvm.hexagon.S2.cl0
-+ hexagon_S2_cl0p, // llvm.hexagon.S2.cl0p
-+ hexagon_S2_cl1, // llvm.hexagon.S2.cl1
-+ hexagon_S2_cl1p, // llvm.hexagon.S2.cl1p
-+ hexagon_S2_clb, // llvm.hexagon.S2.clb
-+ hexagon_S2_clbnorm, // llvm.hexagon.S2.clbnorm
-+ hexagon_S2_clbp, // llvm.hexagon.S2.clbp
-+ hexagon_S2_clrbit_i, // llvm.hexagon.S2.clrbit.i
-+ hexagon_S2_clrbit_r, // llvm.hexagon.S2.clrbit.r
-+ hexagon_S2_ct0, // llvm.hexagon.S2.ct0
-+ hexagon_S2_ct0p, // llvm.hexagon.S2.ct0p
-+ hexagon_S2_ct1, // llvm.hexagon.S2.ct1
-+ hexagon_S2_ct1p, // llvm.hexagon.S2.ct1p
-+ hexagon_S2_deinterleave, // llvm.hexagon.S2.deinterleave
-+ hexagon_S2_extractu, // llvm.hexagon.S2.extractu
-+ hexagon_S2_extractu_rp, // llvm.hexagon.S2.extractu.rp
-+ hexagon_S2_extractup, // llvm.hexagon.S2.extractup
-+ hexagon_S2_extractup_rp, // llvm.hexagon.S2.extractup.rp
-+ hexagon_S2_insert, // llvm.hexagon.S2.insert
-+ hexagon_S2_insert_rp, // llvm.hexagon.S2.insert.rp
-+ hexagon_S2_insertp, // llvm.hexagon.S2.insertp
-+ hexagon_S2_insertp_rp, // llvm.hexagon.S2.insertp.rp
-+ hexagon_S2_interleave, // llvm.hexagon.S2.interleave
-+ hexagon_S2_lfsp, // llvm.hexagon.S2.lfsp
-+ hexagon_S2_lsl_r_p, // llvm.hexagon.S2.lsl.r.p
-+ hexagon_S2_lsl_r_p_acc, // llvm.hexagon.S2.lsl.r.p.acc
-+ hexagon_S2_lsl_r_p_and, // llvm.hexagon.S2.lsl.r.p.and
-+ hexagon_S2_lsl_r_p_nac, // llvm.hexagon.S2.lsl.r.p.nac
-+ hexagon_S2_lsl_r_p_or, // llvm.hexagon.S2.lsl.r.p.or
-+ hexagon_S2_lsl_r_p_xor, // llvm.hexagon.S2.lsl.r.p.xor
-+ hexagon_S2_lsl_r_r, // llvm.hexagon.S2.lsl.r.r
-+ hexagon_S2_lsl_r_r_acc, // llvm.hexagon.S2.lsl.r.r.acc
-+ hexagon_S2_lsl_r_r_and, // llvm.hexagon.S2.lsl.r.r.and
-+ hexagon_S2_lsl_r_r_nac, // llvm.hexagon.S2.lsl.r.r.nac
-+ hexagon_S2_lsl_r_r_or, // llvm.hexagon.S2.lsl.r.r.or
-+ hexagon_S2_lsl_r_vh, // llvm.hexagon.S2.lsl.r.vh
-+ hexagon_S2_lsl_r_vw, // llvm.hexagon.S2.lsl.r.vw
-+ hexagon_S2_lsr_i_p, // llvm.hexagon.S2.lsr.i.p
-+ hexagon_S2_lsr_i_p_acc, // llvm.hexagon.S2.lsr.i.p.acc
-+ hexagon_S2_lsr_i_p_and, // llvm.hexagon.S2.lsr.i.p.and
-+ hexagon_S2_lsr_i_p_nac, // llvm.hexagon.S2.lsr.i.p.nac
-+ hexagon_S2_lsr_i_p_or, // llvm.hexagon.S2.lsr.i.p.or
-+ hexagon_S2_lsr_i_p_xacc, // llvm.hexagon.S2.lsr.i.p.xacc
-+ hexagon_S2_lsr_i_r, // llvm.hexagon.S2.lsr.i.r
-+ hexagon_S2_lsr_i_r_acc, // llvm.hexagon.S2.lsr.i.r.acc
-+ hexagon_S2_lsr_i_r_and, // llvm.hexagon.S2.lsr.i.r.and
-+ hexagon_S2_lsr_i_r_nac, // llvm.hexagon.S2.lsr.i.r.nac
-+ hexagon_S2_lsr_i_r_or, // llvm.hexagon.S2.lsr.i.r.or
-+ hexagon_S2_lsr_i_r_xacc, // llvm.hexagon.S2.lsr.i.r.xacc
-+ hexagon_S2_lsr_i_vh, // llvm.hexagon.S2.lsr.i.vh
-+ hexagon_S2_lsr_i_vw, // llvm.hexagon.S2.lsr.i.vw
-+ hexagon_S2_lsr_r_p, // llvm.hexagon.S2.lsr.r.p
-+ hexagon_S2_lsr_r_p_acc, // llvm.hexagon.S2.lsr.r.p.acc
-+ hexagon_S2_lsr_r_p_and, // llvm.hexagon.S2.lsr.r.p.and
-+ hexagon_S2_lsr_r_p_nac, // llvm.hexagon.S2.lsr.r.p.nac
-+ hexagon_S2_lsr_r_p_or, // llvm.hexagon.S2.lsr.r.p.or
-+ hexagon_S2_lsr_r_p_xor, // llvm.hexagon.S2.lsr.r.p.xor
-+ hexagon_S2_lsr_r_r, // llvm.hexagon.S2.lsr.r.r
-+ hexagon_S2_lsr_r_r_acc, // llvm.hexagon.S2.lsr.r.r.acc
-+ hexagon_S2_lsr_r_r_and, // llvm.hexagon.S2.lsr.r.r.and
-+ hexagon_S2_lsr_r_r_nac, // llvm.hexagon.S2.lsr.r.r.nac
-+ hexagon_S2_lsr_r_r_or, // llvm.hexagon.S2.lsr.r.r.or
-+ hexagon_S2_lsr_r_vh, // llvm.hexagon.S2.lsr.r.vh
-+ hexagon_S2_lsr_r_vw, // llvm.hexagon.S2.lsr.r.vw
-+ hexagon_S2_packhl, // llvm.hexagon.S2.packhl
-+ hexagon_S2_parityp, // llvm.hexagon.S2.parityp
-+ hexagon_S2_setbit_i, // llvm.hexagon.S2.setbit.i
-+ hexagon_S2_setbit_r, // llvm.hexagon.S2.setbit.r
-+ hexagon_S2_shuffeb, // llvm.hexagon.S2.shuffeb
-+ hexagon_S2_shuffeh, // llvm.hexagon.S2.shuffeh
-+ hexagon_S2_shuffob, // llvm.hexagon.S2.shuffob
-+ hexagon_S2_shuffoh, // llvm.hexagon.S2.shuffoh
-+ hexagon_S2_storew_locked, // llvm.hexagon.S2.storew.locked
-+ hexagon_S2_svsathb, // llvm.hexagon.S2.svsathb
-+ hexagon_S2_svsathub, // llvm.hexagon.S2.svsathub
-+ hexagon_S2_tableidxb_goodsyntax, // llvm.hexagon.S2.tableidxb.goodsyntax
-+ hexagon_S2_tableidxd_goodsyntax, // llvm.hexagon.S2.tableidxd.goodsyntax
-+ hexagon_S2_tableidxh_goodsyntax, // llvm.hexagon.S2.tableidxh.goodsyntax
-+ hexagon_S2_tableidxw_goodsyntax, // llvm.hexagon.S2.tableidxw.goodsyntax
-+ hexagon_S2_togglebit_i, // llvm.hexagon.S2.togglebit.i
-+ hexagon_S2_togglebit_r, // llvm.hexagon.S2.togglebit.r
-+ hexagon_S2_tstbit_i, // llvm.hexagon.S2.tstbit.i
-+ hexagon_S2_tstbit_r, // llvm.hexagon.S2.tstbit.r
-+ hexagon_S2_valignib, // llvm.hexagon.S2.valignib
-+ hexagon_S2_valignrb, // llvm.hexagon.S2.valignrb
-+ hexagon_S2_vcnegh, // llvm.hexagon.S2.vcnegh
-+ hexagon_S2_vcrotate, // llvm.hexagon.S2.vcrotate
-+ hexagon_S2_vrcnegh, // llvm.hexagon.S2.vrcnegh
-+ hexagon_S2_vrndpackwh, // llvm.hexagon.S2.vrndpackwh
-+ hexagon_S2_vrndpackwhs, // llvm.hexagon.S2.vrndpackwhs
-+ hexagon_S2_vsathb, // llvm.hexagon.S2.vsathb
-+ hexagon_S2_vsathb_nopack, // llvm.hexagon.S2.vsathb.nopack
-+ hexagon_S2_vsathub, // llvm.hexagon.S2.vsathub
-+ hexagon_S2_vsathub_nopack, // llvm.hexagon.S2.vsathub.nopack
-+ hexagon_S2_vsatwh, // llvm.hexagon.S2.vsatwh
-+ hexagon_S2_vsatwh_nopack, // llvm.hexagon.S2.vsatwh.nopack
-+ hexagon_S2_vsatwuh, // llvm.hexagon.S2.vsatwuh
-+ hexagon_S2_vsatwuh_nopack, // llvm.hexagon.S2.vsatwuh.nopack
-+ hexagon_S2_vsplatrb, // llvm.hexagon.S2.vsplatrb
-+ hexagon_S2_vsplatrh, // llvm.hexagon.S2.vsplatrh
-+ hexagon_S2_vspliceib, // llvm.hexagon.S2.vspliceib
-+ hexagon_S2_vsplicerb, // llvm.hexagon.S2.vsplicerb
-+ hexagon_S2_vsxtbh, // llvm.hexagon.S2.vsxtbh
-+ hexagon_S2_vsxthw, // llvm.hexagon.S2.vsxthw
-+ hexagon_S2_vtrunehb, // llvm.hexagon.S2.vtrunehb
-+ hexagon_S2_vtrunewh, // llvm.hexagon.S2.vtrunewh
-+ hexagon_S2_vtrunohb, // llvm.hexagon.S2.vtrunohb
-+ hexagon_S2_vtrunowh, // llvm.hexagon.S2.vtrunowh
-+ hexagon_S2_vzxtbh, // llvm.hexagon.S2.vzxtbh
-+ hexagon_S2_vzxthw, // llvm.hexagon.S2.vzxthw
-+ hexagon_S4_addaddi, // llvm.hexagon.S4.addaddi
-+ hexagon_S4_addi_asl_ri, // llvm.hexagon.S4.addi.asl.ri
-+ hexagon_S4_addi_lsr_ri, // llvm.hexagon.S4.addi.lsr.ri
-+ hexagon_S4_andi_asl_ri, // llvm.hexagon.S4.andi.asl.ri
-+ hexagon_S4_andi_lsr_ri, // llvm.hexagon.S4.andi.lsr.ri
-+ hexagon_S4_clbaddi, // llvm.hexagon.S4.clbaddi
-+ hexagon_S4_clbpaddi, // llvm.hexagon.S4.clbpaddi
-+ hexagon_S4_clbpnorm, // llvm.hexagon.S4.clbpnorm
-+ hexagon_S4_extract, // llvm.hexagon.S4.extract
-+ hexagon_S4_extract_rp, // llvm.hexagon.S4.extract.rp
-+ hexagon_S4_extractp, // llvm.hexagon.S4.extractp
-+ hexagon_S4_extractp_rp, // llvm.hexagon.S4.extractp.rp
-+ hexagon_S4_lsli, // llvm.hexagon.S4.lsli
-+ hexagon_S4_ntstbit_i, // llvm.hexagon.S4.ntstbit.i
-+ hexagon_S4_ntstbit_r, // llvm.hexagon.S4.ntstbit.r
-+ hexagon_S4_or_andi, // llvm.hexagon.S4.or.andi
-+ hexagon_S4_or_andix, // llvm.hexagon.S4.or.andix
-+ hexagon_S4_or_ori, // llvm.hexagon.S4.or.ori
-+ hexagon_S4_ori_asl_ri, // llvm.hexagon.S4.ori.asl.ri
-+ hexagon_S4_ori_lsr_ri, // llvm.hexagon.S4.ori.lsr.ri
-+ hexagon_S4_parity, // llvm.hexagon.S4.parity
-+ hexagon_S4_stored_locked, // llvm.hexagon.S4.stored.locked
-+ hexagon_S4_subaddi, // llvm.hexagon.S4.subaddi
-+ hexagon_S4_subi_asl_ri, // llvm.hexagon.S4.subi.asl.ri
-+ hexagon_S4_subi_lsr_ri, // llvm.hexagon.S4.subi.lsr.ri
-+ hexagon_S4_vrcrotate, // llvm.hexagon.S4.vrcrotate
-+ hexagon_S4_vrcrotate_acc, // llvm.hexagon.S4.vrcrotate.acc
-+ hexagon_S4_vxaddsubh, // llvm.hexagon.S4.vxaddsubh
-+ hexagon_S4_vxaddsubhr, // llvm.hexagon.S4.vxaddsubhr
-+ hexagon_S4_vxaddsubw, // llvm.hexagon.S4.vxaddsubw
-+ hexagon_S4_vxsubaddh, // llvm.hexagon.S4.vxsubaddh
-+ hexagon_S4_vxsubaddhr, // llvm.hexagon.S4.vxsubaddhr
-+ hexagon_S4_vxsubaddw, // llvm.hexagon.S4.vxsubaddw
-+ hexagon_S5_asrhub_rnd_sat_goodsyntax, // llvm.hexagon.S5.asrhub.rnd.sat.goodsyntax
-+ hexagon_S5_asrhub_sat, // llvm.hexagon.S5.asrhub.sat
-+ hexagon_S5_popcountp, // llvm.hexagon.S5.popcountp
-+ hexagon_S5_vasrhrnd_goodsyntax, // llvm.hexagon.S5.vasrhrnd.goodsyntax
-+ hexagon_S6_rol_i_p, // llvm.hexagon.S6.rol.i.p
-+ hexagon_S6_rol_i_p_acc, // llvm.hexagon.S6.rol.i.p.acc
-+ hexagon_S6_rol_i_p_and, // llvm.hexagon.S6.rol.i.p.and
-+ hexagon_S6_rol_i_p_nac, // llvm.hexagon.S6.rol.i.p.nac
-+ hexagon_S6_rol_i_p_or, // llvm.hexagon.S6.rol.i.p.or
-+ hexagon_S6_rol_i_p_xacc, // llvm.hexagon.S6.rol.i.p.xacc
-+ hexagon_S6_rol_i_r, // llvm.hexagon.S6.rol.i.r
-+ hexagon_S6_rol_i_r_acc, // llvm.hexagon.S6.rol.i.r.acc
-+ hexagon_S6_rol_i_r_and, // llvm.hexagon.S6.rol.i.r.and
-+ hexagon_S6_rol_i_r_nac, // llvm.hexagon.S6.rol.i.r.nac
-+ hexagon_S6_rol_i_r_or, // llvm.hexagon.S6.rol.i.r.or
-+ hexagon_S6_rol_i_r_xacc, // llvm.hexagon.S6.rol.i.r.xacc
-+ hexagon_S6_vsplatrbp, // llvm.hexagon.S6.vsplatrbp
-+ hexagon_S6_vtrunehb_ppp, // llvm.hexagon.S6.vtrunehb.ppp
-+ hexagon_S6_vtrunohb_ppp, // llvm.hexagon.S6.vtrunohb.ppp
-+ hexagon_SI_to_SXTHI_asrh, // llvm.hexagon.SI.to.SXTHI.asrh
-+ hexagon_V6_extractw, // llvm.hexagon.V6.extractw
-+ hexagon_V6_extractw_128B, // llvm.hexagon.V6.extractw.128B
-+ hexagon_V6_hi, // llvm.hexagon.V6.hi
-+ hexagon_V6_hi_128B, // llvm.hexagon.V6.hi.128B
-+ hexagon_V6_lo, // llvm.hexagon.V6.lo
-+ hexagon_V6_lo_128B, // llvm.hexagon.V6.lo.128B
-+ hexagon_V6_lvsplatw, // llvm.hexagon.V6.lvsplatw
-+ hexagon_V6_lvsplatw_128B, // llvm.hexagon.V6.lvsplatw.128B
-+ hexagon_V6_pred_and, // llvm.hexagon.V6.pred.and
-+ hexagon_V6_pred_and_128B, // llvm.hexagon.V6.pred.and.128B
-+ hexagon_V6_pred_and_n, // llvm.hexagon.V6.pred.and.n
-+ hexagon_V6_pred_and_n_128B, // llvm.hexagon.V6.pred.and.n.128B
-+ hexagon_V6_pred_not, // llvm.hexagon.V6.pred.not
-+ hexagon_V6_pred_not_128B, // llvm.hexagon.V6.pred.not.128B
-+ hexagon_V6_pred_or, // llvm.hexagon.V6.pred.or
-+ hexagon_V6_pred_or_128B, // llvm.hexagon.V6.pred.or.128B
-+ hexagon_V6_pred_or_n, // llvm.hexagon.V6.pred.or.n
-+ hexagon_V6_pred_or_n_128B, // llvm.hexagon.V6.pred.or.n.128B
-+ hexagon_V6_pred_scalar2, // llvm.hexagon.V6.pred.scalar2
-+ hexagon_V6_pred_scalar2_128B, // llvm.hexagon.V6.pred.scalar2.128B
-+ hexagon_V6_pred_xor, // llvm.hexagon.V6.pred.xor
-+ hexagon_V6_pred_xor_128B, // llvm.hexagon.V6.pred.xor.128B
-+ hexagon_V6_vabsdiffh, // llvm.hexagon.V6.vabsdiffh
-+ hexagon_V6_vabsdiffh_128B, // llvm.hexagon.V6.vabsdiffh.128B
-+ hexagon_V6_vabsdiffub, // llvm.hexagon.V6.vabsdiffub
-+ hexagon_V6_vabsdiffub_128B, // llvm.hexagon.V6.vabsdiffub.128B
-+ hexagon_V6_vabsdiffuh, // llvm.hexagon.V6.vabsdiffuh
-+ hexagon_V6_vabsdiffuh_128B, // llvm.hexagon.V6.vabsdiffuh.128B
-+ hexagon_V6_vabsdiffw, // llvm.hexagon.V6.vabsdiffw
-+ hexagon_V6_vabsdiffw_128B, // llvm.hexagon.V6.vabsdiffw.128B
-+ hexagon_V6_vabsh, // llvm.hexagon.V6.vabsh
-+ hexagon_V6_vabsh_128B, // llvm.hexagon.V6.vabsh.128B
-+ hexagon_V6_vabsh_sat, // llvm.hexagon.V6.vabsh.sat
-+ hexagon_V6_vabsh_sat_128B, // llvm.hexagon.V6.vabsh.sat.128B
-+ hexagon_V6_vabsw, // llvm.hexagon.V6.vabsw
-+ hexagon_V6_vabsw_128B, // llvm.hexagon.V6.vabsw.128B
-+ hexagon_V6_vabsw_sat, // llvm.hexagon.V6.vabsw.sat
-+ hexagon_V6_vabsw_sat_128B, // llvm.hexagon.V6.vabsw.sat.128B
-+ hexagon_V6_vaddb, // llvm.hexagon.V6.vaddb
-+ hexagon_V6_vaddb_128B, // llvm.hexagon.V6.vaddb.128B
-+ hexagon_V6_vaddb_dv, // llvm.hexagon.V6.vaddb.dv
-+ hexagon_V6_vaddb_dv_128B, // llvm.hexagon.V6.vaddb.dv.128B
-+ hexagon_V6_vaddbnq, // llvm.hexagon.V6.vaddbnq
-+ hexagon_V6_vaddbnq_128B, // llvm.hexagon.V6.vaddbnq.128B
-+ hexagon_V6_vaddbq, // llvm.hexagon.V6.vaddbq
-+ hexagon_V6_vaddbq_128B, // llvm.hexagon.V6.vaddbq.128B
-+ hexagon_V6_vaddh, // llvm.hexagon.V6.vaddh
-+ hexagon_V6_vaddh_128B, // llvm.hexagon.V6.vaddh.128B
-+ hexagon_V6_vaddh_dv, // llvm.hexagon.V6.vaddh.dv
-+ hexagon_V6_vaddh_dv_128B, // llvm.hexagon.V6.vaddh.dv.128B
-+ hexagon_V6_vaddhnq, // llvm.hexagon.V6.vaddhnq
-+ hexagon_V6_vaddhnq_128B, // llvm.hexagon.V6.vaddhnq.128B
-+ hexagon_V6_vaddhq, // llvm.hexagon.V6.vaddhq
-+ hexagon_V6_vaddhq_128B, // llvm.hexagon.V6.vaddhq.128B
-+ hexagon_V6_vaddhsat, // llvm.hexagon.V6.vaddhsat
-+ hexagon_V6_vaddhsat_128B, // llvm.hexagon.V6.vaddhsat.128B
-+ hexagon_V6_vaddhsat_dv, // llvm.hexagon.V6.vaddhsat.dv
-+ hexagon_V6_vaddhsat_dv_128B, // llvm.hexagon.V6.vaddhsat.dv.128B
-+ hexagon_V6_vaddhw, // llvm.hexagon.V6.vaddhw
-+ hexagon_V6_vaddhw_128B, // llvm.hexagon.V6.vaddhw.128B
-+ hexagon_V6_vaddubh, // llvm.hexagon.V6.vaddubh
-+ hexagon_V6_vaddubh_128B, // llvm.hexagon.V6.vaddubh.128B
-+ hexagon_V6_vaddubsat, // llvm.hexagon.V6.vaddubsat
-+ hexagon_V6_vaddubsat_128B, // llvm.hexagon.V6.vaddubsat.128B
-+ hexagon_V6_vaddubsat_dv, // llvm.hexagon.V6.vaddubsat.dv
-+ hexagon_V6_vaddubsat_dv_128B, // llvm.hexagon.V6.vaddubsat.dv.128B
-+ hexagon_V6_vadduhsat, // llvm.hexagon.V6.vadduhsat
-+ hexagon_V6_vadduhsat_128B, // llvm.hexagon.V6.vadduhsat.128B
-+ hexagon_V6_vadduhsat_dv, // llvm.hexagon.V6.vadduhsat.dv
-+ hexagon_V6_vadduhsat_dv_128B, // llvm.hexagon.V6.vadduhsat.dv.128B
-+ hexagon_V6_vadduhw, // llvm.hexagon.V6.vadduhw
-+ hexagon_V6_vadduhw_128B, // llvm.hexagon.V6.vadduhw.128B
-+ hexagon_V6_vaddw, // llvm.hexagon.V6.vaddw
-+ hexagon_V6_vaddw_128B, // llvm.hexagon.V6.vaddw.128B
-+ hexagon_V6_vaddw_dv, // llvm.hexagon.V6.vaddw.dv
-+ hexagon_V6_vaddw_dv_128B, // llvm.hexagon.V6.vaddw.dv.128B
-+ hexagon_V6_vaddwnq, // llvm.hexagon.V6.vaddwnq
-+ hexagon_V6_vaddwnq_128B, // llvm.hexagon.V6.vaddwnq.128B
-+ hexagon_V6_vaddwq, // llvm.hexagon.V6.vaddwq
-+ hexagon_V6_vaddwq_128B, // llvm.hexagon.V6.vaddwq.128B
-+ hexagon_V6_vaddwsat, // llvm.hexagon.V6.vaddwsat
-+ hexagon_V6_vaddwsat_128B, // llvm.hexagon.V6.vaddwsat.128B
-+ hexagon_V6_vaddwsat_dv, // llvm.hexagon.V6.vaddwsat.dv
-+ hexagon_V6_vaddwsat_dv_128B, // llvm.hexagon.V6.vaddwsat.dv.128B
-+ hexagon_V6_valignb, // llvm.hexagon.V6.valignb
-+ hexagon_V6_valignb_128B, // llvm.hexagon.V6.valignb.128B
-+ hexagon_V6_valignbi, // llvm.hexagon.V6.valignbi
-+ hexagon_V6_valignbi_128B, // llvm.hexagon.V6.valignbi.128B
-+ hexagon_V6_vand, // llvm.hexagon.V6.vand
-+ hexagon_V6_vand_128B, // llvm.hexagon.V6.vand.128B
-+ hexagon_V6_vandqrt, // llvm.hexagon.V6.vandqrt
-+ hexagon_V6_vandqrt_128B, // llvm.hexagon.V6.vandqrt.128B
-+ hexagon_V6_vandqrt_acc, // llvm.hexagon.V6.vandqrt.acc
-+ hexagon_V6_vandqrt_acc_128B, // llvm.hexagon.V6.vandqrt.acc.128B
-+ hexagon_V6_vandvrt, // llvm.hexagon.V6.vandvrt
-+ hexagon_V6_vandvrt_128B, // llvm.hexagon.V6.vandvrt.128B
-+ hexagon_V6_vandvrt_acc, // llvm.hexagon.V6.vandvrt.acc
-+ hexagon_V6_vandvrt_acc_128B, // llvm.hexagon.V6.vandvrt.acc.128B
-+ hexagon_V6_vaslh, // llvm.hexagon.V6.vaslh
-+ hexagon_V6_vaslh_128B, // llvm.hexagon.V6.vaslh.128B
-+ hexagon_V6_vaslhv, // llvm.hexagon.V6.vaslhv
-+ hexagon_V6_vaslhv_128B, // llvm.hexagon.V6.vaslhv.128B
-+ hexagon_V6_vaslw, // llvm.hexagon.V6.vaslw
-+ hexagon_V6_vaslw_128B, // llvm.hexagon.V6.vaslw.128B
-+ hexagon_V6_vaslw_acc, // llvm.hexagon.V6.vaslw.acc
-+ hexagon_V6_vaslw_acc_128B, // llvm.hexagon.V6.vaslw.acc.128B
-+ hexagon_V6_vaslwv, // llvm.hexagon.V6.vaslwv
-+ hexagon_V6_vaslwv_128B, // llvm.hexagon.V6.vaslwv.128B
-+ hexagon_V6_vasrh, // llvm.hexagon.V6.vasrh
-+ hexagon_V6_vasrh_128B, // llvm.hexagon.V6.vasrh.128B
-+ hexagon_V6_vasrhbrndsat, // llvm.hexagon.V6.vasrhbrndsat
-+ hexagon_V6_vasrhbrndsat_128B, // llvm.hexagon.V6.vasrhbrndsat.128B
-+ hexagon_V6_vasrhubrndsat, // llvm.hexagon.V6.vasrhubrndsat
-+ hexagon_V6_vasrhubrndsat_128B, // llvm.hexagon.V6.vasrhubrndsat.128B
-+ hexagon_V6_vasrhubsat, // llvm.hexagon.V6.vasrhubsat
-+ hexagon_V6_vasrhubsat_128B, // llvm.hexagon.V6.vasrhubsat.128B
-+ hexagon_V6_vasrhv, // llvm.hexagon.V6.vasrhv
-+ hexagon_V6_vasrhv_128B, // llvm.hexagon.V6.vasrhv.128B
-+ hexagon_V6_vasrw, // llvm.hexagon.V6.vasrw
-+ hexagon_V6_vasrw_128B, // llvm.hexagon.V6.vasrw.128B
-+ hexagon_V6_vasrw_acc, // llvm.hexagon.V6.vasrw.acc
-+ hexagon_V6_vasrw_acc_128B, // llvm.hexagon.V6.vasrw.acc.128B
-+ hexagon_V6_vasrwh, // llvm.hexagon.V6.vasrwh
-+ hexagon_V6_vasrwh_128B, // llvm.hexagon.V6.vasrwh.128B
-+ hexagon_V6_vasrwhrndsat, // llvm.hexagon.V6.vasrwhrndsat
-+ hexagon_V6_vasrwhrndsat_128B, // llvm.hexagon.V6.vasrwhrndsat.128B
-+ hexagon_V6_vasrwhsat, // llvm.hexagon.V6.vasrwhsat
-+ hexagon_V6_vasrwhsat_128B, // llvm.hexagon.V6.vasrwhsat.128B
-+ hexagon_V6_vasrwuhsat, // llvm.hexagon.V6.vasrwuhsat
-+ hexagon_V6_vasrwuhsat_128B, // llvm.hexagon.V6.vasrwuhsat.128B
-+ hexagon_V6_vasrwv, // llvm.hexagon.V6.vasrwv
-+ hexagon_V6_vasrwv_128B, // llvm.hexagon.V6.vasrwv.128B
-+ hexagon_V6_vassign, // llvm.hexagon.V6.vassign
-+ hexagon_V6_vassign_128B, // llvm.hexagon.V6.vassign.128B
-+ hexagon_V6_vassignp, // llvm.hexagon.V6.vassignp
-+ hexagon_V6_vassignp_128B, // llvm.hexagon.V6.vassignp.128B
-+ hexagon_V6_vavgh, // llvm.hexagon.V6.vavgh
-+ hexagon_V6_vavgh_128B, // llvm.hexagon.V6.vavgh.128B
-+ hexagon_V6_vavghrnd, // llvm.hexagon.V6.vavghrnd
-+ hexagon_V6_vavghrnd_128B, // llvm.hexagon.V6.vavghrnd.128B
-+ hexagon_V6_vavgub, // llvm.hexagon.V6.vavgub
-+ hexagon_V6_vavgub_128B, // llvm.hexagon.V6.vavgub.128B
-+ hexagon_V6_vavgubrnd, // llvm.hexagon.V6.vavgubrnd
-+ hexagon_V6_vavgubrnd_128B, // llvm.hexagon.V6.vavgubrnd.128B
-+ hexagon_V6_vavguh, // llvm.hexagon.V6.vavguh
-+ hexagon_V6_vavguh_128B, // llvm.hexagon.V6.vavguh.128B
-+ hexagon_V6_vavguhrnd, // llvm.hexagon.V6.vavguhrnd
-+ hexagon_V6_vavguhrnd_128B, // llvm.hexagon.V6.vavguhrnd.128B
-+ hexagon_V6_vavgw, // llvm.hexagon.V6.vavgw
-+ hexagon_V6_vavgw_128B, // llvm.hexagon.V6.vavgw.128B
-+ hexagon_V6_vavgwrnd, // llvm.hexagon.V6.vavgwrnd
-+ hexagon_V6_vavgwrnd_128B, // llvm.hexagon.V6.vavgwrnd.128B
-+ hexagon_V6_vcl0h, // llvm.hexagon.V6.vcl0h
-+ hexagon_V6_vcl0h_128B, // llvm.hexagon.V6.vcl0h.128B
-+ hexagon_V6_vcl0w, // llvm.hexagon.V6.vcl0w
-+ hexagon_V6_vcl0w_128B, // llvm.hexagon.V6.vcl0w.128B
-+ hexagon_V6_vcombine, // llvm.hexagon.V6.vcombine
-+ hexagon_V6_vcombine_128B, // llvm.hexagon.V6.vcombine.128B
-+ hexagon_V6_vd0, // llvm.hexagon.V6.vd0
-+ hexagon_V6_vd0_128B, // llvm.hexagon.V6.vd0.128B
-+ hexagon_V6_vdealb, // llvm.hexagon.V6.vdealb
-+ hexagon_V6_vdealb_128B, // llvm.hexagon.V6.vdealb.128B
-+ hexagon_V6_vdealb4w, // llvm.hexagon.V6.vdealb4w
-+ hexagon_V6_vdealb4w_128B, // llvm.hexagon.V6.vdealb4w.128B
-+ hexagon_V6_vdealh, // llvm.hexagon.V6.vdealh
-+ hexagon_V6_vdealh_128B, // llvm.hexagon.V6.vdealh.128B
-+ hexagon_V6_vdealvdd, // llvm.hexagon.V6.vdealvdd
-+ hexagon_V6_vdealvdd_128B, // llvm.hexagon.V6.vdealvdd.128B
-+ hexagon_V6_vdelta, // llvm.hexagon.V6.vdelta
-+ hexagon_V6_vdelta_128B, // llvm.hexagon.V6.vdelta.128B
-+ hexagon_V6_vdmpybus, // llvm.hexagon.V6.vdmpybus
-+ hexagon_V6_vdmpybus_128B, // llvm.hexagon.V6.vdmpybus.128B
-+ hexagon_V6_vdmpybus_acc, // llvm.hexagon.V6.vdmpybus.acc
-+ hexagon_V6_vdmpybus_acc_128B, // llvm.hexagon.V6.vdmpybus.acc.128B
-+ hexagon_V6_vdmpybus_dv, // llvm.hexagon.V6.vdmpybus.dv
-+ hexagon_V6_vdmpybus_dv_128B, // llvm.hexagon.V6.vdmpybus.dv.128B
-+ hexagon_V6_vdmpybus_dv_acc, // llvm.hexagon.V6.vdmpybus.dv.acc
-+ hexagon_V6_vdmpybus_dv_acc_128B, // llvm.hexagon.V6.vdmpybus.dv.acc.128B
-+ hexagon_V6_vdmpyhb, // llvm.hexagon.V6.vdmpyhb
-+ hexagon_V6_vdmpyhb_128B, // llvm.hexagon.V6.vdmpyhb.128B
-+ hexagon_V6_vdmpyhb_acc, // llvm.hexagon.V6.vdmpyhb.acc
-+ hexagon_V6_vdmpyhb_acc_128B, // llvm.hexagon.V6.vdmpyhb.acc.128B
-+ hexagon_V6_vdmpyhb_dv, // llvm.hexagon.V6.vdmpyhb.dv
-+ hexagon_V6_vdmpyhb_dv_128B, // llvm.hexagon.V6.vdmpyhb.dv.128B
-+ hexagon_V6_vdmpyhb_dv_acc, // llvm.hexagon.V6.vdmpyhb.dv.acc
-+ hexagon_V6_vdmpyhb_dv_acc_128B, // llvm.hexagon.V6.vdmpyhb.dv.acc.128B
-+ hexagon_V6_vdmpyhisat, // llvm.hexagon.V6.vdmpyhisat
-+ hexagon_V6_vdmpyhisat_128B, // llvm.hexagon.V6.vdmpyhisat.128B
-+ hexagon_V6_vdmpyhisat_acc, // llvm.hexagon.V6.vdmpyhisat.acc
-+ hexagon_V6_vdmpyhisat_acc_128B, // llvm.hexagon.V6.vdmpyhisat.acc.128B
-+ hexagon_V6_vdmpyhsat, // llvm.hexagon.V6.vdmpyhsat
-+ hexagon_V6_vdmpyhsat_128B, // llvm.hexagon.V6.vdmpyhsat.128B
-+ hexagon_V6_vdmpyhsat_acc, // llvm.hexagon.V6.vdmpyhsat.acc
-+ hexagon_V6_vdmpyhsat_acc_128B, // llvm.hexagon.V6.vdmpyhsat.acc.128B
-+ hexagon_V6_vdmpyhsuisat, // llvm.hexagon.V6.vdmpyhsuisat
-+ hexagon_V6_vdmpyhsuisat_128B, // llvm.hexagon.V6.vdmpyhsuisat.128B
-+ hexagon_V6_vdmpyhsuisat_acc, // llvm.hexagon.V6.vdmpyhsuisat.acc
-+ hexagon_V6_vdmpyhsuisat_acc_128B, // llvm.hexagon.V6.vdmpyhsuisat.acc.128B
-+ hexagon_V6_vdmpyhsusat, // llvm.hexagon.V6.vdmpyhsusat
-+ hexagon_V6_vdmpyhsusat_128B, // llvm.hexagon.V6.vdmpyhsusat.128B
-+ hexagon_V6_vdmpyhsusat_acc, // llvm.hexagon.V6.vdmpyhsusat.acc
-+ hexagon_V6_vdmpyhsusat_acc_128B, // llvm.hexagon.V6.vdmpyhsusat.acc.128B
-+ hexagon_V6_vdmpyhvsat, // llvm.hexagon.V6.vdmpyhvsat
-+ hexagon_V6_vdmpyhvsat_128B, // llvm.hexagon.V6.vdmpyhvsat.128B
-+ hexagon_V6_vdmpyhvsat_acc, // llvm.hexagon.V6.vdmpyhvsat.acc
-+ hexagon_V6_vdmpyhvsat_acc_128B, // llvm.hexagon.V6.vdmpyhvsat.acc.128B
-+ hexagon_V6_vdsaduh, // llvm.hexagon.V6.vdsaduh
-+ hexagon_V6_vdsaduh_128B, // llvm.hexagon.V6.vdsaduh.128B
-+ hexagon_V6_vdsaduh_acc, // llvm.hexagon.V6.vdsaduh.acc
-+ hexagon_V6_vdsaduh_acc_128B, // llvm.hexagon.V6.vdsaduh.acc.128B
-+ hexagon_V6_veqb, // llvm.hexagon.V6.veqb
-+ hexagon_V6_veqb_128B, // llvm.hexagon.V6.veqb.128B
-+ hexagon_V6_veqb_and, // llvm.hexagon.V6.veqb.and
-+ hexagon_V6_veqb_and_128B, // llvm.hexagon.V6.veqb.and.128B
-+ hexagon_V6_veqb_or, // llvm.hexagon.V6.veqb.or
-+ hexagon_V6_veqb_or_128B, // llvm.hexagon.V6.veqb.or.128B
-+ hexagon_V6_veqb_xor, // llvm.hexagon.V6.veqb.xor
-+ hexagon_V6_veqb_xor_128B, // llvm.hexagon.V6.veqb.xor.128B
-+ hexagon_V6_veqh, // llvm.hexagon.V6.veqh
-+ hexagon_V6_veqh_128B, // llvm.hexagon.V6.veqh.128B
-+ hexagon_V6_veqh_and, // llvm.hexagon.V6.veqh.and
-+ hexagon_V6_veqh_and_128B, // llvm.hexagon.V6.veqh.and.128B
-+ hexagon_V6_veqh_or, // llvm.hexagon.V6.veqh.or
-+ hexagon_V6_veqh_or_128B, // llvm.hexagon.V6.veqh.or.128B
-+ hexagon_V6_veqh_xor, // llvm.hexagon.V6.veqh.xor
-+ hexagon_V6_veqh_xor_128B, // llvm.hexagon.V6.veqh.xor.128B
-+ hexagon_V6_veqw, // llvm.hexagon.V6.veqw
-+ hexagon_V6_veqw_128B, // llvm.hexagon.V6.veqw.128B
-+ hexagon_V6_veqw_and, // llvm.hexagon.V6.veqw.and
-+ hexagon_V6_veqw_and_128B, // llvm.hexagon.V6.veqw.and.128B
-+ hexagon_V6_veqw_or, // llvm.hexagon.V6.veqw.or
-+ hexagon_V6_veqw_or_128B, // llvm.hexagon.V6.veqw.or.128B
-+ hexagon_V6_veqw_xor, // llvm.hexagon.V6.veqw.xor
-+ hexagon_V6_veqw_xor_128B, // llvm.hexagon.V6.veqw.xor.128B
-+ hexagon_V6_vgtb, // llvm.hexagon.V6.vgtb
-+ hexagon_V6_vgtb_128B, // llvm.hexagon.V6.vgtb.128B
-+ hexagon_V6_vgtb_and, // llvm.hexagon.V6.vgtb.and
-+ hexagon_V6_vgtb_and_128B, // llvm.hexagon.V6.vgtb.and.128B
-+ hexagon_V6_vgtb_or, // llvm.hexagon.V6.vgtb.or
-+ hexagon_V6_vgtb_or_128B, // llvm.hexagon.V6.vgtb.or.128B
-+ hexagon_V6_vgtb_xor, // llvm.hexagon.V6.vgtb.xor
-+ hexagon_V6_vgtb_xor_128B, // llvm.hexagon.V6.vgtb.xor.128B
-+ hexagon_V6_vgth, // llvm.hexagon.V6.vgth
-+ hexagon_V6_vgth_128B, // llvm.hexagon.V6.vgth.128B
-+ hexagon_V6_vgth_and, // llvm.hexagon.V6.vgth.and
-+ hexagon_V6_vgth_and_128B, // llvm.hexagon.V6.vgth.and.128B
-+ hexagon_V6_vgth_or, // llvm.hexagon.V6.vgth.or
-+ hexagon_V6_vgth_or_128B, // llvm.hexagon.V6.vgth.or.128B
-+ hexagon_V6_vgth_xor, // llvm.hexagon.V6.vgth.xor
-+ hexagon_V6_vgth_xor_128B, // llvm.hexagon.V6.vgth.xor.128B
-+ hexagon_V6_vgtub, // llvm.hexagon.V6.vgtub
-+ hexagon_V6_vgtub_128B, // llvm.hexagon.V6.vgtub.128B
-+ hexagon_V6_vgtub_and, // llvm.hexagon.V6.vgtub.and
-+ hexagon_V6_vgtub_and_128B, // llvm.hexagon.V6.vgtub.and.128B
-+ hexagon_V6_vgtub_or, // llvm.hexagon.V6.vgtub.or
-+ hexagon_V6_vgtub_or_128B, // llvm.hexagon.V6.vgtub.or.128B
-+ hexagon_V6_vgtub_xor, // llvm.hexagon.V6.vgtub.xor
-+ hexagon_V6_vgtub_xor_128B, // llvm.hexagon.V6.vgtub.xor.128B
-+ hexagon_V6_vgtuh, // llvm.hexagon.V6.vgtuh
-+ hexagon_V6_vgtuh_128B, // llvm.hexagon.V6.vgtuh.128B
-+ hexagon_V6_vgtuh_and, // llvm.hexagon.V6.vgtuh.and
-+ hexagon_V6_vgtuh_and_128B, // llvm.hexagon.V6.vgtuh.and.128B
-+ hexagon_V6_vgtuh_or, // llvm.hexagon.V6.vgtuh.or
-+ hexagon_V6_vgtuh_or_128B, // llvm.hexagon.V6.vgtuh.or.128B
-+ hexagon_V6_vgtuh_xor, // llvm.hexagon.V6.vgtuh.xor
-+ hexagon_V6_vgtuh_xor_128B, // llvm.hexagon.V6.vgtuh.xor.128B
-+ hexagon_V6_vgtuw, // llvm.hexagon.V6.vgtuw
-+ hexagon_V6_vgtuw_128B, // llvm.hexagon.V6.vgtuw.128B
-+ hexagon_V6_vgtuw_and, // llvm.hexagon.V6.vgtuw.and
-+ hexagon_V6_vgtuw_and_128B, // llvm.hexagon.V6.vgtuw.and.128B
-+ hexagon_V6_vgtuw_or, // llvm.hexagon.V6.vgtuw.or
-+ hexagon_V6_vgtuw_or_128B, // llvm.hexagon.V6.vgtuw.or.128B
-+ hexagon_V6_vgtuw_xor, // llvm.hexagon.V6.vgtuw.xor
-+ hexagon_V6_vgtuw_xor_128B, // llvm.hexagon.V6.vgtuw.xor.128B
-+ hexagon_V6_vgtw, // llvm.hexagon.V6.vgtw
-+ hexagon_V6_vgtw_128B, // llvm.hexagon.V6.vgtw.128B
-+ hexagon_V6_vgtw_and, // llvm.hexagon.V6.vgtw.and
-+ hexagon_V6_vgtw_and_128B, // llvm.hexagon.V6.vgtw.and.128B
-+ hexagon_V6_vgtw_or, // llvm.hexagon.V6.vgtw.or
-+ hexagon_V6_vgtw_or_128B, // llvm.hexagon.V6.vgtw.or.128B
-+ hexagon_V6_vgtw_xor, // llvm.hexagon.V6.vgtw.xor
-+ hexagon_V6_vgtw_xor_128B, // llvm.hexagon.V6.vgtw.xor.128B
-+ hexagon_V6_vinsertwr, // llvm.hexagon.V6.vinsertwr
-+ hexagon_V6_vinsertwr_128B, // llvm.hexagon.V6.vinsertwr.128B
-+ hexagon_V6_vlalignb, // llvm.hexagon.V6.vlalignb
-+ hexagon_V6_vlalignb_128B, // llvm.hexagon.V6.vlalignb.128B
-+ hexagon_V6_vlalignbi, // llvm.hexagon.V6.vlalignbi
-+ hexagon_V6_vlalignbi_128B, // llvm.hexagon.V6.vlalignbi.128B
-+ hexagon_V6_vlsrh, // llvm.hexagon.V6.vlsrh
-+ hexagon_V6_vlsrh_128B, // llvm.hexagon.V6.vlsrh.128B
-+ hexagon_V6_vlsrhv, // llvm.hexagon.V6.vlsrhv
-+ hexagon_V6_vlsrhv_128B, // llvm.hexagon.V6.vlsrhv.128B
-+ hexagon_V6_vlsrw, // llvm.hexagon.V6.vlsrw
-+ hexagon_V6_vlsrw_128B, // llvm.hexagon.V6.vlsrw.128B
-+ hexagon_V6_vlsrwv, // llvm.hexagon.V6.vlsrwv
-+ hexagon_V6_vlsrwv_128B, // llvm.hexagon.V6.vlsrwv.128B
-+ hexagon_V6_vlutb, // llvm.hexagon.V6.vlutb
-+ hexagon_V6_vlutb_128B, // llvm.hexagon.V6.vlutb.128B
-+ hexagon_V6_vlutb_acc, // llvm.hexagon.V6.vlutb.acc
-+ hexagon_V6_vlutb_acc_128B, // llvm.hexagon.V6.vlutb.acc.128B
-+ hexagon_V6_vlutb_dv, // llvm.hexagon.V6.vlutb.dv
-+ hexagon_V6_vlutb_dv_128B, // llvm.hexagon.V6.vlutb.dv.128B
-+ hexagon_V6_vlutb_dv_acc, // llvm.hexagon.V6.vlutb.dv.acc
-+ hexagon_V6_vlutb_dv_acc_128B, // llvm.hexagon.V6.vlutb.dv.acc.128B
-+ hexagon_V6_vlutvvb, // llvm.hexagon.V6.vlutvvb
-+ hexagon_V6_vlutvvb_128B, // llvm.hexagon.V6.vlutvvb.128B
-+ hexagon_V6_vlutvvb_oracc, // llvm.hexagon.V6.vlutvvb.oracc
-+ hexagon_V6_vlutvvb_oracc_128B, // llvm.hexagon.V6.vlutvvb.oracc.128B
-+ hexagon_V6_vlutvwh, // llvm.hexagon.V6.vlutvwh
-+ hexagon_V6_vlutvwh_128B, // llvm.hexagon.V6.vlutvwh.128B
-+ hexagon_V6_vlutvwh_oracc, // llvm.hexagon.V6.vlutvwh.oracc
-+ hexagon_V6_vlutvwh_oracc_128B, // llvm.hexagon.V6.vlutvwh.oracc.128B
-+ hexagon_V6_vmaxh, // llvm.hexagon.V6.vmaxh
-+ hexagon_V6_vmaxh_128B, // llvm.hexagon.V6.vmaxh.128B
-+ hexagon_V6_vmaxub, // llvm.hexagon.V6.vmaxub
-+ hexagon_V6_vmaxub_128B, // llvm.hexagon.V6.vmaxub.128B
-+ hexagon_V6_vmaxuh, // llvm.hexagon.V6.vmaxuh
-+ hexagon_V6_vmaxuh_128B, // llvm.hexagon.V6.vmaxuh.128B
-+ hexagon_V6_vmaxw, // llvm.hexagon.V6.vmaxw
-+ hexagon_V6_vmaxw_128B, // llvm.hexagon.V6.vmaxw.128B
-+ hexagon_V6_vminh, // llvm.hexagon.V6.vminh
-+ hexagon_V6_vminh_128B, // llvm.hexagon.V6.vminh.128B
-+ hexagon_V6_vminub, // llvm.hexagon.V6.vminub
-+ hexagon_V6_vminub_128B, // llvm.hexagon.V6.vminub.128B
-+ hexagon_V6_vminuh, // llvm.hexagon.V6.vminuh
-+ hexagon_V6_vminuh_128B, // llvm.hexagon.V6.vminuh.128B
-+ hexagon_V6_vminw, // llvm.hexagon.V6.vminw
-+ hexagon_V6_vminw_128B, // llvm.hexagon.V6.vminw.128B
-+ hexagon_V6_vmpabus, // llvm.hexagon.V6.vmpabus
-+ hexagon_V6_vmpabus_128B, // llvm.hexagon.V6.vmpabus.128B
-+ hexagon_V6_vmpabus_acc, // llvm.hexagon.V6.vmpabus.acc
-+ hexagon_V6_vmpabus_acc_128B, // llvm.hexagon.V6.vmpabus.acc.128B
-+ hexagon_V6_vmpabusv, // llvm.hexagon.V6.vmpabusv
-+ hexagon_V6_vmpabusv_128B, // llvm.hexagon.V6.vmpabusv.128B
-+ hexagon_V6_vmpabuuv, // llvm.hexagon.V6.vmpabuuv
-+ hexagon_V6_vmpabuuv_128B, // llvm.hexagon.V6.vmpabuuv.128B
-+ hexagon_V6_vmpahb, // llvm.hexagon.V6.vmpahb
-+ hexagon_V6_vmpahb_128B, // llvm.hexagon.V6.vmpahb.128B
-+ hexagon_V6_vmpahb_acc, // llvm.hexagon.V6.vmpahb.acc
-+ hexagon_V6_vmpahb_acc_128B, // llvm.hexagon.V6.vmpahb.acc.128B
-+ hexagon_V6_vmpybus, // llvm.hexagon.V6.vmpybus
-+ hexagon_V6_vmpybus_128B, // llvm.hexagon.V6.vmpybus.128B
-+ hexagon_V6_vmpybus_acc, // llvm.hexagon.V6.vmpybus.acc
-+ hexagon_V6_vmpybus_acc_128B, // llvm.hexagon.V6.vmpybus.acc.128B
-+ hexagon_V6_vmpybusv, // llvm.hexagon.V6.vmpybusv
-+ hexagon_V6_vmpybusv_128B, // llvm.hexagon.V6.vmpybusv.128B
-+ hexagon_V6_vmpybusv_acc, // llvm.hexagon.V6.vmpybusv.acc
-+ hexagon_V6_vmpybusv_acc_128B, // llvm.hexagon.V6.vmpybusv.acc.128B
-+ hexagon_V6_vmpybv, // llvm.hexagon.V6.vmpybv
-+ hexagon_V6_vmpybv_128B, // llvm.hexagon.V6.vmpybv.128B
-+ hexagon_V6_vmpybv_acc, // llvm.hexagon.V6.vmpybv.acc
-+ hexagon_V6_vmpybv_acc_128B, // llvm.hexagon.V6.vmpybv.acc.128B
-+ hexagon_V6_vmpyewuh, // llvm.hexagon.V6.vmpyewuh
-+ hexagon_V6_vmpyewuh_128B, // llvm.hexagon.V6.vmpyewuh.128B
-+ hexagon_V6_vmpyh, // llvm.hexagon.V6.vmpyh
-+ hexagon_V6_vmpyh_128B, // llvm.hexagon.V6.vmpyh.128B
-+ hexagon_V6_vmpyhsat_acc, // llvm.hexagon.V6.vmpyhsat.acc
-+ hexagon_V6_vmpyhsat_acc_128B, // llvm.hexagon.V6.vmpyhsat.acc.128B
-+ hexagon_V6_vmpyhsrs, // llvm.hexagon.V6.vmpyhsrs
-+ hexagon_V6_vmpyhsrs_128B, // llvm.hexagon.V6.vmpyhsrs.128B
-+ hexagon_V6_vmpyhss, // llvm.hexagon.V6.vmpyhss
-+ hexagon_V6_vmpyhss_128B, // llvm.hexagon.V6.vmpyhss.128B
-+ hexagon_V6_vmpyhus, // llvm.hexagon.V6.vmpyhus
-+ hexagon_V6_vmpyhus_128B, // llvm.hexagon.V6.vmpyhus.128B
-+ hexagon_V6_vmpyhus_acc, // llvm.hexagon.V6.vmpyhus.acc
-+ hexagon_V6_vmpyhus_acc_128B, // llvm.hexagon.V6.vmpyhus.acc.128B
-+ hexagon_V6_vmpyhv, // llvm.hexagon.V6.vmpyhv
-+ hexagon_V6_vmpyhv_128B, // llvm.hexagon.V6.vmpyhv.128B
-+ hexagon_V6_vmpyhv_acc, // llvm.hexagon.V6.vmpyhv.acc
-+ hexagon_V6_vmpyhv_acc_128B, // llvm.hexagon.V6.vmpyhv.acc.128B
-+ hexagon_V6_vmpyhvsrs, // llvm.hexagon.V6.vmpyhvsrs
-+ hexagon_V6_vmpyhvsrs_128B, // llvm.hexagon.V6.vmpyhvsrs.128B
-+ hexagon_V6_vmpyieoh, // llvm.hexagon.V6.vmpyieoh
-+ hexagon_V6_vmpyieoh_128B, // llvm.hexagon.V6.vmpyieoh.128B
-+ hexagon_V6_vmpyiewh_acc, // llvm.hexagon.V6.vmpyiewh.acc
-+ hexagon_V6_vmpyiewh_acc_128B, // llvm.hexagon.V6.vmpyiewh.acc.128B
-+ hexagon_V6_vmpyiewuh, // llvm.hexagon.V6.vmpyiewuh
-+ hexagon_V6_vmpyiewuh_128B, // llvm.hexagon.V6.vmpyiewuh.128B
-+ hexagon_V6_vmpyiewuh_acc, // llvm.hexagon.V6.vmpyiewuh.acc
-+ hexagon_V6_vmpyiewuh_acc_128B, // llvm.hexagon.V6.vmpyiewuh.acc.128B
-+ hexagon_V6_vmpyih, // llvm.hexagon.V6.vmpyih
-+ hexagon_V6_vmpyih_128B, // llvm.hexagon.V6.vmpyih.128B
-+ hexagon_V6_vmpyih_acc, // llvm.hexagon.V6.vmpyih.acc
-+ hexagon_V6_vmpyih_acc_128B, // llvm.hexagon.V6.vmpyih.acc.128B
-+ hexagon_V6_vmpyihb, // llvm.hexagon.V6.vmpyihb
-+ hexagon_V6_vmpyihb_128B, // llvm.hexagon.V6.vmpyihb.128B
-+ hexagon_V6_vmpyihb_acc, // llvm.hexagon.V6.vmpyihb.acc
-+ hexagon_V6_vmpyihb_acc_128B, // llvm.hexagon.V6.vmpyihb.acc.128B
-+ hexagon_V6_vmpyiowh, // llvm.hexagon.V6.vmpyiowh
-+ hexagon_V6_vmpyiowh_128B, // llvm.hexagon.V6.vmpyiowh.128B
-+ hexagon_V6_vmpyiwb, // llvm.hexagon.V6.vmpyiwb
-+ hexagon_V6_vmpyiwb_128B, // llvm.hexagon.V6.vmpyiwb.128B
-+ hexagon_V6_vmpyiwb_acc, // llvm.hexagon.V6.vmpyiwb.acc
-+ hexagon_V6_vmpyiwb_acc_128B, // llvm.hexagon.V6.vmpyiwb.acc.128B
-+ hexagon_V6_vmpyiwh, // llvm.hexagon.V6.vmpyiwh
-+ hexagon_V6_vmpyiwh_128B, // llvm.hexagon.V6.vmpyiwh.128B
-+ hexagon_V6_vmpyiwh_acc, // llvm.hexagon.V6.vmpyiwh.acc
-+ hexagon_V6_vmpyiwh_acc_128B, // llvm.hexagon.V6.vmpyiwh.acc.128B
-+ hexagon_V6_vmpyowh, // llvm.hexagon.V6.vmpyowh
-+ hexagon_V6_vmpyowh_128B, // llvm.hexagon.V6.vmpyowh.128B
-+ hexagon_V6_vmpyowh_rnd, // llvm.hexagon.V6.vmpyowh.rnd
-+ hexagon_V6_vmpyowh_rnd_128B, // llvm.hexagon.V6.vmpyowh.rnd.128B
-+ hexagon_V6_vmpyowh_rnd_sacc, // llvm.hexagon.V6.vmpyowh.rnd.sacc
-+ hexagon_V6_vmpyowh_rnd_sacc_128B, // llvm.hexagon.V6.vmpyowh.rnd.sacc.128B
-+ hexagon_V6_vmpyowh_sacc, // llvm.hexagon.V6.vmpyowh.sacc
-+ hexagon_V6_vmpyowh_sacc_128B, // llvm.hexagon.V6.vmpyowh.sacc.128B
-+ hexagon_V6_vmpyub, // llvm.hexagon.V6.vmpyub
-+ hexagon_V6_vmpyub_128B, // llvm.hexagon.V6.vmpyub.128B
-+ hexagon_V6_vmpyub_acc, // llvm.hexagon.V6.vmpyub.acc
-+ hexagon_V6_vmpyub_acc_128B, // llvm.hexagon.V6.vmpyub.acc.128B
-+ hexagon_V6_vmpyubv, // llvm.hexagon.V6.vmpyubv
-+ hexagon_V6_vmpyubv_128B, // llvm.hexagon.V6.vmpyubv.128B
-+ hexagon_V6_vmpyubv_acc, // llvm.hexagon.V6.vmpyubv.acc
-+ hexagon_V6_vmpyubv_acc_128B, // llvm.hexagon.V6.vmpyubv.acc.128B
-+ hexagon_V6_vmpyuh, // llvm.hexagon.V6.vmpyuh
-+ hexagon_V6_vmpyuh_128B, // llvm.hexagon.V6.vmpyuh.128B
-+ hexagon_V6_vmpyuh_acc, // llvm.hexagon.V6.vmpyuh.acc
-+ hexagon_V6_vmpyuh_acc_128B, // llvm.hexagon.V6.vmpyuh.acc.128B
-+ hexagon_V6_vmpyuhv, // llvm.hexagon.V6.vmpyuhv
-+ hexagon_V6_vmpyuhv_128B, // llvm.hexagon.V6.vmpyuhv.128B
-+ hexagon_V6_vmpyuhv_acc, // llvm.hexagon.V6.vmpyuhv.acc
-+ hexagon_V6_vmpyuhv_acc_128B, // llvm.hexagon.V6.vmpyuhv.acc.128B
-+ hexagon_V6_vmux, // llvm.hexagon.V6.vmux
-+ hexagon_V6_vmux_128B, // llvm.hexagon.V6.vmux.128B
-+ hexagon_V6_vnavgh, // llvm.hexagon.V6.vnavgh
-+ hexagon_V6_vnavgh_128B, // llvm.hexagon.V6.vnavgh.128B
-+ hexagon_V6_vnavgub, // llvm.hexagon.V6.vnavgub
-+ hexagon_V6_vnavgub_128B, // llvm.hexagon.V6.vnavgub.128B
-+ hexagon_V6_vnavgw, // llvm.hexagon.V6.vnavgw
-+ hexagon_V6_vnavgw_128B, // llvm.hexagon.V6.vnavgw.128B
-+ hexagon_V6_vnormamth, // llvm.hexagon.V6.vnormamth
-+ hexagon_V6_vnormamth_128B, // llvm.hexagon.V6.vnormamth.128B
-+ hexagon_V6_vnormamtw, // llvm.hexagon.V6.vnormamtw
-+ hexagon_V6_vnormamtw_128B, // llvm.hexagon.V6.vnormamtw.128B
-+ hexagon_V6_vnot, // llvm.hexagon.V6.vnot
-+ hexagon_V6_vnot_128B, // llvm.hexagon.V6.vnot.128B
-+ hexagon_V6_vor, // llvm.hexagon.V6.vor
-+ hexagon_V6_vor_128B, // llvm.hexagon.V6.vor.128B
-+ hexagon_V6_vpackeb, // llvm.hexagon.V6.vpackeb
-+ hexagon_V6_vpackeb_128B, // llvm.hexagon.V6.vpackeb.128B
-+ hexagon_V6_vpackeh, // llvm.hexagon.V6.vpackeh
-+ hexagon_V6_vpackeh_128B, // llvm.hexagon.V6.vpackeh.128B
-+ hexagon_V6_vpackhb_sat, // llvm.hexagon.V6.vpackhb.sat
-+ hexagon_V6_vpackhb_sat_128B, // llvm.hexagon.V6.vpackhb.sat.128B
-+ hexagon_V6_vpackhub_sat, // llvm.hexagon.V6.vpackhub.sat
-+ hexagon_V6_vpackhub_sat_128B, // llvm.hexagon.V6.vpackhub.sat.128B
-+ hexagon_V6_vpackob, // llvm.hexagon.V6.vpackob
-+ hexagon_V6_vpackob_128B, // llvm.hexagon.V6.vpackob.128B
-+ hexagon_V6_vpackoh, // llvm.hexagon.V6.vpackoh
-+ hexagon_V6_vpackoh_128B, // llvm.hexagon.V6.vpackoh.128B
-+ hexagon_V6_vpackwh_sat, // llvm.hexagon.V6.vpackwh.sat
-+ hexagon_V6_vpackwh_sat_128B, // llvm.hexagon.V6.vpackwh.sat.128B
-+ hexagon_V6_vpackwuh_sat, // llvm.hexagon.V6.vpackwuh.sat
-+ hexagon_V6_vpackwuh_sat_128B, // llvm.hexagon.V6.vpackwuh.sat.128B
-+ hexagon_V6_vpopcounth, // llvm.hexagon.V6.vpopcounth
-+ hexagon_V6_vpopcounth_128B, // llvm.hexagon.V6.vpopcounth.128B
-+ hexagon_V6_vrdelta, // llvm.hexagon.V6.vrdelta
-+ hexagon_V6_vrdelta_128B, // llvm.hexagon.V6.vrdelta.128B
-+ hexagon_V6_vrmpybus, // llvm.hexagon.V6.vrmpybus
-+ hexagon_V6_vrmpybus_128B, // llvm.hexagon.V6.vrmpybus.128B
-+ hexagon_V6_vrmpybus_acc, // llvm.hexagon.V6.vrmpybus.acc
-+ hexagon_V6_vrmpybus_acc_128B, // llvm.hexagon.V6.vrmpybus.acc.128B
-+ hexagon_V6_vrmpybusi, // llvm.hexagon.V6.vrmpybusi
-+ hexagon_V6_vrmpybusi_128B, // llvm.hexagon.V6.vrmpybusi.128B
-+ hexagon_V6_vrmpybusi_acc, // llvm.hexagon.V6.vrmpybusi.acc
-+ hexagon_V6_vrmpybusi_acc_128B, // llvm.hexagon.V6.vrmpybusi.acc.128B
-+ hexagon_V6_vrmpybusv, // llvm.hexagon.V6.vrmpybusv
-+ hexagon_V6_vrmpybusv_128B, // llvm.hexagon.V6.vrmpybusv.128B
-+ hexagon_V6_vrmpybusv_acc, // llvm.hexagon.V6.vrmpybusv.acc
-+ hexagon_V6_vrmpybusv_acc_128B, // llvm.hexagon.V6.vrmpybusv.acc.128B
-+ hexagon_V6_vrmpybv, // llvm.hexagon.V6.vrmpybv
-+ hexagon_V6_vrmpybv_128B, // llvm.hexagon.V6.vrmpybv.128B
-+ hexagon_V6_vrmpybv_acc, // llvm.hexagon.V6.vrmpybv.acc
-+ hexagon_V6_vrmpybv_acc_128B, // llvm.hexagon.V6.vrmpybv.acc.128B
-+ hexagon_V6_vrmpyub, // llvm.hexagon.V6.vrmpyub
-+ hexagon_V6_vrmpyub_128B, // llvm.hexagon.V6.vrmpyub.128B
-+ hexagon_V6_vrmpyub_acc, // llvm.hexagon.V6.vrmpyub.acc
-+ hexagon_V6_vrmpyub_acc_128B, // llvm.hexagon.V6.vrmpyub.acc.128B
-+ hexagon_V6_vrmpyubi, // llvm.hexagon.V6.vrmpyubi
-+ hexagon_V6_vrmpyubi_128B, // llvm.hexagon.V6.vrmpyubi.128B
-+ hexagon_V6_vrmpyubi_acc, // llvm.hexagon.V6.vrmpyubi.acc
-+ hexagon_V6_vrmpyubi_acc_128B, // llvm.hexagon.V6.vrmpyubi.acc.128B
-+ hexagon_V6_vrmpyubv, // llvm.hexagon.V6.vrmpyubv
-+ hexagon_V6_vrmpyubv_128B, // llvm.hexagon.V6.vrmpyubv.128B
-+ hexagon_V6_vrmpyubv_acc, // llvm.hexagon.V6.vrmpyubv.acc
-+ hexagon_V6_vrmpyubv_acc_128B, // llvm.hexagon.V6.vrmpyubv.acc.128B
-+ hexagon_V6_vror, // llvm.hexagon.V6.vror
-+ hexagon_V6_vror_128B, // llvm.hexagon.V6.vror.128B
-+ hexagon_V6_vroundhb, // llvm.hexagon.V6.vroundhb
-+ hexagon_V6_vroundhb_128B, // llvm.hexagon.V6.vroundhb.128B
-+ hexagon_V6_vroundhub, // llvm.hexagon.V6.vroundhub
-+ hexagon_V6_vroundhub_128B, // llvm.hexagon.V6.vroundhub.128B
-+ hexagon_V6_vroundwh, // llvm.hexagon.V6.vroundwh
-+ hexagon_V6_vroundwh_128B, // llvm.hexagon.V6.vroundwh.128B
-+ hexagon_V6_vroundwuh, // llvm.hexagon.V6.vroundwuh
-+ hexagon_V6_vroundwuh_128B, // llvm.hexagon.V6.vroundwuh.128B
-+ hexagon_V6_vrsadubi, // llvm.hexagon.V6.vrsadubi
-+ hexagon_V6_vrsadubi_128B, // llvm.hexagon.V6.vrsadubi.128B
-+ hexagon_V6_vrsadubi_acc, // llvm.hexagon.V6.vrsadubi.acc
-+ hexagon_V6_vrsadubi_acc_128B, // llvm.hexagon.V6.vrsadubi.acc.128B
-+ hexagon_V6_vsathub, // llvm.hexagon.V6.vsathub
-+ hexagon_V6_vsathub_128B, // llvm.hexagon.V6.vsathub.128B
-+ hexagon_V6_vsatwh, // llvm.hexagon.V6.vsatwh
-+ hexagon_V6_vsatwh_128B, // llvm.hexagon.V6.vsatwh.128B
-+ hexagon_V6_vsb, // llvm.hexagon.V6.vsb
-+ hexagon_V6_vsb_128B, // llvm.hexagon.V6.vsb.128B
-+ hexagon_V6_vsh, // llvm.hexagon.V6.vsh
-+ hexagon_V6_vsh_128B, // llvm.hexagon.V6.vsh.128B
-+ hexagon_V6_vshufeh, // llvm.hexagon.V6.vshufeh
-+ hexagon_V6_vshufeh_128B, // llvm.hexagon.V6.vshufeh.128B
-+ hexagon_V6_vshuffb, // llvm.hexagon.V6.vshuffb
-+ hexagon_V6_vshuffb_128B, // llvm.hexagon.V6.vshuffb.128B
-+ hexagon_V6_vshuffeb, // llvm.hexagon.V6.vshuffeb
-+ hexagon_V6_vshuffeb_128B, // llvm.hexagon.V6.vshuffeb.128B
-+ hexagon_V6_vshuffh, // llvm.hexagon.V6.vshuffh
-+ hexagon_V6_vshuffh_128B, // llvm.hexagon.V6.vshuffh.128B
-+ hexagon_V6_vshuffob, // llvm.hexagon.V6.vshuffob
-+ hexagon_V6_vshuffob_128B, // llvm.hexagon.V6.vshuffob.128B
-+ hexagon_V6_vshuffvdd, // llvm.hexagon.V6.vshuffvdd
-+ hexagon_V6_vshuffvdd_128B, // llvm.hexagon.V6.vshuffvdd.128B
-+ hexagon_V6_vshufoeb, // llvm.hexagon.V6.vshufoeb
-+ hexagon_V6_vshufoeb_128B, // llvm.hexagon.V6.vshufoeb.128B
-+ hexagon_V6_vshufoeh, // llvm.hexagon.V6.vshufoeh
-+ hexagon_V6_vshufoeh_128B, // llvm.hexagon.V6.vshufoeh.128B
-+ hexagon_V6_vshufoh, // llvm.hexagon.V6.vshufoh
-+ hexagon_V6_vshufoh_128B, // llvm.hexagon.V6.vshufoh.128B
-+ hexagon_V6_vsubb, // llvm.hexagon.V6.vsubb
-+ hexagon_V6_vsubb_128B, // llvm.hexagon.V6.vsubb.128B
-+ hexagon_V6_vsubb_dv, // llvm.hexagon.V6.vsubb.dv
-+ hexagon_V6_vsubb_dv_128B, // llvm.hexagon.V6.vsubb.dv.128B
-+ hexagon_V6_vsubbnq, // llvm.hexagon.V6.vsubbnq
-+ hexagon_V6_vsubbnq_128B, // llvm.hexagon.V6.vsubbnq.128B
-+ hexagon_V6_vsubbq, // llvm.hexagon.V6.vsubbq
-+ hexagon_V6_vsubbq_128B, // llvm.hexagon.V6.vsubbq.128B
-+ hexagon_V6_vsubh, // llvm.hexagon.V6.vsubh
-+ hexagon_V6_vsubh_128B, // llvm.hexagon.V6.vsubh.128B
-+ hexagon_V6_vsubh_dv, // llvm.hexagon.V6.vsubh.dv
-+ hexagon_V6_vsubh_dv_128B, // llvm.hexagon.V6.vsubh.dv.128B
-+ hexagon_V6_vsubhnq, // llvm.hexagon.V6.vsubhnq
-+ hexagon_V6_vsubhnq_128B, // llvm.hexagon.V6.vsubhnq.128B
-+ hexagon_V6_vsubhq, // llvm.hexagon.V6.vsubhq
-+ hexagon_V6_vsubhq_128B, // llvm.hexagon.V6.vsubhq.128B
-+ hexagon_V6_vsubhsat, // llvm.hexagon.V6.vsubhsat
-+ hexagon_V6_vsubhsat_128B, // llvm.hexagon.V6.vsubhsat.128B
-+ hexagon_V6_vsubhsat_dv, // llvm.hexagon.V6.vsubhsat.dv
-+ hexagon_V6_vsubhsat_dv_128B, // llvm.hexagon.V6.vsubhsat.dv.128B
-+ hexagon_V6_vsubhw, // llvm.hexagon.V6.vsubhw
-+ hexagon_V6_vsubhw_128B, // llvm.hexagon.V6.vsubhw.128B
-+ hexagon_V6_vsububh, // llvm.hexagon.V6.vsububh
-+ hexagon_V6_vsububh_128B, // llvm.hexagon.V6.vsububh.128B
-+ hexagon_V6_vsububsat, // llvm.hexagon.V6.vsububsat
-+ hexagon_V6_vsububsat_128B, // llvm.hexagon.V6.vsububsat.128B
-+ hexagon_V6_vsububsat_dv, // llvm.hexagon.V6.vsububsat.dv
-+ hexagon_V6_vsububsat_dv_128B, // llvm.hexagon.V6.vsububsat.dv.128B
-+ hexagon_V6_vsubuhsat, // llvm.hexagon.V6.vsubuhsat
-+ hexagon_V6_vsubuhsat_128B, // llvm.hexagon.V6.vsubuhsat.128B
-+ hexagon_V6_vsubuhsat_dv, // llvm.hexagon.V6.vsubuhsat.dv
-+ hexagon_V6_vsubuhsat_dv_128B, // llvm.hexagon.V6.vsubuhsat.dv.128B
-+ hexagon_V6_vsubuhw, // llvm.hexagon.V6.vsubuhw
-+ hexagon_V6_vsubuhw_128B, // llvm.hexagon.V6.vsubuhw.128B
-+ hexagon_V6_vsubw, // llvm.hexagon.V6.vsubw
-+ hexagon_V6_vsubw_128B, // llvm.hexagon.V6.vsubw.128B
-+ hexagon_V6_vsubw_dv, // llvm.hexagon.V6.vsubw.dv
-+ hexagon_V6_vsubw_dv_128B, // llvm.hexagon.V6.vsubw.dv.128B
-+ hexagon_V6_vsubwnq, // llvm.hexagon.V6.vsubwnq
-+ hexagon_V6_vsubwnq_128B, // llvm.hexagon.V6.vsubwnq.128B
-+ hexagon_V6_vsubwq, // llvm.hexagon.V6.vsubwq
-+ hexagon_V6_vsubwq_128B, // llvm.hexagon.V6.vsubwq.128B
-+ hexagon_V6_vsubwsat, // llvm.hexagon.V6.vsubwsat
-+ hexagon_V6_vsubwsat_128B, // llvm.hexagon.V6.vsubwsat.128B
-+ hexagon_V6_vsubwsat_dv, // llvm.hexagon.V6.vsubwsat.dv
-+ hexagon_V6_vsubwsat_dv_128B, // llvm.hexagon.V6.vsubwsat.dv.128B
-+ hexagon_V6_vswap, // llvm.hexagon.V6.vswap
-+ hexagon_V6_vswap_128B, // llvm.hexagon.V6.vswap.128B
-+ hexagon_V6_vtmpyb, // llvm.hexagon.V6.vtmpyb
-+ hexagon_V6_vtmpyb_128B, // llvm.hexagon.V6.vtmpyb.128B
-+ hexagon_V6_vtmpyb_acc, // llvm.hexagon.V6.vtmpyb.acc
-+ hexagon_V6_vtmpyb_acc_128B, // llvm.hexagon.V6.vtmpyb.acc.128B
-+ hexagon_V6_vtmpybus, // llvm.hexagon.V6.vtmpybus
-+ hexagon_V6_vtmpybus_128B, // llvm.hexagon.V6.vtmpybus.128B
-+ hexagon_V6_vtmpybus_acc, // llvm.hexagon.V6.vtmpybus.acc
-+ hexagon_V6_vtmpybus_acc_128B, // llvm.hexagon.V6.vtmpybus.acc.128B
-+ hexagon_V6_vtmpyhb, // llvm.hexagon.V6.vtmpyhb
-+ hexagon_V6_vtmpyhb_128B, // llvm.hexagon.V6.vtmpyhb.128B
-+ hexagon_V6_vtmpyhb_acc, // llvm.hexagon.V6.vtmpyhb.acc
-+ hexagon_V6_vtmpyhb_acc_128B, // llvm.hexagon.V6.vtmpyhb.acc.128B
-+ hexagon_V6_vunpackb, // llvm.hexagon.V6.vunpackb
-+ hexagon_V6_vunpackb_128B, // llvm.hexagon.V6.vunpackb.128B
-+ hexagon_V6_vunpackh, // llvm.hexagon.V6.vunpackh
-+ hexagon_V6_vunpackh_128B, // llvm.hexagon.V6.vunpackh.128B
-+ hexagon_V6_vunpackob, // llvm.hexagon.V6.vunpackob
-+ hexagon_V6_vunpackob_128B, // llvm.hexagon.V6.vunpackob.128B
-+ hexagon_V6_vunpackoh, // llvm.hexagon.V6.vunpackoh
-+ hexagon_V6_vunpackoh_128B, // llvm.hexagon.V6.vunpackoh.128B
-+ hexagon_V6_vunpackub, // llvm.hexagon.V6.vunpackub
-+ hexagon_V6_vunpackub_128B, // llvm.hexagon.V6.vunpackub.128B
-+ hexagon_V6_vunpackuh, // llvm.hexagon.V6.vunpackuh
-+ hexagon_V6_vunpackuh_128B, // llvm.hexagon.V6.vunpackuh.128B
-+ hexagon_V6_vxor, // llvm.hexagon.V6.vxor
-+ hexagon_V6_vxor_128B, // llvm.hexagon.V6.vxor.128B
-+ hexagon_V6_vzb, // llvm.hexagon.V6.vzb
-+ hexagon_V6_vzb_128B, // llvm.hexagon.V6.vzb.128B
-+ hexagon_V6_vzh, // llvm.hexagon.V6.vzh
-+ hexagon_V6_vzh_128B, // llvm.hexagon.V6.vzh.128B
-+ hexagon_brev_ldb, // llvm.hexagon.brev.ldb
-+ hexagon_brev_ldd, // llvm.hexagon.brev.ldd
-+ hexagon_brev_ldh, // llvm.hexagon.brev.ldh
-+ hexagon_brev_ldub, // llvm.hexagon.brev.ldub
-+ hexagon_brev_lduh, // llvm.hexagon.brev.lduh
-+ hexagon_brev_ldw, // llvm.hexagon.brev.ldw
-+ hexagon_brev_stb, // llvm.hexagon.brev.stb
-+ hexagon_brev_std, // llvm.hexagon.brev.std
-+ hexagon_brev_sth, // llvm.hexagon.brev.sth
-+ hexagon_brev_sthhi, // llvm.hexagon.brev.sthhi
-+ hexagon_brev_stw, // llvm.hexagon.brev.stw
-+ hexagon_circ_ldb, // llvm.hexagon.circ.ldb
-+ hexagon_circ_ldd, // llvm.hexagon.circ.ldd
-+ hexagon_circ_ldh, // llvm.hexagon.circ.ldh
-+ hexagon_circ_ldub, // llvm.hexagon.circ.ldub
-+ hexagon_circ_lduh, // llvm.hexagon.circ.lduh
-+ hexagon_circ_ldw, // llvm.hexagon.circ.ldw
-+ hexagon_circ_stb, // llvm.hexagon.circ.stb
-+ hexagon_circ_std, // llvm.hexagon.circ.std
-+ hexagon_circ_sth, // llvm.hexagon.circ.sth
-+ hexagon_circ_sthhi, // llvm.hexagon.circ.sthhi
-+ hexagon_circ_stw, // llvm.hexagon.circ.stw
-+ hexagon_mm256i_vaddw, // llvm.hexagon.mm256i.vaddw
-+ hexagon_prefetch, // llvm.hexagon.prefetch
-+ mips_absq_s_ph, // llvm.mips.absq.s.ph
-+ mips_absq_s_qb, // llvm.mips.absq.s.qb
-+ mips_absq_s_w, // llvm.mips.absq.s.w
-+ mips_add_a_b, // llvm.mips.add.a.b
-+ mips_add_a_d, // llvm.mips.add.a.d
-+ mips_add_a_h, // llvm.mips.add.a.h
-+ mips_add_a_w, // llvm.mips.add.a.w
-+ mips_addq_ph, // llvm.mips.addq.ph
-+ mips_addq_s_ph, // llvm.mips.addq.s.ph
-+ mips_addq_s_w, // llvm.mips.addq.s.w
-+ mips_addqh_ph, // llvm.mips.addqh.ph
-+ mips_addqh_r_ph, // llvm.mips.addqh.r.ph
-+ mips_addqh_r_w, // llvm.mips.addqh.r.w
-+ mips_addqh_w, // llvm.mips.addqh.w
-+ mips_adds_a_b, // llvm.mips.adds.a.b
-+ mips_adds_a_d, // llvm.mips.adds.a.d
-+ mips_adds_a_h, // llvm.mips.adds.a.h
-+ mips_adds_a_w, // llvm.mips.adds.a.w
-+ mips_adds_s_b, // llvm.mips.adds.s.b
-+ mips_adds_s_d, // llvm.mips.adds.s.d
-+ mips_adds_s_h, // llvm.mips.adds.s.h
-+ mips_adds_s_w, // llvm.mips.adds.s.w
-+ mips_adds_u_b, // llvm.mips.adds.u.b
-+ mips_adds_u_d, // llvm.mips.adds.u.d
-+ mips_adds_u_h, // llvm.mips.adds.u.h
-+ mips_adds_u_w, // llvm.mips.adds.u.w
-+ mips_addsc, // llvm.mips.addsc
-+ mips_addu_ph, // llvm.mips.addu.ph
-+ mips_addu_qb, // llvm.mips.addu.qb
-+ mips_addu_s_ph, // llvm.mips.addu.s.ph
-+ mips_addu_s_qb, // llvm.mips.addu.s.qb
-+ mips_adduh_qb, // llvm.mips.adduh.qb
-+ mips_adduh_r_qb, // llvm.mips.adduh.r.qb
-+ mips_addv_b, // llvm.mips.addv.b
-+ mips_addv_d, // llvm.mips.addv.d
-+ mips_addv_h, // llvm.mips.addv.h
-+ mips_addv_w, // llvm.mips.addv.w
-+ mips_addvi_b, // llvm.mips.addvi.b
-+ mips_addvi_d, // llvm.mips.addvi.d
-+ mips_addvi_h, // llvm.mips.addvi.h
-+ mips_addvi_w, // llvm.mips.addvi.w
-+ mips_addwc, // llvm.mips.addwc
-+ mips_and_v, // llvm.mips.and.v
-+ mips_andi_b, // llvm.mips.andi.b
-+ mips_append, // llvm.mips.append
-+ mips_asub_s_b, // llvm.mips.asub.s.b
-+ mips_asub_s_d, // llvm.mips.asub.s.d
-+ mips_asub_s_h, // llvm.mips.asub.s.h
-+ mips_asub_s_w, // llvm.mips.asub.s.w
-+ mips_asub_u_b, // llvm.mips.asub.u.b
-+ mips_asub_u_d, // llvm.mips.asub.u.d
-+ mips_asub_u_h, // llvm.mips.asub.u.h
-+ mips_asub_u_w, // llvm.mips.asub.u.w
-+ mips_ave_s_b, // llvm.mips.ave.s.b
-+ mips_ave_s_d, // llvm.mips.ave.s.d
-+ mips_ave_s_h, // llvm.mips.ave.s.h
-+ mips_ave_s_w, // llvm.mips.ave.s.w
-+ mips_ave_u_b, // llvm.mips.ave.u.b
-+ mips_ave_u_d, // llvm.mips.ave.u.d
-+ mips_ave_u_h, // llvm.mips.ave.u.h
-+ mips_ave_u_w, // llvm.mips.ave.u.w
-+ mips_aver_s_b, // llvm.mips.aver.s.b
-+ mips_aver_s_d, // llvm.mips.aver.s.d
-+ mips_aver_s_h, // llvm.mips.aver.s.h
-+ mips_aver_s_w, // llvm.mips.aver.s.w
-+ mips_aver_u_b, // llvm.mips.aver.u.b
-+ mips_aver_u_d, // llvm.mips.aver.u.d
-+ mips_aver_u_h, // llvm.mips.aver.u.h
-+ mips_aver_u_w, // llvm.mips.aver.u.w
-+ mips_balign, // llvm.mips.balign
-+ mips_bclr_b, // llvm.mips.bclr.b
-+ mips_bclr_d, // llvm.mips.bclr.d
-+ mips_bclr_h, // llvm.mips.bclr.h
-+ mips_bclr_w, // llvm.mips.bclr.w
-+ mips_bclri_b, // llvm.mips.bclri.b
-+ mips_bclri_d, // llvm.mips.bclri.d
-+ mips_bclri_h, // llvm.mips.bclri.h
-+ mips_bclri_w, // llvm.mips.bclri.w
-+ mips_binsl_b, // llvm.mips.binsl.b
-+ mips_binsl_d, // llvm.mips.binsl.d
-+ mips_binsl_h, // llvm.mips.binsl.h
-+ mips_binsl_w, // llvm.mips.binsl.w
-+ mips_binsli_b, // llvm.mips.binsli.b
-+ mips_binsli_d, // llvm.mips.binsli.d
-+ mips_binsli_h, // llvm.mips.binsli.h
-+ mips_binsli_w, // llvm.mips.binsli.w
-+ mips_binsr_b, // llvm.mips.binsr.b
-+ mips_binsr_d, // llvm.mips.binsr.d
-+ mips_binsr_h, // llvm.mips.binsr.h
-+ mips_binsr_w, // llvm.mips.binsr.w
-+ mips_binsri_b, // llvm.mips.binsri.b
-+ mips_binsri_d, // llvm.mips.binsri.d
-+ mips_binsri_h, // llvm.mips.binsri.h
-+ mips_binsri_w, // llvm.mips.binsri.w
-+ mips_bitrev, // llvm.mips.bitrev
-+ mips_bmnz_v, // llvm.mips.bmnz.v
-+ mips_bmnzi_b, // llvm.mips.bmnzi.b
-+ mips_bmz_v, // llvm.mips.bmz.v
-+ mips_bmzi_b, // llvm.mips.bmzi.b
-+ mips_bneg_b, // llvm.mips.bneg.b
-+ mips_bneg_d, // llvm.mips.bneg.d
-+ mips_bneg_h, // llvm.mips.bneg.h
-+ mips_bneg_w, // llvm.mips.bneg.w
-+ mips_bnegi_b, // llvm.mips.bnegi.b
-+ mips_bnegi_d, // llvm.mips.bnegi.d
-+ mips_bnegi_h, // llvm.mips.bnegi.h
-+ mips_bnegi_w, // llvm.mips.bnegi.w
-+ mips_bnz_b, // llvm.mips.bnz.b
-+ mips_bnz_d, // llvm.mips.bnz.d
-+ mips_bnz_h, // llvm.mips.bnz.h
-+ mips_bnz_v, // llvm.mips.bnz.v
-+ mips_bnz_w, // llvm.mips.bnz.w
-+ mips_bposge32, // llvm.mips.bposge32
-+ mips_bsel_v, // llvm.mips.bsel.v
-+ mips_bseli_b, // llvm.mips.bseli.b
-+ mips_bset_b, // llvm.mips.bset.b
-+ mips_bset_d, // llvm.mips.bset.d
-+ mips_bset_h, // llvm.mips.bset.h
-+ mips_bset_w, // llvm.mips.bset.w
-+ mips_bseti_b, // llvm.mips.bseti.b
-+ mips_bseti_d, // llvm.mips.bseti.d
-+ mips_bseti_h, // llvm.mips.bseti.h
-+ mips_bseti_w, // llvm.mips.bseti.w
-+ mips_bz_b, // llvm.mips.bz.b
-+ mips_bz_d, // llvm.mips.bz.d
-+ mips_bz_h, // llvm.mips.bz.h
-+ mips_bz_v, // llvm.mips.bz.v
-+ mips_bz_w, // llvm.mips.bz.w
-+ mips_ceq_b, // llvm.mips.ceq.b
-+ mips_ceq_d, // llvm.mips.ceq.d
-+ mips_ceq_h, // llvm.mips.ceq.h
-+ mips_ceq_w, // llvm.mips.ceq.w
-+ mips_ceqi_b, // llvm.mips.ceqi.b
-+ mips_ceqi_d, // llvm.mips.ceqi.d
-+ mips_ceqi_h, // llvm.mips.ceqi.h
-+ mips_ceqi_w, // llvm.mips.ceqi.w
-+ mips_cfcmsa, // llvm.mips.cfcmsa
-+ mips_cle_s_b, // llvm.mips.cle.s.b
-+ mips_cle_s_d, // llvm.mips.cle.s.d
-+ mips_cle_s_h, // llvm.mips.cle.s.h
-+ mips_cle_s_w, // llvm.mips.cle.s.w
-+ mips_cle_u_b, // llvm.mips.cle.u.b
-+ mips_cle_u_d, // llvm.mips.cle.u.d
-+ mips_cle_u_h, // llvm.mips.cle.u.h
-+ mips_cle_u_w, // llvm.mips.cle.u.w
-+ mips_clei_s_b, // llvm.mips.clei.s.b
-+ mips_clei_s_d, // llvm.mips.clei.s.d
-+ mips_clei_s_h, // llvm.mips.clei.s.h
-+ mips_clei_s_w, // llvm.mips.clei.s.w
-+ mips_clei_u_b, // llvm.mips.clei.u.b
-+ mips_clei_u_d, // llvm.mips.clei.u.d
-+ mips_clei_u_h, // llvm.mips.clei.u.h
-+ mips_clei_u_w, // llvm.mips.clei.u.w
-+ mips_clt_s_b, // llvm.mips.clt.s.b
-+ mips_clt_s_d, // llvm.mips.clt.s.d
-+ mips_clt_s_h, // llvm.mips.clt.s.h
-+ mips_clt_s_w, // llvm.mips.clt.s.w
-+ mips_clt_u_b, // llvm.mips.clt.u.b
-+ mips_clt_u_d, // llvm.mips.clt.u.d
-+ mips_clt_u_h, // llvm.mips.clt.u.h
-+ mips_clt_u_w, // llvm.mips.clt.u.w
-+ mips_clti_s_b, // llvm.mips.clti.s.b
-+ mips_clti_s_d, // llvm.mips.clti.s.d
-+ mips_clti_s_h, // llvm.mips.clti.s.h
-+ mips_clti_s_w, // llvm.mips.clti.s.w
-+ mips_clti_u_b, // llvm.mips.clti.u.b
-+ mips_clti_u_d, // llvm.mips.clti.u.d
-+ mips_clti_u_h, // llvm.mips.clti.u.h
-+ mips_clti_u_w, // llvm.mips.clti.u.w
-+ mips_cmp_eq_ph, // llvm.mips.cmp.eq.ph
-+ mips_cmp_le_ph, // llvm.mips.cmp.le.ph
-+ mips_cmp_lt_ph, // llvm.mips.cmp.lt.ph
-+ mips_cmpgdu_eq_qb, // llvm.mips.cmpgdu.eq.qb
-+ mips_cmpgdu_le_qb, // llvm.mips.cmpgdu.le.qb
-+ mips_cmpgdu_lt_qb, // llvm.mips.cmpgdu.lt.qb
-+ mips_cmpgu_eq_qb, // llvm.mips.cmpgu.eq.qb
-+ mips_cmpgu_le_qb, // llvm.mips.cmpgu.le.qb
-+ mips_cmpgu_lt_qb, // llvm.mips.cmpgu.lt.qb
-+ mips_cmpu_eq_qb, // llvm.mips.cmpu.eq.qb
-+ mips_cmpu_le_qb, // llvm.mips.cmpu.le.qb
-+ mips_cmpu_lt_qb, // llvm.mips.cmpu.lt.qb
-+ mips_copy_s_b, // llvm.mips.copy.s.b
-+ mips_copy_s_d, // llvm.mips.copy.s.d
-+ mips_copy_s_h, // llvm.mips.copy.s.h
-+ mips_copy_s_w, // llvm.mips.copy.s.w
-+ mips_copy_u_b, // llvm.mips.copy.u.b
-+ mips_copy_u_d, // llvm.mips.copy.u.d
-+ mips_copy_u_h, // llvm.mips.copy.u.h
-+ mips_copy_u_w, // llvm.mips.copy.u.w
-+ mips_ctcmsa, // llvm.mips.ctcmsa
-+ mips_div_s_b, // llvm.mips.div.s.b
-+ mips_div_s_d, // llvm.mips.div.s.d
-+ mips_div_s_h, // llvm.mips.div.s.h
-+ mips_div_s_w, // llvm.mips.div.s.w
-+ mips_div_u_b, // llvm.mips.div.u.b
-+ mips_div_u_d, // llvm.mips.div.u.d
-+ mips_div_u_h, // llvm.mips.div.u.h
-+ mips_div_u_w, // llvm.mips.div.u.w
-+ mips_dlsa, // llvm.mips.dlsa
-+ mips_dotp_s_d, // llvm.mips.dotp.s.d
-+ mips_dotp_s_h, // llvm.mips.dotp.s.h
-+ mips_dotp_s_w, // llvm.mips.dotp.s.w
-+ mips_dotp_u_d, // llvm.mips.dotp.u.d
-+ mips_dotp_u_h, // llvm.mips.dotp.u.h
-+ mips_dotp_u_w, // llvm.mips.dotp.u.w
-+ mips_dpa_w_ph, // llvm.mips.dpa.w.ph
-+ mips_dpadd_s_d, // llvm.mips.dpadd.s.d
-+ mips_dpadd_s_h, // llvm.mips.dpadd.s.h
-+ mips_dpadd_s_w, // llvm.mips.dpadd.s.w
-+ mips_dpadd_u_d, // llvm.mips.dpadd.u.d
-+ mips_dpadd_u_h, // llvm.mips.dpadd.u.h
-+ mips_dpadd_u_w, // llvm.mips.dpadd.u.w
-+ mips_dpaq_s_w_ph, // llvm.mips.dpaq.s.w.ph
-+ mips_dpaq_sa_l_w, // llvm.mips.dpaq.sa.l.w
-+ mips_dpaqx_s_w_ph, // llvm.mips.dpaqx.s.w.ph
-+ mips_dpaqx_sa_w_ph, // llvm.mips.dpaqx.sa.w.ph
-+ mips_dpau_h_qbl, // llvm.mips.dpau.h.qbl
-+ mips_dpau_h_qbr, // llvm.mips.dpau.h.qbr
-+ mips_dpax_w_ph, // llvm.mips.dpax.w.ph
-+ mips_dps_w_ph, // llvm.mips.dps.w.ph
-+ mips_dpsq_s_w_ph, // llvm.mips.dpsq.s.w.ph
-+ mips_dpsq_sa_l_w, // llvm.mips.dpsq.sa.l.w
-+ mips_dpsqx_s_w_ph, // llvm.mips.dpsqx.s.w.ph
-+ mips_dpsqx_sa_w_ph, // llvm.mips.dpsqx.sa.w.ph
-+ mips_dpsu_h_qbl, // llvm.mips.dpsu.h.qbl
-+ mips_dpsu_h_qbr, // llvm.mips.dpsu.h.qbr
-+ mips_dpsub_s_d, // llvm.mips.dpsub.s.d
-+ mips_dpsub_s_h, // llvm.mips.dpsub.s.h
-+ mips_dpsub_s_w, // llvm.mips.dpsub.s.w
-+ mips_dpsub_u_d, // llvm.mips.dpsub.u.d
-+ mips_dpsub_u_h, // llvm.mips.dpsub.u.h
-+ mips_dpsub_u_w, // llvm.mips.dpsub.u.w
-+ mips_dpsx_w_ph, // llvm.mips.dpsx.w.ph
-+ mips_extp, // llvm.mips.extp
-+ mips_extpdp, // llvm.mips.extpdp
-+ mips_extr_r_w, // llvm.mips.extr.r.w
-+ mips_extr_rs_w, // llvm.mips.extr.rs.w
-+ mips_extr_s_h, // llvm.mips.extr.s.h
-+ mips_extr_w, // llvm.mips.extr.w
-+ mips_fadd_d, // llvm.mips.fadd.d
-+ mips_fadd_w, // llvm.mips.fadd.w
-+ mips_fcaf_d, // llvm.mips.fcaf.d
-+ mips_fcaf_w, // llvm.mips.fcaf.w
-+ mips_fceq_d, // llvm.mips.fceq.d
-+ mips_fceq_w, // llvm.mips.fceq.w
-+ mips_fclass_d, // llvm.mips.fclass.d
-+ mips_fclass_w, // llvm.mips.fclass.w
-+ mips_fcle_d, // llvm.mips.fcle.d
-+ mips_fcle_w, // llvm.mips.fcle.w
-+ mips_fclt_d, // llvm.mips.fclt.d
-+ mips_fclt_w, // llvm.mips.fclt.w
-+ mips_fcne_d, // llvm.mips.fcne.d
-+ mips_fcne_w, // llvm.mips.fcne.w
-+ mips_fcor_d, // llvm.mips.fcor.d
-+ mips_fcor_w, // llvm.mips.fcor.w
-+ mips_fcueq_d, // llvm.mips.fcueq.d
-+ mips_fcueq_w, // llvm.mips.fcueq.w
-+ mips_fcule_d, // llvm.mips.fcule.d
-+ mips_fcule_w, // llvm.mips.fcule.w
-+ mips_fcult_d, // llvm.mips.fcult.d
-+ mips_fcult_w, // llvm.mips.fcult.w
-+ mips_fcun_d, // llvm.mips.fcun.d
-+ mips_fcun_w, // llvm.mips.fcun.w
-+ mips_fcune_d, // llvm.mips.fcune.d
-+ mips_fcune_w, // llvm.mips.fcune.w
-+ mips_fdiv_d, // llvm.mips.fdiv.d
-+ mips_fdiv_w, // llvm.mips.fdiv.w
-+ mips_fexdo_h, // llvm.mips.fexdo.h
-+ mips_fexdo_w, // llvm.mips.fexdo.w
-+ mips_fexp2_d, // llvm.mips.fexp2.d
-+ mips_fexp2_w, // llvm.mips.fexp2.w
-+ mips_fexupl_d, // llvm.mips.fexupl.d
-+ mips_fexupl_w, // llvm.mips.fexupl.w
-+ mips_fexupr_d, // llvm.mips.fexupr.d
-+ mips_fexupr_w, // llvm.mips.fexupr.w
-+ mips_ffint_s_d, // llvm.mips.ffint.s.d
-+ mips_ffint_s_w, // llvm.mips.ffint.s.w
-+ mips_ffint_u_d, // llvm.mips.ffint.u.d
-+ mips_ffint_u_w, // llvm.mips.ffint.u.w
-+ mips_ffql_d, // llvm.mips.ffql.d
-+ mips_ffql_w, // llvm.mips.ffql.w
-+ mips_ffqr_d, // llvm.mips.ffqr.d
-+ mips_ffqr_w, // llvm.mips.ffqr.w
-+ mips_fill_b, // llvm.mips.fill.b
-+ mips_fill_d, // llvm.mips.fill.d
-+ mips_fill_h, // llvm.mips.fill.h
-+ mips_fill_w, // llvm.mips.fill.w
-+ mips_flog2_d, // llvm.mips.flog2.d
-+ mips_flog2_w, // llvm.mips.flog2.w
-+ mips_fmadd_d, // llvm.mips.fmadd.d
-+ mips_fmadd_w, // llvm.mips.fmadd.w
-+ mips_fmax_a_d, // llvm.mips.fmax.a.d
-+ mips_fmax_a_w, // llvm.mips.fmax.a.w
-+ mips_fmax_d, // llvm.mips.fmax.d
-+ mips_fmax_w, // llvm.mips.fmax.w
-+ mips_fmin_a_d, // llvm.mips.fmin.a.d
-+ mips_fmin_a_w, // llvm.mips.fmin.a.w
-+ mips_fmin_d, // llvm.mips.fmin.d
-+ mips_fmin_w, // llvm.mips.fmin.w
-+ mips_fmsub_d, // llvm.mips.fmsub.d
-+ mips_fmsub_w, // llvm.mips.fmsub.w
-+ mips_fmul_d, // llvm.mips.fmul.d
-+ mips_fmul_w, // llvm.mips.fmul.w
-+ mips_frcp_d, // llvm.mips.frcp.d
-+ mips_frcp_w, // llvm.mips.frcp.w
-+ mips_frint_d, // llvm.mips.frint.d
-+ mips_frint_w, // llvm.mips.frint.w
-+ mips_frsqrt_d, // llvm.mips.frsqrt.d
-+ mips_frsqrt_w, // llvm.mips.frsqrt.w
-+ mips_fsaf_d, // llvm.mips.fsaf.d
-+ mips_fsaf_w, // llvm.mips.fsaf.w
-+ mips_fseq_d, // llvm.mips.fseq.d
-+ mips_fseq_w, // llvm.mips.fseq.w
-+ mips_fsle_d, // llvm.mips.fsle.d
-+ mips_fsle_w, // llvm.mips.fsle.w
-+ mips_fslt_d, // llvm.mips.fslt.d
-+ mips_fslt_w, // llvm.mips.fslt.w
-+ mips_fsne_d, // llvm.mips.fsne.d
-+ mips_fsne_w, // llvm.mips.fsne.w
-+ mips_fsor_d, // llvm.mips.fsor.d
-+ mips_fsor_w, // llvm.mips.fsor.w
-+ mips_fsqrt_d, // llvm.mips.fsqrt.d
-+ mips_fsqrt_w, // llvm.mips.fsqrt.w
-+ mips_fsub_d, // llvm.mips.fsub.d
-+ mips_fsub_w, // llvm.mips.fsub.w
-+ mips_fsueq_d, // llvm.mips.fsueq.d
-+ mips_fsueq_w, // llvm.mips.fsueq.w
-+ mips_fsule_d, // llvm.mips.fsule.d
-+ mips_fsule_w, // llvm.mips.fsule.w
-+ mips_fsult_d, // llvm.mips.fsult.d
-+ mips_fsult_w, // llvm.mips.fsult.w
-+ mips_fsun_d, // llvm.mips.fsun.d
-+ mips_fsun_w, // llvm.mips.fsun.w
-+ mips_fsune_d, // llvm.mips.fsune.d
-+ mips_fsune_w, // llvm.mips.fsune.w
-+ mips_ftint_s_d, // llvm.mips.ftint.s.d
-+ mips_ftint_s_w, // llvm.mips.ftint.s.w
-+ mips_ftint_u_d, // llvm.mips.ftint.u.d
-+ mips_ftint_u_w, // llvm.mips.ftint.u.w
-+ mips_ftq_h, // llvm.mips.ftq.h
-+ mips_ftq_w, // llvm.mips.ftq.w
-+ mips_ftrunc_s_d, // llvm.mips.ftrunc.s.d
-+ mips_ftrunc_s_w, // llvm.mips.ftrunc.s.w
-+ mips_ftrunc_u_d, // llvm.mips.ftrunc.u.d
-+ mips_ftrunc_u_w, // llvm.mips.ftrunc.u.w
-+ mips_hadd_s_d, // llvm.mips.hadd.s.d
-+ mips_hadd_s_h, // llvm.mips.hadd.s.h
-+ mips_hadd_s_w, // llvm.mips.hadd.s.w
-+ mips_hadd_u_d, // llvm.mips.hadd.u.d
-+ mips_hadd_u_h, // llvm.mips.hadd.u.h
-+ mips_hadd_u_w, // llvm.mips.hadd.u.w
-+ mips_hsub_s_d, // llvm.mips.hsub.s.d
-+ mips_hsub_s_h, // llvm.mips.hsub.s.h
-+ mips_hsub_s_w, // llvm.mips.hsub.s.w
-+ mips_hsub_u_d, // llvm.mips.hsub.u.d
-+ mips_hsub_u_h, // llvm.mips.hsub.u.h
-+ mips_hsub_u_w, // llvm.mips.hsub.u.w
-+ mips_ilvev_b, // llvm.mips.ilvev.b
-+ mips_ilvev_d, // llvm.mips.ilvev.d
-+ mips_ilvev_h, // llvm.mips.ilvev.h
-+ mips_ilvev_w, // llvm.mips.ilvev.w
-+ mips_ilvl_b, // llvm.mips.ilvl.b
-+ mips_ilvl_d, // llvm.mips.ilvl.d
-+ mips_ilvl_h, // llvm.mips.ilvl.h
-+ mips_ilvl_w, // llvm.mips.ilvl.w
-+ mips_ilvod_b, // llvm.mips.ilvod.b
-+ mips_ilvod_d, // llvm.mips.ilvod.d
-+ mips_ilvod_h, // llvm.mips.ilvod.h
-+ mips_ilvod_w, // llvm.mips.ilvod.w
-+ mips_ilvr_b, // llvm.mips.ilvr.b
-+ mips_ilvr_d, // llvm.mips.ilvr.d
-+ mips_ilvr_h, // llvm.mips.ilvr.h
-+ mips_ilvr_w, // llvm.mips.ilvr.w
-+ mips_insert_b, // llvm.mips.insert.b
-+ mips_insert_d, // llvm.mips.insert.d
-+ mips_insert_h, // llvm.mips.insert.h
-+ mips_insert_w, // llvm.mips.insert.w
-+ mips_insv, // llvm.mips.insv
-+ mips_insve_b, // llvm.mips.insve.b
-+ mips_insve_d, // llvm.mips.insve.d
-+ mips_insve_h, // llvm.mips.insve.h
-+ mips_insve_w, // llvm.mips.insve.w
-+ mips_lbux, // llvm.mips.lbux
-+ mips_ld_b, // llvm.mips.ld.b
-+ mips_ld_d, // llvm.mips.ld.d
-+ mips_ld_h, // llvm.mips.ld.h
-+ mips_ld_w, // llvm.mips.ld.w
-+ mips_ldi_b, // llvm.mips.ldi.b
-+ mips_ldi_d, // llvm.mips.ldi.d
-+ mips_ldi_h, // llvm.mips.ldi.h
-+ mips_ldi_w, // llvm.mips.ldi.w
-+ mips_lhx, // llvm.mips.lhx
-+ mips_lsa, // llvm.mips.lsa
-+ mips_lwx, // llvm.mips.lwx
-+ mips_madd, // llvm.mips.madd
-+ mips_madd_q_h, // llvm.mips.madd.q.h
-+ mips_madd_q_w, // llvm.mips.madd.q.w
-+ mips_maddr_q_h, // llvm.mips.maddr.q.h
-+ mips_maddr_q_w, // llvm.mips.maddr.q.w
-+ mips_maddu, // llvm.mips.maddu
-+ mips_maddv_b, // llvm.mips.maddv.b
-+ mips_maddv_d, // llvm.mips.maddv.d
-+ mips_maddv_h, // llvm.mips.maddv.h
-+ mips_maddv_w, // llvm.mips.maddv.w
-+ mips_maq_s_w_phl, // llvm.mips.maq.s.w.phl
-+ mips_maq_s_w_phr, // llvm.mips.maq.s.w.phr
-+ mips_maq_sa_w_phl, // llvm.mips.maq.sa.w.phl
-+ mips_maq_sa_w_phr, // llvm.mips.maq.sa.w.phr
-+ mips_max_a_b, // llvm.mips.max.a.b
-+ mips_max_a_d, // llvm.mips.max.a.d
-+ mips_max_a_h, // llvm.mips.max.a.h
-+ mips_max_a_w, // llvm.mips.max.a.w
-+ mips_max_s_b, // llvm.mips.max.s.b
-+ mips_max_s_d, // llvm.mips.max.s.d
-+ mips_max_s_h, // llvm.mips.max.s.h
-+ mips_max_s_w, // llvm.mips.max.s.w
-+ mips_max_u_b, // llvm.mips.max.u.b
-+ mips_max_u_d, // llvm.mips.max.u.d
-+ mips_max_u_h, // llvm.mips.max.u.h
-+ mips_max_u_w, // llvm.mips.max.u.w
-+ mips_maxi_s_b, // llvm.mips.maxi.s.b
-+ mips_maxi_s_d, // llvm.mips.maxi.s.d
-+ mips_maxi_s_h, // llvm.mips.maxi.s.h
-+ mips_maxi_s_w, // llvm.mips.maxi.s.w
-+ mips_maxi_u_b, // llvm.mips.maxi.u.b
-+ mips_maxi_u_d, // llvm.mips.maxi.u.d
-+ mips_maxi_u_h, // llvm.mips.maxi.u.h
-+ mips_maxi_u_w, // llvm.mips.maxi.u.w
-+ mips_min_a_b, // llvm.mips.min.a.b
-+ mips_min_a_d, // llvm.mips.min.a.d
-+ mips_min_a_h, // llvm.mips.min.a.h
-+ mips_min_a_w, // llvm.mips.min.a.w
-+ mips_min_s_b, // llvm.mips.min.s.b
-+ mips_min_s_d, // llvm.mips.min.s.d
-+ mips_min_s_h, // llvm.mips.min.s.h
-+ mips_min_s_w, // llvm.mips.min.s.w
-+ mips_min_u_b, // llvm.mips.min.u.b
-+ mips_min_u_d, // llvm.mips.min.u.d
-+ mips_min_u_h, // llvm.mips.min.u.h
-+ mips_min_u_w, // llvm.mips.min.u.w
-+ mips_mini_s_b, // llvm.mips.mini.s.b
-+ mips_mini_s_d, // llvm.mips.mini.s.d
-+ mips_mini_s_h, // llvm.mips.mini.s.h
-+ mips_mini_s_w, // llvm.mips.mini.s.w
-+ mips_mini_u_b, // llvm.mips.mini.u.b
-+ mips_mini_u_d, // llvm.mips.mini.u.d
-+ mips_mini_u_h, // llvm.mips.mini.u.h
-+ mips_mini_u_w, // llvm.mips.mini.u.w
-+ mips_mod_s_b, // llvm.mips.mod.s.b
-+ mips_mod_s_d, // llvm.mips.mod.s.d
-+ mips_mod_s_h, // llvm.mips.mod.s.h
-+ mips_mod_s_w, // llvm.mips.mod.s.w
-+ mips_mod_u_b, // llvm.mips.mod.u.b
-+ mips_mod_u_d, // llvm.mips.mod.u.d
-+ mips_mod_u_h, // llvm.mips.mod.u.h
-+ mips_mod_u_w, // llvm.mips.mod.u.w
-+ mips_modsub, // llvm.mips.modsub
-+ mips_move_v, // llvm.mips.move.v
-+ mips_msub, // llvm.mips.msub
-+ mips_msub_q_h, // llvm.mips.msub.q.h
-+ mips_msub_q_w, // llvm.mips.msub.q.w
-+ mips_msubr_q_h, // llvm.mips.msubr.q.h
-+ mips_msubr_q_w, // llvm.mips.msubr.q.w
-+ mips_msubu, // llvm.mips.msubu
-+ mips_msubv_b, // llvm.mips.msubv.b
-+ mips_msubv_d, // llvm.mips.msubv.d
-+ mips_msubv_h, // llvm.mips.msubv.h
-+ mips_msubv_w, // llvm.mips.msubv.w
-+ mips_mthlip, // llvm.mips.mthlip
-+ mips_mul_ph, // llvm.mips.mul.ph
-+ mips_mul_q_h, // llvm.mips.mul.q.h
-+ mips_mul_q_w, // llvm.mips.mul.q.w
-+ mips_mul_s_ph, // llvm.mips.mul.s.ph
-+ mips_muleq_s_w_phl, // llvm.mips.muleq.s.w.phl
-+ mips_muleq_s_w_phr, // llvm.mips.muleq.s.w.phr
-+ mips_muleu_s_ph_qbl, // llvm.mips.muleu.s.ph.qbl
-+ mips_muleu_s_ph_qbr, // llvm.mips.muleu.s.ph.qbr
-+ mips_mulq_rs_ph, // llvm.mips.mulq.rs.ph
-+ mips_mulq_rs_w, // llvm.mips.mulq.rs.w
-+ mips_mulq_s_ph, // llvm.mips.mulq.s.ph
-+ mips_mulq_s_w, // llvm.mips.mulq.s.w
-+ mips_mulr_q_h, // llvm.mips.mulr.q.h
-+ mips_mulr_q_w, // llvm.mips.mulr.q.w
-+ mips_mulsa_w_ph, // llvm.mips.mulsa.w.ph
-+ mips_mulsaq_s_w_ph, // llvm.mips.mulsaq.s.w.ph
-+ mips_mult, // llvm.mips.mult
-+ mips_multu, // llvm.mips.multu
-+ mips_mulv_b, // llvm.mips.mulv.b
-+ mips_mulv_d, // llvm.mips.mulv.d
-+ mips_mulv_h, // llvm.mips.mulv.h
-+ mips_mulv_w, // llvm.mips.mulv.w
-+ mips_nloc_b, // llvm.mips.nloc.b
-+ mips_nloc_d, // llvm.mips.nloc.d
-+ mips_nloc_h, // llvm.mips.nloc.h
-+ mips_nloc_w, // llvm.mips.nloc.w
-+ mips_nlzc_b, // llvm.mips.nlzc.b
-+ mips_nlzc_d, // llvm.mips.nlzc.d
-+ mips_nlzc_h, // llvm.mips.nlzc.h
-+ mips_nlzc_w, // llvm.mips.nlzc.w
-+ mips_nor_v, // llvm.mips.nor.v
-+ mips_nori_b, // llvm.mips.nori.b
-+ mips_or_v, // llvm.mips.or.v
-+ mips_ori_b, // llvm.mips.ori.b
-+ mips_packrl_ph, // llvm.mips.packrl.ph
-+ mips_pckev_b, // llvm.mips.pckev.b
-+ mips_pckev_d, // llvm.mips.pckev.d
-+ mips_pckev_h, // llvm.mips.pckev.h
-+ mips_pckev_w, // llvm.mips.pckev.w
-+ mips_pckod_b, // llvm.mips.pckod.b
-+ mips_pckod_d, // llvm.mips.pckod.d
-+ mips_pckod_h, // llvm.mips.pckod.h
-+ mips_pckod_w, // llvm.mips.pckod.w
-+ mips_pcnt_b, // llvm.mips.pcnt.b
-+ mips_pcnt_d, // llvm.mips.pcnt.d
-+ mips_pcnt_h, // llvm.mips.pcnt.h
-+ mips_pcnt_w, // llvm.mips.pcnt.w
-+ mips_pick_ph, // llvm.mips.pick.ph
-+ mips_pick_qb, // llvm.mips.pick.qb
-+ mips_preceq_w_phl, // llvm.mips.preceq.w.phl
-+ mips_preceq_w_phr, // llvm.mips.preceq.w.phr
-+ mips_precequ_ph_qbl, // llvm.mips.precequ.ph.qbl
-+ mips_precequ_ph_qbla, // llvm.mips.precequ.ph.qbla
-+ mips_precequ_ph_qbr, // llvm.mips.precequ.ph.qbr
-+ mips_precequ_ph_qbra, // llvm.mips.precequ.ph.qbra
-+ mips_preceu_ph_qbl, // llvm.mips.preceu.ph.qbl
-+ mips_preceu_ph_qbla, // llvm.mips.preceu.ph.qbla
-+ mips_preceu_ph_qbr, // llvm.mips.preceu.ph.qbr
-+ mips_preceu_ph_qbra, // llvm.mips.preceu.ph.qbra
-+ mips_precr_qb_ph, // llvm.mips.precr.qb.ph
-+ mips_precr_sra_ph_w, // llvm.mips.precr.sra.ph.w
-+ mips_precr_sra_r_ph_w, // llvm.mips.precr.sra.r.ph.w
-+ mips_precrq_ph_w, // llvm.mips.precrq.ph.w
-+ mips_precrq_qb_ph, // llvm.mips.precrq.qb.ph
-+ mips_precrq_rs_ph_w, // llvm.mips.precrq.rs.ph.w
-+ mips_precrqu_s_qb_ph, // llvm.mips.precrqu.s.qb.ph
-+ mips_prepend, // llvm.mips.prepend
-+ mips_raddu_w_qb, // llvm.mips.raddu.w.qb
-+ mips_rddsp, // llvm.mips.rddsp
-+ mips_repl_ph, // llvm.mips.repl.ph
-+ mips_repl_qb, // llvm.mips.repl.qb
-+ mips_sat_s_b, // llvm.mips.sat.s.b
-+ mips_sat_s_d, // llvm.mips.sat.s.d
-+ mips_sat_s_h, // llvm.mips.sat.s.h
-+ mips_sat_s_w, // llvm.mips.sat.s.w
-+ mips_sat_u_b, // llvm.mips.sat.u.b
-+ mips_sat_u_d, // llvm.mips.sat.u.d
-+ mips_sat_u_h, // llvm.mips.sat.u.h
-+ mips_sat_u_w, // llvm.mips.sat.u.w
-+ mips_shf_b, // llvm.mips.shf.b
-+ mips_shf_h, // llvm.mips.shf.h
-+ mips_shf_w, // llvm.mips.shf.w
-+ mips_shilo, // llvm.mips.shilo
-+ mips_shll_ph, // llvm.mips.shll.ph
-+ mips_shll_qb, // llvm.mips.shll.qb
-+ mips_shll_s_ph, // llvm.mips.shll.s.ph
-+ mips_shll_s_w, // llvm.mips.shll.s.w
-+ mips_shra_ph, // llvm.mips.shra.ph
-+ mips_shra_qb, // llvm.mips.shra.qb
-+ mips_shra_r_ph, // llvm.mips.shra.r.ph
-+ mips_shra_r_qb, // llvm.mips.shra.r.qb
-+ mips_shra_r_w, // llvm.mips.shra.r.w
-+ mips_shrl_ph, // llvm.mips.shrl.ph
-+ mips_shrl_qb, // llvm.mips.shrl.qb
-+ mips_sld_b, // llvm.mips.sld.b
-+ mips_sld_d, // llvm.mips.sld.d
-+ mips_sld_h, // llvm.mips.sld.h
-+ mips_sld_w, // llvm.mips.sld.w
-+ mips_sldi_b, // llvm.mips.sldi.b
-+ mips_sldi_d, // llvm.mips.sldi.d
-+ mips_sldi_h, // llvm.mips.sldi.h
-+ mips_sldi_w, // llvm.mips.sldi.w
-+ mips_sll_b, // llvm.mips.sll.b
-+ mips_sll_d, // llvm.mips.sll.d
-+ mips_sll_h, // llvm.mips.sll.h
-+ mips_sll_w, // llvm.mips.sll.w
-+ mips_slli_b, // llvm.mips.slli.b
-+ mips_slli_d, // llvm.mips.slli.d
-+ mips_slli_h, // llvm.mips.slli.h
-+ mips_slli_w, // llvm.mips.slli.w
-+ mips_splat_b, // llvm.mips.splat.b
-+ mips_splat_d, // llvm.mips.splat.d
-+ mips_splat_h, // llvm.mips.splat.h
-+ mips_splat_w, // llvm.mips.splat.w
-+ mips_splati_b, // llvm.mips.splati.b
-+ mips_splati_d, // llvm.mips.splati.d
-+ mips_splati_h, // llvm.mips.splati.h
-+ mips_splati_w, // llvm.mips.splati.w
-+ mips_sra_b, // llvm.mips.sra.b
-+ mips_sra_d, // llvm.mips.sra.d
-+ mips_sra_h, // llvm.mips.sra.h
-+ mips_sra_w, // llvm.mips.sra.w
-+ mips_srai_b, // llvm.mips.srai.b
-+ mips_srai_d, // llvm.mips.srai.d
-+ mips_srai_h, // llvm.mips.srai.h
-+ mips_srai_w, // llvm.mips.srai.w
-+ mips_srar_b, // llvm.mips.srar.b
-+ mips_srar_d, // llvm.mips.srar.d
-+ mips_srar_h, // llvm.mips.srar.h
-+ mips_srar_w, // llvm.mips.srar.w
-+ mips_srari_b, // llvm.mips.srari.b
-+ mips_srari_d, // llvm.mips.srari.d
-+ mips_srari_h, // llvm.mips.srari.h
-+ mips_srari_w, // llvm.mips.srari.w
-+ mips_srl_b, // llvm.mips.srl.b
-+ mips_srl_d, // llvm.mips.srl.d
-+ mips_srl_h, // llvm.mips.srl.h
-+ mips_srl_w, // llvm.mips.srl.w
-+ mips_srli_b, // llvm.mips.srli.b
-+ mips_srli_d, // llvm.mips.srli.d
-+ mips_srli_h, // llvm.mips.srli.h
-+ mips_srli_w, // llvm.mips.srli.w
-+ mips_srlr_b, // llvm.mips.srlr.b
-+ mips_srlr_d, // llvm.mips.srlr.d
-+ mips_srlr_h, // llvm.mips.srlr.h
-+ mips_srlr_w, // llvm.mips.srlr.w
-+ mips_srlri_b, // llvm.mips.srlri.b
-+ mips_srlri_d, // llvm.mips.srlri.d
-+ mips_srlri_h, // llvm.mips.srlri.h
-+ mips_srlri_w, // llvm.mips.srlri.w
-+ mips_st_b, // llvm.mips.st.b
-+ mips_st_d, // llvm.mips.st.d
-+ mips_st_h, // llvm.mips.st.h
-+ mips_st_w, // llvm.mips.st.w
-+ mips_subq_ph, // llvm.mips.subq.ph
-+ mips_subq_s_ph, // llvm.mips.subq.s.ph
-+ mips_subq_s_w, // llvm.mips.subq.s.w
-+ mips_subqh_ph, // llvm.mips.subqh.ph
-+ mips_subqh_r_ph, // llvm.mips.subqh.r.ph
-+ mips_subqh_r_w, // llvm.mips.subqh.r.w
-+ mips_subqh_w, // llvm.mips.subqh.w
-+ mips_subs_s_b, // llvm.mips.subs.s.b
-+ mips_subs_s_d, // llvm.mips.subs.s.d
-+ mips_subs_s_h, // llvm.mips.subs.s.h
-+ mips_subs_s_w, // llvm.mips.subs.s.w
-+ mips_subs_u_b, // llvm.mips.subs.u.b
-+ mips_subs_u_d, // llvm.mips.subs.u.d
-+ mips_subs_u_h, // llvm.mips.subs.u.h
-+ mips_subs_u_w, // llvm.mips.subs.u.w
-+ mips_subsus_u_b, // llvm.mips.subsus.u.b
-+ mips_subsus_u_d, // llvm.mips.subsus.u.d
-+ mips_subsus_u_h, // llvm.mips.subsus.u.h
-+ mips_subsus_u_w, // llvm.mips.subsus.u.w
-+ mips_subsuu_s_b, // llvm.mips.subsuu.s.b
-+ mips_subsuu_s_d, // llvm.mips.subsuu.s.d
-+ mips_subsuu_s_h, // llvm.mips.subsuu.s.h
-+ mips_subsuu_s_w, // llvm.mips.subsuu.s.w
-+ mips_subu_ph, // llvm.mips.subu.ph
-+ mips_subu_qb, // llvm.mips.subu.qb
-+ mips_subu_s_ph, // llvm.mips.subu.s.ph
-+ mips_subu_s_qb, // llvm.mips.subu.s.qb
-+ mips_subuh_qb, // llvm.mips.subuh.qb
-+ mips_subuh_r_qb, // llvm.mips.subuh.r.qb
-+ mips_subv_b, // llvm.mips.subv.b
-+ mips_subv_d, // llvm.mips.subv.d
-+ mips_subv_h, // llvm.mips.subv.h
-+ mips_subv_w, // llvm.mips.subv.w
-+ mips_subvi_b, // llvm.mips.subvi.b
-+ mips_subvi_d, // llvm.mips.subvi.d
-+ mips_subvi_h, // llvm.mips.subvi.h
-+ mips_subvi_w, // llvm.mips.subvi.w
-+ mips_vshf_b, // llvm.mips.vshf.b
-+ mips_vshf_d, // llvm.mips.vshf.d
-+ mips_vshf_h, // llvm.mips.vshf.h
-+ mips_vshf_w, // llvm.mips.vshf.w
-+ mips_wrdsp, // llvm.mips.wrdsp
-+ mips_xor_v, // llvm.mips.xor.v
-+ mips_xori_b, // llvm.mips.xori.b
-+ nvvm_abs_i, // llvm.nvvm.abs.i
-+ nvvm_abs_ll, // llvm.nvvm.abs.ll
-+ nvvm_add_rm_d, // llvm.nvvm.add.rm.d
-+ nvvm_add_rm_f, // llvm.nvvm.add.rm.f
-+ nvvm_add_rm_ftz_f, // llvm.nvvm.add.rm.ftz.f
-+ nvvm_add_rn_d, // llvm.nvvm.add.rn.d
-+ nvvm_add_rn_f, // llvm.nvvm.add.rn.f
-+ nvvm_add_rn_ftz_f, // llvm.nvvm.add.rn.ftz.f
-+ nvvm_add_rp_d, // llvm.nvvm.add.rp.d
-+ nvvm_add_rp_f, // llvm.nvvm.add.rp.f
-+ nvvm_add_rp_ftz_f, // llvm.nvvm.add.rp.ftz.f
-+ nvvm_add_rz_d, // llvm.nvvm.add.rz.d
-+ nvvm_add_rz_f, // llvm.nvvm.add.rz.f
-+ nvvm_add_rz_ftz_f, // llvm.nvvm.add.rz.ftz.f
-+ nvvm_atomic_add_gen_f_cta, // llvm.nvvm.atomic.add.gen.f.cta
-+ nvvm_atomic_add_gen_f_sys, // llvm.nvvm.atomic.add.gen.f.sys
-+ nvvm_atomic_add_gen_i_cta, // llvm.nvvm.atomic.add.gen.i.cta
-+ nvvm_atomic_add_gen_i_sys, // llvm.nvvm.atomic.add.gen.i.sys
-+ nvvm_atomic_and_gen_i_cta, // llvm.nvvm.atomic.and.gen.i.cta
-+ nvvm_atomic_and_gen_i_sys, // llvm.nvvm.atomic.and.gen.i.sys
-+ nvvm_atomic_cas_gen_i_cta, // llvm.nvvm.atomic.cas.gen.i.cta
-+ nvvm_atomic_cas_gen_i_sys, // llvm.nvvm.atomic.cas.gen.i.sys
-+ nvvm_atomic_dec_gen_i_cta, // llvm.nvvm.atomic.dec.gen.i.cta
-+ nvvm_atomic_dec_gen_i_sys, // llvm.nvvm.atomic.dec.gen.i.sys
-+ nvvm_atomic_exch_gen_i_cta, // llvm.nvvm.atomic.exch.gen.i.cta
-+ nvvm_atomic_exch_gen_i_sys, // llvm.nvvm.atomic.exch.gen.i.sys
-+ nvvm_atomic_inc_gen_i_cta, // llvm.nvvm.atomic.inc.gen.i.cta
-+ nvvm_atomic_inc_gen_i_sys, // llvm.nvvm.atomic.inc.gen.i.sys
-+ nvvm_atomic_load_add_f32, // llvm.nvvm.atomic.load.add.f32
-+ nvvm_atomic_load_dec_32, // llvm.nvvm.atomic.load.dec.32
-+ nvvm_atomic_load_inc_32, // llvm.nvvm.atomic.load.inc.32
-+ nvvm_atomic_max_gen_i_cta, // llvm.nvvm.atomic.max.gen.i.cta
-+ nvvm_atomic_max_gen_i_sys, // llvm.nvvm.atomic.max.gen.i.sys
-+ nvvm_atomic_min_gen_i_cta, // llvm.nvvm.atomic.min.gen.i.cta
-+ nvvm_atomic_min_gen_i_sys, // llvm.nvvm.atomic.min.gen.i.sys
-+ nvvm_atomic_or_gen_i_cta, // llvm.nvvm.atomic.or.gen.i.cta
-+ nvvm_atomic_or_gen_i_sys, // llvm.nvvm.atomic.or.gen.i.sys
-+ nvvm_atomic_xor_gen_i_cta, // llvm.nvvm.atomic.xor.gen.i.cta
-+ nvvm_atomic_xor_gen_i_sys, // llvm.nvvm.atomic.xor.gen.i.sys
-+ nvvm_bar_sync, // llvm.nvvm.bar.sync
-+ nvvm_barrier0, // llvm.nvvm.barrier0
-+ nvvm_barrier0_and, // llvm.nvvm.barrier0.and
-+ nvvm_barrier0_or, // llvm.nvvm.barrier0.or
-+ nvvm_barrier0_popc, // llvm.nvvm.barrier0.popc
-+ nvvm_bitcast_d2ll, // llvm.nvvm.bitcast.d2ll
-+ nvvm_bitcast_f2i, // llvm.nvvm.bitcast.f2i
-+ nvvm_bitcast_i2f, // llvm.nvvm.bitcast.i2f
-+ nvvm_bitcast_ll2d, // llvm.nvvm.bitcast.ll2d
-+ nvvm_brev32, // llvm.nvvm.brev32
-+ nvvm_brev64, // llvm.nvvm.brev64
-+ nvvm_ceil_d, // llvm.nvvm.ceil.d
-+ nvvm_ceil_f, // llvm.nvvm.ceil.f
-+ nvvm_ceil_ftz_f, // llvm.nvvm.ceil.ftz.f
-+ nvvm_clz_i, // llvm.nvvm.clz.i
-+ nvvm_clz_ll, // llvm.nvvm.clz.ll
-+ nvvm_compiler_error, // llvm.nvvm.compiler.error
-+ nvvm_compiler_warn, // llvm.nvvm.compiler.warn
-+ nvvm_cos_approx_f, // llvm.nvvm.cos.approx.f
-+ nvvm_cos_approx_ftz_f, // llvm.nvvm.cos.approx.ftz.f
-+ nvvm_d2f_rm, // llvm.nvvm.d2f.rm
-+ nvvm_d2f_rm_ftz, // llvm.nvvm.d2f.rm.ftz
-+ nvvm_d2f_rn, // llvm.nvvm.d2f.rn
-+ nvvm_d2f_rn_ftz, // llvm.nvvm.d2f.rn.ftz
-+ nvvm_d2f_rp, // llvm.nvvm.d2f.rp
-+ nvvm_d2f_rp_ftz, // llvm.nvvm.d2f.rp.ftz
-+ nvvm_d2f_rz, // llvm.nvvm.d2f.rz
-+ nvvm_d2f_rz_ftz, // llvm.nvvm.d2f.rz.ftz
-+ nvvm_d2i_hi, // llvm.nvvm.d2i.hi
-+ nvvm_d2i_lo, // llvm.nvvm.d2i.lo
-+ nvvm_d2i_rm, // llvm.nvvm.d2i.rm
-+ nvvm_d2i_rn, // llvm.nvvm.d2i.rn
-+ nvvm_d2i_rp, // llvm.nvvm.d2i.rp
-+ nvvm_d2i_rz, // llvm.nvvm.d2i.rz
-+ nvvm_d2ll_rm, // llvm.nvvm.d2ll.rm
-+ nvvm_d2ll_rn, // llvm.nvvm.d2ll.rn
-+ nvvm_d2ll_rp, // llvm.nvvm.d2ll.rp
-+ nvvm_d2ll_rz, // llvm.nvvm.d2ll.rz
-+ nvvm_d2ui_rm, // llvm.nvvm.d2ui.rm
-+ nvvm_d2ui_rn, // llvm.nvvm.d2ui.rn
-+ nvvm_d2ui_rp, // llvm.nvvm.d2ui.rp
-+ nvvm_d2ui_rz, // llvm.nvvm.d2ui.rz
-+ nvvm_d2ull_rm, // llvm.nvvm.d2ull.rm
-+ nvvm_d2ull_rn, // llvm.nvvm.d2ull.rn
-+ nvvm_d2ull_rp, // llvm.nvvm.d2ull.rp
-+ nvvm_d2ull_rz, // llvm.nvvm.d2ull.rz
-+ nvvm_div_approx_f, // llvm.nvvm.div.approx.f
-+ nvvm_div_approx_ftz_f, // llvm.nvvm.div.approx.ftz.f
-+ nvvm_div_rm_d, // llvm.nvvm.div.rm.d
-+ nvvm_div_rm_f, // llvm.nvvm.div.rm.f
-+ nvvm_div_rm_ftz_f, // llvm.nvvm.div.rm.ftz.f
-+ nvvm_div_rn_d, // llvm.nvvm.div.rn.d
-+ nvvm_div_rn_f, // llvm.nvvm.div.rn.f
-+ nvvm_div_rn_ftz_f, // llvm.nvvm.div.rn.ftz.f
-+ nvvm_div_rp_d, // llvm.nvvm.div.rp.d
-+ nvvm_div_rp_f, // llvm.nvvm.div.rp.f
-+ nvvm_div_rp_ftz_f, // llvm.nvvm.div.rp.ftz.f
-+ nvvm_div_rz_d, // llvm.nvvm.div.rz.d
-+ nvvm_div_rz_f, // llvm.nvvm.div.rz.f
-+ nvvm_div_rz_ftz_f, // llvm.nvvm.div.rz.ftz.f
-+ nvvm_ex2_approx_d, // llvm.nvvm.ex2.approx.d
-+ nvvm_ex2_approx_f, // llvm.nvvm.ex2.approx.f
-+ nvvm_ex2_approx_ftz_f, // llvm.nvvm.ex2.approx.ftz.f
-+ nvvm_f2h_rn, // llvm.nvvm.f2h.rn
-+ nvvm_f2h_rn_ftz, // llvm.nvvm.f2h.rn.ftz
-+ nvvm_f2i_rm, // llvm.nvvm.f2i.rm
-+ nvvm_f2i_rm_ftz, // llvm.nvvm.f2i.rm.ftz
-+ nvvm_f2i_rn, // llvm.nvvm.f2i.rn
-+ nvvm_f2i_rn_ftz, // llvm.nvvm.f2i.rn.ftz
-+ nvvm_f2i_rp, // llvm.nvvm.f2i.rp
-+ nvvm_f2i_rp_ftz, // llvm.nvvm.f2i.rp.ftz
-+ nvvm_f2i_rz, // llvm.nvvm.f2i.rz
-+ nvvm_f2i_rz_ftz, // llvm.nvvm.f2i.rz.ftz
-+ nvvm_f2ll_rm, // llvm.nvvm.f2ll.rm
-+ nvvm_f2ll_rm_ftz, // llvm.nvvm.f2ll.rm.ftz
-+ nvvm_f2ll_rn, // llvm.nvvm.f2ll.rn
-+ nvvm_f2ll_rn_ftz, // llvm.nvvm.f2ll.rn.ftz
-+ nvvm_f2ll_rp, // llvm.nvvm.f2ll.rp
-+ nvvm_f2ll_rp_ftz, // llvm.nvvm.f2ll.rp.ftz
-+ nvvm_f2ll_rz, // llvm.nvvm.f2ll.rz
-+ nvvm_f2ll_rz_ftz, // llvm.nvvm.f2ll.rz.ftz
-+ nvvm_f2ui_rm, // llvm.nvvm.f2ui.rm
-+ nvvm_f2ui_rm_ftz, // llvm.nvvm.f2ui.rm.ftz
-+ nvvm_f2ui_rn, // llvm.nvvm.f2ui.rn
-+ nvvm_f2ui_rn_ftz, // llvm.nvvm.f2ui.rn.ftz
-+ nvvm_f2ui_rp, // llvm.nvvm.f2ui.rp
-+ nvvm_f2ui_rp_ftz, // llvm.nvvm.f2ui.rp.ftz
-+ nvvm_f2ui_rz, // llvm.nvvm.f2ui.rz
-+ nvvm_f2ui_rz_ftz, // llvm.nvvm.f2ui.rz.ftz
-+ nvvm_f2ull_rm, // llvm.nvvm.f2ull.rm
-+ nvvm_f2ull_rm_ftz, // llvm.nvvm.f2ull.rm.ftz
-+ nvvm_f2ull_rn, // llvm.nvvm.f2ull.rn
-+ nvvm_f2ull_rn_ftz, // llvm.nvvm.f2ull.rn.ftz
-+ nvvm_f2ull_rp, // llvm.nvvm.f2ull.rp
-+ nvvm_f2ull_rp_ftz, // llvm.nvvm.f2ull.rp.ftz
-+ nvvm_f2ull_rz, // llvm.nvvm.f2ull.rz
-+ nvvm_f2ull_rz_ftz, // llvm.nvvm.f2ull.rz.ftz
-+ nvvm_fabs_d, // llvm.nvvm.fabs.d
-+ nvvm_fabs_f, // llvm.nvvm.fabs.f
-+ nvvm_fabs_ftz_f, // llvm.nvvm.fabs.ftz.f
-+ nvvm_floor_d, // llvm.nvvm.floor.d
-+ nvvm_floor_f, // llvm.nvvm.floor.f
-+ nvvm_floor_ftz_f, // llvm.nvvm.floor.ftz.f
-+ nvvm_fma_rm_d, // llvm.nvvm.fma.rm.d
-+ nvvm_fma_rm_f, // llvm.nvvm.fma.rm.f
-+ nvvm_fma_rm_ftz_f, // llvm.nvvm.fma.rm.ftz.f
-+ nvvm_fma_rn_d, // llvm.nvvm.fma.rn.d
-+ nvvm_fma_rn_f, // llvm.nvvm.fma.rn.f
-+ nvvm_fma_rn_ftz_f, // llvm.nvvm.fma.rn.ftz.f
-+ nvvm_fma_rp_d, // llvm.nvvm.fma.rp.d
-+ nvvm_fma_rp_f, // llvm.nvvm.fma.rp.f
-+ nvvm_fma_rp_ftz_f, // llvm.nvvm.fma.rp.ftz.f
-+ nvvm_fma_rz_d, // llvm.nvvm.fma.rz.d
-+ nvvm_fma_rz_f, // llvm.nvvm.fma.rz.f
-+ nvvm_fma_rz_ftz_f, // llvm.nvvm.fma.rz.ftz.f
-+ nvvm_fmax_d, // llvm.nvvm.fmax.d
-+ nvvm_fmax_f, // llvm.nvvm.fmax.f
-+ nvvm_fmax_ftz_f, // llvm.nvvm.fmax.ftz.f
-+ nvvm_fmin_d, // llvm.nvvm.fmin.d
-+ nvvm_fmin_f, // llvm.nvvm.fmin.f
-+ nvvm_fmin_ftz_f, // llvm.nvvm.fmin.ftz.f
-+ nvvm_h2f, // llvm.nvvm.h2f
-+ nvvm_i2d_rm, // llvm.nvvm.i2d.rm
-+ nvvm_i2d_rn, // llvm.nvvm.i2d.rn
-+ nvvm_i2d_rp, // llvm.nvvm.i2d.rp
-+ nvvm_i2d_rz, // llvm.nvvm.i2d.rz
-+ nvvm_i2f_rm, // llvm.nvvm.i2f.rm
-+ nvvm_i2f_rn, // llvm.nvvm.i2f.rn
-+ nvvm_i2f_rp, // llvm.nvvm.i2f.rp
-+ nvvm_i2f_rz, // llvm.nvvm.i2f.rz
-+ nvvm_isspacep_const, // llvm.nvvm.isspacep.const
-+ nvvm_isspacep_global, // llvm.nvvm.isspacep.global
-+ nvvm_isspacep_local, // llvm.nvvm.isspacep.local
-+ nvvm_isspacep_shared, // llvm.nvvm.isspacep.shared
-+ nvvm_istypep_sampler, // llvm.nvvm.istypep.sampler
-+ nvvm_istypep_surface, // llvm.nvvm.istypep.surface
-+ nvvm_istypep_texture, // llvm.nvvm.istypep.texture
-+ nvvm_ldg_global_f, // llvm.nvvm.ldg.global.f
-+ nvvm_ldg_global_i, // llvm.nvvm.ldg.global.i
-+ nvvm_ldg_global_p, // llvm.nvvm.ldg.global.p
-+ nvvm_ldu_global_f, // llvm.nvvm.ldu.global.f
-+ nvvm_ldu_global_i, // llvm.nvvm.ldu.global.i
-+ nvvm_ldu_global_p, // llvm.nvvm.ldu.global.p
-+ nvvm_lg2_approx_d, // llvm.nvvm.lg2.approx.d
-+ nvvm_lg2_approx_f, // llvm.nvvm.lg2.approx.f
-+ nvvm_lg2_approx_ftz_f, // llvm.nvvm.lg2.approx.ftz.f
-+ nvvm_ll2d_rm, // llvm.nvvm.ll2d.rm
-+ nvvm_ll2d_rn, // llvm.nvvm.ll2d.rn
-+ nvvm_ll2d_rp, // llvm.nvvm.ll2d.rp
-+ nvvm_ll2d_rz, // llvm.nvvm.ll2d.rz
-+ nvvm_ll2f_rm, // llvm.nvvm.ll2f.rm
-+ nvvm_ll2f_rn, // llvm.nvvm.ll2f.rn
-+ nvvm_ll2f_rp, // llvm.nvvm.ll2f.rp
-+ nvvm_ll2f_rz, // llvm.nvvm.ll2f.rz
-+ nvvm_lohi_i2d, // llvm.nvvm.lohi.i2d
-+ nvvm_max_i, // llvm.nvvm.max.i
-+ nvvm_max_ll, // llvm.nvvm.max.ll
-+ nvvm_max_ui, // llvm.nvvm.max.ui
-+ nvvm_max_ull, // llvm.nvvm.max.ull
-+ nvvm_membar_cta, // llvm.nvvm.membar.cta
-+ nvvm_membar_gl, // llvm.nvvm.membar.gl
-+ nvvm_membar_sys, // llvm.nvvm.membar.sys
-+ nvvm_min_i, // llvm.nvvm.min.i
-+ nvvm_min_ll, // llvm.nvvm.min.ll
-+ nvvm_min_ui, // llvm.nvvm.min.ui
-+ nvvm_min_ull, // llvm.nvvm.min.ull
-+ nvvm_move_double, // llvm.nvvm.move.double
-+ nvvm_move_float, // llvm.nvvm.move.float
-+ nvvm_move_i16, // llvm.nvvm.move.i16
-+ nvvm_move_i32, // llvm.nvvm.move.i32
-+ nvvm_move_i64, // llvm.nvvm.move.i64
-+ nvvm_move_ptr, // llvm.nvvm.move.ptr
-+ nvvm_mul_rm_d, // llvm.nvvm.mul.rm.d
-+ nvvm_mul_rm_f, // llvm.nvvm.mul.rm.f
-+ nvvm_mul_rm_ftz_f, // llvm.nvvm.mul.rm.ftz.f
-+ nvvm_mul_rn_d, // llvm.nvvm.mul.rn.d
-+ nvvm_mul_rn_f, // llvm.nvvm.mul.rn.f
-+ nvvm_mul_rn_ftz_f, // llvm.nvvm.mul.rn.ftz.f
-+ nvvm_mul_rp_d, // llvm.nvvm.mul.rp.d
-+ nvvm_mul_rp_f, // llvm.nvvm.mul.rp.f
-+ nvvm_mul_rp_ftz_f, // llvm.nvvm.mul.rp.ftz.f
-+ nvvm_mul_rz_d, // llvm.nvvm.mul.rz.d
-+ nvvm_mul_rz_f, // llvm.nvvm.mul.rz.f
-+ nvvm_mul_rz_ftz_f, // llvm.nvvm.mul.rz.ftz.f
-+ nvvm_mul24_i, // llvm.nvvm.mul24.i
-+ nvvm_mul24_ui, // llvm.nvvm.mul24.ui
-+ nvvm_mulhi_i, // llvm.nvvm.mulhi.i
-+ nvvm_mulhi_ll, // llvm.nvvm.mulhi.ll
-+ nvvm_mulhi_ui, // llvm.nvvm.mulhi.ui
-+ nvvm_mulhi_ull, // llvm.nvvm.mulhi.ull
-+ nvvm_popc_i, // llvm.nvvm.popc.i
-+ nvvm_popc_ll, // llvm.nvvm.popc.ll
-+ nvvm_prmt, // llvm.nvvm.prmt
-+ nvvm_ptr_constant_to_gen, // llvm.nvvm.ptr.constant.to.gen
-+ nvvm_ptr_gen_to_constant, // llvm.nvvm.ptr.gen.to.constant
-+ nvvm_ptr_gen_to_global, // llvm.nvvm.ptr.gen.to.global
-+ nvvm_ptr_gen_to_local, // llvm.nvvm.ptr.gen.to.local
-+ nvvm_ptr_gen_to_param, // llvm.nvvm.ptr.gen.to.param
-+ nvvm_ptr_gen_to_shared, // llvm.nvvm.ptr.gen.to.shared
-+ nvvm_ptr_global_to_gen, // llvm.nvvm.ptr.global.to.gen
-+ nvvm_ptr_local_to_gen, // llvm.nvvm.ptr.local.to.gen
-+ nvvm_ptr_shared_to_gen, // llvm.nvvm.ptr.shared.to.gen
-+ nvvm_rcp_approx_ftz_d, // llvm.nvvm.rcp.approx.ftz.d
-+ nvvm_rcp_rm_d, // llvm.nvvm.rcp.rm.d
-+ nvvm_rcp_rm_f, // llvm.nvvm.rcp.rm.f
-+ nvvm_rcp_rm_ftz_f, // llvm.nvvm.rcp.rm.ftz.f
-+ nvvm_rcp_rn_d, // llvm.nvvm.rcp.rn.d
-+ nvvm_rcp_rn_f, // llvm.nvvm.rcp.rn.f
-+ nvvm_rcp_rn_ftz_f, // llvm.nvvm.rcp.rn.ftz.f
-+ nvvm_rcp_rp_d, // llvm.nvvm.rcp.rp.d
-+ nvvm_rcp_rp_f, // llvm.nvvm.rcp.rp.f
-+ nvvm_rcp_rp_ftz_f, // llvm.nvvm.rcp.rp.ftz.f
-+ nvvm_rcp_rz_d, // llvm.nvvm.rcp.rz.d
-+ nvvm_rcp_rz_f, // llvm.nvvm.rcp.rz.f
-+ nvvm_rcp_rz_ftz_f, // llvm.nvvm.rcp.rz.ftz.f
-+ nvvm_read_ptx_sreg_clock, // llvm.nvvm.read.ptx.sreg.clock
-+ nvvm_read_ptx_sreg_clock64, // llvm.nvvm.read.ptx.sreg.clock64
-+ nvvm_read_ptx_sreg_ctaid_w, // llvm.nvvm.read.ptx.sreg.ctaid.w
-+ nvvm_read_ptx_sreg_ctaid_x, // llvm.nvvm.read.ptx.sreg.ctaid.x
-+ nvvm_read_ptx_sreg_ctaid_y, // llvm.nvvm.read.ptx.sreg.ctaid.y
-+ nvvm_read_ptx_sreg_ctaid_z, // llvm.nvvm.read.ptx.sreg.ctaid.z
-+ nvvm_read_ptx_sreg_envreg0, // llvm.nvvm.read.ptx.sreg.envreg0
-+ nvvm_read_ptx_sreg_envreg1, // llvm.nvvm.read.ptx.sreg.envreg1
-+ nvvm_read_ptx_sreg_envreg10, // llvm.nvvm.read.ptx.sreg.envreg10
-+ nvvm_read_ptx_sreg_envreg11, // llvm.nvvm.read.ptx.sreg.envreg11
-+ nvvm_read_ptx_sreg_envreg12, // llvm.nvvm.read.ptx.sreg.envreg12
-+ nvvm_read_ptx_sreg_envreg13, // llvm.nvvm.read.ptx.sreg.envreg13
-+ nvvm_read_ptx_sreg_envreg14, // llvm.nvvm.read.ptx.sreg.envreg14
-+ nvvm_read_ptx_sreg_envreg15, // llvm.nvvm.read.ptx.sreg.envreg15
-+ nvvm_read_ptx_sreg_envreg16, // llvm.nvvm.read.ptx.sreg.envreg16
-+ nvvm_read_ptx_sreg_envreg17, // llvm.nvvm.read.ptx.sreg.envreg17
-+ nvvm_read_ptx_sreg_envreg18, // llvm.nvvm.read.ptx.sreg.envreg18
-+ nvvm_read_ptx_sreg_envreg19, // llvm.nvvm.read.ptx.sreg.envreg19
-+ nvvm_read_ptx_sreg_envreg2, // llvm.nvvm.read.ptx.sreg.envreg2
-+ nvvm_read_ptx_sreg_envreg20, // llvm.nvvm.read.ptx.sreg.envreg20
-+ nvvm_read_ptx_sreg_envreg21, // llvm.nvvm.read.ptx.sreg.envreg21
-+ nvvm_read_ptx_sreg_envreg22, // llvm.nvvm.read.ptx.sreg.envreg22
-+ nvvm_read_ptx_sreg_envreg23, // llvm.nvvm.read.ptx.sreg.envreg23
-+ nvvm_read_ptx_sreg_envreg24, // llvm.nvvm.read.ptx.sreg.envreg24
-+ nvvm_read_ptx_sreg_envreg25, // llvm.nvvm.read.ptx.sreg.envreg25
-+ nvvm_read_ptx_sreg_envreg26, // llvm.nvvm.read.ptx.sreg.envreg26
-+ nvvm_read_ptx_sreg_envreg27, // llvm.nvvm.read.ptx.sreg.envreg27
-+ nvvm_read_ptx_sreg_envreg28, // llvm.nvvm.read.ptx.sreg.envreg28
-+ nvvm_read_ptx_sreg_envreg29, // llvm.nvvm.read.ptx.sreg.envreg29
-+ nvvm_read_ptx_sreg_envreg3, // llvm.nvvm.read.ptx.sreg.envreg3
-+ nvvm_read_ptx_sreg_envreg30, // llvm.nvvm.read.ptx.sreg.envreg30
-+ nvvm_read_ptx_sreg_envreg31, // llvm.nvvm.read.ptx.sreg.envreg31
-+ nvvm_read_ptx_sreg_envreg4, // llvm.nvvm.read.ptx.sreg.envreg4
-+ nvvm_read_ptx_sreg_envreg5, // llvm.nvvm.read.ptx.sreg.envreg5
-+ nvvm_read_ptx_sreg_envreg6, // llvm.nvvm.read.ptx.sreg.envreg6
-+ nvvm_read_ptx_sreg_envreg7, // llvm.nvvm.read.ptx.sreg.envreg7
-+ nvvm_read_ptx_sreg_envreg8, // llvm.nvvm.read.ptx.sreg.envreg8
-+ nvvm_read_ptx_sreg_envreg9, // llvm.nvvm.read.ptx.sreg.envreg9
-+ nvvm_read_ptx_sreg_gridid, // llvm.nvvm.read.ptx.sreg.gridid
-+ nvvm_read_ptx_sreg_laneid, // llvm.nvvm.read.ptx.sreg.laneid
-+ nvvm_read_ptx_sreg_lanemask_eq, // llvm.nvvm.read.ptx.sreg.lanemask.eq
-+ nvvm_read_ptx_sreg_lanemask_ge, // llvm.nvvm.read.ptx.sreg.lanemask.ge
-+ nvvm_read_ptx_sreg_lanemask_gt, // llvm.nvvm.read.ptx.sreg.lanemask.gt
-+ nvvm_read_ptx_sreg_lanemask_le, // llvm.nvvm.read.ptx.sreg.lanemask.le
-+ nvvm_read_ptx_sreg_lanemask_lt, // llvm.nvvm.read.ptx.sreg.lanemask.lt
-+ nvvm_read_ptx_sreg_nctaid_w, // llvm.nvvm.read.ptx.sreg.nctaid.w
-+ nvvm_read_ptx_sreg_nctaid_x, // llvm.nvvm.read.ptx.sreg.nctaid.x
-+ nvvm_read_ptx_sreg_nctaid_y, // llvm.nvvm.read.ptx.sreg.nctaid.y
-+ nvvm_read_ptx_sreg_nctaid_z, // llvm.nvvm.read.ptx.sreg.nctaid.z
-+ nvvm_read_ptx_sreg_nsmid, // llvm.nvvm.read.ptx.sreg.nsmid
-+ nvvm_read_ptx_sreg_ntid_w, // llvm.nvvm.read.ptx.sreg.ntid.w
-+ nvvm_read_ptx_sreg_ntid_x, // llvm.nvvm.read.ptx.sreg.ntid.x
-+ nvvm_read_ptx_sreg_ntid_y, // llvm.nvvm.read.ptx.sreg.ntid.y
-+ nvvm_read_ptx_sreg_ntid_z, // llvm.nvvm.read.ptx.sreg.ntid.z
-+ nvvm_read_ptx_sreg_nwarpid, // llvm.nvvm.read.ptx.sreg.nwarpid
-+ nvvm_read_ptx_sreg_pm0, // llvm.nvvm.read.ptx.sreg.pm0
-+ nvvm_read_ptx_sreg_pm1, // llvm.nvvm.read.ptx.sreg.pm1
-+ nvvm_read_ptx_sreg_pm2, // llvm.nvvm.read.ptx.sreg.pm2
-+ nvvm_read_ptx_sreg_pm3, // llvm.nvvm.read.ptx.sreg.pm3
-+ nvvm_read_ptx_sreg_smid, // llvm.nvvm.read.ptx.sreg.smid
-+ nvvm_read_ptx_sreg_tid_w, // llvm.nvvm.read.ptx.sreg.tid.w
-+ nvvm_read_ptx_sreg_tid_x, // llvm.nvvm.read.ptx.sreg.tid.x
-+ nvvm_read_ptx_sreg_tid_y, // llvm.nvvm.read.ptx.sreg.tid.y
-+ nvvm_read_ptx_sreg_tid_z, // llvm.nvvm.read.ptx.sreg.tid.z
-+ nvvm_read_ptx_sreg_warpid, // llvm.nvvm.read.ptx.sreg.warpid
-+ nvvm_read_ptx_sreg_warpsize, // llvm.nvvm.read.ptx.sreg.warpsize
-+ nvvm_reflect, // llvm.nvvm.reflect
-+ nvvm_rotate_b32, // llvm.nvvm.rotate.b32
-+ nvvm_rotate_b64, // llvm.nvvm.rotate.b64
-+ nvvm_rotate_right_b64, // llvm.nvvm.rotate.right.b64
-+ nvvm_round_d, // llvm.nvvm.round.d
-+ nvvm_round_f, // llvm.nvvm.round.f
-+ nvvm_round_ftz_f, // llvm.nvvm.round.ftz.f
-+ nvvm_rsqrt_approx_d, // llvm.nvvm.rsqrt.approx.d
-+ nvvm_rsqrt_approx_f, // llvm.nvvm.rsqrt.approx.f
-+ nvvm_rsqrt_approx_ftz_f, // llvm.nvvm.rsqrt.approx.ftz.f
-+ nvvm_sad_i, // llvm.nvvm.sad.i
-+ nvvm_sad_ui, // llvm.nvvm.sad.ui
-+ nvvm_saturate_d, // llvm.nvvm.saturate.d
-+ nvvm_saturate_f, // llvm.nvvm.saturate.f
-+ nvvm_saturate_ftz_f, // llvm.nvvm.saturate.ftz.f
-+ nvvm_shfl_bfly_f32, // llvm.nvvm.shfl.bfly.f32
-+ nvvm_shfl_bfly_i32, // llvm.nvvm.shfl.bfly.i32
-+ nvvm_shfl_down_f32, // llvm.nvvm.shfl.down.f32
-+ nvvm_shfl_down_i32, // llvm.nvvm.shfl.down.i32
-+ nvvm_shfl_idx_f32, // llvm.nvvm.shfl.idx.f32
-+ nvvm_shfl_idx_i32, // llvm.nvvm.shfl.idx.i32
-+ nvvm_shfl_up_f32, // llvm.nvvm.shfl.up.f32
-+ nvvm_shfl_up_i32, // llvm.nvvm.shfl.up.i32
-+ nvvm_sin_approx_f, // llvm.nvvm.sin.approx.f
-+ nvvm_sin_approx_ftz_f, // llvm.nvvm.sin.approx.ftz.f
-+ nvvm_sqrt_approx_f, // llvm.nvvm.sqrt.approx.f
-+ nvvm_sqrt_approx_ftz_f, // llvm.nvvm.sqrt.approx.ftz.f
-+ nvvm_sqrt_f, // llvm.nvvm.sqrt.f
-+ nvvm_sqrt_rm_d, // llvm.nvvm.sqrt.rm.d
-+ nvvm_sqrt_rm_f, // llvm.nvvm.sqrt.rm.f
-+ nvvm_sqrt_rm_ftz_f, // llvm.nvvm.sqrt.rm.ftz.f
-+ nvvm_sqrt_rn_d, // llvm.nvvm.sqrt.rn.d
-+ nvvm_sqrt_rn_f, // llvm.nvvm.sqrt.rn.f
-+ nvvm_sqrt_rn_ftz_f, // llvm.nvvm.sqrt.rn.ftz.f
-+ nvvm_sqrt_rp_d, // llvm.nvvm.sqrt.rp.d
-+ nvvm_sqrt_rp_f, // llvm.nvvm.sqrt.rp.f
-+ nvvm_sqrt_rp_ftz_f, // llvm.nvvm.sqrt.rp.ftz.f
-+ nvvm_sqrt_rz_d, // llvm.nvvm.sqrt.rz.d
-+ nvvm_sqrt_rz_f, // llvm.nvvm.sqrt.rz.f
-+ nvvm_sqrt_rz_ftz_f, // llvm.nvvm.sqrt.rz.ftz.f
-+ nvvm_suld_1d_array_i16_clamp, // llvm.nvvm.suld.1d.array.i16.clamp
-+ nvvm_suld_1d_array_i16_trap, // llvm.nvvm.suld.1d.array.i16.trap
-+ nvvm_suld_1d_array_i16_zero, // llvm.nvvm.suld.1d.array.i16.zero
-+ nvvm_suld_1d_array_i32_clamp, // llvm.nvvm.suld.1d.array.i32.clamp
-+ nvvm_suld_1d_array_i32_trap, // llvm.nvvm.suld.1d.array.i32.trap
-+ nvvm_suld_1d_array_i32_zero, // llvm.nvvm.suld.1d.array.i32.zero
-+ nvvm_suld_1d_array_i64_clamp, // llvm.nvvm.suld.1d.array.i64.clamp
-+ nvvm_suld_1d_array_i64_trap, // llvm.nvvm.suld.1d.array.i64.trap
-+ nvvm_suld_1d_array_i64_zero, // llvm.nvvm.suld.1d.array.i64.zero
-+ nvvm_suld_1d_array_i8_clamp, // llvm.nvvm.suld.1d.array.i8.clamp
-+ nvvm_suld_1d_array_i8_trap, // llvm.nvvm.suld.1d.array.i8.trap
-+ nvvm_suld_1d_array_i8_zero, // llvm.nvvm.suld.1d.array.i8.zero
-+ nvvm_suld_1d_array_v2i16_clamp, // llvm.nvvm.suld.1d.array.v2i16.clamp
-+ nvvm_suld_1d_array_v2i16_trap, // llvm.nvvm.suld.1d.array.v2i16.trap
-+ nvvm_suld_1d_array_v2i16_zero, // llvm.nvvm.suld.1d.array.v2i16.zero
-+ nvvm_suld_1d_array_v2i32_clamp, // llvm.nvvm.suld.1d.array.v2i32.clamp
-+ nvvm_suld_1d_array_v2i32_trap, // llvm.nvvm.suld.1d.array.v2i32.trap
-+ nvvm_suld_1d_array_v2i32_zero, // llvm.nvvm.suld.1d.array.v2i32.zero
-+ nvvm_suld_1d_array_v2i64_clamp, // llvm.nvvm.suld.1d.array.v2i64.clamp
-+ nvvm_suld_1d_array_v2i64_trap, // llvm.nvvm.suld.1d.array.v2i64.trap
-+ nvvm_suld_1d_array_v2i64_zero, // llvm.nvvm.suld.1d.array.v2i64.zero
-+ nvvm_suld_1d_array_v2i8_clamp, // llvm.nvvm.suld.1d.array.v2i8.clamp
-+ nvvm_suld_1d_array_v2i8_trap, // llvm.nvvm.suld.1d.array.v2i8.trap
-+ nvvm_suld_1d_array_v2i8_zero, // llvm.nvvm.suld.1d.array.v2i8.zero
-+ nvvm_suld_1d_array_v4i16_clamp, // llvm.nvvm.suld.1d.array.v4i16.clamp
-+ nvvm_suld_1d_array_v4i16_trap, // llvm.nvvm.suld.1d.array.v4i16.trap
-+ nvvm_suld_1d_array_v4i16_zero, // llvm.nvvm.suld.1d.array.v4i16.zero
-+ nvvm_suld_1d_array_v4i32_clamp, // llvm.nvvm.suld.1d.array.v4i32.clamp
-+ nvvm_suld_1d_array_v4i32_trap, // llvm.nvvm.suld.1d.array.v4i32.trap
-+ nvvm_suld_1d_array_v4i32_zero, // llvm.nvvm.suld.1d.array.v4i32.zero
-+ nvvm_suld_1d_array_v4i8_clamp, // llvm.nvvm.suld.1d.array.v4i8.clamp
-+ nvvm_suld_1d_array_v4i8_trap, // llvm.nvvm.suld.1d.array.v4i8.trap
-+ nvvm_suld_1d_array_v4i8_zero, // llvm.nvvm.suld.1d.array.v4i8.zero
-+ nvvm_suld_1d_i16_clamp, // llvm.nvvm.suld.1d.i16.clamp
-+ nvvm_suld_1d_i16_trap, // llvm.nvvm.suld.1d.i16.trap
-+ nvvm_suld_1d_i16_zero, // llvm.nvvm.suld.1d.i16.zero
-+ nvvm_suld_1d_i32_clamp, // llvm.nvvm.suld.1d.i32.clamp
-+ nvvm_suld_1d_i32_trap, // llvm.nvvm.suld.1d.i32.trap
-+ nvvm_suld_1d_i32_zero, // llvm.nvvm.suld.1d.i32.zero
-+ nvvm_suld_1d_i64_clamp, // llvm.nvvm.suld.1d.i64.clamp
-+ nvvm_suld_1d_i64_trap, // llvm.nvvm.suld.1d.i64.trap
-+ nvvm_suld_1d_i64_zero, // llvm.nvvm.suld.1d.i64.zero
-+ nvvm_suld_1d_i8_clamp, // llvm.nvvm.suld.1d.i8.clamp
-+ nvvm_suld_1d_i8_trap, // llvm.nvvm.suld.1d.i8.trap
-+ nvvm_suld_1d_i8_zero, // llvm.nvvm.suld.1d.i8.zero
-+ nvvm_suld_1d_v2i16_clamp, // llvm.nvvm.suld.1d.v2i16.clamp
-+ nvvm_suld_1d_v2i16_trap, // llvm.nvvm.suld.1d.v2i16.trap
-+ nvvm_suld_1d_v2i16_zero, // llvm.nvvm.suld.1d.v2i16.zero
-+ nvvm_suld_1d_v2i32_clamp, // llvm.nvvm.suld.1d.v2i32.clamp
-+ nvvm_suld_1d_v2i32_trap, // llvm.nvvm.suld.1d.v2i32.trap
-+ nvvm_suld_1d_v2i32_zero, // llvm.nvvm.suld.1d.v2i32.zero
-+ nvvm_suld_1d_v2i64_clamp, // llvm.nvvm.suld.1d.v2i64.clamp
-+ nvvm_suld_1d_v2i64_trap, // llvm.nvvm.suld.1d.v2i64.trap
-+ nvvm_suld_1d_v2i64_zero, // llvm.nvvm.suld.1d.v2i64.zero
-+ nvvm_suld_1d_v2i8_clamp, // llvm.nvvm.suld.1d.v2i8.clamp
-+ nvvm_suld_1d_v2i8_trap, // llvm.nvvm.suld.1d.v2i8.trap
-+ nvvm_suld_1d_v2i8_zero, // llvm.nvvm.suld.1d.v2i8.zero
-+ nvvm_suld_1d_v4i16_clamp, // llvm.nvvm.suld.1d.v4i16.clamp
-+ nvvm_suld_1d_v4i16_trap, // llvm.nvvm.suld.1d.v4i16.trap
-+ nvvm_suld_1d_v4i16_zero, // llvm.nvvm.suld.1d.v4i16.zero
-+ nvvm_suld_1d_v4i32_clamp, // llvm.nvvm.suld.1d.v4i32.clamp
-+ nvvm_suld_1d_v4i32_trap, // llvm.nvvm.suld.1d.v4i32.trap
-+ nvvm_suld_1d_v4i32_zero, // llvm.nvvm.suld.1d.v4i32.zero
-+ nvvm_suld_1d_v4i8_clamp, // llvm.nvvm.suld.1d.v4i8.clamp
-+ nvvm_suld_1d_v4i8_trap, // llvm.nvvm.suld.1d.v4i8.trap
-+ nvvm_suld_1d_v4i8_zero, // llvm.nvvm.suld.1d.v4i8.zero
-+ nvvm_suld_2d_array_i16_clamp, // llvm.nvvm.suld.2d.array.i16.clamp
-+ nvvm_suld_2d_array_i16_trap, // llvm.nvvm.suld.2d.array.i16.trap
-+ nvvm_suld_2d_array_i16_zero, // llvm.nvvm.suld.2d.array.i16.zero
-+ nvvm_suld_2d_array_i32_clamp, // llvm.nvvm.suld.2d.array.i32.clamp
-+ nvvm_suld_2d_array_i32_trap, // llvm.nvvm.suld.2d.array.i32.trap
-+ nvvm_suld_2d_array_i32_zero, // llvm.nvvm.suld.2d.array.i32.zero
-+ nvvm_suld_2d_array_i64_clamp, // llvm.nvvm.suld.2d.array.i64.clamp
-+ nvvm_suld_2d_array_i64_trap, // llvm.nvvm.suld.2d.array.i64.trap
-+ nvvm_suld_2d_array_i64_zero, // llvm.nvvm.suld.2d.array.i64.zero
-+ nvvm_suld_2d_array_i8_clamp, // llvm.nvvm.suld.2d.array.i8.clamp
-+ nvvm_suld_2d_array_i8_trap, // llvm.nvvm.suld.2d.array.i8.trap
-+ nvvm_suld_2d_array_i8_zero, // llvm.nvvm.suld.2d.array.i8.zero
-+ nvvm_suld_2d_array_v2i16_clamp, // llvm.nvvm.suld.2d.array.v2i16.clamp
-+ nvvm_suld_2d_array_v2i16_trap, // llvm.nvvm.suld.2d.array.v2i16.trap
-+ nvvm_suld_2d_array_v2i16_zero, // llvm.nvvm.suld.2d.array.v2i16.zero
-+ nvvm_suld_2d_array_v2i32_clamp, // llvm.nvvm.suld.2d.array.v2i32.clamp
-+ nvvm_suld_2d_array_v2i32_trap, // llvm.nvvm.suld.2d.array.v2i32.trap
-+ nvvm_suld_2d_array_v2i32_zero, // llvm.nvvm.suld.2d.array.v2i32.zero
-+ nvvm_suld_2d_array_v2i64_clamp, // llvm.nvvm.suld.2d.array.v2i64.clamp
-+ nvvm_suld_2d_array_v2i64_trap, // llvm.nvvm.suld.2d.array.v2i64.trap
-+ nvvm_suld_2d_array_v2i64_zero, // llvm.nvvm.suld.2d.array.v2i64.zero
-+ nvvm_suld_2d_array_v2i8_clamp, // llvm.nvvm.suld.2d.array.v2i8.clamp
-+ nvvm_suld_2d_array_v2i8_trap, // llvm.nvvm.suld.2d.array.v2i8.trap
-+ nvvm_suld_2d_array_v2i8_zero, // llvm.nvvm.suld.2d.array.v2i8.zero
-+ nvvm_suld_2d_array_v4i16_clamp, // llvm.nvvm.suld.2d.array.v4i16.clamp
-+ nvvm_suld_2d_array_v4i16_trap, // llvm.nvvm.suld.2d.array.v4i16.trap
-+ nvvm_suld_2d_array_v4i16_zero, // llvm.nvvm.suld.2d.array.v4i16.zero
-+ nvvm_suld_2d_array_v4i32_clamp, // llvm.nvvm.suld.2d.array.v4i32.clamp
-+ nvvm_suld_2d_array_v4i32_trap, // llvm.nvvm.suld.2d.array.v4i32.trap
-+ nvvm_suld_2d_array_v4i32_zero, // llvm.nvvm.suld.2d.array.v4i32.zero
-+ nvvm_suld_2d_array_v4i8_clamp, // llvm.nvvm.suld.2d.array.v4i8.clamp
-+ nvvm_suld_2d_array_v4i8_trap, // llvm.nvvm.suld.2d.array.v4i8.trap
-+ nvvm_suld_2d_array_v4i8_zero, // llvm.nvvm.suld.2d.array.v4i8.zero
-+ nvvm_suld_2d_i16_clamp, // llvm.nvvm.suld.2d.i16.clamp
-+ nvvm_suld_2d_i16_trap, // llvm.nvvm.suld.2d.i16.trap
-+ nvvm_suld_2d_i16_zero, // llvm.nvvm.suld.2d.i16.zero
-+ nvvm_suld_2d_i32_clamp, // llvm.nvvm.suld.2d.i32.clamp
-+ nvvm_suld_2d_i32_trap, // llvm.nvvm.suld.2d.i32.trap
-+ nvvm_suld_2d_i32_zero, // llvm.nvvm.suld.2d.i32.zero
-+ nvvm_suld_2d_i64_clamp, // llvm.nvvm.suld.2d.i64.clamp
-+ nvvm_suld_2d_i64_trap, // llvm.nvvm.suld.2d.i64.trap
-+ nvvm_suld_2d_i64_zero, // llvm.nvvm.suld.2d.i64.zero
-+ nvvm_suld_2d_i8_clamp, // llvm.nvvm.suld.2d.i8.clamp
-+ nvvm_suld_2d_i8_trap, // llvm.nvvm.suld.2d.i8.trap
-+ nvvm_suld_2d_i8_zero, // llvm.nvvm.suld.2d.i8.zero
-+ nvvm_suld_2d_v2i16_clamp, // llvm.nvvm.suld.2d.v2i16.clamp
-+ nvvm_suld_2d_v2i16_trap, // llvm.nvvm.suld.2d.v2i16.trap
-+ nvvm_suld_2d_v2i16_zero, // llvm.nvvm.suld.2d.v2i16.zero
-+ nvvm_suld_2d_v2i32_clamp, // llvm.nvvm.suld.2d.v2i32.clamp
-+ nvvm_suld_2d_v2i32_trap, // llvm.nvvm.suld.2d.v2i32.trap
-+ nvvm_suld_2d_v2i32_zero, // llvm.nvvm.suld.2d.v2i32.zero
-+ nvvm_suld_2d_v2i64_clamp, // llvm.nvvm.suld.2d.v2i64.clamp
-+ nvvm_suld_2d_v2i64_trap, // llvm.nvvm.suld.2d.v2i64.trap
-+ nvvm_suld_2d_v2i64_zero, // llvm.nvvm.suld.2d.v2i64.zero
-+ nvvm_suld_2d_v2i8_clamp, // llvm.nvvm.suld.2d.v2i8.clamp
-+ nvvm_suld_2d_v2i8_trap, // llvm.nvvm.suld.2d.v2i8.trap
-+ nvvm_suld_2d_v2i8_zero, // llvm.nvvm.suld.2d.v2i8.zero
-+ nvvm_suld_2d_v4i16_clamp, // llvm.nvvm.suld.2d.v4i16.clamp
-+ nvvm_suld_2d_v4i16_trap, // llvm.nvvm.suld.2d.v4i16.trap
-+ nvvm_suld_2d_v4i16_zero, // llvm.nvvm.suld.2d.v4i16.zero
-+ nvvm_suld_2d_v4i32_clamp, // llvm.nvvm.suld.2d.v4i32.clamp
-+ nvvm_suld_2d_v4i32_trap, // llvm.nvvm.suld.2d.v4i32.trap
-+ nvvm_suld_2d_v4i32_zero, // llvm.nvvm.suld.2d.v4i32.zero
-+ nvvm_suld_2d_v4i8_clamp, // llvm.nvvm.suld.2d.v4i8.clamp
-+ nvvm_suld_2d_v4i8_trap, // llvm.nvvm.suld.2d.v4i8.trap
-+ nvvm_suld_2d_v4i8_zero, // llvm.nvvm.suld.2d.v4i8.zero
-+ nvvm_suld_3d_i16_clamp, // llvm.nvvm.suld.3d.i16.clamp
-+ nvvm_suld_3d_i16_trap, // llvm.nvvm.suld.3d.i16.trap
-+ nvvm_suld_3d_i16_zero, // llvm.nvvm.suld.3d.i16.zero
-+ nvvm_suld_3d_i32_clamp, // llvm.nvvm.suld.3d.i32.clamp
-+ nvvm_suld_3d_i32_trap, // llvm.nvvm.suld.3d.i32.trap
-+ nvvm_suld_3d_i32_zero, // llvm.nvvm.suld.3d.i32.zero
-+ nvvm_suld_3d_i64_clamp, // llvm.nvvm.suld.3d.i64.clamp
-+ nvvm_suld_3d_i64_trap, // llvm.nvvm.suld.3d.i64.trap
-+ nvvm_suld_3d_i64_zero, // llvm.nvvm.suld.3d.i64.zero
-+ nvvm_suld_3d_i8_clamp, // llvm.nvvm.suld.3d.i8.clamp
-+ nvvm_suld_3d_i8_trap, // llvm.nvvm.suld.3d.i8.trap
-+ nvvm_suld_3d_i8_zero, // llvm.nvvm.suld.3d.i8.zero
-+ nvvm_suld_3d_v2i16_clamp, // llvm.nvvm.suld.3d.v2i16.clamp
-+ nvvm_suld_3d_v2i16_trap, // llvm.nvvm.suld.3d.v2i16.trap
-+ nvvm_suld_3d_v2i16_zero, // llvm.nvvm.suld.3d.v2i16.zero
-+ nvvm_suld_3d_v2i32_clamp, // llvm.nvvm.suld.3d.v2i32.clamp
-+ nvvm_suld_3d_v2i32_trap, // llvm.nvvm.suld.3d.v2i32.trap
-+ nvvm_suld_3d_v2i32_zero, // llvm.nvvm.suld.3d.v2i32.zero
-+ nvvm_suld_3d_v2i64_clamp, // llvm.nvvm.suld.3d.v2i64.clamp
-+ nvvm_suld_3d_v2i64_trap, // llvm.nvvm.suld.3d.v2i64.trap
-+ nvvm_suld_3d_v2i64_zero, // llvm.nvvm.suld.3d.v2i64.zero
-+ nvvm_suld_3d_v2i8_clamp, // llvm.nvvm.suld.3d.v2i8.clamp
-+ nvvm_suld_3d_v2i8_trap, // llvm.nvvm.suld.3d.v2i8.trap
-+ nvvm_suld_3d_v2i8_zero, // llvm.nvvm.suld.3d.v2i8.zero
-+ nvvm_suld_3d_v4i16_clamp, // llvm.nvvm.suld.3d.v4i16.clamp
-+ nvvm_suld_3d_v4i16_trap, // llvm.nvvm.suld.3d.v4i16.trap
-+ nvvm_suld_3d_v4i16_zero, // llvm.nvvm.suld.3d.v4i16.zero
-+ nvvm_suld_3d_v4i32_clamp, // llvm.nvvm.suld.3d.v4i32.clamp
-+ nvvm_suld_3d_v4i32_trap, // llvm.nvvm.suld.3d.v4i32.trap
-+ nvvm_suld_3d_v4i32_zero, // llvm.nvvm.suld.3d.v4i32.zero
-+ nvvm_suld_3d_v4i8_clamp, // llvm.nvvm.suld.3d.v4i8.clamp
-+ nvvm_suld_3d_v4i8_trap, // llvm.nvvm.suld.3d.v4i8.trap
-+ nvvm_suld_3d_v4i8_zero, // llvm.nvvm.suld.3d.v4i8.zero
-+ nvvm_suq_array_size, // llvm.nvvm.suq.array.size
-+ nvvm_suq_channel_data_type, // llvm.nvvm.suq.channel.data.type
-+ nvvm_suq_channel_order, // llvm.nvvm.suq.channel.order
-+ nvvm_suq_depth, // llvm.nvvm.suq.depth
-+ nvvm_suq_height, // llvm.nvvm.suq.height
-+ nvvm_suq_width, // llvm.nvvm.suq.width
-+ nvvm_sust_b_1d_array_i16_clamp, // llvm.nvvm.sust.b.1d.array.i16.clamp
-+ nvvm_sust_b_1d_array_i16_trap, // llvm.nvvm.sust.b.1d.array.i16.trap
-+ nvvm_sust_b_1d_array_i16_zero, // llvm.nvvm.sust.b.1d.array.i16.zero
-+ nvvm_sust_b_1d_array_i32_clamp, // llvm.nvvm.sust.b.1d.array.i32.clamp
-+ nvvm_sust_b_1d_array_i32_trap, // llvm.nvvm.sust.b.1d.array.i32.trap
-+ nvvm_sust_b_1d_array_i32_zero, // llvm.nvvm.sust.b.1d.array.i32.zero
-+ nvvm_sust_b_1d_array_i64_clamp, // llvm.nvvm.sust.b.1d.array.i64.clamp
-+ nvvm_sust_b_1d_array_i64_trap, // llvm.nvvm.sust.b.1d.array.i64.trap
-+ nvvm_sust_b_1d_array_i64_zero, // llvm.nvvm.sust.b.1d.array.i64.zero
-+ nvvm_sust_b_1d_array_i8_clamp, // llvm.nvvm.sust.b.1d.array.i8.clamp
-+ nvvm_sust_b_1d_array_i8_trap, // llvm.nvvm.sust.b.1d.array.i8.trap
-+ nvvm_sust_b_1d_array_i8_zero, // llvm.nvvm.sust.b.1d.array.i8.zero
-+ nvvm_sust_b_1d_array_v2i16_clamp, // llvm.nvvm.sust.b.1d.array.v2i16.clamp
-+ nvvm_sust_b_1d_array_v2i16_trap, // llvm.nvvm.sust.b.1d.array.v2i16.trap
-+ nvvm_sust_b_1d_array_v2i16_zero, // llvm.nvvm.sust.b.1d.array.v2i16.zero
-+ nvvm_sust_b_1d_array_v2i32_clamp, // llvm.nvvm.sust.b.1d.array.v2i32.clamp
-+ nvvm_sust_b_1d_array_v2i32_trap, // llvm.nvvm.sust.b.1d.array.v2i32.trap
-+ nvvm_sust_b_1d_array_v2i32_zero, // llvm.nvvm.sust.b.1d.array.v2i32.zero
-+ nvvm_sust_b_1d_array_v2i64_clamp, // llvm.nvvm.sust.b.1d.array.v2i64.clamp
-+ nvvm_sust_b_1d_array_v2i64_trap, // llvm.nvvm.sust.b.1d.array.v2i64.trap
-+ nvvm_sust_b_1d_array_v2i64_zero, // llvm.nvvm.sust.b.1d.array.v2i64.zero
-+ nvvm_sust_b_1d_array_v2i8_clamp, // llvm.nvvm.sust.b.1d.array.v2i8.clamp
-+ nvvm_sust_b_1d_array_v2i8_trap, // llvm.nvvm.sust.b.1d.array.v2i8.trap
-+ nvvm_sust_b_1d_array_v2i8_zero, // llvm.nvvm.sust.b.1d.array.v2i8.zero
-+ nvvm_sust_b_1d_array_v4i16_clamp, // llvm.nvvm.sust.b.1d.array.v4i16.clamp
-+ nvvm_sust_b_1d_array_v4i16_trap, // llvm.nvvm.sust.b.1d.array.v4i16.trap
-+ nvvm_sust_b_1d_array_v4i16_zero, // llvm.nvvm.sust.b.1d.array.v4i16.zero
-+ nvvm_sust_b_1d_array_v4i32_clamp, // llvm.nvvm.sust.b.1d.array.v4i32.clamp
-+ nvvm_sust_b_1d_array_v4i32_trap, // llvm.nvvm.sust.b.1d.array.v4i32.trap
-+ nvvm_sust_b_1d_array_v4i32_zero, // llvm.nvvm.sust.b.1d.array.v4i32.zero
-+ nvvm_sust_b_1d_array_v4i8_clamp, // llvm.nvvm.sust.b.1d.array.v4i8.clamp
-+ nvvm_sust_b_1d_array_v4i8_trap, // llvm.nvvm.sust.b.1d.array.v4i8.trap
-+ nvvm_sust_b_1d_array_v4i8_zero, // llvm.nvvm.sust.b.1d.array.v4i8.zero
-+ nvvm_sust_b_1d_i16_clamp, // llvm.nvvm.sust.b.1d.i16.clamp
-+ nvvm_sust_b_1d_i16_trap, // llvm.nvvm.sust.b.1d.i16.trap
-+ nvvm_sust_b_1d_i16_zero, // llvm.nvvm.sust.b.1d.i16.zero
-+ nvvm_sust_b_1d_i32_clamp, // llvm.nvvm.sust.b.1d.i32.clamp
-+ nvvm_sust_b_1d_i32_trap, // llvm.nvvm.sust.b.1d.i32.trap
-+ nvvm_sust_b_1d_i32_zero, // llvm.nvvm.sust.b.1d.i32.zero
-+ nvvm_sust_b_1d_i64_clamp, // llvm.nvvm.sust.b.1d.i64.clamp
-+ nvvm_sust_b_1d_i64_trap, // llvm.nvvm.sust.b.1d.i64.trap
-+ nvvm_sust_b_1d_i64_zero, // llvm.nvvm.sust.b.1d.i64.zero
-+ nvvm_sust_b_1d_i8_clamp, // llvm.nvvm.sust.b.1d.i8.clamp
-+ nvvm_sust_b_1d_i8_trap, // llvm.nvvm.sust.b.1d.i8.trap
-+ nvvm_sust_b_1d_i8_zero, // llvm.nvvm.sust.b.1d.i8.zero
-+ nvvm_sust_b_1d_v2i16_clamp, // llvm.nvvm.sust.b.1d.v2i16.clamp
-+ nvvm_sust_b_1d_v2i16_trap, // llvm.nvvm.sust.b.1d.v2i16.trap
-+ nvvm_sust_b_1d_v2i16_zero, // llvm.nvvm.sust.b.1d.v2i16.zero
-+ nvvm_sust_b_1d_v2i32_clamp, // llvm.nvvm.sust.b.1d.v2i32.clamp
-+ nvvm_sust_b_1d_v2i32_trap, // llvm.nvvm.sust.b.1d.v2i32.trap
-+ nvvm_sust_b_1d_v2i32_zero, // llvm.nvvm.sust.b.1d.v2i32.zero
-+ nvvm_sust_b_1d_v2i64_clamp, // llvm.nvvm.sust.b.1d.v2i64.clamp
-+ nvvm_sust_b_1d_v2i64_trap, // llvm.nvvm.sust.b.1d.v2i64.trap
-+ nvvm_sust_b_1d_v2i64_zero, // llvm.nvvm.sust.b.1d.v2i64.zero
-+ nvvm_sust_b_1d_v2i8_clamp, // llvm.nvvm.sust.b.1d.v2i8.clamp
-+ nvvm_sust_b_1d_v2i8_trap, // llvm.nvvm.sust.b.1d.v2i8.trap
-+ nvvm_sust_b_1d_v2i8_zero, // llvm.nvvm.sust.b.1d.v2i8.zero
-+ nvvm_sust_b_1d_v4i16_clamp, // llvm.nvvm.sust.b.1d.v4i16.clamp
-+ nvvm_sust_b_1d_v4i16_trap, // llvm.nvvm.sust.b.1d.v4i16.trap
-+ nvvm_sust_b_1d_v4i16_zero, // llvm.nvvm.sust.b.1d.v4i16.zero
-+ nvvm_sust_b_1d_v4i32_clamp, // llvm.nvvm.sust.b.1d.v4i32.clamp
-+ nvvm_sust_b_1d_v4i32_trap, // llvm.nvvm.sust.b.1d.v4i32.trap
-+ nvvm_sust_b_1d_v4i32_zero, // llvm.nvvm.sust.b.1d.v4i32.zero
-+ nvvm_sust_b_1d_v4i8_clamp, // llvm.nvvm.sust.b.1d.v4i8.clamp
-+ nvvm_sust_b_1d_v4i8_trap, // llvm.nvvm.sust.b.1d.v4i8.trap
-+ nvvm_sust_b_1d_v4i8_zero, // llvm.nvvm.sust.b.1d.v4i8.zero
-+ nvvm_sust_b_2d_array_i16_clamp, // llvm.nvvm.sust.b.2d.array.i16.clamp
-+ nvvm_sust_b_2d_array_i16_trap, // llvm.nvvm.sust.b.2d.array.i16.trap
-+ nvvm_sust_b_2d_array_i16_zero, // llvm.nvvm.sust.b.2d.array.i16.zero
-+ nvvm_sust_b_2d_array_i32_clamp, // llvm.nvvm.sust.b.2d.array.i32.clamp
-+ nvvm_sust_b_2d_array_i32_trap, // llvm.nvvm.sust.b.2d.array.i32.trap
-+ nvvm_sust_b_2d_array_i32_zero, // llvm.nvvm.sust.b.2d.array.i32.zero
-+ nvvm_sust_b_2d_array_i64_clamp, // llvm.nvvm.sust.b.2d.array.i64.clamp
-+ nvvm_sust_b_2d_array_i64_trap, // llvm.nvvm.sust.b.2d.array.i64.trap
-+ nvvm_sust_b_2d_array_i64_zero, // llvm.nvvm.sust.b.2d.array.i64.zero
-+ nvvm_sust_b_2d_array_i8_clamp, // llvm.nvvm.sust.b.2d.array.i8.clamp
-+ nvvm_sust_b_2d_array_i8_trap, // llvm.nvvm.sust.b.2d.array.i8.trap
-+ nvvm_sust_b_2d_array_i8_zero, // llvm.nvvm.sust.b.2d.array.i8.zero
-+ nvvm_sust_b_2d_array_v2i16_clamp, // llvm.nvvm.sust.b.2d.array.v2i16.clamp
-+ nvvm_sust_b_2d_array_v2i16_trap, // llvm.nvvm.sust.b.2d.array.v2i16.trap
-+ nvvm_sust_b_2d_array_v2i16_zero, // llvm.nvvm.sust.b.2d.array.v2i16.zero
-+ nvvm_sust_b_2d_array_v2i32_clamp, // llvm.nvvm.sust.b.2d.array.v2i32.clamp
-+ nvvm_sust_b_2d_array_v2i32_trap, // llvm.nvvm.sust.b.2d.array.v2i32.trap
-+ nvvm_sust_b_2d_array_v2i32_zero, // llvm.nvvm.sust.b.2d.array.v2i32.zero
-+ nvvm_sust_b_2d_array_v2i64_clamp, // llvm.nvvm.sust.b.2d.array.v2i64.clamp
-+ nvvm_sust_b_2d_array_v2i64_trap, // llvm.nvvm.sust.b.2d.array.v2i64.trap
-+ nvvm_sust_b_2d_array_v2i64_zero, // llvm.nvvm.sust.b.2d.array.v2i64.zero
-+ nvvm_sust_b_2d_array_v2i8_clamp, // llvm.nvvm.sust.b.2d.array.v2i8.clamp
-+ nvvm_sust_b_2d_array_v2i8_trap, // llvm.nvvm.sust.b.2d.array.v2i8.trap
-+ nvvm_sust_b_2d_array_v2i8_zero, // llvm.nvvm.sust.b.2d.array.v2i8.zero
-+ nvvm_sust_b_2d_array_v4i16_clamp, // llvm.nvvm.sust.b.2d.array.v4i16.clamp
-+ nvvm_sust_b_2d_array_v4i16_trap, // llvm.nvvm.sust.b.2d.array.v4i16.trap
-+ nvvm_sust_b_2d_array_v4i16_zero, // llvm.nvvm.sust.b.2d.array.v4i16.zero
-+ nvvm_sust_b_2d_array_v4i32_clamp, // llvm.nvvm.sust.b.2d.array.v4i32.clamp
-+ nvvm_sust_b_2d_array_v4i32_trap, // llvm.nvvm.sust.b.2d.array.v4i32.trap
-+ nvvm_sust_b_2d_array_v4i32_zero, // llvm.nvvm.sust.b.2d.array.v4i32.zero
-+ nvvm_sust_b_2d_array_v4i8_clamp, // llvm.nvvm.sust.b.2d.array.v4i8.clamp
-+ nvvm_sust_b_2d_array_v4i8_trap, // llvm.nvvm.sust.b.2d.array.v4i8.trap
-+ nvvm_sust_b_2d_array_v4i8_zero, // llvm.nvvm.sust.b.2d.array.v4i8.zero
-+ nvvm_sust_b_2d_i16_clamp, // llvm.nvvm.sust.b.2d.i16.clamp
-+ nvvm_sust_b_2d_i16_trap, // llvm.nvvm.sust.b.2d.i16.trap
-+ nvvm_sust_b_2d_i16_zero, // llvm.nvvm.sust.b.2d.i16.zero
-+ nvvm_sust_b_2d_i32_clamp, // llvm.nvvm.sust.b.2d.i32.clamp
-+ nvvm_sust_b_2d_i32_trap, // llvm.nvvm.sust.b.2d.i32.trap
-+ nvvm_sust_b_2d_i32_zero, // llvm.nvvm.sust.b.2d.i32.zero
-+ nvvm_sust_b_2d_i64_clamp, // llvm.nvvm.sust.b.2d.i64.clamp
-+ nvvm_sust_b_2d_i64_trap, // llvm.nvvm.sust.b.2d.i64.trap
-+ nvvm_sust_b_2d_i64_zero, // llvm.nvvm.sust.b.2d.i64.zero
-+ nvvm_sust_b_2d_i8_clamp, // llvm.nvvm.sust.b.2d.i8.clamp
-+ nvvm_sust_b_2d_i8_trap, // llvm.nvvm.sust.b.2d.i8.trap
-+ nvvm_sust_b_2d_i8_zero, // llvm.nvvm.sust.b.2d.i8.zero
-+ nvvm_sust_b_2d_v2i16_clamp, // llvm.nvvm.sust.b.2d.v2i16.clamp
-+ nvvm_sust_b_2d_v2i16_trap, // llvm.nvvm.sust.b.2d.v2i16.trap
-+ nvvm_sust_b_2d_v2i16_zero, // llvm.nvvm.sust.b.2d.v2i16.zero
-+ nvvm_sust_b_2d_v2i32_clamp, // llvm.nvvm.sust.b.2d.v2i32.clamp
-+ nvvm_sust_b_2d_v2i32_trap, // llvm.nvvm.sust.b.2d.v2i32.trap
-+ nvvm_sust_b_2d_v2i32_zero, // llvm.nvvm.sust.b.2d.v2i32.zero
-+ nvvm_sust_b_2d_v2i64_clamp, // llvm.nvvm.sust.b.2d.v2i64.clamp
-+ nvvm_sust_b_2d_v2i64_trap, // llvm.nvvm.sust.b.2d.v2i64.trap
-+ nvvm_sust_b_2d_v2i64_zero, // llvm.nvvm.sust.b.2d.v2i64.zero
-+ nvvm_sust_b_2d_v2i8_clamp, // llvm.nvvm.sust.b.2d.v2i8.clamp
-+ nvvm_sust_b_2d_v2i8_trap, // llvm.nvvm.sust.b.2d.v2i8.trap
-+ nvvm_sust_b_2d_v2i8_zero, // llvm.nvvm.sust.b.2d.v2i8.zero
-+ nvvm_sust_b_2d_v4i16_clamp, // llvm.nvvm.sust.b.2d.v4i16.clamp
-+ nvvm_sust_b_2d_v4i16_trap, // llvm.nvvm.sust.b.2d.v4i16.trap
-+ nvvm_sust_b_2d_v4i16_zero, // llvm.nvvm.sust.b.2d.v4i16.zero
-+ nvvm_sust_b_2d_v4i32_clamp, // llvm.nvvm.sust.b.2d.v4i32.clamp
-+ nvvm_sust_b_2d_v4i32_trap, // llvm.nvvm.sust.b.2d.v4i32.trap
-+ nvvm_sust_b_2d_v4i32_zero, // llvm.nvvm.sust.b.2d.v4i32.zero
-+ nvvm_sust_b_2d_v4i8_clamp, // llvm.nvvm.sust.b.2d.v4i8.clamp
-+ nvvm_sust_b_2d_v4i8_trap, // llvm.nvvm.sust.b.2d.v4i8.trap
-+ nvvm_sust_b_2d_v4i8_zero, // llvm.nvvm.sust.b.2d.v4i8.zero
-+ nvvm_sust_b_3d_i16_clamp, // llvm.nvvm.sust.b.3d.i16.clamp
-+ nvvm_sust_b_3d_i16_trap, // llvm.nvvm.sust.b.3d.i16.trap
-+ nvvm_sust_b_3d_i16_zero, // llvm.nvvm.sust.b.3d.i16.zero
-+ nvvm_sust_b_3d_i32_clamp, // llvm.nvvm.sust.b.3d.i32.clamp
-+ nvvm_sust_b_3d_i32_trap, // llvm.nvvm.sust.b.3d.i32.trap
-+ nvvm_sust_b_3d_i32_zero, // llvm.nvvm.sust.b.3d.i32.zero
-+ nvvm_sust_b_3d_i64_clamp, // llvm.nvvm.sust.b.3d.i64.clamp
-+ nvvm_sust_b_3d_i64_trap, // llvm.nvvm.sust.b.3d.i64.trap
-+ nvvm_sust_b_3d_i64_zero, // llvm.nvvm.sust.b.3d.i64.zero
-+ nvvm_sust_b_3d_i8_clamp, // llvm.nvvm.sust.b.3d.i8.clamp
-+ nvvm_sust_b_3d_i8_trap, // llvm.nvvm.sust.b.3d.i8.trap
-+ nvvm_sust_b_3d_i8_zero, // llvm.nvvm.sust.b.3d.i8.zero
-+ nvvm_sust_b_3d_v2i16_clamp, // llvm.nvvm.sust.b.3d.v2i16.clamp
-+ nvvm_sust_b_3d_v2i16_trap, // llvm.nvvm.sust.b.3d.v2i16.trap
-+ nvvm_sust_b_3d_v2i16_zero, // llvm.nvvm.sust.b.3d.v2i16.zero
-+ nvvm_sust_b_3d_v2i32_clamp, // llvm.nvvm.sust.b.3d.v2i32.clamp
-+ nvvm_sust_b_3d_v2i32_trap, // llvm.nvvm.sust.b.3d.v2i32.trap
-+ nvvm_sust_b_3d_v2i32_zero, // llvm.nvvm.sust.b.3d.v2i32.zero
-+ nvvm_sust_b_3d_v2i64_clamp, // llvm.nvvm.sust.b.3d.v2i64.clamp
-+ nvvm_sust_b_3d_v2i64_trap, // llvm.nvvm.sust.b.3d.v2i64.trap
-+ nvvm_sust_b_3d_v2i64_zero, // llvm.nvvm.sust.b.3d.v2i64.zero
-+ nvvm_sust_b_3d_v2i8_clamp, // llvm.nvvm.sust.b.3d.v2i8.clamp
-+ nvvm_sust_b_3d_v2i8_trap, // llvm.nvvm.sust.b.3d.v2i8.trap
-+ nvvm_sust_b_3d_v2i8_zero, // llvm.nvvm.sust.b.3d.v2i8.zero
-+ nvvm_sust_b_3d_v4i16_clamp, // llvm.nvvm.sust.b.3d.v4i16.clamp
-+ nvvm_sust_b_3d_v4i16_trap, // llvm.nvvm.sust.b.3d.v4i16.trap
-+ nvvm_sust_b_3d_v4i16_zero, // llvm.nvvm.sust.b.3d.v4i16.zero
-+ nvvm_sust_b_3d_v4i32_clamp, // llvm.nvvm.sust.b.3d.v4i32.clamp
-+ nvvm_sust_b_3d_v4i32_trap, // llvm.nvvm.sust.b.3d.v4i32.trap
-+ nvvm_sust_b_3d_v4i32_zero, // llvm.nvvm.sust.b.3d.v4i32.zero
-+ nvvm_sust_b_3d_v4i8_clamp, // llvm.nvvm.sust.b.3d.v4i8.clamp
-+ nvvm_sust_b_3d_v4i8_trap, // llvm.nvvm.sust.b.3d.v4i8.trap
-+ nvvm_sust_b_3d_v4i8_zero, // llvm.nvvm.sust.b.3d.v4i8.zero
-+ nvvm_sust_p_1d_array_i16_trap, // llvm.nvvm.sust.p.1d.array.i16.trap
-+ nvvm_sust_p_1d_array_i32_trap, // llvm.nvvm.sust.p.1d.array.i32.trap
-+ nvvm_sust_p_1d_array_i8_trap, // llvm.nvvm.sust.p.1d.array.i8.trap
-+ nvvm_sust_p_1d_array_v2i16_trap, // llvm.nvvm.sust.p.1d.array.v2i16.trap
-+ nvvm_sust_p_1d_array_v2i32_trap, // llvm.nvvm.sust.p.1d.array.v2i32.trap
-+ nvvm_sust_p_1d_array_v2i8_trap, // llvm.nvvm.sust.p.1d.array.v2i8.trap
-+ nvvm_sust_p_1d_array_v4i16_trap, // llvm.nvvm.sust.p.1d.array.v4i16.trap
-+ nvvm_sust_p_1d_array_v4i32_trap, // llvm.nvvm.sust.p.1d.array.v4i32.trap
-+ nvvm_sust_p_1d_array_v4i8_trap, // llvm.nvvm.sust.p.1d.array.v4i8.trap
-+ nvvm_sust_p_1d_i16_trap, // llvm.nvvm.sust.p.1d.i16.trap
-+ nvvm_sust_p_1d_i32_trap, // llvm.nvvm.sust.p.1d.i32.trap
-+ nvvm_sust_p_1d_i8_trap, // llvm.nvvm.sust.p.1d.i8.trap
-+ nvvm_sust_p_1d_v2i16_trap, // llvm.nvvm.sust.p.1d.v2i16.trap
-+ nvvm_sust_p_1d_v2i32_trap, // llvm.nvvm.sust.p.1d.v2i32.trap
-+ nvvm_sust_p_1d_v2i8_trap, // llvm.nvvm.sust.p.1d.v2i8.trap
-+ nvvm_sust_p_1d_v4i16_trap, // llvm.nvvm.sust.p.1d.v4i16.trap
-+ nvvm_sust_p_1d_v4i32_trap, // llvm.nvvm.sust.p.1d.v4i32.trap
-+ nvvm_sust_p_1d_v4i8_trap, // llvm.nvvm.sust.p.1d.v4i8.trap
-+ nvvm_sust_p_2d_array_i16_trap, // llvm.nvvm.sust.p.2d.array.i16.trap
-+ nvvm_sust_p_2d_array_i32_trap, // llvm.nvvm.sust.p.2d.array.i32.trap
-+ nvvm_sust_p_2d_array_i8_trap, // llvm.nvvm.sust.p.2d.array.i8.trap
-+ nvvm_sust_p_2d_array_v2i16_trap, // llvm.nvvm.sust.p.2d.array.v2i16.trap
-+ nvvm_sust_p_2d_array_v2i32_trap, // llvm.nvvm.sust.p.2d.array.v2i32.trap
-+ nvvm_sust_p_2d_array_v2i8_trap, // llvm.nvvm.sust.p.2d.array.v2i8.trap
-+ nvvm_sust_p_2d_array_v4i16_trap, // llvm.nvvm.sust.p.2d.array.v4i16.trap
-+ nvvm_sust_p_2d_array_v4i32_trap, // llvm.nvvm.sust.p.2d.array.v4i32.trap
-+ nvvm_sust_p_2d_array_v4i8_trap, // llvm.nvvm.sust.p.2d.array.v4i8.trap
-+ nvvm_sust_p_2d_i16_trap, // llvm.nvvm.sust.p.2d.i16.trap
-+ nvvm_sust_p_2d_i32_trap, // llvm.nvvm.sust.p.2d.i32.trap
-+ nvvm_sust_p_2d_i8_trap, // llvm.nvvm.sust.p.2d.i8.trap
-+ nvvm_sust_p_2d_v2i16_trap, // llvm.nvvm.sust.p.2d.v2i16.trap
-+ nvvm_sust_p_2d_v2i32_trap, // llvm.nvvm.sust.p.2d.v2i32.trap
-+ nvvm_sust_p_2d_v2i8_trap, // llvm.nvvm.sust.p.2d.v2i8.trap
-+ nvvm_sust_p_2d_v4i16_trap, // llvm.nvvm.sust.p.2d.v4i16.trap
-+ nvvm_sust_p_2d_v4i32_trap, // llvm.nvvm.sust.p.2d.v4i32.trap
-+ nvvm_sust_p_2d_v4i8_trap, // llvm.nvvm.sust.p.2d.v4i8.trap
-+ nvvm_sust_p_3d_i16_trap, // llvm.nvvm.sust.p.3d.i16.trap
-+ nvvm_sust_p_3d_i32_trap, // llvm.nvvm.sust.p.3d.i32.trap
-+ nvvm_sust_p_3d_i8_trap, // llvm.nvvm.sust.p.3d.i8.trap
-+ nvvm_sust_p_3d_v2i16_trap, // llvm.nvvm.sust.p.3d.v2i16.trap
-+ nvvm_sust_p_3d_v2i32_trap, // llvm.nvvm.sust.p.3d.v2i32.trap
-+ nvvm_sust_p_3d_v2i8_trap, // llvm.nvvm.sust.p.3d.v2i8.trap
-+ nvvm_sust_p_3d_v4i16_trap, // llvm.nvvm.sust.p.3d.v4i16.trap
-+ nvvm_sust_p_3d_v4i32_trap, // llvm.nvvm.sust.p.3d.v4i32.trap
-+ nvvm_sust_p_3d_v4i8_trap, // llvm.nvvm.sust.p.3d.v4i8.trap
-+ nvvm_swap_lo_hi_b64, // llvm.nvvm.swap.lo.hi.b64
-+ nvvm_tex_1d_array_grad_v4f32_f32, // llvm.nvvm.tex.1d.array.grad.v4f32.f32
-+ nvvm_tex_1d_array_grad_v4s32_f32, // llvm.nvvm.tex.1d.array.grad.v4s32.f32
-+ nvvm_tex_1d_array_grad_v4u32_f32, // llvm.nvvm.tex.1d.array.grad.v4u32.f32
-+ nvvm_tex_1d_array_level_v4f32_f32, // llvm.nvvm.tex.1d.array.level.v4f32.f32
-+ nvvm_tex_1d_array_level_v4s32_f32, // llvm.nvvm.tex.1d.array.level.v4s32.f32
-+ nvvm_tex_1d_array_level_v4u32_f32, // llvm.nvvm.tex.1d.array.level.v4u32.f32
-+ nvvm_tex_1d_array_v4f32_f32, // llvm.nvvm.tex.1d.array.v4f32.f32
-+ nvvm_tex_1d_array_v4f32_s32, // llvm.nvvm.tex.1d.array.v4f32.s32
-+ nvvm_tex_1d_array_v4s32_f32, // llvm.nvvm.tex.1d.array.v4s32.f32
-+ nvvm_tex_1d_array_v4s32_s32, // llvm.nvvm.tex.1d.array.v4s32.s32
-+ nvvm_tex_1d_array_v4u32_f32, // llvm.nvvm.tex.1d.array.v4u32.f32
-+ nvvm_tex_1d_array_v4u32_s32, // llvm.nvvm.tex.1d.array.v4u32.s32
-+ nvvm_tex_1d_grad_v4f32_f32, // llvm.nvvm.tex.1d.grad.v4f32.f32
-+ nvvm_tex_1d_grad_v4s32_f32, // llvm.nvvm.tex.1d.grad.v4s32.f32
-+ nvvm_tex_1d_grad_v4u32_f32, // llvm.nvvm.tex.1d.grad.v4u32.f32
-+ nvvm_tex_1d_level_v4f32_f32, // llvm.nvvm.tex.1d.level.v4f32.f32
-+ nvvm_tex_1d_level_v4s32_f32, // llvm.nvvm.tex.1d.level.v4s32.f32
-+ nvvm_tex_1d_level_v4u32_f32, // llvm.nvvm.tex.1d.level.v4u32.f32
-+ nvvm_tex_1d_v4f32_f32, // llvm.nvvm.tex.1d.v4f32.f32
-+ nvvm_tex_1d_v4f32_s32, // llvm.nvvm.tex.1d.v4f32.s32
-+ nvvm_tex_1d_v4s32_f32, // llvm.nvvm.tex.1d.v4s32.f32
-+ nvvm_tex_1d_v4s32_s32, // llvm.nvvm.tex.1d.v4s32.s32
-+ nvvm_tex_1d_v4u32_f32, // llvm.nvvm.tex.1d.v4u32.f32
-+ nvvm_tex_1d_v4u32_s32, // llvm.nvvm.tex.1d.v4u32.s32
-+ nvvm_tex_2d_array_grad_v4f32_f32, // llvm.nvvm.tex.2d.array.grad.v4f32.f32
-+ nvvm_tex_2d_array_grad_v4s32_f32, // llvm.nvvm.tex.2d.array.grad.v4s32.f32
-+ nvvm_tex_2d_array_grad_v4u32_f32, // llvm.nvvm.tex.2d.array.grad.v4u32.f32
-+ nvvm_tex_2d_array_level_v4f32_f32, // llvm.nvvm.tex.2d.array.level.v4f32.f32
-+ nvvm_tex_2d_array_level_v4s32_f32, // llvm.nvvm.tex.2d.array.level.v4s32.f32
-+ nvvm_tex_2d_array_level_v4u32_f32, // llvm.nvvm.tex.2d.array.level.v4u32.f32
-+ nvvm_tex_2d_array_v4f32_f32, // llvm.nvvm.tex.2d.array.v4f32.f32
-+ nvvm_tex_2d_array_v4f32_s32, // llvm.nvvm.tex.2d.array.v4f32.s32
-+ nvvm_tex_2d_array_v4s32_f32, // llvm.nvvm.tex.2d.array.v4s32.f32
-+ nvvm_tex_2d_array_v4s32_s32, // llvm.nvvm.tex.2d.array.v4s32.s32
-+ nvvm_tex_2d_array_v4u32_f32, // llvm.nvvm.tex.2d.array.v4u32.f32
-+ nvvm_tex_2d_array_v4u32_s32, // llvm.nvvm.tex.2d.array.v4u32.s32
-+ nvvm_tex_2d_grad_v4f32_f32, // llvm.nvvm.tex.2d.grad.v4f32.f32
-+ nvvm_tex_2d_grad_v4s32_f32, // llvm.nvvm.tex.2d.grad.v4s32.f32
-+ nvvm_tex_2d_grad_v4u32_f32, // llvm.nvvm.tex.2d.grad.v4u32.f32
-+ nvvm_tex_2d_level_v4f32_f32, // llvm.nvvm.tex.2d.level.v4f32.f32
-+ nvvm_tex_2d_level_v4s32_f32, // llvm.nvvm.tex.2d.level.v4s32.f32
-+ nvvm_tex_2d_level_v4u32_f32, // llvm.nvvm.tex.2d.level.v4u32.f32
-+ nvvm_tex_2d_v4f32_f32, // llvm.nvvm.tex.2d.v4f32.f32
-+ nvvm_tex_2d_v4f32_s32, // llvm.nvvm.tex.2d.v4f32.s32
-+ nvvm_tex_2d_v4s32_f32, // llvm.nvvm.tex.2d.v4s32.f32
-+ nvvm_tex_2d_v4s32_s32, // llvm.nvvm.tex.2d.v4s32.s32
-+ nvvm_tex_2d_v4u32_f32, // llvm.nvvm.tex.2d.v4u32.f32
-+ nvvm_tex_2d_v4u32_s32, // llvm.nvvm.tex.2d.v4u32.s32
-+ nvvm_tex_3d_grad_v4f32_f32, // llvm.nvvm.tex.3d.grad.v4f32.f32
-+ nvvm_tex_3d_grad_v4s32_f32, // llvm.nvvm.tex.3d.grad.v4s32.f32
-+ nvvm_tex_3d_grad_v4u32_f32, // llvm.nvvm.tex.3d.grad.v4u32.f32
-+ nvvm_tex_3d_level_v4f32_f32, // llvm.nvvm.tex.3d.level.v4f32.f32
-+ nvvm_tex_3d_level_v4s32_f32, // llvm.nvvm.tex.3d.level.v4s32.f32
-+ nvvm_tex_3d_level_v4u32_f32, // llvm.nvvm.tex.3d.level.v4u32.f32
-+ nvvm_tex_3d_v4f32_f32, // llvm.nvvm.tex.3d.v4f32.f32
-+ nvvm_tex_3d_v4f32_s32, // llvm.nvvm.tex.3d.v4f32.s32
-+ nvvm_tex_3d_v4s32_f32, // llvm.nvvm.tex.3d.v4s32.f32
-+ nvvm_tex_3d_v4s32_s32, // llvm.nvvm.tex.3d.v4s32.s32
-+ nvvm_tex_3d_v4u32_f32, // llvm.nvvm.tex.3d.v4u32.f32
-+ nvvm_tex_3d_v4u32_s32, // llvm.nvvm.tex.3d.v4u32.s32
-+ nvvm_tex_cube_array_level_v4f32_f32, // llvm.nvvm.tex.cube.array.level.v4f32.f32
-+ nvvm_tex_cube_array_level_v4s32_f32, // llvm.nvvm.tex.cube.array.level.v4s32.f32
-+ nvvm_tex_cube_array_level_v4u32_f32, // llvm.nvvm.tex.cube.array.level.v4u32.f32
-+ nvvm_tex_cube_array_v4f32_f32, // llvm.nvvm.tex.cube.array.v4f32.f32
-+ nvvm_tex_cube_array_v4s32_f32, // llvm.nvvm.tex.cube.array.v4s32.f32
-+ nvvm_tex_cube_array_v4u32_f32, // llvm.nvvm.tex.cube.array.v4u32.f32
-+ nvvm_tex_cube_level_v4f32_f32, // llvm.nvvm.tex.cube.level.v4f32.f32
-+ nvvm_tex_cube_level_v4s32_f32, // llvm.nvvm.tex.cube.level.v4s32.f32
-+ nvvm_tex_cube_level_v4u32_f32, // llvm.nvvm.tex.cube.level.v4u32.f32
-+ nvvm_tex_cube_v4f32_f32, // llvm.nvvm.tex.cube.v4f32.f32
-+ nvvm_tex_cube_v4s32_f32, // llvm.nvvm.tex.cube.v4s32.f32
-+ nvvm_tex_cube_v4u32_f32, // llvm.nvvm.tex.cube.v4u32.f32
-+ nvvm_tex_unified_1d_array_grad_v4f32_f32, // llvm.nvvm.tex.unified.1d.array.grad.v4f32.f32
-+ nvvm_tex_unified_1d_array_grad_v4s32_f32, // llvm.nvvm.tex.unified.1d.array.grad.v4s32.f32
-+ nvvm_tex_unified_1d_array_grad_v4u32_f32, // llvm.nvvm.tex.unified.1d.array.grad.v4u32.f32
-+ nvvm_tex_unified_1d_array_level_v4f32_f32, // llvm.nvvm.tex.unified.1d.array.level.v4f32.f32
-+ nvvm_tex_unified_1d_array_level_v4s32_f32, // llvm.nvvm.tex.unified.1d.array.level.v4s32.f32
-+ nvvm_tex_unified_1d_array_level_v4u32_f32, // llvm.nvvm.tex.unified.1d.array.level.v4u32.f32
-+ nvvm_tex_unified_1d_array_v4f32_f32, // llvm.nvvm.tex.unified.1d.array.v4f32.f32
-+ nvvm_tex_unified_1d_array_v4f32_s32, // llvm.nvvm.tex.unified.1d.array.v4f32.s32
-+ nvvm_tex_unified_1d_array_v4s32_f32, // llvm.nvvm.tex.unified.1d.array.v4s32.f32
-+ nvvm_tex_unified_1d_array_v4s32_s32, // llvm.nvvm.tex.unified.1d.array.v4s32.s32
-+ nvvm_tex_unified_1d_array_v4u32_f32, // llvm.nvvm.tex.unified.1d.array.v4u32.f32
-+ nvvm_tex_unified_1d_array_v4u32_s32, // llvm.nvvm.tex.unified.1d.array.v4u32.s32
-+ nvvm_tex_unified_1d_grad_v4f32_f32, // llvm.nvvm.tex.unified.1d.grad.v4f32.f32
-+ nvvm_tex_unified_1d_grad_v4s32_f32, // llvm.nvvm.tex.unified.1d.grad.v4s32.f32
-+ nvvm_tex_unified_1d_grad_v4u32_f32, // llvm.nvvm.tex.unified.1d.grad.v4u32.f32
-+ nvvm_tex_unified_1d_level_v4f32_f32, // llvm.nvvm.tex.unified.1d.level.v4f32.f32
-+ nvvm_tex_unified_1d_level_v4s32_f32, // llvm.nvvm.tex.unified.1d.level.v4s32.f32
-+ nvvm_tex_unified_1d_level_v4u32_f32, // llvm.nvvm.tex.unified.1d.level.v4u32.f32
-+ nvvm_tex_unified_1d_v4f32_f32, // llvm.nvvm.tex.unified.1d.v4f32.f32
-+ nvvm_tex_unified_1d_v4f32_s32, // llvm.nvvm.tex.unified.1d.v4f32.s32
-+ nvvm_tex_unified_1d_v4s32_f32, // llvm.nvvm.tex.unified.1d.v4s32.f32
-+ nvvm_tex_unified_1d_v4s32_s32, // llvm.nvvm.tex.unified.1d.v4s32.s32
-+ nvvm_tex_unified_1d_v4u32_f32, // llvm.nvvm.tex.unified.1d.v4u32.f32
-+ nvvm_tex_unified_1d_v4u32_s32, // llvm.nvvm.tex.unified.1d.v4u32.s32
-+ nvvm_tex_unified_2d_array_grad_v4f32_f32, // llvm.nvvm.tex.unified.2d.array.grad.v4f32.f32
-+ nvvm_tex_unified_2d_array_grad_v4s32_f32, // llvm.nvvm.tex.unified.2d.array.grad.v4s32.f32
-+ nvvm_tex_unified_2d_array_grad_v4u32_f32, // llvm.nvvm.tex.unified.2d.array.grad.v4u32.f32
-+ nvvm_tex_unified_2d_array_level_v4f32_f32, // llvm.nvvm.tex.unified.2d.array.level.v4f32.f32
-+ nvvm_tex_unified_2d_array_level_v4s32_f32, // llvm.nvvm.tex.unified.2d.array.level.v4s32.f32
-+ nvvm_tex_unified_2d_array_level_v4u32_f32, // llvm.nvvm.tex.unified.2d.array.level.v4u32.f32
-+ nvvm_tex_unified_2d_array_v4f32_f32, // llvm.nvvm.tex.unified.2d.array.v4f32.f32
-+ nvvm_tex_unified_2d_array_v4f32_s32, // llvm.nvvm.tex.unified.2d.array.v4f32.s32
-+ nvvm_tex_unified_2d_array_v4s32_f32, // llvm.nvvm.tex.unified.2d.array.v4s32.f32
-+ nvvm_tex_unified_2d_array_v4s32_s32, // llvm.nvvm.tex.unified.2d.array.v4s32.s32
-+ nvvm_tex_unified_2d_array_v4u32_f32, // llvm.nvvm.tex.unified.2d.array.v4u32.f32
-+ nvvm_tex_unified_2d_array_v4u32_s32, // llvm.nvvm.tex.unified.2d.array.v4u32.s32
-+ nvvm_tex_unified_2d_grad_v4f32_f32, // llvm.nvvm.tex.unified.2d.grad.v4f32.f32
-+ nvvm_tex_unified_2d_grad_v4s32_f32, // llvm.nvvm.tex.unified.2d.grad.v4s32.f32
-+ nvvm_tex_unified_2d_grad_v4u32_f32, // llvm.nvvm.tex.unified.2d.grad.v4u32.f32
-+ nvvm_tex_unified_2d_level_v4f32_f32, // llvm.nvvm.tex.unified.2d.level.v4f32.f32
-+ nvvm_tex_unified_2d_level_v4s32_f32, // llvm.nvvm.tex.unified.2d.level.v4s32.f32
-+ nvvm_tex_unified_2d_level_v4u32_f32, // llvm.nvvm.tex.unified.2d.level.v4u32.f32
-+ nvvm_tex_unified_2d_v4f32_f32, // llvm.nvvm.tex.unified.2d.v4f32.f32
-+ nvvm_tex_unified_2d_v4f32_s32, // llvm.nvvm.tex.unified.2d.v4f32.s32
-+ nvvm_tex_unified_2d_v4s32_f32, // llvm.nvvm.tex.unified.2d.v4s32.f32
-+ nvvm_tex_unified_2d_v4s32_s32, // llvm.nvvm.tex.unified.2d.v4s32.s32
-+ nvvm_tex_unified_2d_v4u32_f32, // llvm.nvvm.tex.unified.2d.v4u32.f32
-+ nvvm_tex_unified_2d_v4u32_s32, // llvm.nvvm.tex.unified.2d.v4u32.s32
-+ nvvm_tex_unified_3d_grad_v4f32_f32, // llvm.nvvm.tex.unified.3d.grad.v4f32.f32
-+ nvvm_tex_unified_3d_grad_v4s32_f32, // llvm.nvvm.tex.unified.3d.grad.v4s32.f32
-+ nvvm_tex_unified_3d_grad_v4u32_f32, // llvm.nvvm.tex.unified.3d.grad.v4u32.f32
-+ nvvm_tex_unified_3d_level_v4f32_f32, // llvm.nvvm.tex.unified.3d.level.v4f32.f32
-+ nvvm_tex_unified_3d_level_v4s32_f32, // llvm.nvvm.tex.unified.3d.level.v4s32.f32
-+ nvvm_tex_unified_3d_level_v4u32_f32, // llvm.nvvm.tex.unified.3d.level.v4u32.f32
-+ nvvm_tex_unified_3d_v4f32_f32, // llvm.nvvm.tex.unified.3d.v4f32.f32
-+ nvvm_tex_unified_3d_v4f32_s32, // llvm.nvvm.tex.unified.3d.v4f32.s32
-+ nvvm_tex_unified_3d_v4s32_f32, // llvm.nvvm.tex.unified.3d.v4s32.f32
-+ nvvm_tex_unified_3d_v4s32_s32, // llvm.nvvm.tex.unified.3d.v4s32.s32
-+ nvvm_tex_unified_3d_v4u32_f32, // llvm.nvvm.tex.unified.3d.v4u32.f32
-+ nvvm_tex_unified_3d_v4u32_s32, // llvm.nvvm.tex.unified.3d.v4u32.s32
-+ nvvm_tex_unified_cube_array_level_v4f32_f32, // llvm.nvvm.tex.unified.cube.array.level.v4f32.f32
-+ nvvm_tex_unified_cube_array_level_v4s32_f32, // llvm.nvvm.tex.unified.cube.array.level.v4s32.f32
-+ nvvm_tex_unified_cube_array_level_v4u32_f32, // llvm.nvvm.tex.unified.cube.array.level.v4u32.f32
-+ nvvm_tex_unified_cube_array_v4f32_f32, // llvm.nvvm.tex.unified.cube.array.v4f32.f32
-+ nvvm_tex_unified_cube_array_v4s32_f32, // llvm.nvvm.tex.unified.cube.array.v4s32.f32
-+ nvvm_tex_unified_cube_array_v4u32_f32, // llvm.nvvm.tex.unified.cube.array.v4u32.f32
-+ nvvm_tex_unified_cube_level_v4f32_f32, // llvm.nvvm.tex.unified.cube.level.v4f32.f32
-+ nvvm_tex_unified_cube_level_v4s32_f32, // llvm.nvvm.tex.unified.cube.level.v4s32.f32
-+ nvvm_tex_unified_cube_level_v4u32_f32, // llvm.nvvm.tex.unified.cube.level.v4u32.f32
-+ nvvm_tex_unified_cube_v4f32_f32, // llvm.nvvm.tex.unified.cube.v4f32.f32
-+ nvvm_tex_unified_cube_v4s32_f32, // llvm.nvvm.tex.unified.cube.v4s32.f32
-+ nvvm_tex_unified_cube_v4u32_f32, // llvm.nvvm.tex.unified.cube.v4u32.f32
-+ nvvm_texsurf_handle, // llvm.nvvm.texsurf.handle
-+ nvvm_texsurf_handle_internal, // llvm.nvvm.texsurf.handle.internal
-+ nvvm_tld4_a_2d_v4f32_f32, // llvm.nvvm.tld4.a.2d.v4f32.f32
-+ nvvm_tld4_a_2d_v4s32_f32, // llvm.nvvm.tld4.a.2d.v4s32.f32
-+ nvvm_tld4_a_2d_v4u32_f32, // llvm.nvvm.tld4.a.2d.v4u32.f32
-+ nvvm_tld4_b_2d_v4f32_f32, // llvm.nvvm.tld4.b.2d.v4f32.f32
-+ nvvm_tld4_b_2d_v4s32_f32, // llvm.nvvm.tld4.b.2d.v4s32.f32
-+ nvvm_tld4_b_2d_v4u32_f32, // llvm.nvvm.tld4.b.2d.v4u32.f32
-+ nvvm_tld4_g_2d_v4f32_f32, // llvm.nvvm.tld4.g.2d.v4f32.f32
-+ nvvm_tld4_g_2d_v4s32_f32, // llvm.nvvm.tld4.g.2d.v4s32.f32
-+ nvvm_tld4_g_2d_v4u32_f32, // llvm.nvvm.tld4.g.2d.v4u32.f32
-+ nvvm_tld4_r_2d_v4f32_f32, // llvm.nvvm.tld4.r.2d.v4f32.f32
-+ nvvm_tld4_r_2d_v4s32_f32, // llvm.nvvm.tld4.r.2d.v4s32.f32
-+ nvvm_tld4_r_2d_v4u32_f32, // llvm.nvvm.tld4.r.2d.v4u32.f32
-+ nvvm_tld4_unified_a_2d_v4f32_f32, // llvm.nvvm.tld4.unified.a.2d.v4f32.f32
-+ nvvm_tld4_unified_a_2d_v4s32_f32, // llvm.nvvm.tld4.unified.a.2d.v4s32.f32
-+ nvvm_tld4_unified_a_2d_v4u32_f32, // llvm.nvvm.tld4.unified.a.2d.v4u32.f32
-+ nvvm_tld4_unified_b_2d_v4f32_f32, // llvm.nvvm.tld4.unified.b.2d.v4f32.f32
-+ nvvm_tld4_unified_b_2d_v4s32_f32, // llvm.nvvm.tld4.unified.b.2d.v4s32.f32
-+ nvvm_tld4_unified_b_2d_v4u32_f32, // llvm.nvvm.tld4.unified.b.2d.v4u32.f32
-+ nvvm_tld4_unified_g_2d_v4f32_f32, // llvm.nvvm.tld4.unified.g.2d.v4f32.f32
-+ nvvm_tld4_unified_g_2d_v4s32_f32, // llvm.nvvm.tld4.unified.g.2d.v4s32.f32
-+ nvvm_tld4_unified_g_2d_v4u32_f32, // llvm.nvvm.tld4.unified.g.2d.v4u32.f32
-+ nvvm_tld4_unified_r_2d_v4f32_f32, // llvm.nvvm.tld4.unified.r.2d.v4f32.f32
-+ nvvm_tld4_unified_r_2d_v4s32_f32, // llvm.nvvm.tld4.unified.r.2d.v4s32.f32
-+ nvvm_tld4_unified_r_2d_v4u32_f32, // llvm.nvvm.tld4.unified.r.2d.v4u32.f32
-+ nvvm_trunc_d, // llvm.nvvm.trunc.d
-+ nvvm_trunc_f, // llvm.nvvm.trunc.f
-+ nvvm_trunc_ftz_f, // llvm.nvvm.trunc.ftz.f
-+ nvvm_txq_array_size, // llvm.nvvm.txq.array.size
-+ nvvm_txq_channel_data_type, // llvm.nvvm.txq.channel.data.type
-+ nvvm_txq_channel_order, // llvm.nvvm.txq.channel.order
-+ nvvm_txq_depth, // llvm.nvvm.txq.depth
-+ nvvm_txq_height, // llvm.nvvm.txq.height
-+ nvvm_txq_num_mipmap_levels, // llvm.nvvm.txq.num.mipmap.levels
-+ nvvm_txq_num_samples, // llvm.nvvm.txq.num.samples
-+ nvvm_txq_width, // llvm.nvvm.txq.width
-+ nvvm_ui2d_rm, // llvm.nvvm.ui2d.rm
-+ nvvm_ui2d_rn, // llvm.nvvm.ui2d.rn
-+ nvvm_ui2d_rp, // llvm.nvvm.ui2d.rp
-+ nvvm_ui2d_rz, // llvm.nvvm.ui2d.rz
-+ nvvm_ui2f_rm, // llvm.nvvm.ui2f.rm
-+ nvvm_ui2f_rn, // llvm.nvvm.ui2f.rn
-+ nvvm_ui2f_rp, // llvm.nvvm.ui2f.rp
-+ nvvm_ui2f_rz, // llvm.nvvm.ui2f.rz
-+ nvvm_ull2d_rm, // llvm.nvvm.ull2d.rm
-+ nvvm_ull2d_rn, // llvm.nvvm.ull2d.rn
-+ nvvm_ull2d_rp, // llvm.nvvm.ull2d.rp
-+ nvvm_ull2d_rz, // llvm.nvvm.ull2d.rz
-+ nvvm_ull2f_rm, // llvm.nvvm.ull2f.rm
-+ nvvm_ull2f_rn, // llvm.nvvm.ull2f.rn
-+ nvvm_ull2f_rp, // llvm.nvvm.ull2f.rp
-+ nvvm_ull2f_rz, // llvm.nvvm.ull2f.rz
-+ ppc_altivec_crypto_vcipher, // llvm.ppc.altivec.crypto.vcipher
-+ ppc_altivec_crypto_vcipherlast, // llvm.ppc.altivec.crypto.vcipherlast
-+ ppc_altivec_crypto_vncipher, // llvm.ppc.altivec.crypto.vncipher
-+ ppc_altivec_crypto_vncipherlast, // llvm.ppc.altivec.crypto.vncipherlast
-+ ppc_altivec_crypto_vpermxor, // llvm.ppc.altivec.crypto.vpermxor
-+ ppc_altivec_crypto_vpmsumb, // llvm.ppc.altivec.crypto.vpmsumb
-+ ppc_altivec_crypto_vpmsumd, // llvm.ppc.altivec.crypto.vpmsumd
-+ ppc_altivec_crypto_vpmsumh, // llvm.ppc.altivec.crypto.vpmsumh
-+ ppc_altivec_crypto_vpmsumw, // llvm.ppc.altivec.crypto.vpmsumw
-+ ppc_altivec_crypto_vsbox, // llvm.ppc.altivec.crypto.vsbox
-+ ppc_altivec_crypto_vshasigmad, // llvm.ppc.altivec.crypto.vshasigmad
-+ ppc_altivec_crypto_vshasigmaw, // llvm.ppc.altivec.crypto.vshasigmaw
-+ ppc_altivec_dss, // llvm.ppc.altivec.dss
-+ ppc_altivec_dssall, // llvm.ppc.altivec.dssall
-+ ppc_altivec_dst, // llvm.ppc.altivec.dst
-+ ppc_altivec_dstst, // llvm.ppc.altivec.dstst
-+ ppc_altivec_dststt, // llvm.ppc.altivec.dststt
-+ ppc_altivec_dstt, // llvm.ppc.altivec.dstt
-+ ppc_altivec_lvebx, // llvm.ppc.altivec.lvebx
-+ ppc_altivec_lvehx, // llvm.ppc.altivec.lvehx
-+ ppc_altivec_lvewx, // llvm.ppc.altivec.lvewx
-+ ppc_altivec_lvsl, // llvm.ppc.altivec.lvsl
-+ ppc_altivec_lvsr, // llvm.ppc.altivec.lvsr
-+ ppc_altivec_lvx, // llvm.ppc.altivec.lvx
-+ ppc_altivec_lvxl, // llvm.ppc.altivec.lvxl
-+ ppc_altivec_mfvscr, // llvm.ppc.altivec.mfvscr
-+ ppc_altivec_mtvscr, // llvm.ppc.altivec.mtvscr
-+ ppc_altivec_stvebx, // llvm.ppc.altivec.stvebx
-+ ppc_altivec_stvehx, // llvm.ppc.altivec.stvehx
-+ ppc_altivec_stvewx, // llvm.ppc.altivec.stvewx
-+ ppc_altivec_stvx, // llvm.ppc.altivec.stvx
-+ ppc_altivec_stvxl, // llvm.ppc.altivec.stvxl
-+ ppc_altivec_vabsdub, // llvm.ppc.altivec.vabsdub
-+ ppc_altivec_vabsduh, // llvm.ppc.altivec.vabsduh
-+ ppc_altivec_vabsduw, // llvm.ppc.altivec.vabsduw
-+ ppc_altivec_vaddcuq, // llvm.ppc.altivec.vaddcuq
-+ ppc_altivec_vaddcuw, // llvm.ppc.altivec.vaddcuw
-+ ppc_altivec_vaddecuq, // llvm.ppc.altivec.vaddecuq
-+ ppc_altivec_vaddeuqm, // llvm.ppc.altivec.vaddeuqm
-+ ppc_altivec_vaddsbs, // llvm.ppc.altivec.vaddsbs
-+ ppc_altivec_vaddshs, // llvm.ppc.altivec.vaddshs
-+ ppc_altivec_vaddsws, // llvm.ppc.altivec.vaddsws
-+ ppc_altivec_vaddubs, // llvm.ppc.altivec.vaddubs
-+ ppc_altivec_vadduhs, // llvm.ppc.altivec.vadduhs
-+ ppc_altivec_vadduws, // llvm.ppc.altivec.vadduws
-+ ppc_altivec_vavgsb, // llvm.ppc.altivec.vavgsb
-+ ppc_altivec_vavgsh, // llvm.ppc.altivec.vavgsh
-+ ppc_altivec_vavgsw, // llvm.ppc.altivec.vavgsw
-+ ppc_altivec_vavgub, // llvm.ppc.altivec.vavgub
-+ ppc_altivec_vavguh, // llvm.ppc.altivec.vavguh
-+ ppc_altivec_vavguw, // llvm.ppc.altivec.vavguw
-+ ppc_altivec_vbpermq, // llvm.ppc.altivec.vbpermq
-+ ppc_altivec_vcfsx, // llvm.ppc.altivec.vcfsx
-+ ppc_altivec_vcfux, // llvm.ppc.altivec.vcfux
-+ ppc_altivec_vclzlsbb, // llvm.ppc.altivec.vclzlsbb
-+ ppc_altivec_vcmpbfp, // llvm.ppc.altivec.vcmpbfp
-+ ppc_altivec_vcmpbfp_p, // llvm.ppc.altivec.vcmpbfp.p
-+ ppc_altivec_vcmpeqfp, // llvm.ppc.altivec.vcmpeqfp
-+ ppc_altivec_vcmpeqfp_p, // llvm.ppc.altivec.vcmpeqfp.p
-+ ppc_altivec_vcmpequb, // llvm.ppc.altivec.vcmpequb
-+ ppc_altivec_vcmpequb_p, // llvm.ppc.altivec.vcmpequb.p
-+ ppc_altivec_vcmpequd, // llvm.ppc.altivec.vcmpequd
-+ ppc_altivec_vcmpequd_p, // llvm.ppc.altivec.vcmpequd.p
-+ ppc_altivec_vcmpequh, // llvm.ppc.altivec.vcmpequh
-+ ppc_altivec_vcmpequh_p, // llvm.ppc.altivec.vcmpequh.p
-+ ppc_altivec_vcmpequw, // llvm.ppc.altivec.vcmpequw
-+ ppc_altivec_vcmpequw_p, // llvm.ppc.altivec.vcmpequw.p
-+ ppc_altivec_vcmpgefp, // llvm.ppc.altivec.vcmpgefp
-+ ppc_altivec_vcmpgefp_p, // llvm.ppc.altivec.vcmpgefp.p
-+ ppc_altivec_vcmpgtfp, // llvm.ppc.altivec.vcmpgtfp
-+ ppc_altivec_vcmpgtfp_p, // llvm.ppc.altivec.vcmpgtfp.p
-+ ppc_altivec_vcmpgtsb, // llvm.ppc.altivec.vcmpgtsb
-+ ppc_altivec_vcmpgtsb_p, // llvm.ppc.altivec.vcmpgtsb.p
-+ ppc_altivec_vcmpgtsd, // llvm.ppc.altivec.vcmpgtsd
-+ ppc_altivec_vcmpgtsd_p, // llvm.ppc.altivec.vcmpgtsd.p
-+ ppc_altivec_vcmpgtsh, // llvm.ppc.altivec.vcmpgtsh
-+ ppc_altivec_vcmpgtsh_p, // llvm.ppc.altivec.vcmpgtsh.p
-+ ppc_altivec_vcmpgtsw, // llvm.ppc.altivec.vcmpgtsw
-+ ppc_altivec_vcmpgtsw_p, // llvm.ppc.altivec.vcmpgtsw.p
-+ ppc_altivec_vcmpgtub, // llvm.ppc.altivec.vcmpgtub
-+ ppc_altivec_vcmpgtub_p, // llvm.ppc.altivec.vcmpgtub.p
-+ ppc_altivec_vcmpgtud, // llvm.ppc.altivec.vcmpgtud
-+ ppc_altivec_vcmpgtud_p, // llvm.ppc.altivec.vcmpgtud.p
-+ ppc_altivec_vcmpgtuh, // llvm.ppc.altivec.vcmpgtuh
-+ ppc_altivec_vcmpgtuh_p, // llvm.ppc.altivec.vcmpgtuh.p
-+ ppc_altivec_vcmpgtuw, // llvm.ppc.altivec.vcmpgtuw
-+ ppc_altivec_vcmpgtuw_p, // llvm.ppc.altivec.vcmpgtuw.p
-+ ppc_altivec_vcmpneb, // llvm.ppc.altivec.vcmpneb
-+ ppc_altivec_vcmpneb_p, // llvm.ppc.altivec.vcmpneb.p
-+ ppc_altivec_vcmpneh, // llvm.ppc.altivec.vcmpneh
-+ ppc_altivec_vcmpneh_p, // llvm.ppc.altivec.vcmpneh.p
-+ ppc_altivec_vcmpnew, // llvm.ppc.altivec.vcmpnew
-+ ppc_altivec_vcmpnew_p, // llvm.ppc.altivec.vcmpnew.p
-+ ppc_altivec_vcmpnezb, // llvm.ppc.altivec.vcmpnezb
-+ ppc_altivec_vcmpnezb_p, // llvm.ppc.altivec.vcmpnezb.p
-+ ppc_altivec_vcmpnezh, // llvm.ppc.altivec.vcmpnezh
-+ ppc_altivec_vcmpnezh_p, // llvm.ppc.altivec.vcmpnezh.p
-+ ppc_altivec_vcmpnezw, // llvm.ppc.altivec.vcmpnezw
-+ ppc_altivec_vcmpnezw_p, // llvm.ppc.altivec.vcmpnezw.p
-+ ppc_altivec_vctsxs, // llvm.ppc.altivec.vctsxs
-+ ppc_altivec_vctuxs, // llvm.ppc.altivec.vctuxs
-+ ppc_altivec_vctzlsbb, // llvm.ppc.altivec.vctzlsbb
-+ ppc_altivec_vexptefp, // llvm.ppc.altivec.vexptefp
-+ ppc_altivec_vgbbd, // llvm.ppc.altivec.vgbbd
-+ ppc_altivec_vlogefp, // llvm.ppc.altivec.vlogefp
-+ ppc_altivec_vmaddfp, // llvm.ppc.altivec.vmaddfp
-+ ppc_altivec_vmaxfp, // llvm.ppc.altivec.vmaxfp
-+ ppc_altivec_vmaxsb, // llvm.ppc.altivec.vmaxsb
-+ ppc_altivec_vmaxsd, // llvm.ppc.altivec.vmaxsd
-+ ppc_altivec_vmaxsh, // llvm.ppc.altivec.vmaxsh
-+ ppc_altivec_vmaxsw, // llvm.ppc.altivec.vmaxsw
-+ ppc_altivec_vmaxub, // llvm.ppc.altivec.vmaxub
-+ ppc_altivec_vmaxud, // llvm.ppc.altivec.vmaxud
-+ ppc_altivec_vmaxuh, // llvm.ppc.altivec.vmaxuh
-+ ppc_altivec_vmaxuw, // llvm.ppc.altivec.vmaxuw
-+ ppc_altivec_vmhaddshs, // llvm.ppc.altivec.vmhaddshs
-+ ppc_altivec_vmhraddshs, // llvm.ppc.altivec.vmhraddshs
-+ ppc_altivec_vminfp, // llvm.ppc.altivec.vminfp
-+ ppc_altivec_vminsb, // llvm.ppc.altivec.vminsb
-+ ppc_altivec_vminsd, // llvm.ppc.altivec.vminsd
-+ ppc_altivec_vminsh, // llvm.ppc.altivec.vminsh
-+ ppc_altivec_vminsw, // llvm.ppc.altivec.vminsw
-+ ppc_altivec_vminub, // llvm.ppc.altivec.vminub
-+ ppc_altivec_vminud, // llvm.ppc.altivec.vminud
-+ ppc_altivec_vminuh, // llvm.ppc.altivec.vminuh
-+ ppc_altivec_vminuw, // llvm.ppc.altivec.vminuw
-+ ppc_altivec_vmladduhm, // llvm.ppc.altivec.vmladduhm
-+ ppc_altivec_vmsummbm, // llvm.ppc.altivec.vmsummbm
-+ ppc_altivec_vmsumshm, // llvm.ppc.altivec.vmsumshm
-+ ppc_altivec_vmsumshs, // llvm.ppc.altivec.vmsumshs
-+ ppc_altivec_vmsumubm, // llvm.ppc.altivec.vmsumubm
-+ ppc_altivec_vmsumuhm, // llvm.ppc.altivec.vmsumuhm
-+ ppc_altivec_vmsumuhs, // llvm.ppc.altivec.vmsumuhs
-+ ppc_altivec_vmulesb, // llvm.ppc.altivec.vmulesb
-+ ppc_altivec_vmulesh, // llvm.ppc.altivec.vmulesh
-+ ppc_altivec_vmulesw, // llvm.ppc.altivec.vmulesw
-+ ppc_altivec_vmuleub, // llvm.ppc.altivec.vmuleub
-+ ppc_altivec_vmuleuh, // llvm.ppc.altivec.vmuleuh
-+ ppc_altivec_vmuleuw, // llvm.ppc.altivec.vmuleuw
-+ ppc_altivec_vmulosb, // llvm.ppc.altivec.vmulosb
-+ ppc_altivec_vmulosh, // llvm.ppc.altivec.vmulosh
-+ ppc_altivec_vmulosw, // llvm.ppc.altivec.vmulosw
-+ ppc_altivec_vmuloub, // llvm.ppc.altivec.vmuloub
-+ ppc_altivec_vmulouh, // llvm.ppc.altivec.vmulouh
-+ ppc_altivec_vmulouw, // llvm.ppc.altivec.vmulouw
-+ ppc_altivec_vnmsubfp, // llvm.ppc.altivec.vnmsubfp
-+ ppc_altivec_vperm, // llvm.ppc.altivec.vperm
-+ ppc_altivec_vpkpx, // llvm.ppc.altivec.vpkpx
-+ ppc_altivec_vpksdss, // llvm.ppc.altivec.vpksdss
-+ ppc_altivec_vpksdus, // llvm.ppc.altivec.vpksdus
-+ ppc_altivec_vpkshss, // llvm.ppc.altivec.vpkshss
-+ ppc_altivec_vpkshus, // llvm.ppc.altivec.vpkshus
-+ ppc_altivec_vpkswss, // llvm.ppc.altivec.vpkswss
-+ ppc_altivec_vpkswus, // llvm.ppc.altivec.vpkswus
-+ ppc_altivec_vpkudus, // llvm.ppc.altivec.vpkudus
-+ ppc_altivec_vpkuhus, // llvm.ppc.altivec.vpkuhus
-+ ppc_altivec_vpkuwus, // llvm.ppc.altivec.vpkuwus
-+ ppc_altivec_vprtybd, // llvm.ppc.altivec.vprtybd
-+ ppc_altivec_vprtybq, // llvm.ppc.altivec.vprtybq
-+ ppc_altivec_vprtybw, // llvm.ppc.altivec.vprtybw
-+ ppc_altivec_vrefp, // llvm.ppc.altivec.vrefp
-+ ppc_altivec_vrfim, // llvm.ppc.altivec.vrfim
-+ ppc_altivec_vrfin, // llvm.ppc.altivec.vrfin
-+ ppc_altivec_vrfip, // llvm.ppc.altivec.vrfip
-+ ppc_altivec_vrfiz, // llvm.ppc.altivec.vrfiz
-+ ppc_altivec_vrlb, // llvm.ppc.altivec.vrlb
-+ ppc_altivec_vrld, // llvm.ppc.altivec.vrld
-+ ppc_altivec_vrldmi, // llvm.ppc.altivec.vrldmi
-+ ppc_altivec_vrldnm, // llvm.ppc.altivec.vrldnm
-+ ppc_altivec_vrlh, // llvm.ppc.altivec.vrlh
-+ ppc_altivec_vrlw, // llvm.ppc.altivec.vrlw
-+ ppc_altivec_vrlwmi, // llvm.ppc.altivec.vrlwmi
-+ ppc_altivec_vrlwnm, // llvm.ppc.altivec.vrlwnm
-+ ppc_altivec_vrsqrtefp, // llvm.ppc.altivec.vrsqrtefp
-+ ppc_altivec_vsel, // llvm.ppc.altivec.vsel
-+ ppc_altivec_vsl, // llvm.ppc.altivec.vsl
-+ ppc_altivec_vslb, // llvm.ppc.altivec.vslb
-+ ppc_altivec_vslh, // llvm.ppc.altivec.vslh
-+ ppc_altivec_vslo, // llvm.ppc.altivec.vslo
-+ ppc_altivec_vslv, // llvm.ppc.altivec.vslv
-+ ppc_altivec_vslw, // llvm.ppc.altivec.vslw
-+ ppc_altivec_vsr, // llvm.ppc.altivec.vsr
-+ ppc_altivec_vsrab, // llvm.ppc.altivec.vsrab
-+ ppc_altivec_vsrah, // llvm.ppc.altivec.vsrah
-+ ppc_altivec_vsraw, // llvm.ppc.altivec.vsraw
-+ ppc_altivec_vsrb, // llvm.ppc.altivec.vsrb
-+ ppc_altivec_vsrh, // llvm.ppc.altivec.vsrh
-+ ppc_altivec_vsro, // llvm.ppc.altivec.vsro
-+ ppc_altivec_vsrv, // llvm.ppc.altivec.vsrv
-+ ppc_altivec_vsrw, // llvm.ppc.altivec.vsrw
-+ ppc_altivec_vsubcuq, // llvm.ppc.altivec.vsubcuq
-+ ppc_altivec_vsubcuw, // llvm.ppc.altivec.vsubcuw
-+ ppc_altivec_vsubecuq, // llvm.ppc.altivec.vsubecuq
-+ ppc_altivec_vsubeuqm, // llvm.ppc.altivec.vsubeuqm
-+ ppc_altivec_vsubsbs, // llvm.ppc.altivec.vsubsbs
-+ ppc_altivec_vsubshs, // llvm.ppc.altivec.vsubshs
-+ ppc_altivec_vsubsws, // llvm.ppc.altivec.vsubsws
-+ ppc_altivec_vsububs, // llvm.ppc.altivec.vsububs
-+ ppc_altivec_vsubuhs, // llvm.ppc.altivec.vsubuhs
-+ ppc_altivec_vsubuws, // llvm.ppc.altivec.vsubuws
-+ ppc_altivec_vsum2sws, // llvm.ppc.altivec.vsum2sws
-+ ppc_altivec_vsum4sbs, // llvm.ppc.altivec.vsum4sbs
-+ ppc_altivec_vsum4shs, // llvm.ppc.altivec.vsum4shs
-+ ppc_altivec_vsum4ubs, // llvm.ppc.altivec.vsum4ubs
-+ ppc_altivec_vsumsws, // llvm.ppc.altivec.vsumsws
-+ ppc_altivec_vupkhpx, // llvm.ppc.altivec.vupkhpx
-+ ppc_altivec_vupkhsb, // llvm.ppc.altivec.vupkhsb
-+ ppc_altivec_vupkhsh, // llvm.ppc.altivec.vupkhsh
-+ ppc_altivec_vupkhsw, // llvm.ppc.altivec.vupkhsw
-+ ppc_altivec_vupklpx, // llvm.ppc.altivec.vupklpx
-+ ppc_altivec_vupklsb, // llvm.ppc.altivec.vupklsb
-+ ppc_altivec_vupklsh, // llvm.ppc.altivec.vupklsh
-+ ppc_altivec_vupklsw, // llvm.ppc.altivec.vupklsw
-+ ppc_bpermd, // llvm.ppc.bpermd
-+ ppc_dcba, // llvm.ppc.dcba
-+ ppc_dcbf, // llvm.ppc.dcbf
-+ ppc_dcbi, // llvm.ppc.dcbi
-+ ppc_dcbst, // llvm.ppc.dcbst
-+ ppc_dcbt, // llvm.ppc.dcbt
-+ ppc_dcbtst, // llvm.ppc.dcbtst
-+ ppc_dcbz, // llvm.ppc.dcbz
-+ ppc_dcbzl, // llvm.ppc.dcbzl
-+ ppc_divde, // llvm.ppc.divde
-+ ppc_divdeu, // llvm.ppc.divdeu
-+ ppc_divwe, // llvm.ppc.divwe
-+ ppc_divweu, // llvm.ppc.divweu
-+ ppc_get_texasr, // llvm.ppc.get.texasr
-+ ppc_get_texasru, // llvm.ppc.get.texasru
-+ ppc_get_tfhar, // llvm.ppc.get.tfhar
-+ ppc_get_tfiar, // llvm.ppc.get.tfiar
-+ ppc_is_decremented_ctr_nonzero, // llvm.ppc.is.decremented.ctr.nonzero
-+ ppc_lwsync, // llvm.ppc.lwsync
-+ ppc_mtctr, // llvm.ppc.mtctr
-+ ppc_qpx_qvfabs, // llvm.ppc.qpx.qvfabs
-+ ppc_qpx_qvfadd, // llvm.ppc.qpx.qvfadd
-+ ppc_qpx_qvfadds, // llvm.ppc.qpx.qvfadds
-+ ppc_qpx_qvfcfid, // llvm.ppc.qpx.qvfcfid
-+ ppc_qpx_qvfcfids, // llvm.ppc.qpx.qvfcfids
-+ ppc_qpx_qvfcfidu, // llvm.ppc.qpx.qvfcfidu
-+ ppc_qpx_qvfcfidus, // llvm.ppc.qpx.qvfcfidus
-+ ppc_qpx_qvfcmpeq, // llvm.ppc.qpx.qvfcmpeq
-+ ppc_qpx_qvfcmpgt, // llvm.ppc.qpx.qvfcmpgt
-+ ppc_qpx_qvfcmplt, // llvm.ppc.qpx.qvfcmplt
-+ ppc_qpx_qvfcpsgn, // llvm.ppc.qpx.qvfcpsgn
-+ ppc_qpx_qvfctid, // llvm.ppc.qpx.qvfctid
-+ ppc_qpx_qvfctidu, // llvm.ppc.qpx.qvfctidu
-+ ppc_qpx_qvfctiduz, // llvm.ppc.qpx.qvfctiduz
-+ ppc_qpx_qvfctidz, // llvm.ppc.qpx.qvfctidz
-+ ppc_qpx_qvfctiw, // llvm.ppc.qpx.qvfctiw
-+ ppc_qpx_qvfctiwu, // llvm.ppc.qpx.qvfctiwu
-+ ppc_qpx_qvfctiwuz, // llvm.ppc.qpx.qvfctiwuz
-+ ppc_qpx_qvfctiwz, // llvm.ppc.qpx.qvfctiwz
-+ ppc_qpx_qvflogical, // llvm.ppc.qpx.qvflogical
-+ ppc_qpx_qvfmadd, // llvm.ppc.qpx.qvfmadd
-+ ppc_qpx_qvfmadds, // llvm.ppc.qpx.qvfmadds
-+ ppc_qpx_qvfmsub, // llvm.ppc.qpx.qvfmsub
-+ ppc_qpx_qvfmsubs, // llvm.ppc.qpx.qvfmsubs
-+ ppc_qpx_qvfmul, // llvm.ppc.qpx.qvfmul
-+ ppc_qpx_qvfmuls, // llvm.ppc.qpx.qvfmuls
-+ ppc_qpx_qvfnabs, // llvm.ppc.qpx.qvfnabs
-+ ppc_qpx_qvfneg, // llvm.ppc.qpx.qvfneg
-+ ppc_qpx_qvfnmadd, // llvm.ppc.qpx.qvfnmadd
-+ ppc_qpx_qvfnmadds, // llvm.ppc.qpx.qvfnmadds
-+ ppc_qpx_qvfnmsub, // llvm.ppc.qpx.qvfnmsub
-+ ppc_qpx_qvfnmsubs, // llvm.ppc.qpx.qvfnmsubs
-+ ppc_qpx_qvfperm, // llvm.ppc.qpx.qvfperm
-+ ppc_qpx_qvfre, // llvm.ppc.qpx.qvfre
-+ ppc_qpx_qvfres, // llvm.ppc.qpx.qvfres
-+ ppc_qpx_qvfrim, // llvm.ppc.qpx.qvfrim
-+ ppc_qpx_qvfrin, // llvm.ppc.qpx.qvfrin
-+ ppc_qpx_qvfrip, // llvm.ppc.qpx.qvfrip
-+ ppc_qpx_qvfriz, // llvm.ppc.qpx.qvfriz
-+ ppc_qpx_qvfrsp, // llvm.ppc.qpx.qvfrsp
-+ ppc_qpx_qvfrsqrte, // llvm.ppc.qpx.qvfrsqrte
-+ ppc_qpx_qvfrsqrtes, // llvm.ppc.qpx.qvfrsqrtes
-+ ppc_qpx_qvfsel, // llvm.ppc.qpx.qvfsel
-+ ppc_qpx_qvfsub, // llvm.ppc.qpx.qvfsub
-+ ppc_qpx_qvfsubs, // llvm.ppc.qpx.qvfsubs
-+ ppc_qpx_qvftstnan, // llvm.ppc.qpx.qvftstnan
-+ ppc_qpx_qvfxmadd, // llvm.ppc.qpx.qvfxmadd
-+ ppc_qpx_qvfxmadds, // llvm.ppc.qpx.qvfxmadds
-+ ppc_qpx_qvfxmul, // llvm.ppc.qpx.qvfxmul
-+ ppc_qpx_qvfxmuls, // llvm.ppc.qpx.qvfxmuls
-+ ppc_qpx_qvfxxcpnmadd, // llvm.ppc.qpx.qvfxxcpnmadd
-+ ppc_qpx_qvfxxcpnmadds, // llvm.ppc.qpx.qvfxxcpnmadds
-+ ppc_qpx_qvfxxmadd, // llvm.ppc.qpx.qvfxxmadd
-+ ppc_qpx_qvfxxmadds, // llvm.ppc.qpx.qvfxxmadds
-+ ppc_qpx_qvfxxnpmadd, // llvm.ppc.qpx.qvfxxnpmadd
-+ ppc_qpx_qvfxxnpmadds, // llvm.ppc.qpx.qvfxxnpmadds
-+ ppc_qpx_qvgpci, // llvm.ppc.qpx.qvgpci
-+ ppc_qpx_qvlfcd, // llvm.ppc.qpx.qvlfcd
-+ ppc_qpx_qvlfcda, // llvm.ppc.qpx.qvlfcda
-+ ppc_qpx_qvlfcs, // llvm.ppc.qpx.qvlfcs
-+ ppc_qpx_qvlfcsa, // llvm.ppc.qpx.qvlfcsa
-+ ppc_qpx_qvlfd, // llvm.ppc.qpx.qvlfd
-+ ppc_qpx_qvlfda, // llvm.ppc.qpx.qvlfda
-+ ppc_qpx_qvlfiwa, // llvm.ppc.qpx.qvlfiwa
-+ ppc_qpx_qvlfiwaa, // llvm.ppc.qpx.qvlfiwaa
-+ ppc_qpx_qvlfiwz, // llvm.ppc.qpx.qvlfiwz
-+ ppc_qpx_qvlfiwza, // llvm.ppc.qpx.qvlfiwza
-+ ppc_qpx_qvlfs, // llvm.ppc.qpx.qvlfs
-+ ppc_qpx_qvlfsa, // llvm.ppc.qpx.qvlfsa
-+ ppc_qpx_qvlpcld, // llvm.ppc.qpx.qvlpcld
-+ ppc_qpx_qvlpcls, // llvm.ppc.qpx.qvlpcls
-+ ppc_qpx_qvlpcrd, // llvm.ppc.qpx.qvlpcrd
-+ ppc_qpx_qvlpcrs, // llvm.ppc.qpx.qvlpcrs
-+ ppc_qpx_qvstfcd, // llvm.ppc.qpx.qvstfcd
-+ ppc_qpx_qvstfcda, // llvm.ppc.qpx.qvstfcda
-+ ppc_qpx_qvstfcs, // llvm.ppc.qpx.qvstfcs
-+ ppc_qpx_qvstfcsa, // llvm.ppc.qpx.qvstfcsa
-+ ppc_qpx_qvstfd, // llvm.ppc.qpx.qvstfd
-+ ppc_qpx_qvstfda, // llvm.ppc.qpx.qvstfda
-+ ppc_qpx_qvstfiw, // llvm.ppc.qpx.qvstfiw
-+ ppc_qpx_qvstfiwa, // llvm.ppc.qpx.qvstfiwa
-+ ppc_qpx_qvstfs, // llvm.ppc.qpx.qvstfs
-+ ppc_qpx_qvstfsa, // llvm.ppc.qpx.qvstfsa
-+ ppc_set_texasr, // llvm.ppc.set.texasr
-+ ppc_set_texasru, // llvm.ppc.set.texasru
-+ ppc_set_tfhar, // llvm.ppc.set.tfhar
-+ ppc_set_tfiar, // llvm.ppc.set.tfiar
-+ ppc_sync, // llvm.ppc.sync
-+ ppc_tabort, // llvm.ppc.tabort
-+ ppc_tabortdc, // llvm.ppc.tabortdc
-+ ppc_tabortdci, // llvm.ppc.tabortdci
-+ ppc_tabortwc, // llvm.ppc.tabortwc
-+ ppc_tabortwci, // llvm.ppc.tabortwci
-+ ppc_tbegin, // llvm.ppc.tbegin
-+ ppc_tcheck, // llvm.ppc.tcheck
-+ ppc_tend, // llvm.ppc.tend
-+ ppc_tendall, // llvm.ppc.tendall
-+ ppc_trechkpt, // llvm.ppc.trechkpt
-+ ppc_treclaim, // llvm.ppc.treclaim
-+ ppc_tresume, // llvm.ppc.tresume
-+ ppc_tsr, // llvm.ppc.tsr
-+ ppc_tsuspend, // llvm.ppc.tsuspend
-+ ppc_ttest, // llvm.ppc.ttest
-+ ppc_vsx_lxvd2x, // llvm.ppc.vsx.lxvd2x
-+ ppc_vsx_lxvd2x_be, // llvm.ppc.vsx.lxvd2x.be
-+ ppc_vsx_lxvl, // llvm.ppc.vsx.lxvl
-+ ppc_vsx_lxvll, // llvm.ppc.vsx.lxvll
-+ ppc_vsx_lxvw4x, // llvm.ppc.vsx.lxvw4x
-+ ppc_vsx_lxvw4x_be, // llvm.ppc.vsx.lxvw4x.be
-+ ppc_vsx_stxvd2x, // llvm.ppc.vsx.stxvd2x
-+ ppc_vsx_stxvd2x_be, // llvm.ppc.vsx.stxvd2x.be
-+ ppc_vsx_stxvl, // llvm.ppc.vsx.stxvl
-+ ppc_vsx_stxvll, // llvm.ppc.vsx.stxvll
-+ ppc_vsx_stxvw4x, // llvm.ppc.vsx.stxvw4x
-+ ppc_vsx_stxvw4x_be, // llvm.ppc.vsx.stxvw4x.be
-+ ppc_vsx_xsmaxdp, // llvm.ppc.vsx.xsmaxdp
-+ ppc_vsx_xsmindp, // llvm.ppc.vsx.xsmindp
-+ ppc_vsx_xvcmpeqdp, // llvm.ppc.vsx.xvcmpeqdp
-+ ppc_vsx_xvcmpeqdp_p, // llvm.ppc.vsx.xvcmpeqdp.p
-+ ppc_vsx_xvcmpeqsp, // llvm.ppc.vsx.xvcmpeqsp
-+ ppc_vsx_xvcmpeqsp_p, // llvm.ppc.vsx.xvcmpeqsp.p
-+ ppc_vsx_xvcmpgedp, // llvm.ppc.vsx.xvcmpgedp
-+ ppc_vsx_xvcmpgedp_p, // llvm.ppc.vsx.xvcmpgedp.p
-+ ppc_vsx_xvcmpgesp, // llvm.ppc.vsx.xvcmpgesp
-+ ppc_vsx_xvcmpgesp_p, // llvm.ppc.vsx.xvcmpgesp.p
-+ ppc_vsx_xvcmpgtdp, // llvm.ppc.vsx.xvcmpgtdp
-+ ppc_vsx_xvcmpgtdp_p, // llvm.ppc.vsx.xvcmpgtdp.p
-+ ppc_vsx_xvcmpgtsp, // llvm.ppc.vsx.xvcmpgtsp
-+ ppc_vsx_xvcmpgtsp_p, // llvm.ppc.vsx.xvcmpgtsp.p
-+ ppc_vsx_xvcvdpsp, // llvm.ppc.vsx.xvcvdpsp
-+ ppc_vsx_xvcvdpsxws, // llvm.ppc.vsx.xvcvdpsxws
-+ ppc_vsx_xvcvdpuxws, // llvm.ppc.vsx.xvcvdpuxws
-+ ppc_vsx_xvcvhpsp, // llvm.ppc.vsx.xvcvhpsp
-+ ppc_vsx_xvcvspdp, // llvm.ppc.vsx.xvcvspdp
-+ ppc_vsx_xvcvsphp, // llvm.ppc.vsx.xvcvsphp
-+ ppc_vsx_xvcvsxdsp, // llvm.ppc.vsx.xvcvsxdsp
-+ ppc_vsx_xvcvsxwdp, // llvm.ppc.vsx.xvcvsxwdp
-+ ppc_vsx_xvcvuxdsp, // llvm.ppc.vsx.xvcvuxdsp
-+ ppc_vsx_xvcvuxwdp, // llvm.ppc.vsx.xvcvuxwdp
-+ ppc_vsx_xvdivdp, // llvm.ppc.vsx.xvdivdp
-+ ppc_vsx_xvdivsp, // llvm.ppc.vsx.xvdivsp
-+ ppc_vsx_xviexpdp, // llvm.ppc.vsx.xviexpdp
-+ ppc_vsx_xviexpsp, // llvm.ppc.vsx.xviexpsp
-+ ppc_vsx_xvmaxdp, // llvm.ppc.vsx.xvmaxdp
-+ ppc_vsx_xvmaxsp, // llvm.ppc.vsx.xvmaxsp
-+ ppc_vsx_xvmindp, // llvm.ppc.vsx.xvmindp
-+ ppc_vsx_xvminsp, // llvm.ppc.vsx.xvminsp
-+ ppc_vsx_xvrdpip, // llvm.ppc.vsx.xvrdpip
-+ ppc_vsx_xvredp, // llvm.ppc.vsx.xvredp
-+ ppc_vsx_xvresp, // llvm.ppc.vsx.xvresp
-+ ppc_vsx_xvrspip, // llvm.ppc.vsx.xvrspip
-+ ppc_vsx_xvrsqrtedp, // llvm.ppc.vsx.xvrsqrtedp
-+ ppc_vsx_xvrsqrtesp, // llvm.ppc.vsx.xvrsqrtesp
-+ ppc_vsx_xvtstdcdp, // llvm.ppc.vsx.xvtstdcdp
-+ ppc_vsx_xvtstdcsp, // llvm.ppc.vsx.xvtstdcsp
-+ ppc_vsx_xvxexpdp, // llvm.ppc.vsx.xvxexpdp
-+ ppc_vsx_xvxexpsp, // llvm.ppc.vsx.xvxexpsp
-+ ppc_vsx_xvxsigdp, // llvm.ppc.vsx.xvxsigdp
-+ ppc_vsx_xvxsigsp, // llvm.ppc.vsx.xvxsigsp
-+ ppc_vsx_xxextractuw, // llvm.ppc.vsx.xxextractuw
-+ ppc_vsx_xxinsertw, // llvm.ppc.vsx.xxinsertw
-+ ppc_vsx_xxleqv, // llvm.ppc.vsx.xxleqv
-+ r600_group_barrier, // llvm.r600.group.barrier
-+ r600_implicitarg_ptr, // llvm.r600.implicitarg.ptr
-+ r600_rat_store_typed, // llvm.r600.rat.store.typed
-+ r600_read_global_size_x, // llvm.r600.read.global.size.x
-+ r600_read_global_size_y, // llvm.r600.read.global.size.y
-+ r600_read_global_size_z, // llvm.r600.read.global.size.z
-+ r600_read_local_size_x, // llvm.r600.read.local.size.x
-+ r600_read_local_size_y, // llvm.r600.read.local.size.y
-+ r600_read_local_size_z, // llvm.r600.read.local.size.z
-+ r600_read_ngroups_x, // llvm.r600.read.ngroups.x
-+ r600_read_ngroups_y, // llvm.r600.read.ngroups.y
-+ r600_read_ngroups_z, // llvm.r600.read.ngroups.z
-+ r600_read_tgid_x, // llvm.r600.read.tgid.x
-+ r600_read_tgid_y, // llvm.r600.read.tgid.y
-+ r600_read_tgid_z, // llvm.r600.read.tgid.z
-+ r600_read_tidig_x, // llvm.r600.read.tidig.x
-+ r600_read_tidig_y, // llvm.r600.read.tidig.y
-+ r600_read_tidig_z, // llvm.r600.read.tidig.z
-+ r600_recipsqrt_clamped, // llvm.r600.recipsqrt.clamped
-+ r600_recipsqrt_ieee, // llvm.r600.recipsqrt.ieee
-+ s390_efpc, // llvm.s390.efpc
-+ s390_etnd, // llvm.s390.etnd
-+ s390_lcbb, // llvm.s390.lcbb
-+ s390_ntstg, // llvm.s390.ntstg
-+ s390_ppa_txassist, // llvm.s390.ppa.txassist
-+ s390_sfpc, // llvm.s390.sfpc
-+ s390_tabort, // llvm.s390.tabort
-+ s390_tbegin, // llvm.s390.tbegin
-+ s390_tbegin_nofloat, // llvm.s390.tbegin.nofloat
-+ s390_tbeginc, // llvm.s390.tbeginc
-+ s390_tdc, // llvm.s390.tdc
-+ s390_tend, // llvm.s390.tend
-+ s390_vaccb, // llvm.s390.vaccb
-+ s390_vacccq, // llvm.s390.vacccq
-+ s390_vaccf, // llvm.s390.vaccf
-+ s390_vaccg, // llvm.s390.vaccg
-+ s390_vacch, // llvm.s390.vacch
-+ s390_vaccq, // llvm.s390.vaccq
-+ s390_vacq, // llvm.s390.vacq
-+ s390_vaq, // llvm.s390.vaq
-+ s390_vavgb, // llvm.s390.vavgb
-+ s390_vavgf, // llvm.s390.vavgf
-+ s390_vavgg, // llvm.s390.vavgg
-+ s390_vavgh, // llvm.s390.vavgh
-+ s390_vavglb, // llvm.s390.vavglb
-+ s390_vavglf, // llvm.s390.vavglf
-+ s390_vavglg, // llvm.s390.vavglg
-+ s390_vavglh, // llvm.s390.vavglh
-+ s390_vceqbs, // llvm.s390.vceqbs
-+ s390_vceqfs, // llvm.s390.vceqfs
-+ s390_vceqgs, // llvm.s390.vceqgs
-+ s390_vceqhs, // llvm.s390.vceqhs
-+ s390_vchbs, // llvm.s390.vchbs
-+ s390_vchfs, // llvm.s390.vchfs
-+ s390_vchgs, // llvm.s390.vchgs
-+ s390_vchhs, // llvm.s390.vchhs
-+ s390_vchlbs, // llvm.s390.vchlbs
-+ s390_vchlfs, // llvm.s390.vchlfs
-+ s390_vchlgs, // llvm.s390.vchlgs
-+ s390_vchlhs, // llvm.s390.vchlhs
-+ s390_vcksm, // llvm.s390.vcksm
-+ s390_verimb, // llvm.s390.verimb
-+ s390_verimf, // llvm.s390.verimf
-+ s390_verimg, // llvm.s390.verimg
-+ s390_verimh, // llvm.s390.verimh
-+ s390_verllb, // llvm.s390.verllb
-+ s390_verllf, // llvm.s390.verllf
-+ s390_verllg, // llvm.s390.verllg
-+ s390_verllh, // llvm.s390.verllh
-+ s390_verllvb, // llvm.s390.verllvb
-+ s390_verllvf, // llvm.s390.verllvf
-+ s390_verllvg, // llvm.s390.verllvg
-+ s390_verllvh, // llvm.s390.verllvh
-+ s390_vfaeb, // llvm.s390.vfaeb
-+ s390_vfaebs, // llvm.s390.vfaebs
-+ s390_vfaef, // llvm.s390.vfaef
-+ s390_vfaefs, // llvm.s390.vfaefs
-+ s390_vfaeh, // llvm.s390.vfaeh
-+ s390_vfaehs, // llvm.s390.vfaehs
-+ s390_vfaezb, // llvm.s390.vfaezb
-+ s390_vfaezbs, // llvm.s390.vfaezbs
-+ s390_vfaezf, // llvm.s390.vfaezf
-+ s390_vfaezfs, // llvm.s390.vfaezfs
-+ s390_vfaezh, // llvm.s390.vfaezh
-+ s390_vfaezhs, // llvm.s390.vfaezhs
-+ s390_vfcedbs, // llvm.s390.vfcedbs
-+ s390_vfchdbs, // llvm.s390.vfchdbs
-+ s390_vfchedbs, // llvm.s390.vfchedbs
-+ s390_vfeeb, // llvm.s390.vfeeb
-+ s390_vfeebs, // llvm.s390.vfeebs
-+ s390_vfeef, // llvm.s390.vfeef
-+ s390_vfeefs, // llvm.s390.vfeefs
-+ s390_vfeeh, // llvm.s390.vfeeh
-+ s390_vfeehs, // llvm.s390.vfeehs
-+ s390_vfeezb, // llvm.s390.vfeezb
-+ s390_vfeezbs, // llvm.s390.vfeezbs
-+ s390_vfeezf, // llvm.s390.vfeezf
-+ s390_vfeezfs, // llvm.s390.vfeezfs
-+ s390_vfeezh, // llvm.s390.vfeezh
-+ s390_vfeezhs, // llvm.s390.vfeezhs
-+ s390_vfeneb, // llvm.s390.vfeneb
-+ s390_vfenebs, // llvm.s390.vfenebs
-+ s390_vfenef, // llvm.s390.vfenef
-+ s390_vfenefs, // llvm.s390.vfenefs
-+ s390_vfeneh, // llvm.s390.vfeneh
-+ s390_vfenehs, // llvm.s390.vfenehs
-+ s390_vfenezb, // llvm.s390.vfenezb
-+ s390_vfenezbs, // llvm.s390.vfenezbs
-+ s390_vfenezf, // llvm.s390.vfenezf
-+ s390_vfenezfs, // llvm.s390.vfenezfs
-+ s390_vfenezh, // llvm.s390.vfenezh
-+ s390_vfenezhs, // llvm.s390.vfenezhs
-+ s390_vfidb, // llvm.s390.vfidb
-+ s390_vftcidb, // llvm.s390.vftcidb
-+ s390_vgfmab, // llvm.s390.vgfmab
-+ s390_vgfmaf, // llvm.s390.vgfmaf
-+ s390_vgfmag, // llvm.s390.vgfmag
-+ s390_vgfmah, // llvm.s390.vgfmah
-+ s390_vgfmb, // llvm.s390.vgfmb
-+ s390_vgfmf, // llvm.s390.vgfmf
-+ s390_vgfmg, // llvm.s390.vgfmg
-+ s390_vgfmh, // llvm.s390.vgfmh
-+ s390_vistrb, // llvm.s390.vistrb
-+ s390_vistrbs, // llvm.s390.vistrbs
-+ s390_vistrf, // llvm.s390.vistrf
-+ s390_vistrfs, // llvm.s390.vistrfs
-+ s390_vistrh, // llvm.s390.vistrh
-+ s390_vistrhs, // llvm.s390.vistrhs
-+ s390_vlbb, // llvm.s390.vlbb
-+ s390_vll, // llvm.s390.vll
-+ s390_vmaeb, // llvm.s390.vmaeb
-+ s390_vmaef, // llvm.s390.vmaef
-+ s390_vmaeh, // llvm.s390.vmaeh
-+ s390_vmahb, // llvm.s390.vmahb
-+ s390_vmahf, // llvm.s390.vmahf
-+ s390_vmahh, // llvm.s390.vmahh
-+ s390_vmaleb, // llvm.s390.vmaleb
-+ s390_vmalef, // llvm.s390.vmalef
-+ s390_vmaleh, // llvm.s390.vmaleh
-+ s390_vmalhb, // llvm.s390.vmalhb
-+ s390_vmalhf, // llvm.s390.vmalhf
-+ s390_vmalhh, // llvm.s390.vmalhh
-+ s390_vmalob, // llvm.s390.vmalob
-+ s390_vmalof, // llvm.s390.vmalof
-+ s390_vmaloh, // llvm.s390.vmaloh
-+ s390_vmaob, // llvm.s390.vmaob
-+ s390_vmaof, // llvm.s390.vmaof
-+ s390_vmaoh, // llvm.s390.vmaoh
-+ s390_vmeb, // llvm.s390.vmeb
-+ s390_vmef, // llvm.s390.vmef
-+ s390_vmeh, // llvm.s390.vmeh
-+ s390_vmhb, // llvm.s390.vmhb
-+ s390_vmhf, // llvm.s390.vmhf
-+ s390_vmhh, // llvm.s390.vmhh
-+ s390_vmleb, // llvm.s390.vmleb
-+ s390_vmlef, // llvm.s390.vmlef
-+ s390_vmleh, // llvm.s390.vmleh
-+ s390_vmlhb, // llvm.s390.vmlhb
-+ s390_vmlhf, // llvm.s390.vmlhf
-+ s390_vmlhh, // llvm.s390.vmlhh
-+ s390_vmlob, // llvm.s390.vmlob
-+ s390_vmlof, // llvm.s390.vmlof
-+ s390_vmloh, // llvm.s390.vmloh
-+ s390_vmob, // llvm.s390.vmob
-+ s390_vmof, // llvm.s390.vmof
-+ s390_vmoh, // llvm.s390.vmoh
-+ s390_vpdi, // llvm.s390.vpdi
-+ s390_vperm, // llvm.s390.vperm
-+ s390_vpklsf, // llvm.s390.vpklsf
-+ s390_vpklsfs, // llvm.s390.vpklsfs
-+ s390_vpklsg, // llvm.s390.vpklsg
-+ s390_vpklsgs, // llvm.s390.vpklsgs
-+ s390_vpklsh, // llvm.s390.vpklsh
-+ s390_vpklshs, // llvm.s390.vpklshs
-+ s390_vpksf, // llvm.s390.vpksf
-+ s390_vpksfs, // llvm.s390.vpksfs
-+ s390_vpksg, // llvm.s390.vpksg
-+ s390_vpksgs, // llvm.s390.vpksgs
-+ s390_vpksh, // llvm.s390.vpksh
-+ s390_vpkshs, // llvm.s390.vpkshs
-+ s390_vsbcbiq, // llvm.s390.vsbcbiq
-+ s390_vsbiq, // llvm.s390.vsbiq
-+ s390_vscbib, // llvm.s390.vscbib
-+ s390_vscbif, // llvm.s390.vscbif
-+ s390_vscbig, // llvm.s390.vscbig
-+ s390_vscbih, // llvm.s390.vscbih
-+ s390_vscbiq, // llvm.s390.vscbiq
-+ s390_vsl, // llvm.s390.vsl
-+ s390_vslb, // llvm.s390.vslb
-+ s390_vsldb, // llvm.s390.vsldb
-+ s390_vsq, // llvm.s390.vsq
-+ s390_vsra, // llvm.s390.vsra
-+ s390_vsrab, // llvm.s390.vsrab
-+ s390_vsrl, // llvm.s390.vsrl
-+ s390_vsrlb, // llvm.s390.vsrlb
-+ s390_vstl, // llvm.s390.vstl
-+ s390_vstrcb, // llvm.s390.vstrcb
-+ s390_vstrcbs, // llvm.s390.vstrcbs
-+ s390_vstrcf, // llvm.s390.vstrcf
-+ s390_vstrcfs, // llvm.s390.vstrcfs
-+ s390_vstrch, // llvm.s390.vstrch
-+ s390_vstrchs, // llvm.s390.vstrchs
-+ s390_vstrczb, // llvm.s390.vstrczb
-+ s390_vstrczbs, // llvm.s390.vstrczbs
-+ s390_vstrczf, // llvm.s390.vstrczf
-+ s390_vstrczfs, // llvm.s390.vstrczfs
-+ s390_vstrczh, // llvm.s390.vstrczh
-+ s390_vstrczhs, // llvm.s390.vstrczhs
-+ s390_vsumb, // llvm.s390.vsumb
-+ s390_vsumgf, // llvm.s390.vsumgf
-+ s390_vsumgh, // llvm.s390.vsumgh
-+ s390_vsumh, // llvm.s390.vsumh
-+ s390_vsumqf, // llvm.s390.vsumqf
-+ s390_vsumqg, // llvm.s390.vsumqg
-+ s390_vtm, // llvm.s390.vtm
-+ s390_vuphb, // llvm.s390.vuphb
-+ s390_vuphf, // llvm.s390.vuphf
-+ s390_vuphh, // llvm.s390.vuphh
-+ s390_vuplb, // llvm.s390.vuplb
-+ s390_vuplf, // llvm.s390.vuplf
-+ s390_vuplhb, // llvm.s390.vuplhb
-+ s390_vuplhf, // llvm.s390.vuplhf
-+ s390_vuplhh, // llvm.s390.vuplhh
-+ s390_vuplhw, // llvm.s390.vuplhw
-+ s390_vupllb, // llvm.s390.vupllb
-+ s390_vupllf, // llvm.s390.vupllf
-+ s390_vupllh, // llvm.s390.vupllh
-+ wasm_current_memory, // llvm.wasm.current.memory
-+ wasm_grow_memory, // llvm.wasm.grow.memory
-+ x86_3dnow_pavgusb, // llvm.x86.3dnow.pavgusb
-+ x86_3dnow_pf2id, // llvm.x86.3dnow.pf2id
-+ x86_3dnow_pfacc, // llvm.x86.3dnow.pfacc
-+ x86_3dnow_pfadd, // llvm.x86.3dnow.pfadd
-+ x86_3dnow_pfcmpeq, // llvm.x86.3dnow.pfcmpeq
-+ x86_3dnow_pfcmpge, // llvm.x86.3dnow.pfcmpge
-+ x86_3dnow_pfcmpgt, // llvm.x86.3dnow.pfcmpgt
-+ x86_3dnow_pfmax, // llvm.x86.3dnow.pfmax
-+ x86_3dnow_pfmin, // llvm.x86.3dnow.pfmin
-+ x86_3dnow_pfmul, // llvm.x86.3dnow.pfmul
-+ x86_3dnow_pfrcp, // llvm.x86.3dnow.pfrcp
-+ x86_3dnow_pfrcpit1, // llvm.x86.3dnow.pfrcpit1
-+ x86_3dnow_pfrcpit2, // llvm.x86.3dnow.pfrcpit2
-+ x86_3dnow_pfrsqit1, // llvm.x86.3dnow.pfrsqit1
-+ x86_3dnow_pfrsqrt, // llvm.x86.3dnow.pfrsqrt
-+ x86_3dnow_pfsub, // llvm.x86.3dnow.pfsub
-+ x86_3dnow_pfsubr, // llvm.x86.3dnow.pfsubr
-+ x86_3dnow_pi2fd, // llvm.x86.3dnow.pi2fd
-+ x86_3dnow_pmulhrw, // llvm.x86.3dnow.pmulhrw
-+ x86_3dnowa_pf2iw, // llvm.x86.3dnowa.pf2iw
-+ x86_3dnowa_pfnacc, // llvm.x86.3dnowa.pfnacc
-+ x86_3dnowa_pfpnacc, // llvm.x86.3dnowa.pfpnacc
-+ x86_3dnowa_pi2fw, // llvm.x86.3dnowa.pi2fw
-+ x86_3dnowa_pswapd, // llvm.x86.3dnowa.pswapd
-+ x86_addcarry_u32, // llvm.x86.addcarry.u32
-+ x86_addcarry_u64, // llvm.x86.addcarry.u64
-+ x86_addcarryx_u32, // llvm.x86.addcarryx.u32
-+ x86_addcarryx_u64, // llvm.x86.addcarryx.u64
-+ x86_aesni_aesdec, // llvm.x86.aesni.aesdec
-+ x86_aesni_aesdeclast, // llvm.x86.aesni.aesdeclast
-+ x86_aesni_aesenc, // llvm.x86.aesni.aesenc
-+ x86_aesni_aesenclast, // llvm.x86.aesni.aesenclast
-+ x86_aesni_aesimc, // llvm.x86.aesni.aesimc
-+ x86_aesni_aeskeygenassist, // llvm.x86.aesni.aeskeygenassist
-+ x86_avx_addsub_pd_256, // llvm.x86.avx.addsub.pd.256
-+ x86_avx_addsub_ps_256, // llvm.x86.avx.addsub.ps.256
-+ x86_avx_blendv_pd_256, // llvm.x86.avx.blendv.pd.256
-+ x86_avx_blendv_ps_256, // llvm.x86.avx.blendv.ps.256
-+ x86_avx_cmp_pd_256, // llvm.x86.avx.cmp.pd.256
-+ x86_avx_cmp_ps_256, // llvm.x86.avx.cmp.ps.256
-+ x86_avx_cvt_pd2_ps_256, // llvm.x86.avx.cvt.pd2.ps.256
-+ x86_avx_cvt_pd2dq_256, // llvm.x86.avx.cvt.pd2dq.256
-+ x86_avx_cvt_ps2dq_256, // llvm.x86.avx.cvt.ps2dq.256
-+ x86_avx_cvtdq2_ps_256, // llvm.x86.avx.cvtdq2.ps.256
-+ x86_avx_cvtt_pd2dq_256, // llvm.x86.avx.cvtt.pd2dq.256
-+ x86_avx_cvtt_ps2dq_256, // llvm.x86.avx.cvtt.ps2dq.256
-+ x86_avx_dp_ps_256, // llvm.x86.avx.dp.ps.256
-+ x86_avx_hadd_pd_256, // llvm.x86.avx.hadd.pd.256
-+ x86_avx_hadd_ps_256, // llvm.x86.avx.hadd.ps.256
-+ x86_avx_hsub_pd_256, // llvm.x86.avx.hsub.pd.256
-+ x86_avx_hsub_ps_256, // llvm.x86.avx.hsub.ps.256
-+ x86_avx_ldu_dq_256, // llvm.x86.avx.ldu.dq.256
-+ x86_avx_maskload_pd, // llvm.x86.avx.maskload.pd
-+ x86_avx_maskload_pd_256, // llvm.x86.avx.maskload.pd.256
-+ x86_avx_maskload_ps, // llvm.x86.avx.maskload.ps
-+ x86_avx_maskload_ps_256, // llvm.x86.avx.maskload.ps.256
-+ x86_avx_maskstore_pd, // llvm.x86.avx.maskstore.pd
-+ x86_avx_maskstore_pd_256, // llvm.x86.avx.maskstore.pd.256
-+ x86_avx_maskstore_ps, // llvm.x86.avx.maskstore.ps
-+ x86_avx_maskstore_ps_256, // llvm.x86.avx.maskstore.ps.256
-+ x86_avx_max_pd_256, // llvm.x86.avx.max.pd.256
-+ x86_avx_max_ps_256, // llvm.x86.avx.max.ps.256
-+ x86_avx_min_pd_256, // llvm.x86.avx.min.pd.256
-+ x86_avx_min_ps_256, // llvm.x86.avx.min.ps.256
-+ x86_avx_movmsk_pd_256, // llvm.x86.avx.movmsk.pd.256
-+ x86_avx_movmsk_ps_256, // llvm.x86.avx.movmsk.ps.256
-+ x86_avx_ptestc_256, // llvm.x86.avx.ptestc.256
-+ x86_avx_ptestnzc_256, // llvm.x86.avx.ptestnzc.256
-+ x86_avx_ptestz_256, // llvm.x86.avx.ptestz.256
-+ x86_avx_rcp_ps_256, // llvm.x86.avx.rcp.ps.256
-+ x86_avx_round_pd_256, // llvm.x86.avx.round.pd.256
-+ x86_avx_round_ps_256, // llvm.x86.avx.round.ps.256
-+ x86_avx_rsqrt_ps_256, // llvm.x86.avx.rsqrt.ps.256
-+ x86_avx_sqrt_pd_256, // llvm.x86.avx.sqrt.pd.256
-+ x86_avx_sqrt_ps_256, // llvm.x86.avx.sqrt.ps.256
-+ x86_avx_vperm2f128_pd_256, // llvm.x86.avx.vperm2f128.pd.256
-+ x86_avx_vperm2f128_ps_256, // llvm.x86.avx.vperm2f128.ps.256
-+ x86_avx_vperm2f128_si_256, // llvm.x86.avx.vperm2f128.si.256
-+ x86_avx_vpermilvar_pd, // llvm.x86.avx.vpermilvar.pd
-+ x86_avx_vpermilvar_pd_256, // llvm.x86.avx.vpermilvar.pd.256
-+ x86_avx_vpermilvar_ps, // llvm.x86.avx.vpermilvar.ps
-+ x86_avx_vpermilvar_ps_256, // llvm.x86.avx.vpermilvar.ps.256
-+ x86_avx_vtestc_pd, // llvm.x86.avx.vtestc.pd
-+ x86_avx_vtestc_pd_256, // llvm.x86.avx.vtestc.pd.256
-+ x86_avx_vtestc_ps, // llvm.x86.avx.vtestc.ps
-+ x86_avx_vtestc_ps_256, // llvm.x86.avx.vtestc.ps.256
-+ x86_avx_vtestnzc_pd, // llvm.x86.avx.vtestnzc.pd
-+ x86_avx_vtestnzc_pd_256, // llvm.x86.avx.vtestnzc.pd.256
-+ x86_avx_vtestnzc_ps, // llvm.x86.avx.vtestnzc.ps
-+ x86_avx_vtestnzc_ps_256, // llvm.x86.avx.vtestnzc.ps.256
-+ x86_avx_vtestz_pd, // llvm.x86.avx.vtestz.pd
-+ x86_avx_vtestz_pd_256, // llvm.x86.avx.vtestz.pd.256
-+ x86_avx_vtestz_ps, // llvm.x86.avx.vtestz.ps
-+ x86_avx_vtestz_ps_256, // llvm.x86.avx.vtestz.ps.256
-+ x86_avx_vzeroall, // llvm.x86.avx.vzeroall
-+ x86_avx_vzeroupper, // llvm.x86.avx.vzeroupper
-+ x86_avx2_gather_d_d, // llvm.x86.avx2.gather.d.d
-+ x86_avx2_gather_d_d_256, // llvm.x86.avx2.gather.d.d.256
-+ x86_avx2_gather_d_pd, // llvm.x86.avx2.gather.d.pd
-+ x86_avx2_gather_d_pd_256, // llvm.x86.avx2.gather.d.pd.256
-+ x86_avx2_gather_d_ps, // llvm.x86.avx2.gather.d.ps
-+ x86_avx2_gather_d_ps_256, // llvm.x86.avx2.gather.d.ps.256
-+ x86_avx2_gather_d_q, // llvm.x86.avx2.gather.d.q
-+ x86_avx2_gather_d_q_256, // llvm.x86.avx2.gather.d.q.256
-+ x86_avx2_gather_q_d, // llvm.x86.avx2.gather.q.d
-+ x86_avx2_gather_q_d_256, // llvm.x86.avx2.gather.q.d.256
-+ x86_avx2_gather_q_pd, // llvm.x86.avx2.gather.q.pd
-+ x86_avx2_gather_q_pd_256, // llvm.x86.avx2.gather.q.pd.256
-+ x86_avx2_gather_q_ps, // llvm.x86.avx2.gather.q.ps
-+ x86_avx2_gather_q_ps_256, // llvm.x86.avx2.gather.q.ps.256
-+ x86_avx2_gather_q_q, // llvm.x86.avx2.gather.q.q
-+ x86_avx2_gather_q_q_256, // llvm.x86.avx2.gather.q.q.256
-+ x86_avx2_maskload_d, // llvm.x86.avx2.maskload.d
-+ x86_avx2_maskload_d_256, // llvm.x86.avx2.maskload.d.256
-+ x86_avx2_maskload_q, // llvm.x86.avx2.maskload.q
-+ x86_avx2_maskload_q_256, // llvm.x86.avx2.maskload.q.256
-+ x86_avx2_maskstore_d, // llvm.x86.avx2.maskstore.d
-+ x86_avx2_maskstore_d_256, // llvm.x86.avx2.maskstore.d.256
-+ x86_avx2_maskstore_q, // llvm.x86.avx2.maskstore.q
-+ x86_avx2_maskstore_q_256, // llvm.x86.avx2.maskstore.q.256
-+ x86_avx2_movntdqa, // llvm.x86.avx2.movntdqa
-+ x86_avx2_mpsadbw, // llvm.x86.avx2.mpsadbw
-+ x86_avx2_pabs_b, // llvm.x86.avx2.pabs.b
-+ x86_avx2_pabs_d, // llvm.x86.avx2.pabs.d
-+ x86_avx2_pabs_w, // llvm.x86.avx2.pabs.w
-+ x86_avx2_packssdw, // llvm.x86.avx2.packssdw
-+ x86_avx2_packsswb, // llvm.x86.avx2.packsswb
-+ x86_avx2_packusdw, // llvm.x86.avx2.packusdw
-+ x86_avx2_packuswb, // llvm.x86.avx2.packuswb
-+ x86_avx2_padds_b, // llvm.x86.avx2.padds.b
-+ x86_avx2_padds_w, // llvm.x86.avx2.padds.w
-+ x86_avx2_paddus_b, // llvm.x86.avx2.paddus.b
-+ x86_avx2_paddus_w, // llvm.x86.avx2.paddus.w
-+ x86_avx2_pavg_b, // llvm.x86.avx2.pavg.b
-+ x86_avx2_pavg_w, // llvm.x86.avx2.pavg.w
-+ x86_avx2_pblendvb, // llvm.x86.avx2.pblendvb
-+ x86_avx2_permd, // llvm.x86.avx2.permd
-+ x86_avx2_permps, // llvm.x86.avx2.permps
-+ x86_avx2_phadd_d, // llvm.x86.avx2.phadd.d
-+ x86_avx2_phadd_sw, // llvm.x86.avx2.phadd.sw
-+ x86_avx2_phadd_w, // llvm.x86.avx2.phadd.w
-+ x86_avx2_phsub_d, // llvm.x86.avx2.phsub.d
-+ x86_avx2_phsub_sw, // llvm.x86.avx2.phsub.sw
-+ x86_avx2_phsub_w, // llvm.x86.avx2.phsub.w
-+ x86_avx2_pmadd_ub_sw, // llvm.x86.avx2.pmadd.ub.sw
-+ x86_avx2_pmadd_wd, // llvm.x86.avx2.pmadd.wd
-+ x86_avx2_pmovmskb, // llvm.x86.avx2.pmovmskb
-+ x86_avx2_pmul_dq, // llvm.x86.avx2.pmul.dq
-+ x86_avx2_pmul_hr_sw, // llvm.x86.avx2.pmul.hr.sw
-+ x86_avx2_pmulh_w, // llvm.x86.avx2.pmulh.w
-+ x86_avx2_pmulhu_w, // llvm.x86.avx2.pmulhu.w
-+ x86_avx2_pmulu_dq, // llvm.x86.avx2.pmulu.dq
-+ x86_avx2_psad_bw, // llvm.x86.avx2.psad.bw
-+ x86_avx2_pshuf_b, // llvm.x86.avx2.pshuf.b
-+ x86_avx2_psign_b, // llvm.x86.avx2.psign.b
-+ x86_avx2_psign_d, // llvm.x86.avx2.psign.d
-+ x86_avx2_psign_w, // llvm.x86.avx2.psign.w
-+ x86_avx2_psll_d, // llvm.x86.avx2.psll.d
-+ x86_avx2_psll_q, // llvm.x86.avx2.psll.q
-+ x86_avx2_psll_w, // llvm.x86.avx2.psll.w
-+ x86_avx2_pslli_d, // llvm.x86.avx2.pslli.d
-+ x86_avx2_pslli_q, // llvm.x86.avx2.pslli.q
-+ x86_avx2_pslli_w, // llvm.x86.avx2.pslli.w
-+ x86_avx2_psllv_d, // llvm.x86.avx2.psllv.d
-+ x86_avx2_psllv_d_256, // llvm.x86.avx2.psllv.d.256
-+ x86_avx2_psllv_q, // llvm.x86.avx2.psllv.q
-+ x86_avx2_psllv_q_256, // llvm.x86.avx2.psllv.q.256
-+ x86_avx2_psra_d, // llvm.x86.avx2.psra.d
-+ x86_avx2_psra_w, // llvm.x86.avx2.psra.w
-+ x86_avx2_psrai_d, // llvm.x86.avx2.psrai.d
-+ x86_avx2_psrai_w, // llvm.x86.avx2.psrai.w
-+ x86_avx2_psrav_d, // llvm.x86.avx2.psrav.d
-+ x86_avx2_psrav_d_256, // llvm.x86.avx2.psrav.d.256
-+ x86_avx2_psrl_d, // llvm.x86.avx2.psrl.d
-+ x86_avx2_psrl_q, // llvm.x86.avx2.psrl.q
-+ x86_avx2_psrl_w, // llvm.x86.avx2.psrl.w
-+ x86_avx2_psrli_d, // llvm.x86.avx2.psrli.d
-+ x86_avx2_psrli_q, // llvm.x86.avx2.psrli.q
-+ x86_avx2_psrli_w, // llvm.x86.avx2.psrli.w
-+ x86_avx2_psrlv_d, // llvm.x86.avx2.psrlv.d
-+ x86_avx2_psrlv_d_256, // llvm.x86.avx2.psrlv.d.256
-+ x86_avx2_psrlv_q, // llvm.x86.avx2.psrlv.q
-+ x86_avx2_psrlv_q_256, // llvm.x86.avx2.psrlv.q.256
-+ x86_avx2_psubs_b, // llvm.x86.avx2.psubs.b
-+ x86_avx2_psubs_w, // llvm.x86.avx2.psubs.w
-+ x86_avx2_psubus_b, // llvm.x86.avx2.psubus.b
-+ x86_avx2_psubus_w, // llvm.x86.avx2.psubus.w
-+ x86_avx2_vperm2i128, // llvm.x86.avx2.vperm2i128
-+ x86_avx512_broadcastmb_128, // llvm.x86.avx512.broadcastmb.128
-+ x86_avx512_broadcastmb_256, // llvm.x86.avx512.broadcastmb.256
-+ x86_avx512_broadcastmb_512, // llvm.x86.avx512.broadcastmb.512
-+ x86_avx512_broadcastmw_128, // llvm.x86.avx512.broadcastmw.128
-+ x86_avx512_broadcastmw_256, // llvm.x86.avx512.broadcastmw.256
-+ x86_avx512_broadcastmw_512, // llvm.x86.avx512.broadcastmw.512
-+ x86_avx512_cvtb2mask_128, // llvm.x86.avx512.cvtb2mask.128
-+ x86_avx512_cvtb2mask_256, // llvm.x86.avx512.cvtb2mask.256
-+ x86_avx512_cvtb2mask_512, // llvm.x86.avx512.cvtb2mask.512
-+ x86_avx512_cvtd2mask_128, // llvm.x86.avx512.cvtd2mask.128
-+ x86_avx512_cvtd2mask_256, // llvm.x86.avx512.cvtd2mask.256
-+ x86_avx512_cvtd2mask_512, // llvm.x86.avx512.cvtd2mask.512
-+ x86_avx512_cvtmask2b_128, // llvm.x86.avx512.cvtmask2b.128
-+ x86_avx512_cvtmask2b_256, // llvm.x86.avx512.cvtmask2b.256
-+ x86_avx512_cvtmask2b_512, // llvm.x86.avx512.cvtmask2b.512
-+ x86_avx512_cvtmask2d_128, // llvm.x86.avx512.cvtmask2d.128
-+ x86_avx512_cvtmask2d_256, // llvm.x86.avx512.cvtmask2d.256
-+ x86_avx512_cvtmask2d_512, // llvm.x86.avx512.cvtmask2d.512
-+ x86_avx512_cvtmask2q_128, // llvm.x86.avx512.cvtmask2q.128
-+ x86_avx512_cvtmask2q_256, // llvm.x86.avx512.cvtmask2q.256
-+ x86_avx512_cvtmask2q_512, // llvm.x86.avx512.cvtmask2q.512
-+ x86_avx512_cvtmask2w_128, // llvm.x86.avx512.cvtmask2w.128
-+ x86_avx512_cvtmask2w_256, // llvm.x86.avx512.cvtmask2w.256
-+ x86_avx512_cvtmask2w_512, // llvm.x86.avx512.cvtmask2w.512
-+ x86_avx512_cvtq2mask_128, // llvm.x86.avx512.cvtq2mask.128
-+ x86_avx512_cvtq2mask_256, // llvm.x86.avx512.cvtq2mask.256
-+ x86_avx512_cvtq2mask_512, // llvm.x86.avx512.cvtq2mask.512
-+ x86_avx512_cvtsi2sd64, // llvm.x86.avx512.cvtsi2sd64
-+ x86_avx512_cvtsi2ss32, // llvm.x86.avx512.cvtsi2ss32
-+ x86_avx512_cvtsi2ss64, // llvm.x86.avx512.cvtsi2ss64
-+ x86_avx512_cvttsd2si, // llvm.x86.avx512.cvttsd2si
-+ x86_avx512_cvttsd2si64, // llvm.x86.avx512.cvttsd2si64
-+ x86_avx512_cvttsd2usi, // llvm.x86.avx512.cvttsd2usi
-+ x86_avx512_cvttsd2usi64, // llvm.x86.avx512.cvttsd2usi64
-+ x86_avx512_cvttss2si, // llvm.x86.avx512.cvttss2si
-+ x86_avx512_cvttss2si64, // llvm.x86.avx512.cvttss2si64
-+ x86_avx512_cvttss2usi, // llvm.x86.avx512.cvttss2usi
-+ x86_avx512_cvttss2usi64, // llvm.x86.avx512.cvttss2usi64
-+ x86_avx512_cvtusi2sd, // llvm.x86.avx512.cvtusi2sd
-+ x86_avx512_cvtusi2ss, // llvm.x86.avx512.cvtusi2ss
-+ x86_avx512_cvtusi642sd, // llvm.x86.avx512.cvtusi642sd
-+ x86_avx512_cvtusi642ss, // llvm.x86.avx512.cvtusi642ss
-+ x86_avx512_cvtw2mask_128, // llvm.x86.avx512.cvtw2mask.128
-+ x86_avx512_cvtw2mask_256, // llvm.x86.avx512.cvtw2mask.256
-+ x86_avx512_cvtw2mask_512, // llvm.x86.avx512.cvtw2mask.512
-+ x86_avx512_exp2_pd, // llvm.x86.avx512.exp2.pd
-+ x86_avx512_exp2_ps, // llvm.x86.avx512.exp2.ps
-+ x86_avx512_gather_dpd_512, // llvm.x86.avx512.gather.dpd.512
-+ x86_avx512_gather_dpi_512, // llvm.x86.avx512.gather.dpi.512
-+ x86_avx512_gather_dpq_512, // llvm.x86.avx512.gather.dpq.512
-+ x86_avx512_gather_dps_512, // llvm.x86.avx512.gather.dps.512
-+ x86_avx512_gather_qpd_512, // llvm.x86.avx512.gather.qpd.512
-+ x86_avx512_gather_qpi_512, // llvm.x86.avx512.gather.qpi.512
-+ x86_avx512_gather_qpq_512, // llvm.x86.avx512.gather.qpq.512
-+ x86_avx512_gather_qps_512, // llvm.x86.avx512.gather.qps.512
-+ x86_avx512_gather3div2_df, // llvm.x86.avx512.gather3div2.df
-+ x86_avx512_gather3div2_di, // llvm.x86.avx512.gather3div2.di
-+ x86_avx512_gather3div4_df, // llvm.x86.avx512.gather3div4.df
-+ x86_avx512_gather3div4_di, // llvm.x86.avx512.gather3div4.di
-+ x86_avx512_gather3div4_sf, // llvm.x86.avx512.gather3div4.sf
-+ x86_avx512_gather3div4_si, // llvm.x86.avx512.gather3div4.si
-+ x86_avx512_gather3div8_sf, // llvm.x86.avx512.gather3div8.sf
-+ x86_avx512_gather3div8_si, // llvm.x86.avx512.gather3div8.si
-+ x86_avx512_gather3siv2_df, // llvm.x86.avx512.gather3siv2.df
-+ x86_avx512_gather3siv2_di, // llvm.x86.avx512.gather3siv2.di
-+ x86_avx512_gather3siv4_df, // llvm.x86.avx512.gather3siv4.df
-+ x86_avx512_gather3siv4_di, // llvm.x86.avx512.gather3siv4.di
-+ x86_avx512_gather3siv4_sf, // llvm.x86.avx512.gather3siv4.sf
-+ x86_avx512_gather3siv4_si, // llvm.x86.avx512.gather3siv4.si
-+ x86_avx512_gather3siv8_sf, // llvm.x86.avx512.gather3siv8.sf
-+ x86_avx512_gather3siv8_si, // llvm.x86.avx512.gather3siv8.si
-+ x86_avx512_gatherpf_dpd_512, // llvm.x86.avx512.gatherpf.dpd.512
-+ x86_avx512_gatherpf_dps_512, // llvm.x86.avx512.gatherpf.dps.512
-+ x86_avx512_gatherpf_qpd_512, // llvm.x86.avx512.gatherpf.qpd.512
-+ x86_avx512_gatherpf_qps_512, // llvm.x86.avx512.gatherpf.qps.512
-+ x86_avx512_kand_w, // llvm.x86.avx512.kand.w
-+ x86_avx512_kandn_w, // llvm.x86.avx512.kandn.w
-+ x86_avx512_knot_w, // llvm.x86.avx512.knot.w
-+ x86_avx512_kor_w, // llvm.x86.avx512.kor.w
-+ x86_avx512_kortestc_w, // llvm.x86.avx512.kortestc.w
-+ x86_avx512_kortestz_w, // llvm.x86.avx512.kortestz.w
-+ x86_avx512_kunpck_bw, // llvm.x86.avx512.kunpck.bw
-+ x86_avx512_kunpck_dq, // llvm.x86.avx512.kunpck.dq
-+ x86_avx512_kunpck_wd, // llvm.x86.avx512.kunpck.wd
-+ x86_avx512_kxnor_w, // llvm.x86.avx512.kxnor.w
-+ x86_avx512_kxor_w, // llvm.x86.avx512.kxor.w
-+ x86_avx512_mask_add_pd_512, // llvm.x86.avx512.mask.add.pd.512
-+ x86_avx512_mask_add_ps_512, // llvm.x86.avx512.mask.add.ps.512
-+ x86_avx512_mask_add_sd_round, // llvm.x86.avx512.mask.add.sd.round
-+ x86_avx512_mask_add_ss_round, // llvm.x86.avx512.mask.add.ss.round
-+ x86_avx512_mask_broadcastf32x2_256, // llvm.x86.avx512.mask.broadcastf32x2.256
-+ x86_avx512_mask_broadcastf32x2_512, // llvm.x86.avx512.mask.broadcastf32x2.512
-+ x86_avx512_mask_broadcastf32x4_256, // llvm.x86.avx512.mask.broadcastf32x4.256
-+ x86_avx512_mask_broadcastf32x4_512, // llvm.x86.avx512.mask.broadcastf32x4.512
-+ x86_avx512_mask_broadcastf32x8_512, // llvm.x86.avx512.mask.broadcastf32x8.512
-+ x86_avx512_mask_broadcastf64x2_256, // llvm.x86.avx512.mask.broadcastf64x2.256
-+ x86_avx512_mask_broadcastf64x2_512, // llvm.x86.avx512.mask.broadcastf64x2.512
-+ x86_avx512_mask_broadcastf64x4_512, // llvm.x86.avx512.mask.broadcastf64x4.512
-+ x86_avx512_mask_broadcasti32x2_128, // llvm.x86.avx512.mask.broadcasti32x2.128
-+ x86_avx512_mask_broadcasti32x2_256, // llvm.x86.avx512.mask.broadcasti32x2.256
-+ x86_avx512_mask_broadcasti32x2_512, // llvm.x86.avx512.mask.broadcasti32x2.512
-+ x86_avx512_mask_broadcasti32x4_256, // llvm.x86.avx512.mask.broadcasti32x4.256
-+ x86_avx512_mask_broadcasti32x4_512, // llvm.x86.avx512.mask.broadcasti32x4.512
-+ x86_avx512_mask_broadcasti32x8_512, // llvm.x86.avx512.mask.broadcasti32x8.512
-+ x86_avx512_mask_broadcasti64x2_256, // llvm.x86.avx512.mask.broadcasti64x2.256
-+ x86_avx512_mask_broadcasti64x2_512, // llvm.x86.avx512.mask.broadcasti64x2.512
-+ x86_avx512_mask_broadcasti64x4_512, // llvm.x86.avx512.mask.broadcasti64x4.512
-+ x86_avx512_mask_cmp_b_128, // llvm.x86.avx512.mask.cmp.b.128
-+ x86_avx512_mask_cmp_b_256, // llvm.x86.avx512.mask.cmp.b.256
-+ x86_avx512_mask_cmp_b_512, // llvm.x86.avx512.mask.cmp.b.512
-+ x86_avx512_mask_cmp_d_128, // llvm.x86.avx512.mask.cmp.d.128
-+ x86_avx512_mask_cmp_d_256, // llvm.x86.avx512.mask.cmp.d.256
-+ x86_avx512_mask_cmp_d_512, // llvm.x86.avx512.mask.cmp.d.512
-+ x86_avx512_mask_cmp_pd_128, // llvm.x86.avx512.mask.cmp.pd.128
-+ x86_avx512_mask_cmp_pd_256, // llvm.x86.avx512.mask.cmp.pd.256
-+ x86_avx512_mask_cmp_pd_512, // llvm.x86.avx512.mask.cmp.pd.512
-+ x86_avx512_mask_cmp_ps_128, // llvm.x86.avx512.mask.cmp.ps.128
-+ x86_avx512_mask_cmp_ps_256, // llvm.x86.avx512.mask.cmp.ps.256
-+ x86_avx512_mask_cmp_ps_512, // llvm.x86.avx512.mask.cmp.ps.512
-+ x86_avx512_mask_cmp_q_128, // llvm.x86.avx512.mask.cmp.q.128
-+ x86_avx512_mask_cmp_q_256, // llvm.x86.avx512.mask.cmp.q.256
-+ x86_avx512_mask_cmp_q_512, // llvm.x86.avx512.mask.cmp.q.512
-+ x86_avx512_mask_cmp_sd, // llvm.x86.avx512.mask.cmp.sd
-+ x86_avx512_mask_cmp_ss, // llvm.x86.avx512.mask.cmp.ss
-+ x86_avx512_mask_cmp_w_128, // llvm.x86.avx512.mask.cmp.w.128
-+ x86_avx512_mask_cmp_w_256, // llvm.x86.avx512.mask.cmp.w.256
-+ x86_avx512_mask_cmp_w_512, // llvm.x86.avx512.mask.cmp.w.512
-+ x86_avx512_mask_compress_d_128, // llvm.x86.avx512.mask.compress.d.128
-+ x86_avx512_mask_compress_d_256, // llvm.x86.avx512.mask.compress.d.256
-+ x86_avx512_mask_compress_d_512, // llvm.x86.avx512.mask.compress.d.512
-+ x86_avx512_mask_compress_pd_128, // llvm.x86.avx512.mask.compress.pd.128
-+ x86_avx512_mask_compress_pd_256, // llvm.x86.avx512.mask.compress.pd.256
-+ x86_avx512_mask_compress_pd_512, // llvm.x86.avx512.mask.compress.pd.512
-+ x86_avx512_mask_compress_ps_128, // llvm.x86.avx512.mask.compress.ps.128
-+ x86_avx512_mask_compress_ps_256, // llvm.x86.avx512.mask.compress.ps.256
-+ x86_avx512_mask_compress_ps_512, // llvm.x86.avx512.mask.compress.ps.512
-+ x86_avx512_mask_compress_q_128, // llvm.x86.avx512.mask.compress.q.128
-+ x86_avx512_mask_compress_q_256, // llvm.x86.avx512.mask.compress.q.256
-+ x86_avx512_mask_compress_q_512, // llvm.x86.avx512.mask.compress.q.512
-+ x86_avx512_mask_compress_store_d_128, // llvm.x86.avx512.mask.compress.store.d.128
-+ x86_avx512_mask_compress_store_d_256, // llvm.x86.avx512.mask.compress.store.d.256
-+ x86_avx512_mask_compress_store_d_512, // llvm.x86.avx512.mask.compress.store.d.512
-+ x86_avx512_mask_compress_store_pd_128, // llvm.x86.avx512.mask.compress.store.pd.128
-+ x86_avx512_mask_compress_store_pd_256, // llvm.x86.avx512.mask.compress.store.pd.256
-+ x86_avx512_mask_compress_store_pd_512, // llvm.x86.avx512.mask.compress.store.pd.512
-+ x86_avx512_mask_compress_store_ps_128, // llvm.x86.avx512.mask.compress.store.ps.128
-+ x86_avx512_mask_compress_store_ps_256, // llvm.x86.avx512.mask.compress.store.ps.256
-+ x86_avx512_mask_compress_store_ps_512, // llvm.x86.avx512.mask.compress.store.ps.512
-+ x86_avx512_mask_compress_store_q_128, // llvm.x86.avx512.mask.compress.store.q.128
-+ x86_avx512_mask_compress_store_q_256, // llvm.x86.avx512.mask.compress.store.q.256
-+ x86_avx512_mask_compress_store_q_512, // llvm.x86.avx512.mask.compress.store.q.512
-+ x86_avx512_mask_conflict_d_128, // llvm.x86.avx512.mask.conflict.d.128
-+ x86_avx512_mask_conflict_d_256, // llvm.x86.avx512.mask.conflict.d.256
-+ x86_avx512_mask_conflict_d_512, // llvm.x86.avx512.mask.conflict.d.512
-+ x86_avx512_mask_conflict_q_128, // llvm.x86.avx512.mask.conflict.q.128
-+ x86_avx512_mask_conflict_q_256, // llvm.x86.avx512.mask.conflict.q.256
-+ x86_avx512_mask_conflict_q_512, // llvm.x86.avx512.mask.conflict.q.512
-+ x86_avx512_mask_cvtdq2ps_128, // llvm.x86.avx512.mask.cvtdq2ps.128
-+ x86_avx512_mask_cvtdq2ps_256, // llvm.x86.avx512.mask.cvtdq2ps.256
-+ x86_avx512_mask_cvtdq2ps_512, // llvm.x86.avx512.mask.cvtdq2ps.512
-+ x86_avx512_mask_cvtpd2dq_128, // llvm.x86.avx512.mask.cvtpd2dq.128
-+ x86_avx512_mask_cvtpd2dq_256, // llvm.x86.avx512.mask.cvtpd2dq.256
-+ x86_avx512_mask_cvtpd2dq_512, // llvm.x86.avx512.mask.cvtpd2dq.512
-+ x86_avx512_mask_cvtpd2ps, // llvm.x86.avx512.mask.cvtpd2ps
-+ x86_avx512_mask_cvtpd2ps_256, // llvm.x86.avx512.mask.cvtpd2ps.256
-+ x86_avx512_mask_cvtpd2ps_512, // llvm.x86.avx512.mask.cvtpd2ps.512
-+ x86_avx512_mask_cvtpd2qq_128, // llvm.x86.avx512.mask.cvtpd2qq.128
-+ x86_avx512_mask_cvtpd2qq_256, // llvm.x86.avx512.mask.cvtpd2qq.256
-+ x86_avx512_mask_cvtpd2qq_512, // llvm.x86.avx512.mask.cvtpd2qq.512
-+ x86_avx512_mask_cvtpd2udq_128, // llvm.x86.avx512.mask.cvtpd2udq.128
-+ x86_avx512_mask_cvtpd2udq_256, // llvm.x86.avx512.mask.cvtpd2udq.256
-+ x86_avx512_mask_cvtpd2udq_512, // llvm.x86.avx512.mask.cvtpd2udq.512
-+ x86_avx512_mask_cvtpd2uqq_128, // llvm.x86.avx512.mask.cvtpd2uqq.128
-+ x86_avx512_mask_cvtpd2uqq_256, // llvm.x86.avx512.mask.cvtpd2uqq.256
-+ x86_avx512_mask_cvtpd2uqq_512, // llvm.x86.avx512.mask.cvtpd2uqq.512
-+ x86_avx512_mask_cvtps2dq_128, // llvm.x86.avx512.mask.cvtps2dq.128
-+ x86_avx512_mask_cvtps2dq_256, // llvm.x86.avx512.mask.cvtps2dq.256
-+ x86_avx512_mask_cvtps2dq_512, // llvm.x86.avx512.mask.cvtps2dq.512
-+ x86_avx512_mask_cvtps2pd_128, // llvm.x86.avx512.mask.cvtps2pd.128
-+ x86_avx512_mask_cvtps2pd_256, // llvm.x86.avx512.mask.cvtps2pd.256
-+ x86_avx512_mask_cvtps2pd_512, // llvm.x86.avx512.mask.cvtps2pd.512
-+ x86_avx512_mask_cvtps2qq_128, // llvm.x86.avx512.mask.cvtps2qq.128
-+ x86_avx512_mask_cvtps2qq_256, // llvm.x86.avx512.mask.cvtps2qq.256
-+ x86_avx512_mask_cvtps2qq_512, // llvm.x86.avx512.mask.cvtps2qq.512
-+ x86_avx512_mask_cvtps2udq_128, // llvm.x86.avx512.mask.cvtps2udq.128
-+ x86_avx512_mask_cvtps2udq_256, // llvm.x86.avx512.mask.cvtps2udq.256
-+ x86_avx512_mask_cvtps2udq_512, // llvm.x86.avx512.mask.cvtps2udq.512
-+ x86_avx512_mask_cvtps2uqq_128, // llvm.x86.avx512.mask.cvtps2uqq.128
-+ x86_avx512_mask_cvtps2uqq_256, // llvm.x86.avx512.mask.cvtps2uqq.256
-+ x86_avx512_mask_cvtps2uqq_512, // llvm.x86.avx512.mask.cvtps2uqq.512
-+ x86_avx512_mask_cvtqq2pd_128, // llvm.x86.avx512.mask.cvtqq2pd.128
-+ x86_avx512_mask_cvtqq2pd_256, // llvm.x86.avx512.mask.cvtqq2pd.256
-+ x86_avx512_mask_cvtqq2pd_512, // llvm.x86.avx512.mask.cvtqq2pd.512
-+ x86_avx512_mask_cvtqq2ps_128, // llvm.x86.avx512.mask.cvtqq2ps.128
-+ x86_avx512_mask_cvtqq2ps_256, // llvm.x86.avx512.mask.cvtqq2ps.256
-+ x86_avx512_mask_cvtqq2ps_512, // llvm.x86.avx512.mask.cvtqq2ps.512
-+ x86_avx512_mask_cvtsd2ss_round, // llvm.x86.avx512.mask.cvtsd2ss.round
-+ x86_avx512_mask_cvtss2sd_round, // llvm.x86.avx512.mask.cvtss2sd.round
-+ x86_avx512_mask_cvttpd2dq_128, // llvm.x86.avx512.mask.cvttpd2dq.128
-+ x86_avx512_mask_cvttpd2dq_256, // llvm.x86.avx512.mask.cvttpd2dq.256
-+ x86_avx512_mask_cvttpd2dq_512, // llvm.x86.avx512.mask.cvttpd2dq.512
-+ x86_avx512_mask_cvttpd2qq_128, // llvm.x86.avx512.mask.cvttpd2qq.128
-+ x86_avx512_mask_cvttpd2qq_256, // llvm.x86.avx512.mask.cvttpd2qq.256
-+ x86_avx512_mask_cvttpd2qq_512, // llvm.x86.avx512.mask.cvttpd2qq.512
-+ x86_avx512_mask_cvttpd2udq_128, // llvm.x86.avx512.mask.cvttpd2udq.128
-+ x86_avx512_mask_cvttpd2udq_256, // llvm.x86.avx512.mask.cvttpd2udq.256
-+ x86_avx512_mask_cvttpd2udq_512, // llvm.x86.avx512.mask.cvttpd2udq.512
-+ x86_avx512_mask_cvttpd2uqq_128, // llvm.x86.avx512.mask.cvttpd2uqq.128
-+ x86_avx512_mask_cvttpd2uqq_256, // llvm.x86.avx512.mask.cvttpd2uqq.256
-+ x86_avx512_mask_cvttpd2uqq_512, // llvm.x86.avx512.mask.cvttpd2uqq.512
-+ x86_avx512_mask_cvttps2dq_128, // llvm.x86.avx512.mask.cvttps2dq.128
-+ x86_avx512_mask_cvttps2dq_256, // llvm.x86.avx512.mask.cvttps2dq.256
-+ x86_avx512_mask_cvttps2dq_512, // llvm.x86.avx512.mask.cvttps2dq.512
-+ x86_avx512_mask_cvttps2qq_128, // llvm.x86.avx512.mask.cvttps2qq.128
-+ x86_avx512_mask_cvttps2qq_256, // llvm.x86.avx512.mask.cvttps2qq.256
-+ x86_avx512_mask_cvttps2qq_512, // llvm.x86.avx512.mask.cvttps2qq.512
-+ x86_avx512_mask_cvttps2udq_128, // llvm.x86.avx512.mask.cvttps2udq.128
-+ x86_avx512_mask_cvttps2udq_256, // llvm.x86.avx512.mask.cvttps2udq.256
-+ x86_avx512_mask_cvttps2udq_512, // llvm.x86.avx512.mask.cvttps2udq.512
-+ x86_avx512_mask_cvttps2uqq_128, // llvm.x86.avx512.mask.cvttps2uqq.128
-+ x86_avx512_mask_cvttps2uqq_256, // llvm.x86.avx512.mask.cvttps2uqq.256
-+ x86_avx512_mask_cvttps2uqq_512, // llvm.x86.avx512.mask.cvttps2uqq.512
-+ x86_avx512_mask_cvtudq2ps_128, // llvm.x86.avx512.mask.cvtudq2ps.128
-+ x86_avx512_mask_cvtudq2ps_256, // llvm.x86.avx512.mask.cvtudq2ps.256
-+ x86_avx512_mask_cvtudq2ps_512, // llvm.x86.avx512.mask.cvtudq2ps.512
-+ x86_avx512_mask_cvtuqq2pd_128, // llvm.x86.avx512.mask.cvtuqq2pd.128
-+ x86_avx512_mask_cvtuqq2pd_256, // llvm.x86.avx512.mask.cvtuqq2pd.256
-+ x86_avx512_mask_cvtuqq2pd_512, // llvm.x86.avx512.mask.cvtuqq2pd.512
-+ x86_avx512_mask_cvtuqq2ps_128, // llvm.x86.avx512.mask.cvtuqq2ps.128
-+ x86_avx512_mask_cvtuqq2ps_256, // llvm.x86.avx512.mask.cvtuqq2ps.256
-+ x86_avx512_mask_cvtuqq2ps_512, // llvm.x86.avx512.mask.cvtuqq2ps.512
-+ x86_avx512_mask_dbpsadbw_128, // llvm.x86.avx512.mask.dbpsadbw.128
-+ x86_avx512_mask_dbpsadbw_256, // llvm.x86.avx512.mask.dbpsadbw.256
-+ x86_avx512_mask_dbpsadbw_512, // llvm.x86.avx512.mask.dbpsadbw.512
-+ x86_avx512_mask_div_pd_512, // llvm.x86.avx512.mask.div.pd.512
-+ x86_avx512_mask_div_ps_512, // llvm.x86.avx512.mask.div.ps.512
-+ x86_avx512_mask_div_sd_round, // llvm.x86.avx512.mask.div.sd.round
-+ x86_avx512_mask_div_ss_round, // llvm.x86.avx512.mask.div.ss.round
-+ x86_avx512_mask_expand_d_128, // llvm.x86.avx512.mask.expand.d.128
-+ x86_avx512_mask_expand_d_256, // llvm.x86.avx512.mask.expand.d.256
-+ x86_avx512_mask_expand_d_512, // llvm.x86.avx512.mask.expand.d.512
-+ x86_avx512_mask_expand_load_d_128, // llvm.x86.avx512.mask.expand.load.d.128
-+ x86_avx512_mask_expand_load_d_256, // llvm.x86.avx512.mask.expand.load.d.256
-+ x86_avx512_mask_expand_load_d_512, // llvm.x86.avx512.mask.expand.load.d.512
-+ x86_avx512_mask_expand_load_pd_128, // llvm.x86.avx512.mask.expand.load.pd.128
-+ x86_avx512_mask_expand_load_pd_256, // llvm.x86.avx512.mask.expand.load.pd.256
-+ x86_avx512_mask_expand_load_pd_512, // llvm.x86.avx512.mask.expand.load.pd.512
-+ x86_avx512_mask_expand_load_ps_128, // llvm.x86.avx512.mask.expand.load.ps.128
-+ x86_avx512_mask_expand_load_ps_256, // llvm.x86.avx512.mask.expand.load.ps.256
-+ x86_avx512_mask_expand_load_ps_512, // llvm.x86.avx512.mask.expand.load.ps.512
-+ x86_avx512_mask_expand_load_q_128, // llvm.x86.avx512.mask.expand.load.q.128
-+ x86_avx512_mask_expand_load_q_256, // llvm.x86.avx512.mask.expand.load.q.256
-+ x86_avx512_mask_expand_load_q_512, // llvm.x86.avx512.mask.expand.load.q.512
-+ x86_avx512_mask_expand_pd_128, // llvm.x86.avx512.mask.expand.pd.128
-+ x86_avx512_mask_expand_pd_256, // llvm.x86.avx512.mask.expand.pd.256
-+ x86_avx512_mask_expand_pd_512, // llvm.x86.avx512.mask.expand.pd.512
-+ x86_avx512_mask_expand_ps_128, // llvm.x86.avx512.mask.expand.ps.128
-+ x86_avx512_mask_expand_ps_256, // llvm.x86.avx512.mask.expand.ps.256
-+ x86_avx512_mask_expand_ps_512, // llvm.x86.avx512.mask.expand.ps.512
-+ x86_avx512_mask_expand_q_128, // llvm.x86.avx512.mask.expand.q.128
-+ x86_avx512_mask_expand_q_256, // llvm.x86.avx512.mask.expand.q.256
-+ x86_avx512_mask_expand_q_512, // llvm.x86.avx512.mask.expand.q.512
-+ x86_avx512_mask_fixupimm_pd_128, // llvm.x86.avx512.mask.fixupimm.pd.128
-+ x86_avx512_mask_fixupimm_pd_256, // llvm.x86.avx512.mask.fixupimm.pd.256
-+ x86_avx512_mask_fixupimm_pd_512, // llvm.x86.avx512.mask.fixupimm.pd.512
-+ x86_avx512_mask_fixupimm_ps_128, // llvm.x86.avx512.mask.fixupimm.ps.128
-+ x86_avx512_mask_fixupimm_ps_256, // llvm.x86.avx512.mask.fixupimm.ps.256
-+ x86_avx512_mask_fixupimm_ps_512, // llvm.x86.avx512.mask.fixupimm.ps.512
-+ x86_avx512_mask_fixupimm_sd, // llvm.x86.avx512.mask.fixupimm.sd
-+ x86_avx512_mask_fixupimm_ss, // llvm.x86.avx512.mask.fixupimm.ss
-+ x86_avx512_mask_fpclass_pd_128, // llvm.x86.avx512.mask.fpclass.pd.128
-+ x86_avx512_mask_fpclass_pd_256, // llvm.x86.avx512.mask.fpclass.pd.256
-+ x86_avx512_mask_fpclass_pd_512, // llvm.x86.avx512.mask.fpclass.pd.512
-+ x86_avx512_mask_fpclass_ps_128, // llvm.x86.avx512.mask.fpclass.ps.128
-+ x86_avx512_mask_fpclass_ps_256, // llvm.x86.avx512.mask.fpclass.ps.256
-+ x86_avx512_mask_fpclass_ps_512, // llvm.x86.avx512.mask.fpclass.ps.512
-+ x86_avx512_mask_fpclass_sd, // llvm.x86.avx512.mask.fpclass.sd
-+ x86_avx512_mask_fpclass_ss, // llvm.x86.avx512.mask.fpclass.ss
-+ x86_avx512_mask_getexp_pd_128, // llvm.x86.avx512.mask.getexp.pd.128
-+ x86_avx512_mask_getexp_pd_256, // llvm.x86.avx512.mask.getexp.pd.256
-+ x86_avx512_mask_getexp_pd_512, // llvm.x86.avx512.mask.getexp.pd.512
-+ x86_avx512_mask_getexp_ps_128, // llvm.x86.avx512.mask.getexp.ps.128
-+ x86_avx512_mask_getexp_ps_256, // llvm.x86.avx512.mask.getexp.ps.256
-+ x86_avx512_mask_getexp_ps_512, // llvm.x86.avx512.mask.getexp.ps.512
-+ x86_avx512_mask_getexp_sd, // llvm.x86.avx512.mask.getexp.sd
-+ x86_avx512_mask_getexp_ss, // llvm.x86.avx512.mask.getexp.ss
-+ x86_avx512_mask_getmant_pd_128, // llvm.x86.avx512.mask.getmant.pd.128
-+ x86_avx512_mask_getmant_pd_256, // llvm.x86.avx512.mask.getmant.pd.256
-+ x86_avx512_mask_getmant_pd_512, // llvm.x86.avx512.mask.getmant.pd.512
-+ x86_avx512_mask_getmant_ps_128, // llvm.x86.avx512.mask.getmant.ps.128
-+ x86_avx512_mask_getmant_ps_256, // llvm.x86.avx512.mask.getmant.ps.256
-+ x86_avx512_mask_getmant_ps_512, // llvm.x86.avx512.mask.getmant.ps.512
-+ x86_avx512_mask_getmant_sd, // llvm.x86.avx512.mask.getmant.sd
-+ x86_avx512_mask_getmant_ss, // llvm.x86.avx512.mask.getmant.ss
-+ x86_avx512_mask_insertf32x4_256, // llvm.x86.avx512.mask.insertf32x4.256
-+ x86_avx512_mask_insertf32x4_512, // llvm.x86.avx512.mask.insertf32x4.512
-+ x86_avx512_mask_insertf32x8_512, // llvm.x86.avx512.mask.insertf32x8.512
-+ x86_avx512_mask_insertf64x2_256, // llvm.x86.avx512.mask.insertf64x2.256
-+ x86_avx512_mask_insertf64x2_512, // llvm.x86.avx512.mask.insertf64x2.512
-+ x86_avx512_mask_insertf64x4_512, // llvm.x86.avx512.mask.insertf64x4.512
-+ x86_avx512_mask_inserti32x4_256, // llvm.x86.avx512.mask.inserti32x4.256
-+ x86_avx512_mask_inserti32x4_512, // llvm.x86.avx512.mask.inserti32x4.512
-+ x86_avx512_mask_inserti32x8_512, // llvm.x86.avx512.mask.inserti32x8.512
-+ x86_avx512_mask_inserti64x2_256, // llvm.x86.avx512.mask.inserti64x2.256
-+ x86_avx512_mask_inserti64x2_512, // llvm.x86.avx512.mask.inserti64x2.512
-+ x86_avx512_mask_inserti64x4_512, // llvm.x86.avx512.mask.inserti64x4.512
-+ x86_avx512_mask_lzcnt_d_128, // llvm.x86.avx512.mask.lzcnt.d.128
-+ x86_avx512_mask_lzcnt_d_256, // llvm.x86.avx512.mask.lzcnt.d.256
-+ x86_avx512_mask_lzcnt_d_512, // llvm.x86.avx512.mask.lzcnt.d.512
-+ x86_avx512_mask_lzcnt_q_128, // llvm.x86.avx512.mask.lzcnt.q.128
-+ x86_avx512_mask_lzcnt_q_256, // llvm.x86.avx512.mask.lzcnt.q.256
-+ x86_avx512_mask_lzcnt_q_512, // llvm.x86.avx512.mask.lzcnt.q.512
-+ x86_avx512_mask_max_pd_128, // llvm.x86.avx512.mask.max.pd.128
-+ x86_avx512_mask_max_pd_256, // llvm.x86.avx512.mask.max.pd.256
-+ x86_avx512_mask_max_pd_512, // llvm.x86.avx512.mask.max.pd.512
-+ x86_avx512_mask_max_ps_128, // llvm.x86.avx512.mask.max.ps.128
-+ x86_avx512_mask_max_ps_256, // llvm.x86.avx512.mask.max.ps.256
-+ x86_avx512_mask_max_ps_512, // llvm.x86.avx512.mask.max.ps.512
-+ x86_avx512_mask_max_sd_round, // llvm.x86.avx512.mask.max.sd.round
-+ x86_avx512_mask_max_ss_round, // llvm.x86.avx512.mask.max.ss.round
-+ x86_avx512_mask_min_pd_128, // llvm.x86.avx512.mask.min.pd.128
-+ x86_avx512_mask_min_pd_256, // llvm.x86.avx512.mask.min.pd.256
-+ x86_avx512_mask_min_pd_512, // llvm.x86.avx512.mask.min.pd.512
-+ x86_avx512_mask_min_ps_128, // llvm.x86.avx512.mask.min.ps.128
-+ x86_avx512_mask_min_ps_256, // llvm.x86.avx512.mask.min.ps.256
-+ x86_avx512_mask_min_ps_512, // llvm.x86.avx512.mask.min.ps.512
-+ x86_avx512_mask_min_sd_round, // llvm.x86.avx512.mask.min.sd.round
-+ x86_avx512_mask_min_ss_round, // llvm.x86.avx512.mask.min.ss.round
-+ x86_avx512_mask_mul_pd_512, // llvm.x86.avx512.mask.mul.pd.512
-+ x86_avx512_mask_mul_ps_512, // llvm.x86.avx512.mask.mul.ps.512
-+ x86_avx512_mask_mul_sd_round, // llvm.x86.avx512.mask.mul.sd.round
-+ x86_avx512_mask_mul_ss_round, // llvm.x86.avx512.mask.mul.ss.round
-+ x86_avx512_mask_pabs_b_128, // llvm.x86.avx512.mask.pabs.b.128
-+ x86_avx512_mask_pabs_b_256, // llvm.x86.avx512.mask.pabs.b.256
-+ x86_avx512_mask_pabs_b_512, // llvm.x86.avx512.mask.pabs.b.512
-+ x86_avx512_mask_pabs_d_128, // llvm.x86.avx512.mask.pabs.d.128
-+ x86_avx512_mask_pabs_d_256, // llvm.x86.avx512.mask.pabs.d.256
-+ x86_avx512_mask_pabs_d_512, // llvm.x86.avx512.mask.pabs.d.512
-+ x86_avx512_mask_pabs_q_128, // llvm.x86.avx512.mask.pabs.q.128
-+ x86_avx512_mask_pabs_q_256, // llvm.x86.avx512.mask.pabs.q.256
-+ x86_avx512_mask_pabs_q_512, // llvm.x86.avx512.mask.pabs.q.512
-+ x86_avx512_mask_pabs_w_128, // llvm.x86.avx512.mask.pabs.w.128
-+ x86_avx512_mask_pabs_w_256, // llvm.x86.avx512.mask.pabs.w.256
-+ x86_avx512_mask_pabs_w_512, // llvm.x86.avx512.mask.pabs.w.512
-+ x86_avx512_mask_packssdw_128, // llvm.x86.avx512.mask.packssdw.128
-+ x86_avx512_mask_packssdw_256, // llvm.x86.avx512.mask.packssdw.256
-+ x86_avx512_mask_packssdw_512, // llvm.x86.avx512.mask.packssdw.512
-+ x86_avx512_mask_packsswb_128, // llvm.x86.avx512.mask.packsswb.128
-+ x86_avx512_mask_packsswb_256, // llvm.x86.avx512.mask.packsswb.256
-+ x86_avx512_mask_packsswb_512, // llvm.x86.avx512.mask.packsswb.512
-+ x86_avx512_mask_packusdw_128, // llvm.x86.avx512.mask.packusdw.128
-+ x86_avx512_mask_packusdw_256, // llvm.x86.avx512.mask.packusdw.256
-+ x86_avx512_mask_packusdw_512, // llvm.x86.avx512.mask.packusdw.512
-+ x86_avx512_mask_packuswb_128, // llvm.x86.avx512.mask.packuswb.128
-+ x86_avx512_mask_packuswb_256, // llvm.x86.avx512.mask.packuswb.256
-+ x86_avx512_mask_packuswb_512, // llvm.x86.avx512.mask.packuswb.512
-+ x86_avx512_mask_padds_b_128, // llvm.x86.avx512.mask.padds.b.128
-+ x86_avx512_mask_padds_b_256, // llvm.x86.avx512.mask.padds.b.256
-+ x86_avx512_mask_padds_b_512, // llvm.x86.avx512.mask.padds.b.512
-+ x86_avx512_mask_padds_w_128, // llvm.x86.avx512.mask.padds.w.128
-+ x86_avx512_mask_padds_w_256, // llvm.x86.avx512.mask.padds.w.256
-+ x86_avx512_mask_padds_w_512, // llvm.x86.avx512.mask.padds.w.512
-+ x86_avx512_mask_paddus_b_128, // llvm.x86.avx512.mask.paddus.b.128
-+ x86_avx512_mask_paddus_b_256, // llvm.x86.avx512.mask.paddus.b.256
-+ x86_avx512_mask_paddus_b_512, // llvm.x86.avx512.mask.paddus.b.512
-+ x86_avx512_mask_paddus_w_128, // llvm.x86.avx512.mask.paddus.w.128
-+ x86_avx512_mask_paddus_w_256, // llvm.x86.avx512.mask.paddus.w.256
-+ x86_avx512_mask_paddus_w_512, // llvm.x86.avx512.mask.paddus.w.512
-+ x86_avx512_mask_pavg_b_128, // llvm.x86.avx512.mask.pavg.b.128
-+ x86_avx512_mask_pavg_b_256, // llvm.x86.avx512.mask.pavg.b.256
-+ x86_avx512_mask_pavg_b_512, // llvm.x86.avx512.mask.pavg.b.512
-+ x86_avx512_mask_pavg_w_128, // llvm.x86.avx512.mask.pavg.w.128
-+ x86_avx512_mask_pavg_w_256, // llvm.x86.avx512.mask.pavg.w.256
-+ x86_avx512_mask_pavg_w_512, // llvm.x86.avx512.mask.pavg.w.512
-+ x86_avx512_mask_pbroadcast_b_gpr_128, // llvm.x86.avx512.mask.pbroadcast.b.gpr.128
-+ x86_avx512_mask_pbroadcast_b_gpr_256, // llvm.x86.avx512.mask.pbroadcast.b.gpr.256
-+ x86_avx512_mask_pbroadcast_b_gpr_512, // llvm.x86.avx512.mask.pbroadcast.b.gpr.512
-+ x86_avx512_mask_pbroadcast_d_gpr_128, // llvm.x86.avx512.mask.pbroadcast.d.gpr.128
-+ x86_avx512_mask_pbroadcast_d_gpr_256, // llvm.x86.avx512.mask.pbroadcast.d.gpr.256
-+ x86_avx512_mask_pbroadcast_d_gpr_512, // llvm.x86.avx512.mask.pbroadcast.d.gpr.512
-+ x86_avx512_mask_pbroadcast_q_gpr_128, // llvm.x86.avx512.mask.pbroadcast.q.gpr.128
-+ x86_avx512_mask_pbroadcast_q_gpr_256, // llvm.x86.avx512.mask.pbroadcast.q.gpr.256
-+ x86_avx512_mask_pbroadcast_q_gpr_512, // llvm.x86.avx512.mask.pbroadcast.q.gpr.512
-+ x86_avx512_mask_pbroadcast_q_mem_512, // llvm.x86.avx512.mask.pbroadcast.q.mem.512
-+ x86_avx512_mask_pbroadcast_w_gpr_128, // llvm.x86.avx512.mask.pbroadcast.w.gpr.128
-+ x86_avx512_mask_pbroadcast_w_gpr_256, // llvm.x86.avx512.mask.pbroadcast.w.gpr.256
-+ x86_avx512_mask_pbroadcast_w_gpr_512, // llvm.x86.avx512.mask.pbroadcast.w.gpr.512
-+ x86_avx512_mask_permvar_df_256, // llvm.x86.avx512.mask.permvar.df.256
-+ x86_avx512_mask_permvar_df_512, // llvm.x86.avx512.mask.permvar.df.512
-+ x86_avx512_mask_permvar_di_256, // llvm.x86.avx512.mask.permvar.di.256
-+ x86_avx512_mask_permvar_di_512, // llvm.x86.avx512.mask.permvar.di.512
-+ x86_avx512_mask_permvar_hi_128, // llvm.x86.avx512.mask.permvar.hi.128
-+ x86_avx512_mask_permvar_hi_256, // llvm.x86.avx512.mask.permvar.hi.256
-+ x86_avx512_mask_permvar_hi_512, // llvm.x86.avx512.mask.permvar.hi.512
-+ x86_avx512_mask_permvar_qi_128, // llvm.x86.avx512.mask.permvar.qi.128
-+ x86_avx512_mask_permvar_qi_256, // llvm.x86.avx512.mask.permvar.qi.256
-+ x86_avx512_mask_permvar_qi_512, // llvm.x86.avx512.mask.permvar.qi.512
-+ x86_avx512_mask_permvar_sf_256, // llvm.x86.avx512.mask.permvar.sf.256
-+ x86_avx512_mask_permvar_sf_512, // llvm.x86.avx512.mask.permvar.sf.512
-+ x86_avx512_mask_permvar_si_256, // llvm.x86.avx512.mask.permvar.si.256
-+ x86_avx512_mask_permvar_si_512, // llvm.x86.avx512.mask.permvar.si.512
-+ x86_avx512_mask_pmaddubs_w_128, // llvm.x86.avx512.mask.pmaddubs.w.128
-+ x86_avx512_mask_pmaddubs_w_256, // llvm.x86.avx512.mask.pmaddubs.w.256
-+ x86_avx512_mask_pmaddubs_w_512, // llvm.x86.avx512.mask.pmaddubs.w.512
-+ x86_avx512_mask_pmaddw_d_128, // llvm.x86.avx512.mask.pmaddw.d.128
-+ x86_avx512_mask_pmaddw_d_256, // llvm.x86.avx512.mask.pmaddw.d.256
-+ x86_avx512_mask_pmaddw_d_512, // llvm.x86.avx512.mask.pmaddw.d.512
-+ x86_avx512_mask_pmov_db_128, // llvm.x86.avx512.mask.pmov.db.128
-+ x86_avx512_mask_pmov_db_256, // llvm.x86.avx512.mask.pmov.db.256
-+ x86_avx512_mask_pmov_db_512, // llvm.x86.avx512.mask.pmov.db.512
-+ x86_avx512_mask_pmov_db_mem_128, // llvm.x86.avx512.mask.pmov.db.mem.128
-+ x86_avx512_mask_pmov_db_mem_256, // llvm.x86.avx512.mask.pmov.db.mem.256
-+ x86_avx512_mask_pmov_db_mem_512, // llvm.x86.avx512.mask.pmov.db.mem.512
-+ x86_avx512_mask_pmov_dw_128, // llvm.x86.avx512.mask.pmov.dw.128
-+ x86_avx512_mask_pmov_dw_256, // llvm.x86.avx512.mask.pmov.dw.256
-+ x86_avx512_mask_pmov_dw_512, // llvm.x86.avx512.mask.pmov.dw.512
-+ x86_avx512_mask_pmov_dw_mem_128, // llvm.x86.avx512.mask.pmov.dw.mem.128
-+ x86_avx512_mask_pmov_dw_mem_256, // llvm.x86.avx512.mask.pmov.dw.mem.256
-+ x86_avx512_mask_pmov_dw_mem_512, // llvm.x86.avx512.mask.pmov.dw.mem.512
-+ x86_avx512_mask_pmov_qb_128, // llvm.x86.avx512.mask.pmov.qb.128
-+ x86_avx512_mask_pmov_qb_256, // llvm.x86.avx512.mask.pmov.qb.256
-+ x86_avx512_mask_pmov_qb_512, // llvm.x86.avx512.mask.pmov.qb.512
-+ x86_avx512_mask_pmov_qb_mem_128, // llvm.x86.avx512.mask.pmov.qb.mem.128
-+ x86_avx512_mask_pmov_qb_mem_256, // llvm.x86.avx512.mask.pmov.qb.mem.256
-+ x86_avx512_mask_pmov_qb_mem_512, // llvm.x86.avx512.mask.pmov.qb.mem.512
-+ x86_avx512_mask_pmov_qd_128, // llvm.x86.avx512.mask.pmov.qd.128
-+ x86_avx512_mask_pmov_qd_256, // llvm.x86.avx512.mask.pmov.qd.256
-+ x86_avx512_mask_pmov_qd_512, // llvm.x86.avx512.mask.pmov.qd.512
-+ x86_avx512_mask_pmov_qd_mem_128, // llvm.x86.avx512.mask.pmov.qd.mem.128
-+ x86_avx512_mask_pmov_qd_mem_256, // llvm.x86.avx512.mask.pmov.qd.mem.256
-+ x86_avx512_mask_pmov_qd_mem_512, // llvm.x86.avx512.mask.pmov.qd.mem.512
-+ x86_avx512_mask_pmov_qw_128, // llvm.x86.avx512.mask.pmov.qw.128
-+ x86_avx512_mask_pmov_qw_256, // llvm.x86.avx512.mask.pmov.qw.256
-+ x86_avx512_mask_pmov_qw_512, // llvm.x86.avx512.mask.pmov.qw.512
-+ x86_avx512_mask_pmov_qw_mem_128, // llvm.x86.avx512.mask.pmov.qw.mem.128
-+ x86_avx512_mask_pmov_qw_mem_256, // llvm.x86.avx512.mask.pmov.qw.mem.256
-+ x86_avx512_mask_pmov_qw_mem_512, // llvm.x86.avx512.mask.pmov.qw.mem.512
-+ x86_avx512_mask_pmov_wb_128, // llvm.x86.avx512.mask.pmov.wb.128
-+ x86_avx512_mask_pmov_wb_256, // llvm.x86.avx512.mask.pmov.wb.256
-+ x86_avx512_mask_pmov_wb_512, // llvm.x86.avx512.mask.pmov.wb.512
-+ x86_avx512_mask_pmov_wb_mem_128, // llvm.x86.avx512.mask.pmov.wb.mem.128
-+ x86_avx512_mask_pmov_wb_mem_256, // llvm.x86.avx512.mask.pmov.wb.mem.256
-+ x86_avx512_mask_pmov_wb_mem_512, // llvm.x86.avx512.mask.pmov.wb.mem.512
-+ x86_avx512_mask_pmovs_db_128, // llvm.x86.avx512.mask.pmovs.db.128
-+ x86_avx512_mask_pmovs_db_256, // llvm.x86.avx512.mask.pmovs.db.256
-+ x86_avx512_mask_pmovs_db_512, // llvm.x86.avx512.mask.pmovs.db.512
-+ x86_avx512_mask_pmovs_db_mem_128, // llvm.x86.avx512.mask.pmovs.db.mem.128
-+ x86_avx512_mask_pmovs_db_mem_256, // llvm.x86.avx512.mask.pmovs.db.mem.256
-+ x86_avx512_mask_pmovs_db_mem_512, // llvm.x86.avx512.mask.pmovs.db.mem.512
-+ x86_avx512_mask_pmovs_dw_128, // llvm.x86.avx512.mask.pmovs.dw.128
-+ x86_avx512_mask_pmovs_dw_256, // llvm.x86.avx512.mask.pmovs.dw.256
-+ x86_avx512_mask_pmovs_dw_512, // llvm.x86.avx512.mask.pmovs.dw.512
-+ x86_avx512_mask_pmovs_dw_mem_128, // llvm.x86.avx512.mask.pmovs.dw.mem.128
-+ x86_avx512_mask_pmovs_dw_mem_256, // llvm.x86.avx512.mask.pmovs.dw.mem.256
-+ x86_avx512_mask_pmovs_dw_mem_512, // llvm.x86.avx512.mask.pmovs.dw.mem.512
-+ x86_avx512_mask_pmovs_qb_128, // llvm.x86.avx512.mask.pmovs.qb.128
-+ x86_avx512_mask_pmovs_qb_256, // llvm.x86.avx512.mask.pmovs.qb.256
-+ x86_avx512_mask_pmovs_qb_512, // llvm.x86.avx512.mask.pmovs.qb.512
-+ x86_avx512_mask_pmovs_qb_mem_128, // llvm.x86.avx512.mask.pmovs.qb.mem.128
-+ x86_avx512_mask_pmovs_qb_mem_256, // llvm.x86.avx512.mask.pmovs.qb.mem.256
-+ x86_avx512_mask_pmovs_qb_mem_512, // llvm.x86.avx512.mask.pmovs.qb.mem.512
-+ x86_avx512_mask_pmovs_qd_128, // llvm.x86.avx512.mask.pmovs.qd.128
-+ x86_avx512_mask_pmovs_qd_256, // llvm.x86.avx512.mask.pmovs.qd.256
-+ x86_avx512_mask_pmovs_qd_512, // llvm.x86.avx512.mask.pmovs.qd.512
-+ x86_avx512_mask_pmovs_qd_mem_128, // llvm.x86.avx512.mask.pmovs.qd.mem.128
-+ x86_avx512_mask_pmovs_qd_mem_256, // llvm.x86.avx512.mask.pmovs.qd.mem.256
-+ x86_avx512_mask_pmovs_qd_mem_512, // llvm.x86.avx512.mask.pmovs.qd.mem.512
-+ x86_avx512_mask_pmovs_qw_128, // llvm.x86.avx512.mask.pmovs.qw.128
-+ x86_avx512_mask_pmovs_qw_256, // llvm.x86.avx512.mask.pmovs.qw.256
-+ x86_avx512_mask_pmovs_qw_512, // llvm.x86.avx512.mask.pmovs.qw.512
-+ x86_avx512_mask_pmovs_qw_mem_128, // llvm.x86.avx512.mask.pmovs.qw.mem.128
-+ x86_avx512_mask_pmovs_qw_mem_256, // llvm.x86.avx512.mask.pmovs.qw.mem.256
-+ x86_avx512_mask_pmovs_qw_mem_512, // llvm.x86.avx512.mask.pmovs.qw.mem.512
-+ x86_avx512_mask_pmovs_wb_128, // llvm.x86.avx512.mask.pmovs.wb.128
-+ x86_avx512_mask_pmovs_wb_256, // llvm.x86.avx512.mask.pmovs.wb.256
-+ x86_avx512_mask_pmovs_wb_512, // llvm.x86.avx512.mask.pmovs.wb.512
-+ x86_avx512_mask_pmovs_wb_mem_128, // llvm.x86.avx512.mask.pmovs.wb.mem.128
-+ x86_avx512_mask_pmovs_wb_mem_256, // llvm.x86.avx512.mask.pmovs.wb.mem.256
-+ x86_avx512_mask_pmovs_wb_mem_512, // llvm.x86.avx512.mask.pmovs.wb.mem.512
-+ x86_avx512_mask_pmovus_db_128, // llvm.x86.avx512.mask.pmovus.db.128
-+ x86_avx512_mask_pmovus_db_256, // llvm.x86.avx512.mask.pmovus.db.256
-+ x86_avx512_mask_pmovus_db_512, // llvm.x86.avx512.mask.pmovus.db.512
-+ x86_avx512_mask_pmovus_db_mem_128, // llvm.x86.avx512.mask.pmovus.db.mem.128
-+ x86_avx512_mask_pmovus_db_mem_256, // llvm.x86.avx512.mask.pmovus.db.mem.256
-+ x86_avx512_mask_pmovus_db_mem_512, // llvm.x86.avx512.mask.pmovus.db.mem.512
-+ x86_avx512_mask_pmovus_dw_128, // llvm.x86.avx512.mask.pmovus.dw.128
-+ x86_avx512_mask_pmovus_dw_256, // llvm.x86.avx512.mask.pmovus.dw.256
-+ x86_avx512_mask_pmovus_dw_512, // llvm.x86.avx512.mask.pmovus.dw.512
-+ x86_avx512_mask_pmovus_dw_mem_128, // llvm.x86.avx512.mask.pmovus.dw.mem.128
-+ x86_avx512_mask_pmovus_dw_mem_256, // llvm.x86.avx512.mask.pmovus.dw.mem.256
-+ x86_avx512_mask_pmovus_dw_mem_512, // llvm.x86.avx512.mask.pmovus.dw.mem.512
-+ x86_avx512_mask_pmovus_qb_128, // llvm.x86.avx512.mask.pmovus.qb.128
-+ x86_avx512_mask_pmovus_qb_256, // llvm.x86.avx512.mask.pmovus.qb.256
-+ x86_avx512_mask_pmovus_qb_512, // llvm.x86.avx512.mask.pmovus.qb.512
-+ x86_avx512_mask_pmovus_qb_mem_128, // llvm.x86.avx512.mask.pmovus.qb.mem.128
-+ x86_avx512_mask_pmovus_qb_mem_256, // llvm.x86.avx512.mask.pmovus.qb.mem.256
-+ x86_avx512_mask_pmovus_qb_mem_512, // llvm.x86.avx512.mask.pmovus.qb.mem.512
-+ x86_avx512_mask_pmovus_qd_128, // llvm.x86.avx512.mask.pmovus.qd.128
-+ x86_avx512_mask_pmovus_qd_256, // llvm.x86.avx512.mask.pmovus.qd.256
-+ x86_avx512_mask_pmovus_qd_512, // llvm.x86.avx512.mask.pmovus.qd.512
-+ x86_avx512_mask_pmovus_qd_mem_128, // llvm.x86.avx512.mask.pmovus.qd.mem.128
-+ x86_avx512_mask_pmovus_qd_mem_256, // llvm.x86.avx512.mask.pmovus.qd.mem.256
-+ x86_avx512_mask_pmovus_qd_mem_512, // llvm.x86.avx512.mask.pmovus.qd.mem.512
-+ x86_avx512_mask_pmovus_qw_128, // llvm.x86.avx512.mask.pmovus.qw.128
-+ x86_avx512_mask_pmovus_qw_256, // llvm.x86.avx512.mask.pmovus.qw.256
-+ x86_avx512_mask_pmovus_qw_512, // llvm.x86.avx512.mask.pmovus.qw.512
-+ x86_avx512_mask_pmovus_qw_mem_128, // llvm.x86.avx512.mask.pmovus.qw.mem.128
-+ x86_avx512_mask_pmovus_qw_mem_256, // llvm.x86.avx512.mask.pmovus.qw.mem.256
-+ x86_avx512_mask_pmovus_qw_mem_512, // llvm.x86.avx512.mask.pmovus.qw.mem.512
-+ x86_avx512_mask_pmovus_wb_128, // llvm.x86.avx512.mask.pmovus.wb.128
-+ x86_avx512_mask_pmovus_wb_256, // llvm.x86.avx512.mask.pmovus.wb.256
-+ x86_avx512_mask_pmovus_wb_512, // llvm.x86.avx512.mask.pmovus.wb.512
-+ x86_avx512_mask_pmovus_wb_mem_128, // llvm.x86.avx512.mask.pmovus.wb.mem.128
-+ x86_avx512_mask_pmovus_wb_mem_256, // llvm.x86.avx512.mask.pmovus.wb.mem.256
-+ x86_avx512_mask_pmovus_wb_mem_512, // llvm.x86.avx512.mask.pmovus.wb.mem.512
-+ x86_avx512_mask_pmul_dq_128, // llvm.x86.avx512.mask.pmul.dq.128
-+ x86_avx512_mask_pmul_dq_256, // llvm.x86.avx512.mask.pmul.dq.256
-+ x86_avx512_mask_pmul_dq_512, // llvm.x86.avx512.mask.pmul.dq.512
-+ x86_avx512_mask_pmul_hr_sw_128, // llvm.x86.avx512.mask.pmul.hr.sw.128
-+ x86_avx512_mask_pmul_hr_sw_256, // llvm.x86.avx512.mask.pmul.hr.sw.256
-+ x86_avx512_mask_pmul_hr_sw_512, // llvm.x86.avx512.mask.pmul.hr.sw.512
-+ x86_avx512_mask_pmulh_w_128, // llvm.x86.avx512.mask.pmulh.w.128
-+ x86_avx512_mask_pmulh_w_256, // llvm.x86.avx512.mask.pmulh.w.256
-+ x86_avx512_mask_pmulh_w_512, // llvm.x86.avx512.mask.pmulh.w.512
-+ x86_avx512_mask_pmulhu_w_128, // llvm.x86.avx512.mask.pmulhu.w.128
-+ x86_avx512_mask_pmulhu_w_256, // llvm.x86.avx512.mask.pmulhu.w.256
-+ x86_avx512_mask_pmulhu_w_512, // llvm.x86.avx512.mask.pmulhu.w.512
-+ x86_avx512_mask_pmultishift_qb_128, // llvm.x86.avx512.mask.pmultishift.qb.128
-+ x86_avx512_mask_pmultishift_qb_256, // llvm.x86.avx512.mask.pmultishift.qb.256
-+ x86_avx512_mask_pmultishift_qb_512, // llvm.x86.avx512.mask.pmultishift.qb.512
-+ x86_avx512_mask_pmulu_dq_128, // llvm.x86.avx512.mask.pmulu.dq.128
-+ x86_avx512_mask_pmulu_dq_256, // llvm.x86.avx512.mask.pmulu.dq.256
-+ x86_avx512_mask_pmulu_dq_512, // llvm.x86.avx512.mask.pmulu.dq.512
-+ x86_avx512_mask_prol_d_128, // llvm.x86.avx512.mask.prol.d.128
-+ x86_avx512_mask_prol_d_256, // llvm.x86.avx512.mask.prol.d.256
-+ x86_avx512_mask_prol_d_512, // llvm.x86.avx512.mask.prol.d.512
-+ x86_avx512_mask_prol_q_128, // llvm.x86.avx512.mask.prol.q.128
-+ x86_avx512_mask_prol_q_256, // llvm.x86.avx512.mask.prol.q.256
-+ x86_avx512_mask_prol_q_512, // llvm.x86.avx512.mask.prol.q.512
-+ x86_avx512_mask_prolv_d_128, // llvm.x86.avx512.mask.prolv.d.128
-+ x86_avx512_mask_prolv_d_256, // llvm.x86.avx512.mask.prolv.d.256
-+ x86_avx512_mask_prolv_d_512, // llvm.x86.avx512.mask.prolv.d.512
-+ x86_avx512_mask_prolv_q_128, // llvm.x86.avx512.mask.prolv.q.128
-+ x86_avx512_mask_prolv_q_256, // llvm.x86.avx512.mask.prolv.q.256
-+ x86_avx512_mask_prolv_q_512, // llvm.x86.avx512.mask.prolv.q.512
-+ x86_avx512_mask_pror_d_128, // llvm.x86.avx512.mask.pror.d.128
-+ x86_avx512_mask_pror_d_256, // llvm.x86.avx512.mask.pror.d.256
-+ x86_avx512_mask_pror_d_512, // llvm.x86.avx512.mask.pror.d.512
-+ x86_avx512_mask_pror_q_128, // llvm.x86.avx512.mask.pror.q.128
-+ x86_avx512_mask_pror_q_256, // llvm.x86.avx512.mask.pror.q.256
-+ x86_avx512_mask_pror_q_512, // llvm.x86.avx512.mask.pror.q.512
-+ x86_avx512_mask_prorv_d_128, // llvm.x86.avx512.mask.prorv.d.128
-+ x86_avx512_mask_prorv_d_256, // llvm.x86.avx512.mask.prorv.d.256
-+ x86_avx512_mask_prorv_d_512, // llvm.x86.avx512.mask.prorv.d.512
-+ x86_avx512_mask_prorv_q_128, // llvm.x86.avx512.mask.prorv.q.128
-+ x86_avx512_mask_prorv_q_256, // llvm.x86.avx512.mask.prorv.q.256
-+ x86_avx512_mask_prorv_q_512, // llvm.x86.avx512.mask.prorv.q.512
-+ x86_avx512_mask_psubs_b_128, // llvm.x86.avx512.mask.psubs.b.128
-+ x86_avx512_mask_psubs_b_256, // llvm.x86.avx512.mask.psubs.b.256
-+ x86_avx512_mask_psubs_b_512, // llvm.x86.avx512.mask.psubs.b.512
-+ x86_avx512_mask_psubs_w_128, // llvm.x86.avx512.mask.psubs.w.128
-+ x86_avx512_mask_psubs_w_256, // llvm.x86.avx512.mask.psubs.w.256
-+ x86_avx512_mask_psubs_w_512, // llvm.x86.avx512.mask.psubs.w.512
-+ x86_avx512_mask_psubus_b_128, // llvm.x86.avx512.mask.psubus.b.128
-+ x86_avx512_mask_psubus_b_256, // llvm.x86.avx512.mask.psubus.b.256
-+ x86_avx512_mask_psubus_b_512, // llvm.x86.avx512.mask.psubus.b.512
-+ x86_avx512_mask_psubus_w_128, // llvm.x86.avx512.mask.psubus.w.128
-+ x86_avx512_mask_psubus_w_256, // llvm.x86.avx512.mask.psubus.w.256
-+ x86_avx512_mask_psubus_w_512, // llvm.x86.avx512.mask.psubus.w.512
-+ x86_avx512_mask_pternlog_d_128, // llvm.x86.avx512.mask.pternlog.d.128
-+ x86_avx512_mask_pternlog_d_256, // llvm.x86.avx512.mask.pternlog.d.256
-+ x86_avx512_mask_pternlog_d_512, // llvm.x86.avx512.mask.pternlog.d.512
-+ x86_avx512_mask_pternlog_q_128, // llvm.x86.avx512.mask.pternlog.q.128
-+ x86_avx512_mask_pternlog_q_256, // llvm.x86.avx512.mask.pternlog.q.256
-+ x86_avx512_mask_pternlog_q_512, // llvm.x86.avx512.mask.pternlog.q.512
-+ x86_avx512_mask_range_pd_128, // llvm.x86.avx512.mask.range.pd.128
-+ x86_avx512_mask_range_pd_256, // llvm.x86.avx512.mask.range.pd.256
-+ x86_avx512_mask_range_pd_512, // llvm.x86.avx512.mask.range.pd.512
-+ x86_avx512_mask_range_ps_128, // llvm.x86.avx512.mask.range.ps.128
-+ x86_avx512_mask_range_ps_256, // llvm.x86.avx512.mask.range.ps.256
-+ x86_avx512_mask_range_ps_512, // llvm.x86.avx512.mask.range.ps.512
-+ x86_avx512_mask_range_sd, // llvm.x86.avx512.mask.range.sd
-+ x86_avx512_mask_range_ss, // llvm.x86.avx512.mask.range.ss
-+ x86_avx512_mask_reduce_pd_128, // llvm.x86.avx512.mask.reduce.pd.128
-+ x86_avx512_mask_reduce_pd_256, // llvm.x86.avx512.mask.reduce.pd.256
-+ x86_avx512_mask_reduce_pd_512, // llvm.x86.avx512.mask.reduce.pd.512
-+ x86_avx512_mask_reduce_ps_128, // llvm.x86.avx512.mask.reduce.ps.128
-+ x86_avx512_mask_reduce_ps_256, // llvm.x86.avx512.mask.reduce.ps.256
-+ x86_avx512_mask_reduce_ps_512, // llvm.x86.avx512.mask.reduce.ps.512
-+ x86_avx512_mask_reduce_sd, // llvm.x86.avx512.mask.reduce.sd
-+ x86_avx512_mask_reduce_ss, // llvm.x86.avx512.mask.reduce.ss
-+ x86_avx512_mask_rndscale_pd_128, // llvm.x86.avx512.mask.rndscale.pd.128
-+ x86_avx512_mask_rndscale_pd_256, // llvm.x86.avx512.mask.rndscale.pd.256
-+ x86_avx512_mask_rndscale_pd_512, // llvm.x86.avx512.mask.rndscale.pd.512
-+ x86_avx512_mask_rndscale_ps_128, // llvm.x86.avx512.mask.rndscale.ps.128
-+ x86_avx512_mask_rndscale_ps_256, // llvm.x86.avx512.mask.rndscale.ps.256
-+ x86_avx512_mask_rndscale_ps_512, // llvm.x86.avx512.mask.rndscale.ps.512
-+ x86_avx512_mask_rndscale_sd, // llvm.x86.avx512.mask.rndscale.sd
-+ x86_avx512_mask_rndscale_ss, // llvm.x86.avx512.mask.rndscale.ss
-+ x86_avx512_mask_scalef_pd_128, // llvm.x86.avx512.mask.scalef.pd.128
-+ x86_avx512_mask_scalef_pd_256, // llvm.x86.avx512.mask.scalef.pd.256
-+ x86_avx512_mask_scalef_pd_512, // llvm.x86.avx512.mask.scalef.pd.512
-+ x86_avx512_mask_scalef_ps_128, // llvm.x86.avx512.mask.scalef.ps.128
-+ x86_avx512_mask_scalef_ps_256, // llvm.x86.avx512.mask.scalef.ps.256
-+ x86_avx512_mask_scalef_ps_512, // llvm.x86.avx512.mask.scalef.ps.512
-+ x86_avx512_mask_scalef_sd, // llvm.x86.avx512.mask.scalef.sd
-+ x86_avx512_mask_scalef_ss, // llvm.x86.avx512.mask.scalef.ss
-+ x86_avx512_mask_shuf_f32x4, // llvm.x86.avx512.mask.shuf.f32x4
-+ x86_avx512_mask_shuf_f32x4_256, // llvm.x86.avx512.mask.shuf.f32x4.256
-+ x86_avx512_mask_shuf_f64x2, // llvm.x86.avx512.mask.shuf.f64x2
-+ x86_avx512_mask_shuf_f64x2_256, // llvm.x86.avx512.mask.shuf.f64x2.256
-+ x86_avx512_mask_shuf_i32x4, // llvm.x86.avx512.mask.shuf.i32x4
-+ x86_avx512_mask_shuf_i32x4_256, // llvm.x86.avx512.mask.shuf.i32x4.256
-+ x86_avx512_mask_shuf_i64x2, // llvm.x86.avx512.mask.shuf.i64x2
-+ x86_avx512_mask_shuf_i64x2_256, // llvm.x86.avx512.mask.shuf.i64x2.256
-+ x86_avx512_mask_sqrt_pd_128, // llvm.x86.avx512.mask.sqrt.pd.128
-+ x86_avx512_mask_sqrt_pd_256, // llvm.x86.avx512.mask.sqrt.pd.256
-+ x86_avx512_mask_sqrt_pd_512, // llvm.x86.avx512.mask.sqrt.pd.512
-+ x86_avx512_mask_sqrt_ps_128, // llvm.x86.avx512.mask.sqrt.ps.128
-+ x86_avx512_mask_sqrt_ps_256, // llvm.x86.avx512.mask.sqrt.ps.256
-+ x86_avx512_mask_sqrt_ps_512, // llvm.x86.avx512.mask.sqrt.ps.512
-+ x86_avx512_mask_sqrt_sd, // llvm.x86.avx512.mask.sqrt.sd
-+ x86_avx512_mask_sqrt_ss, // llvm.x86.avx512.mask.sqrt.ss
-+ x86_avx512_mask_store_ss, // llvm.x86.avx512.mask.store.ss
-+ x86_avx512_mask_sub_pd_512, // llvm.x86.avx512.mask.sub.pd.512
-+ x86_avx512_mask_sub_ps_512, // llvm.x86.avx512.mask.sub.ps.512
-+ x86_avx512_mask_sub_sd_round, // llvm.x86.avx512.mask.sub.sd.round
-+ x86_avx512_mask_sub_ss_round, // llvm.x86.avx512.mask.sub.ss.round
-+ x86_avx512_mask_ucmp_b_128, // llvm.x86.avx512.mask.ucmp.b.128
-+ x86_avx512_mask_ucmp_b_256, // llvm.x86.avx512.mask.ucmp.b.256
-+ x86_avx512_mask_ucmp_b_512, // llvm.x86.avx512.mask.ucmp.b.512
-+ x86_avx512_mask_ucmp_d_128, // llvm.x86.avx512.mask.ucmp.d.128
-+ x86_avx512_mask_ucmp_d_256, // llvm.x86.avx512.mask.ucmp.d.256
-+ x86_avx512_mask_ucmp_d_512, // llvm.x86.avx512.mask.ucmp.d.512
-+ x86_avx512_mask_ucmp_q_128, // llvm.x86.avx512.mask.ucmp.q.128
-+ x86_avx512_mask_ucmp_q_256, // llvm.x86.avx512.mask.ucmp.q.256
-+ x86_avx512_mask_ucmp_q_512, // llvm.x86.avx512.mask.ucmp.q.512
-+ x86_avx512_mask_ucmp_w_128, // llvm.x86.avx512.mask.ucmp.w.128
-+ x86_avx512_mask_ucmp_w_256, // llvm.x86.avx512.mask.ucmp.w.256
-+ x86_avx512_mask_ucmp_w_512, // llvm.x86.avx512.mask.ucmp.w.512
-+ x86_avx512_mask_vcvtph2ps_128, // llvm.x86.avx512.mask.vcvtph2ps.128
-+ x86_avx512_mask_vcvtph2ps_256, // llvm.x86.avx512.mask.vcvtph2ps.256
-+ x86_avx512_mask_vcvtph2ps_512, // llvm.x86.avx512.mask.vcvtph2ps.512
-+ x86_avx512_mask_vcvtps2ph_128, // llvm.x86.avx512.mask.vcvtps2ph.128
-+ x86_avx512_mask_vcvtps2ph_256, // llvm.x86.avx512.mask.vcvtps2ph.256
-+ x86_avx512_mask_vcvtps2ph_512, // llvm.x86.avx512.mask.vcvtps2ph.512
-+ x86_avx512_mask_vextractf32x4_256, // llvm.x86.avx512.mask.vextractf32x4.256
-+ x86_avx512_mask_vextractf32x4_512, // llvm.x86.avx512.mask.vextractf32x4.512
-+ x86_avx512_mask_vextractf32x8_512, // llvm.x86.avx512.mask.vextractf32x8.512
-+ x86_avx512_mask_vextractf64x2_256, // llvm.x86.avx512.mask.vextractf64x2.256
-+ x86_avx512_mask_vextractf64x2_512, // llvm.x86.avx512.mask.vextractf64x2.512
-+ x86_avx512_mask_vextractf64x4_512, // llvm.x86.avx512.mask.vextractf64x4.512
-+ x86_avx512_mask_vextracti32x4_256, // llvm.x86.avx512.mask.vextracti32x4.256
-+ x86_avx512_mask_vextracti32x4_512, // llvm.x86.avx512.mask.vextracti32x4.512
-+ x86_avx512_mask_vextracti32x8_512, // llvm.x86.avx512.mask.vextracti32x8.512
-+ x86_avx512_mask_vextracti64x2_256, // llvm.x86.avx512.mask.vextracti64x2.256
-+ x86_avx512_mask_vextracti64x2_512, // llvm.x86.avx512.mask.vextracti64x2.512
-+ x86_avx512_mask_vextracti64x4_512, // llvm.x86.avx512.mask.vextracti64x4.512
-+ x86_avx512_mask_vfmadd_pd_128, // llvm.x86.avx512.mask.vfmadd.pd.128
-+ x86_avx512_mask_vfmadd_pd_256, // llvm.x86.avx512.mask.vfmadd.pd.256
-+ x86_avx512_mask_vfmadd_pd_512, // llvm.x86.avx512.mask.vfmadd.pd.512
-+ x86_avx512_mask_vfmadd_ps_128, // llvm.x86.avx512.mask.vfmadd.ps.128
-+ x86_avx512_mask_vfmadd_ps_256, // llvm.x86.avx512.mask.vfmadd.ps.256
-+ x86_avx512_mask_vfmadd_ps_512, // llvm.x86.avx512.mask.vfmadd.ps.512
-+ x86_avx512_mask_vfmadd_sd, // llvm.x86.avx512.mask.vfmadd.sd
-+ x86_avx512_mask_vfmadd_ss, // llvm.x86.avx512.mask.vfmadd.ss
-+ x86_avx512_mask_vfmaddsub_pd_128, // llvm.x86.avx512.mask.vfmaddsub.pd.128
-+ x86_avx512_mask_vfmaddsub_pd_256, // llvm.x86.avx512.mask.vfmaddsub.pd.256
-+ x86_avx512_mask_vfmaddsub_pd_512, // llvm.x86.avx512.mask.vfmaddsub.pd.512
-+ x86_avx512_mask_vfmaddsub_ps_128, // llvm.x86.avx512.mask.vfmaddsub.ps.128
-+ x86_avx512_mask_vfmaddsub_ps_256, // llvm.x86.avx512.mask.vfmaddsub.ps.256
-+ x86_avx512_mask_vfmaddsub_ps_512, // llvm.x86.avx512.mask.vfmaddsub.ps.512
-+ x86_avx512_mask_vfnmadd_pd_128, // llvm.x86.avx512.mask.vfnmadd.pd.128
-+ x86_avx512_mask_vfnmadd_pd_256, // llvm.x86.avx512.mask.vfnmadd.pd.256
-+ x86_avx512_mask_vfnmadd_pd_512, // llvm.x86.avx512.mask.vfnmadd.pd.512
-+ x86_avx512_mask_vfnmadd_ps_128, // llvm.x86.avx512.mask.vfnmadd.ps.128
-+ x86_avx512_mask_vfnmadd_ps_256, // llvm.x86.avx512.mask.vfnmadd.ps.256
-+ x86_avx512_mask_vfnmadd_ps_512, // llvm.x86.avx512.mask.vfnmadd.ps.512
-+ x86_avx512_mask_vfnmsub_pd_128, // llvm.x86.avx512.mask.vfnmsub.pd.128
-+ x86_avx512_mask_vfnmsub_pd_256, // llvm.x86.avx512.mask.vfnmsub.pd.256
-+ x86_avx512_mask_vfnmsub_pd_512, // llvm.x86.avx512.mask.vfnmsub.pd.512
-+ x86_avx512_mask_vfnmsub_ps_128, // llvm.x86.avx512.mask.vfnmsub.ps.128
-+ x86_avx512_mask_vfnmsub_ps_256, // llvm.x86.avx512.mask.vfnmsub.ps.256
-+ x86_avx512_mask_vfnmsub_ps_512, // llvm.x86.avx512.mask.vfnmsub.ps.512
-+ x86_avx512_mask_vpermi2var_d_128, // llvm.x86.avx512.mask.vpermi2var.d.128
-+ x86_avx512_mask_vpermi2var_d_256, // llvm.x86.avx512.mask.vpermi2var.d.256
-+ x86_avx512_mask_vpermi2var_d_512, // llvm.x86.avx512.mask.vpermi2var.d.512
-+ x86_avx512_mask_vpermi2var_hi_128, // llvm.x86.avx512.mask.vpermi2var.hi.128
-+ x86_avx512_mask_vpermi2var_hi_256, // llvm.x86.avx512.mask.vpermi2var.hi.256
-+ x86_avx512_mask_vpermi2var_hi_512, // llvm.x86.avx512.mask.vpermi2var.hi.512
-+ x86_avx512_mask_vpermi2var_pd_128, // llvm.x86.avx512.mask.vpermi2var.pd.128
-+ x86_avx512_mask_vpermi2var_pd_256, // llvm.x86.avx512.mask.vpermi2var.pd.256
-+ x86_avx512_mask_vpermi2var_pd_512, // llvm.x86.avx512.mask.vpermi2var.pd.512
-+ x86_avx512_mask_vpermi2var_ps_128, // llvm.x86.avx512.mask.vpermi2var.ps.128
-+ x86_avx512_mask_vpermi2var_ps_256, // llvm.x86.avx512.mask.vpermi2var.ps.256
-+ x86_avx512_mask_vpermi2var_ps_512, // llvm.x86.avx512.mask.vpermi2var.ps.512
-+ x86_avx512_mask_vpermi2var_q_128, // llvm.x86.avx512.mask.vpermi2var.q.128
-+ x86_avx512_mask_vpermi2var_q_256, // llvm.x86.avx512.mask.vpermi2var.q.256
-+ x86_avx512_mask_vpermi2var_q_512, // llvm.x86.avx512.mask.vpermi2var.q.512
-+ x86_avx512_mask_vpermi2var_qi_128, // llvm.x86.avx512.mask.vpermi2var.qi.128
-+ x86_avx512_mask_vpermi2var_qi_256, // llvm.x86.avx512.mask.vpermi2var.qi.256
-+ x86_avx512_mask_vpermi2var_qi_512, // llvm.x86.avx512.mask.vpermi2var.qi.512
-+ x86_avx512_mask_vpermt2var_d_128, // llvm.x86.avx512.mask.vpermt2var.d.128
-+ x86_avx512_mask_vpermt2var_d_256, // llvm.x86.avx512.mask.vpermt2var.d.256
-+ x86_avx512_mask_vpermt2var_d_512, // llvm.x86.avx512.mask.vpermt2var.d.512
-+ x86_avx512_mask_vpermt2var_hi_128, // llvm.x86.avx512.mask.vpermt2var.hi.128
-+ x86_avx512_mask_vpermt2var_hi_256, // llvm.x86.avx512.mask.vpermt2var.hi.256
-+ x86_avx512_mask_vpermt2var_hi_512, // llvm.x86.avx512.mask.vpermt2var.hi.512
-+ x86_avx512_mask_vpermt2var_pd_128, // llvm.x86.avx512.mask.vpermt2var.pd.128
-+ x86_avx512_mask_vpermt2var_pd_256, // llvm.x86.avx512.mask.vpermt2var.pd.256
-+ x86_avx512_mask_vpermt2var_pd_512, // llvm.x86.avx512.mask.vpermt2var.pd.512
-+ x86_avx512_mask_vpermt2var_ps_128, // llvm.x86.avx512.mask.vpermt2var.ps.128
-+ x86_avx512_mask_vpermt2var_ps_256, // llvm.x86.avx512.mask.vpermt2var.ps.256
-+ x86_avx512_mask_vpermt2var_ps_512, // llvm.x86.avx512.mask.vpermt2var.ps.512
-+ x86_avx512_mask_vpermt2var_q_128, // llvm.x86.avx512.mask.vpermt2var.q.128
-+ x86_avx512_mask_vpermt2var_q_256, // llvm.x86.avx512.mask.vpermt2var.q.256
-+ x86_avx512_mask_vpermt2var_q_512, // llvm.x86.avx512.mask.vpermt2var.q.512
-+ x86_avx512_mask_vpermt2var_qi_128, // llvm.x86.avx512.mask.vpermt2var.qi.128
-+ x86_avx512_mask_vpermt2var_qi_256, // llvm.x86.avx512.mask.vpermt2var.qi.256
-+ x86_avx512_mask_vpermt2var_qi_512, // llvm.x86.avx512.mask.vpermt2var.qi.512
-+ x86_avx512_mask_vpmadd52h_uq_128, // llvm.x86.avx512.mask.vpmadd52h.uq.128
-+ x86_avx512_mask_vpmadd52h_uq_256, // llvm.x86.avx512.mask.vpmadd52h.uq.256
-+ x86_avx512_mask_vpmadd52h_uq_512, // llvm.x86.avx512.mask.vpmadd52h.uq.512
-+ x86_avx512_mask_vpmadd52l_uq_128, // llvm.x86.avx512.mask.vpmadd52l.uq.128
-+ x86_avx512_mask_vpmadd52l_uq_256, // llvm.x86.avx512.mask.vpmadd52l.uq.256
-+ x86_avx512_mask_vpmadd52l_uq_512, // llvm.x86.avx512.mask.vpmadd52l.uq.512
-+ x86_avx512_mask3_vfmadd_pd_128, // llvm.x86.avx512.mask3.vfmadd.pd.128
-+ x86_avx512_mask3_vfmadd_pd_256, // llvm.x86.avx512.mask3.vfmadd.pd.256
-+ x86_avx512_mask3_vfmadd_pd_512, // llvm.x86.avx512.mask3.vfmadd.pd.512
-+ x86_avx512_mask3_vfmadd_ps_128, // llvm.x86.avx512.mask3.vfmadd.ps.128
-+ x86_avx512_mask3_vfmadd_ps_256, // llvm.x86.avx512.mask3.vfmadd.ps.256
-+ x86_avx512_mask3_vfmadd_ps_512, // llvm.x86.avx512.mask3.vfmadd.ps.512
-+ x86_avx512_mask3_vfmadd_sd, // llvm.x86.avx512.mask3.vfmadd.sd
-+ x86_avx512_mask3_vfmadd_ss, // llvm.x86.avx512.mask3.vfmadd.ss
-+ x86_avx512_mask3_vfmaddsub_pd_128, // llvm.x86.avx512.mask3.vfmaddsub.pd.128
-+ x86_avx512_mask3_vfmaddsub_pd_256, // llvm.x86.avx512.mask3.vfmaddsub.pd.256
-+ x86_avx512_mask3_vfmaddsub_pd_512, // llvm.x86.avx512.mask3.vfmaddsub.pd.512
-+ x86_avx512_mask3_vfmaddsub_ps_128, // llvm.x86.avx512.mask3.vfmaddsub.ps.128
-+ x86_avx512_mask3_vfmaddsub_ps_256, // llvm.x86.avx512.mask3.vfmaddsub.ps.256
-+ x86_avx512_mask3_vfmaddsub_ps_512, // llvm.x86.avx512.mask3.vfmaddsub.ps.512
-+ x86_avx512_mask3_vfmsub_pd_128, // llvm.x86.avx512.mask3.vfmsub.pd.128
-+ x86_avx512_mask3_vfmsub_pd_256, // llvm.x86.avx512.mask3.vfmsub.pd.256
-+ x86_avx512_mask3_vfmsub_pd_512, // llvm.x86.avx512.mask3.vfmsub.pd.512
-+ x86_avx512_mask3_vfmsub_ps_128, // llvm.x86.avx512.mask3.vfmsub.ps.128
-+ x86_avx512_mask3_vfmsub_ps_256, // llvm.x86.avx512.mask3.vfmsub.ps.256
-+ x86_avx512_mask3_vfmsub_ps_512, // llvm.x86.avx512.mask3.vfmsub.ps.512
-+ x86_avx512_mask3_vfmsub_sd, // llvm.x86.avx512.mask3.vfmsub.sd
-+ x86_avx512_mask3_vfmsub_ss, // llvm.x86.avx512.mask3.vfmsub.ss
-+ x86_avx512_mask3_vfmsubadd_pd_128, // llvm.x86.avx512.mask3.vfmsubadd.pd.128
-+ x86_avx512_mask3_vfmsubadd_pd_256, // llvm.x86.avx512.mask3.vfmsubadd.pd.256
-+ x86_avx512_mask3_vfmsubadd_pd_512, // llvm.x86.avx512.mask3.vfmsubadd.pd.512
-+ x86_avx512_mask3_vfmsubadd_ps_128, // llvm.x86.avx512.mask3.vfmsubadd.ps.128
-+ x86_avx512_mask3_vfmsubadd_ps_256, // llvm.x86.avx512.mask3.vfmsubadd.ps.256
-+ x86_avx512_mask3_vfmsubadd_ps_512, // llvm.x86.avx512.mask3.vfmsubadd.ps.512
-+ x86_avx512_mask3_vfnmsub_pd_128, // llvm.x86.avx512.mask3.vfnmsub.pd.128
-+ x86_avx512_mask3_vfnmsub_pd_256, // llvm.x86.avx512.mask3.vfnmsub.pd.256
-+ x86_avx512_mask3_vfnmsub_pd_512, // llvm.x86.avx512.mask3.vfnmsub.pd.512
-+ x86_avx512_mask3_vfnmsub_ps_128, // llvm.x86.avx512.mask3.vfnmsub.ps.128
-+ x86_avx512_mask3_vfnmsub_ps_256, // llvm.x86.avx512.mask3.vfnmsub.ps.256
-+ x86_avx512_mask3_vfnmsub_ps_512, // llvm.x86.avx512.mask3.vfnmsub.ps.512
-+ x86_avx512_mask3_vfnmsub_sd, // llvm.x86.avx512.mask3.vfnmsub.sd
-+ x86_avx512_mask3_vfnmsub_ss, // llvm.x86.avx512.mask3.vfnmsub.ss
-+ x86_avx512_maskz_fixupimm_pd_128, // llvm.x86.avx512.maskz.fixupimm.pd.128
-+ x86_avx512_maskz_fixupimm_pd_256, // llvm.x86.avx512.maskz.fixupimm.pd.256
-+ x86_avx512_maskz_fixupimm_pd_512, // llvm.x86.avx512.maskz.fixupimm.pd.512
-+ x86_avx512_maskz_fixupimm_ps_128, // llvm.x86.avx512.maskz.fixupimm.ps.128
-+ x86_avx512_maskz_fixupimm_ps_256, // llvm.x86.avx512.maskz.fixupimm.ps.256
-+ x86_avx512_maskz_fixupimm_ps_512, // llvm.x86.avx512.maskz.fixupimm.ps.512
-+ x86_avx512_maskz_fixupimm_sd, // llvm.x86.avx512.maskz.fixupimm.sd
-+ x86_avx512_maskz_fixupimm_ss, // llvm.x86.avx512.maskz.fixupimm.ss
-+ x86_avx512_maskz_pternlog_d_128, // llvm.x86.avx512.maskz.pternlog.d.128
-+ x86_avx512_maskz_pternlog_d_256, // llvm.x86.avx512.maskz.pternlog.d.256
-+ x86_avx512_maskz_pternlog_d_512, // llvm.x86.avx512.maskz.pternlog.d.512
-+ x86_avx512_maskz_pternlog_q_128, // llvm.x86.avx512.maskz.pternlog.q.128
-+ x86_avx512_maskz_pternlog_q_256, // llvm.x86.avx512.maskz.pternlog.q.256
-+ x86_avx512_maskz_pternlog_q_512, // llvm.x86.avx512.maskz.pternlog.q.512
-+ x86_avx512_maskz_vfmadd_pd_128, // llvm.x86.avx512.maskz.vfmadd.pd.128
-+ x86_avx512_maskz_vfmadd_pd_256, // llvm.x86.avx512.maskz.vfmadd.pd.256
-+ x86_avx512_maskz_vfmadd_pd_512, // llvm.x86.avx512.maskz.vfmadd.pd.512
-+ x86_avx512_maskz_vfmadd_ps_128, // llvm.x86.avx512.maskz.vfmadd.ps.128
-+ x86_avx512_maskz_vfmadd_ps_256, // llvm.x86.avx512.maskz.vfmadd.ps.256
-+ x86_avx512_maskz_vfmadd_ps_512, // llvm.x86.avx512.maskz.vfmadd.ps.512
-+ x86_avx512_maskz_vfmadd_sd, // llvm.x86.avx512.maskz.vfmadd.sd
-+ x86_avx512_maskz_vfmadd_ss, // llvm.x86.avx512.maskz.vfmadd.ss
-+ x86_avx512_maskz_vfmaddsub_pd_128, // llvm.x86.avx512.maskz.vfmaddsub.pd.128
-+ x86_avx512_maskz_vfmaddsub_pd_256, // llvm.x86.avx512.maskz.vfmaddsub.pd.256
-+ x86_avx512_maskz_vfmaddsub_pd_512, // llvm.x86.avx512.maskz.vfmaddsub.pd.512
-+ x86_avx512_maskz_vfmaddsub_ps_128, // llvm.x86.avx512.maskz.vfmaddsub.ps.128
-+ x86_avx512_maskz_vfmaddsub_ps_256, // llvm.x86.avx512.maskz.vfmaddsub.ps.256
-+ x86_avx512_maskz_vfmaddsub_ps_512, // llvm.x86.avx512.maskz.vfmaddsub.ps.512
-+ x86_avx512_maskz_vpermt2var_d_128, // llvm.x86.avx512.maskz.vpermt2var.d.128
-+ x86_avx512_maskz_vpermt2var_d_256, // llvm.x86.avx512.maskz.vpermt2var.d.256
-+ x86_avx512_maskz_vpermt2var_d_512, // llvm.x86.avx512.maskz.vpermt2var.d.512
-+ x86_avx512_maskz_vpermt2var_hi_128, // llvm.x86.avx512.maskz.vpermt2var.hi.128
-+ x86_avx512_maskz_vpermt2var_hi_256, // llvm.x86.avx512.maskz.vpermt2var.hi.256
-+ x86_avx512_maskz_vpermt2var_hi_512, // llvm.x86.avx512.maskz.vpermt2var.hi.512
-+ x86_avx512_maskz_vpermt2var_pd_128, // llvm.x86.avx512.maskz.vpermt2var.pd.128
-+ x86_avx512_maskz_vpermt2var_pd_256, // llvm.x86.avx512.maskz.vpermt2var.pd.256
-+ x86_avx512_maskz_vpermt2var_pd_512, // llvm.x86.avx512.maskz.vpermt2var.pd.512
-+ x86_avx512_maskz_vpermt2var_ps_128, // llvm.x86.avx512.maskz.vpermt2var.ps.128
-+ x86_avx512_maskz_vpermt2var_ps_256, // llvm.x86.avx512.maskz.vpermt2var.ps.256
-+ x86_avx512_maskz_vpermt2var_ps_512, // llvm.x86.avx512.maskz.vpermt2var.ps.512
-+ x86_avx512_maskz_vpermt2var_q_128, // llvm.x86.avx512.maskz.vpermt2var.q.128
-+ x86_avx512_maskz_vpermt2var_q_256, // llvm.x86.avx512.maskz.vpermt2var.q.256
-+ x86_avx512_maskz_vpermt2var_q_512, // llvm.x86.avx512.maskz.vpermt2var.q.512
-+ x86_avx512_maskz_vpermt2var_qi_128, // llvm.x86.avx512.maskz.vpermt2var.qi.128
-+ x86_avx512_maskz_vpermt2var_qi_256, // llvm.x86.avx512.maskz.vpermt2var.qi.256
-+ x86_avx512_maskz_vpermt2var_qi_512, // llvm.x86.avx512.maskz.vpermt2var.qi.512
-+ x86_avx512_maskz_vpmadd52h_uq_128, // llvm.x86.avx512.maskz.vpmadd52h.uq.128
-+ x86_avx512_maskz_vpmadd52h_uq_256, // llvm.x86.avx512.maskz.vpmadd52h.uq.256
-+ x86_avx512_maskz_vpmadd52h_uq_512, // llvm.x86.avx512.maskz.vpmadd52h.uq.512
-+ x86_avx512_maskz_vpmadd52l_uq_128, // llvm.x86.avx512.maskz.vpmadd52l.uq.128
-+ x86_avx512_maskz_vpmadd52l_uq_256, // llvm.x86.avx512.maskz.vpmadd52l.uq.256
-+ x86_avx512_maskz_vpmadd52l_uq_512, // llvm.x86.avx512.maskz.vpmadd52l.uq.512
-+ x86_avx512_movntdqa, // llvm.x86.avx512.movntdqa
-+ x86_avx512_psad_bw_512, // llvm.x86.avx512.psad.bw.512
-+ x86_avx512_pshuf_b_512, // llvm.x86.avx512.pshuf.b.512
-+ x86_avx512_psll_d_512, // llvm.x86.avx512.psll.d.512
-+ x86_avx512_psll_q_512, // llvm.x86.avx512.psll.q.512
-+ x86_avx512_psll_w_512, // llvm.x86.avx512.psll.w.512
-+ x86_avx512_pslli_d_512, // llvm.x86.avx512.pslli.d.512
-+ x86_avx512_pslli_q_512, // llvm.x86.avx512.pslli.q.512
-+ x86_avx512_pslli_w_512, // llvm.x86.avx512.pslli.w.512
-+ x86_avx512_psllv_d_512, // llvm.x86.avx512.psllv.d.512
-+ x86_avx512_psllv_q_512, // llvm.x86.avx512.psllv.q.512
-+ x86_avx512_psllv_w_128, // llvm.x86.avx512.psllv.w.128
-+ x86_avx512_psllv_w_256, // llvm.x86.avx512.psllv.w.256
-+ x86_avx512_psllv_w_512, // llvm.x86.avx512.psllv.w.512
-+ x86_avx512_psra_d_512, // llvm.x86.avx512.psra.d.512
-+ x86_avx512_psra_q_128, // llvm.x86.avx512.psra.q.128
-+ x86_avx512_psra_q_256, // llvm.x86.avx512.psra.q.256
-+ x86_avx512_psra_q_512, // llvm.x86.avx512.psra.q.512
-+ x86_avx512_psra_w_512, // llvm.x86.avx512.psra.w.512
-+ x86_avx512_psrai_d_512, // llvm.x86.avx512.psrai.d.512
-+ x86_avx512_psrai_q_128, // llvm.x86.avx512.psrai.q.128
-+ x86_avx512_psrai_q_256, // llvm.x86.avx512.psrai.q.256
-+ x86_avx512_psrai_q_512, // llvm.x86.avx512.psrai.q.512
-+ x86_avx512_psrai_w_512, // llvm.x86.avx512.psrai.w.512
-+ x86_avx512_psrav_d_512, // llvm.x86.avx512.psrav.d.512
-+ x86_avx512_psrav_q_128, // llvm.x86.avx512.psrav.q.128
-+ x86_avx512_psrav_q_256, // llvm.x86.avx512.psrav.q.256
-+ x86_avx512_psrav_q_512, // llvm.x86.avx512.psrav.q.512
-+ x86_avx512_psrav_w_128, // llvm.x86.avx512.psrav.w.128
-+ x86_avx512_psrav_w_256, // llvm.x86.avx512.psrav.w.256
-+ x86_avx512_psrav_w_512, // llvm.x86.avx512.psrav.w.512
-+ x86_avx512_psrl_d_512, // llvm.x86.avx512.psrl.d.512
-+ x86_avx512_psrl_q_512, // llvm.x86.avx512.psrl.q.512
-+ x86_avx512_psrl_w_512, // llvm.x86.avx512.psrl.w.512
-+ x86_avx512_psrli_d_512, // llvm.x86.avx512.psrli.d.512
-+ x86_avx512_psrli_q_512, // llvm.x86.avx512.psrli.q.512
-+ x86_avx512_psrli_w_512, // llvm.x86.avx512.psrli.w.512
-+ x86_avx512_psrlv_d_512, // llvm.x86.avx512.psrlv.d.512
-+ x86_avx512_psrlv_q_512, // llvm.x86.avx512.psrlv.q.512
-+ x86_avx512_psrlv_w_128, // llvm.x86.avx512.psrlv.w.128
-+ x86_avx512_psrlv_w_256, // llvm.x86.avx512.psrlv.w.256
-+ x86_avx512_psrlv_w_512, // llvm.x86.avx512.psrlv.w.512
-+ x86_avx512_ptestm_b_128, // llvm.x86.avx512.ptestm.b.128
-+ x86_avx512_ptestm_b_256, // llvm.x86.avx512.ptestm.b.256
-+ x86_avx512_ptestm_b_512, // llvm.x86.avx512.ptestm.b.512
-+ x86_avx512_ptestm_d_128, // llvm.x86.avx512.ptestm.d.128
-+ x86_avx512_ptestm_d_256, // llvm.x86.avx512.ptestm.d.256
-+ x86_avx512_ptestm_d_512, // llvm.x86.avx512.ptestm.d.512
-+ x86_avx512_ptestm_q_128, // llvm.x86.avx512.ptestm.q.128
-+ x86_avx512_ptestm_q_256, // llvm.x86.avx512.ptestm.q.256
-+ x86_avx512_ptestm_q_512, // llvm.x86.avx512.ptestm.q.512
-+ x86_avx512_ptestm_w_128, // llvm.x86.avx512.ptestm.w.128
-+ x86_avx512_ptestm_w_256, // llvm.x86.avx512.ptestm.w.256
-+ x86_avx512_ptestm_w_512, // llvm.x86.avx512.ptestm.w.512
-+ x86_avx512_ptestnm_b_128, // llvm.x86.avx512.ptestnm.b.128
-+ x86_avx512_ptestnm_b_256, // llvm.x86.avx512.ptestnm.b.256
-+ x86_avx512_ptestnm_b_512, // llvm.x86.avx512.ptestnm.b.512
-+ x86_avx512_ptestnm_d_128, // llvm.x86.avx512.ptestnm.d.128
-+ x86_avx512_ptestnm_d_256, // llvm.x86.avx512.ptestnm.d.256
-+ x86_avx512_ptestnm_d_512, // llvm.x86.avx512.ptestnm.d.512
-+ x86_avx512_ptestnm_q_128, // llvm.x86.avx512.ptestnm.q.128
-+ x86_avx512_ptestnm_q_256, // llvm.x86.avx512.ptestnm.q.256
-+ x86_avx512_ptestnm_q_512, // llvm.x86.avx512.ptestnm.q.512
-+ x86_avx512_ptestnm_w_128, // llvm.x86.avx512.ptestnm.w.128
-+ x86_avx512_ptestnm_w_256, // llvm.x86.avx512.ptestnm.w.256
-+ x86_avx512_ptestnm_w_512, // llvm.x86.avx512.ptestnm.w.512
-+ x86_avx512_rcp14_pd_128, // llvm.x86.avx512.rcp14.pd.128
-+ x86_avx512_rcp14_pd_256, // llvm.x86.avx512.rcp14.pd.256
-+ x86_avx512_rcp14_pd_512, // llvm.x86.avx512.rcp14.pd.512
-+ x86_avx512_rcp14_ps_128, // llvm.x86.avx512.rcp14.ps.128
-+ x86_avx512_rcp14_ps_256, // llvm.x86.avx512.rcp14.ps.256
-+ x86_avx512_rcp14_ps_512, // llvm.x86.avx512.rcp14.ps.512
-+ x86_avx512_rcp14_sd, // llvm.x86.avx512.rcp14.sd
-+ x86_avx512_rcp14_ss, // llvm.x86.avx512.rcp14.ss
-+ x86_avx512_rcp28_pd, // llvm.x86.avx512.rcp28.pd
-+ x86_avx512_rcp28_ps, // llvm.x86.avx512.rcp28.ps
-+ x86_avx512_rcp28_sd, // llvm.x86.avx512.rcp28.sd
-+ x86_avx512_rcp28_ss, // llvm.x86.avx512.rcp28.ss
-+ x86_avx512_rsqrt14_pd_128, // llvm.x86.avx512.rsqrt14.pd.128
-+ x86_avx512_rsqrt14_pd_256, // llvm.x86.avx512.rsqrt14.pd.256
-+ x86_avx512_rsqrt14_pd_512, // llvm.x86.avx512.rsqrt14.pd.512
-+ x86_avx512_rsqrt14_ps_128, // llvm.x86.avx512.rsqrt14.ps.128
-+ x86_avx512_rsqrt14_ps_256, // llvm.x86.avx512.rsqrt14.ps.256
-+ x86_avx512_rsqrt14_ps_512, // llvm.x86.avx512.rsqrt14.ps.512
-+ x86_avx512_rsqrt14_sd, // llvm.x86.avx512.rsqrt14.sd
-+ x86_avx512_rsqrt14_ss, // llvm.x86.avx512.rsqrt14.ss
-+ x86_avx512_rsqrt28_pd, // llvm.x86.avx512.rsqrt28.pd
-+ x86_avx512_rsqrt28_ps, // llvm.x86.avx512.rsqrt28.ps
-+ x86_avx512_rsqrt28_sd, // llvm.x86.avx512.rsqrt28.sd
-+ x86_avx512_rsqrt28_ss, // llvm.x86.avx512.rsqrt28.ss
-+ x86_avx512_scatter_dpd_512, // llvm.x86.avx512.scatter.dpd.512
-+ x86_avx512_scatter_dpi_512, // llvm.x86.avx512.scatter.dpi.512
-+ x86_avx512_scatter_dpq_512, // llvm.x86.avx512.scatter.dpq.512
-+ x86_avx512_scatter_dps_512, // llvm.x86.avx512.scatter.dps.512
-+ x86_avx512_scatter_qpd_512, // llvm.x86.avx512.scatter.qpd.512
-+ x86_avx512_scatter_qpi_512, // llvm.x86.avx512.scatter.qpi.512
-+ x86_avx512_scatter_qpq_512, // llvm.x86.avx512.scatter.qpq.512
-+ x86_avx512_scatter_qps_512, // llvm.x86.avx512.scatter.qps.512
-+ x86_avx512_scatterdiv2_df, // llvm.x86.avx512.scatterdiv2.df
-+ x86_avx512_scatterdiv2_di, // llvm.x86.avx512.scatterdiv2.di
-+ x86_avx512_scatterdiv4_df, // llvm.x86.avx512.scatterdiv4.df
-+ x86_avx512_scatterdiv4_di, // llvm.x86.avx512.scatterdiv4.di
-+ x86_avx512_scatterdiv4_sf, // llvm.x86.avx512.scatterdiv4.sf
-+ x86_avx512_scatterdiv4_si, // llvm.x86.avx512.scatterdiv4.si
-+ x86_avx512_scatterdiv8_sf, // llvm.x86.avx512.scatterdiv8.sf
-+ x86_avx512_scatterdiv8_si, // llvm.x86.avx512.scatterdiv8.si
-+ x86_avx512_scatterpf_dpd_512, // llvm.x86.avx512.scatterpf.dpd.512
-+ x86_avx512_scatterpf_dps_512, // llvm.x86.avx512.scatterpf.dps.512
-+ x86_avx512_scatterpf_qpd_512, // llvm.x86.avx512.scatterpf.qpd.512
-+ x86_avx512_scatterpf_qps_512, // llvm.x86.avx512.scatterpf.qps.512
-+ x86_avx512_scattersiv2_df, // llvm.x86.avx512.scattersiv2.df
-+ x86_avx512_scattersiv2_di, // llvm.x86.avx512.scattersiv2.di
-+ x86_avx512_scattersiv4_df, // llvm.x86.avx512.scattersiv4.df
-+ x86_avx512_scattersiv4_di, // llvm.x86.avx512.scattersiv4.di
-+ x86_avx512_scattersiv4_sf, // llvm.x86.avx512.scattersiv4.sf
-+ x86_avx512_scattersiv4_si, // llvm.x86.avx512.scattersiv4.si
-+ x86_avx512_scattersiv8_sf, // llvm.x86.avx512.scattersiv8.sf
-+ x86_avx512_scattersiv8_si, // llvm.x86.avx512.scattersiv8.si
-+ x86_avx512_vbroadcast_sd_512, // llvm.x86.avx512.vbroadcast.sd.512
-+ x86_avx512_vbroadcast_ss_512, // llvm.x86.avx512.vbroadcast.ss.512
-+ x86_avx512_vcomi_sd, // llvm.x86.avx512.vcomi.sd
-+ x86_avx512_vcomi_ss, // llvm.x86.avx512.vcomi.ss
-+ x86_avx512_vcvtsd2si32, // llvm.x86.avx512.vcvtsd2si32
-+ x86_avx512_vcvtsd2si64, // llvm.x86.avx512.vcvtsd2si64
-+ x86_avx512_vcvtsd2usi32, // llvm.x86.avx512.vcvtsd2usi32
-+ x86_avx512_vcvtsd2usi64, // llvm.x86.avx512.vcvtsd2usi64
-+ x86_avx512_vcvtss2si32, // llvm.x86.avx512.vcvtss2si32
-+ x86_avx512_vcvtss2si64, // llvm.x86.avx512.vcvtss2si64
-+ x86_avx512_vcvtss2usi32, // llvm.x86.avx512.vcvtss2usi32
-+ x86_avx512_vcvtss2usi64, // llvm.x86.avx512.vcvtss2usi64
-+ x86_avx512_vpermilvar_pd_512, // llvm.x86.avx512.vpermilvar.pd.512
-+ x86_avx512_vpermilvar_ps_512, // llvm.x86.avx512.vpermilvar.ps.512
-+ x86_bmi_bextr_32, // llvm.x86.bmi.bextr.32
-+ x86_bmi_bextr_64, // llvm.x86.bmi.bextr.64
-+ x86_bmi_bzhi_32, // llvm.x86.bmi.bzhi.32
-+ x86_bmi_bzhi_64, // llvm.x86.bmi.bzhi.64
-+ x86_bmi_pdep_32, // llvm.x86.bmi.pdep.32
-+ x86_bmi_pdep_64, // llvm.x86.bmi.pdep.64
-+ x86_bmi_pext_32, // llvm.x86.bmi.pext.32
-+ x86_bmi_pext_64, // llvm.x86.bmi.pext.64
-+ x86_clflushopt, // llvm.x86.clflushopt
-+ x86_flags_read_u32, // llvm.x86.flags.read.u32
-+ x86_flags_read_u64, // llvm.x86.flags.read.u64
-+ x86_flags_write_u32, // llvm.x86.flags.write.u32
-+ x86_flags_write_u64, // llvm.x86.flags.write.u64
-+ x86_fma_vfmadd_pd, // llvm.x86.fma.vfmadd.pd
-+ x86_fma_vfmadd_pd_256, // llvm.x86.fma.vfmadd.pd.256
-+ x86_fma_vfmadd_ps, // llvm.x86.fma.vfmadd.ps
-+ x86_fma_vfmadd_ps_256, // llvm.x86.fma.vfmadd.ps.256
-+ x86_fma_vfmadd_sd, // llvm.x86.fma.vfmadd.sd
-+ x86_fma_vfmadd_ss, // llvm.x86.fma.vfmadd.ss
-+ x86_fma_vfmaddsub_pd, // llvm.x86.fma.vfmaddsub.pd
-+ x86_fma_vfmaddsub_pd_256, // llvm.x86.fma.vfmaddsub.pd.256
-+ x86_fma_vfmaddsub_ps, // llvm.x86.fma.vfmaddsub.ps
-+ x86_fma_vfmaddsub_ps_256, // llvm.x86.fma.vfmaddsub.ps.256
-+ x86_fma_vfmsub_pd, // llvm.x86.fma.vfmsub.pd
-+ x86_fma_vfmsub_pd_256, // llvm.x86.fma.vfmsub.pd.256
-+ x86_fma_vfmsub_ps, // llvm.x86.fma.vfmsub.ps
-+ x86_fma_vfmsub_ps_256, // llvm.x86.fma.vfmsub.ps.256
-+ x86_fma_vfmsub_sd, // llvm.x86.fma.vfmsub.sd
-+ x86_fma_vfmsub_ss, // llvm.x86.fma.vfmsub.ss
-+ x86_fma_vfmsubadd_pd, // llvm.x86.fma.vfmsubadd.pd
-+ x86_fma_vfmsubadd_pd_256, // llvm.x86.fma.vfmsubadd.pd.256
-+ x86_fma_vfmsubadd_ps, // llvm.x86.fma.vfmsubadd.ps
-+ x86_fma_vfmsubadd_ps_256, // llvm.x86.fma.vfmsubadd.ps.256
-+ x86_fma_vfnmadd_pd, // llvm.x86.fma.vfnmadd.pd
-+ x86_fma_vfnmadd_pd_256, // llvm.x86.fma.vfnmadd.pd.256
-+ x86_fma_vfnmadd_ps, // llvm.x86.fma.vfnmadd.ps
-+ x86_fma_vfnmadd_ps_256, // llvm.x86.fma.vfnmadd.ps.256
-+ x86_fma_vfnmadd_sd, // llvm.x86.fma.vfnmadd.sd
-+ x86_fma_vfnmadd_ss, // llvm.x86.fma.vfnmadd.ss
-+ x86_fma_vfnmsub_pd, // llvm.x86.fma.vfnmsub.pd
-+ x86_fma_vfnmsub_pd_256, // llvm.x86.fma.vfnmsub.pd.256
-+ x86_fma_vfnmsub_ps, // llvm.x86.fma.vfnmsub.ps
-+ x86_fma_vfnmsub_ps_256, // llvm.x86.fma.vfnmsub.ps.256
-+ x86_fma_vfnmsub_sd, // llvm.x86.fma.vfnmsub.sd
-+ x86_fma_vfnmsub_ss, // llvm.x86.fma.vfnmsub.ss
-+ x86_fxrstor, // llvm.x86.fxrstor
-+ x86_fxrstor64, // llvm.x86.fxrstor64
-+ x86_fxsave, // llvm.x86.fxsave
-+ x86_fxsave64, // llvm.x86.fxsave64
-+ x86_int, // llvm.x86.int
-+ x86_mmx_emms, // llvm.x86.mmx.emms
-+ x86_mmx_femms, // llvm.x86.mmx.femms
-+ x86_mmx_maskmovq, // llvm.x86.mmx.maskmovq
-+ x86_mmx_movnt_dq, // llvm.x86.mmx.movnt.dq
-+ x86_mmx_packssdw, // llvm.x86.mmx.packssdw
-+ x86_mmx_packsswb, // llvm.x86.mmx.packsswb
-+ x86_mmx_packuswb, // llvm.x86.mmx.packuswb
-+ x86_mmx_padd_b, // llvm.x86.mmx.padd.b
-+ x86_mmx_padd_d, // llvm.x86.mmx.padd.d
-+ x86_mmx_padd_q, // llvm.x86.mmx.padd.q
-+ x86_mmx_padd_w, // llvm.x86.mmx.padd.w
-+ x86_mmx_padds_b, // llvm.x86.mmx.padds.b
-+ x86_mmx_padds_w, // llvm.x86.mmx.padds.w
-+ x86_mmx_paddus_b, // llvm.x86.mmx.paddus.b
-+ x86_mmx_paddus_w, // llvm.x86.mmx.paddus.w
-+ x86_mmx_palignr_b, // llvm.x86.mmx.palignr.b
-+ x86_mmx_pand, // llvm.x86.mmx.pand
-+ x86_mmx_pandn, // llvm.x86.mmx.pandn
-+ x86_mmx_pavg_b, // llvm.x86.mmx.pavg.b
-+ x86_mmx_pavg_w, // llvm.x86.mmx.pavg.w
-+ x86_mmx_pcmpeq_b, // llvm.x86.mmx.pcmpeq.b
-+ x86_mmx_pcmpeq_d, // llvm.x86.mmx.pcmpeq.d
-+ x86_mmx_pcmpeq_w, // llvm.x86.mmx.pcmpeq.w
-+ x86_mmx_pcmpgt_b, // llvm.x86.mmx.pcmpgt.b
-+ x86_mmx_pcmpgt_d, // llvm.x86.mmx.pcmpgt.d
-+ x86_mmx_pcmpgt_w, // llvm.x86.mmx.pcmpgt.w
-+ x86_mmx_pextr_w, // llvm.x86.mmx.pextr.w
-+ x86_mmx_pinsr_w, // llvm.x86.mmx.pinsr.w
-+ x86_mmx_pmadd_wd, // llvm.x86.mmx.pmadd.wd
-+ x86_mmx_pmaxs_w, // llvm.x86.mmx.pmaxs.w
-+ x86_mmx_pmaxu_b, // llvm.x86.mmx.pmaxu.b
-+ x86_mmx_pmins_w, // llvm.x86.mmx.pmins.w
-+ x86_mmx_pminu_b, // llvm.x86.mmx.pminu.b
-+ x86_mmx_pmovmskb, // llvm.x86.mmx.pmovmskb
-+ x86_mmx_pmulh_w, // llvm.x86.mmx.pmulh.w
-+ x86_mmx_pmulhu_w, // llvm.x86.mmx.pmulhu.w
-+ x86_mmx_pmull_w, // llvm.x86.mmx.pmull.w
-+ x86_mmx_pmulu_dq, // llvm.x86.mmx.pmulu.dq
-+ x86_mmx_por, // llvm.x86.mmx.por
-+ x86_mmx_psad_bw, // llvm.x86.mmx.psad.bw
-+ x86_mmx_psll_d, // llvm.x86.mmx.psll.d
-+ x86_mmx_psll_q, // llvm.x86.mmx.psll.q
-+ x86_mmx_psll_w, // llvm.x86.mmx.psll.w
-+ x86_mmx_pslli_d, // llvm.x86.mmx.pslli.d
-+ x86_mmx_pslli_q, // llvm.x86.mmx.pslli.q
-+ x86_mmx_pslli_w, // llvm.x86.mmx.pslli.w
-+ x86_mmx_psra_d, // llvm.x86.mmx.psra.d
-+ x86_mmx_psra_w, // llvm.x86.mmx.psra.w
-+ x86_mmx_psrai_d, // llvm.x86.mmx.psrai.d
-+ x86_mmx_psrai_w, // llvm.x86.mmx.psrai.w
-+ x86_mmx_psrl_d, // llvm.x86.mmx.psrl.d
-+ x86_mmx_psrl_q, // llvm.x86.mmx.psrl.q
-+ x86_mmx_psrl_w, // llvm.x86.mmx.psrl.w
-+ x86_mmx_psrli_d, // llvm.x86.mmx.psrli.d
-+ x86_mmx_psrli_q, // llvm.x86.mmx.psrli.q
-+ x86_mmx_psrli_w, // llvm.x86.mmx.psrli.w
-+ x86_mmx_psub_b, // llvm.x86.mmx.psub.b
-+ x86_mmx_psub_d, // llvm.x86.mmx.psub.d
-+ x86_mmx_psub_q, // llvm.x86.mmx.psub.q
-+ x86_mmx_psub_w, // llvm.x86.mmx.psub.w
-+ x86_mmx_psubs_b, // llvm.x86.mmx.psubs.b
-+ x86_mmx_psubs_w, // llvm.x86.mmx.psubs.w
-+ x86_mmx_psubus_b, // llvm.x86.mmx.psubus.b
-+ x86_mmx_psubus_w, // llvm.x86.mmx.psubus.w
-+ x86_mmx_punpckhbw, // llvm.x86.mmx.punpckhbw
-+ x86_mmx_punpckhdq, // llvm.x86.mmx.punpckhdq
-+ x86_mmx_punpckhwd, // llvm.x86.mmx.punpckhwd
-+ x86_mmx_punpcklbw, // llvm.x86.mmx.punpcklbw
-+ x86_mmx_punpckldq, // llvm.x86.mmx.punpckldq
-+ x86_mmx_punpcklwd, // llvm.x86.mmx.punpcklwd
-+ x86_mmx_pxor, // llvm.x86.mmx.pxor
-+ x86_monitorx, // llvm.x86.monitorx
-+ x86_mwaitx, // llvm.x86.mwaitx
-+ x86_pclmulqdq, // llvm.x86.pclmulqdq
-+ x86_rdfsbase_32, // llvm.x86.rdfsbase.32
-+ x86_rdfsbase_64, // llvm.x86.rdfsbase.64
-+ x86_rdgsbase_32, // llvm.x86.rdgsbase.32
-+ x86_rdgsbase_64, // llvm.x86.rdgsbase.64
-+ x86_rdpkru, // llvm.x86.rdpkru
-+ x86_rdpmc, // llvm.x86.rdpmc
-+ x86_rdrand_16, // llvm.x86.rdrand.16
-+ x86_rdrand_32, // llvm.x86.rdrand.32
-+ x86_rdrand_64, // llvm.x86.rdrand.64
-+ x86_rdseed_16, // llvm.x86.rdseed.16
-+ x86_rdseed_32, // llvm.x86.rdseed.32
-+ x86_rdseed_64, // llvm.x86.rdseed.64
-+ x86_rdtsc, // llvm.x86.rdtsc
-+ x86_rdtscp, // llvm.x86.rdtscp
-+ x86_seh_ehguard, // llvm.x86.seh.ehguard
-+ x86_seh_ehregnode, // llvm.x86.seh.ehregnode
-+ x86_seh_lsda, // llvm.x86.seh.lsda
-+ x86_seh_recoverfp, // llvm.x86.seh.recoverfp
-+ x86_sha1msg1, // llvm.x86.sha1msg1
-+ x86_sha1msg2, // llvm.x86.sha1msg2
-+ x86_sha1nexte, // llvm.x86.sha1nexte
-+ x86_sha1rnds4, // llvm.x86.sha1rnds4
-+ x86_sha256msg1, // llvm.x86.sha256msg1
-+ x86_sha256msg2, // llvm.x86.sha256msg2
-+ x86_sha256rnds2, // llvm.x86.sha256rnds2
-+ x86_sse_cmp_ps, // llvm.x86.sse.cmp.ps
-+ x86_sse_cmp_ss, // llvm.x86.sse.cmp.ss
-+ x86_sse_comieq_ss, // llvm.x86.sse.comieq.ss
-+ x86_sse_comige_ss, // llvm.x86.sse.comige.ss
-+ x86_sse_comigt_ss, // llvm.x86.sse.comigt.ss
-+ x86_sse_comile_ss, // llvm.x86.sse.comile.ss
-+ x86_sse_comilt_ss, // llvm.x86.sse.comilt.ss
-+ x86_sse_comineq_ss, // llvm.x86.sse.comineq.ss
-+ x86_sse_cvtpd2pi, // llvm.x86.sse.cvtpd2pi
-+ x86_sse_cvtpi2pd, // llvm.x86.sse.cvtpi2pd
-+ x86_sse_cvtpi2ps, // llvm.x86.sse.cvtpi2ps
-+ x86_sse_cvtps2pi, // llvm.x86.sse.cvtps2pi
-+ x86_sse_cvtsi2ss, // llvm.x86.sse.cvtsi2ss
-+ x86_sse_cvtsi642ss, // llvm.x86.sse.cvtsi642ss
-+ x86_sse_cvtss2si, // llvm.x86.sse.cvtss2si
-+ x86_sse_cvtss2si64, // llvm.x86.sse.cvtss2si64
-+ x86_sse_cvttpd2pi, // llvm.x86.sse.cvttpd2pi
-+ x86_sse_cvttps2pi, // llvm.x86.sse.cvttps2pi
-+ x86_sse_cvttss2si, // llvm.x86.sse.cvttss2si
-+ x86_sse_cvttss2si64, // llvm.x86.sse.cvttss2si64
-+ x86_sse_ldmxcsr, // llvm.x86.sse.ldmxcsr
-+ x86_sse_max_ps, // llvm.x86.sse.max.ps
-+ x86_sse_max_ss, // llvm.x86.sse.max.ss
-+ x86_sse_min_ps, // llvm.x86.sse.min.ps
-+ x86_sse_min_ss, // llvm.x86.sse.min.ss
-+ x86_sse_movmsk_ps, // llvm.x86.sse.movmsk.ps
-+ x86_sse_pshuf_w, // llvm.x86.sse.pshuf.w
-+ x86_sse_rcp_ps, // llvm.x86.sse.rcp.ps
-+ x86_sse_rcp_ss, // llvm.x86.sse.rcp.ss
-+ x86_sse_rsqrt_ps, // llvm.x86.sse.rsqrt.ps
-+ x86_sse_rsqrt_ss, // llvm.x86.sse.rsqrt.ss
-+ x86_sse_sfence, // llvm.x86.sse.sfence
-+ x86_sse_sqrt_ps, // llvm.x86.sse.sqrt.ps
-+ x86_sse_sqrt_ss, // llvm.x86.sse.sqrt.ss
-+ x86_sse_stmxcsr, // llvm.x86.sse.stmxcsr
-+ x86_sse_ucomieq_ss, // llvm.x86.sse.ucomieq.ss
-+ x86_sse_ucomige_ss, // llvm.x86.sse.ucomige.ss
-+ x86_sse_ucomigt_ss, // llvm.x86.sse.ucomigt.ss
-+ x86_sse_ucomile_ss, // llvm.x86.sse.ucomile.ss
-+ x86_sse_ucomilt_ss, // llvm.x86.sse.ucomilt.ss
-+ x86_sse_ucomineq_ss, // llvm.x86.sse.ucomineq.ss
-+ x86_sse2_clflush, // llvm.x86.sse2.clflush
-+ x86_sse2_cmp_pd, // llvm.x86.sse2.cmp.pd
-+ x86_sse2_cmp_sd, // llvm.x86.sse2.cmp.sd
-+ x86_sse2_comieq_sd, // llvm.x86.sse2.comieq.sd
-+ x86_sse2_comige_sd, // llvm.x86.sse2.comige.sd
-+ x86_sse2_comigt_sd, // llvm.x86.sse2.comigt.sd
-+ x86_sse2_comile_sd, // llvm.x86.sse2.comile.sd
-+ x86_sse2_comilt_sd, // llvm.x86.sse2.comilt.sd
-+ x86_sse2_comineq_sd, // llvm.x86.sse2.comineq.sd
-+ x86_sse2_cvtdq2ps, // llvm.x86.sse2.cvtdq2ps
-+ x86_sse2_cvtpd2dq, // llvm.x86.sse2.cvtpd2dq
-+ x86_sse2_cvtpd2ps, // llvm.x86.sse2.cvtpd2ps
-+ x86_sse2_cvtps2dq, // llvm.x86.sse2.cvtps2dq
-+ x86_sse2_cvtsd2si, // llvm.x86.sse2.cvtsd2si
-+ x86_sse2_cvtsd2si64, // llvm.x86.sse2.cvtsd2si64
-+ x86_sse2_cvtsd2ss, // llvm.x86.sse2.cvtsd2ss
-+ x86_sse2_cvtsi2sd, // llvm.x86.sse2.cvtsi2sd
-+ x86_sse2_cvtsi642sd, // llvm.x86.sse2.cvtsi642sd
-+ x86_sse2_cvtss2sd, // llvm.x86.sse2.cvtss2sd
-+ x86_sse2_cvttpd2dq, // llvm.x86.sse2.cvttpd2dq
-+ x86_sse2_cvttps2dq, // llvm.x86.sse2.cvttps2dq
-+ x86_sse2_cvttsd2si, // llvm.x86.sse2.cvttsd2si
-+ x86_sse2_cvttsd2si64, // llvm.x86.sse2.cvttsd2si64
-+ x86_sse2_lfence, // llvm.x86.sse2.lfence
-+ x86_sse2_maskmov_dqu, // llvm.x86.sse2.maskmov.dqu
-+ x86_sse2_max_pd, // llvm.x86.sse2.max.pd
-+ x86_sse2_max_sd, // llvm.x86.sse2.max.sd
-+ x86_sse2_mfence, // llvm.x86.sse2.mfence
-+ x86_sse2_min_pd, // llvm.x86.sse2.min.pd
-+ x86_sse2_min_sd, // llvm.x86.sse2.min.sd
-+ x86_sse2_movmsk_pd, // llvm.x86.sse2.movmsk.pd
-+ x86_sse2_packssdw_128, // llvm.x86.sse2.packssdw.128
-+ x86_sse2_packsswb_128, // llvm.x86.sse2.packsswb.128
-+ x86_sse2_packuswb_128, // llvm.x86.sse2.packuswb.128
-+ x86_sse2_padds_b, // llvm.x86.sse2.padds.b
-+ x86_sse2_padds_w, // llvm.x86.sse2.padds.w
-+ x86_sse2_paddus_b, // llvm.x86.sse2.paddus.b
-+ x86_sse2_paddus_w, // llvm.x86.sse2.paddus.w
-+ x86_sse2_pause, // llvm.x86.sse2.pause
-+ x86_sse2_pavg_b, // llvm.x86.sse2.pavg.b
-+ x86_sse2_pavg_w, // llvm.x86.sse2.pavg.w
-+ x86_sse2_pmadd_wd, // llvm.x86.sse2.pmadd.wd
-+ x86_sse2_pmovmskb_128, // llvm.x86.sse2.pmovmskb.128
-+ x86_sse2_pmulh_w, // llvm.x86.sse2.pmulh.w
-+ x86_sse2_pmulhu_w, // llvm.x86.sse2.pmulhu.w
-+ x86_sse2_pmulu_dq, // llvm.x86.sse2.pmulu.dq
-+ x86_sse2_psad_bw, // llvm.x86.sse2.psad.bw
-+ x86_sse2_psll_d, // llvm.x86.sse2.psll.d
-+ x86_sse2_psll_q, // llvm.x86.sse2.psll.q
-+ x86_sse2_psll_w, // llvm.x86.sse2.psll.w
-+ x86_sse2_pslli_d, // llvm.x86.sse2.pslli.d
-+ x86_sse2_pslli_q, // llvm.x86.sse2.pslli.q
-+ x86_sse2_pslli_w, // llvm.x86.sse2.pslli.w
-+ x86_sse2_psra_d, // llvm.x86.sse2.psra.d
-+ x86_sse2_psra_w, // llvm.x86.sse2.psra.w
-+ x86_sse2_psrai_d, // llvm.x86.sse2.psrai.d
-+ x86_sse2_psrai_w, // llvm.x86.sse2.psrai.w
-+ x86_sse2_psrl_d, // llvm.x86.sse2.psrl.d
-+ x86_sse2_psrl_q, // llvm.x86.sse2.psrl.q
-+ x86_sse2_psrl_w, // llvm.x86.sse2.psrl.w
-+ x86_sse2_psrli_d, // llvm.x86.sse2.psrli.d
-+ x86_sse2_psrli_q, // llvm.x86.sse2.psrli.q
-+ x86_sse2_psrli_w, // llvm.x86.sse2.psrli.w
-+ x86_sse2_psubs_b, // llvm.x86.sse2.psubs.b
-+ x86_sse2_psubs_w, // llvm.x86.sse2.psubs.w
-+ x86_sse2_psubus_b, // llvm.x86.sse2.psubus.b
-+ x86_sse2_psubus_w, // llvm.x86.sse2.psubus.w
-+ x86_sse2_sqrt_pd, // llvm.x86.sse2.sqrt.pd
-+ x86_sse2_sqrt_sd, // llvm.x86.sse2.sqrt.sd
-+ x86_sse2_ucomieq_sd, // llvm.x86.sse2.ucomieq.sd
-+ x86_sse2_ucomige_sd, // llvm.x86.sse2.ucomige.sd
-+ x86_sse2_ucomigt_sd, // llvm.x86.sse2.ucomigt.sd
-+ x86_sse2_ucomile_sd, // llvm.x86.sse2.ucomile.sd
-+ x86_sse2_ucomilt_sd, // llvm.x86.sse2.ucomilt.sd
-+ x86_sse2_ucomineq_sd, // llvm.x86.sse2.ucomineq.sd
-+ x86_sse3_addsub_pd, // llvm.x86.sse3.addsub.pd
-+ x86_sse3_addsub_ps, // llvm.x86.sse3.addsub.ps
-+ x86_sse3_hadd_pd, // llvm.x86.sse3.hadd.pd
-+ x86_sse3_hadd_ps, // llvm.x86.sse3.hadd.ps
-+ x86_sse3_hsub_pd, // llvm.x86.sse3.hsub.pd
-+ x86_sse3_hsub_ps, // llvm.x86.sse3.hsub.ps
-+ x86_sse3_ldu_dq, // llvm.x86.sse3.ldu.dq
-+ x86_sse3_monitor, // llvm.x86.sse3.monitor
-+ x86_sse3_mwait, // llvm.x86.sse3.mwait
-+ x86_sse41_blendvpd, // llvm.x86.sse41.blendvpd
-+ x86_sse41_blendvps, // llvm.x86.sse41.blendvps
-+ x86_sse41_dppd, // llvm.x86.sse41.dppd
-+ x86_sse41_dpps, // llvm.x86.sse41.dpps
-+ x86_sse41_insertps, // llvm.x86.sse41.insertps
-+ x86_sse41_movntdqa, // llvm.x86.sse41.movntdqa
-+ x86_sse41_mpsadbw, // llvm.x86.sse41.mpsadbw
-+ x86_sse41_packusdw, // llvm.x86.sse41.packusdw
-+ x86_sse41_pblendvb, // llvm.x86.sse41.pblendvb
-+ x86_sse41_phminposuw, // llvm.x86.sse41.phminposuw
-+ x86_sse41_pmuldq, // llvm.x86.sse41.pmuldq
-+ x86_sse41_ptestc, // llvm.x86.sse41.ptestc
-+ x86_sse41_ptestnzc, // llvm.x86.sse41.ptestnzc
-+ x86_sse41_ptestz, // llvm.x86.sse41.ptestz
-+ x86_sse41_round_pd, // llvm.x86.sse41.round.pd
-+ x86_sse41_round_ps, // llvm.x86.sse41.round.ps
-+ x86_sse41_round_sd, // llvm.x86.sse41.round.sd
-+ x86_sse41_round_ss, // llvm.x86.sse41.round.ss
-+ x86_sse42_crc32_32_16, // llvm.x86.sse42.crc32.32.16
-+ x86_sse42_crc32_32_32, // llvm.x86.sse42.crc32.32.32
-+ x86_sse42_crc32_32_8, // llvm.x86.sse42.crc32.32.8
-+ x86_sse42_crc32_64_64, // llvm.x86.sse42.crc32.64.64
-+ x86_sse42_pcmpestri128, // llvm.x86.sse42.pcmpestri128
-+ x86_sse42_pcmpestria128, // llvm.x86.sse42.pcmpestria128
-+ x86_sse42_pcmpestric128, // llvm.x86.sse42.pcmpestric128
-+ x86_sse42_pcmpestrio128, // llvm.x86.sse42.pcmpestrio128
-+ x86_sse42_pcmpestris128, // llvm.x86.sse42.pcmpestris128
-+ x86_sse42_pcmpestriz128, // llvm.x86.sse42.pcmpestriz128
-+ x86_sse42_pcmpestrm128, // llvm.x86.sse42.pcmpestrm128
-+ x86_sse42_pcmpistri128, // llvm.x86.sse42.pcmpistri128
-+ x86_sse42_pcmpistria128, // llvm.x86.sse42.pcmpistria128
-+ x86_sse42_pcmpistric128, // llvm.x86.sse42.pcmpistric128
-+ x86_sse42_pcmpistrio128, // llvm.x86.sse42.pcmpistrio128
-+ x86_sse42_pcmpistris128, // llvm.x86.sse42.pcmpistris128
-+ x86_sse42_pcmpistriz128, // llvm.x86.sse42.pcmpistriz128
-+ x86_sse42_pcmpistrm128, // llvm.x86.sse42.pcmpistrm128
-+ x86_sse4a_extrq, // llvm.x86.sse4a.extrq
-+ x86_sse4a_extrqi, // llvm.x86.sse4a.extrqi
-+ x86_sse4a_insertq, // llvm.x86.sse4a.insertq
-+ x86_sse4a_insertqi, // llvm.x86.sse4a.insertqi
-+ x86_ssse3_pabs_b, // llvm.x86.ssse3.pabs.b
-+ x86_ssse3_pabs_b_128, // llvm.x86.ssse3.pabs.b.128
-+ x86_ssse3_pabs_d, // llvm.x86.ssse3.pabs.d
-+ x86_ssse3_pabs_d_128, // llvm.x86.ssse3.pabs.d.128
-+ x86_ssse3_pabs_w, // llvm.x86.ssse3.pabs.w
-+ x86_ssse3_pabs_w_128, // llvm.x86.ssse3.pabs.w.128
-+ x86_ssse3_phadd_d, // llvm.x86.ssse3.phadd.d
-+ x86_ssse3_phadd_d_128, // llvm.x86.ssse3.phadd.d.128
-+ x86_ssse3_phadd_sw, // llvm.x86.ssse3.phadd.sw
-+ x86_ssse3_phadd_sw_128, // llvm.x86.ssse3.phadd.sw.128
-+ x86_ssse3_phadd_w, // llvm.x86.ssse3.phadd.w
-+ x86_ssse3_phadd_w_128, // llvm.x86.ssse3.phadd.w.128
-+ x86_ssse3_phsub_d, // llvm.x86.ssse3.phsub.d
-+ x86_ssse3_phsub_d_128, // llvm.x86.ssse3.phsub.d.128
-+ x86_ssse3_phsub_sw, // llvm.x86.ssse3.phsub.sw
-+ x86_ssse3_phsub_sw_128, // llvm.x86.ssse3.phsub.sw.128
-+ x86_ssse3_phsub_w, // llvm.x86.ssse3.phsub.w
-+ x86_ssse3_phsub_w_128, // llvm.x86.ssse3.phsub.w.128
-+ x86_ssse3_pmadd_ub_sw, // llvm.x86.ssse3.pmadd.ub.sw
-+ x86_ssse3_pmadd_ub_sw_128, // llvm.x86.ssse3.pmadd.ub.sw.128
-+ x86_ssse3_pmul_hr_sw, // llvm.x86.ssse3.pmul.hr.sw
-+ x86_ssse3_pmul_hr_sw_128, // llvm.x86.ssse3.pmul.hr.sw.128
-+ x86_ssse3_pshuf_b, // llvm.x86.ssse3.pshuf.b
-+ x86_ssse3_pshuf_b_128, // llvm.x86.ssse3.pshuf.b.128
-+ x86_ssse3_psign_b, // llvm.x86.ssse3.psign.b
-+ x86_ssse3_psign_b_128, // llvm.x86.ssse3.psign.b.128
-+ x86_ssse3_psign_d, // llvm.x86.ssse3.psign.d
-+ x86_ssse3_psign_d_128, // llvm.x86.ssse3.psign.d.128
-+ x86_ssse3_psign_w, // llvm.x86.ssse3.psign.w
-+ x86_ssse3_psign_w_128, // llvm.x86.ssse3.psign.w.128
-+ x86_subborrow_u32, // llvm.x86.subborrow.u32
-+ x86_subborrow_u64, // llvm.x86.subborrow.u64
-+ x86_tbm_bextri_u32, // llvm.x86.tbm.bextri.u32
-+ x86_tbm_bextri_u64, // llvm.x86.tbm.bextri.u64
-+ x86_vcvtph2ps_128, // llvm.x86.vcvtph2ps.128
-+ x86_vcvtph2ps_256, // llvm.x86.vcvtph2ps.256
-+ x86_vcvtps2ph_128, // llvm.x86.vcvtps2ph.128
-+ x86_vcvtps2ph_256, // llvm.x86.vcvtps2ph.256
-+ x86_wrfsbase_32, // llvm.x86.wrfsbase.32
-+ x86_wrfsbase_64, // llvm.x86.wrfsbase.64
-+ x86_wrgsbase_32, // llvm.x86.wrgsbase.32
-+ x86_wrgsbase_64, // llvm.x86.wrgsbase.64
-+ x86_wrpkru, // llvm.x86.wrpkru
-+ x86_xabort, // llvm.x86.xabort
-+ x86_xbegin, // llvm.x86.xbegin
-+ x86_xend, // llvm.x86.xend
-+ x86_xgetbv, // llvm.x86.xgetbv
-+ x86_xop_vfrcz_pd, // llvm.x86.xop.vfrcz.pd
-+ x86_xop_vfrcz_pd_256, // llvm.x86.xop.vfrcz.pd.256
-+ x86_xop_vfrcz_ps, // llvm.x86.xop.vfrcz.ps
-+ x86_xop_vfrcz_ps_256, // llvm.x86.xop.vfrcz.ps.256
-+ x86_xop_vfrcz_sd, // llvm.x86.xop.vfrcz.sd
-+ x86_xop_vfrcz_ss, // llvm.x86.xop.vfrcz.ss
-+ x86_xop_vpcmov, // llvm.x86.xop.vpcmov
-+ x86_xop_vpcmov_256, // llvm.x86.xop.vpcmov.256
-+ x86_xop_vpcomb, // llvm.x86.xop.vpcomb
-+ x86_xop_vpcomd, // llvm.x86.xop.vpcomd
-+ x86_xop_vpcomq, // llvm.x86.xop.vpcomq
-+ x86_xop_vpcomub, // llvm.x86.xop.vpcomub
-+ x86_xop_vpcomud, // llvm.x86.xop.vpcomud
-+ x86_xop_vpcomuq, // llvm.x86.xop.vpcomuq
-+ x86_xop_vpcomuw, // llvm.x86.xop.vpcomuw
-+ x86_xop_vpcomw, // llvm.x86.xop.vpcomw
-+ x86_xop_vpermil2pd, // llvm.x86.xop.vpermil2pd
-+ x86_xop_vpermil2pd_256, // llvm.x86.xop.vpermil2pd.256
-+ x86_xop_vpermil2ps, // llvm.x86.xop.vpermil2ps
-+ x86_xop_vpermil2ps_256, // llvm.x86.xop.vpermil2ps.256
-+ x86_xop_vphaddbd, // llvm.x86.xop.vphaddbd
-+ x86_xop_vphaddbq, // llvm.x86.xop.vphaddbq
-+ x86_xop_vphaddbw, // llvm.x86.xop.vphaddbw
-+ x86_xop_vphadddq, // llvm.x86.xop.vphadddq
-+ x86_xop_vphaddubd, // llvm.x86.xop.vphaddubd
-+ x86_xop_vphaddubq, // llvm.x86.xop.vphaddubq
-+ x86_xop_vphaddubw, // llvm.x86.xop.vphaddubw
-+ x86_xop_vphaddudq, // llvm.x86.xop.vphaddudq
-+ x86_xop_vphadduwd, // llvm.x86.xop.vphadduwd
-+ x86_xop_vphadduwq, // llvm.x86.xop.vphadduwq
-+ x86_xop_vphaddwd, // llvm.x86.xop.vphaddwd
-+ x86_xop_vphaddwq, // llvm.x86.xop.vphaddwq
-+ x86_xop_vphsubbw, // llvm.x86.xop.vphsubbw
-+ x86_xop_vphsubdq, // llvm.x86.xop.vphsubdq
-+ x86_xop_vphsubwd, // llvm.x86.xop.vphsubwd
-+ x86_xop_vpmacsdd, // llvm.x86.xop.vpmacsdd
-+ x86_xop_vpmacsdqh, // llvm.x86.xop.vpmacsdqh
-+ x86_xop_vpmacsdql, // llvm.x86.xop.vpmacsdql
-+ x86_xop_vpmacssdd, // llvm.x86.xop.vpmacssdd
-+ x86_xop_vpmacssdqh, // llvm.x86.xop.vpmacssdqh
-+ x86_xop_vpmacssdql, // llvm.x86.xop.vpmacssdql
-+ x86_xop_vpmacsswd, // llvm.x86.xop.vpmacsswd
-+ x86_xop_vpmacssww, // llvm.x86.xop.vpmacssww
-+ x86_xop_vpmacswd, // llvm.x86.xop.vpmacswd
-+ x86_xop_vpmacsww, // llvm.x86.xop.vpmacsww
-+ x86_xop_vpmadcsswd, // llvm.x86.xop.vpmadcsswd
-+ x86_xop_vpmadcswd, // llvm.x86.xop.vpmadcswd
-+ x86_xop_vpperm, // llvm.x86.xop.vpperm
-+ x86_xop_vprotb, // llvm.x86.xop.vprotb
-+ x86_xop_vprotbi, // llvm.x86.xop.vprotbi
-+ x86_xop_vprotd, // llvm.x86.xop.vprotd
-+ x86_xop_vprotdi, // llvm.x86.xop.vprotdi
-+ x86_xop_vprotq, // llvm.x86.xop.vprotq
-+ x86_xop_vprotqi, // llvm.x86.xop.vprotqi
-+ x86_xop_vprotw, // llvm.x86.xop.vprotw
-+ x86_xop_vprotwi, // llvm.x86.xop.vprotwi
-+ x86_xop_vpshab, // llvm.x86.xop.vpshab
-+ x86_xop_vpshad, // llvm.x86.xop.vpshad
-+ x86_xop_vpshaq, // llvm.x86.xop.vpshaq
-+ x86_xop_vpshaw, // llvm.x86.xop.vpshaw
-+ x86_xop_vpshlb, // llvm.x86.xop.vpshlb
-+ x86_xop_vpshld, // llvm.x86.xop.vpshld
-+ x86_xop_vpshlq, // llvm.x86.xop.vpshlq
-+ x86_xop_vpshlw, // llvm.x86.xop.vpshlw
-+ x86_xrstor, // llvm.x86.xrstor
-+ x86_xrstor64, // llvm.x86.xrstor64
-+ x86_xrstors, // llvm.x86.xrstors
-+ x86_xrstors64, // llvm.x86.xrstors64
-+ x86_xsave, // llvm.x86.xsave
-+ x86_xsave64, // llvm.x86.xsave64
-+ x86_xsavec, // llvm.x86.xsavec
-+ x86_xsavec64, // llvm.x86.xsavec64
-+ x86_xsaveopt, // llvm.x86.xsaveopt
-+ x86_xsaveopt64, // llvm.x86.xsaveopt64
-+ x86_xsaves, // llvm.x86.xsaves
-+ x86_xsaves64, // llvm.x86.xsaves64
-+ x86_xsetbv, // llvm.x86.xsetbv
-+ x86_xtest, // llvm.x86.xtest
-+ xcore_bitrev, // llvm.xcore.bitrev
-+ xcore_checkevent, // llvm.xcore.checkevent
-+ xcore_chkct, // llvm.xcore.chkct
-+ xcore_clre, // llvm.xcore.clre
-+ xcore_clrpt, // llvm.xcore.clrpt
-+ xcore_clrsr, // llvm.xcore.clrsr
-+ xcore_crc32, // llvm.xcore.crc32
-+ xcore_crc8, // llvm.xcore.crc8
-+ xcore_edu, // llvm.xcore.edu
-+ xcore_eeu, // llvm.xcore.eeu
-+ xcore_endin, // llvm.xcore.endin
-+ xcore_freer, // llvm.xcore.freer
-+ xcore_geted, // llvm.xcore.geted
-+ xcore_getet, // llvm.xcore.getet
-+ xcore_getid, // llvm.xcore.getid
-+ xcore_getps, // llvm.xcore.getps
-+ xcore_getr, // llvm.xcore.getr
-+ xcore_getst, // llvm.xcore.getst
-+ xcore_getts, // llvm.xcore.getts
-+ xcore_in, // llvm.xcore.in
-+ xcore_inct, // llvm.xcore.inct
-+ xcore_initcp, // llvm.xcore.initcp
-+ xcore_initdp, // llvm.xcore.initdp
-+ xcore_initlr, // llvm.xcore.initlr
-+ xcore_initpc, // llvm.xcore.initpc
-+ xcore_initsp, // llvm.xcore.initsp
-+ xcore_inshr, // llvm.xcore.inshr
-+ xcore_int, // llvm.xcore.int
-+ xcore_mjoin, // llvm.xcore.mjoin
-+ xcore_msync, // llvm.xcore.msync
-+ xcore_out, // llvm.xcore.out
-+ xcore_outct, // llvm.xcore.outct
-+ xcore_outshr, // llvm.xcore.outshr
-+ xcore_outt, // llvm.xcore.outt
-+ xcore_peek, // llvm.xcore.peek
-+ xcore_setc, // llvm.xcore.setc
-+ xcore_setclk, // llvm.xcore.setclk
-+ xcore_setd, // llvm.xcore.setd
-+ xcore_setev, // llvm.xcore.setev
-+ xcore_setps, // llvm.xcore.setps
-+ xcore_setpsc, // llvm.xcore.setpsc
-+ xcore_setpt, // llvm.xcore.setpt
-+ xcore_setrdy, // llvm.xcore.setrdy
-+ xcore_setsr, // llvm.xcore.setsr
-+ xcore_settw, // llvm.xcore.settw
-+ xcore_setv, // llvm.xcore.setv
-+ xcore_sext, // llvm.xcore.sext
-+ xcore_ssync, // llvm.xcore.ssync
-+ xcore_syncr, // llvm.xcore.syncr
-+ xcore_testct, // llvm.xcore.testct
-+ xcore_testwct, // llvm.xcore.testwct
-+ xcore_waitevent, // llvm.xcore.waitevent
-+ xcore_zext // llvm.xcore.zext
-+#endif
-+
-+// Target mapping
-+#ifdef GET_INTRINSIC_TARGET_DATA
-+struct IntrinsicTargetInfo {
-+ StringRef Name;
-+ size_t Offset;
-+ size_t Count;
-+};
-+static const IntrinsicTargetInfo TargetInfos[] = {
-+ {"", 0, 143},
-+ {"aarch64", 143, 190},
-+ {"amdgcn", 333, 174},
-+ {"arm", 507, 172},
-+ {"bpf", 679, 4},
-+ {"hexagon", 683, 1489},
-+ {"mips", 2172, 667},
-+ {"nvvm", 2839, 939},
-+ {"ppc", 3778, 395},
-+ {"r600", 4173, 20},
-+ {"s390", 4193, 207},
-+ {"wasm", 4400, 2},
-+ {"x86", 4402, 1573},
-+ {"xcore", 5975, 53},
-+};
-+#endif
-+
-+// Intrinsic ID to name table
-+#ifdef GET_INTRINSIC_NAME_TABLE
-+ // Note that entry #0 is the invalid intrinsic!
-+ "llvm.addressofreturnaddress",
-+ "llvm.adjust.trampoline",
-+ "llvm.annotation",
-+ "llvm.assume",
-+ "llvm.bitreverse",
-+ "llvm.bswap",
-+ "llvm.canonicalize",
-+ "llvm.ceil",
-+ "llvm.clear_cache",
-+ "llvm.convert.from.fp16",
-+ "llvm.convert.to.fp16",
-+ "llvm.convertff",
-+ "llvm.convertfsi",
-+ "llvm.convertfui",
-+ "llvm.convertsif",
-+ "llvm.convertss",
-+ "llvm.convertsu",
-+ "llvm.convertuif",
-+ "llvm.convertus",
-+ "llvm.convertuu",
-+ "llvm.copysign",
-+ "llvm.coro.alloc",
-+ "llvm.coro.begin",
-+ "llvm.coro.destroy",
-+ "llvm.coro.done",
-+ "llvm.coro.end",
-+ "llvm.coro.frame",
-+ "llvm.coro.free",
-+ "llvm.coro.id",
-+ "llvm.coro.param",
-+ "llvm.coro.promise",
-+ "llvm.coro.resume",
-+ "llvm.coro.save",
-+ "llvm.coro.size",
-+ "llvm.coro.subfn.addr",
-+ "llvm.coro.suspend",
-+ "llvm.cos",
-+ "llvm.ctlz",
-+ "llvm.ctpop",
-+ "llvm.cttz",
-+ "llvm.dbg.declare",
-+ "llvm.dbg.value",
-+ "llvm.debugtrap",
-+ "llvm.donothing",
-+ "llvm.eh.dwarf.cfa",
-+ "llvm.eh.exceptioncode",
-+ "llvm.eh.exceptionpointer",
-+ "llvm.eh.return.i32",
-+ "llvm.eh.return.i64",
-+ "llvm.eh.sjlj.callsite",
-+ "llvm.eh.sjlj.functioncontext",
-+ "llvm.eh.sjlj.longjmp",
-+ "llvm.eh.sjlj.lsda",
-+ "llvm.eh.sjlj.setjmp",
-+ "llvm.eh.sjlj.setup.dispatch",
-+ "llvm.eh.typeid.for",
-+ "llvm.eh.unwind.init",
-+ "llvm.exp",
-+ "llvm.exp2",
-+ "llvm.expect",
-+ "llvm.experimental.deoptimize",
-+ "llvm.experimental.gc.relocate",
-+ "llvm.experimental.gc.result",
-+ "llvm.experimental.gc.statepoint",
-+ "llvm.experimental.guard",
-+ "llvm.experimental.patchpoint.i64",
-+ "llvm.experimental.patchpoint.void",
-+ "llvm.experimental.stackmap",
-+ "llvm.fabs",
-+ "llvm.floor",
-+ "llvm.flt.rounds",
-+ "llvm.fma",
-+ "llvm.fmuladd",
-+ "llvm.frameaddress",
-+ "llvm.gcread",
-+ "llvm.gcroot",
-+ "llvm.gcwrite",
-+ "llvm.get.dynamic.area.offset",
-+ "llvm.init.trampoline",
-+ "llvm.instrprof.increment",
-+ "llvm.instrprof.increment.step",
-+ "llvm.instrprof.value.profile",
-+ "llvm.invariant.end",
-+ "llvm.invariant.group.barrier",
-+ "llvm.invariant.start",
-+ "llvm.lifetime.end",
-+ "llvm.lifetime.start",
-+ "llvm.load.relative",
-+ "llvm.localaddress",
-+ "llvm.localescape",
-+ "llvm.localrecover",
-+ "llvm.log",
-+ "llvm.log10",
-+ "llvm.log2",
-+ "llvm.longjmp",
-+ "llvm.masked.compressstore",
-+ "llvm.masked.expandload",
-+ "llvm.masked.gather",
-+ "llvm.masked.load",
-+ "llvm.masked.scatter",
-+ "llvm.masked.store",
-+ "llvm.maxnum",
-+ "llvm.memcpy",
-+ "llvm.memmove",
-+ "llvm.memset",
-+ "llvm.minnum",
-+ "llvm.nearbyint",
-+ "llvm.objectsize",
-+ "llvm.pcmarker",
-+ "llvm.pow",
-+ "llvm.powi",
-+ "llvm.prefetch",
-+ "llvm.ptr.annotation",
-+ "llvm.read_register",
-+ "llvm.readcyclecounter",
-+ "llvm.returnaddress",
-+ "llvm.rint",
-+ "llvm.round",
-+ "llvm.sadd.with.overflow",
-+ "llvm.setjmp",
-+ "llvm.siglongjmp",
-+ "llvm.sigsetjmp",
-+ "llvm.sin",
-+ "llvm.smul.with.overflow",
-+ "llvm.sqrt",
-+ "llvm.ssub.with.overflow",
-+ "llvm.stackguard",
-+ "llvm.stackprotector",
-+ "llvm.stackrestore",
-+ "llvm.stacksave",
-+ "llvm.thread.pointer",
-+ "llvm.trap",
-+ "llvm.trunc",
-+ "llvm.type.checked.load",
-+ "llvm.type.test",
-+ "llvm.uadd.with.overflow",
-+ "llvm.umul.with.overflow",
-+ "llvm.usub.with.overflow",
-+ "llvm.va_copy",
-+ "llvm.va_end",
-+ "llvm.va_start",
-+ "llvm.var.annotation",
-+ "llvm.write_register",
-+ "llvm.aarch64.clrex",
-+ "llvm.aarch64.crc32b",
-+ "llvm.aarch64.crc32cb",
-+ "llvm.aarch64.crc32ch",
-+ "llvm.aarch64.crc32cw",
-+ "llvm.aarch64.crc32cx",
-+ "llvm.aarch64.crc32h",
-+ "llvm.aarch64.crc32w",
-+ "llvm.aarch64.crc32x",
-+ "llvm.aarch64.crypto.aesd",
-+ "llvm.aarch64.crypto.aese",
-+ "llvm.aarch64.crypto.aesimc",
-+ "llvm.aarch64.crypto.aesmc",
-+ "llvm.aarch64.crypto.sha1c",
-+ "llvm.aarch64.crypto.sha1h",
-+ "llvm.aarch64.crypto.sha1m",
-+ "llvm.aarch64.crypto.sha1p",
-+ "llvm.aarch64.crypto.sha1su0",
-+ "llvm.aarch64.crypto.sha1su1",
-+ "llvm.aarch64.crypto.sha256h",
-+ "llvm.aarch64.crypto.sha256h2",
-+ "llvm.aarch64.crypto.sha256su0",
-+ "llvm.aarch64.crypto.sha256su1",
-+ "llvm.aarch64.dmb",
-+ "llvm.aarch64.dsb",
-+ "llvm.aarch64.hint",
-+ "llvm.aarch64.isb",
-+ "llvm.aarch64.ldaxp",
-+ "llvm.aarch64.ldaxr",
-+ "llvm.aarch64.ldxp",
-+ "llvm.aarch64.ldxr",
-+ "llvm.aarch64.neon.abs",
-+ "llvm.aarch64.neon.addhn",
-+ "llvm.aarch64.neon.addp",
-+ "llvm.aarch64.neon.cls",
-+ "llvm.aarch64.neon.fabd",
-+ "llvm.aarch64.neon.facge",
-+ "llvm.aarch64.neon.facgt",
-+ "llvm.aarch64.neon.faddv",
-+ "llvm.aarch64.neon.fcvtas",
-+ "llvm.aarch64.neon.fcvtau",
-+ "llvm.aarch64.neon.fcvtms",
-+ "llvm.aarch64.neon.fcvtmu",
-+ "llvm.aarch64.neon.fcvtns",
-+ "llvm.aarch64.neon.fcvtnu",
-+ "llvm.aarch64.neon.fcvtps",
-+ "llvm.aarch64.neon.fcvtpu",
-+ "llvm.aarch64.neon.fcvtxn",
-+ "llvm.aarch64.neon.fcvtzs",
-+ "llvm.aarch64.neon.fcvtzu",
-+ "llvm.aarch64.neon.fmax",
-+ "llvm.aarch64.neon.fmaxnm",
-+ "llvm.aarch64.neon.fmaxnmp",
-+ "llvm.aarch64.neon.fmaxnmv",
-+ "llvm.aarch64.neon.fmaxp",
-+ "llvm.aarch64.neon.fmaxv",
-+ "llvm.aarch64.neon.fmin",
-+ "llvm.aarch64.neon.fminnm",
-+ "llvm.aarch64.neon.fminnmp",
-+ "llvm.aarch64.neon.fminnmv",
-+ "llvm.aarch64.neon.fminp",
-+ "llvm.aarch64.neon.fminv",
-+ "llvm.aarch64.neon.fmulx",
-+ "llvm.aarch64.neon.frecpe",
-+ "llvm.aarch64.neon.frecps",
-+ "llvm.aarch64.neon.frecpx",
-+ "llvm.aarch64.neon.frintn",
-+ "llvm.aarch64.neon.frsqrte",
-+ "llvm.aarch64.neon.frsqrts",
-+ "llvm.aarch64.neon.ld1x2",
-+ "llvm.aarch64.neon.ld1x3",
-+ "llvm.aarch64.neon.ld1x4",
-+ "llvm.aarch64.neon.ld2",
-+ "llvm.aarch64.neon.ld2lane",
-+ "llvm.aarch64.neon.ld2r",
-+ "llvm.aarch64.neon.ld3",
-+ "llvm.aarch64.neon.ld3lane",
-+ "llvm.aarch64.neon.ld3r",
-+ "llvm.aarch64.neon.ld4",
-+ "llvm.aarch64.neon.ld4lane",
-+ "llvm.aarch64.neon.ld4r",
-+ "llvm.aarch64.neon.pmul",
-+ "llvm.aarch64.neon.pmull",
-+ "llvm.aarch64.neon.pmull64",
-+ "llvm.aarch64.neon.raddhn",
-+ "llvm.aarch64.neon.rbit",
-+ "llvm.aarch64.neon.rshrn",
-+ "llvm.aarch64.neon.rsubhn",
-+ "llvm.aarch64.neon.sabd",
-+ "llvm.aarch64.neon.saddlp",
-+ "llvm.aarch64.neon.saddlv",
-+ "llvm.aarch64.neon.saddv",
-+ "llvm.aarch64.neon.scalar.sqxtn",
-+ "llvm.aarch64.neon.scalar.sqxtun",
-+ "llvm.aarch64.neon.scalar.uqxtn",
-+ "llvm.aarch64.neon.shadd",
-+ "llvm.aarch64.neon.shll",
-+ "llvm.aarch64.neon.shsub",
-+ "llvm.aarch64.neon.smax",
-+ "llvm.aarch64.neon.smaxp",
-+ "llvm.aarch64.neon.smaxv",
-+ "llvm.aarch64.neon.smin",
-+ "llvm.aarch64.neon.sminp",
-+ "llvm.aarch64.neon.sminv",
-+ "llvm.aarch64.neon.smull",
-+ "llvm.aarch64.neon.sqabs",
-+ "llvm.aarch64.neon.sqadd",
-+ "llvm.aarch64.neon.sqdmulh",
-+ "llvm.aarch64.neon.sqdmull",
-+ "llvm.aarch64.neon.sqdmulls.scalar",
-+ "llvm.aarch64.neon.sqneg",
-+ "llvm.aarch64.neon.sqrdmulh",
-+ "llvm.aarch64.neon.sqrshl",
-+ "llvm.aarch64.neon.sqrshrn",
-+ "llvm.aarch64.neon.sqrshrun",
-+ "llvm.aarch64.neon.sqshl",
-+ "llvm.aarch64.neon.sqshlu",
-+ "llvm.aarch64.neon.sqshrn",
-+ "llvm.aarch64.neon.sqshrun",
-+ "llvm.aarch64.neon.sqsub",
-+ "llvm.aarch64.neon.sqxtn",
-+ "llvm.aarch64.neon.sqxtun",
-+ "llvm.aarch64.neon.srhadd",
-+ "llvm.aarch64.neon.srshl",
-+ "llvm.aarch64.neon.sshl",
-+ "llvm.aarch64.neon.sshll",
-+ "llvm.aarch64.neon.st1x2",
-+ "llvm.aarch64.neon.st1x3",
-+ "llvm.aarch64.neon.st1x4",
-+ "llvm.aarch64.neon.st2",
-+ "llvm.aarch64.neon.st2lane",
-+ "llvm.aarch64.neon.st3",
-+ "llvm.aarch64.neon.st3lane",
-+ "llvm.aarch64.neon.st4",
-+ "llvm.aarch64.neon.st4lane",
-+ "llvm.aarch64.neon.subhn",
-+ "llvm.aarch64.neon.suqadd",
-+ "llvm.aarch64.neon.tbl1",
-+ "llvm.aarch64.neon.tbl2",
-+ "llvm.aarch64.neon.tbl3",
-+ "llvm.aarch64.neon.tbl4",
-+ "llvm.aarch64.neon.tbx1",
-+ "llvm.aarch64.neon.tbx2",
-+ "llvm.aarch64.neon.tbx3",
-+ "llvm.aarch64.neon.tbx4",
-+ "llvm.aarch64.neon.uabd",
-+ "llvm.aarch64.neon.uaddlp",
-+ "llvm.aarch64.neon.uaddlv",
-+ "llvm.aarch64.neon.uaddv",
-+ "llvm.aarch64.neon.uhadd",
-+ "llvm.aarch64.neon.uhsub",
-+ "llvm.aarch64.neon.umax",
-+ "llvm.aarch64.neon.umaxp",
-+ "llvm.aarch64.neon.umaxv",
-+ "llvm.aarch64.neon.umin",
-+ "llvm.aarch64.neon.uminp",
-+ "llvm.aarch64.neon.uminv",
-+ "llvm.aarch64.neon.umull",
-+ "llvm.aarch64.neon.uqadd",
-+ "llvm.aarch64.neon.uqrshl",
-+ "llvm.aarch64.neon.uqrshrn",
-+ "llvm.aarch64.neon.uqshl",
-+ "llvm.aarch64.neon.uqshrn",
-+ "llvm.aarch64.neon.uqsub",
-+ "llvm.aarch64.neon.uqxtn",
-+ "llvm.aarch64.neon.urecpe",
-+ "llvm.aarch64.neon.urhadd",
-+ "llvm.aarch64.neon.urshl",
-+ "llvm.aarch64.neon.ursqrte",
-+ "llvm.aarch64.neon.ushl",
-+ "llvm.aarch64.neon.ushll",
-+ "llvm.aarch64.neon.usqadd",
-+ "llvm.aarch64.neon.vcopy.lane",
-+ "llvm.aarch64.neon.vcvtfp2fxs",
-+ "llvm.aarch64.neon.vcvtfp2fxu",
-+ "llvm.aarch64.neon.vcvtfp2hf",
-+ "llvm.aarch64.neon.vcvtfxs2fp",
-+ "llvm.aarch64.neon.vcvtfxu2fp",
-+ "llvm.aarch64.neon.vcvthf2fp",
-+ "llvm.aarch64.neon.vsli",
-+ "llvm.aarch64.neon.vsri",
-+ "llvm.aarch64.rbit",
-+ "llvm.aarch64.sdiv",
-+ "llvm.aarch64.sisd.fabd",
-+ "llvm.aarch64.sisd.fcvtxn",
-+ "llvm.aarch64.stlxp",
-+ "llvm.aarch64.stlxr",
-+ "llvm.aarch64.stxp",
-+ "llvm.aarch64.stxr",
-+ "llvm.aarch64.udiv",
-+ "llvm.amdgcn.atomic.dec",
-+ "llvm.amdgcn.atomic.inc",
-+ "llvm.amdgcn.buffer.atomic.add",
-+ "llvm.amdgcn.buffer.atomic.and",
-+ "llvm.amdgcn.buffer.atomic.cmpswap",
-+ "llvm.amdgcn.buffer.atomic.or",
-+ "llvm.amdgcn.buffer.atomic.smax",
-+ "llvm.amdgcn.buffer.atomic.smin",
-+ "llvm.amdgcn.buffer.atomic.sub",
-+ "llvm.amdgcn.buffer.atomic.swap",
-+ "llvm.amdgcn.buffer.atomic.umax",
-+ "llvm.amdgcn.buffer.atomic.umin",
-+ "llvm.amdgcn.buffer.atomic.xor",
-+ "llvm.amdgcn.buffer.load",
-+ "llvm.amdgcn.buffer.load.format",
-+ "llvm.amdgcn.buffer.store",
-+ "llvm.amdgcn.buffer.store.format",
-+ "llvm.amdgcn.buffer.wbinvl1",
-+ "llvm.amdgcn.buffer.wbinvl1.sc",
-+ "llvm.amdgcn.buffer.wbinvl1.vol",
-+ "llvm.amdgcn.class",
-+ "llvm.amdgcn.cos",
-+ "llvm.amdgcn.cubeid",
-+ "llvm.amdgcn.cubema",
-+ "llvm.amdgcn.cubesc",
-+ "llvm.amdgcn.cubetc",
-+ "llvm.amdgcn.cvt.pk.u8.f32",
-+ "llvm.amdgcn.dispatch.id",
-+ "llvm.amdgcn.dispatch.ptr",
-+ "llvm.amdgcn.div.fixup",
-+ "llvm.amdgcn.div.fmas",
-+ "llvm.amdgcn.div.scale",
-+ "llvm.amdgcn.ds.bpermute",
-+ "llvm.amdgcn.ds.permute",
-+ "llvm.amdgcn.ds.swizzle",
-+ "llvm.amdgcn.fcmp",
-+ "llvm.amdgcn.fmul.legacy",
-+ "llvm.amdgcn.fract",
-+ "llvm.amdgcn.frexp.exp",
-+ "llvm.amdgcn.frexp.mant",
-+ "llvm.amdgcn.groupstaticsize",
-+ "llvm.amdgcn.icmp",
-+ "llvm.amdgcn.image.atomic.add",
-+ "llvm.amdgcn.image.atomic.and",
-+ "llvm.amdgcn.image.atomic.cmpswap",
-+ "llvm.amdgcn.image.atomic.dec",
-+ "llvm.amdgcn.image.atomic.inc",
-+ "llvm.amdgcn.image.atomic.or",
-+ "llvm.amdgcn.image.atomic.smax",
-+ "llvm.amdgcn.image.atomic.smin",
-+ "llvm.amdgcn.image.atomic.sub",
-+ "llvm.amdgcn.image.atomic.swap",
-+ "llvm.amdgcn.image.atomic.umax",
-+ "llvm.amdgcn.image.atomic.umin",
-+ "llvm.amdgcn.image.atomic.xor",
-+ "llvm.amdgcn.image.gather4",
-+ "llvm.amdgcn.image.gather4.b",
-+ "llvm.amdgcn.image.gather4.b.cl",
-+ "llvm.amdgcn.image.gather4.b.cl.o",
-+ "llvm.amdgcn.image.gather4.b.o",
-+ "llvm.amdgcn.image.gather4.c",
-+ "llvm.amdgcn.image.gather4.c.b",
-+ "llvm.amdgcn.image.gather4.c.b.cl",
-+ "llvm.amdgcn.image.gather4.c.b.cl.o",
-+ "llvm.amdgcn.image.gather4.c.b.o",
-+ "llvm.amdgcn.image.gather4.c.cl",
-+ "llvm.amdgcn.image.gather4.c.cl.o",
-+ "llvm.amdgcn.image.gather4.c.l",
-+ "llvm.amdgcn.image.gather4.c.l.o",
-+ "llvm.amdgcn.image.gather4.c.lz",
-+ "llvm.amdgcn.image.gather4.c.lz.o",
-+ "llvm.amdgcn.image.gather4.c.o",
-+ "llvm.amdgcn.image.gather4.cl",
-+ "llvm.amdgcn.image.gather4.cl.o",
-+ "llvm.amdgcn.image.gather4.l",
-+ "llvm.amdgcn.image.gather4.l.o",
-+ "llvm.amdgcn.image.gather4.lz",
-+ "llvm.amdgcn.image.gather4.lz.o",
-+ "llvm.amdgcn.image.gather4.o",
-+ "llvm.amdgcn.image.getlod",
-+ "llvm.amdgcn.image.getresinfo",
-+ "llvm.amdgcn.image.load",
-+ "llvm.amdgcn.image.load.mip",
-+ "llvm.amdgcn.image.sample",
-+ "llvm.amdgcn.image.sample.b",
-+ "llvm.amdgcn.image.sample.b.cl",
-+ "llvm.amdgcn.image.sample.b.cl.o",
-+ "llvm.amdgcn.image.sample.b.o",
-+ "llvm.amdgcn.image.sample.c",
-+ "llvm.amdgcn.image.sample.c.b",
-+ "llvm.amdgcn.image.sample.c.b.cl",
-+ "llvm.amdgcn.image.sample.c.b.cl.o",
-+ "llvm.amdgcn.image.sample.c.b.o",
-+ "llvm.amdgcn.image.sample.c.cd",
-+ "llvm.amdgcn.image.sample.c.cd.cl",
-+ "llvm.amdgcn.image.sample.c.cd.cl.o",
-+ "llvm.amdgcn.image.sample.c.cd.o",
-+ "llvm.amdgcn.image.sample.c.cl",
-+ "llvm.amdgcn.image.sample.c.cl.o",
-+ "llvm.amdgcn.image.sample.c.d",
-+ "llvm.amdgcn.image.sample.c.d.cl",
-+ "llvm.amdgcn.image.sample.c.d.cl.o",
-+ "llvm.amdgcn.image.sample.c.d.o",
-+ "llvm.amdgcn.image.sample.c.l",
-+ "llvm.amdgcn.image.sample.c.l.o",
-+ "llvm.amdgcn.image.sample.c.lz",
-+ "llvm.amdgcn.image.sample.c.lz.o",
-+ "llvm.amdgcn.image.sample.c.o",
-+ "llvm.amdgcn.image.sample.cd",
-+ "llvm.amdgcn.image.sample.cd.cl",
-+ "llvm.amdgcn.image.sample.cd.cl.o",
-+ "llvm.amdgcn.image.sample.cd.o",
-+ "llvm.amdgcn.image.sample.cl",
-+ "llvm.amdgcn.image.sample.cl.o",
-+ "llvm.amdgcn.image.sample.d",
-+ "llvm.amdgcn.image.sample.d.cl",
-+ "llvm.amdgcn.image.sample.d.cl.o",
-+ "llvm.amdgcn.image.sample.d.o",
-+ "llvm.amdgcn.image.sample.l",
-+ "llvm.amdgcn.image.sample.l.o",
-+ "llvm.amdgcn.image.sample.lz",
-+ "llvm.amdgcn.image.sample.lz.o",
-+ "llvm.amdgcn.image.sample.o",
-+ "llvm.amdgcn.image.store",
-+ "llvm.amdgcn.image.store.mip",
-+ "llvm.amdgcn.implicitarg.ptr",
-+ "llvm.amdgcn.interp.mov",
-+ "llvm.amdgcn.interp.p1",
-+ "llvm.amdgcn.interp.p2",
-+ "llvm.amdgcn.kernarg.segment.ptr",
-+ "llvm.amdgcn.ldexp",
-+ "llvm.amdgcn.lerp",
-+ "llvm.amdgcn.log.clamp",
-+ "llvm.amdgcn.mbcnt.hi",
-+ "llvm.amdgcn.mbcnt.lo",
-+ "llvm.amdgcn.mov.dpp",
-+ "llvm.amdgcn.mqsad.pk.u16.u8",
-+ "llvm.amdgcn.mqsad.u32.u8",
-+ "llvm.amdgcn.msad.u8",
-+ "llvm.amdgcn.ps.live",
-+ "llvm.amdgcn.qsad.pk.u16.u8",
-+ "llvm.amdgcn.queue.ptr",
-+ "llvm.amdgcn.rcp",
-+ "llvm.amdgcn.rcp.legacy",
-+ "llvm.amdgcn.readfirstlane",
-+ "llvm.amdgcn.readlane",
-+ "llvm.amdgcn.rsq",
-+ "llvm.amdgcn.rsq.clamp",
-+ "llvm.amdgcn.rsq.legacy",
-+ "llvm.amdgcn.s.barrier",
-+ "llvm.amdgcn.s.dcache.inv",
-+ "llvm.amdgcn.s.dcache.inv.vol",
-+ "llvm.amdgcn.s.dcache.wb",
-+ "llvm.amdgcn.s.dcache.wb.vol",
-+ "llvm.amdgcn.s.decperflevel",
-+ "llvm.amdgcn.s.getreg",
-+ "llvm.amdgcn.s.incperflevel",
-+ "llvm.amdgcn.s.memrealtime",
-+ "llvm.amdgcn.s.memtime",
-+ "llvm.amdgcn.s.sleep",
-+ "llvm.amdgcn.s.waitcnt",
-+ "llvm.amdgcn.sad.hi.u8",
-+ "llvm.amdgcn.sad.u16",
-+ "llvm.amdgcn.sad.u8",
-+ "llvm.amdgcn.sffbh",
-+ "llvm.amdgcn.sin",
-+ "llvm.amdgcn.trig.preop",
-+ "llvm.amdgcn.wave.barrier",
-+ "llvm.amdgcn.workgroup.id.x",
-+ "llvm.amdgcn.workgroup.id.y",
-+ "llvm.amdgcn.workgroup.id.z",
-+ "llvm.amdgcn.workitem.id.x",
-+ "llvm.amdgcn.workitem.id.y",
-+ "llvm.amdgcn.workitem.id.z",
-+ "llvm.arm.cdp",
-+ "llvm.arm.cdp2",
-+ "llvm.arm.clrex",
-+ "llvm.arm.crc32b",
-+ "llvm.arm.crc32cb",
-+ "llvm.arm.crc32ch",
-+ "llvm.arm.crc32cw",
-+ "llvm.arm.crc32h",
-+ "llvm.arm.crc32w",
-+ "llvm.arm.dbg",
-+ "llvm.arm.dmb",
-+ "llvm.arm.dsb",
-+ "llvm.arm.get.fpscr",
-+ "llvm.arm.hint",
-+ "llvm.arm.isb",
-+ "llvm.arm.ldaex",
-+ "llvm.arm.ldaexd",
-+ "llvm.arm.ldc",
-+ "llvm.arm.ldc2",
-+ "llvm.arm.ldc2l",
-+ "llvm.arm.ldcl",
-+ "llvm.arm.ldrex",
-+ "llvm.arm.ldrexd",
-+ "llvm.arm.mcr",
-+ "llvm.arm.mcr2",
-+ "llvm.arm.mcrr",
-+ "llvm.arm.mcrr2",
-+ "llvm.arm.mrc",
-+ "llvm.arm.mrc2",
-+ "llvm.arm.mrrc",
-+ "llvm.arm.mrrc2",
-+ "llvm.arm.neon.aesd",
-+ "llvm.arm.neon.aese",
-+ "llvm.arm.neon.aesimc",
-+ "llvm.arm.neon.aesmc",
-+ "llvm.arm.neon.sha1c",
-+ "llvm.arm.neon.sha1h",
-+ "llvm.arm.neon.sha1m",
-+ "llvm.arm.neon.sha1p",
-+ "llvm.arm.neon.sha1su0",
-+ "llvm.arm.neon.sha1su1",
-+ "llvm.arm.neon.sha256h",
-+ "llvm.arm.neon.sha256h2",
-+ "llvm.arm.neon.sha256su0",
-+ "llvm.arm.neon.sha256su1",
-+ "llvm.arm.neon.vabds",
-+ "llvm.arm.neon.vabdu",
-+ "llvm.arm.neon.vabs",
-+ "llvm.arm.neon.vacge",
-+ "llvm.arm.neon.vacgt",
-+ "llvm.arm.neon.vbsl",
-+ "llvm.arm.neon.vcls",
-+ "llvm.arm.neon.vcvtas",
-+ "llvm.arm.neon.vcvtau",
-+ "llvm.arm.neon.vcvtfp2fxs",
-+ "llvm.arm.neon.vcvtfp2fxu",
-+ "llvm.arm.neon.vcvtfp2hf",
-+ "llvm.arm.neon.vcvtfxs2fp",
-+ "llvm.arm.neon.vcvtfxu2fp",
-+ "llvm.arm.neon.vcvthf2fp",
-+ "llvm.arm.neon.vcvtms",
-+ "llvm.arm.neon.vcvtmu",
-+ "llvm.arm.neon.vcvtns",
-+ "llvm.arm.neon.vcvtnu",
-+ "llvm.arm.neon.vcvtps",
-+ "llvm.arm.neon.vcvtpu",
-+ "llvm.arm.neon.vhadds",
-+ "llvm.arm.neon.vhaddu",
-+ "llvm.arm.neon.vhsubs",
-+ "llvm.arm.neon.vhsubu",
-+ "llvm.arm.neon.vld1",
-+ "llvm.arm.neon.vld2",
-+ "llvm.arm.neon.vld2lane",
-+ "llvm.arm.neon.vld3",
-+ "llvm.arm.neon.vld3lane",
-+ "llvm.arm.neon.vld4",
-+ "llvm.arm.neon.vld4lane",
-+ "llvm.arm.neon.vmaxnm",
-+ "llvm.arm.neon.vmaxs",
-+ "llvm.arm.neon.vmaxu",
-+ "llvm.arm.neon.vminnm",
-+ "llvm.arm.neon.vmins",
-+ "llvm.arm.neon.vminu",
-+ "llvm.arm.neon.vmullp",
-+ "llvm.arm.neon.vmulls",
-+ "llvm.arm.neon.vmullu",
-+ "llvm.arm.neon.vmulp",
-+ "llvm.arm.neon.vpadals",
-+ "llvm.arm.neon.vpadalu",
-+ "llvm.arm.neon.vpadd",
-+ "llvm.arm.neon.vpaddls",
-+ "llvm.arm.neon.vpaddlu",
-+ "llvm.arm.neon.vpmaxs",
-+ "llvm.arm.neon.vpmaxu",
-+ "llvm.arm.neon.vpmins",
-+ "llvm.arm.neon.vpminu",
-+ "llvm.arm.neon.vqabs",
-+ "llvm.arm.neon.vqadds",
-+ "llvm.arm.neon.vqaddu",
-+ "llvm.arm.neon.vqdmulh",
-+ "llvm.arm.neon.vqdmull",
-+ "llvm.arm.neon.vqmovns",
-+ "llvm.arm.neon.vqmovnsu",
-+ "llvm.arm.neon.vqmovnu",
-+ "llvm.arm.neon.vqneg",
-+ "llvm.arm.neon.vqrdmulh",
-+ "llvm.arm.neon.vqrshiftns",
-+ "llvm.arm.neon.vqrshiftnsu",
-+ "llvm.arm.neon.vqrshiftnu",
-+ "llvm.arm.neon.vqrshifts",
-+ "llvm.arm.neon.vqrshiftu",
-+ "llvm.arm.neon.vqshiftns",
-+ "llvm.arm.neon.vqshiftnsu",
-+ "llvm.arm.neon.vqshiftnu",
-+ "llvm.arm.neon.vqshifts",
-+ "llvm.arm.neon.vqshiftsu",
-+ "llvm.arm.neon.vqshiftu",
-+ "llvm.arm.neon.vqsubs",
-+ "llvm.arm.neon.vqsubu",
-+ "llvm.arm.neon.vraddhn",
-+ "llvm.arm.neon.vrecpe",
-+ "llvm.arm.neon.vrecps",
-+ "llvm.arm.neon.vrhadds",
-+ "llvm.arm.neon.vrhaddu",
-+ "llvm.arm.neon.vrinta",
-+ "llvm.arm.neon.vrintm",
-+ "llvm.arm.neon.vrintn",
-+ "llvm.arm.neon.vrintp",
-+ "llvm.arm.neon.vrintx",
-+ "llvm.arm.neon.vrintz",
-+ "llvm.arm.neon.vrshiftn",
-+ "llvm.arm.neon.vrshifts",
-+ "llvm.arm.neon.vrshiftu",
-+ "llvm.arm.neon.vrsqrte",
-+ "llvm.arm.neon.vrsqrts",
-+ "llvm.arm.neon.vrsubhn",
-+ "llvm.arm.neon.vshiftins",
-+ "llvm.arm.neon.vshifts",
-+ "llvm.arm.neon.vshiftu",
-+ "llvm.arm.neon.vst1",
-+ "llvm.arm.neon.vst2",
-+ "llvm.arm.neon.vst2lane",
-+ "llvm.arm.neon.vst3",
-+ "llvm.arm.neon.vst3lane",
-+ "llvm.arm.neon.vst4",
-+ "llvm.arm.neon.vst4lane",
-+ "llvm.arm.neon.vtbl1",
-+ "llvm.arm.neon.vtbl2",
-+ "llvm.arm.neon.vtbl3",
-+ "llvm.arm.neon.vtbl4",
-+ "llvm.arm.neon.vtbx1",
-+ "llvm.arm.neon.vtbx2",
-+ "llvm.arm.neon.vtbx3",
-+ "llvm.arm.neon.vtbx4",
-+ "llvm.arm.qadd",
-+ "llvm.arm.qsub",
-+ "llvm.arm.rbit",
-+ "llvm.arm.set.fpscr",
-+ "llvm.arm.space",
-+ "llvm.arm.ssat",
-+ "llvm.arm.stc",
-+ "llvm.arm.stc2",
-+ "llvm.arm.stc2l",
-+ "llvm.arm.stcl",
-+ "llvm.arm.stlex",
-+ "llvm.arm.stlexd",
-+ "llvm.arm.strex",
-+ "llvm.arm.strexd",
-+ "llvm.arm.undefined",
-+ "llvm.arm.usat",
-+ "llvm.arm.vcvtr",
-+ "llvm.arm.vcvtru",
-+ "llvm.bpf.load.byte",
-+ "llvm.bpf.load.half",
-+ "llvm.bpf.load.word",
-+ "llvm.bpf.pseudo",
-+ "llvm.hexagon.A2.abs",
-+ "llvm.hexagon.A2.absp",
-+ "llvm.hexagon.A2.abssat",
-+ "llvm.hexagon.A2.add",
-+ "llvm.hexagon.A2.addh.h16.hh",
-+ "llvm.hexagon.A2.addh.h16.hl",
-+ "llvm.hexagon.A2.addh.h16.lh",
-+ "llvm.hexagon.A2.addh.h16.ll",
-+ "llvm.hexagon.A2.addh.h16.sat.hh",
-+ "llvm.hexagon.A2.addh.h16.sat.hl",
-+ "llvm.hexagon.A2.addh.h16.sat.lh",
-+ "llvm.hexagon.A2.addh.h16.sat.ll",
-+ "llvm.hexagon.A2.addh.l16.hl",
-+ "llvm.hexagon.A2.addh.l16.ll",
-+ "llvm.hexagon.A2.addh.l16.sat.hl",
-+ "llvm.hexagon.A2.addh.l16.sat.ll",
-+ "llvm.hexagon.A2.addi",
-+ "llvm.hexagon.A2.addp",
-+ "llvm.hexagon.A2.addpsat",
-+ "llvm.hexagon.A2.addsat",
-+ "llvm.hexagon.A2.addsp",
-+ "llvm.hexagon.A2.and",
-+ "llvm.hexagon.A2.andir",
-+ "llvm.hexagon.A2.andp",
-+ "llvm.hexagon.A2.aslh",
-+ "llvm.hexagon.A2.asrh",
-+ "llvm.hexagon.A2.combine.hh",
-+ "llvm.hexagon.A2.combine.hl",
-+ "llvm.hexagon.A2.combine.lh",
-+ "llvm.hexagon.A2.combine.ll",
-+ "llvm.hexagon.A2.combineii",
-+ "llvm.hexagon.A2.combinew",
-+ "llvm.hexagon.A2.max",
-+ "llvm.hexagon.A2.maxp",
-+ "llvm.hexagon.A2.maxu",
-+ "llvm.hexagon.A2.maxup",
-+ "llvm.hexagon.A2.min",
-+ "llvm.hexagon.A2.minp",
-+ "llvm.hexagon.A2.minu",
-+ "llvm.hexagon.A2.minup",
-+ "llvm.hexagon.A2.neg",
-+ "llvm.hexagon.A2.negp",
-+ "llvm.hexagon.A2.negsat",
-+ "llvm.hexagon.A2.not",
-+ "llvm.hexagon.A2.notp",
-+ "llvm.hexagon.A2.or",
-+ "llvm.hexagon.A2.orir",
-+ "llvm.hexagon.A2.orp",
-+ "llvm.hexagon.A2.roundsat",
-+ "llvm.hexagon.A2.sat",
-+ "llvm.hexagon.A2.satb",
-+ "llvm.hexagon.A2.sath",
-+ "llvm.hexagon.A2.satub",
-+ "llvm.hexagon.A2.satuh",
-+ "llvm.hexagon.A2.sub",
-+ "llvm.hexagon.A2.subh.h16.hh",
-+ "llvm.hexagon.A2.subh.h16.hl",
-+ "llvm.hexagon.A2.subh.h16.lh",
-+ "llvm.hexagon.A2.subh.h16.ll",
-+ "llvm.hexagon.A2.subh.h16.sat.hh",
-+ "llvm.hexagon.A2.subh.h16.sat.hl",
-+ "llvm.hexagon.A2.subh.h16.sat.lh",
-+ "llvm.hexagon.A2.subh.h16.sat.ll",
-+ "llvm.hexagon.A2.subh.l16.hl",
-+ "llvm.hexagon.A2.subh.l16.ll",
-+ "llvm.hexagon.A2.subh.l16.sat.hl",
-+ "llvm.hexagon.A2.subh.l16.sat.ll",
-+ "llvm.hexagon.A2.subp",
-+ "llvm.hexagon.A2.subri",
-+ "llvm.hexagon.A2.subsat",
-+ "llvm.hexagon.A2.svaddh",
-+ "llvm.hexagon.A2.svaddhs",
-+ "llvm.hexagon.A2.svadduhs",
-+ "llvm.hexagon.A2.svavgh",
-+ "llvm.hexagon.A2.svavghs",
-+ "llvm.hexagon.A2.svnavgh",
-+ "llvm.hexagon.A2.svsubh",
-+ "llvm.hexagon.A2.svsubhs",
-+ "llvm.hexagon.A2.svsubuhs",
-+ "llvm.hexagon.A2.swiz",
-+ "llvm.hexagon.A2.sxtb",
-+ "llvm.hexagon.A2.sxth",
-+ "llvm.hexagon.A2.sxtw",
-+ "llvm.hexagon.A2.tfr",
-+ "llvm.hexagon.A2.tfrih",
-+ "llvm.hexagon.A2.tfril",
-+ "llvm.hexagon.A2.tfrp",
-+ "llvm.hexagon.A2.tfrpi",
-+ "llvm.hexagon.A2.tfrsi",
-+ "llvm.hexagon.A2.vabsh",
-+ "llvm.hexagon.A2.vabshsat",
-+ "llvm.hexagon.A2.vabsw",
-+ "llvm.hexagon.A2.vabswsat",
-+ "llvm.hexagon.A2.vaddb.map",
-+ "llvm.hexagon.A2.vaddh",
-+ "llvm.hexagon.A2.vaddhs",
-+ "llvm.hexagon.A2.vaddub",
-+ "llvm.hexagon.A2.vaddubs",
-+ "llvm.hexagon.A2.vadduhs",
-+ "llvm.hexagon.A2.vaddw",
-+ "llvm.hexagon.A2.vaddws",
-+ "llvm.hexagon.A2.vavgh",
-+ "llvm.hexagon.A2.vavghcr",
-+ "llvm.hexagon.A2.vavghr",
-+ "llvm.hexagon.A2.vavgub",
-+ "llvm.hexagon.A2.vavgubr",
-+ "llvm.hexagon.A2.vavguh",
-+ "llvm.hexagon.A2.vavguhr",
-+ "llvm.hexagon.A2.vavguw",
-+ "llvm.hexagon.A2.vavguwr",
-+ "llvm.hexagon.A2.vavgw",
-+ "llvm.hexagon.A2.vavgwcr",
-+ "llvm.hexagon.A2.vavgwr",
-+ "llvm.hexagon.A2.vcmpbeq",
-+ "llvm.hexagon.A2.vcmpbgtu",
-+ "llvm.hexagon.A2.vcmpheq",
-+ "llvm.hexagon.A2.vcmphgt",
-+ "llvm.hexagon.A2.vcmphgtu",
-+ "llvm.hexagon.A2.vcmpweq",
-+ "llvm.hexagon.A2.vcmpwgt",
-+ "llvm.hexagon.A2.vcmpwgtu",
-+ "llvm.hexagon.A2.vconj",
-+ "llvm.hexagon.A2.vmaxb",
-+ "llvm.hexagon.A2.vmaxh",
-+ "llvm.hexagon.A2.vmaxub",
-+ "llvm.hexagon.A2.vmaxuh",
-+ "llvm.hexagon.A2.vmaxuw",
-+ "llvm.hexagon.A2.vmaxw",
-+ "llvm.hexagon.A2.vminb",
-+ "llvm.hexagon.A2.vminh",
-+ "llvm.hexagon.A2.vminub",
-+ "llvm.hexagon.A2.vminuh",
-+ "llvm.hexagon.A2.vminuw",
-+ "llvm.hexagon.A2.vminw",
-+ "llvm.hexagon.A2.vnavgh",
-+ "llvm.hexagon.A2.vnavghcr",
-+ "llvm.hexagon.A2.vnavghr",
-+ "llvm.hexagon.A2.vnavgw",
-+ "llvm.hexagon.A2.vnavgwcr",
-+ "llvm.hexagon.A2.vnavgwr",
-+ "llvm.hexagon.A2.vraddub",
-+ "llvm.hexagon.A2.vraddub.acc",
-+ "llvm.hexagon.A2.vrsadub",
-+ "llvm.hexagon.A2.vrsadub.acc",
-+ "llvm.hexagon.A2.vsubb.map",
-+ "llvm.hexagon.A2.vsubh",
-+ "llvm.hexagon.A2.vsubhs",
-+ "llvm.hexagon.A2.vsubub",
-+ "llvm.hexagon.A2.vsububs",
-+ "llvm.hexagon.A2.vsubuhs",
-+ "llvm.hexagon.A2.vsubw",
-+ "llvm.hexagon.A2.vsubws",
-+ "llvm.hexagon.A2.xor",
-+ "llvm.hexagon.A2.xorp",
-+ "llvm.hexagon.A2.zxtb",
-+ "llvm.hexagon.A2.zxth",
-+ "llvm.hexagon.A4.andn",
-+ "llvm.hexagon.A4.andnp",
-+ "llvm.hexagon.A4.bitsplit",
-+ "llvm.hexagon.A4.bitspliti",
-+ "llvm.hexagon.A4.boundscheck",
-+ "llvm.hexagon.A4.cmpbeq",
-+ "llvm.hexagon.A4.cmpbeqi",
-+ "llvm.hexagon.A4.cmpbgt",
-+ "llvm.hexagon.A4.cmpbgti",
-+ "llvm.hexagon.A4.cmpbgtu",
-+ "llvm.hexagon.A4.cmpbgtui",
-+ "llvm.hexagon.A4.cmpheq",
-+ "llvm.hexagon.A4.cmpheqi",
-+ "llvm.hexagon.A4.cmphgt",
-+ "llvm.hexagon.A4.cmphgti",
-+ "llvm.hexagon.A4.cmphgtu",
-+ "llvm.hexagon.A4.cmphgtui",
-+ "llvm.hexagon.A4.combineir",
-+ "llvm.hexagon.A4.combineri",
-+ "llvm.hexagon.A4.cround.ri",
-+ "llvm.hexagon.A4.cround.rr",
-+ "llvm.hexagon.A4.modwrapu",
-+ "llvm.hexagon.A4.orn",
-+ "llvm.hexagon.A4.ornp",
-+ "llvm.hexagon.A4.rcmpeq",
-+ "llvm.hexagon.A4.rcmpeqi",
-+ "llvm.hexagon.A4.rcmpneq",
-+ "llvm.hexagon.A4.rcmpneqi",
-+ "llvm.hexagon.A4.round.ri",
-+ "llvm.hexagon.A4.round.ri.sat",
-+ "llvm.hexagon.A4.round.rr",
-+ "llvm.hexagon.A4.round.rr.sat",
-+ "llvm.hexagon.A4.tlbmatch",
-+ "llvm.hexagon.A4.vcmpbeq.any",
-+ "llvm.hexagon.A4.vcmpbeqi",
-+ "llvm.hexagon.A4.vcmpbgt",
-+ "llvm.hexagon.A4.vcmpbgti",
-+ "llvm.hexagon.A4.vcmpbgtui",
-+ "llvm.hexagon.A4.vcmpheqi",
-+ "llvm.hexagon.A4.vcmphgti",
-+ "llvm.hexagon.A4.vcmphgtui",
-+ "llvm.hexagon.A4.vcmpweqi",
-+ "llvm.hexagon.A4.vcmpwgti",
-+ "llvm.hexagon.A4.vcmpwgtui",
-+ "llvm.hexagon.A4.vrmaxh",
-+ "llvm.hexagon.A4.vrmaxuh",
-+ "llvm.hexagon.A4.vrmaxuw",
-+ "llvm.hexagon.A4.vrmaxw",
-+ "llvm.hexagon.A4.vrminh",
-+ "llvm.hexagon.A4.vrminuh",
-+ "llvm.hexagon.A4.vrminuw",
-+ "llvm.hexagon.A4.vrminw",
-+ "llvm.hexagon.A5.vaddhubs",
-+ "llvm.hexagon.C2.all8",
-+ "llvm.hexagon.C2.and",
-+ "llvm.hexagon.C2.andn",
-+ "llvm.hexagon.C2.any8",
-+ "llvm.hexagon.C2.bitsclr",
-+ "llvm.hexagon.C2.bitsclri",
-+ "llvm.hexagon.C2.bitsset",
-+ "llvm.hexagon.C2.cmpeq",
-+ "llvm.hexagon.C2.cmpeqi",
-+ "llvm.hexagon.C2.cmpeqp",
-+ "llvm.hexagon.C2.cmpgei",
-+ "llvm.hexagon.C2.cmpgeui",
-+ "llvm.hexagon.C2.cmpgt",
-+ "llvm.hexagon.C2.cmpgti",
-+ "llvm.hexagon.C2.cmpgtp",
-+ "llvm.hexagon.C2.cmpgtu",
-+ "llvm.hexagon.C2.cmpgtui",
-+ "llvm.hexagon.C2.cmpgtup",
-+ "llvm.hexagon.C2.cmplt",
-+ "llvm.hexagon.C2.cmpltu",
-+ "llvm.hexagon.C2.mask",
-+ "llvm.hexagon.C2.mux",
-+ "llvm.hexagon.C2.muxii",
-+ "llvm.hexagon.C2.muxir",
-+ "llvm.hexagon.C2.muxri",
-+ "llvm.hexagon.C2.not",
-+ "llvm.hexagon.C2.or",
-+ "llvm.hexagon.C2.orn",
-+ "llvm.hexagon.C2.pxfer.map",
-+ "llvm.hexagon.C2.tfrpr",
-+ "llvm.hexagon.C2.tfrrp",
-+ "llvm.hexagon.C2.vitpack",
-+ "llvm.hexagon.C2.vmux",
-+ "llvm.hexagon.C2.xor",
-+ "llvm.hexagon.C4.and.and",
-+ "llvm.hexagon.C4.and.andn",
-+ "llvm.hexagon.C4.and.or",
-+ "llvm.hexagon.C4.and.orn",
-+ "llvm.hexagon.C4.cmplte",
-+ "llvm.hexagon.C4.cmpltei",
-+ "llvm.hexagon.C4.cmplteu",
-+ "llvm.hexagon.C4.cmplteui",
-+ "llvm.hexagon.C4.cmpneq",
-+ "llvm.hexagon.C4.cmpneqi",
-+ "llvm.hexagon.C4.fastcorner9",
-+ "llvm.hexagon.C4.fastcorner9.not",
-+ "llvm.hexagon.C4.nbitsclr",
-+ "llvm.hexagon.C4.nbitsclri",
-+ "llvm.hexagon.C4.nbitsset",
-+ "llvm.hexagon.C4.or.and",
-+ "llvm.hexagon.C4.or.andn",
-+ "llvm.hexagon.C4.or.or",
-+ "llvm.hexagon.C4.or.orn",
-+ "llvm.hexagon.F2.conv.d2df",
-+ "llvm.hexagon.F2.conv.d2sf",
-+ "llvm.hexagon.F2.conv.df2d",
-+ "llvm.hexagon.F2.conv.df2d.chop",
-+ "llvm.hexagon.F2.conv.df2sf",
-+ "llvm.hexagon.F2.conv.df2ud",
-+ "llvm.hexagon.F2.conv.df2ud.chop",
-+ "llvm.hexagon.F2.conv.df2uw",
-+ "llvm.hexagon.F2.conv.df2uw.chop",
-+ "llvm.hexagon.F2.conv.df2w",
-+ "llvm.hexagon.F2.conv.df2w.chop",
-+ "llvm.hexagon.F2.conv.sf2d",
-+ "llvm.hexagon.F2.conv.sf2d.chop",
-+ "llvm.hexagon.F2.conv.sf2df",
-+ "llvm.hexagon.F2.conv.sf2ud",
-+ "llvm.hexagon.F2.conv.sf2ud.chop",
-+ "llvm.hexagon.F2.conv.sf2uw",
-+ "llvm.hexagon.F2.conv.sf2uw.chop",
-+ "llvm.hexagon.F2.conv.sf2w",
-+ "llvm.hexagon.F2.conv.sf2w.chop",
-+ "llvm.hexagon.F2.conv.ud2df",
-+ "llvm.hexagon.F2.conv.ud2sf",
-+ "llvm.hexagon.F2.conv.uw2df",
-+ "llvm.hexagon.F2.conv.uw2sf",
-+ "llvm.hexagon.F2.conv.w2df",
-+ "llvm.hexagon.F2.conv.w2sf",
-+ "llvm.hexagon.F2.dfclass",
-+ "llvm.hexagon.F2.dfcmpeq",
-+ "llvm.hexagon.F2.dfcmpge",
-+ "llvm.hexagon.F2.dfcmpgt",
-+ "llvm.hexagon.F2.dfcmpuo",
-+ "llvm.hexagon.F2.dfimm.n",
-+ "llvm.hexagon.F2.dfimm.p",
-+ "llvm.hexagon.F2.sfadd",
-+ "llvm.hexagon.F2.sfclass",
-+ "llvm.hexagon.F2.sfcmpeq",
-+ "llvm.hexagon.F2.sfcmpge",
-+ "llvm.hexagon.F2.sfcmpgt",
-+ "llvm.hexagon.F2.sfcmpuo",
-+ "llvm.hexagon.F2.sffixupd",
-+ "llvm.hexagon.F2.sffixupn",
-+ "llvm.hexagon.F2.sffixupr",
-+ "llvm.hexagon.F2.sffma",
-+ "llvm.hexagon.F2.sffma.lib",
-+ "llvm.hexagon.F2.sffma.sc",
-+ "llvm.hexagon.F2.sffms",
-+ "llvm.hexagon.F2.sffms.lib",
-+ "llvm.hexagon.F2.sfimm.n",
-+ "llvm.hexagon.F2.sfimm.p",
-+ "llvm.hexagon.F2.sfmax",
-+ "llvm.hexagon.F2.sfmin",
-+ "llvm.hexagon.F2.sfmpy",
-+ "llvm.hexagon.F2.sfsub",
-+ "llvm.hexagon.L2.loadw.locked",
-+ "llvm.hexagon.L4.loadd.locked",
-+ "llvm.hexagon.M2.acci",
-+ "llvm.hexagon.M2.accii",
-+ "llvm.hexagon.M2.cmaci.s0",
-+ "llvm.hexagon.M2.cmacr.s0",
-+ "llvm.hexagon.M2.cmacs.s0",
-+ "llvm.hexagon.M2.cmacs.s1",
-+ "llvm.hexagon.M2.cmacsc.s0",
-+ "llvm.hexagon.M2.cmacsc.s1",
-+ "llvm.hexagon.M2.cmpyi.s0",
-+ "llvm.hexagon.M2.cmpyr.s0",
-+ "llvm.hexagon.M2.cmpyrs.s0",
-+ "llvm.hexagon.M2.cmpyrs.s1",
-+ "llvm.hexagon.M2.cmpyrsc.s0",
-+ "llvm.hexagon.M2.cmpyrsc.s1",
-+ "llvm.hexagon.M2.cmpys.s0",
-+ "llvm.hexagon.M2.cmpys.s1",
-+ "llvm.hexagon.M2.cmpysc.s0",
-+ "llvm.hexagon.M2.cmpysc.s1",
-+ "llvm.hexagon.M2.cnacs.s0",
-+ "llvm.hexagon.M2.cnacs.s1",
-+ "llvm.hexagon.M2.cnacsc.s0",
-+ "llvm.hexagon.M2.cnacsc.s1",
-+ "llvm.hexagon.M2.dpmpyss.acc.s0",
-+ "llvm.hexagon.M2.dpmpyss.nac.s0",
-+ "llvm.hexagon.M2.dpmpyss.rnd.s0",
-+ "llvm.hexagon.M2.dpmpyss.s0",
-+ "llvm.hexagon.M2.dpmpyuu.acc.s0",
-+ "llvm.hexagon.M2.dpmpyuu.nac.s0",
-+ "llvm.hexagon.M2.dpmpyuu.s0",
-+ "llvm.hexagon.M2.hmmpyh.rs1",
-+ "llvm.hexagon.M2.hmmpyh.s1",
-+ "llvm.hexagon.M2.hmmpyl.rs1",
-+ "llvm.hexagon.M2.hmmpyl.s1",
-+ "llvm.hexagon.M2.maci",
-+ "llvm.hexagon.M2.macsin",
-+ "llvm.hexagon.M2.macsip",
-+ "llvm.hexagon.M2.mmachs.rs0",
-+ "llvm.hexagon.M2.mmachs.rs1",
-+ "llvm.hexagon.M2.mmachs.s0",
-+ "llvm.hexagon.M2.mmachs.s1",
-+ "llvm.hexagon.M2.mmacls.rs0",
-+ "llvm.hexagon.M2.mmacls.rs1",
-+ "llvm.hexagon.M2.mmacls.s0",
-+ "llvm.hexagon.M2.mmacls.s1",
-+ "llvm.hexagon.M2.mmacuhs.rs0",
-+ "llvm.hexagon.M2.mmacuhs.rs1",
-+ "llvm.hexagon.M2.mmacuhs.s0",
-+ "llvm.hexagon.M2.mmacuhs.s1",
-+ "llvm.hexagon.M2.mmaculs.rs0",
-+ "llvm.hexagon.M2.mmaculs.rs1",
-+ "llvm.hexagon.M2.mmaculs.s0",
-+ "llvm.hexagon.M2.mmaculs.s1",
-+ "llvm.hexagon.M2.mmpyh.rs0",
-+ "llvm.hexagon.M2.mmpyh.rs1",
-+ "llvm.hexagon.M2.mmpyh.s0",
-+ "llvm.hexagon.M2.mmpyh.s1",
-+ "llvm.hexagon.M2.mmpyl.rs0",
-+ "llvm.hexagon.M2.mmpyl.rs1",
-+ "llvm.hexagon.M2.mmpyl.s0",
-+ "llvm.hexagon.M2.mmpyl.s1",
-+ "llvm.hexagon.M2.mmpyuh.rs0",
-+ "llvm.hexagon.M2.mmpyuh.rs1",
-+ "llvm.hexagon.M2.mmpyuh.s0",
-+ "llvm.hexagon.M2.mmpyuh.s1",
-+ "llvm.hexagon.M2.mmpyul.rs0",
-+ "llvm.hexagon.M2.mmpyul.rs1",
-+ "llvm.hexagon.M2.mmpyul.s0",
-+ "llvm.hexagon.M2.mmpyul.s1",
-+ "llvm.hexagon.M2.mpy.acc.hh.s0",
-+ "llvm.hexagon.M2.mpy.acc.hh.s1",
-+ "llvm.hexagon.M2.mpy.acc.hl.s0",
-+ "llvm.hexagon.M2.mpy.acc.hl.s1",
-+ "llvm.hexagon.M2.mpy.acc.lh.s0",
-+ "llvm.hexagon.M2.mpy.acc.lh.s1",
-+ "llvm.hexagon.M2.mpy.acc.ll.s0",
-+ "llvm.hexagon.M2.mpy.acc.ll.s1",
-+ "llvm.hexagon.M2.mpy.acc.sat.hh.s0",
-+ "llvm.hexagon.M2.mpy.acc.sat.hh.s1",
-+ "llvm.hexagon.M2.mpy.acc.sat.hl.s0",
-+ "llvm.hexagon.M2.mpy.acc.sat.hl.s1",
-+ "llvm.hexagon.M2.mpy.acc.sat.lh.s0",
-+ "llvm.hexagon.M2.mpy.acc.sat.lh.s1",
-+ "llvm.hexagon.M2.mpy.acc.sat.ll.s0",
-+ "llvm.hexagon.M2.mpy.acc.sat.ll.s1",
-+ "llvm.hexagon.M2.mpy.hh.s0",
-+ "llvm.hexagon.M2.mpy.hh.s1",
-+ "llvm.hexagon.M2.mpy.hl.s0",
-+ "llvm.hexagon.M2.mpy.hl.s1",
-+ "llvm.hexagon.M2.mpy.lh.s0",
-+ "llvm.hexagon.M2.mpy.lh.s1",
-+ "llvm.hexagon.M2.mpy.ll.s0",
-+ "llvm.hexagon.M2.mpy.ll.s1",
-+ "llvm.hexagon.M2.mpy.nac.hh.s0",
-+ "llvm.hexagon.M2.mpy.nac.hh.s1",
-+ "llvm.hexagon.M2.mpy.nac.hl.s0",
-+ "llvm.hexagon.M2.mpy.nac.hl.s1",
-+ "llvm.hexagon.M2.mpy.nac.lh.s0",
-+ "llvm.hexagon.M2.mpy.nac.lh.s1",
-+ "llvm.hexagon.M2.mpy.nac.ll.s0",
-+ "llvm.hexagon.M2.mpy.nac.ll.s1",
-+ "llvm.hexagon.M2.mpy.nac.sat.hh.s0",
-+ "llvm.hexagon.M2.mpy.nac.sat.hh.s1",
-+ "llvm.hexagon.M2.mpy.nac.sat.hl.s0",
-+ "llvm.hexagon.M2.mpy.nac.sat.hl.s1",
-+ "llvm.hexagon.M2.mpy.nac.sat.lh.s0",
-+ "llvm.hexagon.M2.mpy.nac.sat.lh.s1",
-+ "llvm.hexagon.M2.mpy.nac.sat.ll.s0",
-+ "llvm.hexagon.M2.mpy.nac.sat.ll.s1",
-+ "llvm.hexagon.M2.mpy.rnd.hh.s0",
-+ "llvm.hexagon.M2.mpy.rnd.hh.s1",
-+ "llvm.hexagon.M2.mpy.rnd.hl.s0",
-+ "llvm.hexagon.M2.mpy.rnd.hl.s1",
-+ "llvm.hexagon.M2.mpy.rnd.lh.s0",
-+ "llvm.hexagon.M2.mpy.rnd.lh.s1",
-+ "llvm.hexagon.M2.mpy.rnd.ll.s0",
-+ "llvm.hexagon.M2.mpy.rnd.ll.s1",
-+ "llvm.hexagon.M2.mpy.sat.hh.s0",
-+ "llvm.hexagon.M2.mpy.sat.hh.s1",
-+ "llvm.hexagon.M2.mpy.sat.hl.s0",
-+ "llvm.hexagon.M2.mpy.sat.hl.s1",
-+ "llvm.hexagon.M2.mpy.sat.lh.s0",
-+ "llvm.hexagon.M2.mpy.sat.lh.s1",
-+ "llvm.hexagon.M2.mpy.sat.ll.s0",
-+ "llvm.hexagon.M2.mpy.sat.ll.s1",
-+ "llvm.hexagon.M2.mpy.sat.rnd.hh.s0",
-+ "llvm.hexagon.M2.mpy.sat.rnd.hh.s1",
-+ "llvm.hexagon.M2.mpy.sat.rnd.hl.s0",
-+ "llvm.hexagon.M2.mpy.sat.rnd.hl.s1",
-+ "llvm.hexagon.M2.mpy.sat.rnd.lh.s0",
-+ "llvm.hexagon.M2.mpy.sat.rnd.lh.s1",
-+ "llvm.hexagon.M2.mpy.sat.rnd.ll.s0",
-+ "llvm.hexagon.M2.mpy.sat.rnd.ll.s1",
-+ "llvm.hexagon.M2.mpy.up",
-+ "llvm.hexagon.M2.mpy.up.s1",
-+ "llvm.hexagon.M2.mpy.up.s1.sat",
-+ "llvm.hexagon.M2.mpyd.acc.hh.s0",
-+ "llvm.hexagon.M2.mpyd.acc.hh.s1",
-+ "llvm.hexagon.M2.mpyd.acc.hl.s0",
-+ "llvm.hexagon.M2.mpyd.acc.hl.s1",
-+ "llvm.hexagon.M2.mpyd.acc.lh.s0",
-+ "llvm.hexagon.M2.mpyd.acc.lh.s1",
-+ "llvm.hexagon.M2.mpyd.acc.ll.s0",
-+ "llvm.hexagon.M2.mpyd.acc.ll.s1",
-+ "llvm.hexagon.M2.mpyd.hh.s0",
-+ "llvm.hexagon.M2.mpyd.hh.s1",
-+ "llvm.hexagon.M2.mpyd.hl.s0",
-+ "llvm.hexagon.M2.mpyd.hl.s1",
-+ "llvm.hexagon.M2.mpyd.lh.s0",
-+ "llvm.hexagon.M2.mpyd.lh.s1",
-+ "llvm.hexagon.M2.mpyd.ll.s0",
-+ "llvm.hexagon.M2.mpyd.ll.s1",
-+ "llvm.hexagon.M2.mpyd.nac.hh.s0",
-+ "llvm.hexagon.M2.mpyd.nac.hh.s1",
-+ "llvm.hexagon.M2.mpyd.nac.hl.s0",
-+ "llvm.hexagon.M2.mpyd.nac.hl.s1",
-+ "llvm.hexagon.M2.mpyd.nac.lh.s0",
-+ "llvm.hexagon.M2.mpyd.nac.lh.s1",
-+ "llvm.hexagon.M2.mpyd.nac.ll.s0",
-+ "llvm.hexagon.M2.mpyd.nac.ll.s1",
-+ "llvm.hexagon.M2.mpyd.rnd.hh.s0",
-+ "llvm.hexagon.M2.mpyd.rnd.hh.s1",
-+ "llvm.hexagon.M2.mpyd.rnd.hl.s0",
-+ "llvm.hexagon.M2.mpyd.rnd.hl.s1",
-+ "llvm.hexagon.M2.mpyd.rnd.lh.s0",
-+ "llvm.hexagon.M2.mpyd.rnd.lh.s1",
-+ "llvm.hexagon.M2.mpyd.rnd.ll.s0",
-+ "llvm.hexagon.M2.mpyd.rnd.ll.s1",
-+ "llvm.hexagon.M2.mpyi",
-+ "llvm.hexagon.M2.mpysmi",
-+ "llvm.hexagon.M2.mpysu.up",
-+ "llvm.hexagon.M2.mpyu.acc.hh.s0",
-+ "llvm.hexagon.M2.mpyu.acc.hh.s1",
-+ "llvm.hexagon.M2.mpyu.acc.hl.s0",
-+ "llvm.hexagon.M2.mpyu.acc.hl.s1",
-+ "llvm.hexagon.M2.mpyu.acc.lh.s0",
-+ "llvm.hexagon.M2.mpyu.acc.lh.s1",
-+ "llvm.hexagon.M2.mpyu.acc.ll.s0",
-+ "llvm.hexagon.M2.mpyu.acc.ll.s1",
-+ "llvm.hexagon.M2.mpyu.hh.s0",
-+ "llvm.hexagon.M2.mpyu.hh.s1",
-+ "llvm.hexagon.M2.mpyu.hl.s0",
-+ "llvm.hexagon.M2.mpyu.hl.s1",
-+ "llvm.hexagon.M2.mpyu.lh.s0",
-+ "llvm.hexagon.M2.mpyu.lh.s1",
-+ "llvm.hexagon.M2.mpyu.ll.s0",
-+ "llvm.hexagon.M2.mpyu.ll.s1",
-+ "llvm.hexagon.M2.mpyu.nac.hh.s0",
-+ "llvm.hexagon.M2.mpyu.nac.hh.s1",
-+ "llvm.hexagon.M2.mpyu.nac.hl.s0",
-+ "llvm.hexagon.M2.mpyu.nac.hl.s1",
-+ "llvm.hexagon.M2.mpyu.nac.lh.s0",
-+ "llvm.hexagon.M2.mpyu.nac.lh.s1",
-+ "llvm.hexagon.M2.mpyu.nac.ll.s0",
-+ "llvm.hexagon.M2.mpyu.nac.ll.s1",
-+ "llvm.hexagon.M2.mpyu.up",
-+ "llvm.hexagon.M2.mpyud.acc.hh.s0",
-+ "llvm.hexagon.M2.mpyud.acc.hh.s1",
-+ "llvm.hexagon.M2.mpyud.acc.hl.s0",
-+ "llvm.hexagon.M2.mpyud.acc.hl.s1",
-+ "llvm.hexagon.M2.mpyud.acc.lh.s0",
-+ "llvm.hexagon.M2.mpyud.acc.lh.s1",
-+ "llvm.hexagon.M2.mpyud.acc.ll.s0",
-+ "llvm.hexagon.M2.mpyud.acc.ll.s1",
-+ "llvm.hexagon.M2.mpyud.hh.s0",
-+ "llvm.hexagon.M2.mpyud.hh.s1",
-+ "llvm.hexagon.M2.mpyud.hl.s0",
-+ "llvm.hexagon.M2.mpyud.hl.s1",
-+ "llvm.hexagon.M2.mpyud.lh.s0",
-+ "llvm.hexagon.M2.mpyud.lh.s1",
-+ "llvm.hexagon.M2.mpyud.ll.s0",
-+ "llvm.hexagon.M2.mpyud.ll.s1",
-+ "llvm.hexagon.M2.mpyud.nac.hh.s0",
-+ "llvm.hexagon.M2.mpyud.nac.hh.s1",
-+ "llvm.hexagon.M2.mpyud.nac.hl.s0",
-+ "llvm.hexagon.M2.mpyud.nac.hl.s1",
-+ "llvm.hexagon.M2.mpyud.nac.lh.s0",
-+ "llvm.hexagon.M2.mpyud.nac.lh.s1",
-+ "llvm.hexagon.M2.mpyud.nac.ll.s0",
-+ "llvm.hexagon.M2.mpyud.nac.ll.s1",
-+ "llvm.hexagon.M2.mpyui",
-+ "llvm.hexagon.M2.nacci",
-+ "llvm.hexagon.M2.naccii",
-+ "llvm.hexagon.M2.subacc",
-+ "llvm.hexagon.M2.vabsdiffh",
-+ "llvm.hexagon.M2.vabsdiffw",
-+ "llvm.hexagon.M2.vcmac.s0.sat.i",
-+ "llvm.hexagon.M2.vcmac.s0.sat.r",
-+ "llvm.hexagon.M2.vcmpy.s0.sat.i",
-+ "llvm.hexagon.M2.vcmpy.s0.sat.r",
-+ "llvm.hexagon.M2.vcmpy.s1.sat.i",
-+ "llvm.hexagon.M2.vcmpy.s1.sat.r",
-+ "llvm.hexagon.M2.vdmacs.s0",
-+ "llvm.hexagon.M2.vdmacs.s1",
-+ "llvm.hexagon.M2.vdmpyrs.s0",
-+ "llvm.hexagon.M2.vdmpyrs.s1",
-+ "llvm.hexagon.M2.vdmpys.s0",
-+ "llvm.hexagon.M2.vdmpys.s1",
-+ "llvm.hexagon.M2.vmac2",
-+ "llvm.hexagon.M2.vmac2es",
-+ "llvm.hexagon.M2.vmac2es.s0",
-+ "llvm.hexagon.M2.vmac2es.s1",
-+ "llvm.hexagon.M2.vmac2s.s0",
-+ "llvm.hexagon.M2.vmac2s.s1",
-+ "llvm.hexagon.M2.vmac2su.s0",
-+ "llvm.hexagon.M2.vmac2su.s1",
-+ "llvm.hexagon.M2.vmpy2es.s0",
-+ "llvm.hexagon.M2.vmpy2es.s1",
-+ "llvm.hexagon.M2.vmpy2s.s0",
-+ "llvm.hexagon.M2.vmpy2s.s0pack",
-+ "llvm.hexagon.M2.vmpy2s.s1",
-+ "llvm.hexagon.M2.vmpy2s.s1pack",
-+ "llvm.hexagon.M2.vmpy2su.s0",
-+ "llvm.hexagon.M2.vmpy2su.s1",
-+ "llvm.hexagon.M2.vraddh",
-+ "llvm.hexagon.M2.vradduh",
-+ "llvm.hexagon.M2.vrcmaci.s0",
-+ "llvm.hexagon.M2.vrcmaci.s0c",
-+ "llvm.hexagon.M2.vrcmacr.s0",
-+ "llvm.hexagon.M2.vrcmacr.s0c",
-+ "llvm.hexagon.M2.vrcmpyi.s0",
-+ "llvm.hexagon.M2.vrcmpyi.s0c",
-+ "llvm.hexagon.M2.vrcmpyr.s0",
-+ "llvm.hexagon.M2.vrcmpyr.s0c",
-+ "llvm.hexagon.M2.vrcmpys.acc.s1",
-+ "llvm.hexagon.M2.vrcmpys.s1",
-+ "llvm.hexagon.M2.vrcmpys.s1rp",
-+ "llvm.hexagon.M2.vrmac.s0",
-+ "llvm.hexagon.M2.vrmpy.s0",
-+ "llvm.hexagon.M2.xor.xacc",
-+ "llvm.hexagon.M4.and.and",
-+ "llvm.hexagon.M4.and.andn",
-+ "llvm.hexagon.M4.and.or",
-+ "llvm.hexagon.M4.and.xor",
-+ "llvm.hexagon.M4.cmpyi.wh",
-+ "llvm.hexagon.M4.cmpyi.whc",
-+ "llvm.hexagon.M4.cmpyr.wh",
-+ "llvm.hexagon.M4.cmpyr.whc",
-+ "llvm.hexagon.M4.mac.up.s1.sat",
-+ "llvm.hexagon.M4.mpyri.addi",
-+ "llvm.hexagon.M4.mpyri.addr",
-+ "llvm.hexagon.M4.mpyri.addr.u2",
-+ "llvm.hexagon.M4.mpyrr.addi",
-+ "llvm.hexagon.M4.mpyrr.addr",
-+ "llvm.hexagon.M4.nac.up.s1.sat",
-+ "llvm.hexagon.M4.or.and",
-+ "llvm.hexagon.M4.or.andn",
-+ "llvm.hexagon.M4.or.or",
-+ "llvm.hexagon.M4.or.xor",
-+ "llvm.hexagon.M4.pmpyw",
-+ "llvm.hexagon.M4.pmpyw.acc",
-+ "llvm.hexagon.M4.vpmpyh",
-+ "llvm.hexagon.M4.vpmpyh.acc",
-+ "llvm.hexagon.M4.vrmpyeh.acc.s0",
-+ "llvm.hexagon.M4.vrmpyeh.acc.s1",
-+ "llvm.hexagon.M4.vrmpyeh.s0",
-+ "llvm.hexagon.M4.vrmpyeh.s1",
-+ "llvm.hexagon.M4.vrmpyoh.acc.s0",
-+ "llvm.hexagon.M4.vrmpyoh.acc.s1",
-+ "llvm.hexagon.M4.vrmpyoh.s0",
-+ "llvm.hexagon.M4.vrmpyoh.s1",
-+ "llvm.hexagon.M4.xor.and",
-+ "llvm.hexagon.M4.xor.andn",
-+ "llvm.hexagon.M4.xor.or",
-+ "llvm.hexagon.M4.xor.xacc",
-+ "llvm.hexagon.M5.vdmacbsu",
-+ "llvm.hexagon.M5.vdmpybsu",
-+ "llvm.hexagon.M5.vmacbsu",
-+ "llvm.hexagon.M5.vmacbuu",
-+ "llvm.hexagon.M5.vmpybsu",
-+ "llvm.hexagon.M5.vmpybuu",
-+ "llvm.hexagon.M5.vrmacbsu",
-+ "llvm.hexagon.M5.vrmacbuu",
-+ "llvm.hexagon.M5.vrmpybsu",
-+ "llvm.hexagon.M5.vrmpybuu",
-+ "llvm.hexagon.M6.vabsdiffb",
-+ "llvm.hexagon.M6.vabsdiffub",
-+ "llvm.hexagon.S2.addasl.rrri",
-+ "llvm.hexagon.S2.asl.i.p",
-+ "llvm.hexagon.S2.asl.i.p.acc",
-+ "llvm.hexagon.S2.asl.i.p.and",
-+ "llvm.hexagon.S2.asl.i.p.nac",
-+ "llvm.hexagon.S2.asl.i.p.or",
-+ "llvm.hexagon.S2.asl.i.p.xacc",
-+ "llvm.hexagon.S2.asl.i.r",
-+ "llvm.hexagon.S2.asl.i.r.acc",
-+ "llvm.hexagon.S2.asl.i.r.and",
-+ "llvm.hexagon.S2.asl.i.r.nac",
-+ "llvm.hexagon.S2.asl.i.r.or",
-+ "llvm.hexagon.S2.asl.i.r.sat",
-+ "llvm.hexagon.S2.asl.i.r.xacc",
-+ "llvm.hexagon.S2.asl.i.vh",
-+ "llvm.hexagon.S2.asl.i.vw",
-+ "llvm.hexagon.S2.asl.r.p",
-+ "llvm.hexagon.S2.asl.r.p.acc",
-+ "llvm.hexagon.S2.asl.r.p.and",
-+ "llvm.hexagon.S2.asl.r.p.nac",
-+ "llvm.hexagon.S2.asl.r.p.or",
-+ "llvm.hexagon.S2.asl.r.p.xor",
-+ "llvm.hexagon.S2.asl.r.r",
-+ "llvm.hexagon.S2.asl.r.r.acc",
-+ "llvm.hexagon.S2.asl.r.r.and",
-+ "llvm.hexagon.S2.asl.r.r.nac",
-+ "llvm.hexagon.S2.asl.r.r.or",
-+ "llvm.hexagon.S2.asl.r.r.sat",
-+ "llvm.hexagon.S2.asl.r.vh",
-+ "llvm.hexagon.S2.asl.r.vw",
-+ "llvm.hexagon.S2.asr.i.p",
-+ "llvm.hexagon.S2.asr.i.p.acc",
-+ "llvm.hexagon.S2.asr.i.p.and",
-+ "llvm.hexagon.S2.asr.i.p.nac",
-+ "llvm.hexagon.S2.asr.i.p.or",
-+ "llvm.hexagon.S2.asr.i.p.rnd",
-+ "llvm.hexagon.S2.asr.i.p.rnd.goodsyntax",
-+ "llvm.hexagon.S2.asr.i.r",
-+ "llvm.hexagon.S2.asr.i.r.acc",
-+ "llvm.hexagon.S2.asr.i.r.and",
-+ "llvm.hexagon.S2.asr.i.r.nac",
-+ "llvm.hexagon.S2.asr.i.r.or",
-+ "llvm.hexagon.S2.asr.i.r.rnd",
-+ "llvm.hexagon.S2.asr.i.r.rnd.goodsyntax",
-+ "llvm.hexagon.S2.asr.i.svw.trun",
-+ "llvm.hexagon.S2.asr.i.vh",
-+ "llvm.hexagon.S2.asr.i.vw",
-+ "llvm.hexagon.S2.asr.r.p",
-+ "llvm.hexagon.S2.asr.r.p.acc",
-+ "llvm.hexagon.S2.asr.r.p.and",
-+ "llvm.hexagon.S2.asr.r.p.nac",
-+ "llvm.hexagon.S2.asr.r.p.or",
-+ "llvm.hexagon.S2.asr.r.p.xor",
-+ "llvm.hexagon.S2.asr.r.r",
-+ "llvm.hexagon.S2.asr.r.r.acc",
-+ "llvm.hexagon.S2.asr.r.r.and",
-+ "llvm.hexagon.S2.asr.r.r.nac",
-+ "llvm.hexagon.S2.asr.r.r.or",
-+ "llvm.hexagon.S2.asr.r.r.sat",
-+ "llvm.hexagon.S2.asr.r.svw.trun",
-+ "llvm.hexagon.S2.asr.r.vh",
-+ "llvm.hexagon.S2.asr.r.vw",
-+ "llvm.hexagon.S2.brev",
-+ "llvm.hexagon.S2.brevp",
-+ "llvm.hexagon.S2.cabacencbin",
-+ "llvm.hexagon.S2.cl0",
-+ "llvm.hexagon.S2.cl0p",
-+ "llvm.hexagon.S2.cl1",
-+ "llvm.hexagon.S2.cl1p",
-+ "llvm.hexagon.S2.clb",
-+ "llvm.hexagon.S2.clbnorm",
-+ "llvm.hexagon.S2.clbp",
-+ "llvm.hexagon.S2.clrbit.i",
-+ "llvm.hexagon.S2.clrbit.r",
-+ "llvm.hexagon.S2.ct0",
-+ "llvm.hexagon.S2.ct0p",
-+ "llvm.hexagon.S2.ct1",
-+ "llvm.hexagon.S2.ct1p",
-+ "llvm.hexagon.S2.deinterleave",
-+ "llvm.hexagon.S2.extractu",
-+ "llvm.hexagon.S2.extractu.rp",
-+ "llvm.hexagon.S2.extractup",
-+ "llvm.hexagon.S2.extractup.rp",
-+ "llvm.hexagon.S2.insert",
-+ "llvm.hexagon.S2.insert.rp",
-+ "llvm.hexagon.S2.insertp",
-+ "llvm.hexagon.S2.insertp.rp",
-+ "llvm.hexagon.S2.interleave",
-+ "llvm.hexagon.S2.lfsp",
-+ "llvm.hexagon.S2.lsl.r.p",
-+ "llvm.hexagon.S2.lsl.r.p.acc",
-+ "llvm.hexagon.S2.lsl.r.p.and",
-+ "llvm.hexagon.S2.lsl.r.p.nac",
-+ "llvm.hexagon.S2.lsl.r.p.or",
-+ "llvm.hexagon.S2.lsl.r.p.xor",
-+ "llvm.hexagon.S2.lsl.r.r",
-+ "llvm.hexagon.S2.lsl.r.r.acc",
-+ "llvm.hexagon.S2.lsl.r.r.and",
-+ "llvm.hexagon.S2.lsl.r.r.nac",
-+ "llvm.hexagon.S2.lsl.r.r.or",
-+ "llvm.hexagon.S2.lsl.r.vh",
-+ "llvm.hexagon.S2.lsl.r.vw",
-+ "llvm.hexagon.S2.lsr.i.p",
-+ "llvm.hexagon.S2.lsr.i.p.acc",
-+ "llvm.hexagon.S2.lsr.i.p.and",
-+ "llvm.hexagon.S2.lsr.i.p.nac",
-+ "llvm.hexagon.S2.lsr.i.p.or",
-+ "llvm.hexagon.S2.lsr.i.p.xacc",
-+ "llvm.hexagon.S2.lsr.i.r",
-+ "llvm.hexagon.S2.lsr.i.r.acc",
-+ "llvm.hexagon.S2.lsr.i.r.and",
-+ "llvm.hexagon.S2.lsr.i.r.nac",
-+ "llvm.hexagon.S2.lsr.i.r.or",
-+ "llvm.hexagon.S2.lsr.i.r.xacc",
-+ "llvm.hexagon.S2.lsr.i.vh",
-+ "llvm.hexagon.S2.lsr.i.vw",
-+ "llvm.hexagon.S2.lsr.r.p",
-+ "llvm.hexagon.S2.lsr.r.p.acc",
-+ "llvm.hexagon.S2.lsr.r.p.and",
-+ "llvm.hexagon.S2.lsr.r.p.nac",
-+ "llvm.hexagon.S2.lsr.r.p.or",
-+ "llvm.hexagon.S2.lsr.r.p.xor",
-+ "llvm.hexagon.S2.lsr.r.r",
-+ "llvm.hexagon.S2.lsr.r.r.acc",
-+ "llvm.hexagon.S2.lsr.r.r.and",
-+ "llvm.hexagon.S2.lsr.r.r.nac",
-+ "llvm.hexagon.S2.lsr.r.r.or",
-+ "llvm.hexagon.S2.lsr.r.vh",
-+ "llvm.hexagon.S2.lsr.r.vw",
-+ "llvm.hexagon.S2.packhl",
-+ "llvm.hexagon.S2.parityp",
-+ "llvm.hexagon.S2.setbit.i",
-+ "llvm.hexagon.S2.setbit.r",
-+ "llvm.hexagon.S2.shuffeb",
-+ "llvm.hexagon.S2.shuffeh",
-+ "llvm.hexagon.S2.shuffob",
-+ "llvm.hexagon.S2.shuffoh",
-+ "llvm.hexagon.S2.storew.locked",
-+ "llvm.hexagon.S2.svsathb",
-+ "llvm.hexagon.S2.svsathub",
-+ "llvm.hexagon.S2.tableidxb.goodsyntax",
-+ "llvm.hexagon.S2.tableidxd.goodsyntax",
-+ "llvm.hexagon.S2.tableidxh.goodsyntax",
-+ "llvm.hexagon.S2.tableidxw.goodsyntax",
-+ "llvm.hexagon.S2.togglebit.i",
-+ "llvm.hexagon.S2.togglebit.r",
-+ "llvm.hexagon.S2.tstbit.i",
-+ "llvm.hexagon.S2.tstbit.r",
-+ "llvm.hexagon.S2.valignib",
-+ "llvm.hexagon.S2.valignrb",
-+ "llvm.hexagon.S2.vcnegh",
-+ "llvm.hexagon.S2.vcrotate",
-+ "llvm.hexagon.S2.vrcnegh",
-+ "llvm.hexagon.S2.vrndpackwh",
-+ "llvm.hexagon.S2.vrndpackwhs",
-+ "llvm.hexagon.S2.vsathb",
-+ "llvm.hexagon.S2.vsathb.nopack",
-+ "llvm.hexagon.S2.vsathub",
-+ "llvm.hexagon.S2.vsathub.nopack",
-+ "llvm.hexagon.S2.vsatwh",
-+ "llvm.hexagon.S2.vsatwh.nopack",
-+ "llvm.hexagon.S2.vsatwuh",
-+ "llvm.hexagon.S2.vsatwuh.nopack",
-+ "llvm.hexagon.S2.vsplatrb",
-+ "llvm.hexagon.S2.vsplatrh",
-+ "llvm.hexagon.S2.vspliceib",
-+ "llvm.hexagon.S2.vsplicerb",
-+ "llvm.hexagon.S2.vsxtbh",
-+ "llvm.hexagon.S2.vsxthw",
-+ "llvm.hexagon.S2.vtrunehb",
-+ "llvm.hexagon.S2.vtrunewh",
-+ "llvm.hexagon.S2.vtrunohb",
-+ "llvm.hexagon.S2.vtrunowh",
-+ "llvm.hexagon.S2.vzxtbh",
-+ "llvm.hexagon.S2.vzxthw",
-+ "llvm.hexagon.S4.addaddi",
-+ "llvm.hexagon.S4.addi.asl.ri",
-+ "llvm.hexagon.S4.addi.lsr.ri",
-+ "llvm.hexagon.S4.andi.asl.ri",
-+ "llvm.hexagon.S4.andi.lsr.ri",
-+ "llvm.hexagon.S4.clbaddi",
-+ "llvm.hexagon.S4.clbpaddi",
-+ "llvm.hexagon.S4.clbpnorm",
-+ "llvm.hexagon.S4.extract",
-+ "llvm.hexagon.S4.extract.rp",
-+ "llvm.hexagon.S4.extractp",
-+ "llvm.hexagon.S4.extractp.rp",
-+ "llvm.hexagon.S4.lsli",
-+ "llvm.hexagon.S4.ntstbit.i",
-+ "llvm.hexagon.S4.ntstbit.r",
-+ "llvm.hexagon.S4.or.andi",
-+ "llvm.hexagon.S4.or.andix",
-+ "llvm.hexagon.S4.or.ori",
-+ "llvm.hexagon.S4.ori.asl.ri",
-+ "llvm.hexagon.S4.ori.lsr.ri",
-+ "llvm.hexagon.S4.parity",
-+ "llvm.hexagon.S4.stored.locked",
-+ "llvm.hexagon.S4.subaddi",
-+ "llvm.hexagon.S4.subi.asl.ri",
-+ "llvm.hexagon.S4.subi.lsr.ri",
-+ "llvm.hexagon.S4.vrcrotate",
-+ "llvm.hexagon.S4.vrcrotate.acc",
-+ "llvm.hexagon.S4.vxaddsubh",
-+ "llvm.hexagon.S4.vxaddsubhr",
-+ "llvm.hexagon.S4.vxaddsubw",
-+ "llvm.hexagon.S4.vxsubaddh",
-+ "llvm.hexagon.S4.vxsubaddhr",
-+ "llvm.hexagon.S4.vxsubaddw",
-+ "llvm.hexagon.S5.asrhub.rnd.sat.goodsyntax",
-+ "llvm.hexagon.S5.asrhub.sat",
-+ "llvm.hexagon.S5.popcountp",
-+ "llvm.hexagon.S5.vasrhrnd.goodsyntax",
-+ "llvm.hexagon.S6.rol.i.p",
-+ "llvm.hexagon.S6.rol.i.p.acc",
-+ "llvm.hexagon.S6.rol.i.p.and",
-+ "llvm.hexagon.S6.rol.i.p.nac",
-+ "llvm.hexagon.S6.rol.i.p.or",
-+ "llvm.hexagon.S6.rol.i.p.xacc",
-+ "llvm.hexagon.S6.rol.i.r",
-+ "llvm.hexagon.S6.rol.i.r.acc",
-+ "llvm.hexagon.S6.rol.i.r.and",
-+ "llvm.hexagon.S6.rol.i.r.nac",
-+ "llvm.hexagon.S6.rol.i.r.or",
-+ "llvm.hexagon.S6.rol.i.r.xacc",
-+ "llvm.hexagon.S6.vsplatrbp",
-+ "llvm.hexagon.S6.vtrunehb.ppp",
-+ "llvm.hexagon.S6.vtrunohb.ppp",
-+ "llvm.hexagon.SI.to.SXTHI.asrh",
-+ "llvm.hexagon.V6.extractw",
-+ "llvm.hexagon.V6.extractw.128B",
-+ "llvm.hexagon.V6.hi",
-+ "llvm.hexagon.V6.hi.128B",
-+ "llvm.hexagon.V6.lo",
-+ "llvm.hexagon.V6.lo.128B",
-+ "llvm.hexagon.V6.lvsplatw",
-+ "llvm.hexagon.V6.lvsplatw.128B",
-+ "llvm.hexagon.V6.pred.and",
-+ "llvm.hexagon.V6.pred.and.128B",
-+ "llvm.hexagon.V6.pred.and.n",
-+ "llvm.hexagon.V6.pred.and.n.128B",
-+ "llvm.hexagon.V6.pred.not",
-+ "llvm.hexagon.V6.pred.not.128B",
-+ "llvm.hexagon.V6.pred.or",
-+ "llvm.hexagon.V6.pred.or.128B",
-+ "llvm.hexagon.V6.pred.or.n",
-+ "llvm.hexagon.V6.pred.or.n.128B",
-+ "llvm.hexagon.V6.pred.scalar2",
-+ "llvm.hexagon.V6.pred.scalar2.128B",
-+ "llvm.hexagon.V6.pred.xor",
-+ "llvm.hexagon.V6.pred.xor.128B",
-+ "llvm.hexagon.V6.vabsdiffh",
-+ "llvm.hexagon.V6.vabsdiffh.128B",
-+ "llvm.hexagon.V6.vabsdiffub",
-+ "llvm.hexagon.V6.vabsdiffub.128B",
-+ "llvm.hexagon.V6.vabsdiffuh",
-+ "llvm.hexagon.V6.vabsdiffuh.128B",
-+ "llvm.hexagon.V6.vabsdiffw",
-+ "llvm.hexagon.V6.vabsdiffw.128B",
-+ "llvm.hexagon.V6.vabsh",
-+ "llvm.hexagon.V6.vabsh.128B",
-+ "llvm.hexagon.V6.vabsh.sat",
-+ "llvm.hexagon.V6.vabsh.sat.128B",
-+ "llvm.hexagon.V6.vabsw",
-+ "llvm.hexagon.V6.vabsw.128B",
-+ "llvm.hexagon.V6.vabsw.sat",
-+ "llvm.hexagon.V6.vabsw.sat.128B",
-+ "llvm.hexagon.V6.vaddb",
-+ "llvm.hexagon.V6.vaddb.128B",
-+ "llvm.hexagon.V6.vaddb.dv",
-+ "llvm.hexagon.V6.vaddb.dv.128B",
-+ "llvm.hexagon.V6.vaddbnq",
-+ "llvm.hexagon.V6.vaddbnq.128B",
-+ "llvm.hexagon.V6.vaddbq",
-+ "llvm.hexagon.V6.vaddbq.128B",
-+ "llvm.hexagon.V6.vaddh",
-+ "llvm.hexagon.V6.vaddh.128B",
-+ "llvm.hexagon.V6.vaddh.dv",
-+ "llvm.hexagon.V6.vaddh.dv.128B",
-+ "llvm.hexagon.V6.vaddhnq",
-+ "llvm.hexagon.V6.vaddhnq.128B",
-+ "llvm.hexagon.V6.vaddhq",
-+ "llvm.hexagon.V6.vaddhq.128B",
-+ "llvm.hexagon.V6.vaddhsat",
-+ "llvm.hexagon.V6.vaddhsat.128B",
-+ "llvm.hexagon.V6.vaddhsat.dv",
-+ "llvm.hexagon.V6.vaddhsat.dv.128B",
-+ "llvm.hexagon.V6.vaddhw",
-+ "llvm.hexagon.V6.vaddhw.128B",
-+ "llvm.hexagon.V6.vaddubh",
-+ "llvm.hexagon.V6.vaddubh.128B",
-+ "llvm.hexagon.V6.vaddubsat",
-+ "llvm.hexagon.V6.vaddubsat.128B",
-+ "llvm.hexagon.V6.vaddubsat.dv",
-+ "llvm.hexagon.V6.vaddubsat.dv.128B",
-+ "llvm.hexagon.V6.vadduhsat",
-+ "llvm.hexagon.V6.vadduhsat.128B",
-+ "llvm.hexagon.V6.vadduhsat.dv",
-+ "llvm.hexagon.V6.vadduhsat.dv.128B",
-+ "llvm.hexagon.V6.vadduhw",
-+ "llvm.hexagon.V6.vadduhw.128B",
-+ "llvm.hexagon.V6.vaddw",
-+ "llvm.hexagon.V6.vaddw.128B",
-+ "llvm.hexagon.V6.vaddw.dv",
-+ "llvm.hexagon.V6.vaddw.dv.128B",
-+ "llvm.hexagon.V6.vaddwnq",
-+ "llvm.hexagon.V6.vaddwnq.128B",
-+ "llvm.hexagon.V6.vaddwq",
-+ "llvm.hexagon.V6.vaddwq.128B",
-+ "llvm.hexagon.V6.vaddwsat",
-+ "llvm.hexagon.V6.vaddwsat.128B",
-+ "llvm.hexagon.V6.vaddwsat.dv",
-+ "llvm.hexagon.V6.vaddwsat.dv.128B",
-+ "llvm.hexagon.V6.valignb",
-+ "llvm.hexagon.V6.valignb.128B",
-+ "llvm.hexagon.V6.valignbi",
-+ "llvm.hexagon.V6.valignbi.128B",
-+ "llvm.hexagon.V6.vand",
-+ "llvm.hexagon.V6.vand.128B",
-+ "llvm.hexagon.V6.vandqrt",
-+ "llvm.hexagon.V6.vandqrt.128B",
-+ "llvm.hexagon.V6.vandqrt.acc",
-+ "llvm.hexagon.V6.vandqrt.acc.128B",
-+ "llvm.hexagon.V6.vandvrt",
-+ "llvm.hexagon.V6.vandvrt.128B",
-+ "llvm.hexagon.V6.vandvrt.acc",
-+ "llvm.hexagon.V6.vandvrt.acc.128B",
-+ "llvm.hexagon.V6.vaslh",
-+ "llvm.hexagon.V6.vaslh.128B",
-+ "llvm.hexagon.V6.vaslhv",
-+ "llvm.hexagon.V6.vaslhv.128B",
-+ "llvm.hexagon.V6.vaslw",
-+ "llvm.hexagon.V6.vaslw.128B",
-+ "llvm.hexagon.V6.vaslw.acc",
-+ "llvm.hexagon.V6.vaslw.acc.128B",
-+ "llvm.hexagon.V6.vaslwv",
-+ "llvm.hexagon.V6.vaslwv.128B",
-+ "llvm.hexagon.V6.vasrh",
-+ "llvm.hexagon.V6.vasrh.128B",
-+ "llvm.hexagon.V6.vasrhbrndsat",
-+ "llvm.hexagon.V6.vasrhbrndsat.128B",
-+ "llvm.hexagon.V6.vasrhubrndsat",
-+ "llvm.hexagon.V6.vasrhubrndsat.128B",
-+ "llvm.hexagon.V6.vasrhubsat",
-+ "llvm.hexagon.V6.vasrhubsat.128B",
-+ "llvm.hexagon.V6.vasrhv",
-+ "llvm.hexagon.V6.vasrhv.128B",
-+ "llvm.hexagon.V6.vasrw",
-+ "llvm.hexagon.V6.vasrw.128B",
-+ "llvm.hexagon.V6.vasrw.acc",
-+ "llvm.hexagon.V6.vasrw.acc.128B",
-+ "llvm.hexagon.V6.vasrwh",
-+ "llvm.hexagon.V6.vasrwh.128B",
-+ "llvm.hexagon.V6.vasrwhrndsat",
-+ "llvm.hexagon.V6.vasrwhrndsat.128B",
-+ "llvm.hexagon.V6.vasrwhsat",
-+ "llvm.hexagon.V6.vasrwhsat.128B",
-+ "llvm.hexagon.V6.vasrwuhsat",
-+ "llvm.hexagon.V6.vasrwuhsat.128B",
-+ "llvm.hexagon.V6.vasrwv",
-+ "llvm.hexagon.V6.vasrwv.128B",
-+ "llvm.hexagon.V6.vassign",
-+ "llvm.hexagon.V6.vassign.128B",
-+ "llvm.hexagon.V6.vassignp",
-+ "llvm.hexagon.V6.vassignp.128B",
-+ "llvm.hexagon.V6.vavgh",
-+ "llvm.hexagon.V6.vavgh.128B",
-+ "llvm.hexagon.V6.vavghrnd",
-+ "llvm.hexagon.V6.vavghrnd.128B",
-+ "llvm.hexagon.V6.vavgub",
-+ "llvm.hexagon.V6.vavgub.128B",
-+ "llvm.hexagon.V6.vavgubrnd",
-+ "llvm.hexagon.V6.vavgubrnd.128B",
-+ "llvm.hexagon.V6.vavguh",
-+ "llvm.hexagon.V6.vavguh.128B",
-+ "llvm.hexagon.V6.vavguhrnd",
-+ "llvm.hexagon.V6.vavguhrnd.128B",
-+ "llvm.hexagon.V6.vavgw",
-+ "llvm.hexagon.V6.vavgw.128B",
-+ "llvm.hexagon.V6.vavgwrnd",
-+ "llvm.hexagon.V6.vavgwrnd.128B",
-+ "llvm.hexagon.V6.vcl0h",
-+ "llvm.hexagon.V6.vcl0h.128B",
-+ "llvm.hexagon.V6.vcl0w",
-+ "llvm.hexagon.V6.vcl0w.128B",
-+ "llvm.hexagon.V6.vcombine",
-+ "llvm.hexagon.V6.vcombine.128B",
-+ "llvm.hexagon.V6.vd0",
-+ "llvm.hexagon.V6.vd0.128B",
-+ "llvm.hexagon.V6.vdealb",
-+ "llvm.hexagon.V6.vdealb.128B",
-+ "llvm.hexagon.V6.vdealb4w",
-+ "llvm.hexagon.V6.vdealb4w.128B",
-+ "llvm.hexagon.V6.vdealh",
-+ "llvm.hexagon.V6.vdealh.128B",
-+ "llvm.hexagon.V6.vdealvdd",
-+ "llvm.hexagon.V6.vdealvdd.128B",
-+ "llvm.hexagon.V6.vdelta",
-+ "llvm.hexagon.V6.vdelta.128B",
-+ "llvm.hexagon.V6.vdmpybus",
-+ "llvm.hexagon.V6.vdmpybus.128B",
-+ "llvm.hexagon.V6.vdmpybus.acc",
-+ "llvm.hexagon.V6.vdmpybus.acc.128B",
-+ "llvm.hexagon.V6.vdmpybus.dv",
-+ "llvm.hexagon.V6.vdmpybus.dv.128B",
-+ "llvm.hexagon.V6.vdmpybus.dv.acc",
-+ "llvm.hexagon.V6.vdmpybus.dv.acc.128B",
-+ "llvm.hexagon.V6.vdmpyhb",
-+ "llvm.hexagon.V6.vdmpyhb.128B",
-+ "llvm.hexagon.V6.vdmpyhb.acc",
-+ "llvm.hexagon.V6.vdmpyhb.acc.128B",
-+ "llvm.hexagon.V6.vdmpyhb.dv",
-+ "llvm.hexagon.V6.vdmpyhb.dv.128B",
-+ "llvm.hexagon.V6.vdmpyhb.dv.acc",
-+ "llvm.hexagon.V6.vdmpyhb.dv.acc.128B",
-+ "llvm.hexagon.V6.vdmpyhisat",
-+ "llvm.hexagon.V6.vdmpyhisat.128B",
-+ "llvm.hexagon.V6.vdmpyhisat.acc",
-+ "llvm.hexagon.V6.vdmpyhisat.acc.128B",
-+ "llvm.hexagon.V6.vdmpyhsat",
-+ "llvm.hexagon.V6.vdmpyhsat.128B",
-+ "llvm.hexagon.V6.vdmpyhsat.acc",
-+ "llvm.hexagon.V6.vdmpyhsat.acc.128B",
-+ "llvm.hexagon.V6.vdmpyhsuisat",
-+ "llvm.hexagon.V6.vdmpyhsuisat.128B",
-+ "llvm.hexagon.V6.vdmpyhsuisat.acc",
-+ "llvm.hexagon.V6.vdmpyhsuisat.acc.128B",
-+ "llvm.hexagon.V6.vdmpyhsusat",
-+ "llvm.hexagon.V6.vdmpyhsusat.128B",
-+ "llvm.hexagon.V6.vdmpyhsusat.acc",
-+ "llvm.hexagon.V6.vdmpyhsusat.acc.128B",
-+ "llvm.hexagon.V6.vdmpyhvsat",
-+ "llvm.hexagon.V6.vdmpyhvsat.128B",
-+ "llvm.hexagon.V6.vdmpyhvsat.acc",
-+ "llvm.hexagon.V6.vdmpyhvsat.acc.128B",
-+ "llvm.hexagon.V6.vdsaduh",
-+ "llvm.hexagon.V6.vdsaduh.128B",
-+ "llvm.hexagon.V6.vdsaduh.acc",
-+ "llvm.hexagon.V6.vdsaduh.acc.128B",
-+ "llvm.hexagon.V6.veqb",
-+ "llvm.hexagon.V6.veqb.128B",
-+ "llvm.hexagon.V6.veqb.and",
-+ "llvm.hexagon.V6.veqb.and.128B",
-+ "llvm.hexagon.V6.veqb.or",
-+ "llvm.hexagon.V6.veqb.or.128B",
-+ "llvm.hexagon.V6.veqb.xor",
-+ "llvm.hexagon.V6.veqb.xor.128B",
-+ "llvm.hexagon.V6.veqh",
-+ "llvm.hexagon.V6.veqh.128B",
-+ "llvm.hexagon.V6.veqh.and",
-+ "llvm.hexagon.V6.veqh.and.128B",
-+ "llvm.hexagon.V6.veqh.or",
-+ "llvm.hexagon.V6.veqh.or.128B",
-+ "llvm.hexagon.V6.veqh.xor",
-+ "llvm.hexagon.V6.veqh.xor.128B",
-+ "llvm.hexagon.V6.veqw",
-+ "llvm.hexagon.V6.veqw.128B",
-+ "llvm.hexagon.V6.veqw.and",
-+ "llvm.hexagon.V6.veqw.and.128B",
-+ "llvm.hexagon.V6.veqw.or",
-+ "llvm.hexagon.V6.veqw.or.128B",
-+ "llvm.hexagon.V6.veqw.xor",
-+ "llvm.hexagon.V6.veqw.xor.128B",
-+ "llvm.hexagon.V6.vgtb",
-+ "llvm.hexagon.V6.vgtb.128B",
-+ "llvm.hexagon.V6.vgtb.and",
-+ "llvm.hexagon.V6.vgtb.and.128B",
-+ "llvm.hexagon.V6.vgtb.or",
-+ "llvm.hexagon.V6.vgtb.or.128B",
-+ "llvm.hexagon.V6.vgtb.xor",
-+ "llvm.hexagon.V6.vgtb.xor.128B",
-+ "llvm.hexagon.V6.vgth",
-+ "llvm.hexagon.V6.vgth.128B",
-+ "llvm.hexagon.V6.vgth.and",
-+ "llvm.hexagon.V6.vgth.and.128B",
-+ "llvm.hexagon.V6.vgth.or",
-+ "llvm.hexagon.V6.vgth.or.128B",
-+ "llvm.hexagon.V6.vgth.xor",
-+ "llvm.hexagon.V6.vgth.xor.128B",
-+ "llvm.hexagon.V6.vgtub",
-+ "llvm.hexagon.V6.vgtub.128B",
-+ "llvm.hexagon.V6.vgtub.and",
-+ "llvm.hexagon.V6.vgtub.and.128B",
-+ "llvm.hexagon.V6.vgtub.or",
-+ "llvm.hexagon.V6.vgtub.or.128B",
-+ "llvm.hexagon.V6.vgtub.xor",
-+ "llvm.hexagon.V6.vgtub.xor.128B",
-+ "llvm.hexagon.V6.vgtuh",
-+ "llvm.hexagon.V6.vgtuh.128B",
-+ "llvm.hexagon.V6.vgtuh.and",
-+ "llvm.hexagon.V6.vgtuh.and.128B",
-+ "llvm.hexagon.V6.vgtuh.or",
-+ "llvm.hexagon.V6.vgtuh.or.128B",
-+ "llvm.hexagon.V6.vgtuh.xor",
-+ "llvm.hexagon.V6.vgtuh.xor.128B",
-+ "llvm.hexagon.V6.vgtuw",
-+ "llvm.hexagon.V6.vgtuw.128B",
-+ "llvm.hexagon.V6.vgtuw.and",
-+ "llvm.hexagon.V6.vgtuw.and.128B",
-+ "llvm.hexagon.V6.vgtuw.or",
-+ "llvm.hexagon.V6.vgtuw.or.128B",
-+ "llvm.hexagon.V6.vgtuw.xor",
-+ "llvm.hexagon.V6.vgtuw.xor.128B",
-+ "llvm.hexagon.V6.vgtw",
-+ "llvm.hexagon.V6.vgtw.128B",
-+ "llvm.hexagon.V6.vgtw.and",
-+ "llvm.hexagon.V6.vgtw.and.128B",
-+ "llvm.hexagon.V6.vgtw.or",
-+ "llvm.hexagon.V6.vgtw.or.128B",
-+ "llvm.hexagon.V6.vgtw.xor",
-+ "llvm.hexagon.V6.vgtw.xor.128B",
-+ "llvm.hexagon.V6.vinsertwr",
-+ "llvm.hexagon.V6.vinsertwr.128B",
-+ "llvm.hexagon.V6.vlalignb",
-+ "llvm.hexagon.V6.vlalignb.128B",
-+ "llvm.hexagon.V6.vlalignbi",
-+ "llvm.hexagon.V6.vlalignbi.128B",
-+ "llvm.hexagon.V6.vlsrh",
-+ "llvm.hexagon.V6.vlsrh.128B",
-+ "llvm.hexagon.V6.vlsrhv",
-+ "llvm.hexagon.V6.vlsrhv.128B",
-+ "llvm.hexagon.V6.vlsrw",
-+ "llvm.hexagon.V6.vlsrw.128B",
-+ "llvm.hexagon.V6.vlsrwv",
-+ "llvm.hexagon.V6.vlsrwv.128B",
-+ "llvm.hexagon.V6.vlutb",
-+ "llvm.hexagon.V6.vlutb.128B",
-+ "llvm.hexagon.V6.vlutb.acc",
-+ "llvm.hexagon.V6.vlutb.acc.128B",
-+ "llvm.hexagon.V6.vlutb.dv",
-+ "llvm.hexagon.V6.vlutb.dv.128B",
-+ "llvm.hexagon.V6.vlutb.dv.acc",
-+ "llvm.hexagon.V6.vlutb.dv.acc.128B",
-+ "llvm.hexagon.V6.vlutvvb",
-+ "llvm.hexagon.V6.vlutvvb.128B",
-+ "llvm.hexagon.V6.vlutvvb.oracc",
-+ "llvm.hexagon.V6.vlutvvb.oracc.128B",
-+ "llvm.hexagon.V6.vlutvwh",
-+ "llvm.hexagon.V6.vlutvwh.128B",
-+ "llvm.hexagon.V6.vlutvwh.oracc",
-+ "llvm.hexagon.V6.vlutvwh.oracc.128B",
-+ "llvm.hexagon.V6.vmaxh",
-+ "llvm.hexagon.V6.vmaxh.128B",
-+ "llvm.hexagon.V6.vmaxub",
-+ "llvm.hexagon.V6.vmaxub.128B",
-+ "llvm.hexagon.V6.vmaxuh",
-+ "llvm.hexagon.V6.vmaxuh.128B",
-+ "llvm.hexagon.V6.vmaxw",
-+ "llvm.hexagon.V6.vmaxw.128B",
-+ "llvm.hexagon.V6.vminh",
-+ "llvm.hexagon.V6.vminh.128B",
-+ "llvm.hexagon.V6.vminub",
-+ "llvm.hexagon.V6.vminub.128B",
-+ "llvm.hexagon.V6.vminuh",
-+ "llvm.hexagon.V6.vminuh.128B",
-+ "llvm.hexagon.V6.vminw",
-+ "llvm.hexagon.V6.vminw.128B",
-+ "llvm.hexagon.V6.vmpabus",
-+ "llvm.hexagon.V6.vmpabus.128B",
-+ "llvm.hexagon.V6.vmpabus.acc",
-+ "llvm.hexagon.V6.vmpabus.acc.128B",
-+ "llvm.hexagon.V6.vmpabusv",
-+ "llvm.hexagon.V6.vmpabusv.128B",
-+ "llvm.hexagon.V6.vmpabuuv",
-+ "llvm.hexagon.V6.vmpabuuv.128B",
-+ "llvm.hexagon.V6.vmpahb",
-+ "llvm.hexagon.V6.vmpahb.128B",
-+ "llvm.hexagon.V6.vmpahb.acc",
-+ "llvm.hexagon.V6.vmpahb.acc.128B",
-+ "llvm.hexagon.V6.vmpybus",
-+ "llvm.hexagon.V6.vmpybus.128B",
-+ "llvm.hexagon.V6.vmpybus.acc",
-+ "llvm.hexagon.V6.vmpybus.acc.128B",
-+ "llvm.hexagon.V6.vmpybusv",
-+ "llvm.hexagon.V6.vmpybusv.128B",
-+ "llvm.hexagon.V6.vmpybusv.acc",
-+ "llvm.hexagon.V6.vmpybusv.acc.128B",
-+ "llvm.hexagon.V6.vmpybv",
-+ "llvm.hexagon.V6.vmpybv.128B",
-+ "llvm.hexagon.V6.vmpybv.acc",
-+ "llvm.hexagon.V6.vmpybv.acc.128B",
-+ "llvm.hexagon.V6.vmpyewuh",
-+ "llvm.hexagon.V6.vmpyewuh.128B",
-+ "llvm.hexagon.V6.vmpyh",
-+ "llvm.hexagon.V6.vmpyh.128B",
-+ "llvm.hexagon.V6.vmpyhsat.acc",
-+ "llvm.hexagon.V6.vmpyhsat.acc.128B",
-+ "llvm.hexagon.V6.vmpyhsrs",
-+ "llvm.hexagon.V6.vmpyhsrs.128B",
-+ "llvm.hexagon.V6.vmpyhss",
-+ "llvm.hexagon.V6.vmpyhss.128B",
-+ "llvm.hexagon.V6.vmpyhus",
-+ "llvm.hexagon.V6.vmpyhus.128B",
-+ "llvm.hexagon.V6.vmpyhus.acc",
-+ "llvm.hexagon.V6.vmpyhus.acc.128B",
-+ "llvm.hexagon.V6.vmpyhv",
-+ "llvm.hexagon.V6.vmpyhv.128B",
-+ "llvm.hexagon.V6.vmpyhv.acc",
-+ "llvm.hexagon.V6.vmpyhv.acc.128B",
-+ "llvm.hexagon.V6.vmpyhvsrs",
-+ "llvm.hexagon.V6.vmpyhvsrs.128B",
-+ "llvm.hexagon.V6.vmpyieoh",
-+ "llvm.hexagon.V6.vmpyieoh.128B",
-+ "llvm.hexagon.V6.vmpyiewh.acc",
-+ "llvm.hexagon.V6.vmpyiewh.acc.128B",
-+ "llvm.hexagon.V6.vmpyiewuh",
-+ "llvm.hexagon.V6.vmpyiewuh.128B",
-+ "llvm.hexagon.V6.vmpyiewuh.acc",
-+ "llvm.hexagon.V6.vmpyiewuh.acc.128B",
-+ "llvm.hexagon.V6.vmpyih",
-+ "llvm.hexagon.V6.vmpyih.128B",
-+ "llvm.hexagon.V6.vmpyih.acc",
-+ "llvm.hexagon.V6.vmpyih.acc.128B",
-+ "llvm.hexagon.V6.vmpyihb",
-+ "llvm.hexagon.V6.vmpyihb.128B",
-+ "llvm.hexagon.V6.vmpyihb.acc",
-+ "llvm.hexagon.V6.vmpyihb.acc.128B",
-+ "llvm.hexagon.V6.vmpyiowh",
-+ "llvm.hexagon.V6.vmpyiowh.128B",
-+ "llvm.hexagon.V6.vmpyiwb",
-+ "llvm.hexagon.V6.vmpyiwb.128B",
-+ "llvm.hexagon.V6.vmpyiwb.acc",
-+ "llvm.hexagon.V6.vmpyiwb.acc.128B",
-+ "llvm.hexagon.V6.vmpyiwh",
-+ "llvm.hexagon.V6.vmpyiwh.128B",
-+ "llvm.hexagon.V6.vmpyiwh.acc",
-+ "llvm.hexagon.V6.vmpyiwh.acc.128B",
-+ "llvm.hexagon.V6.vmpyowh",
-+ "llvm.hexagon.V6.vmpyowh.128B",
-+ "llvm.hexagon.V6.vmpyowh.rnd",
-+ "llvm.hexagon.V6.vmpyowh.rnd.128B",
-+ "llvm.hexagon.V6.vmpyowh.rnd.sacc",
-+ "llvm.hexagon.V6.vmpyowh.rnd.sacc.128B",
-+ "llvm.hexagon.V6.vmpyowh.sacc",
-+ "llvm.hexagon.V6.vmpyowh.sacc.128B",
-+ "llvm.hexagon.V6.vmpyub",
-+ "llvm.hexagon.V6.vmpyub.128B",
-+ "llvm.hexagon.V6.vmpyub.acc",
-+ "llvm.hexagon.V6.vmpyub.acc.128B",
-+ "llvm.hexagon.V6.vmpyubv",
-+ "llvm.hexagon.V6.vmpyubv.128B",
-+ "llvm.hexagon.V6.vmpyubv.acc",
-+ "llvm.hexagon.V6.vmpyubv.acc.128B",
-+ "llvm.hexagon.V6.vmpyuh",
-+ "llvm.hexagon.V6.vmpyuh.128B",
-+ "llvm.hexagon.V6.vmpyuh.acc",
-+ "llvm.hexagon.V6.vmpyuh.acc.128B",
-+ "llvm.hexagon.V6.vmpyuhv",
-+ "llvm.hexagon.V6.vmpyuhv.128B",
-+ "llvm.hexagon.V6.vmpyuhv.acc",
-+ "llvm.hexagon.V6.vmpyuhv.acc.128B",
-+ "llvm.hexagon.V6.vmux",
-+ "llvm.hexagon.V6.vmux.128B",
-+ "llvm.hexagon.V6.vnavgh",
-+ "llvm.hexagon.V6.vnavgh.128B",
-+ "llvm.hexagon.V6.vnavgub",
-+ "llvm.hexagon.V6.vnavgub.128B",
-+ "llvm.hexagon.V6.vnavgw",
-+ "llvm.hexagon.V6.vnavgw.128B",
-+ "llvm.hexagon.V6.vnormamth",
-+ "llvm.hexagon.V6.vnormamth.128B",
-+ "llvm.hexagon.V6.vnormamtw",
-+ "llvm.hexagon.V6.vnormamtw.128B",
-+ "llvm.hexagon.V6.vnot",
-+ "llvm.hexagon.V6.vnot.128B",
-+ "llvm.hexagon.V6.vor",
-+ "llvm.hexagon.V6.vor.128B",
-+ "llvm.hexagon.V6.vpackeb",
-+ "llvm.hexagon.V6.vpackeb.128B",
-+ "llvm.hexagon.V6.vpackeh",
-+ "llvm.hexagon.V6.vpackeh.128B",
-+ "llvm.hexagon.V6.vpackhb.sat",
-+ "llvm.hexagon.V6.vpackhb.sat.128B",
-+ "llvm.hexagon.V6.vpackhub.sat",
-+ "llvm.hexagon.V6.vpackhub.sat.128B",
-+ "llvm.hexagon.V6.vpackob",
-+ "llvm.hexagon.V6.vpackob.128B",
-+ "llvm.hexagon.V6.vpackoh",
-+ "llvm.hexagon.V6.vpackoh.128B",
-+ "llvm.hexagon.V6.vpackwh.sat",
-+ "llvm.hexagon.V6.vpackwh.sat.128B",
-+ "llvm.hexagon.V6.vpackwuh.sat",
-+ "llvm.hexagon.V6.vpackwuh.sat.128B",
-+ "llvm.hexagon.V6.vpopcounth",
-+ "llvm.hexagon.V6.vpopcounth.128B",
-+ "llvm.hexagon.V6.vrdelta",
-+ "llvm.hexagon.V6.vrdelta.128B",
-+ "llvm.hexagon.V6.vrmpybus",
-+ "llvm.hexagon.V6.vrmpybus.128B",
-+ "llvm.hexagon.V6.vrmpybus.acc",
-+ "llvm.hexagon.V6.vrmpybus.acc.128B",
-+ "llvm.hexagon.V6.vrmpybusi",
-+ "llvm.hexagon.V6.vrmpybusi.128B",
-+ "llvm.hexagon.V6.vrmpybusi.acc",
-+ "llvm.hexagon.V6.vrmpybusi.acc.128B",
-+ "llvm.hexagon.V6.vrmpybusv",
-+ "llvm.hexagon.V6.vrmpybusv.128B",
-+ "llvm.hexagon.V6.vrmpybusv.acc",
-+ "llvm.hexagon.V6.vrmpybusv.acc.128B",
-+ "llvm.hexagon.V6.vrmpybv",
-+ "llvm.hexagon.V6.vrmpybv.128B",
-+ "llvm.hexagon.V6.vrmpybv.acc",
-+ "llvm.hexagon.V6.vrmpybv.acc.128B",
-+ "llvm.hexagon.V6.vrmpyub",
-+ "llvm.hexagon.V6.vrmpyub.128B",
-+ "llvm.hexagon.V6.vrmpyub.acc",
-+ "llvm.hexagon.V6.vrmpyub.acc.128B",
-+ "llvm.hexagon.V6.vrmpyubi",
-+ "llvm.hexagon.V6.vrmpyubi.128B",
-+ "llvm.hexagon.V6.vrmpyubi.acc",
-+ "llvm.hexagon.V6.vrmpyubi.acc.128B",
-+ "llvm.hexagon.V6.vrmpyubv",
-+ "llvm.hexagon.V6.vrmpyubv.128B",
-+ "llvm.hexagon.V6.vrmpyubv.acc",
-+ "llvm.hexagon.V6.vrmpyubv.acc.128B",
-+ "llvm.hexagon.V6.vror",
-+ "llvm.hexagon.V6.vror.128B",
-+ "llvm.hexagon.V6.vroundhb",
-+ "llvm.hexagon.V6.vroundhb.128B",
-+ "llvm.hexagon.V6.vroundhub",
-+ "llvm.hexagon.V6.vroundhub.128B",
-+ "llvm.hexagon.V6.vroundwh",
-+ "llvm.hexagon.V6.vroundwh.128B",
-+ "llvm.hexagon.V6.vroundwuh",
-+ "llvm.hexagon.V6.vroundwuh.128B",
-+ "llvm.hexagon.V6.vrsadubi",
-+ "llvm.hexagon.V6.vrsadubi.128B",
-+ "llvm.hexagon.V6.vrsadubi.acc",
-+ "llvm.hexagon.V6.vrsadubi.acc.128B",
-+ "llvm.hexagon.V6.vsathub",
-+ "llvm.hexagon.V6.vsathub.128B",
-+ "llvm.hexagon.V6.vsatwh",
-+ "llvm.hexagon.V6.vsatwh.128B",
-+ "llvm.hexagon.V6.vsb",
-+ "llvm.hexagon.V6.vsb.128B",
-+ "llvm.hexagon.V6.vsh",
-+ "llvm.hexagon.V6.vsh.128B",
-+ "llvm.hexagon.V6.vshufeh",
-+ "llvm.hexagon.V6.vshufeh.128B",
-+ "llvm.hexagon.V6.vshuffb",
-+ "llvm.hexagon.V6.vshuffb.128B",
-+ "llvm.hexagon.V6.vshuffeb",
-+ "llvm.hexagon.V6.vshuffeb.128B",
-+ "llvm.hexagon.V6.vshuffh",
-+ "llvm.hexagon.V6.vshuffh.128B",
-+ "llvm.hexagon.V6.vshuffob",
-+ "llvm.hexagon.V6.vshuffob.128B",
-+ "llvm.hexagon.V6.vshuffvdd",
-+ "llvm.hexagon.V6.vshuffvdd.128B",
-+ "llvm.hexagon.V6.vshufoeb",
-+ "llvm.hexagon.V6.vshufoeb.128B",
-+ "llvm.hexagon.V6.vshufoeh",
-+ "llvm.hexagon.V6.vshufoeh.128B",
-+ "llvm.hexagon.V6.vshufoh",
-+ "llvm.hexagon.V6.vshufoh.128B",
-+ "llvm.hexagon.V6.vsubb",
-+ "llvm.hexagon.V6.vsubb.128B",
-+ "llvm.hexagon.V6.vsubb.dv",
-+ "llvm.hexagon.V6.vsubb.dv.128B",
-+ "llvm.hexagon.V6.vsubbnq",
-+ "llvm.hexagon.V6.vsubbnq.128B",
-+ "llvm.hexagon.V6.vsubbq",
-+ "llvm.hexagon.V6.vsubbq.128B",
-+ "llvm.hexagon.V6.vsubh",
-+ "llvm.hexagon.V6.vsubh.128B",
-+ "llvm.hexagon.V6.vsubh.dv",
-+ "llvm.hexagon.V6.vsubh.dv.128B",
-+ "llvm.hexagon.V6.vsubhnq",
-+ "llvm.hexagon.V6.vsubhnq.128B",
-+ "llvm.hexagon.V6.vsubhq",
-+ "llvm.hexagon.V6.vsubhq.128B",
-+ "llvm.hexagon.V6.vsubhsat",
-+ "llvm.hexagon.V6.vsubhsat.128B",
-+ "llvm.hexagon.V6.vsubhsat.dv",
-+ "llvm.hexagon.V6.vsubhsat.dv.128B",
-+ "llvm.hexagon.V6.vsubhw",
-+ "llvm.hexagon.V6.vsubhw.128B",
-+ "llvm.hexagon.V6.vsububh",
-+ "llvm.hexagon.V6.vsububh.128B",
-+ "llvm.hexagon.V6.vsububsat",
-+ "llvm.hexagon.V6.vsububsat.128B",
-+ "llvm.hexagon.V6.vsububsat.dv",
-+ "llvm.hexagon.V6.vsububsat.dv.128B",
-+ "llvm.hexagon.V6.vsubuhsat",
-+ "llvm.hexagon.V6.vsubuhsat.128B",
-+ "llvm.hexagon.V6.vsubuhsat.dv",
-+ "llvm.hexagon.V6.vsubuhsat.dv.128B",
-+ "llvm.hexagon.V6.vsubuhw",
-+ "llvm.hexagon.V6.vsubuhw.128B",
-+ "llvm.hexagon.V6.vsubw",
-+ "llvm.hexagon.V6.vsubw.128B",
-+ "llvm.hexagon.V6.vsubw.dv",
-+ "llvm.hexagon.V6.vsubw.dv.128B",
-+ "llvm.hexagon.V6.vsubwnq",
-+ "llvm.hexagon.V6.vsubwnq.128B",
-+ "llvm.hexagon.V6.vsubwq",
-+ "llvm.hexagon.V6.vsubwq.128B",
-+ "llvm.hexagon.V6.vsubwsat",
-+ "llvm.hexagon.V6.vsubwsat.128B",
-+ "llvm.hexagon.V6.vsubwsat.dv",
-+ "llvm.hexagon.V6.vsubwsat.dv.128B",
-+ "llvm.hexagon.V6.vswap",
-+ "llvm.hexagon.V6.vswap.128B",
-+ "llvm.hexagon.V6.vtmpyb",
-+ "llvm.hexagon.V6.vtmpyb.128B",
-+ "llvm.hexagon.V6.vtmpyb.acc",
-+ "llvm.hexagon.V6.vtmpyb.acc.128B",
-+ "llvm.hexagon.V6.vtmpybus",
-+ "llvm.hexagon.V6.vtmpybus.128B",
-+ "llvm.hexagon.V6.vtmpybus.acc",
-+ "llvm.hexagon.V6.vtmpybus.acc.128B",
-+ "llvm.hexagon.V6.vtmpyhb",
-+ "llvm.hexagon.V6.vtmpyhb.128B",
-+ "llvm.hexagon.V6.vtmpyhb.acc",
-+ "llvm.hexagon.V6.vtmpyhb.acc.128B",
-+ "llvm.hexagon.V6.vunpackb",
-+ "llvm.hexagon.V6.vunpackb.128B",
-+ "llvm.hexagon.V6.vunpackh",
-+ "llvm.hexagon.V6.vunpackh.128B",
-+ "llvm.hexagon.V6.vunpackob",
-+ "llvm.hexagon.V6.vunpackob.128B",
-+ "llvm.hexagon.V6.vunpackoh",
-+ "llvm.hexagon.V6.vunpackoh.128B",
-+ "llvm.hexagon.V6.vunpackub",
-+ "llvm.hexagon.V6.vunpackub.128B",
-+ "llvm.hexagon.V6.vunpackuh",
-+ "llvm.hexagon.V6.vunpackuh.128B",
-+ "llvm.hexagon.V6.vxor",
-+ "llvm.hexagon.V6.vxor.128B",
-+ "llvm.hexagon.V6.vzb",
-+ "llvm.hexagon.V6.vzb.128B",
-+ "llvm.hexagon.V6.vzh",
-+ "llvm.hexagon.V6.vzh.128B",
-+ "llvm.hexagon.brev.ldb",
-+ "llvm.hexagon.brev.ldd",
-+ "llvm.hexagon.brev.ldh",
-+ "llvm.hexagon.brev.ldub",
-+ "llvm.hexagon.brev.lduh",
-+ "llvm.hexagon.brev.ldw",
-+ "llvm.hexagon.brev.stb",
-+ "llvm.hexagon.brev.std",
-+ "llvm.hexagon.brev.sth",
-+ "llvm.hexagon.brev.sthhi",
-+ "llvm.hexagon.brev.stw",
-+ "llvm.hexagon.circ.ldb",
-+ "llvm.hexagon.circ.ldd",
-+ "llvm.hexagon.circ.ldh",
-+ "llvm.hexagon.circ.ldub",
-+ "llvm.hexagon.circ.lduh",
-+ "llvm.hexagon.circ.ldw",
-+ "llvm.hexagon.circ.stb",
-+ "llvm.hexagon.circ.std",
-+ "llvm.hexagon.circ.sth",
-+ "llvm.hexagon.circ.sthhi",
-+ "llvm.hexagon.circ.stw",
-+ "llvm.hexagon.mm256i.vaddw",
-+ "llvm.hexagon.prefetch",
-+ "llvm.mips.absq.s.ph",
-+ "llvm.mips.absq.s.qb",
-+ "llvm.mips.absq.s.w",
-+ "llvm.mips.add.a.b",
-+ "llvm.mips.add.a.d",
-+ "llvm.mips.add.a.h",
-+ "llvm.mips.add.a.w",
-+ "llvm.mips.addq.ph",
-+ "llvm.mips.addq.s.ph",
-+ "llvm.mips.addq.s.w",
-+ "llvm.mips.addqh.ph",
-+ "llvm.mips.addqh.r.ph",
-+ "llvm.mips.addqh.r.w",
-+ "llvm.mips.addqh.w",
-+ "llvm.mips.adds.a.b",
-+ "llvm.mips.adds.a.d",
-+ "llvm.mips.adds.a.h",
-+ "llvm.mips.adds.a.w",
-+ "llvm.mips.adds.s.b",
-+ "llvm.mips.adds.s.d",
-+ "llvm.mips.adds.s.h",
-+ "llvm.mips.adds.s.w",
-+ "llvm.mips.adds.u.b",
-+ "llvm.mips.adds.u.d",
-+ "llvm.mips.adds.u.h",
-+ "llvm.mips.adds.u.w",
-+ "llvm.mips.addsc",
-+ "llvm.mips.addu.ph",
-+ "llvm.mips.addu.qb",
-+ "llvm.mips.addu.s.ph",
-+ "llvm.mips.addu.s.qb",
-+ "llvm.mips.adduh.qb",
-+ "llvm.mips.adduh.r.qb",
-+ "llvm.mips.addv.b",
-+ "llvm.mips.addv.d",
-+ "llvm.mips.addv.h",
-+ "llvm.mips.addv.w",
-+ "llvm.mips.addvi.b",
-+ "llvm.mips.addvi.d",
-+ "llvm.mips.addvi.h",
-+ "llvm.mips.addvi.w",
-+ "llvm.mips.addwc",
-+ "llvm.mips.and.v",
-+ "llvm.mips.andi.b",
-+ "llvm.mips.append",
-+ "llvm.mips.asub.s.b",
-+ "llvm.mips.asub.s.d",
-+ "llvm.mips.asub.s.h",
-+ "llvm.mips.asub.s.w",
-+ "llvm.mips.asub.u.b",
-+ "llvm.mips.asub.u.d",
-+ "llvm.mips.asub.u.h",
-+ "llvm.mips.asub.u.w",
-+ "llvm.mips.ave.s.b",
-+ "llvm.mips.ave.s.d",
-+ "llvm.mips.ave.s.h",
-+ "llvm.mips.ave.s.w",
-+ "llvm.mips.ave.u.b",
-+ "llvm.mips.ave.u.d",
-+ "llvm.mips.ave.u.h",
-+ "llvm.mips.ave.u.w",
-+ "llvm.mips.aver.s.b",
-+ "llvm.mips.aver.s.d",
-+ "llvm.mips.aver.s.h",
-+ "llvm.mips.aver.s.w",
-+ "llvm.mips.aver.u.b",
-+ "llvm.mips.aver.u.d",
-+ "llvm.mips.aver.u.h",
-+ "llvm.mips.aver.u.w",
-+ "llvm.mips.balign",
-+ "llvm.mips.bclr.b",
-+ "llvm.mips.bclr.d",
-+ "llvm.mips.bclr.h",
-+ "llvm.mips.bclr.w",
-+ "llvm.mips.bclri.b",
-+ "llvm.mips.bclri.d",
-+ "llvm.mips.bclri.h",
-+ "llvm.mips.bclri.w",
-+ "llvm.mips.binsl.b",
-+ "llvm.mips.binsl.d",
-+ "llvm.mips.binsl.h",
-+ "llvm.mips.binsl.w",
-+ "llvm.mips.binsli.b",
-+ "llvm.mips.binsli.d",
-+ "llvm.mips.binsli.h",
-+ "llvm.mips.binsli.w",
-+ "llvm.mips.binsr.b",
-+ "llvm.mips.binsr.d",
-+ "llvm.mips.binsr.h",
-+ "llvm.mips.binsr.w",
-+ "llvm.mips.binsri.b",
-+ "llvm.mips.binsri.d",
-+ "llvm.mips.binsri.h",
-+ "llvm.mips.binsri.w",
-+ "llvm.mips.bitrev",
-+ "llvm.mips.bmnz.v",
-+ "llvm.mips.bmnzi.b",
-+ "llvm.mips.bmz.v",
-+ "llvm.mips.bmzi.b",
-+ "llvm.mips.bneg.b",
-+ "llvm.mips.bneg.d",
-+ "llvm.mips.bneg.h",
-+ "llvm.mips.bneg.w",
-+ "llvm.mips.bnegi.b",
-+ "llvm.mips.bnegi.d",
-+ "llvm.mips.bnegi.h",
-+ "llvm.mips.bnegi.w",
-+ "llvm.mips.bnz.b",
-+ "llvm.mips.bnz.d",
-+ "llvm.mips.bnz.h",
-+ "llvm.mips.bnz.v",
-+ "llvm.mips.bnz.w",
-+ "llvm.mips.bposge32",
-+ "llvm.mips.bsel.v",
-+ "llvm.mips.bseli.b",
-+ "llvm.mips.bset.b",
-+ "llvm.mips.bset.d",
-+ "llvm.mips.bset.h",
-+ "llvm.mips.bset.w",
-+ "llvm.mips.bseti.b",
-+ "llvm.mips.bseti.d",
-+ "llvm.mips.bseti.h",
-+ "llvm.mips.bseti.w",
-+ "llvm.mips.bz.b",
-+ "llvm.mips.bz.d",
-+ "llvm.mips.bz.h",
-+ "llvm.mips.bz.v",
-+ "llvm.mips.bz.w",
-+ "llvm.mips.ceq.b",
-+ "llvm.mips.ceq.d",
-+ "llvm.mips.ceq.h",
-+ "llvm.mips.ceq.w",
-+ "llvm.mips.ceqi.b",
-+ "llvm.mips.ceqi.d",
-+ "llvm.mips.ceqi.h",
-+ "llvm.mips.ceqi.w",
-+ "llvm.mips.cfcmsa",
-+ "llvm.mips.cle.s.b",
-+ "llvm.mips.cle.s.d",
-+ "llvm.mips.cle.s.h",
-+ "llvm.mips.cle.s.w",
-+ "llvm.mips.cle.u.b",
-+ "llvm.mips.cle.u.d",
-+ "llvm.mips.cle.u.h",
-+ "llvm.mips.cle.u.w",
-+ "llvm.mips.clei.s.b",
-+ "llvm.mips.clei.s.d",
-+ "llvm.mips.clei.s.h",
-+ "llvm.mips.clei.s.w",
-+ "llvm.mips.clei.u.b",
-+ "llvm.mips.clei.u.d",
-+ "llvm.mips.clei.u.h",
-+ "llvm.mips.clei.u.w",
-+ "llvm.mips.clt.s.b",
-+ "llvm.mips.clt.s.d",
-+ "llvm.mips.clt.s.h",
-+ "llvm.mips.clt.s.w",
-+ "llvm.mips.clt.u.b",
-+ "llvm.mips.clt.u.d",
-+ "llvm.mips.clt.u.h",
-+ "llvm.mips.clt.u.w",
-+ "llvm.mips.clti.s.b",
-+ "llvm.mips.clti.s.d",
-+ "llvm.mips.clti.s.h",
-+ "llvm.mips.clti.s.w",
-+ "llvm.mips.clti.u.b",
-+ "llvm.mips.clti.u.d",
-+ "llvm.mips.clti.u.h",
-+ "llvm.mips.clti.u.w",
-+ "llvm.mips.cmp.eq.ph",
-+ "llvm.mips.cmp.le.ph",
-+ "llvm.mips.cmp.lt.ph",
-+ "llvm.mips.cmpgdu.eq.qb",
-+ "llvm.mips.cmpgdu.le.qb",
-+ "llvm.mips.cmpgdu.lt.qb",
-+ "llvm.mips.cmpgu.eq.qb",
-+ "llvm.mips.cmpgu.le.qb",
-+ "llvm.mips.cmpgu.lt.qb",
-+ "llvm.mips.cmpu.eq.qb",
-+ "llvm.mips.cmpu.le.qb",
-+ "llvm.mips.cmpu.lt.qb",
-+ "llvm.mips.copy.s.b",
-+ "llvm.mips.copy.s.d",
-+ "llvm.mips.copy.s.h",
-+ "llvm.mips.copy.s.w",
-+ "llvm.mips.copy.u.b",
-+ "llvm.mips.copy.u.d",
-+ "llvm.mips.copy.u.h",
-+ "llvm.mips.copy.u.w",
-+ "llvm.mips.ctcmsa",
-+ "llvm.mips.div.s.b",
-+ "llvm.mips.div.s.d",
-+ "llvm.mips.div.s.h",
-+ "llvm.mips.div.s.w",
-+ "llvm.mips.div.u.b",
-+ "llvm.mips.div.u.d",
-+ "llvm.mips.div.u.h",
-+ "llvm.mips.div.u.w",
-+ "llvm.mips.dlsa",
-+ "llvm.mips.dotp.s.d",
-+ "llvm.mips.dotp.s.h",
-+ "llvm.mips.dotp.s.w",
-+ "llvm.mips.dotp.u.d",
-+ "llvm.mips.dotp.u.h",
-+ "llvm.mips.dotp.u.w",
-+ "llvm.mips.dpa.w.ph",
-+ "llvm.mips.dpadd.s.d",
-+ "llvm.mips.dpadd.s.h",
-+ "llvm.mips.dpadd.s.w",
-+ "llvm.mips.dpadd.u.d",
-+ "llvm.mips.dpadd.u.h",
-+ "llvm.mips.dpadd.u.w",
-+ "llvm.mips.dpaq.s.w.ph",
-+ "llvm.mips.dpaq.sa.l.w",
-+ "llvm.mips.dpaqx.s.w.ph",
-+ "llvm.mips.dpaqx.sa.w.ph",
-+ "llvm.mips.dpau.h.qbl",
-+ "llvm.mips.dpau.h.qbr",
-+ "llvm.mips.dpax.w.ph",
-+ "llvm.mips.dps.w.ph",
-+ "llvm.mips.dpsq.s.w.ph",
-+ "llvm.mips.dpsq.sa.l.w",
-+ "llvm.mips.dpsqx.s.w.ph",
-+ "llvm.mips.dpsqx.sa.w.ph",
-+ "llvm.mips.dpsu.h.qbl",
-+ "llvm.mips.dpsu.h.qbr",
-+ "llvm.mips.dpsub.s.d",
-+ "llvm.mips.dpsub.s.h",
-+ "llvm.mips.dpsub.s.w",
-+ "llvm.mips.dpsub.u.d",
-+ "llvm.mips.dpsub.u.h",
-+ "llvm.mips.dpsub.u.w",
-+ "llvm.mips.dpsx.w.ph",
-+ "llvm.mips.extp",
-+ "llvm.mips.extpdp",
-+ "llvm.mips.extr.r.w",
-+ "llvm.mips.extr.rs.w",
-+ "llvm.mips.extr.s.h",
-+ "llvm.mips.extr.w",
-+ "llvm.mips.fadd.d",
-+ "llvm.mips.fadd.w",
-+ "llvm.mips.fcaf.d",
-+ "llvm.mips.fcaf.w",
-+ "llvm.mips.fceq.d",
-+ "llvm.mips.fceq.w",
-+ "llvm.mips.fclass.d",
-+ "llvm.mips.fclass.w",
-+ "llvm.mips.fcle.d",
-+ "llvm.mips.fcle.w",
-+ "llvm.mips.fclt.d",
-+ "llvm.mips.fclt.w",
-+ "llvm.mips.fcne.d",
-+ "llvm.mips.fcne.w",
-+ "llvm.mips.fcor.d",
-+ "llvm.mips.fcor.w",
-+ "llvm.mips.fcueq.d",
-+ "llvm.mips.fcueq.w",
-+ "llvm.mips.fcule.d",
-+ "llvm.mips.fcule.w",
-+ "llvm.mips.fcult.d",
-+ "llvm.mips.fcult.w",
-+ "llvm.mips.fcun.d",
-+ "llvm.mips.fcun.w",
-+ "llvm.mips.fcune.d",
-+ "llvm.mips.fcune.w",
-+ "llvm.mips.fdiv.d",
-+ "llvm.mips.fdiv.w",
-+ "llvm.mips.fexdo.h",
-+ "llvm.mips.fexdo.w",
-+ "llvm.mips.fexp2.d",
-+ "llvm.mips.fexp2.w",
-+ "llvm.mips.fexupl.d",
-+ "llvm.mips.fexupl.w",
-+ "llvm.mips.fexupr.d",
-+ "llvm.mips.fexupr.w",
-+ "llvm.mips.ffint.s.d",
-+ "llvm.mips.ffint.s.w",
-+ "llvm.mips.ffint.u.d",
-+ "llvm.mips.ffint.u.w",
-+ "llvm.mips.ffql.d",
-+ "llvm.mips.ffql.w",
-+ "llvm.mips.ffqr.d",
-+ "llvm.mips.ffqr.w",
-+ "llvm.mips.fill.b",
-+ "llvm.mips.fill.d",
-+ "llvm.mips.fill.h",
-+ "llvm.mips.fill.w",
-+ "llvm.mips.flog2.d",
-+ "llvm.mips.flog2.w",
-+ "llvm.mips.fmadd.d",
-+ "llvm.mips.fmadd.w",
-+ "llvm.mips.fmax.a.d",
-+ "llvm.mips.fmax.a.w",
-+ "llvm.mips.fmax.d",
-+ "llvm.mips.fmax.w",
-+ "llvm.mips.fmin.a.d",
-+ "llvm.mips.fmin.a.w",
-+ "llvm.mips.fmin.d",
-+ "llvm.mips.fmin.w",
-+ "llvm.mips.fmsub.d",
-+ "llvm.mips.fmsub.w",
-+ "llvm.mips.fmul.d",
-+ "llvm.mips.fmul.w",
-+ "llvm.mips.frcp.d",
-+ "llvm.mips.frcp.w",
-+ "llvm.mips.frint.d",
-+ "llvm.mips.frint.w",
-+ "llvm.mips.frsqrt.d",
-+ "llvm.mips.frsqrt.w",
-+ "llvm.mips.fsaf.d",
-+ "llvm.mips.fsaf.w",
-+ "llvm.mips.fseq.d",
-+ "llvm.mips.fseq.w",
-+ "llvm.mips.fsle.d",
-+ "llvm.mips.fsle.w",
-+ "llvm.mips.fslt.d",
-+ "llvm.mips.fslt.w",
-+ "llvm.mips.fsne.d",
-+ "llvm.mips.fsne.w",
-+ "llvm.mips.fsor.d",
-+ "llvm.mips.fsor.w",
-+ "llvm.mips.fsqrt.d",
-+ "llvm.mips.fsqrt.w",
-+ "llvm.mips.fsub.d",
-+ "llvm.mips.fsub.w",
-+ "llvm.mips.fsueq.d",
-+ "llvm.mips.fsueq.w",
-+ "llvm.mips.fsule.d",
-+ "llvm.mips.fsule.w",
-+ "llvm.mips.fsult.d",
-+ "llvm.mips.fsult.w",
-+ "llvm.mips.fsun.d",
-+ "llvm.mips.fsun.w",
-+ "llvm.mips.fsune.d",
-+ "llvm.mips.fsune.w",
-+ "llvm.mips.ftint.s.d",
-+ "llvm.mips.ftint.s.w",
-+ "llvm.mips.ftint.u.d",
-+ "llvm.mips.ftint.u.w",
-+ "llvm.mips.ftq.h",
-+ "llvm.mips.ftq.w",
-+ "llvm.mips.ftrunc.s.d",
-+ "llvm.mips.ftrunc.s.w",
-+ "llvm.mips.ftrunc.u.d",
-+ "llvm.mips.ftrunc.u.w",
-+ "llvm.mips.hadd.s.d",
-+ "llvm.mips.hadd.s.h",
-+ "llvm.mips.hadd.s.w",
-+ "llvm.mips.hadd.u.d",
-+ "llvm.mips.hadd.u.h",
-+ "llvm.mips.hadd.u.w",
-+ "llvm.mips.hsub.s.d",
-+ "llvm.mips.hsub.s.h",
-+ "llvm.mips.hsub.s.w",
-+ "llvm.mips.hsub.u.d",
-+ "llvm.mips.hsub.u.h",
-+ "llvm.mips.hsub.u.w",
-+ "llvm.mips.ilvev.b",
-+ "llvm.mips.ilvev.d",
-+ "llvm.mips.ilvev.h",
-+ "llvm.mips.ilvev.w",
-+ "llvm.mips.ilvl.b",
-+ "llvm.mips.ilvl.d",
-+ "llvm.mips.ilvl.h",
-+ "llvm.mips.ilvl.w",
-+ "llvm.mips.ilvod.b",
-+ "llvm.mips.ilvod.d",
-+ "llvm.mips.ilvod.h",
-+ "llvm.mips.ilvod.w",
-+ "llvm.mips.ilvr.b",
-+ "llvm.mips.ilvr.d",
-+ "llvm.mips.ilvr.h",
-+ "llvm.mips.ilvr.w",
-+ "llvm.mips.insert.b",
-+ "llvm.mips.insert.d",
-+ "llvm.mips.insert.h",
-+ "llvm.mips.insert.w",
-+ "llvm.mips.insv",
-+ "llvm.mips.insve.b",
-+ "llvm.mips.insve.d",
-+ "llvm.mips.insve.h",
-+ "llvm.mips.insve.w",
-+ "llvm.mips.lbux",
-+ "llvm.mips.ld.b",
-+ "llvm.mips.ld.d",
-+ "llvm.mips.ld.h",
-+ "llvm.mips.ld.w",
-+ "llvm.mips.ldi.b",
-+ "llvm.mips.ldi.d",
-+ "llvm.mips.ldi.h",
-+ "llvm.mips.ldi.w",
-+ "llvm.mips.lhx",
-+ "llvm.mips.lsa",
-+ "llvm.mips.lwx",
-+ "llvm.mips.madd",
-+ "llvm.mips.madd.q.h",
-+ "llvm.mips.madd.q.w",
-+ "llvm.mips.maddr.q.h",
-+ "llvm.mips.maddr.q.w",
-+ "llvm.mips.maddu",
-+ "llvm.mips.maddv.b",
-+ "llvm.mips.maddv.d",
-+ "llvm.mips.maddv.h",
-+ "llvm.mips.maddv.w",
-+ "llvm.mips.maq.s.w.phl",
-+ "llvm.mips.maq.s.w.phr",
-+ "llvm.mips.maq.sa.w.phl",
-+ "llvm.mips.maq.sa.w.phr",
-+ "llvm.mips.max.a.b",
-+ "llvm.mips.max.a.d",
-+ "llvm.mips.max.a.h",
-+ "llvm.mips.max.a.w",
-+ "llvm.mips.max.s.b",
-+ "llvm.mips.max.s.d",
-+ "llvm.mips.max.s.h",
-+ "llvm.mips.max.s.w",
-+ "llvm.mips.max.u.b",
-+ "llvm.mips.max.u.d",
-+ "llvm.mips.max.u.h",
-+ "llvm.mips.max.u.w",
-+ "llvm.mips.maxi.s.b",
-+ "llvm.mips.maxi.s.d",
-+ "llvm.mips.maxi.s.h",
-+ "llvm.mips.maxi.s.w",
-+ "llvm.mips.maxi.u.b",
-+ "llvm.mips.maxi.u.d",
-+ "llvm.mips.maxi.u.h",
-+ "llvm.mips.maxi.u.w",
-+ "llvm.mips.min.a.b",
-+ "llvm.mips.min.a.d",
-+ "llvm.mips.min.a.h",
-+ "llvm.mips.min.a.w",
-+ "llvm.mips.min.s.b",
-+ "llvm.mips.min.s.d",
-+ "llvm.mips.min.s.h",
-+ "llvm.mips.min.s.w",
-+ "llvm.mips.min.u.b",
-+ "llvm.mips.min.u.d",
-+ "llvm.mips.min.u.h",
-+ "llvm.mips.min.u.w",
-+ "llvm.mips.mini.s.b",
-+ "llvm.mips.mini.s.d",
-+ "llvm.mips.mini.s.h",
-+ "llvm.mips.mini.s.w",
-+ "llvm.mips.mini.u.b",
-+ "llvm.mips.mini.u.d",
-+ "llvm.mips.mini.u.h",
-+ "llvm.mips.mini.u.w",
-+ "llvm.mips.mod.s.b",
-+ "llvm.mips.mod.s.d",
-+ "llvm.mips.mod.s.h",
-+ "llvm.mips.mod.s.w",
-+ "llvm.mips.mod.u.b",
-+ "llvm.mips.mod.u.d",
-+ "llvm.mips.mod.u.h",
-+ "llvm.mips.mod.u.w",
-+ "llvm.mips.modsub",
-+ "llvm.mips.move.v",
-+ "llvm.mips.msub",
-+ "llvm.mips.msub.q.h",
-+ "llvm.mips.msub.q.w",
-+ "llvm.mips.msubr.q.h",
-+ "llvm.mips.msubr.q.w",
-+ "llvm.mips.msubu",
-+ "llvm.mips.msubv.b",
-+ "llvm.mips.msubv.d",
-+ "llvm.mips.msubv.h",
-+ "llvm.mips.msubv.w",
-+ "llvm.mips.mthlip",
-+ "llvm.mips.mul.ph",
-+ "llvm.mips.mul.q.h",
-+ "llvm.mips.mul.q.w",
-+ "llvm.mips.mul.s.ph",
-+ "llvm.mips.muleq.s.w.phl",
-+ "llvm.mips.muleq.s.w.phr",
-+ "llvm.mips.muleu.s.ph.qbl",
-+ "llvm.mips.muleu.s.ph.qbr",
-+ "llvm.mips.mulq.rs.ph",
-+ "llvm.mips.mulq.rs.w",
-+ "llvm.mips.mulq.s.ph",
-+ "llvm.mips.mulq.s.w",
-+ "llvm.mips.mulr.q.h",
-+ "llvm.mips.mulr.q.w",
-+ "llvm.mips.mulsa.w.ph",
-+ "llvm.mips.mulsaq.s.w.ph",
-+ "llvm.mips.mult",
-+ "llvm.mips.multu",
-+ "llvm.mips.mulv.b",
-+ "llvm.mips.mulv.d",
-+ "llvm.mips.mulv.h",
-+ "llvm.mips.mulv.w",
-+ "llvm.mips.nloc.b",
-+ "llvm.mips.nloc.d",
-+ "llvm.mips.nloc.h",
-+ "llvm.mips.nloc.w",
-+ "llvm.mips.nlzc.b",
-+ "llvm.mips.nlzc.d",
-+ "llvm.mips.nlzc.h",
-+ "llvm.mips.nlzc.w",
-+ "llvm.mips.nor.v",
-+ "llvm.mips.nori.b",
-+ "llvm.mips.or.v",
-+ "llvm.mips.ori.b",
-+ "llvm.mips.packrl.ph",
-+ "llvm.mips.pckev.b",
-+ "llvm.mips.pckev.d",
-+ "llvm.mips.pckev.h",
-+ "llvm.mips.pckev.w",
-+ "llvm.mips.pckod.b",
-+ "llvm.mips.pckod.d",
-+ "llvm.mips.pckod.h",
-+ "llvm.mips.pckod.w",
-+ "llvm.mips.pcnt.b",
-+ "llvm.mips.pcnt.d",
-+ "llvm.mips.pcnt.h",
-+ "llvm.mips.pcnt.w",
-+ "llvm.mips.pick.ph",
-+ "llvm.mips.pick.qb",
-+ "llvm.mips.preceq.w.phl",
-+ "llvm.mips.preceq.w.phr",
-+ "llvm.mips.precequ.ph.qbl",
-+ "llvm.mips.precequ.ph.qbla",
-+ "llvm.mips.precequ.ph.qbr",
-+ "llvm.mips.precequ.ph.qbra",
-+ "llvm.mips.preceu.ph.qbl",
-+ "llvm.mips.preceu.ph.qbla",
-+ "llvm.mips.preceu.ph.qbr",
-+ "llvm.mips.preceu.ph.qbra",
-+ "llvm.mips.precr.qb.ph",
-+ "llvm.mips.precr.sra.ph.w",
-+ "llvm.mips.precr.sra.r.ph.w",
-+ "llvm.mips.precrq.ph.w",
-+ "llvm.mips.precrq.qb.ph",
-+ "llvm.mips.precrq.rs.ph.w",
-+ "llvm.mips.precrqu.s.qb.ph",
-+ "llvm.mips.prepend",
-+ "llvm.mips.raddu.w.qb",
-+ "llvm.mips.rddsp",
-+ "llvm.mips.repl.ph",
-+ "llvm.mips.repl.qb",
-+ "llvm.mips.sat.s.b",
-+ "llvm.mips.sat.s.d",
-+ "llvm.mips.sat.s.h",
-+ "llvm.mips.sat.s.w",
-+ "llvm.mips.sat.u.b",
-+ "llvm.mips.sat.u.d",
-+ "llvm.mips.sat.u.h",
-+ "llvm.mips.sat.u.w",
-+ "llvm.mips.shf.b",
-+ "llvm.mips.shf.h",
-+ "llvm.mips.shf.w",
-+ "llvm.mips.shilo",
-+ "llvm.mips.shll.ph",
-+ "llvm.mips.shll.qb",
-+ "llvm.mips.shll.s.ph",
-+ "llvm.mips.shll.s.w",
-+ "llvm.mips.shra.ph",
-+ "llvm.mips.shra.qb",
-+ "llvm.mips.shra.r.ph",
-+ "llvm.mips.shra.r.qb",
-+ "llvm.mips.shra.r.w",
-+ "llvm.mips.shrl.ph",
-+ "llvm.mips.shrl.qb",
-+ "llvm.mips.sld.b",
-+ "llvm.mips.sld.d",
-+ "llvm.mips.sld.h",
-+ "llvm.mips.sld.w",
-+ "llvm.mips.sldi.b",
-+ "llvm.mips.sldi.d",
-+ "llvm.mips.sldi.h",
-+ "llvm.mips.sldi.w",
-+ "llvm.mips.sll.b",
-+ "llvm.mips.sll.d",
-+ "llvm.mips.sll.h",
-+ "llvm.mips.sll.w",
-+ "llvm.mips.slli.b",
-+ "llvm.mips.slli.d",
-+ "llvm.mips.slli.h",
-+ "llvm.mips.slli.w",
-+ "llvm.mips.splat.b",
-+ "llvm.mips.splat.d",
-+ "llvm.mips.splat.h",
-+ "llvm.mips.splat.w",
-+ "llvm.mips.splati.b",
-+ "llvm.mips.splati.d",
-+ "llvm.mips.splati.h",
-+ "llvm.mips.splati.w",
-+ "llvm.mips.sra.b",
-+ "llvm.mips.sra.d",
-+ "llvm.mips.sra.h",
-+ "llvm.mips.sra.w",
-+ "llvm.mips.srai.b",
-+ "llvm.mips.srai.d",
-+ "llvm.mips.srai.h",
-+ "llvm.mips.srai.w",
-+ "llvm.mips.srar.b",
-+ "llvm.mips.srar.d",
-+ "llvm.mips.srar.h",
-+ "llvm.mips.srar.w",
-+ "llvm.mips.srari.b",
-+ "llvm.mips.srari.d",
-+ "llvm.mips.srari.h",
-+ "llvm.mips.srari.w",
-+ "llvm.mips.srl.b",
-+ "llvm.mips.srl.d",
-+ "llvm.mips.srl.h",
-+ "llvm.mips.srl.w",
-+ "llvm.mips.srli.b",
-+ "llvm.mips.srli.d",
-+ "llvm.mips.srli.h",
-+ "llvm.mips.srli.w",
-+ "llvm.mips.srlr.b",
-+ "llvm.mips.srlr.d",
-+ "llvm.mips.srlr.h",
-+ "llvm.mips.srlr.w",
-+ "llvm.mips.srlri.b",
-+ "llvm.mips.srlri.d",
-+ "llvm.mips.srlri.h",
-+ "llvm.mips.srlri.w",
-+ "llvm.mips.st.b",
-+ "llvm.mips.st.d",
-+ "llvm.mips.st.h",
-+ "llvm.mips.st.w",
-+ "llvm.mips.subq.ph",
-+ "llvm.mips.subq.s.ph",
-+ "llvm.mips.subq.s.w",
-+ "llvm.mips.subqh.ph",
-+ "llvm.mips.subqh.r.ph",
-+ "llvm.mips.subqh.r.w",
-+ "llvm.mips.subqh.w",
-+ "llvm.mips.subs.s.b",
-+ "llvm.mips.subs.s.d",
-+ "llvm.mips.subs.s.h",
-+ "llvm.mips.subs.s.w",
-+ "llvm.mips.subs.u.b",
-+ "llvm.mips.subs.u.d",
-+ "llvm.mips.subs.u.h",
-+ "llvm.mips.subs.u.w",
-+ "llvm.mips.subsus.u.b",
-+ "llvm.mips.subsus.u.d",
-+ "llvm.mips.subsus.u.h",
-+ "llvm.mips.subsus.u.w",
-+ "llvm.mips.subsuu.s.b",
-+ "llvm.mips.subsuu.s.d",
-+ "llvm.mips.subsuu.s.h",
-+ "llvm.mips.subsuu.s.w",
-+ "llvm.mips.subu.ph",
-+ "llvm.mips.subu.qb",
-+ "llvm.mips.subu.s.ph",
-+ "llvm.mips.subu.s.qb",
-+ "llvm.mips.subuh.qb",
-+ "llvm.mips.subuh.r.qb",
-+ "llvm.mips.subv.b",
-+ "llvm.mips.subv.d",
-+ "llvm.mips.subv.h",
-+ "llvm.mips.subv.w",
-+ "llvm.mips.subvi.b",
-+ "llvm.mips.subvi.d",
-+ "llvm.mips.subvi.h",
-+ "llvm.mips.subvi.w",
-+ "llvm.mips.vshf.b",
-+ "llvm.mips.vshf.d",
-+ "llvm.mips.vshf.h",
-+ "llvm.mips.vshf.w",
-+ "llvm.mips.wrdsp",
-+ "llvm.mips.xor.v",
-+ "llvm.mips.xori.b",
-+ "llvm.nvvm.abs.i",
-+ "llvm.nvvm.abs.ll",
-+ "llvm.nvvm.add.rm.d",
-+ "llvm.nvvm.add.rm.f",
-+ "llvm.nvvm.add.rm.ftz.f",
-+ "llvm.nvvm.add.rn.d",
-+ "llvm.nvvm.add.rn.f",
-+ "llvm.nvvm.add.rn.ftz.f",
-+ "llvm.nvvm.add.rp.d",
-+ "llvm.nvvm.add.rp.f",
-+ "llvm.nvvm.add.rp.ftz.f",
-+ "llvm.nvvm.add.rz.d",
-+ "llvm.nvvm.add.rz.f",
-+ "llvm.nvvm.add.rz.ftz.f",
-+ "llvm.nvvm.atomic.add.gen.f.cta",
-+ "llvm.nvvm.atomic.add.gen.f.sys",
-+ "llvm.nvvm.atomic.add.gen.i.cta",
-+ "llvm.nvvm.atomic.add.gen.i.sys",
-+ "llvm.nvvm.atomic.and.gen.i.cta",
-+ "llvm.nvvm.atomic.and.gen.i.sys",
-+ "llvm.nvvm.atomic.cas.gen.i.cta",
-+ "llvm.nvvm.atomic.cas.gen.i.sys",
-+ "llvm.nvvm.atomic.dec.gen.i.cta",
-+ "llvm.nvvm.atomic.dec.gen.i.sys",
-+ "llvm.nvvm.atomic.exch.gen.i.cta",
-+ "llvm.nvvm.atomic.exch.gen.i.sys",
-+ "llvm.nvvm.atomic.inc.gen.i.cta",
-+ "llvm.nvvm.atomic.inc.gen.i.sys",
-+ "llvm.nvvm.atomic.load.add.f32",
-+ "llvm.nvvm.atomic.load.dec.32",
-+ "llvm.nvvm.atomic.load.inc.32",
-+ "llvm.nvvm.atomic.max.gen.i.cta",
-+ "llvm.nvvm.atomic.max.gen.i.sys",
-+ "llvm.nvvm.atomic.min.gen.i.cta",
-+ "llvm.nvvm.atomic.min.gen.i.sys",
-+ "llvm.nvvm.atomic.or.gen.i.cta",
-+ "llvm.nvvm.atomic.or.gen.i.sys",
-+ "llvm.nvvm.atomic.xor.gen.i.cta",
-+ "llvm.nvvm.atomic.xor.gen.i.sys",
-+ "llvm.nvvm.bar.sync",
-+ "llvm.nvvm.barrier0",
-+ "llvm.nvvm.barrier0.and",
-+ "llvm.nvvm.barrier0.or",
-+ "llvm.nvvm.barrier0.popc",
-+ "llvm.nvvm.bitcast.d2ll",
-+ "llvm.nvvm.bitcast.f2i",
-+ "llvm.nvvm.bitcast.i2f",
-+ "llvm.nvvm.bitcast.ll2d",
-+ "llvm.nvvm.brev32",
-+ "llvm.nvvm.brev64",
-+ "llvm.nvvm.ceil.d",
-+ "llvm.nvvm.ceil.f",
-+ "llvm.nvvm.ceil.ftz.f",
-+ "llvm.nvvm.clz.i",
-+ "llvm.nvvm.clz.ll",
-+ "llvm.nvvm.compiler.error",
-+ "llvm.nvvm.compiler.warn",
-+ "llvm.nvvm.cos.approx.f",
-+ "llvm.nvvm.cos.approx.ftz.f",
-+ "llvm.nvvm.d2f.rm",
-+ "llvm.nvvm.d2f.rm.ftz",
-+ "llvm.nvvm.d2f.rn",
-+ "llvm.nvvm.d2f.rn.ftz",
-+ "llvm.nvvm.d2f.rp",
-+ "llvm.nvvm.d2f.rp.ftz",
-+ "llvm.nvvm.d2f.rz",
-+ "llvm.nvvm.d2f.rz.ftz",
-+ "llvm.nvvm.d2i.hi",
-+ "llvm.nvvm.d2i.lo",
-+ "llvm.nvvm.d2i.rm",
-+ "llvm.nvvm.d2i.rn",
-+ "llvm.nvvm.d2i.rp",
-+ "llvm.nvvm.d2i.rz",
-+ "llvm.nvvm.d2ll.rm",
-+ "llvm.nvvm.d2ll.rn",
-+ "llvm.nvvm.d2ll.rp",
-+ "llvm.nvvm.d2ll.rz",
-+ "llvm.nvvm.d2ui.rm",
-+ "llvm.nvvm.d2ui.rn",
-+ "llvm.nvvm.d2ui.rp",
-+ "llvm.nvvm.d2ui.rz",
-+ "llvm.nvvm.d2ull.rm",
-+ "llvm.nvvm.d2ull.rn",
-+ "llvm.nvvm.d2ull.rp",
-+ "llvm.nvvm.d2ull.rz",
-+ "llvm.nvvm.div.approx.f",
-+ "llvm.nvvm.div.approx.ftz.f",
-+ "llvm.nvvm.div.rm.d",
-+ "llvm.nvvm.div.rm.f",
-+ "llvm.nvvm.div.rm.ftz.f",
-+ "llvm.nvvm.div.rn.d",
-+ "llvm.nvvm.div.rn.f",
-+ "llvm.nvvm.div.rn.ftz.f",
-+ "llvm.nvvm.div.rp.d",
-+ "llvm.nvvm.div.rp.f",
-+ "llvm.nvvm.div.rp.ftz.f",
-+ "llvm.nvvm.div.rz.d",
-+ "llvm.nvvm.div.rz.f",
-+ "llvm.nvvm.div.rz.ftz.f",
-+ "llvm.nvvm.ex2.approx.d",
-+ "llvm.nvvm.ex2.approx.f",
-+ "llvm.nvvm.ex2.approx.ftz.f",
-+ "llvm.nvvm.f2h.rn",
-+ "llvm.nvvm.f2h.rn.ftz",
-+ "llvm.nvvm.f2i.rm",
-+ "llvm.nvvm.f2i.rm.ftz",
-+ "llvm.nvvm.f2i.rn",
-+ "llvm.nvvm.f2i.rn.ftz",
-+ "llvm.nvvm.f2i.rp",
-+ "llvm.nvvm.f2i.rp.ftz",
-+ "llvm.nvvm.f2i.rz",
-+ "llvm.nvvm.f2i.rz.ftz",
-+ "llvm.nvvm.f2ll.rm",
-+ "llvm.nvvm.f2ll.rm.ftz",
-+ "llvm.nvvm.f2ll.rn",
-+ "llvm.nvvm.f2ll.rn.ftz",
-+ "llvm.nvvm.f2ll.rp",
-+ "llvm.nvvm.f2ll.rp.ftz",
-+ "llvm.nvvm.f2ll.rz",
-+ "llvm.nvvm.f2ll.rz.ftz",
-+ "llvm.nvvm.f2ui.rm",
-+ "llvm.nvvm.f2ui.rm.ftz",
-+ "llvm.nvvm.f2ui.rn",
-+ "llvm.nvvm.f2ui.rn.ftz",
-+ "llvm.nvvm.f2ui.rp",
-+ "llvm.nvvm.f2ui.rp.ftz",
-+ "llvm.nvvm.f2ui.rz",
-+ "llvm.nvvm.f2ui.rz.ftz",
-+ "llvm.nvvm.f2ull.rm",
-+ "llvm.nvvm.f2ull.rm.ftz",
-+ "llvm.nvvm.f2ull.rn",
-+ "llvm.nvvm.f2ull.rn.ftz",
-+ "llvm.nvvm.f2ull.rp",
-+ "llvm.nvvm.f2ull.rp.ftz",
-+ "llvm.nvvm.f2ull.rz",
-+ "llvm.nvvm.f2ull.rz.ftz",
-+ "llvm.nvvm.fabs.d",
-+ "llvm.nvvm.fabs.f",
-+ "llvm.nvvm.fabs.ftz.f",
-+ "llvm.nvvm.floor.d",
-+ "llvm.nvvm.floor.f",
-+ "llvm.nvvm.floor.ftz.f",
-+ "llvm.nvvm.fma.rm.d",
-+ "llvm.nvvm.fma.rm.f",
-+ "llvm.nvvm.fma.rm.ftz.f",
-+ "llvm.nvvm.fma.rn.d",
-+ "llvm.nvvm.fma.rn.f",
-+ "llvm.nvvm.fma.rn.ftz.f",
-+ "llvm.nvvm.fma.rp.d",
-+ "llvm.nvvm.fma.rp.f",
-+ "llvm.nvvm.fma.rp.ftz.f",
-+ "llvm.nvvm.fma.rz.d",
-+ "llvm.nvvm.fma.rz.f",
-+ "llvm.nvvm.fma.rz.ftz.f",
-+ "llvm.nvvm.fmax.d",
-+ "llvm.nvvm.fmax.f",
-+ "llvm.nvvm.fmax.ftz.f",
-+ "llvm.nvvm.fmin.d",
-+ "llvm.nvvm.fmin.f",
-+ "llvm.nvvm.fmin.ftz.f",
-+ "llvm.nvvm.h2f",
-+ "llvm.nvvm.i2d.rm",
-+ "llvm.nvvm.i2d.rn",
-+ "llvm.nvvm.i2d.rp",
-+ "llvm.nvvm.i2d.rz",
-+ "llvm.nvvm.i2f.rm",
-+ "llvm.nvvm.i2f.rn",
-+ "llvm.nvvm.i2f.rp",
-+ "llvm.nvvm.i2f.rz",
-+ "llvm.nvvm.isspacep.const",
-+ "llvm.nvvm.isspacep.global",
-+ "llvm.nvvm.isspacep.local",
-+ "llvm.nvvm.isspacep.shared",
-+ "llvm.nvvm.istypep.sampler",
-+ "llvm.nvvm.istypep.surface",
-+ "llvm.nvvm.istypep.texture",
-+ "llvm.nvvm.ldg.global.f",
-+ "llvm.nvvm.ldg.global.i",
-+ "llvm.nvvm.ldg.global.p",
-+ "llvm.nvvm.ldu.global.f",
-+ "llvm.nvvm.ldu.global.i",
-+ "llvm.nvvm.ldu.global.p",
-+ "llvm.nvvm.lg2.approx.d",
-+ "llvm.nvvm.lg2.approx.f",
-+ "llvm.nvvm.lg2.approx.ftz.f",
-+ "llvm.nvvm.ll2d.rm",
-+ "llvm.nvvm.ll2d.rn",
-+ "llvm.nvvm.ll2d.rp",
-+ "llvm.nvvm.ll2d.rz",
-+ "llvm.nvvm.ll2f.rm",
-+ "llvm.nvvm.ll2f.rn",
-+ "llvm.nvvm.ll2f.rp",
-+ "llvm.nvvm.ll2f.rz",
-+ "llvm.nvvm.lohi.i2d",
-+ "llvm.nvvm.max.i",
-+ "llvm.nvvm.max.ll",
-+ "llvm.nvvm.max.ui",
-+ "llvm.nvvm.max.ull",
-+ "llvm.nvvm.membar.cta",
-+ "llvm.nvvm.membar.gl",
-+ "llvm.nvvm.membar.sys",
-+ "llvm.nvvm.min.i",
-+ "llvm.nvvm.min.ll",
-+ "llvm.nvvm.min.ui",
-+ "llvm.nvvm.min.ull",
-+ "llvm.nvvm.move.double",
-+ "llvm.nvvm.move.float",
-+ "llvm.nvvm.move.i16",
-+ "llvm.nvvm.move.i32",
-+ "llvm.nvvm.move.i64",
-+ "llvm.nvvm.move.ptr",
-+ "llvm.nvvm.mul.rm.d",
-+ "llvm.nvvm.mul.rm.f",
-+ "llvm.nvvm.mul.rm.ftz.f",
-+ "llvm.nvvm.mul.rn.d",
-+ "llvm.nvvm.mul.rn.f",
-+ "llvm.nvvm.mul.rn.ftz.f",
-+ "llvm.nvvm.mul.rp.d",
-+ "llvm.nvvm.mul.rp.f",
-+ "llvm.nvvm.mul.rp.ftz.f",
-+ "llvm.nvvm.mul.rz.d",
-+ "llvm.nvvm.mul.rz.f",
-+ "llvm.nvvm.mul.rz.ftz.f",
-+ "llvm.nvvm.mul24.i",
-+ "llvm.nvvm.mul24.ui",
-+ "llvm.nvvm.mulhi.i",
-+ "llvm.nvvm.mulhi.ll",
-+ "llvm.nvvm.mulhi.ui",
-+ "llvm.nvvm.mulhi.ull",
-+ "llvm.nvvm.popc.i",
-+ "llvm.nvvm.popc.ll",
-+ "llvm.nvvm.prmt",
-+ "llvm.nvvm.ptr.constant.to.gen",
-+ "llvm.nvvm.ptr.gen.to.constant",
-+ "llvm.nvvm.ptr.gen.to.global",
-+ "llvm.nvvm.ptr.gen.to.local",
-+ "llvm.nvvm.ptr.gen.to.param",
-+ "llvm.nvvm.ptr.gen.to.shared",
-+ "llvm.nvvm.ptr.global.to.gen",
-+ "llvm.nvvm.ptr.local.to.gen",
-+ "llvm.nvvm.ptr.shared.to.gen",
-+ "llvm.nvvm.rcp.approx.ftz.d",
-+ "llvm.nvvm.rcp.rm.d",
-+ "llvm.nvvm.rcp.rm.f",
-+ "llvm.nvvm.rcp.rm.ftz.f",
-+ "llvm.nvvm.rcp.rn.d",
-+ "llvm.nvvm.rcp.rn.f",
-+ "llvm.nvvm.rcp.rn.ftz.f",
-+ "llvm.nvvm.rcp.rp.d",
-+ "llvm.nvvm.rcp.rp.f",
-+ "llvm.nvvm.rcp.rp.ftz.f",
-+ "llvm.nvvm.rcp.rz.d",
-+ "llvm.nvvm.rcp.rz.f",
-+ "llvm.nvvm.rcp.rz.ftz.f",
-+ "llvm.nvvm.read.ptx.sreg.clock",
-+ "llvm.nvvm.read.ptx.sreg.clock64",
-+ "llvm.nvvm.read.ptx.sreg.ctaid.w",
-+ "llvm.nvvm.read.ptx.sreg.ctaid.x",
-+ "llvm.nvvm.read.ptx.sreg.ctaid.y",
-+ "llvm.nvvm.read.ptx.sreg.ctaid.z",
-+ "llvm.nvvm.read.ptx.sreg.envreg0",
-+ "llvm.nvvm.read.ptx.sreg.envreg1",
-+ "llvm.nvvm.read.ptx.sreg.envreg10",
-+ "llvm.nvvm.read.ptx.sreg.envreg11",
-+ "llvm.nvvm.read.ptx.sreg.envreg12",
-+ "llvm.nvvm.read.ptx.sreg.envreg13",
-+ "llvm.nvvm.read.ptx.sreg.envreg14",
-+ "llvm.nvvm.read.ptx.sreg.envreg15",
-+ "llvm.nvvm.read.ptx.sreg.envreg16",
-+ "llvm.nvvm.read.ptx.sreg.envreg17",
-+ "llvm.nvvm.read.ptx.sreg.envreg18",
-+ "llvm.nvvm.read.ptx.sreg.envreg19",
-+ "llvm.nvvm.read.ptx.sreg.envreg2",
-+ "llvm.nvvm.read.ptx.sreg.envreg20",
-+ "llvm.nvvm.read.ptx.sreg.envreg21",
-+ "llvm.nvvm.read.ptx.sreg.envreg22",
-+ "llvm.nvvm.read.ptx.sreg.envreg23",
-+ "llvm.nvvm.read.ptx.sreg.envreg24",
-+ "llvm.nvvm.read.ptx.sreg.envreg25",
-+ "llvm.nvvm.read.ptx.sreg.envreg26",
-+ "llvm.nvvm.read.ptx.sreg.envreg27",
-+ "llvm.nvvm.read.ptx.sreg.envreg28",
-+ "llvm.nvvm.read.ptx.sreg.envreg29",
-+ "llvm.nvvm.read.ptx.sreg.envreg3",
-+ "llvm.nvvm.read.ptx.sreg.envreg30",
-+ "llvm.nvvm.read.ptx.sreg.envreg31",
-+ "llvm.nvvm.read.ptx.sreg.envreg4",
-+ "llvm.nvvm.read.ptx.sreg.envreg5",
-+ "llvm.nvvm.read.ptx.sreg.envreg6",
-+ "llvm.nvvm.read.ptx.sreg.envreg7",
-+ "llvm.nvvm.read.ptx.sreg.envreg8",
-+ "llvm.nvvm.read.ptx.sreg.envreg9",
-+ "llvm.nvvm.read.ptx.sreg.gridid",
-+ "llvm.nvvm.read.ptx.sreg.laneid",
-+ "llvm.nvvm.read.ptx.sreg.lanemask.eq",
-+ "llvm.nvvm.read.ptx.sreg.lanemask.ge",
-+ "llvm.nvvm.read.ptx.sreg.lanemask.gt",
-+ "llvm.nvvm.read.ptx.sreg.lanemask.le",
-+ "llvm.nvvm.read.ptx.sreg.lanemask.lt",
-+ "llvm.nvvm.read.ptx.sreg.nctaid.w",
-+ "llvm.nvvm.read.ptx.sreg.nctaid.x",
-+ "llvm.nvvm.read.ptx.sreg.nctaid.y",
-+ "llvm.nvvm.read.ptx.sreg.nctaid.z",
-+ "llvm.nvvm.read.ptx.sreg.nsmid",
-+ "llvm.nvvm.read.ptx.sreg.ntid.w",
-+ "llvm.nvvm.read.ptx.sreg.ntid.x",
-+ "llvm.nvvm.read.ptx.sreg.ntid.y",
-+ "llvm.nvvm.read.ptx.sreg.ntid.z",
-+ "llvm.nvvm.read.ptx.sreg.nwarpid",
-+ "llvm.nvvm.read.ptx.sreg.pm0",
-+ "llvm.nvvm.read.ptx.sreg.pm1",
-+ "llvm.nvvm.read.ptx.sreg.pm2",
-+ "llvm.nvvm.read.ptx.sreg.pm3",
-+ "llvm.nvvm.read.ptx.sreg.smid",
-+ "llvm.nvvm.read.ptx.sreg.tid.w",
-+ "llvm.nvvm.read.ptx.sreg.tid.x",
-+ "llvm.nvvm.read.ptx.sreg.tid.y",
-+ "llvm.nvvm.read.ptx.sreg.tid.z",
-+ "llvm.nvvm.read.ptx.sreg.warpid",
-+ "llvm.nvvm.read.ptx.sreg.warpsize",
-+ "llvm.nvvm.reflect",
-+ "llvm.nvvm.rotate.b32",
-+ "llvm.nvvm.rotate.b64",
-+ "llvm.nvvm.rotate.right.b64",
-+ "llvm.nvvm.round.d",
-+ "llvm.nvvm.round.f",
-+ "llvm.nvvm.round.ftz.f",
-+ "llvm.nvvm.rsqrt.approx.d",
-+ "llvm.nvvm.rsqrt.approx.f",
-+ "llvm.nvvm.rsqrt.approx.ftz.f",
-+ "llvm.nvvm.sad.i",
-+ "llvm.nvvm.sad.ui",
-+ "llvm.nvvm.saturate.d",
-+ "llvm.nvvm.saturate.f",
-+ "llvm.nvvm.saturate.ftz.f",
-+ "llvm.nvvm.shfl.bfly.f32",
-+ "llvm.nvvm.shfl.bfly.i32",
-+ "llvm.nvvm.shfl.down.f32",
-+ "llvm.nvvm.shfl.down.i32",
-+ "llvm.nvvm.shfl.idx.f32",
-+ "llvm.nvvm.shfl.idx.i32",
-+ "llvm.nvvm.shfl.up.f32",
-+ "llvm.nvvm.shfl.up.i32",
-+ "llvm.nvvm.sin.approx.f",
-+ "llvm.nvvm.sin.approx.ftz.f",
-+ "llvm.nvvm.sqrt.approx.f",
-+ "llvm.nvvm.sqrt.approx.ftz.f",
-+ "llvm.nvvm.sqrt.f",
-+ "llvm.nvvm.sqrt.rm.d",
-+ "llvm.nvvm.sqrt.rm.f",
-+ "llvm.nvvm.sqrt.rm.ftz.f",
-+ "llvm.nvvm.sqrt.rn.d",
-+ "llvm.nvvm.sqrt.rn.f",
-+ "llvm.nvvm.sqrt.rn.ftz.f",
-+ "llvm.nvvm.sqrt.rp.d",
-+ "llvm.nvvm.sqrt.rp.f",
-+ "llvm.nvvm.sqrt.rp.ftz.f",
-+ "llvm.nvvm.sqrt.rz.d",
-+ "llvm.nvvm.sqrt.rz.f",
-+ "llvm.nvvm.sqrt.rz.ftz.f",
-+ "llvm.nvvm.suld.1d.array.i16.clamp",
-+ "llvm.nvvm.suld.1d.array.i16.trap",
-+ "llvm.nvvm.suld.1d.array.i16.zero",
-+ "llvm.nvvm.suld.1d.array.i32.clamp",
-+ "llvm.nvvm.suld.1d.array.i32.trap",
-+ "llvm.nvvm.suld.1d.array.i32.zero",
-+ "llvm.nvvm.suld.1d.array.i64.clamp",
-+ "llvm.nvvm.suld.1d.array.i64.trap",
-+ "llvm.nvvm.suld.1d.array.i64.zero",
-+ "llvm.nvvm.suld.1d.array.i8.clamp",
-+ "llvm.nvvm.suld.1d.array.i8.trap",
-+ "llvm.nvvm.suld.1d.array.i8.zero",
-+ "llvm.nvvm.suld.1d.array.v2i16.clamp",
-+ "llvm.nvvm.suld.1d.array.v2i16.trap",
-+ "llvm.nvvm.suld.1d.array.v2i16.zero",
-+ "llvm.nvvm.suld.1d.array.v2i32.clamp",
-+ "llvm.nvvm.suld.1d.array.v2i32.trap",
-+ "llvm.nvvm.suld.1d.array.v2i32.zero",
-+ "llvm.nvvm.suld.1d.array.v2i64.clamp",
-+ "llvm.nvvm.suld.1d.array.v2i64.trap",
-+ "llvm.nvvm.suld.1d.array.v2i64.zero",
-+ "llvm.nvvm.suld.1d.array.v2i8.clamp",
-+ "llvm.nvvm.suld.1d.array.v2i8.trap",
-+ "llvm.nvvm.suld.1d.array.v2i8.zero",
-+ "llvm.nvvm.suld.1d.array.v4i16.clamp",
-+ "llvm.nvvm.suld.1d.array.v4i16.trap",
-+ "llvm.nvvm.suld.1d.array.v4i16.zero",
-+ "llvm.nvvm.suld.1d.array.v4i32.clamp",
-+ "llvm.nvvm.suld.1d.array.v4i32.trap",
-+ "llvm.nvvm.suld.1d.array.v4i32.zero",
-+ "llvm.nvvm.suld.1d.array.v4i8.clamp",
-+ "llvm.nvvm.suld.1d.array.v4i8.trap",
-+ "llvm.nvvm.suld.1d.array.v4i8.zero",
-+ "llvm.nvvm.suld.1d.i16.clamp",
-+ "llvm.nvvm.suld.1d.i16.trap",
-+ "llvm.nvvm.suld.1d.i16.zero",
-+ "llvm.nvvm.suld.1d.i32.clamp",
-+ "llvm.nvvm.suld.1d.i32.trap",
-+ "llvm.nvvm.suld.1d.i32.zero",
-+ "llvm.nvvm.suld.1d.i64.clamp",
-+ "llvm.nvvm.suld.1d.i64.trap",
-+ "llvm.nvvm.suld.1d.i64.zero",
-+ "llvm.nvvm.suld.1d.i8.clamp",
-+ "llvm.nvvm.suld.1d.i8.trap",
-+ "llvm.nvvm.suld.1d.i8.zero",
-+ "llvm.nvvm.suld.1d.v2i16.clamp",
-+ "llvm.nvvm.suld.1d.v2i16.trap",
-+ "llvm.nvvm.suld.1d.v2i16.zero",
-+ "llvm.nvvm.suld.1d.v2i32.clamp",
-+ "llvm.nvvm.suld.1d.v2i32.trap",
-+ "llvm.nvvm.suld.1d.v2i32.zero",
-+ "llvm.nvvm.suld.1d.v2i64.clamp",
-+ "llvm.nvvm.suld.1d.v2i64.trap",
-+ "llvm.nvvm.suld.1d.v2i64.zero",
-+ "llvm.nvvm.suld.1d.v2i8.clamp",
-+ "llvm.nvvm.suld.1d.v2i8.trap",
-+ "llvm.nvvm.suld.1d.v2i8.zero",
-+ "llvm.nvvm.suld.1d.v4i16.clamp",
-+ "llvm.nvvm.suld.1d.v4i16.trap",
-+ "llvm.nvvm.suld.1d.v4i16.zero",
-+ "llvm.nvvm.suld.1d.v4i32.clamp",
-+ "llvm.nvvm.suld.1d.v4i32.trap",
-+ "llvm.nvvm.suld.1d.v4i32.zero",
-+ "llvm.nvvm.suld.1d.v4i8.clamp",
-+ "llvm.nvvm.suld.1d.v4i8.trap",
-+ "llvm.nvvm.suld.1d.v4i8.zero",
-+ "llvm.nvvm.suld.2d.array.i16.clamp",
-+ "llvm.nvvm.suld.2d.array.i16.trap",
-+ "llvm.nvvm.suld.2d.array.i16.zero",
-+ "llvm.nvvm.suld.2d.array.i32.clamp",
-+ "llvm.nvvm.suld.2d.array.i32.trap",
-+ "llvm.nvvm.suld.2d.array.i32.zero",
-+ "llvm.nvvm.suld.2d.array.i64.clamp",
-+ "llvm.nvvm.suld.2d.array.i64.trap",
-+ "llvm.nvvm.suld.2d.array.i64.zero",
-+ "llvm.nvvm.suld.2d.array.i8.clamp",
-+ "llvm.nvvm.suld.2d.array.i8.trap",
-+ "llvm.nvvm.suld.2d.array.i8.zero",
-+ "llvm.nvvm.suld.2d.array.v2i16.clamp",
-+ "llvm.nvvm.suld.2d.array.v2i16.trap",
-+ "llvm.nvvm.suld.2d.array.v2i16.zero",
-+ "llvm.nvvm.suld.2d.array.v2i32.clamp",
-+ "llvm.nvvm.suld.2d.array.v2i32.trap",
-+ "llvm.nvvm.suld.2d.array.v2i32.zero",
-+ "llvm.nvvm.suld.2d.array.v2i64.clamp",
-+ "llvm.nvvm.suld.2d.array.v2i64.trap",
-+ "llvm.nvvm.suld.2d.array.v2i64.zero",
-+ "llvm.nvvm.suld.2d.array.v2i8.clamp",
-+ "llvm.nvvm.suld.2d.array.v2i8.trap",
-+ "llvm.nvvm.suld.2d.array.v2i8.zero",
-+ "llvm.nvvm.suld.2d.array.v4i16.clamp",
-+ "llvm.nvvm.suld.2d.array.v4i16.trap",
-+ "llvm.nvvm.suld.2d.array.v4i16.zero",
-+ "llvm.nvvm.suld.2d.array.v4i32.clamp",
-+ "llvm.nvvm.suld.2d.array.v4i32.trap",
-+ "llvm.nvvm.suld.2d.array.v4i32.zero",
-+ "llvm.nvvm.suld.2d.array.v4i8.clamp",
-+ "llvm.nvvm.suld.2d.array.v4i8.trap",
-+ "llvm.nvvm.suld.2d.array.v4i8.zero",
-+ "llvm.nvvm.suld.2d.i16.clamp",
-+ "llvm.nvvm.suld.2d.i16.trap",
-+ "llvm.nvvm.suld.2d.i16.zero",
-+ "llvm.nvvm.suld.2d.i32.clamp",
-+ "llvm.nvvm.suld.2d.i32.trap",
-+ "llvm.nvvm.suld.2d.i32.zero",
-+ "llvm.nvvm.suld.2d.i64.clamp",
-+ "llvm.nvvm.suld.2d.i64.trap",
-+ "llvm.nvvm.suld.2d.i64.zero",
-+ "llvm.nvvm.suld.2d.i8.clamp",
-+ "llvm.nvvm.suld.2d.i8.trap",
-+ "llvm.nvvm.suld.2d.i8.zero",
-+ "llvm.nvvm.suld.2d.v2i16.clamp",
-+ "llvm.nvvm.suld.2d.v2i16.trap",
-+ "llvm.nvvm.suld.2d.v2i16.zero",
-+ "llvm.nvvm.suld.2d.v2i32.clamp",
-+ "llvm.nvvm.suld.2d.v2i32.trap",
-+ "llvm.nvvm.suld.2d.v2i32.zero",
-+ "llvm.nvvm.suld.2d.v2i64.clamp",
-+ "llvm.nvvm.suld.2d.v2i64.trap",
-+ "llvm.nvvm.suld.2d.v2i64.zero",
-+ "llvm.nvvm.suld.2d.v2i8.clamp",
-+ "llvm.nvvm.suld.2d.v2i8.trap",
-+ "llvm.nvvm.suld.2d.v2i8.zero",
-+ "llvm.nvvm.suld.2d.v4i16.clamp",
-+ "llvm.nvvm.suld.2d.v4i16.trap",
-+ "llvm.nvvm.suld.2d.v4i16.zero",
-+ "llvm.nvvm.suld.2d.v4i32.clamp",
-+ "llvm.nvvm.suld.2d.v4i32.trap",
-+ "llvm.nvvm.suld.2d.v4i32.zero",
-+ "llvm.nvvm.suld.2d.v4i8.clamp",
-+ "llvm.nvvm.suld.2d.v4i8.trap",
-+ "llvm.nvvm.suld.2d.v4i8.zero",
-+ "llvm.nvvm.suld.3d.i16.clamp",
-+ "llvm.nvvm.suld.3d.i16.trap",
-+ "llvm.nvvm.suld.3d.i16.zero",
-+ "llvm.nvvm.suld.3d.i32.clamp",
-+ "llvm.nvvm.suld.3d.i32.trap",
-+ "llvm.nvvm.suld.3d.i32.zero",
-+ "llvm.nvvm.suld.3d.i64.clamp",
-+ "llvm.nvvm.suld.3d.i64.trap",
-+ "llvm.nvvm.suld.3d.i64.zero",
-+ "llvm.nvvm.suld.3d.i8.clamp",
-+ "llvm.nvvm.suld.3d.i8.trap",
-+ "llvm.nvvm.suld.3d.i8.zero",
-+ "llvm.nvvm.suld.3d.v2i16.clamp",
-+ "llvm.nvvm.suld.3d.v2i16.trap",
-+ "llvm.nvvm.suld.3d.v2i16.zero",
-+ "llvm.nvvm.suld.3d.v2i32.clamp",
-+ "llvm.nvvm.suld.3d.v2i32.trap",
-+ "llvm.nvvm.suld.3d.v2i32.zero",
-+ "llvm.nvvm.suld.3d.v2i64.clamp",
-+ "llvm.nvvm.suld.3d.v2i64.trap",
-+ "llvm.nvvm.suld.3d.v2i64.zero",
-+ "llvm.nvvm.suld.3d.v2i8.clamp",
-+ "llvm.nvvm.suld.3d.v2i8.trap",
-+ "llvm.nvvm.suld.3d.v2i8.zero",
-+ "llvm.nvvm.suld.3d.v4i16.clamp",
-+ "llvm.nvvm.suld.3d.v4i16.trap",
-+ "llvm.nvvm.suld.3d.v4i16.zero",
-+ "llvm.nvvm.suld.3d.v4i32.clamp",
-+ "llvm.nvvm.suld.3d.v4i32.trap",
-+ "llvm.nvvm.suld.3d.v4i32.zero",
-+ "llvm.nvvm.suld.3d.v4i8.clamp",
-+ "llvm.nvvm.suld.3d.v4i8.trap",
-+ "llvm.nvvm.suld.3d.v4i8.zero",
-+ "llvm.nvvm.suq.array.size",
-+ "llvm.nvvm.suq.channel.data.type",
-+ "llvm.nvvm.suq.channel.order",
-+ "llvm.nvvm.suq.depth",
-+ "llvm.nvvm.suq.height",
-+ "llvm.nvvm.suq.width",
-+ "llvm.nvvm.sust.b.1d.array.i16.clamp",
-+ "llvm.nvvm.sust.b.1d.array.i16.trap",
-+ "llvm.nvvm.sust.b.1d.array.i16.zero",
-+ "llvm.nvvm.sust.b.1d.array.i32.clamp",
-+ "llvm.nvvm.sust.b.1d.array.i32.trap",
-+ "llvm.nvvm.sust.b.1d.array.i32.zero",
-+ "llvm.nvvm.sust.b.1d.array.i64.clamp",
-+ "llvm.nvvm.sust.b.1d.array.i64.trap",
-+ "llvm.nvvm.sust.b.1d.array.i64.zero",
-+ "llvm.nvvm.sust.b.1d.array.i8.clamp",
-+ "llvm.nvvm.sust.b.1d.array.i8.trap",
-+ "llvm.nvvm.sust.b.1d.array.i8.zero",
-+ "llvm.nvvm.sust.b.1d.array.v2i16.clamp",
-+ "llvm.nvvm.sust.b.1d.array.v2i16.trap",
-+ "llvm.nvvm.sust.b.1d.array.v2i16.zero",
-+ "llvm.nvvm.sust.b.1d.array.v2i32.clamp",
-+ "llvm.nvvm.sust.b.1d.array.v2i32.trap",
-+ "llvm.nvvm.sust.b.1d.array.v2i32.zero",
-+ "llvm.nvvm.sust.b.1d.array.v2i64.clamp",
-+ "llvm.nvvm.sust.b.1d.array.v2i64.trap",
-+ "llvm.nvvm.sust.b.1d.array.v2i64.zero",
-+ "llvm.nvvm.sust.b.1d.array.v2i8.clamp",
-+ "llvm.nvvm.sust.b.1d.array.v2i8.trap",
-+ "llvm.nvvm.sust.b.1d.array.v2i8.zero",
-+ "llvm.nvvm.sust.b.1d.array.v4i16.clamp",
-+ "llvm.nvvm.sust.b.1d.array.v4i16.trap",
-+ "llvm.nvvm.sust.b.1d.array.v4i16.zero",
-+ "llvm.nvvm.sust.b.1d.array.v4i32.clamp",
-+ "llvm.nvvm.sust.b.1d.array.v4i32.trap",
-+ "llvm.nvvm.sust.b.1d.array.v4i32.zero",
-+ "llvm.nvvm.sust.b.1d.array.v4i8.clamp",
-+ "llvm.nvvm.sust.b.1d.array.v4i8.trap",
-+ "llvm.nvvm.sust.b.1d.array.v4i8.zero",
-+ "llvm.nvvm.sust.b.1d.i16.clamp",
-+ "llvm.nvvm.sust.b.1d.i16.trap",
-+ "llvm.nvvm.sust.b.1d.i16.zero",
-+ "llvm.nvvm.sust.b.1d.i32.clamp",
-+ "llvm.nvvm.sust.b.1d.i32.trap",
-+ "llvm.nvvm.sust.b.1d.i32.zero",
-+ "llvm.nvvm.sust.b.1d.i64.clamp",
-+ "llvm.nvvm.sust.b.1d.i64.trap",
-+ "llvm.nvvm.sust.b.1d.i64.zero",
-+ "llvm.nvvm.sust.b.1d.i8.clamp",
-+ "llvm.nvvm.sust.b.1d.i8.trap",
-+ "llvm.nvvm.sust.b.1d.i8.zero",
-+ "llvm.nvvm.sust.b.1d.v2i16.clamp",
-+ "llvm.nvvm.sust.b.1d.v2i16.trap",
-+ "llvm.nvvm.sust.b.1d.v2i16.zero",
-+ "llvm.nvvm.sust.b.1d.v2i32.clamp",
-+ "llvm.nvvm.sust.b.1d.v2i32.trap",
-+ "llvm.nvvm.sust.b.1d.v2i32.zero",
-+ "llvm.nvvm.sust.b.1d.v2i64.clamp",
-+ "llvm.nvvm.sust.b.1d.v2i64.trap",
-+ "llvm.nvvm.sust.b.1d.v2i64.zero",
-+ "llvm.nvvm.sust.b.1d.v2i8.clamp",
-+ "llvm.nvvm.sust.b.1d.v2i8.trap",
-+ "llvm.nvvm.sust.b.1d.v2i8.zero",
-+ "llvm.nvvm.sust.b.1d.v4i16.clamp",
-+ "llvm.nvvm.sust.b.1d.v4i16.trap",
-+ "llvm.nvvm.sust.b.1d.v4i16.zero",
-+ "llvm.nvvm.sust.b.1d.v4i32.clamp",
-+ "llvm.nvvm.sust.b.1d.v4i32.trap",
-+ "llvm.nvvm.sust.b.1d.v4i32.zero",
-+ "llvm.nvvm.sust.b.1d.v4i8.clamp",
-+ "llvm.nvvm.sust.b.1d.v4i8.trap",
-+ "llvm.nvvm.sust.b.1d.v4i8.zero",
-+ "llvm.nvvm.sust.b.2d.array.i16.clamp",
-+ "llvm.nvvm.sust.b.2d.array.i16.trap",
-+ "llvm.nvvm.sust.b.2d.array.i16.zero",
-+ "llvm.nvvm.sust.b.2d.array.i32.clamp",
-+ "llvm.nvvm.sust.b.2d.array.i32.trap",
-+ "llvm.nvvm.sust.b.2d.array.i32.zero",
-+ "llvm.nvvm.sust.b.2d.array.i64.clamp",
-+ "llvm.nvvm.sust.b.2d.array.i64.trap",
-+ "llvm.nvvm.sust.b.2d.array.i64.zero",
-+ "llvm.nvvm.sust.b.2d.array.i8.clamp",
-+ "llvm.nvvm.sust.b.2d.array.i8.trap",
-+ "llvm.nvvm.sust.b.2d.array.i8.zero",
-+ "llvm.nvvm.sust.b.2d.array.v2i16.clamp",
-+ "llvm.nvvm.sust.b.2d.array.v2i16.trap",
-+ "llvm.nvvm.sust.b.2d.array.v2i16.zero",
-+ "llvm.nvvm.sust.b.2d.array.v2i32.clamp",
-+ "llvm.nvvm.sust.b.2d.array.v2i32.trap",
-+ "llvm.nvvm.sust.b.2d.array.v2i32.zero",
-+ "llvm.nvvm.sust.b.2d.array.v2i64.clamp",
-+ "llvm.nvvm.sust.b.2d.array.v2i64.trap",
-+ "llvm.nvvm.sust.b.2d.array.v2i64.zero",
-+ "llvm.nvvm.sust.b.2d.array.v2i8.clamp",
-+ "llvm.nvvm.sust.b.2d.array.v2i8.trap",
-+ "llvm.nvvm.sust.b.2d.array.v2i8.zero",
-+ "llvm.nvvm.sust.b.2d.array.v4i16.clamp",
-+ "llvm.nvvm.sust.b.2d.array.v4i16.trap",
-+ "llvm.nvvm.sust.b.2d.array.v4i16.zero",
-+ "llvm.nvvm.sust.b.2d.array.v4i32.clamp",
-+ "llvm.nvvm.sust.b.2d.array.v4i32.trap",
-+ "llvm.nvvm.sust.b.2d.array.v4i32.zero",
-+ "llvm.nvvm.sust.b.2d.array.v4i8.clamp",
-+ "llvm.nvvm.sust.b.2d.array.v4i8.trap",
-+ "llvm.nvvm.sust.b.2d.array.v4i8.zero",
-+ "llvm.nvvm.sust.b.2d.i16.clamp",
-+ "llvm.nvvm.sust.b.2d.i16.trap",
-+ "llvm.nvvm.sust.b.2d.i16.zero",
-+ "llvm.nvvm.sust.b.2d.i32.clamp",
-+ "llvm.nvvm.sust.b.2d.i32.trap",
-+ "llvm.nvvm.sust.b.2d.i32.zero",
-+ "llvm.nvvm.sust.b.2d.i64.clamp",
-+ "llvm.nvvm.sust.b.2d.i64.trap",
-+ "llvm.nvvm.sust.b.2d.i64.zero",
-+ "llvm.nvvm.sust.b.2d.i8.clamp",
-+ "llvm.nvvm.sust.b.2d.i8.trap",
-+ "llvm.nvvm.sust.b.2d.i8.zero",
-+ "llvm.nvvm.sust.b.2d.v2i16.clamp",
-+ "llvm.nvvm.sust.b.2d.v2i16.trap",
-+ "llvm.nvvm.sust.b.2d.v2i16.zero",
-+ "llvm.nvvm.sust.b.2d.v2i32.clamp",
-+ "llvm.nvvm.sust.b.2d.v2i32.trap",
-+ "llvm.nvvm.sust.b.2d.v2i32.zero",
-+ "llvm.nvvm.sust.b.2d.v2i64.clamp",
-+ "llvm.nvvm.sust.b.2d.v2i64.trap",
-+ "llvm.nvvm.sust.b.2d.v2i64.zero",
-+ "llvm.nvvm.sust.b.2d.v2i8.clamp",
-+ "llvm.nvvm.sust.b.2d.v2i8.trap",
-+ "llvm.nvvm.sust.b.2d.v2i8.zero",
-+ "llvm.nvvm.sust.b.2d.v4i16.clamp",
-+ "llvm.nvvm.sust.b.2d.v4i16.trap",
-+ "llvm.nvvm.sust.b.2d.v4i16.zero",
-+ "llvm.nvvm.sust.b.2d.v4i32.clamp",
-+ "llvm.nvvm.sust.b.2d.v4i32.trap",
-+ "llvm.nvvm.sust.b.2d.v4i32.zero",
-+ "llvm.nvvm.sust.b.2d.v4i8.clamp",
-+ "llvm.nvvm.sust.b.2d.v4i8.trap",
-+ "llvm.nvvm.sust.b.2d.v4i8.zero",
-+ "llvm.nvvm.sust.b.3d.i16.clamp",
-+ "llvm.nvvm.sust.b.3d.i16.trap",
-+ "llvm.nvvm.sust.b.3d.i16.zero",
-+ "llvm.nvvm.sust.b.3d.i32.clamp",
-+ "llvm.nvvm.sust.b.3d.i32.trap",
-+ "llvm.nvvm.sust.b.3d.i32.zero",
-+ "llvm.nvvm.sust.b.3d.i64.clamp",
-+ "llvm.nvvm.sust.b.3d.i64.trap",
-+ "llvm.nvvm.sust.b.3d.i64.zero",
-+ "llvm.nvvm.sust.b.3d.i8.clamp",
-+ "llvm.nvvm.sust.b.3d.i8.trap",
-+ "llvm.nvvm.sust.b.3d.i8.zero",
-+ "llvm.nvvm.sust.b.3d.v2i16.clamp",
-+ "llvm.nvvm.sust.b.3d.v2i16.trap",
-+ "llvm.nvvm.sust.b.3d.v2i16.zero",
-+ "llvm.nvvm.sust.b.3d.v2i32.clamp",
-+ "llvm.nvvm.sust.b.3d.v2i32.trap",
-+ "llvm.nvvm.sust.b.3d.v2i32.zero",
-+ "llvm.nvvm.sust.b.3d.v2i64.clamp",
-+ "llvm.nvvm.sust.b.3d.v2i64.trap",
-+ "llvm.nvvm.sust.b.3d.v2i64.zero",
-+ "llvm.nvvm.sust.b.3d.v2i8.clamp",
-+ "llvm.nvvm.sust.b.3d.v2i8.trap",
-+ "llvm.nvvm.sust.b.3d.v2i8.zero",
-+ "llvm.nvvm.sust.b.3d.v4i16.clamp",
-+ "llvm.nvvm.sust.b.3d.v4i16.trap",
-+ "llvm.nvvm.sust.b.3d.v4i16.zero",
-+ "llvm.nvvm.sust.b.3d.v4i32.clamp",
-+ "llvm.nvvm.sust.b.3d.v4i32.trap",
-+ "llvm.nvvm.sust.b.3d.v4i32.zero",
-+ "llvm.nvvm.sust.b.3d.v4i8.clamp",
-+ "llvm.nvvm.sust.b.3d.v4i8.trap",
-+ "llvm.nvvm.sust.b.3d.v4i8.zero",
-+ "llvm.nvvm.sust.p.1d.array.i16.trap",
-+ "llvm.nvvm.sust.p.1d.array.i32.trap",
-+ "llvm.nvvm.sust.p.1d.array.i8.trap",
-+ "llvm.nvvm.sust.p.1d.array.v2i16.trap",
-+ "llvm.nvvm.sust.p.1d.array.v2i32.trap",
-+ "llvm.nvvm.sust.p.1d.array.v2i8.trap",
-+ "llvm.nvvm.sust.p.1d.array.v4i16.trap",
-+ "llvm.nvvm.sust.p.1d.array.v4i32.trap",
-+ "llvm.nvvm.sust.p.1d.array.v4i8.trap",
-+ "llvm.nvvm.sust.p.1d.i16.trap",
-+ "llvm.nvvm.sust.p.1d.i32.trap",
-+ "llvm.nvvm.sust.p.1d.i8.trap",
-+ "llvm.nvvm.sust.p.1d.v2i16.trap",
-+ "llvm.nvvm.sust.p.1d.v2i32.trap",
-+ "llvm.nvvm.sust.p.1d.v2i8.trap",
-+ "llvm.nvvm.sust.p.1d.v4i16.trap",
-+ "llvm.nvvm.sust.p.1d.v4i32.trap",
-+ "llvm.nvvm.sust.p.1d.v4i8.trap",
-+ "llvm.nvvm.sust.p.2d.array.i16.trap",
-+ "llvm.nvvm.sust.p.2d.array.i32.trap",
-+ "llvm.nvvm.sust.p.2d.array.i8.trap",
-+ "llvm.nvvm.sust.p.2d.array.v2i16.trap",
-+ "llvm.nvvm.sust.p.2d.array.v2i32.trap",
-+ "llvm.nvvm.sust.p.2d.array.v2i8.trap",
-+ "llvm.nvvm.sust.p.2d.array.v4i16.trap",
-+ "llvm.nvvm.sust.p.2d.array.v4i32.trap",
-+ "llvm.nvvm.sust.p.2d.array.v4i8.trap",
-+ "llvm.nvvm.sust.p.2d.i16.trap",
-+ "llvm.nvvm.sust.p.2d.i32.trap",
-+ "llvm.nvvm.sust.p.2d.i8.trap",
-+ "llvm.nvvm.sust.p.2d.v2i16.trap",
-+ "llvm.nvvm.sust.p.2d.v2i32.trap",
-+ "llvm.nvvm.sust.p.2d.v2i8.trap",
-+ "llvm.nvvm.sust.p.2d.v4i16.trap",
-+ "llvm.nvvm.sust.p.2d.v4i32.trap",
-+ "llvm.nvvm.sust.p.2d.v4i8.trap",
-+ "llvm.nvvm.sust.p.3d.i16.trap",
-+ "llvm.nvvm.sust.p.3d.i32.trap",
-+ "llvm.nvvm.sust.p.3d.i8.trap",
-+ "llvm.nvvm.sust.p.3d.v2i16.trap",
-+ "llvm.nvvm.sust.p.3d.v2i32.trap",
-+ "llvm.nvvm.sust.p.3d.v2i8.trap",
-+ "llvm.nvvm.sust.p.3d.v4i16.trap",
-+ "llvm.nvvm.sust.p.3d.v4i32.trap",
-+ "llvm.nvvm.sust.p.3d.v4i8.trap",
-+ "llvm.nvvm.swap.lo.hi.b64",
-+ "llvm.nvvm.tex.1d.array.grad.v4f32.f32",
-+ "llvm.nvvm.tex.1d.array.grad.v4s32.f32",
-+ "llvm.nvvm.tex.1d.array.grad.v4u32.f32",
-+ "llvm.nvvm.tex.1d.array.level.v4f32.f32",
-+ "llvm.nvvm.tex.1d.array.level.v4s32.f32",
-+ "llvm.nvvm.tex.1d.array.level.v4u32.f32",
-+ "llvm.nvvm.tex.1d.array.v4f32.f32",
-+ "llvm.nvvm.tex.1d.array.v4f32.s32",
-+ "llvm.nvvm.tex.1d.array.v4s32.f32",
-+ "llvm.nvvm.tex.1d.array.v4s32.s32",
-+ "llvm.nvvm.tex.1d.array.v4u32.f32",
-+ "llvm.nvvm.tex.1d.array.v4u32.s32",
-+ "llvm.nvvm.tex.1d.grad.v4f32.f32",
-+ "llvm.nvvm.tex.1d.grad.v4s32.f32",
-+ "llvm.nvvm.tex.1d.grad.v4u32.f32",
-+ "llvm.nvvm.tex.1d.level.v4f32.f32",
-+ "llvm.nvvm.tex.1d.level.v4s32.f32",
-+ "llvm.nvvm.tex.1d.level.v4u32.f32",
-+ "llvm.nvvm.tex.1d.v4f32.f32",
-+ "llvm.nvvm.tex.1d.v4f32.s32",
-+ "llvm.nvvm.tex.1d.v4s32.f32",
-+ "llvm.nvvm.tex.1d.v4s32.s32",
-+ "llvm.nvvm.tex.1d.v4u32.f32",
-+ "llvm.nvvm.tex.1d.v4u32.s32",
-+ "llvm.nvvm.tex.2d.array.grad.v4f32.f32",
-+ "llvm.nvvm.tex.2d.array.grad.v4s32.f32",
-+ "llvm.nvvm.tex.2d.array.grad.v4u32.f32",
-+ "llvm.nvvm.tex.2d.array.level.v4f32.f32",
-+ "llvm.nvvm.tex.2d.array.level.v4s32.f32",
-+ "llvm.nvvm.tex.2d.array.level.v4u32.f32",
-+ "llvm.nvvm.tex.2d.array.v4f32.f32",
-+ "llvm.nvvm.tex.2d.array.v4f32.s32",
-+ "llvm.nvvm.tex.2d.array.v4s32.f32",
-+ "llvm.nvvm.tex.2d.array.v4s32.s32",
-+ "llvm.nvvm.tex.2d.array.v4u32.f32",
-+ "llvm.nvvm.tex.2d.array.v4u32.s32",
-+ "llvm.nvvm.tex.2d.grad.v4f32.f32",
-+ "llvm.nvvm.tex.2d.grad.v4s32.f32",
-+ "llvm.nvvm.tex.2d.grad.v4u32.f32",
-+ "llvm.nvvm.tex.2d.level.v4f32.f32",
-+ "llvm.nvvm.tex.2d.level.v4s32.f32",
-+ "llvm.nvvm.tex.2d.level.v4u32.f32",
-+ "llvm.nvvm.tex.2d.v4f32.f32",
-+ "llvm.nvvm.tex.2d.v4f32.s32",
-+ "llvm.nvvm.tex.2d.v4s32.f32",
-+ "llvm.nvvm.tex.2d.v4s32.s32",
-+ "llvm.nvvm.tex.2d.v4u32.f32",
-+ "llvm.nvvm.tex.2d.v4u32.s32",
-+ "llvm.nvvm.tex.3d.grad.v4f32.f32",
-+ "llvm.nvvm.tex.3d.grad.v4s32.f32",
-+ "llvm.nvvm.tex.3d.grad.v4u32.f32",
-+ "llvm.nvvm.tex.3d.level.v4f32.f32",
-+ "llvm.nvvm.tex.3d.level.v4s32.f32",
-+ "llvm.nvvm.tex.3d.level.v4u32.f32",
-+ "llvm.nvvm.tex.3d.v4f32.f32",
-+ "llvm.nvvm.tex.3d.v4f32.s32",
-+ "llvm.nvvm.tex.3d.v4s32.f32",
-+ "llvm.nvvm.tex.3d.v4s32.s32",
-+ "llvm.nvvm.tex.3d.v4u32.f32",
-+ "llvm.nvvm.tex.3d.v4u32.s32",
-+ "llvm.nvvm.tex.cube.array.level.v4f32.f32",
-+ "llvm.nvvm.tex.cube.array.level.v4s32.f32",
-+ "llvm.nvvm.tex.cube.array.level.v4u32.f32",
-+ "llvm.nvvm.tex.cube.array.v4f32.f32",
-+ "llvm.nvvm.tex.cube.array.v4s32.f32",
-+ "llvm.nvvm.tex.cube.array.v4u32.f32",
-+ "llvm.nvvm.tex.cube.level.v4f32.f32",
-+ "llvm.nvvm.tex.cube.level.v4s32.f32",
-+ "llvm.nvvm.tex.cube.level.v4u32.f32",
-+ "llvm.nvvm.tex.cube.v4f32.f32",
-+ "llvm.nvvm.tex.cube.v4s32.f32",
-+ "llvm.nvvm.tex.cube.v4u32.f32",
-+ "llvm.nvvm.tex.unified.1d.array.grad.v4f32.f32",
-+ "llvm.nvvm.tex.unified.1d.array.grad.v4s32.f32",
-+ "llvm.nvvm.tex.unified.1d.array.grad.v4u32.f32",
-+ "llvm.nvvm.tex.unified.1d.array.level.v4f32.f32",
-+ "llvm.nvvm.tex.unified.1d.array.level.v4s32.f32",
-+ "llvm.nvvm.tex.unified.1d.array.level.v4u32.f32",
-+ "llvm.nvvm.tex.unified.1d.array.v4f32.f32",
-+ "llvm.nvvm.tex.unified.1d.array.v4f32.s32",
-+ "llvm.nvvm.tex.unified.1d.array.v4s32.f32",
-+ "llvm.nvvm.tex.unified.1d.array.v4s32.s32",
-+ "llvm.nvvm.tex.unified.1d.array.v4u32.f32",
-+ "llvm.nvvm.tex.unified.1d.array.v4u32.s32",
-+ "llvm.nvvm.tex.unified.1d.grad.v4f32.f32",
-+ "llvm.nvvm.tex.unified.1d.grad.v4s32.f32",
-+ "llvm.nvvm.tex.unified.1d.grad.v4u32.f32",
-+ "llvm.nvvm.tex.unified.1d.level.v4f32.f32",
-+ "llvm.nvvm.tex.unified.1d.level.v4s32.f32",
-+ "llvm.nvvm.tex.unified.1d.level.v4u32.f32",
-+ "llvm.nvvm.tex.unified.1d.v4f32.f32",
-+ "llvm.nvvm.tex.unified.1d.v4f32.s32",
-+ "llvm.nvvm.tex.unified.1d.v4s32.f32",
-+ "llvm.nvvm.tex.unified.1d.v4s32.s32",
-+ "llvm.nvvm.tex.unified.1d.v4u32.f32",
-+ "llvm.nvvm.tex.unified.1d.v4u32.s32",
-+ "llvm.nvvm.tex.unified.2d.array.grad.v4f32.f32",
-+ "llvm.nvvm.tex.unified.2d.array.grad.v4s32.f32",
-+ "llvm.nvvm.tex.unified.2d.array.grad.v4u32.f32",
-+ "llvm.nvvm.tex.unified.2d.array.level.v4f32.f32",
-+ "llvm.nvvm.tex.unified.2d.array.level.v4s32.f32",
-+ "llvm.nvvm.tex.unified.2d.array.level.v4u32.f32",
-+ "llvm.nvvm.tex.unified.2d.array.v4f32.f32",
-+ "llvm.nvvm.tex.unified.2d.array.v4f32.s32",
-+ "llvm.nvvm.tex.unified.2d.array.v4s32.f32",
-+ "llvm.nvvm.tex.unified.2d.array.v4s32.s32",
-+ "llvm.nvvm.tex.unified.2d.array.v4u32.f32",
-+ "llvm.nvvm.tex.unified.2d.array.v4u32.s32",
-+ "llvm.nvvm.tex.unified.2d.grad.v4f32.f32",
-+ "llvm.nvvm.tex.unified.2d.grad.v4s32.f32",
-+ "llvm.nvvm.tex.unified.2d.grad.v4u32.f32",
-+ "llvm.nvvm.tex.unified.2d.level.v4f32.f32",
-+ "llvm.nvvm.tex.unified.2d.level.v4s32.f32",
-+ "llvm.nvvm.tex.unified.2d.level.v4u32.f32",
-+ "llvm.nvvm.tex.unified.2d.v4f32.f32",
-+ "llvm.nvvm.tex.unified.2d.v4f32.s32",
-+ "llvm.nvvm.tex.unified.2d.v4s32.f32",
-+ "llvm.nvvm.tex.unified.2d.v4s32.s32",
-+ "llvm.nvvm.tex.unified.2d.v4u32.f32",
-+ "llvm.nvvm.tex.unified.2d.v4u32.s32",
-+ "llvm.nvvm.tex.unified.3d.grad.v4f32.f32",
-+ "llvm.nvvm.tex.unified.3d.grad.v4s32.f32",
-+ "llvm.nvvm.tex.unified.3d.grad.v4u32.f32",
-+ "llvm.nvvm.tex.unified.3d.level.v4f32.f32",
-+ "llvm.nvvm.tex.unified.3d.level.v4s32.f32",
-+ "llvm.nvvm.tex.unified.3d.level.v4u32.f32",
-+ "llvm.nvvm.tex.unified.3d.v4f32.f32",
-+ "llvm.nvvm.tex.unified.3d.v4f32.s32",
-+ "llvm.nvvm.tex.unified.3d.v4s32.f32",
-+ "llvm.nvvm.tex.unified.3d.v4s32.s32",
-+ "llvm.nvvm.tex.unified.3d.v4u32.f32",
-+ "llvm.nvvm.tex.unified.3d.v4u32.s32",
-+ "llvm.nvvm.tex.unified.cube.array.level.v4f32.f32",
-+ "llvm.nvvm.tex.unified.cube.array.level.v4s32.f32",
-+ "llvm.nvvm.tex.unified.cube.array.level.v4u32.f32",
-+ "llvm.nvvm.tex.unified.cube.array.v4f32.f32",
-+ "llvm.nvvm.tex.unified.cube.array.v4s32.f32",
-+ "llvm.nvvm.tex.unified.cube.array.v4u32.f32",
-+ "llvm.nvvm.tex.unified.cube.level.v4f32.f32",
-+ "llvm.nvvm.tex.unified.cube.level.v4s32.f32",
-+ "llvm.nvvm.tex.unified.cube.level.v4u32.f32",
-+ "llvm.nvvm.tex.unified.cube.v4f32.f32",
-+ "llvm.nvvm.tex.unified.cube.v4s32.f32",
-+ "llvm.nvvm.tex.unified.cube.v4u32.f32",
-+ "llvm.nvvm.texsurf.handle",
-+ "llvm.nvvm.texsurf.handle.internal",
-+ "llvm.nvvm.tld4.a.2d.v4f32.f32",
-+ "llvm.nvvm.tld4.a.2d.v4s32.f32",
-+ "llvm.nvvm.tld4.a.2d.v4u32.f32",
-+ "llvm.nvvm.tld4.b.2d.v4f32.f32",
-+ "llvm.nvvm.tld4.b.2d.v4s32.f32",
-+ "llvm.nvvm.tld4.b.2d.v4u32.f32",
-+ "llvm.nvvm.tld4.g.2d.v4f32.f32",
-+ "llvm.nvvm.tld4.g.2d.v4s32.f32",
-+ "llvm.nvvm.tld4.g.2d.v4u32.f32",
-+ "llvm.nvvm.tld4.r.2d.v4f32.f32",
-+ "llvm.nvvm.tld4.r.2d.v4s32.f32",
-+ "llvm.nvvm.tld4.r.2d.v4u32.f32",
-+ "llvm.nvvm.tld4.unified.a.2d.v4f32.f32",
-+ "llvm.nvvm.tld4.unified.a.2d.v4s32.f32",
-+ "llvm.nvvm.tld4.unified.a.2d.v4u32.f32",
-+ "llvm.nvvm.tld4.unified.b.2d.v4f32.f32",
-+ "llvm.nvvm.tld4.unified.b.2d.v4s32.f32",
-+ "llvm.nvvm.tld4.unified.b.2d.v4u32.f32",
-+ "llvm.nvvm.tld4.unified.g.2d.v4f32.f32",
-+ "llvm.nvvm.tld4.unified.g.2d.v4s32.f32",
-+ "llvm.nvvm.tld4.unified.g.2d.v4u32.f32",
-+ "llvm.nvvm.tld4.unified.r.2d.v4f32.f32",
-+ "llvm.nvvm.tld4.unified.r.2d.v4s32.f32",
-+ "llvm.nvvm.tld4.unified.r.2d.v4u32.f32",
-+ "llvm.nvvm.trunc.d",
-+ "llvm.nvvm.trunc.f",
-+ "llvm.nvvm.trunc.ftz.f",
-+ "llvm.nvvm.txq.array.size",
-+ "llvm.nvvm.txq.channel.data.type",
-+ "llvm.nvvm.txq.channel.order",
-+ "llvm.nvvm.txq.depth",
-+ "llvm.nvvm.txq.height",
-+ "llvm.nvvm.txq.num.mipmap.levels",
-+ "llvm.nvvm.txq.num.samples",
-+ "llvm.nvvm.txq.width",
-+ "llvm.nvvm.ui2d.rm",
-+ "llvm.nvvm.ui2d.rn",
-+ "llvm.nvvm.ui2d.rp",
-+ "llvm.nvvm.ui2d.rz",
-+ "llvm.nvvm.ui2f.rm",
-+ "llvm.nvvm.ui2f.rn",
-+ "llvm.nvvm.ui2f.rp",
-+ "llvm.nvvm.ui2f.rz",
-+ "llvm.nvvm.ull2d.rm",
-+ "llvm.nvvm.ull2d.rn",
-+ "llvm.nvvm.ull2d.rp",
-+ "llvm.nvvm.ull2d.rz",
-+ "llvm.nvvm.ull2f.rm",
-+ "llvm.nvvm.ull2f.rn",
-+ "llvm.nvvm.ull2f.rp",
-+ "llvm.nvvm.ull2f.rz",
-+ "llvm.ppc.altivec.crypto.vcipher",
-+ "llvm.ppc.altivec.crypto.vcipherlast",
-+ "llvm.ppc.altivec.crypto.vncipher",
-+ "llvm.ppc.altivec.crypto.vncipherlast",
-+ "llvm.ppc.altivec.crypto.vpermxor",
-+ "llvm.ppc.altivec.crypto.vpmsumb",
-+ "llvm.ppc.altivec.crypto.vpmsumd",
-+ "llvm.ppc.altivec.crypto.vpmsumh",
-+ "llvm.ppc.altivec.crypto.vpmsumw",
-+ "llvm.ppc.altivec.crypto.vsbox",
-+ "llvm.ppc.altivec.crypto.vshasigmad",
-+ "llvm.ppc.altivec.crypto.vshasigmaw",
-+ "llvm.ppc.altivec.dss",
-+ "llvm.ppc.altivec.dssall",
-+ "llvm.ppc.altivec.dst",
-+ "llvm.ppc.altivec.dstst",
-+ "llvm.ppc.altivec.dststt",
-+ "llvm.ppc.altivec.dstt",
-+ "llvm.ppc.altivec.lvebx",
-+ "llvm.ppc.altivec.lvehx",
-+ "llvm.ppc.altivec.lvewx",
-+ "llvm.ppc.altivec.lvsl",
-+ "llvm.ppc.altivec.lvsr",
-+ "llvm.ppc.altivec.lvx",
-+ "llvm.ppc.altivec.lvxl",
-+ "llvm.ppc.altivec.mfvscr",
-+ "llvm.ppc.altivec.mtvscr",
-+ "llvm.ppc.altivec.stvebx",
-+ "llvm.ppc.altivec.stvehx",
-+ "llvm.ppc.altivec.stvewx",
-+ "llvm.ppc.altivec.stvx",
-+ "llvm.ppc.altivec.stvxl",
-+ "llvm.ppc.altivec.vabsdub",
-+ "llvm.ppc.altivec.vabsduh",
-+ "llvm.ppc.altivec.vabsduw",
-+ "llvm.ppc.altivec.vaddcuq",
-+ "llvm.ppc.altivec.vaddcuw",
-+ "llvm.ppc.altivec.vaddecuq",
-+ "llvm.ppc.altivec.vaddeuqm",
-+ "llvm.ppc.altivec.vaddsbs",
-+ "llvm.ppc.altivec.vaddshs",
-+ "llvm.ppc.altivec.vaddsws",
-+ "llvm.ppc.altivec.vaddubs",
-+ "llvm.ppc.altivec.vadduhs",
-+ "llvm.ppc.altivec.vadduws",
-+ "llvm.ppc.altivec.vavgsb",
-+ "llvm.ppc.altivec.vavgsh",
-+ "llvm.ppc.altivec.vavgsw",
-+ "llvm.ppc.altivec.vavgub",
-+ "llvm.ppc.altivec.vavguh",
-+ "llvm.ppc.altivec.vavguw",
-+ "llvm.ppc.altivec.vbpermq",
-+ "llvm.ppc.altivec.vcfsx",
-+ "llvm.ppc.altivec.vcfux",
-+ "llvm.ppc.altivec.vclzlsbb",
-+ "llvm.ppc.altivec.vcmpbfp",
-+ "llvm.ppc.altivec.vcmpbfp.p",
-+ "llvm.ppc.altivec.vcmpeqfp",
-+ "llvm.ppc.altivec.vcmpeqfp.p",
-+ "llvm.ppc.altivec.vcmpequb",
-+ "llvm.ppc.altivec.vcmpequb.p",
-+ "llvm.ppc.altivec.vcmpequd",
-+ "llvm.ppc.altivec.vcmpequd.p",
-+ "llvm.ppc.altivec.vcmpequh",
-+ "llvm.ppc.altivec.vcmpequh.p",
-+ "llvm.ppc.altivec.vcmpequw",
-+ "llvm.ppc.altivec.vcmpequw.p",
-+ "llvm.ppc.altivec.vcmpgefp",
-+ "llvm.ppc.altivec.vcmpgefp.p",
-+ "llvm.ppc.altivec.vcmpgtfp",
-+ "llvm.ppc.altivec.vcmpgtfp.p",
-+ "llvm.ppc.altivec.vcmpgtsb",
-+ "llvm.ppc.altivec.vcmpgtsb.p",
-+ "llvm.ppc.altivec.vcmpgtsd",
-+ "llvm.ppc.altivec.vcmpgtsd.p",
-+ "llvm.ppc.altivec.vcmpgtsh",
-+ "llvm.ppc.altivec.vcmpgtsh.p",
-+ "llvm.ppc.altivec.vcmpgtsw",
-+ "llvm.ppc.altivec.vcmpgtsw.p",
-+ "llvm.ppc.altivec.vcmpgtub",
-+ "llvm.ppc.altivec.vcmpgtub.p",
-+ "llvm.ppc.altivec.vcmpgtud",
-+ "llvm.ppc.altivec.vcmpgtud.p",
-+ "llvm.ppc.altivec.vcmpgtuh",
-+ "llvm.ppc.altivec.vcmpgtuh.p",
-+ "llvm.ppc.altivec.vcmpgtuw",
-+ "llvm.ppc.altivec.vcmpgtuw.p",
-+ "llvm.ppc.altivec.vcmpneb",
-+ "llvm.ppc.altivec.vcmpneb.p",
-+ "llvm.ppc.altivec.vcmpneh",
-+ "llvm.ppc.altivec.vcmpneh.p",
-+ "llvm.ppc.altivec.vcmpnew",
-+ "llvm.ppc.altivec.vcmpnew.p",
-+ "llvm.ppc.altivec.vcmpnezb",
-+ "llvm.ppc.altivec.vcmpnezb.p",
-+ "llvm.ppc.altivec.vcmpnezh",
-+ "llvm.ppc.altivec.vcmpnezh.p",
-+ "llvm.ppc.altivec.vcmpnezw",
-+ "llvm.ppc.altivec.vcmpnezw.p",
-+ "llvm.ppc.altivec.vctsxs",
-+ "llvm.ppc.altivec.vctuxs",
-+ "llvm.ppc.altivec.vctzlsbb",
-+ "llvm.ppc.altivec.vexptefp",
-+ "llvm.ppc.altivec.vgbbd",
-+ "llvm.ppc.altivec.vlogefp",
-+ "llvm.ppc.altivec.vmaddfp",
-+ "llvm.ppc.altivec.vmaxfp",
-+ "llvm.ppc.altivec.vmaxsb",
-+ "llvm.ppc.altivec.vmaxsd",
-+ "llvm.ppc.altivec.vmaxsh",
-+ "llvm.ppc.altivec.vmaxsw",
-+ "llvm.ppc.altivec.vmaxub",
-+ "llvm.ppc.altivec.vmaxud",
-+ "llvm.ppc.altivec.vmaxuh",
-+ "llvm.ppc.altivec.vmaxuw",
-+ "llvm.ppc.altivec.vmhaddshs",
-+ "llvm.ppc.altivec.vmhraddshs",
-+ "llvm.ppc.altivec.vminfp",
-+ "llvm.ppc.altivec.vminsb",
-+ "llvm.ppc.altivec.vminsd",
-+ "llvm.ppc.altivec.vminsh",
-+ "llvm.ppc.altivec.vminsw",
-+ "llvm.ppc.altivec.vminub",
-+ "llvm.ppc.altivec.vminud",
-+ "llvm.ppc.altivec.vminuh",
-+ "llvm.ppc.altivec.vminuw",
-+ "llvm.ppc.altivec.vmladduhm",
-+ "llvm.ppc.altivec.vmsummbm",
-+ "llvm.ppc.altivec.vmsumshm",
-+ "llvm.ppc.altivec.vmsumshs",
-+ "llvm.ppc.altivec.vmsumubm",
-+ "llvm.ppc.altivec.vmsumuhm",
-+ "llvm.ppc.altivec.vmsumuhs",
-+ "llvm.ppc.altivec.vmulesb",
-+ "llvm.ppc.altivec.vmulesh",
-+ "llvm.ppc.altivec.vmulesw",
-+ "llvm.ppc.altivec.vmuleub",
-+ "llvm.ppc.altivec.vmuleuh",
-+ "llvm.ppc.altivec.vmuleuw",
-+ "llvm.ppc.altivec.vmulosb",
-+ "llvm.ppc.altivec.vmulosh",
-+ "llvm.ppc.altivec.vmulosw",
-+ "llvm.ppc.altivec.vmuloub",
-+ "llvm.ppc.altivec.vmulouh",
-+ "llvm.ppc.altivec.vmulouw",
-+ "llvm.ppc.altivec.vnmsubfp",
-+ "llvm.ppc.altivec.vperm",
-+ "llvm.ppc.altivec.vpkpx",
-+ "llvm.ppc.altivec.vpksdss",
-+ "llvm.ppc.altivec.vpksdus",
-+ "llvm.ppc.altivec.vpkshss",
-+ "llvm.ppc.altivec.vpkshus",
-+ "llvm.ppc.altivec.vpkswss",
-+ "llvm.ppc.altivec.vpkswus",
-+ "llvm.ppc.altivec.vpkudus",
-+ "llvm.ppc.altivec.vpkuhus",
-+ "llvm.ppc.altivec.vpkuwus",
-+ "llvm.ppc.altivec.vprtybd",
-+ "llvm.ppc.altivec.vprtybq",
-+ "llvm.ppc.altivec.vprtybw",
-+ "llvm.ppc.altivec.vrefp",
-+ "llvm.ppc.altivec.vrfim",
-+ "llvm.ppc.altivec.vrfin",
-+ "llvm.ppc.altivec.vrfip",
-+ "llvm.ppc.altivec.vrfiz",
-+ "llvm.ppc.altivec.vrlb",
-+ "llvm.ppc.altivec.vrld",
-+ "llvm.ppc.altivec.vrldmi",
-+ "llvm.ppc.altivec.vrldnm",
-+ "llvm.ppc.altivec.vrlh",
-+ "llvm.ppc.altivec.vrlw",
-+ "llvm.ppc.altivec.vrlwmi",
-+ "llvm.ppc.altivec.vrlwnm",
-+ "llvm.ppc.altivec.vrsqrtefp",
-+ "llvm.ppc.altivec.vsel",
-+ "llvm.ppc.altivec.vsl",
-+ "llvm.ppc.altivec.vslb",
-+ "llvm.ppc.altivec.vslh",
-+ "llvm.ppc.altivec.vslo",
-+ "llvm.ppc.altivec.vslv",
-+ "llvm.ppc.altivec.vslw",
-+ "llvm.ppc.altivec.vsr",
-+ "llvm.ppc.altivec.vsrab",
-+ "llvm.ppc.altivec.vsrah",
-+ "llvm.ppc.altivec.vsraw",
-+ "llvm.ppc.altivec.vsrb",
-+ "llvm.ppc.altivec.vsrh",
-+ "llvm.ppc.altivec.vsro",
-+ "llvm.ppc.altivec.vsrv",
-+ "llvm.ppc.altivec.vsrw",
-+ "llvm.ppc.altivec.vsubcuq",
-+ "llvm.ppc.altivec.vsubcuw",
-+ "llvm.ppc.altivec.vsubecuq",
-+ "llvm.ppc.altivec.vsubeuqm",
-+ "llvm.ppc.altivec.vsubsbs",
-+ "llvm.ppc.altivec.vsubshs",
-+ "llvm.ppc.altivec.vsubsws",
-+ "llvm.ppc.altivec.vsububs",
-+ "llvm.ppc.altivec.vsubuhs",
-+ "llvm.ppc.altivec.vsubuws",
-+ "llvm.ppc.altivec.vsum2sws",
-+ "llvm.ppc.altivec.vsum4sbs",
-+ "llvm.ppc.altivec.vsum4shs",
-+ "llvm.ppc.altivec.vsum4ubs",
-+ "llvm.ppc.altivec.vsumsws",
-+ "llvm.ppc.altivec.vupkhpx",
-+ "llvm.ppc.altivec.vupkhsb",
-+ "llvm.ppc.altivec.vupkhsh",
-+ "llvm.ppc.altivec.vupkhsw",
-+ "llvm.ppc.altivec.vupklpx",
-+ "llvm.ppc.altivec.vupklsb",
-+ "llvm.ppc.altivec.vupklsh",
-+ "llvm.ppc.altivec.vupklsw",
-+ "llvm.ppc.bpermd",
-+ "llvm.ppc.dcba",
-+ "llvm.ppc.dcbf",
-+ "llvm.ppc.dcbi",
-+ "llvm.ppc.dcbst",
-+ "llvm.ppc.dcbt",
-+ "llvm.ppc.dcbtst",
-+ "llvm.ppc.dcbz",
-+ "llvm.ppc.dcbzl",
-+ "llvm.ppc.divde",
-+ "llvm.ppc.divdeu",
-+ "llvm.ppc.divwe",
-+ "llvm.ppc.divweu",
-+ "llvm.ppc.get.texasr",
-+ "llvm.ppc.get.texasru",
-+ "llvm.ppc.get.tfhar",
-+ "llvm.ppc.get.tfiar",
-+ "llvm.ppc.is.decremented.ctr.nonzero",
-+ "llvm.ppc.lwsync",
-+ "llvm.ppc.mtctr",
-+ "llvm.ppc.qpx.qvfabs",
-+ "llvm.ppc.qpx.qvfadd",
-+ "llvm.ppc.qpx.qvfadds",
-+ "llvm.ppc.qpx.qvfcfid",
-+ "llvm.ppc.qpx.qvfcfids",
-+ "llvm.ppc.qpx.qvfcfidu",
-+ "llvm.ppc.qpx.qvfcfidus",
-+ "llvm.ppc.qpx.qvfcmpeq",
-+ "llvm.ppc.qpx.qvfcmpgt",
-+ "llvm.ppc.qpx.qvfcmplt",
-+ "llvm.ppc.qpx.qvfcpsgn",
-+ "llvm.ppc.qpx.qvfctid",
-+ "llvm.ppc.qpx.qvfctidu",
-+ "llvm.ppc.qpx.qvfctiduz",
-+ "llvm.ppc.qpx.qvfctidz",
-+ "llvm.ppc.qpx.qvfctiw",
-+ "llvm.ppc.qpx.qvfctiwu",
-+ "llvm.ppc.qpx.qvfctiwuz",
-+ "llvm.ppc.qpx.qvfctiwz",
-+ "llvm.ppc.qpx.qvflogical",
-+ "llvm.ppc.qpx.qvfmadd",
-+ "llvm.ppc.qpx.qvfmadds",
-+ "llvm.ppc.qpx.qvfmsub",
-+ "llvm.ppc.qpx.qvfmsubs",
-+ "llvm.ppc.qpx.qvfmul",
-+ "llvm.ppc.qpx.qvfmuls",
-+ "llvm.ppc.qpx.qvfnabs",
-+ "llvm.ppc.qpx.qvfneg",
-+ "llvm.ppc.qpx.qvfnmadd",
-+ "llvm.ppc.qpx.qvfnmadds",
-+ "llvm.ppc.qpx.qvfnmsub",
-+ "llvm.ppc.qpx.qvfnmsubs",
-+ "llvm.ppc.qpx.qvfperm",
-+ "llvm.ppc.qpx.qvfre",
-+ "llvm.ppc.qpx.qvfres",
-+ "llvm.ppc.qpx.qvfrim",
-+ "llvm.ppc.qpx.qvfrin",
-+ "llvm.ppc.qpx.qvfrip",
-+ "llvm.ppc.qpx.qvfriz",
-+ "llvm.ppc.qpx.qvfrsp",
-+ "llvm.ppc.qpx.qvfrsqrte",
-+ "llvm.ppc.qpx.qvfrsqrtes",
-+ "llvm.ppc.qpx.qvfsel",
-+ "llvm.ppc.qpx.qvfsub",
-+ "llvm.ppc.qpx.qvfsubs",
-+ "llvm.ppc.qpx.qvftstnan",
-+ "llvm.ppc.qpx.qvfxmadd",
-+ "llvm.ppc.qpx.qvfxmadds",
-+ "llvm.ppc.qpx.qvfxmul",
-+ "llvm.ppc.qpx.qvfxmuls",
-+ "llvm.ppc.qpx.qvfxxcpnmadd",
-+ "llvm.ppc.qpx.qvfxxcpnmadds",
-+ "llvm.ppc.qpx.qvfxxmadd",
-+ "llvm.ppc.qpx.qvfxxmadds",
-+ "llvm.ppc.qpx.qvfxxnpmadd",
-+ "llvm.ppc.qpx.qvfxxnpmadds",
-+ "llvm.ppc.qpx.qvgpci",
-+ "llvm.ppc.qpx.qvlfcd",
-+ "llvm.ppc.qpx.qvlfcda",
-+ "llvm.ppc.qpx.qvlfcs",
-+ "llvm.ppc.qpx.qvlfcsa",
-+ "llvm.ppc.qpx.qvlfd",
-+ "llvm.ppc.qpx.qvlfda",
-+ "llvm.ppc.qpx.qvlfiwa",
-+ "llvm.ppc.qpx.qvlfiwaa",
-+ "llvm.ppc.qpx.qvlfiwz",
-+ "llvm.ppc.qpx.qvlfiwza",
-+ "llvm.ppc.qpx.qvlfs",
-+ "llvm.ppc.qpx.qvlfsa",
-+ "llvm.ppc.qpx.qvlpcld",
-+ "llvm.ppc.qpx.qvlpcls",
-+ "llvm.ppc.qpx.qvlpcrd",
-+ "llvm.ppc.qpx.qvlpcrs",
-+ "llvm.ppc.qpx.qvstfcd",
-+ "llvm.ppc.qpx.qvstfcda",
-+ "llvm.ppc.qpx.qvstfcs",
-+ "llvm.ppc.qpx.qvstfcsa",
-+ "llvm.ppc.qpx.qvstfd",
-+ "llvm.ppc.qpx.qvstfda",
-+ "llvm.ppc.qpx.qvstfiw",
-+ "llvm.ppc.qpx.qvstfiwa",
-+ "llvm.ppc.qpx.qvstfs",
-+ "llvm.ppc.qpx.qvstfsa",
-+ "llvm.ppc.set.texasr",
-+ "llvm.ppc.set.texasru",
-+ "llvm.ppc.set.tfhar",
-+ "llvm.ppc.set.tfiar",
-+ "llvm.ppc.sync",
-+ "llvm.ppc.tabort",
-+ "llvm.ppc.tabortdc",
-+ "llvm.ppc.tabortdci",
-+ "llvm.ppc.tabortwc",
-+ "llvm.ppc.tabortwci",
-+ "llvm.ppc.tbegin",
-+ "llvm.ppc.tcheck",
-+ "llvm.ppc.tend",
-+ "llvm.ppc.tendall",
-+ "llvm.ppc.trechkpt",
-+ "llvm.ppc.treclaim",
-+ "llvm.ppc.tresume",
-+ "llvm.ppc.tsr",
-+ "llvm.ppc.tsuspend",
-+ "llvm.ppc.ttest",
-+ "llvm.ppc.vsx.lxvd2x",
-+ "llvm.ppc.vsx.lxvd2x.be",
-+ "llvm.ppc.vsx.lxvl",
-+ "llvm.ppc.vsx.lxvll",
-+ "llvm.ppc.vsx.lxvw4x",
-+ "llvm.ppc.vsx.lxvw4x.be",
-+ "llvm.ppc.vsx.stxvd2x",
-+ "llvm.ppc.vsx.stxvd2x.be",
-+ "llvm.ppc.vsx.stxvl",
-+ "llvm.ppc.vsx.stxvll",
-+ "llvm.ppc.vsx.stxvw4x",
-+ "llvm.ppc.vsx.stxvw4x.be",
-+ "llvm.ppc.vsx.xsmaxdp",
-+ "llvm.ppc.vsx.xsmindp",
-+ "llvm.ppc.vsx.xvcmpeqdp",
-+ "llvm.ppc.vsx.xvcmpeqdp.p",
-+ "llvm.ppc.vsx.xvcmpeqsp",
-+ "llvm.ppc.vsx.xvcmpeqsp.p",
-+ "llvm.ppc.vsx.xvcmpgedp",
-+ "llvm.ppc.vsx.xvcmpgedp.p",
-+ "llvm.ppc.vsx.xvcmpgesp",
-+ "llvm.ppc.vsx.xvcmpgesp.p",
-+ "llvm.ppc.vsx.xvcmpgtdp",
-+ "llvm.ppc.vsx.xvcmpgtdp.p",
-+ "llvm.ppc.vsx.xvcmpgtsp",
-+ "llvm.ppc.vsx.xvcmpgtsp.p",
-+ "llvm.ppc.vsx.xvcvdpsp",
-+ "llvm.ppc.vsx.xvcvdpsxws",
-+ "llvm.ppc.vsx.xvcvdpuxws",
-+ "llvm.ppc.vsx.xvcvhpsp",
-+ "llvm.ppc.vsx.xvcvspdp",
-+ "llvm.ppc.vsx.xvcvsphp",
-+ "llvm.ppc.vsx.xvcvsxdsp",
-+ "llvm.ppc.vsx.xvcvsxwdp",
-+ "llvm.ppc.vsx.xvcvuxdsp",
-+ "llvm.ppc.vsx.xvcvuxwdp",
-+ "llvm.ppc.vsx.xvdivdp",
-+ "llvm.ppc.vsx.xvdivsp",
-+ "llvm.ppc.vsx.xviexpdp",
-+ "llvm.ppc.vsx.xviexpsp",
-+ "llvm.ppc.vsx.xvmaxdp",
-+ "llvm.ppc.vsx.xvmaxsp",
-+ "llvm.ppc.vsx.xvmindp",
-+ "llvm.ppc.vsx.xvminsp",
-+ "llvm.ppc.vsx.xvrdpip",
-+ "llvm.ppc.vsx.xvredp",
-+ "llvm.ppc.vsx.xvresp",
-+ "llvm.ppc.vsx.xvrspip",
-+ "llvm.ppc.vsx.xvrsqrtedp",
-+ "llvm.ppc.vsx.xvrsqrtesp",
-+ "llvm.ppc.vsx.xvtstdcdp",
-+ "llvm.ppc.vsx.xvtstdcsp",
-+ "llvm.ppc.vsx.xvxexpdp",
-+ "llvm.ppc.vsx.xvxexpsp",
-+ "llvm.ppc.vsx.xvxsigdp",
-+ "llvm.ppc.vsx.xvxsigsp",
-+ "llvm.ppc.vsx.xxextractuw",
-+ "llvm.ppc.vsx.xxinsertw",
-+ "llvm.ppc.vsx.xxleqv",
-+ "llvm.r600.group.barrier",
-+ "llvm.r600.implicitarg.ptr",
-+ "llvm.r600.rat.store.typed",
-+ "llvm.r600.read.global.size.x",
-+ "llvm.r600.read.global.size.y",
-+ "llvm.r600.read.global.size.z",
-+ "llvm.r600.read.local.size.x",
-+ "llvm.r600.read.local.size.y",
-+ "llvm.r600.read.local.size.z",
-+ "llvm.r600.read.ngroups.x",
-+ "llvm.r600.read.ngroups.y",
-+ "llvm.r600.read.ngroups.z",
-+ "llvm.r600.read.tgid.x",
-+ "llvm.r600.read.tgid.y",
-+ "llvm.r600.read.tgid.z",
-+ "llvm.r600.read.tidig.x",
-+ "llvm.r600.read.tidig.y",
-+ "llvm.r600.read.tidig.z",
-+ "llvm.r600.recipsqrt.clamped",
-+ "llvm.r600.recipsqrt.ieee",
-+ "llvm.s390.efpc",
-+ "llvm.s390.etnd",
-+ "llvm.s390.lcbb",
-+ "llvm.s390.ntstg",
-+ "llvm.s390.ppa.txassist",
-+ "llvm.s390.sfpc",
-+ "llvm.s390.tabort",
-+ "llvm.s390.tbegin",
-+ "llvm.s390.tbegin.nofloat",
-+ "llvm.s390.tbeginc",
-+ "llvm.s390.tdc",
-+ "llvm.s390.tend",
-+ "llvm.s390.vaccb",
-+ "llvm.s390.vacccq",
-+ "llvm.s390.vaccf",
-+ "llvm.s390.vaccg",
-+ "llvm.s390.vacch",
-+ "llvm.s390.vaccq",
-+ "llvm.s390.vacq",
-+ "llvm.s390.vaq",
-+ "llvm.s390.vavgb",
-+ "llvm.s390.vavgf",
-+ "llvm.s390.vavgg",
-+ "llvm.s390.vavgh",
-+ "llvm.s390.vavglb",
-+ "llvm.s390.vavglf",
-+ "llvm.s390.vavglg",
-+ "llvm.s390.vavglh",
-+ "llvm.s390.vceqbs",
-+ "llvm.s390.vceqfs",
-+ "llvm.s390.vceqgs",
-+ "llvm.s390.vceqhs",
-+ "llvm.s390.vchbs",
-+ "llvm.s390.vchfs",
-+ "llvm.s390.vchgs",
-+ "llvm.s390.vchhs",
-+ "llvm.s390.vchlbs",
-+ "llvm.s390.vchlfs",
-+ "llvm.s390.vchlgs",
-+ "llvm.s390.vchlhs",
-+ "llvm.s390.vcksm",
-+ "llvm.s390.verimb",
-+ "llvm.s390.verimf",
-+ "llvm.s390.verimg",
-+ "llvm.s390.verimh",
-+ "llvm.s390.verllb",
-+ "llvm.s390.verllf",
-+ "llvm.s390.verllg",
-+ "llvm.s390.verllh",
-+ "llvm.s390.verllvb",
-+ "llvm.s390.verllvf",
-+ "llvm.s390.verllvg",
-+ "llvm.s390.verllvh",
-+ "llvm.s390.vfaeb",
-+ "llvm.s390.vfaebs",
-+ "llvm.s390.vfaef",
-+ "llvm.s390.vfaefs",
-+ "llvm.s390.vfaeh",
-+ "llvm.s390.vfaehs",
-+ "llvm.s390.vfaezb",
-+ "llvm.s390.vfaezbs",
-+ "llvm.s390.vfaezf",
-+ "llvm.s390.vfaezfs",
-+ "llvm.s390.vfaezh",
-+ "llvm.s390.vfaezhs",
-+ "llvm.s390.vfcedbs",
-+ "llvm.s390.vfchdbs",
-+ "llvm.s390.vfchedbs",
-+ "llvm.s390.vfeeb",
-+ "llvm.s390.vfeebs",
-+ "llvm.s390.vfeef",
-+ "llvm.s390.vfeefs",
-+ "llvm.s390.vfeeh",
-+ "llvm.s390.vfeehs",
-+ "llvm.s390.vfeezb",
-+ "llvm.s390.vfeezbs",
-+ "llvm.s390.vfeezf",
-+ "llvm.s390.vfeezfs",
-+ "llvm.s390.vfeezh",
-+ "llvm.s390.vfeezhs",
-+ "llvm.s390.vfeneb",
-+ "llvm.s390.vfenebs",
-+ "llvm.s390.vfenef",
-+ "llvm.s390.vfenefs",
-+ "llvm.s390.vfeneh",
-+ "llvm.s390.vfenehs",
-+ "llvm.s390.vfenezb",
-+ "llvm.s390.vfenezbs",
-+ "llvm.s390.vfenezf",
-+ "llvm.s390.vfenezfs",
-+ "llvm.s390.vfenezh",
-+ "llvm.s390.vfenezhs",
-+ "llvm.s390.vfidb",
-+ "llvm.s390.vftcidb",
-+ "llvm.s390.vgfmab",
-+ "llvm.s390.vgfmaf",
-+ "llvm.s390.vgfmag",
-+ "llvm.s390.vgfmah",
-+ "llvm.s390.vgfmb",
-+ "llvm.s390.vgfmf",
-+ "llvm.s390.vgfmg",
-+ "llvm.s390.vgfmh",
-+ "llvm.s390.vistrb",
-+ "llvm.s390.vistrbs",
-+ "llvm.s390.vistrf",
-+ "llvm.s390.vistrfs",
-+ "llvm.s390.vistrh",
-+ "llvm.s390.vistrhs",
-+ "llvm.s390.vlbb",
-+ "llvm.s390.vll",
-+ "llvm.s390.vmaeb",
-+ "llvm.s390.vmaef",
-+ "llvm.s390.vmaeh",
-+ "llvm.s390.vmahb",
-+ "llvm.s390.vmahf",
-+ "llvm.s390.vmahh",
-+ "llvm.s390.vmaleb",
-+ "llvm.s390.vmalef",
-+ "llvm.s390.vmaleh",
-+ "llvm.s390.vmalhb",
-+ "llvm.s390.vmalhf",
-+ "llvm.s390.vmalhh",
-+ "llvm.s390.vmalob",
-+ "llvm.s390.vmalof",
-+ "llvm.s390.vmaloh",
-+ "llvm.s390.vmaob",
-+ "llvm.s390.vmaof",
-+ "llvm.s390.vmaoh",
-+ "llvm.s390.vmeb",
-+ "llvm.s390.vmef",
-+ "llvm.s390.vmeh",
-+ "llvm.s390.vmhb",
-+ "llvm.s390.vmhf",
-+ "llvm.s390.vmhh",
-+ "llvm.s390.vmleb",
-+ "llvm.s390.vmlef",
-+ "llvm.s390.vmleh",
-+ "llvm.s390.vmlhb",
-+ "llvm.s390.vmlhf",
-+ "llvm.s390.vmlhh",
-+ "llvm.s390.vmlob",
-+ "llvm.s390.vmlof",
-+ "llvm.s390.vmloh",
-+ "llvm.s390.vmob",
-+ "llvm.s390.vmof",
-+ "llvm.s390.vmoh",
-+ "llvm.s390.vpdi",
-+ "llvm.s390.vperm",
-+ "llvm.s390.vpklsf",
-+ "llvm.s390.vpklsfs",
-+ "llvm.s390.vpklsg",
-+ "llvm.s390.vpklsgs",
-+ "llvm.s390.vpklsh",
-+ "llvm.s390.vpklshs",
-+ "llvm.s390.vpksf",
-+ "llvm.s390.vpksfs",
-+ "llvm.s390.vpksg",
-+ "llvm.s390.vpksgs",
-+ "llvm.s390.vpksh",
-+ "llvm.s390.vpkshs",
-+ "llvm.s390.vsbcbiq",
-+ "llvm.s390.vsbiq",
-+ "llvm.s390.vscbib",
-+ "llvm.s390.vscbif",
-+ "llvm.s390.vscbig",
-+ "llvm.s390.vscbih",
-+ "llvm.s390.vscbiq",
-+ "llvm.s390.vsl",
-+ "llvm.s390.vslb",
-+ "llvm.s390.vsldb",
-+ "llvm.s390.vsq",
-+ "llvm.s390.vsra",
-+ "llvm.s390.vsrab",
-+ "llvm.s390.vsrl",
-+ "llvm.s390.vsrlb",
-+ "llvm.s390.vstl",
-+ "llvm.s390.vstrcb",
-+ "llvm.s390.vstrcbs",
-+ "llvm.s390.vstrcf",
-+ "llvm.s390.vstrcfs",
-+ "llvm.s390.vstrch",
-+ "llvm.s390.vstrchs",
-+ "llvm.s390.vstrczb",
-+ "llvm.s390.vstrczbs",
-+ "llvm.s390.vstrczf",
-+ "llvm.s390.vstrczfs",
-+ "llvm.s390.vstrczh",
-+ "llvm.s390.vstrczhs",
-+ "llvm.s390.vsumb",
-+ "llvm.s390.vsumgf",
-+ "llvm.s390.vsumgh",
-+ "llvm.s390.vsumh",
-+ "llvm.s390.vsumqf",
-+ "llvm.s390.vsumqg",
-+ "llvm.s390.vtm",
-+ "llvm.s390.vuphb",
-+ "llvm.s390.vuphf",
-+ "llvm.s390.vuphh",
-+ "llvm.s390.vuplb",
-+ "llvm.s390.vuplf",
-+ "llvm.s390.vuplhb",
-+ "llvm.s390.vuplhf",
-+ "llvm.s390.vuplhh",
-+ "llvm.s390.vuplhw",
-+ "llvm.s390.vupllb",
-+ "llvm.s390.vupllf",
-+ "llvm.s390.vupllh",
-+ "llvm.wasm.current.memory",
-+ "llvm.wasm.grow.memory",
-+ "llvm.x86.3dnow.pavgusb",
-+ "llvm.x86.3dnow.pf2id",
-+ "llvm.x86.3dnow.pfacc",
-+ "llvm.x86.3dnow.pfadd",
-+ "llvm.x86.3dnow.pfcmpeq",
-+ "llvm.x86.3dnow.pfcmpge",
-+ "llvm.x86.3dnow.pfcmpgt",
-+ "llvm.x86.3dnow.pfmax",
-+ "llvm.x86.3dnow.pfmin",
-+ "llvm.x86.3dnow.pfmul",
-+ "llvm.x86.3dnow.pfrcp",
-+ "llvm.x86.3dnow.pfrcpit1",
-+ "llvm.x86.3dnow.pfrcpit2",
-+ "llvm.x86.3dnow.pfrsqit1",
-+ "llvm.x86.3dnow.pfrsqrt",
-+ "llvm.x86.3dnow.pfsub",
-+ "llvm.x86.3dnow.pfsubr",
-+ "llvm.x86.3dnow.pi2fd",
-+ "llvm.x86.3dnow.pmulhrw",
-+ "llvm.x86.3dnowa.pf2iw",
-+ "llvm.x86.3dnowa.pfnacc",
-+ "llvm.x86.3dnowa.pfpnacc",
-+ "llvm.x86.3dnowa.pi2fw",
-+ "llvm.x86.3dnowa.pswapd",
-+ "llvm.x86.addcarry.u32",
-+ "llvm.x86.addcarry.u64",
-+ "llvm.x86.addcarryx.u32",
-+ "llvm.x86.addcarryx.u64",
-+ "llvm.x86.aesni.aesdec",
-+ "llvm.x86.aesni.aesdeclast",
-+ "llvm.x86.aesni.aesenc",
-+ "llvm.x86.aesni.aesenclast",
-+ "llvm.x86.aesni.aesimc",
-+ "llvm.x86.aesni.aeskeygenassist",
-+ "llvm.x86.avx.addsub.pd.256",
-+ "llvm.x86.avx.addsub.ps.256",
-+ "llvm.x86.avx.blendv.pd.256",
-+ "llvm.x86.avx.blendv.ps.256",
-+ "llvm.x86.avx.cmp.pd.256",
-+ "llvm.x86.avx.cmp.ps.256",
-+ "llvm.x86.avx.cvt.pd2.ps.256",
-+ "llvm.x86.avx.cvt.pd2dq.256",
-+ "llvm.x86.avx.cvt.ps2dq.256",
-+ "llvm.x86.avx.cvtdq2.ps.256",
-+ "llvm.x86.avx.cvtt.pd2dq.256",
-+ "llvm.x86.avx.cvtt.ps2dq.256",
-+ "llvm.x86.avx.dp.ps.256",
-+ "llvm.x86.avx.hadd.pd.256",
-+ "llvm.x86.avx.hadd.ps.256",
-+ "llvm.x86.avx.hsub.pd.256",
-+ "llvm.x86.avx.hsub.ps.256",
-+ "llvm.x86.avx.ldu.dq.256",
-+ "llvm.x86.avx.maskload.pd",
-+ "llvm.x86.avx.maskload.pd.256",
-+ "llvm.x86.avx.maskload.ps",
-+ "llvm.x86.avx.maskload.ps.256",
-+ "llvm.x86.avx.maskstore.pd",
-+ "llvm.x86.avx.maskstore.pd.256",
-+ "llvm.x86.avx.maskstore.ps",
-+ "llvm.x86.avx.maskstore.ps.256",
-+ "llvm.x86.avx.max.pd.256",
-+ "llvm.x86.avx.max.ps.256",
-+ "llvm.x86.avx.min.pd.256",
-+ "llvm.x86.avx.min.ps.256",
-+ "llvm.x86.avx.movmsk.pd.256",
-+ "llvm.x86.avx.movmsk.ps.256",
-+ "llvm.x86.avx.ptestc.256",
-+ "llvm.x86.avx.ptestnzc.256",
-+ "llvm.x86.avx.ptestz.256",
-+ "llvm.x86.avx.rcp.ps.256",
-+ "llvm.x86.avx.round.pd.256",
-+ "llvm.x86.avx.round.ps.256",
-+ "llvm.x86.avx.rsqrt.ps.256",
-+ "llvm.x86.avx.sqrt.pd.256",
-+ "llvm.x86.avx.sqrt.ps.256",
-+ "llvm.x86.avx.vperm2f128.pd.256",
-+ "llvm.x86.avx.vperm2f128.ps.256",
-+ "llvm.x86.avx.vperm2f128.si.256",
-+ "llvm.x86.avx.vpermilvar.pd",
-+ "llvm.x86.avx.vpermilvar.pd.256",
-+ "llvm.x86.avx.vpermilvar.ps",
-+ "llvm.x86.avx.vpermilvar.ps.256",
-+ "llvm.x86.avx.vtestc.pd",
-+ "llvm.x86.avx.vtestc.pd.256",
-+ "llvm.x86.avx.vtestc.ps",
-+ "llvm.x86.avx.vtestc.ps.256",
-+ "llvm.x86.avx.vtestnzc.pd",
-+ "llvm.x86.avx.vtestnzc.pd.256",
-+ "llvm.x86.avx.vtestnzc.ps",
-+ "llvm.x86.avx.vtestnzc.ps.256",
-+ "llvm.x86.avx.vtestz.pd",
-+ "llvm.x86.avx.vtestz.pd.256",
-+ "llvm.x86.avx.vtestz.ps",
-+ "llvm.x86.avx.vtestz.ps.256",
-+ "llvm.x86.avx.vzeroall",
-+ "llvm.x86.avx.vzeroupper",
-+ "llvm.x86.avx2.gather.d.d",
-+ "llvm.x86.avx2.gather.d.d.256",
-+ "llvm.x86.avx2.gather.d.pd",
-+ "llvm.x86.avx2.gather.d.pd.256",
-+ "llvm.x86.avx2.gather.d.ps",
-+ "llvm.x86.avx2.gather.d.ps.256",
-+ "llvm.x86.avx2.gather.d.q",
-+ "llvm.x86.avx2.gather.d.q.256",
-+ "llvm.x86.avx2.gather.q.d",
-+ "llvm.x86.avx2.gather.q.d.256",
-+ "llvm.x86.avx2.gather.q.pd",
-+ "llvm.x86.avx2.gather.q.pd.256",
-+ "llvm.x86.avx2.gather.q.ps",
-+ "llvm.x86.avx2.gather.q.ps.256",
-+ "llvm.x86.avx2.gather.q.q",
-+ "llvm.x86.avx2.gather.q.q.256",
-+ "llvm.x86.avx2.maskload.d",
-+ "llvm.x86.avx2.maskload.d.256",
-+ "llvm.x86.avx2.maskload.q",
-+ "llvm.x86.avx2.maskload.q.256",
-+ "llvm.x86.avx2.maskstore.d",
-+ "llvm.x86.avx2.maskstore.d.256",
-+ "llvm.x86.avx2.maskstore.q",
-+ "llvm.x86.avx2.maskstore.q.256",
-+ "llvm.x86.avx2.movntdqa",
-+ "llvm.x86.avx2.mpsadbw",
-+ "llvm.x86.avx2.pabs.b",
-+ "llvm.x86.avx2.pabs.d",
-+ "llvm.x86.avx2.pabs.w",
-+ "llvm.x86.avx2.packssdw",
-+ "llvm.x86.avx2.packsswb",
-+ "llvm.x86.avx2.packusdw",
-+ "llvm.x86.avx2.packuswb",
-+ "llvm.x86.avx2.padds.b",
-+ "llvm.x86.avx2.padds.w",
-+ "llvm.x86.avx2.paddus.b",
-+ "llvm.x86.avx2.paddus.w",
-+ "llvm.x86.avx2.pavg.b",
-+ "llvm.x86.avx2.pavg.w",
-+ "llvm.x86.avx2.pblendvb",
-+ "llvm.x86.avx2.permd",
-+ "llvm.x86.avx2.permps",
-+ "llvm.x86.avx2.phadd.d",
-+ "llvm.x86.avx2.phadd.sw",
-+ "llvm.x86.avx2.phadd.w",
-+ "llvm.x86.avx2.phsub.d",
-+ "llvm.x86.avx2.phsub.sw",
-+ "llvm.x86.avx2.phsub.w",
-+ "llvm.x86.avx2.pmadd.ub.sw",
-+ "llvm.x86.avx2.pmadd.wd",
-+ "llvm.x86.avx2.pmovmskb",
-+ "llvm.x86.avx2.pmul.dq",
-+ "llvm.x86.avx2.pmul.hr.sw",
-+ "llvm.x86.avx2.pmulh.w",
-+ "llvm.x86.avx2.pmulhu.w",
-+ "llvm.x86.avx2.pmulu.dq",
-+ "llvm.x86.avx2.psad.bw",
-+ "llvm.x86.avx2.pshuf.b",
-+ "llvm.x86.avx2.psign.b",
-+ "llvm.x86.avx2.psign.d",
-+ "llvm.x86.avx2.psign.w",
-+ "llvm.x86.avx2.psll.d",
-+ "llvm.x86.avx2.psll.q",
-+ "llvm.x86.avx2.psll.w",
-+ "llvm.x86.avx2.pslli.d",
-+ "llvm.x86.avx2.pslli.q",
-+ "llvm.x86.avx2.pslli.w",
-+ "llvm.x86.avx2.psllv.d",
-+ "llvm.x86.avx2.psllv.d.256",
-+ "llvm.x86.avx2.psllv.q",
-+ "llvm.x86.avx2.psllv.q.256",
-+ "llvm.x86.avx2.psra.d",
-+ "llvm.x86.avx2.psra.w",
-+ "llvm.x86.avx2.psrai.d",
-+ "llvm.x86.avx2.psrai.w",
-+ "llvm.x86.avx2.psrav.d",
-+ "llvm.x86.avx2.psrav.d.256",
-+ "llvm.x86.avx2.psrl.d",
-+ "llvm.x86.avx2.psrl.q",
-+ "llvm.x86.avx2.psrl.w",
-+ "llvm.x86.avx2.psrli.d",
-+ "llvm.x86.avx2.psrli.q",
-+ "llvm.x86.avx2.psrli.w",
-+ "llvm.x86.avx2.psrlv.d",
-+ "llvm.x86.avx2.psrlv.d.256",
-+ "llvm.x86.avx2.psrlv.q",
-+ "llvm.x86.avx2.psrlv.q.256",
-+ "llvm.x86.avx2.psubs.b",
-+ "llvm.x86.avx2.psubs.w",
-+ "llvm.x86.avx2.psubus.b",
-+ "llvm.x86.avx2.psubus.w",
-+ "llvm.x86.avx2.vperm2i128",
-+ "llvm.x86.avx512.broadcastmb.128",
-+ "llvm.x86.avx512.broadcastmb.256",
-+ "llvm.x86.avx512.broadcastmb.512",
-+ "llvm.x86.avx512.broadcastmw.128",
-+ "llvm.x86.avx512.broadcastmw.256",
-+ "llvm.x86.avx512.broadcastmw.512",
-+ "llvm.x86.avx512.cvtb2mask.128",
-+ "llvm.x86.avx512.cvtb2mask.256",
-+ "llvm.x86.avx512.cvtb2mask.512",
-+ "llvm.x86.avx512.cvtd2mask.128",
-+ "llvm.x86.avx512.cvtd2mask.256",
-+ "llvm.x86.avx512.cvtd2mask.512",
-+ "llvm.x86.avx512.cvtmask2b.128",
-+ "llvm.x86.avx512.cvtmask2b.256",
-+ "llvm.x86.avx512.cvtmask2b.512",
-+ "llvm.x86.avx512.cvtmask2d.128",
-+ "llvm.x86.avx512.cvtmask2d.256",
-+ "llvm.x86.avx512.cvtmask2d.512",
-+ "llvm.x86.avx512.cvtmask2q.128",
-+ "llvm.x86.avx512.cvtmask2q.256",
-+ "llvm.x86.avx512.cvtmask2q.512",
-+ "llvm.x86.avx512.cvtmask2w.128",
-+ "llvm.x86.avx512.cvtmask2w.256",
-+ "llvm.x86.avx512.cvtmask2w.512",
-+ "llvm.x86.avx512.cvtq2mask.128",
-+ "llvm.x86.avx512.cvtq2mask.256",
-+ "llvm.x86.avx512.cvtq2mask.512",
-+ "llvm.x86.avx512.cvtsi2sd64",
-+ "llvm.x86.avx512.cvtsi2ss32",
-+ "llvm.x86.avx512.cvtsi2ss64",
-+ "llvm.x86.avx512.cvttsd2si",
-+ "llvm.x86.avx512.cvttsd2si64",
-+ "llvm.x86.avx512.cvttsd2usi",
-+ "llvm.x86.avx512.cvttsd2usi64",
-+ "llvm.x86.avx512.cvttss2si",
-+ "llvm.x86.avx512.cvttss2si64",
-+ "llvm.x86.avx512.cvttss2usi",
-+ "llvm.x86.avx512.cvttss2usi64",
-+ "llvm.x86.avx512.cvtusi2sd",
-+ "llvm.x86.avx512.cvtusi2ss",
-+ "llvm.x86.avx512.cvtusi642sd",
-+ "llvm.x86.avx512.cvtusi642ss",
-+ "llvm.x86.avx512.cvtw2mask.128",
-+ "llvm.x86.avx512.cvtw2mask.256",
-+ "llvm.x86.avx512.cvtw2mask.512",
-+ "llvm.x86.avx512.exp2.pd",
-+ "llvm.x86.avx512.exp2.ps",
-+ "llvm.x86.avx512.gather.dpd.512",
-+ "llvm.x86.avx512.gather.dpi.512",
-+ "llvm.x86.avx512.gather.dpq.512",
-+ "llvm.x86.avx512.gather.dps.512",
-+ "llvm.x86.avx512.gather.qpd.512",
-+ "llvm.x86.avx512.gather.qpi.512",
-+ "llvm.x86.avx512.gather.qpq.512",
-+ "llvm.x86.avx512.gather.qps.512",
-+ "llvm.x86.avx512.gather3div2.df",
-+ "llvm.x86.avx512.gather3div2.di",
-+ "llvm.x86.avx512.gather3div4.df",
-+ "llvm.x86.avx512.gather3div4.di",
-+ "llvm.x86.avx512.gather3div4.sf",
-+ "llvm.x86.avx512.gather3div4.si",
-+ "llvm.x86.avx512.gather3div8.sf",
-+ "llvm.x86.avx512.gather3div8.si",
-+ "llvm.x86.avx512.gather3siv2.df",
-+ "llvm.x86.avx512.gather3siv2.di",
-+ "llvm.x86.avx512.gather3siv4.df",
-+ "llvm.x86.avx512.gather3siv4.di",
-+ "llvm.x86.avx512.gather3siv4.sf",
-+ "llvm.x86.avx512.gather3siv4.si",
-+ "llvm.x86.avx512.gather3siv8.sf",
-+ "llvm.x86.avx512.gather3siv8.si",
-+ "llvm.x86.avx512.gatherpf.dpd.512",
-+ "llvm.x86.avx512.gatherpf.dps.512",
-+ "llvm.x86.avx512.gatherpf.qpd.512",
-+ "llvm.x86.avx512.gatherpf.qps.512",
-+ "llvm.x86.avx512.kand.w",
-+ "llvm.x86.avx512.kandn.w",
-+ "llvm.x86.avx512.knot.w",
-+ "llvm.x86.avx512.kor.w",
-+ "llvm.x86.avx512.kortestc.w",
-+ "llvm.x86.avx512.kortestz.w",
-+ "llvm.x86.avx512.kunpck.bw",
-+ "llvm.x86.avx512.kunpck.dq",
-+ "llvm.x86.avx512.kunpck.wd",
-+ "llvm.x86.avx512.kxnor.w",
-+ "llvm.x86.avx512.kxor.w",
-+ "llvm.x86.avx512.mask.add.pd.512",
-+ "llvm.x86.avx512.mask.add.ps.512",
-+ "llvm.x86.avx512.mask.add.sd.round",
-+ "llvm.x86.avx512.mask.add.ss.round",
-+ "llvm.x86.avx512.mask.broadcastf32x2.256",
-+ "llvm.x86.avx512.mask.broadcastf32x2.512",
-+ "llvm.x86.avx512.mask.broadcastf32x4.256",
-+ "llvm.x86.avx512.mask.broadcastf32x4.512",
-+ "llvm.x86.avx512.mask.broadcastf32x8.512",
-+ "llvm.x86.avx512.mask.broadcastf64x2.256",
-+ "llvm.x86.avx512.mask.broadcastf64x2.512",
-+ "llvm.x86.avx512.mask.broadcastf64x4.512",
-+ "llvm.x86.avx512.mask.broadcasti32x2.128",
-+ "llvm.x86.avx512.mask.broadcasti32x2.256",
-+ "llvm.x86.avx512.mask.broadcasti32x2.512",
-+ "llvm.x86.avx512.mask.broadcasti32x4.256",
-+ "llvm.x86.avx512.mask.broadcasti32x4.512",
-+ "llvm.x86.avx512.mask.broadcasti32x8.512",
-+ "llvm.x86.avx512.mask.broadcasti64x2.256",
-+ "llvm.x86.avx512.mask.broadcasti64x2.512",
-+ "llvm.x86.avx512.mask.broadcasti64x4.512",
-+ "llvm.x86.avx512.mask.cmp.b.128",
-+ "llvm.x86.avx512.mask.cmp.b.256",
-+ "llvm.x86.avx512.mask.cmp.b.512",
-+ "llvm.x86.avx512.mask.cmp.d.128",
-+ "llvm.x86.avx512.mask.cmp.d.256",
-+ "llvm.x86.avx512.mask.cmp.d.512",
-+ "llvm.x86.avx512.mask.cmp.pd.128",
-+ "llvm.x86.avx512.mask.cmp.pd.256",
-+ "llvm.x86.avx512.mask.cmp.pd.512",
-+ "llvm.x86.avx512.mask.cmp.ps.128",
-+ "llvm.x86.avx512.mask.cmp.ps.256",
-+ "llvm.x86.avx512.mask.cmp.ps.512",
-+ "llvm.x86.avx512.mask.cmp.q.128",
-+ "llvm.x86.avx512.mask.cmp.q.256",
-+ "llvm.x86.avx512.mask.cmp.q.512",
-+ "llvm.x86.avx512.mask.cmp.sd",
-+ "llvm.x86.avx512.mask.cmp.ss",
-+ "llvm.x86.avx512.mask.cmp.w.128",
-+ "llvm.x86.avx512.mask.cmp.w.256",
-+ "llvm.x86.avx512.mask.cmp.w.512",
-+ "llvm.x86.avx512.mask.compress.d.128",
-+ "llvm.x86.avx512.mask.compress.d.256",
-+ "llvm.x86.avx512.mask.compress.d.512",
-+ "llvm.x86.avx512.mask.compress.pd.128",
-+ "llvm.x86.avx512.mask.compress.pd.256",
-+ "llvm.x86.avx512.mask.compress.pd.512",
-+ "llvm.x86.avx512.mask.compress.ps.128",
-+ "llvm.x86.avx512.mask.compress.ps.256",
-+ "llvm.x86.avx512.mask.compress.ps.512",
-+ "llvm.x86.avx512.mask.compress.q.128",
-+ "llvm.x86.avx512.mask.compress.q.256",
-+ "llvm.x86.avx512.mask.compress.q.512",
-+ "llvm.x86.avx512.mask.compress.store.d.128",
-+ "llvm.x86.avx512.mask.compress.store.d.256",
-+ "llvm.x86.avx512.mask.compress.store.d.512",
-+ "llvm.x86.avx512.mask.compress.store.pd.128",
-+ "llvm.x86.avx512.mask.compress.store.pd.256",
-+ "llvm.x86.avx512.mask.compress.store.pd.512",
-+ "llvm.x86.avx512.mask.compress.store.ps.128",
-+ "llvm.x86.avx512.mask.compress.store.ps.256",
-+ "llvm.x86.avx512.mask.compress.store.ps.512",
-+ "llvm.x86.avx512.mask.compress.store.q.128",
-+ "llvm.x86.avx512.mask.compress.store.q.256",
-+ "llvm.x86.avx512.mask.compress.store.q.512",
-+ "llvm.x86.avx512.mask.conflict.d.128",
-+ "llvm.x86.avx512.mask.conflict.d.256",
-+ "llvm.x86.avx512.mask.conflict.d.512",
-+ "llvm.x86.avx512.mask.conflict.q.128",
-+ "llvm.x86.avx512.mask.conflict.q.256",
-+ "llvm.x86.avx512.mask.conflict.q.512",
-+ "llvm.x86.avx512.mask.cvtdq2ps.128",
-+ "llvm.x86.avx512.mask.cvtdq2ps.256",
-+ "llvm.x86.avx512.mask.cvtdq2ps.512",
-+ "llvm.x86.avx512.mask.cvtpd2dq.128",
-+ "llvm.x86.avx512.mask.cvtpd2dq.256",
-+ "llvm.x86.avx512.mask.cvtpd2dq.512",
-+ "llvm.x86.avx512.mask.cvtpd2ps",
-+ "llvm.x86.avx512.mask.cvtpd2ps.256",
-+ "llvm.x86.avx512.mask.cvtpd2ps.512",
-+ "llvm.x86.avx512.mask.cvtpd2qq.128",
-+ "llvm.x86.avx512.mask.cvtpd2qq.256",
-+ "llvm.x86.avx512.mask.cvtpd2qq.512",
-+ "llvm.x86.avx512.mask.cvtpd2udq.128",
-+ "llvm.x86.avx512.mask.cvtpd2udq.256",
-+ "llvm.x86.avx512.mask.cvtpd2udq.512",
-+ "llvm.x86.avx512.mask.cvtpd2uqq.128",
-+ "llvm.x86.avx512.mask.cvtpd2uqq.256",
-+ "llvm.x86.avx512.mask.cvtpd2uqq.512",
-+ "llvm.x86.avx512.mask.cvtps2dq.128",
-+ "llvm.x86.avx512.mask.cvtps2dq.256",
-+ "llvm.x86.avx512.mask.cvtps2dq.512",
-+ "llvm.x86.avx512.mask.cvtps2pd.128",
-+ "llvm.x86.avx512.mask.cvtps2pd.256",
-+ "llvm.x86.avx512.mask.cvtps2pd.512",
-+ "llvm.x86.avx512.mask.cvtps2qq.128",
-+ "llvm.x86.avx512.mask.cvtps2qq.256",
-+ "llvm.x86.avx512.mask.cvtps2qq.512",
-+ "llvm.x86.avx512.mask.cvtps2udq.128",
-+ "llvm.x86.avx512.mask.cvtps2udq.256",
-+ "llvm.x86.avx512.mask.cvtps2udq.512",
-+ "llvm.x86.avx512.mask.cvtps2uqq.128",
-+ "llvm.x86.avx512.mask.cvtps2uqq.256",
-+ "llvm.x86.avx512.mask.cvtps2uqq.512",
-+ "llvm.x86.avx512.mask.cvtqq2pd.128",
-+ "llvm.x86.avx512.mask.cvtqq2pd.256",
-+ "llvm.x86.avx512.mask.cvtqq2pd.512",
-+ "llvm.x86.avx512.mask.cvtqq2ps.128",
-+ "llvm.x86.avx512.mask.cvtqq2ps.256",
-+ "llvm.x86.avx512.mask.cvtqq2ps.512",
-+ "llvm.x86.avx512.mask.cvtsd2ss.round",
-+ "llvm.x86.avx512.mask.cvtss2sd.round",
-+ "llvm.x86.avx512.mask.cvttpd2dq.128",
-+ "llvm.x86.avx512.mask.cvttpd2dq.256",
-+ "llvm.x86.avx512.mask.cvttpd2dq.512",
-+ "llvm.x86.avx512.mask.cvttpd2qq.128",
-+ "llvm.x86.avx512.mask.cvttpd2qq.256",
-+ "llvm.x86.avx512.mask.cvttpd2qq.512",
-+ "llvm.x86.avx512.mask.cvttpd2udq.128",
-+ "llvm.x86.avx512.mask.cvttpd2udq.256",
-+ "llvm.x86.avx512.mask.cvttpd2udq.512",
-+ "llvm.x86.avx512.mask.cvttpd2uqq.128",
-+ "llvm.x86.avx512.mask.cvttpd2uqq.256",
-+ "llvm.x86.avx512.mask.cvttpd2uqq.512",
-+ "llvm.x86.avx512.mask.cvttps2dq.128",
-+ "llvm.x86.avx512.mask.cvttps2dq.256",
-+ "llvm.x86.avx512.mask.cvttps2dq.512",
-+ "llvm.x86.avx512.mask.cvttps2qq.128",
-+ "llvm.x86.avx512.mask.cvttps2qq.256",
-+ "llvm.x86.avx512.mask.cvttps2qq.512",
-+ "llvm.x86.avx512.mask.cvttps2udq.128",
-+ "llvm.x86.avx512.mask.cvttps2udq.256",
-+ "llvm.x86.avx512.mask.cvttps2udq.512",
-+ "llvm.x86.avx512.mask.cvttps2uqq.128",
-+ "llvm.x86.avx512.mask.cvttps2uqq.256",
-+ "llvm.x86.avx512.mask.cvttps2uqq.512",
-+ "llvm.x86.avx512.mask.cvtudq2ps.128",
-+ "llvm.x86.avx512.mask.cvtudq2ps.256",
-+ "llvm.x86.avx512.mask.cvtudq2ps.512",
-+ "llvm.x86.avx512.mask.cvtuqq2pd.128",
-+ "llvm.x86.avx512.mask.cvtuqq2pd.256",
-+ "llvm.x86.avx512.mask.cvtuqq2pd.512",
-+ "llvm.x86.avx512.mask.cvtuqq2ps.128",
-+ "llvm.x86.avx512.mask.cvtuqq2ps.256",
-+ "llvm.x86.avx512.mask.cvtuqq2ps.512",
-+ "llvm.x86.avx512.mask.dbpsadbw.128",
-+ "llvm.x86.avx512.mask.dbpsadbw.256",
-+ "llvm.x86.avx512.mask.dbpsadbw.512",
-+ "llvm.x86.avx512.mask.div.pd.512",
-+ "llvm.x86.avx512.mask.div.ps.512",
-+ "llvm.x86.avx512.mask.div.sd.round",
-+ "llvm.x86.avx512.mask.div.ss.round",
-+ "llvm.x86.avx512.mask.expand.d.128",
-+ "llvm.x86.avx512.mask.expand.d.256",
-+ "llvm.x86.avx512.mask.expand.d.512",
-+ "llvm.x86.avx512.mask.expand.load.d.128",
-+ "llvm.x86.avx512.mask.expand.load.d.256",
-+ "llvm.x86.avx512.mask.expand.load.d.512",
-+ "llvm.x86.avx512.mask.expand.load.pd.128",
-+ "llvm.x86.avx512.mask.expand.load.pd.256",
-+ "llvm.x86.avx512.mask.expand.load.pd.512",
-+ "llvm.x86.avx512.mask.expand.load.ps.128",
-+ "llvm.x86.avx512.mask.expand.load.ps.256",
-+ "llvm.x86.avx512.mask.expand.load.ps.512",
-+ "llvm.x86.avx512.mask.expand.load.q.128",
-+ "llvm.x86.avx512.mask.expand.load.q.256",
-+ "llvm.x86.avx512.mask.expand.load.q.512",
-+ "llvm.x86.avx512.mask.expand.pd.128",
-+ "llvm.x86.avx512.mask.expand.pd.256",
-+ "llvm.x86.avx512.mask.expand.pd.512",
-+ "llvm.x86.avx512.mask.expand.ps.128",
-+ "llvm.x86.avx512.mask.expand.ps.256",
-+ "llvm.x86.avx512.mask.expand.ps.512",
-+ "llvm.x86.avx512.mask.expand.q.128",
-+ "llvm.x86.avx512.mask.expand.q.256",
-+ "llvm.x86.avx512.mask.expand.q.512",
-+ "llvm.x86.avx512.mask.fixupimm.pd.128",
-+ "llvm.x86.avx512.mask.fixupimm.pd.256",
-+ "llvm.x86.avx512.mask.fixupimm.pd.512",
-+ "llvm.x86.avx512.mask.fixupimm.ps.128",
-+ "llvm.x86.avx512.mask.fixupimm.ps.256",
-+ "llvm.x86.avx512.mask.fixupimm.ps.512",
-+ "llvm.x86.avx512.mask.fixupimm.sd",
-+ "llvm.x86.avx512.mask.fixupimm.ss",
-+ "llvm.x86.avx512.mask.fpclass.pd.128",
-+ "llvm.x86.avx512.mask.fpclass.pd.256",
-+ "llvm.x86.avx512.mask.fpclass.pd.512",
-+ "llvm.x86.avx512.mask.fpclass.ps.128",
-+ "llvm.x86.avx512.mask.fpclass.ps.256",
-+ "llvm.x86.avx512.mask.fpclass.ps.512",
-+ "llvm.x86.avx512.mask.fpclass.sd",
-+ "llvm.x86.avx512.mask.fpclass.ss",
-+ "llvm.x86.avx512.mask.getexp.pd.128",
-+ "llvm.x86.avx512.mask.getexp.pd.256",
-+ "llvm.x86.avx512.mask.getexp.pd.512",
-+ "llvm.x86.avx512.mask.getexp.ps.128",
-+ "llvm.x86.avx512.mask.getexp.ps.256",
-+ "llvm.x86.avx512.mask.getexp.ps.512",
-+ "llvm.x86.avx512.mask.getexp.sd",
-+ "llvm.x86.avx512.mask.getexp.ss",
-+ "llvm.x86.avx512.mask.getmant.pd.128",
-+ "llvm.x86.avx512.mask.getmant.pd.256",
-+ "llvm.x86.avx512.mask.getmant.pd.512",
-+ "llvm.x86.avx512.mask.getmant.ps.128",
-+ "llvm.x86.avx512.mask.getmant.ps.256",
-+ "llvm.x86.avx512.mask.getmant.ps.512",
-+ "llvm.x86.avx512.mask.getmant.sd",
-+ "llvm.x86.avx512.mask.getmant.ss",
-+ "llvm.x86.avx512.mask.insertf32x4.256",
-+ "llvm.x86.avx512.mask.insertf32x4.512",
-+ "llvm.x86.avx512.mask.insertf32x8.512",
-+ "llvm.x86.avx512.mask.insertf64x2.256",
-+ "llvm.x86.avx512.mask.insertf64x2.512",
-+ "llvm.x86.avx512.mask.insertf64x4.512",
-+ "llvm.x86.avx512.mask.inserti32x4.256",
-+ "llvm.x86.avx512.mask.inserti32x4.512",
-+ "llvm.x86.avx512.mask.inserti32x8.512",
-+ "llvm.x86.avx512.mask.inserti64x2.256",
-+ "llvm.x86.avx512.mask.inserti64x2.512",
-+ "llvm.x86.avx512.mask.inserti64x4.512",
-+ "llvm.x86.avx512.mask.lzcnt.d.128",
-+ "llvm.x86.avx512.mask.lzcnt.d.256",
-+ "llvm.x86.avx512.mask.lzcnt.d.512",
-+ "llvm.x86.avx512.mask.lzcnt.q.128",
-+ "llvm.x86.avx512.mask.lzcnt.q.256",
-+ "llvm.x86.avx512.mask.lzcnt.q.512",
-+ "llvm.x86.avx512.mask.max.pd.128",
-+ "llvm.x86.avx512.mask.max.pd.256",
-+ "llvm.x86.avx512.mask.max.pd.512",
-+ "llvm.x86.avx512.mask.max.ps.128",
-+ "llvm.x86.avx512.mask.max.ps.256",
-+ "llvm.x86.avx512.mask.max.ps.512",
-+ "llvm.x86.avx512.mask.max.sd.round",
-+ "llvm.x86.avx512.mask.max.ss.round",
-+ "llvm.x86.avx512.mask.min.pd.128",
-+ "llvm.x86.avx512.mask.min.pd.256",
-+ "llvm.x86.avx512.mask.min.pd.512",
-+ "llvm.x86.avx512.mask.min.ps.128",
-+ "llvm.x86.avx512.mask.min.ps.256",
-+ "llvm.x86.avx512.mask.min.ps.512",
-+ "llvm.x86.avx512.mask.min.sd.round",
-+ "llvm.x86.avx512.mask.min.ss.round",
-+ "llvm.x86.avx512.mask.mul.pd.512",
-+ "llvm.x86.avx512.mask.mul.ps.512",
-+ "llvm.x86.avx512.mask.mul.sd.round",
-+ "llvm.x86.avx512.mask.mul.ss.round",
-+ "llvm.x86.avx512.mask.pabs.b.128",
-+ "llvm.x86.avx512.mask.pabs.b.256",
-+ "llvm.x86.avx512.mask.pabs.b.512",
-+ "llvm.x86.avx512.mask.pabs.d.128",
-+ "llvm.x86.avx512.mask.pabs.d.256",
-+ "llvm.x86.avx512.mask.pabs.d.512",
-+ "llvm.x86.avx512.mask.pabs.q.128",
-+ "llvm.x86.avx512.mask.pabs.q.256",
-+ "llvm.x86.avx512.mask.pabs.q.512",
-+ "llvm.x86.avx512.mask.pabs.w.128",
-+ "llvm.x86.avx512.mask.pabs.w.256",
-+ "llvm.x86.avx512.mask.pabs.w.512",
-+ "llvm.x86.avx512.mask.packssdw.128",
-+ "llvm.x86.avx512.mask.packssdw.256",
-+ "llvm.x86.avx512.mask.packssdw.512",
-+ "llvm.x86.avx512.mask.packsswb.128",
-+ "llvm.x86.avx512.mask.packsswb.256",
-+ "llvm.x86.avx512.mask.packsswb.512",
-+ "llvm.x86.avx512.mask.packusdw.128",
-+ "llvm.x86.avx512.mask.packusdw.256",
-+ "llvm.x86.avx512.mask.packusdw.512",
-+ "llvm.x86.avx512.mask.packuswb.128",
-+ "llvm.x86.avx512.mask.packuswb.256",
-+ "llvm.x86.avx512.mask.packuswb.512",
-+ "llvm.x86.avx512.mask.padds.b.128",
-+ "llvm.x86.avx512.mask.padds.b.256",
-+ "llvm.x86.avx512.mask.padds.b.512",
-+ "llvm.x86.avx512.mask.padds.w.128",
-+ "llvm.x86.avx512.mask.padds.w.256",
-+ "llvm.x86.avx512.mask.padds.w.512",
-+ "llvm.x86.avx512.mask.paddus.b.128",
-+ "llvm.x86.avx512.mask.paddus.b.256",
-+ "llvm.x86.avx512.mask.paddus.b.512",
-+ "llvm.x86.avx512.mask.paddus.w.128",
-+ "llvm.x86.avx512.mask.paddus.w.256",
-+ "llvm.x86.avx512.mask.paddus.w.512",
-+ "llvm.x86.avx512.mask.pavg.b.128",
-+ "llvm.x86.avx512.mask.pavg.b.256",
-+ "llvm.x86.avx512.mask.pavg.b.512",
-+ "llvm.x86.avx512.mask.pavg.w.128",
-+ "llvm.x86.avx512.mask.pavg.w.256",
-+ "llvm.x86.avx512.mask.pavg.w.512",
-+ "llvm.x86.avx512.mask.pbroadcast.b.gpr.128",
-+ "llvm.x86.avx512.mask.pbroadcast.b.gpr.256",
-+ "llvm.x86.avx512.mask.pbroadcast.b.gpr.512",
-+ "llvm.x86.avx512.mask.pbroadcast.d.gpr.128",
-+ "llvm.x86.avx512.mask.pbroadcast.d.gpr.256",
-+ "llvm.x86.avx512.mask.pbroadcast.d.gpr.512",
-+ "llvm.x86.avx512.mask.pbroadcast.q.gpr.128",
-+ "llvm.x86.avx512.mask.pbroadcast.q.gpr.256",
-+ "llvm.x86.avx512.mask.pbroadcast.q.gpr.512",
-+ "llvm.x86.avx512.mask.pbroadcast.q.mem.512",
-+ "llvm.x86.avx512.mask.pbroadcast.w.gpr.128",
-+ "llvm.x86.avx512.mask.pbroadcast.w.gpr.256",
-+ "llvm.x86.avx512.mask.pbroadcast.w.gpr.512",
-+ "llvm.x86.avx512.mask.permvar.df.256",
-+ "llvm.x86.avx512.mask.permvar.df.512",
-+ "llvm.x86.avx512.mask.permvar.di.256",
-+ "llvm.x86.avx512.mask.permvar.di.512",
-+ "llvm.x86.avx512.mask.permvar.hi.128",
-+ "llvm.x86.avx512.mask.permvar.hi.256",
-+ "llvm.x86.avx512.mask.permvar.hi.512",
-+ "llvm.x86.avx512.mask.permvar.qi.128",
-+ "llvm.x86.avx512.mask.permvar.qi.256",
-+ "llvm.x86.avx512.mask.permvar.qi.512",
-+ "llvm.x86.avx512.mask.permvar.sf.256",
-+ "llvm.x86.avx512.mask.permvar.sf.512",
-+ "llvm.x86.avx512.mask.permvar.si.256",
-+ "llvm.x86.avx512.mask.permvar.si.512",
-+ "llvm.x86.avx512.mask.pmaddubs.w.128",
-+ "llvm.x86.avx512.mask.pmaddubs.w.256",
-+ "llvm.x86.avx512.mask.pmaddubs.w.512",
-+ "llvm.x86.avx512.mask.pmaddw.d.128",
-+ "llvm.x86.avx512.mask.pmaddw.d.256",
-+ "llvm.x86.avx512.mask.pmaddw.d.512",
-+ "llvm.x86.avx512.mask.pmov.db.128",
-+ "llvm.x86.avx512.mask.pmov.db.256",
-+ "llvm.x86.avx512.mask.pmov.db.512",
-+ "llvm.x86.avx512.mask.pmov.db.mem.128",
-+ "llvm.x86.avx512.mask.pmov.db.mem.256",
-+ "llvm.x86.avx512.mask.pmov.db.mem.512",
-+ "llvm.x86.avx512.mask.pmov.dw.128",
-+ "llvm.x86.avx512.mask.pmov.dw.256",
-+ "llvm.x86.avx512.mask.pmov.dw.512",
-+ "llvm.x86.avx512.mask.pmov.dw.mem.128",
-+ "llvm.x86.avx512.mask.pmov.dw.mem.256",
-+ "llvm.x86.avx512.mask.pmov.dw.mem.512",
-+ "llvm.x86.avx512.mask.pmov.qb.128",
-+ "llvm.x86.avx512.mask.pmov.qb.256",
-+ "llvm.x86.avx512.mask.pmov.qb.512",
-+ "llvm.x86.avx512.mask.pmov.qb.mem.128",
-+ "llvm.x86.avx512.mask.pmov.qb.mem.256",
-+ "llvm.x86.avx512.mask.pmov.qb.mem.512",
-+ "llvm.x86.avx512.mask.pmov.qd.128",
-+ "llvm.x86.avx512.mask.pmov.qd.256",
-+ "llvm.x86.avx512.mask.pmov.qd.512",
-+ "llvm.x86.avx512.mask.pmov.qd.mem.128",
-+ "llvm.x86.avx512.mask.pmov.qd.mem.256",
-+ "llvm.x86.avx512.mask.pmov.qd.mem.512",
-+ "llvm.x86.avx512.mask.pmov.qw.128",
-+ "llvm.x86.avx512.mask.pmov.qw.256",
-+ "llvm.x86.avx512.mask.pmov.qw.512",
-+ "llvm.x86.avx512.mask.pmov.qw.mem.128",
-+ "llvm.x86.avx512.mask.pmov.qw.mem.256",
-+ "llvm.x86.avx512.mask.pmov.qw.mem.512",
-+ "llvm.x86.avx512.mask.pmov.wb.128",
-+ "llvm.x86.avx512.mask.pmov.wb.256",
-+ "llvm.x86.avx512.mask.pmov.wb.512",
-+ "llvm.x86.avx512.mask.pmov.wb.mem.128",
-+ "llvm.x86.avx512.mask.pmov.wb.mem.256",
-+ "llvm.x86.avx512.mask.pmov.wb.mem.512",
-+ "llvm.x86.avx512.mask.pmovs.db.128",
-+ "llvm.x86.avx512.mask.pmovs.db.256",
-+ "llvm.x86.avx512.mask.pmovs.db.512",
-+ "llvm.x86.avx512.mask.pmovs.db.mem.128",
-+ "llvm.x86.avx512.mask.pmovs.db.mem.256",
-+ "llvm.x86.avx512.mask.pmovs.db.mem.512",
-+ "llvm.x86.avx512.mask.pmovs.dw.128",
-+ "llvm.x86.avx512.mask.pmovs.dw.256",
-+ "llvm.x86.avx512.mask.pmovs.dw.512",
-+ "llvm.x86.avx512.mask.pmovs.dw.mem.128",
-+ "llvm.x86.avx512.mask.pmovs.dw.mem.256",
-+ "llvm.x86.avx512.mask.pmovs.dw.mem.512",
-+ "llvm.x86.avx512.mask.pmovs.qb.128",
-+ "llvm.x86.avx512.mask.pmovs.qb.256",
-+ "llvm.x86.avx512.mask.pmovs.qb.512",
-+ "llvm.x86.avx512.mask.pmovs.qb.mem.128",
-+ "llvm.x86.avx512.mask.pmovs.qb.mem.256",
-+ "llvm.x86.avx512.mask.pmovs.qb.mem.512",
-+ "llvm.x86.avx512.mask.pmovs.qd.128",
-+ "llvm.x86.avx512.mask.pmovs.qd.256",
-+ "llvm.x86.avx512.mask.pmovs.qd.512",
-+ "llvm.x86.avx512.mask.pmovs.qd.mem.128",
-+ "llvm.x86.avx512.mask.pmovs.qd.mem.256",
-+ "llvm.x86.avx512.mask.pmovs.qd.mem.512",
-+ "llvm.x86.avx512.mask.pmovs.qw.128",
-+ "llvm.x86.avx512.mask.pmovs.qw.256",
-+ "llvm.x86.avx512.mask.pmovs.qw.512",
-+ "llvm.x86.avx512.mask.pmovs.qw.mem.128",
-+ "llvm.x86.avx512.mask.pmovs.qw.mem.256",
-+ "llvm.x86.avx512.mask.pmovs.qw.mem.512",
-+ "llvm.x86.avx512.mask.pmovs.wb.128",
-+ "llvm.x86.avx512.mask.pmovs.wb.256",
-+ "llvm.x86.avx512.mask.pmovs.wb.512",
-+ "llvm.x86.avx512.mask.pmovs.wb.mem.128",
-+ "llvm.x86.avx512.mask.pmovs.wb.mem.256",
-+ "llvm.x86.avx512.mask.pmovs.wb.mem.512",
-+ "llvm.x86.avx512.mask.pmovus.db.128",
-+ "llvm.x86.avx512.mask.pmovus.db.256",
-+ "llvm.x86.avx512.mask.pmovus.db.512",
-+ "llvm.x86.avx512.mask.pmovus.db.mem.128",
-+ "llvm.x86.avx512.mask.pmovus.db.mem.256",
-+ "llvm.x86.avx512.mask.pmovus.db.mem.512",
-+ "llvm.x86.avx512.mask.pmovus.dw.128",
-+ "llvm.x86.avx512.mask.pmovus.dw.256",
-+ "llvm.x86.avx512.mask.pmovus.dw.512",
-+ "llvm.x86.avx512.mask.pmovus.dw.mem.128",
-+ "llvm.x86.avx512.mask.pmovus.dw.mem.256",
-+ "llvm.x86.avx512.mask.pmovus.dw.mem.512",
-+ "llvm.x86.avx512.mask.pmovus.qb.128",
-+ "llvm.x86.avx512.mask.pmovus.qb.256",
-+ "llvm.x86.avx512.mask.pmovus.qb.512",
-+ "llvm.x86.avx512.mask.pmovus.qb.mem.128",
-+ "llvm.x86.avx512.mask.pmovus.qb.mem.256",
-+ "llvm.x86.avx512.mask.pmovus.qb.mem.512",
-+ "llvm.x86.avx512.mask.pmovus.qd.128",
-+ "llvm.x86.avx512.mask.pmovus.qd.256",
-+ "llvm.x86.avx512.mask.pmovus.qd.512",
-+ "llvm.x86.avx512.mask.pmovus.qd.mem.128",
-+ "llvm.x86.avx512.mask.pmovus.qd.mem.256",
-+ "llvm.x86.avx512.mask.pmovus.qd.mem.512",
-+ "llvm.x86.avx512.mask.pmovus.qw.128",
-+ "llvm.x86.avx512.mask.pmovus.qw.256",
-+ "llvm.x86.avx512.mask.pmovus.qw.512",
-+ "llvm.x86.avx512.mask.pmovus.qw.mem.128",
-+ "llvm.x86.avx512.mask.pmovus.qw.mem.256",
-+ "llvm.x86.avx512.mask.pmovus.qw.mem.512",
-+ "llvm.x86.avx512.mask.pmovus.wb.128",
-+ "llvm.x86.avx512.mask.pmovus.wb.256",
-+ "llvm.x86.avx512.mask.pmovus.wb.512",
-+ "llvm.x86.avx512.mask.pmovus.wb.mem.128",
-+ "llvm.x86.avx512.mask.pmovus.wb.mem.256",
-+ "llvm.x86.avx512.mask.pmovus.wb.mem.512",
-+ "llvm.x86.avx512.mask.pmul.dq.128",
-+ "llvm.x86.avx512.mask.pmul.dq.256",
-+ "llvm.x86.avx512.mask.pmul.dq.512",
-+ "llvm.x86.avx512.mask.pmul.hr.sw.128",
-+ "llvm.x86.avx512.mask.pmul.hr.sw.256",
-+ "llvm.x86.avx512.mask.pmul.hr.sw.512",
-+ "llvm.x86.avx512.mask.pmulh.w.128",
-+ "llvm.x86.avx512.mask.pmulh.w.256",
-+ "llvm.x86.avx512.mask.pmulh.w.512",
-+ "llvm.x86.avx512.mask.pmulhu.w.128",
-+ "llvm.x86.avx512.mask.pmulhu.w.256",
-+ "llvm.x86.avx512.mask.pmulhu.w.512",
-+ "llvm.x86.avx512.mask.pmultishift.qb.128",
-+ "llvm.x86.avx512.mask.pmultishift.qb.256",
-+ "llvm.x86.avx512.mask.pmultishift.qb.512",
-+ "llvm.x86.avx512.mask.pmulu.dq.128",
-+ "llvm.x86.avx512.mask.pmulu.dq.256",
-+ "llvm.x86.avx512.mask.pmulu.dq.512",
-+ "llvm.x86.avx512.mask.prol.d.128",
-+ "llvm.x86.avx512.mask.prol.d.256",
-+ "llvm.x86.avx512.mask.prol.d.512",
-+ "llvm.x86.avx512.mask.prol.q.128",
-+ "llvm.x86.avx512.mask.prol.q.256",
-+ "llvm.x86.avx512.mask.prol.q.512",
-+ "llvm.x86.avx512.mask.prolv.d.128",
-+ "llvm.x86.avx512.mask.prolv.d.256",
-+ "llvm.x86.avx512.mask.prolv.d.512",
-+ "llvm.x86.avx512.mask.prolv.q.128",
-+ "llvm.x86.avx512.mask.prolv.q.256",
-+ "llvm.x86.avx512.mask.prolv.q.512",
-+ "llvm.x86.avx512.mask.pror.d.128",
-+ "llvm.x86.avx512.mask.pror.d.256",
-+ "llvm.x86.avx512.mask.pror.d.512",
-+ "llvm.x86.avx512.mask.pror.q.128",
-+ "llvm.x86.avx512.mask.pror.q.256",
-+ "llvm.x86.avx512.mask.pror.q.512",
-+ "llvm.x86.avx512.mask.prorv.d.128",
-+ "llvm.x86.avx512.mask.prorv.d.256",
-+ "llvm.x86.avx512.mask.prorv.d.512",
-+ "llvm.x86.avx512.mask.prorv.q.128",
-+ "llvm.x86.avx512.mask.prorv.q.256",
-+ "llvm.x86.avx512.mask.prorv.q.512",
-+ "llvm.x86.avx512.mask.psubs.b.128",
-+ "llvm.x86.avx512.mask.psubs.b.256",
-+ "llvm.x86.avx512.mask.psubs.b.512",
-+ "llvm.x86.avx512.mask.psubs.w.128",
-+ "llvm.x86.avx512.mask.psubs.w.256",
-+ "llvm.x86.avx512.mask.psubs.w.512",
-+ "llvm.x86.avx512.mask.psubus.b.128",
-+ "llvm.x86.avx512.mask.psubus.b.256",
-+ "llvm.x86.avx512.mask.psubus.b.512",
-+ "llvm.x86.avx512.mask.psubus.w.128",
-+ "llvm.x86.avx512.mask.psubus.w.256",
-+ "llvm.x86.avx512.mask.psubus.w.512",
-+ "llvm.x86.avx512.mask.pternlog.d.128",
-+ "llvm.x86.avx512.mask.pternlog.d.256",
-+ "llvm.x86.avx512.mask.pternlog.d.512",
-+ "llvm.x86.avx512.mask.pternlog.q.128",
-+ "llvm.x86.avx512.mask.pternlog.q.256",
-+ "llvm.x86.avx512.mask.pternlog.q.512",
-+ "llvm.x86.avx512.mask.range.pd.128",
-+ "llvm.x86.avx512.mask.range.pd.256",
-+ "llvm.x86.avx512.mask.range.pd.512",
-+ "llvm.x86.avx512.mask.range.ps.128",
-+ "llvm.x86.avx512.mask.range.ps.256",
-+ "llvm.x86.avx512.mask.range.ps.512",
-+ "llvm.x86.avx512.mask.range.sd",
-+ "llvm.x86.avx512.mask.range.ss",
-+ "llvm.x86.avx512.mask.reduce.pd.128",
-+ "llvm.x86.avx512.mask.reduce.pd.256",
-+ "llvm.x86.avx512.mask.reduce.pd.512",
-+ "llvm.x86.avx512.mask.reduce.ps.128",
-+ "llvm.x86.avx512.mask.reduce.ps.256",
-+ "llvm.x86.avx512.mask.reduce.ps.512",
-+ "llvm.x86.avx512.mask.reduce.sd",
-+ "llvm.x86.avx512.mask.reduce.ss",
-+ "llvm.x86.avx512.mask.rndscale.pd.128",
-+ "llvm.x86.avx512.mask.rndscale.pd.256",
-+ "llvm.x86.avx512.mask.rndscale.pd.512",
-+ "llvm.x86.avx512.mask.rndscale.ps.128",
-+ "llvm.x86.avx512.mask.rndscale.ps.256",
-+ "llvm.x86.avx512.mask.rndscale.ps.512",
-+ "llvm.x86.avx512.mask.rndscale.sd",
-+ "llvm.x86.avx512.mask.rndscale.ss",
-+ "llvm.x86.avx512.mask.scalef.pd.128",
-+ "llvm.x86.avx512.mask.scalef.pd.256",
-+ "llvm.x86.avx512.mask.scalef.pd.512",
-+ "llvm.x86.avx512.mask.scalef.ps.128",
-+ "llvm.x86.avx512.mask.scalef.ps.256",
-+ "llvm.x86.avx512.mask.scalef.ps.512",
-+ "llvm.x86.avx512.mask.scalef.sd",
-+ "llvm.x86.avx512.mask.scalef.ss",
-+ "llvm.x86.avx512.mask.shuf.f32x4",
-+ "llvm.x86.avx512.mask.shuf.f32x4.256",
-+ "llvm.x86.avx512.mask.shuf.f64x2",
-+ "llvm.x86.avx512.mask.shuf.f64x2.256",
-+ "llvm.x86.avx512.mask.shuf.i32x4",
-+ "llvm.x86.avx512.mask.shuf.i32x4.256",
-+ "llvm.x86.avx512.mask.shuf.i64x2",
-+ "llvm.x86.avx512.mask.shuf.i64x2.256",
-+ "llvm.x86.avx512.mask.sqrt.pd.128",
-+ "llvm.x86.avx512.mask.sqrt.pd.256",
-+ "llvm.x86.avx512.mask.sqrt.pd.512",
-+ "llvm.x86.avx512.mask.sqrt.ps.128",
-+ "llvm.x86.avx512.mask.sqrt.ps.256",
-+ "llvm.x86.avx512.mask.sqrt.ps.512",
-+ "llvm.x86.avx512.mask.sqrt.sd",
-+ "llvm.x86.avx512.mask.sqrt.ss",
-+ "llvm.x86.avx512.mask.store.ss",
-+ "llvm.x86.avx512.mask.sub.pd.512",
-+ "llvm.x86.avx512.mask.sub.ps.512",
-+ "llvm.x86.avx512.mask.sub.sd.round",
-+ "llvm.x86.avx512.mask.sub.ss.round",
-+ "llvm.x86.avx512.mask.ucmp.b.128",
-+ "llvm.x86.avx512.mask.ucmp.b.256",
-+ "llvm.x86.avx512.mask.ucmp.b.512",
-+ "llvm.x86.avx512.mask.ucmp.d.128",
-+ "llvm.x86.avx512.mask.ucmp.d.256",
-+ "llvm.x86.avx512.mask.ucmp.d.512",
-+ "llvm.x86.avx512.mask.ucmp.q.128",
-+ "llvm.x86.avx512.mask.ucmp.q.256",
-+ "llvm.x86.avx512.mask.ucmp.q.512",
-+ "llvm.x86.avx512.mask.ucmp.w.128",
-+ "llvm.x86.avx512.mask.ucmp.w.256",
-+ "llvm.x86.avx512.mask.ucmp.w.512",
-+ "llvm.x86.avx512.mask.vcvtph2ps.128",
-+ "llvm.x86.avx512.mask.vcvtph2ps.256",
-+ "llvm.x86.avx512.mask.vcvtph2ps.512",
-+ "llvm.x86.avx512.mask.vcvtps2ph.128",
-+ "llvm.x86.avx512.mask.vcvtps2ph.256",
-+ "llvm.x86.avx512.mask.vcvtps2ph.512",
-+ "llvm.x86.avx512.mask.vextractf32x4.256",
-+ "llvm.x86.avx512.mask.vextractf32x4.512",
-+ "llvm.x86.avx512.mask.vextractf32x8.512",
-+ "llvm.x86.avx512.mask.vextractf64x2.256",
-+ "llvm.x86.avx512.mask.vextractf64x2.512",
-+ "llvm.x86.avx512.mask.vextractf64x4.512",
-+ "llvm.x86.avx512.mask.vextracti32x4.256",
-+ "llvm.x86.avx512.mask.vextracti32x4.512",
-+ "llvm.x86.avx512.mask.vextracti32x8.512",
-+ "llvm.x86.avx512.mask.vextracti64x2.256",
-+ "llvm.x86.avx512.mask.vextracti64x2.512",
-+ "llvm.x86.avx512.mask.vextracti64x4.512",
-+ "llvm.x86.avx512.mask.vfmadd.pd.128",
-+ "llvm.x86.avx512.mask.vfmadd.pd.256",
-+ "llvm.x86.avx512.mask.vfmadd.pd.512",
-+ "llvm.x86.avx512.mask.vfmadd.ps.128",
-+ "llvm.x86.avx512.mask.vfmadd.ps.256",
-+ "llvm.x86.avx512.mask.vfmadd.ps.512",
-+ "llvm.x86.avx512.mask.vfmadd.sd",
-+ "llvm.x86.avx512.mask.vfmadd.ss",
-+ "llvm.x86.avx512.mask.vfmaddsub.pd.128",
-+ "llvm.x86.avx512.mask.vfmaddsub.pd.256",
-+ "llvm.x86.avx512.mask.vfmaddsub.pd.512",
-+ "llvm.x86.avx512.mask.vfmaddsub.ps.128",
-+ "llvm.x86.avx512.mask.vfmaddsub.ps.256",
-+ "llvm.x86.avx512.mask.vfmaddsub.ps.512",
-+ "llvm.x86.avx512.mask.vfnmadd.pd.128",
-+ "llvm.x86.avx512.mask.vfnmadd.pd.256",
-+ "llvm.x86.avx512.mask.vfnmadd.pd.512",
-+ "llvm.x86.avx512.mask.vfnmadd.ps.128",
-+ "llvm.x86.avx512.mask.vfnmadd.ps.256",
-+ "llvm.x86.avx512.mask.vfnmadd.ps.512",
-+ "llvm.x86.avx512.mask.vfnmsub.pd.128",
-+ "llvm.x86.avx512.mask.vfnmsub.pd.256",
-+ "llvm.x86.avx512.mask.vfnmsub.pd.512",
-+ "llvm.x86.avx512.mask.vfnmsub.ps.128",
-+ "llvm.x86.avx512.mask.vfnmsub.ps.256",
-+ "llvm.x86.avx512.mask.vfnmsub.ps.512",
-+ "llvm.x86.avx512.mask.vpermi2var.d.128",
-+ "llvm.x86.avx512.mask.vpermi2var.d.256",
-+ "llvm.x86.avx512.mask.vpermi2var.d.512",
-+ "llvm.x86.avx512.mask.vpermi2var.hi.128",
-+ "llvm.x86.avx512.mask.vpermi2var.hi.256",
-+ "llvm.x86.avx512.mask.vpermi2var.hi.512",
-+ "llvm.x86.avx512.mask.vpermi2var.pd.128",
-+ "llvm.x86.avx512.mask.vpermi2var.pd.256",
-+ "llvm.x86.avx512.mask.vpermi2var.pd.512",
-+ "llvm.x86.avx512.mask.vpermi2var.ps.128",
-+ "llvm.x86.avx512.mask.vpermi2var.ps.256",
-+ "llvm.x86.avx512.mask.vpermi2var.ps.512",
-+ "llvm.x86.avx512.mask.vpermi2var.q.128",
-+ "llvm.x86.avx512.mask.vpermi2var.q.256",
-+ "llvm.x86.avx512.mask.vpermi2var.q.512",
-+ "llvm.x86.avx512.mask.vpermi2var.qi.128",
-+ "llvm.x86.avx512.mask.vpermi2var.qi.256",
-+ "llvm.x86.avx512.mask.vpermi2var.qi.512",
-+ "llvm.x86.avx512.mask.vpermt2var.d.128",
-+ "llvm.x86.avx512.mask.vpermt2var.d.256",
-+ "llvm.x86.avx512.mask.vpermt2var.d.512",
-+ "llvm.x86.avx512.mask.vpermt2var.hi.128",
-+ "llvm.x86.avx512.mask.vpermt2var.hi.256",
-+ "llvm.x86.avx512.mask.vpermt2var.hi.512",
-+ "llvm.x86.avx512.mask.vpermt2var.pd.128",
-+ "llvm.x86.avx512.mask.vpermt2var.pd.256",
-+ "llvm.x86.avx512.mask.vpermt2var.pd.512",
-+ "llvm.x86.avx512.mask.vpermt2var.ps.128",
-+ "llvm.x86.avx512.mask.vpermt2var.ps.256",
-+ "llvm.x86.avx512.mask.vpermt2var.ps.512",
-+ "llvm.x86.avx512.mask.vpermt2var.q.128",
-+ "llvm.x86.avx512.mask.vpermt2var.q.256",
-+ "llvm.x86.avx512.mask.vpermt2var.q.512",
-+ "llvm.x86.avx512.mask.vpermt2var.qi.128",
-+ "llvm.x86.avx512.mask.vpermt2var.qi.256",
-+ "llvm.x86.avx512.mask.vpermt2var.qi.512",
-+ "llvm.x86.avx512.mask.vpmadd52h.uq.128",
-+ "llvm.x86.avx512.mask.vpmadd52h.uq.256",
-+ "llvm.x86.avx512.mask.vpmadd52h.uq.512",
-+ "llvm.x86.avx512.mask.vpmadd52l.uq.128",
-+ "llvm.x86.avx512.mask.vpmadd52l.uq.256",
-+ "llvm.x86.avx512.mask.vpmadd52l.uq.512",
-+ "llvm.x86.avx512.mask3.vfmadd.pd.128",
-+ "llvm.x86.avx512.mask3.vfmadd.pd.256",
-+ "llvm.x86.avx512.mask3.vfmadd.pd.512",
-+ "llvm.x86.avx512.mask3.vfmadd.ps.128",
-+ "llvm.x86.avx512.mask3.vfmadd.ps.256",
-+ "llvm.x86.avx512.mask3.vfmadd.ps.512",
-+ "llvm.x86.avx512.mask3.vfmadd.sd",
-+ "llvm.x86.avx512.mask3.vfmadd.ss",
-+ "llvm.x86.avx512.mask3.vfmaddsub.pd.128",
-+ "llvm.x86.avx512.mask3.vfmaddsub.pd.256",
-+ "llvm.x86.avx512.mask3.vfmaddsub.pd.512",
-+ "llvm.x86.avx512.mask3.vfmaddsub.ps.128",
-+ "llvm.x86.avx512.mask3.vfmaddsub.ps.256",
-+ "llvm.x86.avx512.mask3.vfmaddsub.ps.512",
-+ "llvm.x86.avx512.mask3.vfmsub.pd.128",
-+ "llvm.x86.avx512.mask3.vfmsub.pd.256",
-+ "llvm.x86.avx512.mask3.vfmsub.pd.512",
-+ "llvm.x86.avx512.mask3.vfmsub.ps.128",
-+ "llvm.x86.avx512.mask3.vfmsub.ps.256",
-+ "llvm.x86.avx512.mask3.vfmsub.ps.512",
-+ "llvm.x86.avx512.mask3.vfmsub.sd",
-+ "llvm.x86.avx512.mask3.vfmsub.ss",
-+ "llvm.x86.avx512.mask3.vfmsubadd.pd.128",
-+ "llvm.x86.avx512.mask3.vfmsubadd.pd.256",
-+ "llvm.x86.avx512.mask3.vfmsubadd.pd.512",
-+ "llvm.x86.avx512.mask3.vfmsubadd.ps.128",
-+ "llvm.x86.avx512.mask3.vfmsubadd.ps.256",
-+ "llvm.x86.avx512.mask3.vfmsubadd.ps.512",
-+ "llvm.x86.avx512.mask3.vfnmsub.pd.128",
-+ "llvm.x86.avx512.mask3.vfnmsub.pd.256",
-+ "llvm.x86.avx512.mask3.vfnmsub.pd.512",
-+ "llvm.x86.avx512.mask3.vfnmsub.ps.128",
-+ "llvm.x86.avx512.mask3.vfnmsub.ps.256",
-+ "llvm.x86.avx512.mask3.vfnmsub.ps.512",
-+ "llvm.x86.avx512.mask3.vfnmsub.sd",
-+ "llvm.x86.avx512.mask3.vfnmsub.ss",
-+ "llvm.x86.avx512.maskz.fixupimm.pd.128",
-+ "llvm.x86.avx512.maskz.fixupimm.pd.256",
-+ "llvm.x86.avx512.maskz.fixupimm.pd.512",
-+ "llvm.x86.avx512.maskz.fixupimm.ps.128",
-+ "llvm.x86.avx512.maskz.fixupimm.ps.256",
-+ "llvm.x86.avx512.maskz.fixupimm.ps.512",
-+ "llvm.x86.avx512.maskz.fixupimm.sd",
-+ "llvm.x86.avx512.maskz.fixupimm.ss",
-+ "llvm.x86.avx512.maskz.pternlog.d.128",
-+ "llvm.x86.avx512.maskz.pternlog.d.256",
-+ "llvm.x86.avx512.maskz.pternlog.d.512",
-+ "llvm.x86.avx512.maskz.pternlog.q.128",
-+ "llvm.x86.avx512.maskz.pternlog.q.256",
-+ "llvm.x86.avx512.maskz.pternlog.q.512",
-+ "llvm.x86.avx512.maskz.vfmadd.pd.128",
-+ "llvm.x86.avx512.maskz.vfmadd.pd.256",
-+ "llvm.x86.avx512.maskz.vfmadd.pd.512",
-+ "llvm.x86.avx512.maskz.vfmadd.ps.128",
-+ "llvm.x86.avx512.maskz.vfmadd.ps.256",
-+ "llvm.x86.avx512.maskz.vfmadd.ps.512",
-+ "llvm.x86.avx512.maskz.vfmadd.sd",
-+ "llvm.x86.avx512.maskz.vfmadd.ss",
-+ "llvm.x86.avx512.maskz.vfmaddsub.pd.128",
-+ "llvm.x86.avx512.maskz.vfmaddsub.pd.256",
-+ "llvm.x86.avx512.maskz.vfmaddsub.pd.512",
-+ "llvm.x86.avx512.maskz.vfmaddsub.ps.128",
-+ "llvm.x86.avx512.maskz.vfmaddsub.ps.256",
-+ "llvm.x86.avx512.maskz.vfmaddsub.ps.512",
-+ "llvm.x86.avx512.maskz.vpermt2var.d.128",
-+ "llvm.x86.avx512.maskz.vpermt2var.d.256",
-+ "llvm.x86.avx512.maskz.vpermt2var.d.512",
-+ "llvm.x86.avx512.maskz.vpermt2var.hi.128",
-+ "llvm.x86.avx512.maskz.vpermt2var.hi.256",
-+ "llvm.x86.avx512.maskz.vpermt2var.hi.512",
-+ "llvm.x86.avx512.maskz.vpermt2var.pd.128",
-+ "llvm.x86.avx512.maskz.vpermt2var.pd.256",
-+ "llvm.x86.avx512.maskz.vpermt2var.pd.512",
-+ "llvm.x86.avx512.maskz.vpermt2var.ps.128",
-+ "llvm.x86.avx512.maskz.vpermt2var.ps.256",
-+ "llvm.x86.avx512.maskz.vpermt2var.ps.512",
-+ "llvm.x86.avx512.maskz.vpermt2var.q.128",
-+ "llvm.x86.avx512.maskz.vpermt2var.q.256",
-+ "llvm.x86.avx512.maskz.vpermt2var.q.512",
-+ "llvm.x86.avx512.maskz.vpermt2var.qi.128",
-+ "llvm.x86.avx512.maskz.vpermt2var.qi.256",
-+ "llvm.x86.avx512.maskz.vpermt2var.qi.512",
-+ "llvm.x86.avx512.maskz.vpmadd52h.uq.128",
-+ "llvm.x86.avx512.maskz.vpmadd52h.uq.256",
-+ "llvm.x86.avx512.maskz.vpmadd52h.uq.512",
-+ "llvm.x86.avx512.maskz.vpmadd52l.uq.128",
-+ "llvm.x86.avx512.maskz.vpmadd52l.uq.256",
-+ "llvm.x86.avx512.maskz.vpmadd52l.uq.512",
-+ "llvm.x86.avx512.movntdqa",
-+ "llvm.x86.avx512.psad.bw.512",
-+ "llvm.x86.avx512.pshuf.b.512",
-+ "llvm.x86.avx512.psll.d.512",
-+ "llvm.x86.avx512.psll.q.512",
-+ "llvm.x86.avx512.psll.w.512",
-+ "llvm.x86.avx512.pslli.d.512",
-+ "llvm.x86.avx512.pslli.q.512",
-+ "llvm.x86.avx512.pslli.w.512",
-+ "llvm.x86.avx512.psllv.d.512",
-+ "llvm.x86.avx512.psllv.q.512",
-+ "llvm.x86.avx512.psllv.w.128",
-+ "llvm.x86.avx512.psllv.w.256",
-+ "llvm.x86.avx512.psllv.w.512",
-+ "llvm.x86.avx512.psra.d.512",
-+ "llvm.x86.avx512.psra.q.128",
-+ "llvm.x86.avx512.psra.q.256",
-+ "llvm.x86.avx512.psra.q.512",
-+ "llvm.x86.avx512.psra.w.512",
-+ "llvm.x86.avx512.psrai.d.512",
-+ "llvm.x86.avx512.psrai.q.128",
-+ "llvm.x86.avx512.psrai.q.256",
-+ "llvm.x86.avx512.psrai.q.512",
-+ "llvm.x86.avx512.psrai.w.512",
-+ "llvm.x86.avx512.psrav.d.512",
-+ "llvm.x86.avx512.psrav.q.128",
-+ "llvm.x86.avx512.psrav.q.256",
-+ "llvm.x86.avx512.psrav.q.512",
-+ "llvm.x86.avx512.psrav.w.128",
-+ "llvm.x86.avx512.psrav.w.256",
-+ "llvm.x86.avx512.psrav.w.512",
-+ "llvm.x86.avx512.psrl.d.512",
-+ "llvm.x86.avx512.psrl.q.512",
-+ "llvm.x86.avx512.psrl.w.512",
-+ "llvm.x86.avx512.psrli.d.512",
-+ "llvm.x86.avx512.psrli.q.512",
-+ "llvm.x86.avx512.psrli.w.512",
-+ "llvm.x86.avx512.psrlv.d.512",
-+ "llvm.x86.avx512.psrlv.q.512",
-+ "llvm.x86.avx512.psrlv.w.128",
-+ "llvm.x86.avx512.psrlv.w.256",
-+ "llvm.x86.avx512.psrlv.w.512",
-+ "llvm.x86.avx512.ptestm.b.128",
-+ "llvm.x86.avx512.ptestm.b.256",
-+ "llvm.x86.avx512.ptestm.b.512",
-+ "llvm.x86.avx512.ptestm.d.128",
-+ "llvm.x86.avx512.ptestm.d.256",
-+ "llvm.x86.avx512.ptestm.d.512",
-+ "llvm.x86.avx512.ptestm.q.128",
-+ "llvm.x86.avx512.ptestm.q.256",
-+ "llvm.x86.avx512.ptestm.q.512",
-+ "llvm.x86.avx512.ptestm.w.128",
-+ "llvm.x86.avx512.ptestm.w.256",
-+ "llvm.x86.avx512.ptestm.w.512",
-+ "llvm.x86.avx512.ptestnm.b.128",
-+ "llvm.x86.avx512.ptestnm.b.256",
-+ "llvm.x86.avx512.ptestnm.b.512",
-+ "llvm.x86.avx512.ptestnm.d.128",
-+ "llvm.x86.avx512.ptestnm.d.256",
-+ "llvm.x86.avx512.ptestnm.d.512",
-+ "llvm.x86.avx512.ptestnm.q.128",
-+ "llvm.x86.avx512.ptestnm.q.256",
-+ "llvm.x86.avx512.ptestnm.q.512",
-+ "llvm.x86.avx512.ptestnm.w.128",
-+ "llvm.x86.avx512.ptestnm.w.256",
-+ "llvm.x86.avx512.ptestnm.w.512",
-+ "llvm.x86.avx512.rcp14.pd.128",
-+ "llvm.x86.avx512.rcp14.pd.256",
-+ "llvm.x86.avx512.rcp14.pd.512",
-+ "llvm.x86.avx512.rcp14.ps.128",
-+ "llvm.x86.avx512.rcp14.ps.256",
-+ "llvm.x86.avx512.rcp14.ps.512",
-+ "llvm.x86.avx512.rcp14.sd",
-+ "llvm.x86.avx512.rcp14.ss",
-+ "llvm.x86.avx512.rcp28.pd",
-+ "llvm.x86.avx512.rcp28.ps",
-+ "llvm.x86.avx512.rcp28.sd",
-+ "llvm.x86.avx512.rcp28.ss",
-+ "llvm.x86.avx512.rsqrt14.pd.128",
-+ "llvm.x86.avx512.rsqrt14.pd.256",
-+ "llvm.x86.avx512.rsqrt14.pd.512",
-+ "llvm.x86.avx512.rsqrt14.ps.128",
-+ "llvm.x86.avx512.rsqrt14.ps.256",
-+ "llvm.x86.avx512.rsqrt14.ps.512",
-+ "llvm.x86.avx512.rsqrt14.sd",
-+ "llvm.x86.avx512.rsqrt14.ss",
-+ "llvm.x86.avx512.rsqrt28.pd",
-+ "llvm.x86.avx512.rsqrt28.ps",
-+ "llvm.x86.avx512.rsqrt28.sd",
-+ "llvm.x86.avx512.rsqrt28.ss",
-+ "llvm.x86.avx512.scatter.dpd.512",
-+ "llvm.x86.avx512.scatter.dpi.512",
-+ "llvm.x86.avx512.scatter.dpq.512",
-+ "llvm.x86.avx512.scatter.dps.512",
-+ "llvm.x86.avx512.scatter.qpd.512",
-+ "llvm.x86.avx512.scatter.qpi.512",
-+ "llvm.x86.avx512.scatter.qpq.512",
-+ "llvm.x86.avx512.scatter.qps.512",
-+ "llvm.x86.avx512.scatterdiv2.df",
-+ "llvm.x86.avx512.scatterdiv2.di",
-+ "llvm.x86.avx512.scatterdiv4.df",
-+ "llvm.x86.avx512.scatterdiv4.di",
-+ "llvm.x86.avx512.scatterdiv4.sf",
-+ "llvm.x86.avx512.scatterdiv4.si",
-+ "llvm.x86.avx512.scatterdiv8.sf",
-+ "llvm.x86.avx512.scatterdiv8.si",
-+ "llvm.x86.avx512.scatterpf.dpd.512",
-+ "llvm.x86.avx512.scatterpf.dps.512",
-+ "llvm.x86.avx512.scatterpf.qpd.512",
-+ "llvm.x86.avx512.scatterpf.qps.512",
-+ "llvm.x86.avx512.scattersiv2.df",
-+ "llvm.x86.avx512.scattersiv2.di",
-+ "llvm.x86.avx512.scattersiv4.df",
-+ "llvm.x86.avx512.scattersiv4.di",
-+ "llvm.x86.avx512.scattersiv4.sf",
-+ "llvm.x86.avx512.scattersiv4.si",
-+ "llvm.x86.avx512.scattersiv8.sf",
-+ "llvm.x86.avx512.scattersiv8.si",
-+ "llvm.x86.avx512.vbroadcast.sd.512",
-+ "llvm.x86.avx512.vbroadcast.ss.512",
-+ "llvm.x86.avx512.vcomi.sd",
-+ "llvm.x86.avx512.vcomi.ss",
-+ "llvm.x86.avx512.vcvtsd2si32",
-+ "llvm.x86.avx512.vcvtsd2si64",
-+ "llvm.x86.avx512.vcvtsd2usi32",
-+ "llvm.x86.avx512.vcvtsd2usi64",
-+ "llvm.x86.avx512.vcvtss2si32",
-+ "llvm.x86.avx512.vcvtss2si64",
-+ "llvm.x86.avx512.vcvtss2usi32",
-+ "llvm.x86.avx512.vcvtss2usi64",
-+ "llvm.x86.avx512.vpermilvar.pd.512",
-+ "llvm.x86.avx512.vpermilvar.ps.512",
-+ "llvm.x86.bmi.bextr.32",
-+ "llvm.x86.bmi.bextr.64",
-+ "llvm.x86.bmi.bzhi.32",
-+ "llvm.x86.bmi.bzhi.64",
-+ "llvm.x86.bmi.pdep.32",
-+ "llvm.x86.bmi.pdep.64",
-+ "llvm.x86.bmi.pext.32",
-+ "llvm.x86.bmi.pext.64",
-+ "llvm.x86.clflushopt",
-+ "llvm.x86.flags.read.u32",
-+ "llvm.x86.flags.read.u64",
-+ "llvm.x86.flags.write.u32",
-+ "llvm.x86.flags.write.u64",
-+ "llvm.x86.fma.vfmadd.pd",
-+ "llvm.x86.fma.vfmadd.pd.256",
-+ "llvm.x86.fma.vfmadd.ps",
-+ "llvm.x86.fma.vfmadd.ps.256",
-+ "llvm.x86.fma.vfmadd.sd",
-+ "llvm.x86.fma.vfmadd.ss",
-+ "llvm.x86.fma.vfmaddsub.pd",
-+ "llvm.x86.fma.vfmaddsub.pd.256",
-+ "llvm.x86.fma.vfmaddsub.ps",
-+ "llvm.x86.fma.vfmaddsub.ps.256",
-+ "llvm.x86.fma.vfmsub.pd",
-+ "llvm.x86.fma.vfmsub.pd.256",
-+ "llvm.x86.fma.vfmsub.ps",
-+ "llvm.x86.fma.vfmsub.ps.256",
-+ "llvm.x86.fma.vfmsub.sd",
-+ "llvm.x86.fma.vfmsub.ss",
-+ "llvm.x86.fma.vfmsubadd.pd",
-+ "llvm.x86.fma.vfmsubadd.pd.256",
-+ "llvm.x86.fma.vfmsubadd.ps",
-+ "llvm.x86.fma.vfmsubadd.ps.256",
-+ "llvm.x86.fma.vfnmadd.pd",
-+ "llvm.x86.fma.vfnmadd.pd.256",
-+ "llvm.x86.fma.vfnmadd.ps",
-+ "llvm.x86.fma.vfnmadd.ps.256",
-+ "llvm.x86.fma.vfnmadd.sd",
-+ "llvm.x86.fma.vfnmadd.ss",
-+ "llvm.x86.fma.vfnmsub.pd",
-+ "llvm.x86.fma.vfnmsub.pd.256",
-+ "llvm.x86.fma.vfnmsub.ps",
-+ "llvm.x86.fma.vfnmsub.ps.256",
-+ "llvm.x86.fma.vfnmsub.sd",
-+ "llvm.x86.fma.vfnmsub.ss",
-+ "llvm.x86.fxrstor",
-+ "llvm.x86.fxrstor64",
-+ "llvm.x86.fxsave",
-+ "llvm.x86.fxsave64",
-+ "llvm.x86.int",
-+ "llvm.x86.mmx.emms",
-+ "llvm.x86.mmx.femms",
-+ "llvm.x86.mmx.maskmovq",
-+ "llvm.x86.mmx.movnt.dq",
-+ "llvm.x86.mmx.packssdw",
-+ "llvm.x86.mmx.packsswb",
-+ "llvm.x86.mmx.packuswb",
-+ "llvm.x86.mmx.padd.b",
-+ "llvm.x86.mmx.padd.d",
-+ "llvm.x86.mmx.padd.q",
-+ "llvm.x86.mmx.padd.w",
-+ "llvm.x86.mmx.padds.b",
-+ "llvm.x86.mmx.padds.w",
-+ "llvm.x86.mmx.paddus.b",
-+ "llvm.x86.mmx.paddus.w",
-+ "llvm.x86.mmx.palignr.b",
-+ "llvm.x86.mmx.pand",
-+ "llvm.x86.mmx.pandn",
-+ "llvm.x86.mmx.pavg.b",
-+ "llvm.x86.mmx.pavg.w",
-+ "llvm.x86.mmx.pcmpeq.b",
-+ "llvm.x86.mmx.pcmpeq.d",
-+ "llvm.x86.mmx.pcmpeq.w",
-+ "llvm.x86.mmx.pcmpgt.b",
-+ "llvm.x86.mmx.pcmpgt.d",
-+ "llvm.x86.mmx.pcmpgt.w",
-+ "llvm.x86.mmx.pextr.w",
-+ "llvm.x86.mmx.pinsr.w",
-+ "llvm.x86.mmx.pmadd.wd",
-+ "llvm.x86.mmx.pmaxs.w",
-+ "llvm.x86.mmx.pmaxu.b",
-+ "llvm.x86.mmx.pmins.w",
-+ "llvm.x86.mmx.pminu.b",
-+ "llvm.x86.mmx.pmovmskb",
-+ "llvm.x86.mmx.pmulh.w",
-+ "llvm.x86.mmx.pmulhu.w",
-+ "llvm.x86.mmx.pmull.w",
-+ "llvm.x86.mmx.pmulu.dq",
-+ "llvm.x86.mmx.por",
-+ "llvm.x86.mmx.psad.bw",
-+ "llvm.x86.mmx.psll.d",
-+ "llvm.x86.mmx.psll.q",
-+ "llvm.x86.mmx.psll.w",
-+ "llvm.x86.mmx.pslli.d",
-+ "llvm.x86.mmx.pslli.q",
-+ "llvm.x86.mmx.pslli.w",
-+ "llvm.x86.mmx.psra.d",
-+ "llvm.x86.mmx.psra.w",
-+ "llvm.x86.mmx.psrai.d",
-+ "llvm.x86.mmx.psrai.w",
-+ "llvm.x86.mmx.psrl.d",
-+ "llvm.x86.mmx.psrl.q",
-+ "llvm.x86.mmx.psrl.w",
-+ "llvm.x86.mmx.psrli.d",
-+ "llvm.x86.mmx.psrli.q",
-+ "llvm.x86.mmx.psrli.w",
-+ "llvm.x86.mmx.psub.b",
-+ "llvm.x86.mmx.psub.d",
-+ "llvm.x86.mmx.psub.q",
-+ "llvm.x86.mmx.psub.w",
-+ "llvm.x86.mmx.psubs.b",
-+ "llvm.x86.mmx.psubs.w",
-+ "llvm.x86.mmx.psubus.b",
-+ "llvm.x86.mmx.psubus.w",
-+ "llvm.x86.mmx.punpckhbw",
-+ "llvm.x86.mmx.punpckhdq",
-+ "llvm.x86.mmx.punpckhwd",
-+ "llvm.x86.mmx.punpcklbw",
-+ "llvm.x86.mmx.punpckldq",
-+ "llvm.x86.mmx.punpcklwd",
-+ "llvm.x86.mmx.pxor",
-+ "llvm.x86.monitorx",
-+ "llvm.x86.mwaitx",
-+ "llvm.x86.pclmulqdq",
-+ "llvm.x86.rdfsbase.32",
-+ "llvm.x86.rdfsbase.64",
-+ "llvm.x86.rdgsbase.32",
-+ "llvm.x86.rdgsbase.64",
-+ "llvm.x86.rdpkru",
-+ "llvm.x86.rdpmc",
-+ "llvm.x86.rdrand.16",
-+ "llvm.x86.rdrand.32",
-+ "llvm.x86.rdrand.64",
-+ "llvm.x86.rdseed.16",
-+ "llvm.x86.rdseed.32",
-+ "llvm.x86.rdseed.64",
-+ "llvm.x86.rdtsc",
-+ "llvm.x86.rdtscp",
-+ "llvm.x86.seh.ehguard",
-+ "llvm.x86.seh.ehregnode",
-+ "llvm.x86.seh.lsda",
-+ "llvm.x86.seh.recoverfp",
-+ "llvm.x86.sha1msg1",
-+ "llvm.x86.sha1msg2",
-+ "llvm.x86.sha1nexte",
-+ "llvm.x86.sha1rnds4",
-+ "llvm.x86.sha256msg1",
-+ "llvm.x86.sha256msg2",
-+ "llvm.x86.sha256rnds2",
-+ "llvm.x86.sse.cmp.ps",
-+ "llvm.x86.sse.cmp.ss",
-+ "llvm.x86.sse.comieq.ss",
-+ "llvm.x86.sse.comige.ss",
-+ "llvm.x86.sse.comigt.ss",
-+ "llvm.x86.sse.comile.ss",
-+ "llvm.x86.sse.comilt.ss",
-+ "llvm.x86.sse.comineq.ss",
-+ "llvm.x86.sse.cvtpd2pi",
-+ "llvm.x86.sse.cvtpi2pd",
-+ "llvm.x86.sse.cvtpi2ps",
-+ "llvm.x86.sse.cvtps2pi",
-+ "llvm.x86.sse.cvtsi2ss",
-+ "llvm.x86.sse.cvtsi642ss",
-+ "llvm.x86.sse.cvtss2si",
-+ "llvm.x86.sse.cvtss2si64",
-+ "llvm.x86.sse.cvttpd2pi",
-+ "llvm.x86.sse.cvttps2pi",
-+ "llvm.x86.sse.cvttss2si",
-+ "llvm.x86.sse.cvttss2si64",
-+ "llvm.x86.sse.ldmxcsr",
-+ "llvm.x86.sse.max.ps",
-+ "llvm.x86.sse.max.ss",
-+ "llvm.x86.sse.min.ps",
-+ "llvm.x86.sse.min.ss",
-+ "llvm.x86.sse.movmsk.ps",
-+ "llvm.x86.sse.pshuf.w",
-+ "llvm.x86.sse.rcp.ps",
-+ "llvm.x86.sse.rcp.ss",
-+ "llvm.x86.sse.rsqrt.ps",
-+ "llvm.x86.sse.rsqrt.ss",
-+ "llvm.x86.sse.sfence",
-+ "llvm.x86.sse.sqrt.ps",
-+ "llvm.x86.sse.sqrt.ss",
-+ "llvm.x86.sse.stmxcsr",
-+ "llvm.x86.sse.ucomieq.ss",
-+ "llvm.x86.sse.ucomige.ss",
-+ "llvm.x86.sse.ucomigt.ss",
-+ "llvm.x86.sse.ucomile.ss",
-+ "llvm.x86.sse.ucomilt.ss",
-+ "llvm.x86.sse.ucomineq.ss",
-+ "llvm.x86.sse2.clflush",
-+ "llvm.x86.sse2.cmp.pd",
-+ "llvm.x86.sse2.cmp.sd",
-+ "llvm.x86.sse2.comieq.sd",
-+ "llvm.x86.sse2.comige.sd",
-+ "llvm.x86.sse2.comigt.sd",
-+ "llvm.x86.sse2.comile.sd",
-+ "llvm.x86.sse2.comilt.sd",
-+ "llvm.x86.sse2.comineq.sd",
-+ "llvm.x86.sse2.cvtdq2ps",
-+ "llvm.x86.sse2.cvtpd2dq",
-+ "llvm.x86.sse2.cvtpd2ps",
-+ "llvm.x86.sse2.cvtps2dq",
-+ "llvm.x86.sse2.cvtsd2si",
-+ "llvm.x86.sse2.cvtsd2si64",
-+ "llvm.x86.sse2.cvtsd2ss",
-+ "llvm.x86.sse2.cvtsi2sd",
-+ "llvm.x86.sse2.cvtsi642sd",
-+ "llvm.x86.sse2.cvtss2sd",
-+ "llvm.x86.sse2.cvttpd2dq",
-+ "llvm.x86.sse2.cvttps2dq",
-+ "llvm.x86.sse2.cvttsd2si",
-+ "llvm.x86.sse2.cvttsd2si64",
-+ "llvm.x86.sse2.lfence",
-+ "llvm.x86.sse2.maskmov.dqu",
-+ "llvm.x86.sse2.max.pd",
-+ "llvm.x86.sse2.max.sd",
-+ "llvm.x86.sse2.mfence",
-+ "llvm.x86.sse2.min.pd",
-+ "llvm.x86.sse2.min.sd",
-+ "llvm.x86.sse2.movmsk.pd",
-+ "llvm.x86.sse2.packssdw.128",
-+ "llvm.x86.sse2.packsswb.128",
-+ "llvm.x86.sse2.packuswb.128",
-+ "llvm.x86.sse2.padds.b",
-+ "llvm.x86.sse2.padds.w",
-+ "llvm.x86.sse2.paddus.b",
-+ "llvm.x86.sse2.paddus.w",
-+ "llvm.x86.sse2.pause",
-+ "llvm.x86.sse2.pavg.b",
-+ "llvm.x86.sse2.pavg.w",
-+ "llvm.x86.sse2.pmadd.wd",
-+ "llvm.x86.sse2.pmovmskb.128",
-+ "llvm.x86.sse2.pmulh.w",
-+ "llvm.x86.sse2.pmulhu.w",
-+ "llvm.x86.sse2.pmulu.dq",
-+ "llvm.x86.sse2.psad.bw",
-+ "llvm.x86.sse2.psll.d",
-+ "llvm.x86.sse2.psll.q",
-+ "llvm.x86.sse2.psll.w",
-+ "llvm.x86.sse2.pslli.d",
-+ "llvm.x86.sse2.pslli.q",
-+ "llvm.x86.sse2.pslli.w",
-+ "llvm.x86.sse2.psra.d",
-+ "llvm.x86.sse2.psra.w",
-+ "llvm.x86.sse2.psrai.d",
-+ "llvm.x86.sse2.psrai.w",
-+ "llvm.x86.sse2.psrl.d",
-+ "llvm.x86.sse2.psrl.q",
-+ "llvm.x86.sse2.psrl.w",
-+ "llvm.x86.sse2.psrli.d",
-+ "llvm.x86.sse2.psrli.q",
-+ "llvm.x86.sse2.psrli.w",
-+ "llvm.x86.sse2.psubs.b",
-+ "llvm.x86.sse2.psubs.w",
-+ "llvm.x86.sse2.psubus.b",
-+ "llvm.x86.sse2.psubus.w",
-+ "llvm.x86.sse2.sqrt.pd",
-+ "llvm.x86.sse2.sqrt.sd",
-+ "llvm.x86.sse2.ucomieq.sd",
-+ "llvm.x86.sse2.ucomige.sd",
-+ "llvm.x86.sse2.ucomigt.sd",
-+ "llvm.x86.sse2.ucomile.sd",
-+ "llvm.x86.sse2.ucomilt.sd",
-+ "llvm.x86.sse2.ucomineq.sd",
-+ "llvm.x86.sse3.addsub.pd",
-+ "llvm.x86.sse3.addsub.ps",
-+ "llvm.x86.sse3.hadd.pd",
-+ "llvm.x86.sse3.hadd.ps",
-+ "llvm.x86.sse3.hsub.pd",
-+ "llvm.x86.sse3.hsub.ps",
-+ "llvm.x86.sse3.ldu.dq",
-+ "llvm.x86.sse3.monitor",
-+ "llvm.x86.sse3.mwait",
-+ "llvm.x86.sse41.blendvpd",
-+ "llvm.x86.sse41.blendvps",
-+ "llvm.x86.sse41.dppd",
-+ "llvm.x86.sse41.dpps",
-+ "llvm.x86.sse41.insertps",
-+ "llvm.x86.sse41.movntdqa",
-+ "llvm.x86.sse41.mpsadbw",
-+ "llvm.x86.sse41.packusdw",
-+ "llvm.x86.sse41.pblendvb",
-+ "llvm.x86.sse41.phminposuw",
-+ "llvm.x86.sse41.pmuldq",
-+ "llvm.x86.sse41.ptestc",
-+ "llvm.x86.sse41.ptestnzc",
-+ "llvm.x86.sse41.ptestz",
-+ "llvm.x86.sse41.round.pd",
-+ "llvm.x86.sse41.round.ps",
-+ "llvm.x86.sse41.round.sd",
-+ "llvm.x86.sse41.round.ss",
-+ "llvm.x86.sse42.crc32.32.16",
-+ "llvm.x86.sse42.crc32.32.32",
-+ "llvm.x86.sse42.crc32.32.8",
-+ "llvm.x86.sse42.crc32.64.64",
-+ "llvm.x86.sse42.pcmpestri128",
-+ "llvm.x86.sse42.pcmpestria128",
-+ "llvm.x86.sse42.pcmpestric128",
-+ "llvm.x86.sse42.pcmpestrio128",
-+ "llvm.x86.sse42.pcmpestris128",
-+ "llvm.x86.sse42.pcmpestriz128",
-+ "llvm.x86.sse42.pcmpestrm128",
-+ "llvm.x86.sse42.pcmpistri128",
-+ "llvm.x86.sse42.pcmpistria128",
-+ "llvm.x86.sse42.pcmpistric128",
-+ "llvm.x86.sse42.pcmpistrio128",
-+ "llvm.x86.sse42.pcmpistris128",
-+ "llvm.x86.sse42.pcmpistriz128",
-+ "llvm.x86.sse42.pcmpistrm128",
-+ "llvm.x86.sse4a.extrq",
-+ "llvm.x86.sse4a.extrqi",
-+ "llvm.x86.sse4a.insertq",
-+ "llvm.x86.sse4a.insertqi",
-+ "llvm.x86.ssse3.pabs.b",
-+ "llvm.x86.ssse3.pabs.b.128",
-+ "llvm.x86.ssse3.pabs.d",
-+ "llvm.x86.ssse3.pabs.d.128",
-+ "llvm.x86.ssse3.pabs.w",
-+ "llvm.x86.ssse3.pabs.w.128",
-+ "llvm.x86.ssse3.phadd.d",
-+ "llvm.x86.ssse3.phadd.d.128",
-+ "llvm.x86.ssse3.phadd.sw",
-+ "llvm.x86.ssse3.phadd.sw.128",
-+ "llvm.x86.ssse3.phadd.w",
-+ "llvm.x86.ssse3.phadd.w.128",
-+ "llvm.x86.ssse3.phsub.d",
-+ "llvm.x86.ssse3.phsub.d.128",
-+ "llvm.x86.ssse3.phsub.sw",
-+ "llvm.x86.ssse3.phsub.sw.128",
-+ "llvm.x86.ssse3.phsub.w",
-+ "llvm.x86.ssse3.phsub.w.128",
-+ "llvm.x86.ssse3.pmadd.ub.sw",
-+ "llvm.x86.ssse3.pmadd.ub.sw.128",
-+ "llvm.x86.ssse3.pmul.hr.sw",
-+ "llvm.x86.ssse3.pmul.hr.sw.128",
-+ "llvm.x86.ssse3.pshuf.b",
-+ "llvm.x86.ssse3.pshuf.b.128",
-+ "llvm.x86.ssse3.psign.b",
-+ "llvm.x86.ssse3.psign.b.128",
-+ "llvm.x86.ssse3.psign.d",
-+ "llvm.x86.ssse3.psign.d.128",
-+ "llvm.x86.ssse3.psign.w",
-+ "llvm.x86.ssse3.psign.w.128",
-+ "llvm.x86.subborrow.u32",
-+ "llvm.x86.subborrow.u64",
-+ "llvm.x86.tbm.bextri.u32",
-+ "llvm.x86.tbm.bextri.u64",
-+ "llvm.x86.vcvtph2ps.128",
-+ "llvm.x86.vcvtph2ps.256",
-+ "llvm.x86.vcvtps2ph.128",
-+ "llvm.x86.vcvtps2ph.256",
-+ "llvm.x86.wrfsbase.32",
-+ "llvm.x86.wrfsbase.64",
-+ "llvm.x86.wrgsbase.32",
-+ "llvm.x86.wrgsbase.64",
-+ "llvm.x86.wrpkru",
-+ "llvm.x86.xabort",
-+ "llvm.x86.xbegin",
-+ "llvm.x86.xend",
-+ "llvm.x86.xgetbv",
-+ "llvm.x86.xop.vfrcz.pd",
-+ "llvm.x86.xop.vfrcz.pd.256",
-+ "llvm.x86.xop.vfrcz.ps",
-+ "llvm.x86.xop.vfrcz.ps.256",
-+ "llvm.x86.xop.vfrcz.sd",
-+ "llvm.x86.xop.vfrcz.ss",
-+ "llvm.x86.xop.vpcmov",
-+ "llvm.x86.xop.vpcmov.256",
-+ "llvm.x86.xop.vpcomb",
-+ "llvm.x86.xop.vpcomd",
-+ "llvm.x86.xop.vpcomq",
-+ "llvm.x86.xop.vpcomub",
-+ "llvm.x86.xop.vpcomud",
-+ "llvm.x86.xop.vpcomuq",
-+ "llvm.x86.xop.vpcomuw",
-+ "llvm.x86.xop.vpcomw",
-+ "llvm.x86.xop.vpermil2pd",
-+ "llvm.x86.xop.vpermil2pd.256",
-+ "llvm.x86.xop.vpermil2ps",
-+ "llvm.x86.xop.vpermil2ps.256",
-+ "llvm.x86.xop.vphaddbd",
-+ "llvm.x86.xop.vphaddbq",
-+ "llvm.x86.xop.vphaddbw",
-+ "llvm.x86.xop.vphadddq",
-+ "llvm.x86.xop.vphaddubd",
-+ "llvm.x86.xop.vphaddubq",
-+ "llvm.x86.xop.vphaddubw",
-+ "llvm.x86.xop.vphaddudq",
-+ "llvm.x86.xop.vphadduwd",
-+ "llvm.x86.xop.vphadduwq",
-+ "llvm.x86.xop.vphaddwd",
-+ "llvm.x86.xop.vphaddwq",
-+ "llvm.x86.xop.vphsubbw",
-+ "llvm.x86.xop.vphsubdq",
-+ "llvm.x86.xop.vphsubwd",
-+ "llvm.x86.xop.vpmacsdd",
-+ "llvm.x86.xop.vpmacsdqh",
-+ "llvm.x86.xop.vpmacsdql",
-+ "llvm.x86.xop.vpmacssdd",
-+ "llvm.x86.xop.vpmacssdqh",
-+ "llvm.x86.xop.vpmacssdql",
-+ "llvm.x86.xop.vpmacsswd",
-+ "llvm.x86.xop.vpmacssww",
-+ "llvm.x86.xop.vpmacswd",
-+ "llvm.x86.xop.vpmacsww",
-+ "llvm.x86.xop.vpmadcsswd",
-+ "llvm.x86.xop.vpmadcswd",
-+ "llvm.x86.xop.vpperm",
-+ "llvm.x86.xop.vprotb",
-+ "llvm.x86.xop.vprotbi",
-+ "llvm.x86.xop.vprotd",
-+ "llvm.x86.xop.vprotdi",
-+ "llvm.x86.xop.vprotq",
-+ "llvm.x86.xop.vprotqi",
-+ "llvm.x86.xop.vprotw",
-+ "llvm.x86.xop.vprotwi",
-+ "llvm.x86.xop.vpshab",
-+ "llvm.x86.xop.vpshad",
-+ "llvm.x86.xop.vpshaq",
-+ "llvm.x86.xop.vpshaw",
-+ "llvm.x86.xop.vpshlb",
-+ "llvm.x86.xop.vpshld",
-+ "llvm.x86.xop.vpshlq",
-+ "llvm.x86.xop.vpshlw",
-+ "llvm.x86.xrstor",
-+ "llvm.x86.xrstor64",
-+ "llvm.x86.xrstors",
-+ "llvm.x86.xrstors64",
-+ "llvm.x86.xsave",
-+ "llvm.x86.xsave64",
-+ "llvm.x86.xsavec",
-+ "llvm.x86.xsavec64",
-+ "llvm.x86.xsaveopt",
-+ "llvm.x86.xsaveopt64",
-+ "llvm.x86.xsaves",
-+ "llvm.x86.xsaves64",
-+ "llvm.x86.xsetbv",
-+ "llvm.x86.xtest",
-+ "llvm.xcore.bitrev",
-+ "llvm.xcore.checkevent",
-+ "llvm.xcore.chkct",
-+ "llvm.xcore.clre",
-+ "llvm.xcore.clrpt",
-+ "llvm.xcore.clrsr",
-+ "llvm.xcore.crc32",
-+ "llvm.xcore.crc8",
-+ "llvm.xcore.edu",
-+ "llvm.xcore.eeu",
-+ "llvm.xcore.endin",
-+ "llvm.xcore.freer",
-+ "llvm.xcore.geted",
-+ "llvm.xcore.getet",
-+ "llvm.xcore.getid",
-+ "llvm.xcore.getps",
-+ "llvm.xcore.getr",
-+ "llvm.xcore.getst",
-+ "llvm.xcore.getts",
-+ "llvm.xcore.in",
-+ "llvm.xcore.inct",
-+ "llvm.xcore.initcp",
-+ "llvm.xcore.initdp",
-+ "llvm.xcore.initlr",
-+ "llvm.xcore.initpc",
-+ "llvm.xcore.initsp",
-+ "llvm.xcore.inshr",
-+ "llvm.xcore.int",
-+ "llvm.xcore.mjoin",
-+ "llvm.xcore.msync",
-+ "llvm.xcore.out",
-+ "llvm.xcore.outct",
-+ "llvm.xcore.outshr",
-+ "llvm.xcore.outt",
-+ "llvm.xcore.peek",
-+ "llvm.xcore.setc",
-+ "llvm.xcore.setclk",
-+ "llvm.xcore.setd",
-+ "llvm.xcore.setev",
-+ "llvm.xcore.setps",
-+ "llvm.xcore.setpsc",
-+ "llvm.xcore.setpt",
-+ "llvm.xcore.setrdy",
-+ "llvm.xcore.setsr",
-+ "llvm.xcore.settw",
-+ "llvm.xcore.setv",
-+ "llvm.xcore.sext",
-+ "llvm.xcore.ssync",
-+ "llvm.xcore.syncr",
-+ "llvm.xcore.testct",
-+ "llvm.xcore.testwct",
-+ "llvm.xcore.waitevent",
-+ "llvm.xcore.zext",
-+#endif
-+
-+// Intrinsic ID to overload bitset
-+#ifdef GET_INTRINSIC_OVERLOAD_TABLE
-+static const uint8_t OTable[] = {
-+ 0 | (1<<3) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5),
-+ 0,
-+ 0 | (1<<2) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<7),
-+ 0,
-+ 0 | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<5) | (1<<6),
-+ 0 | (1<<0) | (1<<1) | (1<<6),
-+ 0 | (1<<3) | (1<<5),
-+ 0 | (1<<0) | (1<<4) | (1<<5) | (1<<6),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<6) | (1<<7),
-+ 0 | (1<<1) | (1<<2) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<3) | (1<<4) | (1<<5) | (1<<6),
-+ 0 | (1<<5),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<7),
-+ 0,
-+ 0,
-+ 0,
-+ 0 | (1<<4) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6),
-+ 0 | (1<<0) | (1<<1) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<2) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0,
-+ 0 | (1<<3) | (1<<4) | (1<<5) | (1<<6),
-+ 0 | (1<<2) | (1<<3),
-+ 0 | (1<<3) | (1<<4) | (1<<5),
-+ 0 | (1<<1) | (1<<3) | (1<<4) | (1<<5) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2),
-+ 0 | (1<<0) | (1<<2) | (1<<5),
-+ 0 | (1<<4),
-+ 0 | (1<<0) | (1<<1),
-+ 0,
-+ 0 | (1<<2) | (1<<3) | (1<<4),
-+ 0,
-+ 0,
-+ 0 | (1<<3),
-+ 0 | (1<<1),
-+ 0,
-+ 0,
-+ 0 | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<5) | (1<<6),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5),
-+ 0,
-+ 0,
-+ 0 | (1<<0) | (1<<2) | (1<<6) | (1<<7),
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0 | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6),
-+ 0,
-+ 0 | (1<<7),
-+ 0 | (1<<0),
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5),
-+ 0,
-+ 0,
-+ 0,
-+ 0 | (1<<2),
-+ 0,
-+ 0,
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0),
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0 | (1<<0),
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0 | (1<<6) | (1<<7),
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0 | (1<<3),
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0 | (1<<0) | (1<<1),
-+ 0 | (1<<4),
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0 | (1<<1) | (1<<2),
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0 | (1<<2) | (1<<4),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6),
-+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<4) | (1<<5),
-+ 0 | (1<<0) | (1<<1) | (1<<2)
-+};
-+
-+return (OTable[id/8] & (1 << (id%8))) != 0;
-+#endif
-+
-+// Global intrinsic function declaration type table.
-+#ifdef GET_INTRINSIC_GENERATOR_GLOBAL
-+static const unsigned IIT_Table[] = {
-+ 0x2E, 0x2E2E, (1U<<31) | 1789, 0x10, 0x1F1F, 0x1F1F, 0x2F2F,
-+ 0x2F2F, 0x2E2E0, 0x32F, 0x2F3, 0x44AF2F, 0x449F2F, 0x449F2F, 0x44AF1F,
-+ 0x449F1F, 0x449F1F, 0x44AF1F, 0x449F1F, 0x449F1F, 0x2F2F2F, (1U<<31) | 3646, (1U<<31) | 1009,
-+ 0x2E0, 0x2E1, 0x12E0, 0x2E, (1U<<31) | 1009, (1U<<31) | 982, 0x2E2E1, 0x142E2E,
-+ 0x2E0, (1U<<31) | 1011, 0x1F, 0x22E2E, (1U<<31) | 122, 0x2F2F, 0x11F1F, 0x1F1F,
-+ 0x11F1F, (1U<<31) | 3677, (1U<<31) | 3671, 0x0, 0x0, 0x42E, (1U<<31) | 3650, (1U<<31) | 3649,
-+ 0x2E40, 0x2E50, 0x40, 0x2E0, 0x2E0, 0x2E, 0x2E4, 0x0,
-+ 0x2E4, 0x0, 0x2F2F, 0x2F2F, 0x1F1F1F, (1U<<31) | 3682, (1U<<31) | 2410, (1U<<31) | 3642,
-+ (1U<<31) | 3706, (1U<<31) | 3686, (1U<<31) | 3698, (1U<<31) | 3690, (1U<<31) | 3715, 0x2F2F, 0x2F2F, 0x4,
-+ 0x2F2F2F2F, 0x2F2F2F2F, 0x42E, 0x2EE2E2E, 0x2E2EE0, 0x2EE2E2E0, 0x1F, 0x2E2E2E0,
-+ 0x4452E0, 0x54452E0, 0x44552E0, (1U<<31) | 2843, 0x2E2E, (1U<<31) | 2844, 0x2E50, 0x2E50,
-+ 0x1F2E2E, 0x2E, (1U<<31) | 3683, 0x42E2E2E, 0x2F2F, 0x2F2F, 0x2F2F, 0x42E0,
-+ (1U<<31) | 69, (1U<<31) | 1251, (1U<<31) | 1261, (1U<<31) | 1272, (1U<<31) | 78, (1U<<31) | 88, 0x2F2F2F, (1U<<31) | 98,
-+ (1U<<31) | 98, 0x149F24F0, 0x2F2F2F, 0x2F2F, 0x1CF1F, 0x40, 0x2F2F2F, 0x42F2F,
-+ 0x4442E0, (1U<<31) | 1799, (1U<<31) | 3653, 0x5, 0x42E, 0x2F2F, 0x2F2F, (1U<<31) | 108,
-+ 0x2E4, 0x42E0, 0x42E4, 0x2F2F, (1U<<31) | 108, 0x2F2F, (1U<<31) | 108, 0x2E,
-+ 0x2EE2E0, 0x2E0, 0x2E, 0x2E, 0x0, 0x2F2F, (1U<<31) | 3662, (1U<<31) | 3657,
-+ (1U<<31) | 108, (1U<<31) | 108, (1U<<31) | 108, 0x2E2E0, 0x2E0, 0x2E0, 0x42E2E2E0, (1U<<31) | 117,
-+ 0x0, 0x444, 0x444, 0x444, 0x444, 0x544, 0x444, 0x444,
-+ 0x544, 0x2C2C2C, 0x2C2C2C, 0x2C2C, 0x2C2C, 0x4A44A4A, 0x44, 0x4A44A4A,
-+ 0x4A44A4A, 0x4A4A4A4A, 0x4A4A4A, 0x4A4A4A4A, 0x4A4A4A4A, 0x4A4A4A, 0x4A4A4A4A, 0x40,
-+ 0x40, 0x40, 0x40, (1U<<31) | 997, 0x4F5, (1U<<31) | 997, 0x4F5, 0x1F1F,
-+ (1U<<31) | 1327, 0x3F3F3F, 0x3F3F, 0x3F3F3F, 0xAFAF1F, 0xAFAF1F, 0xBF2F, 0xAF1F,
-+ 0xAF1F, 0xAF1F, 0xAF1F, 0xAF1F, 0xAF1F, 0xAF1F, 0xAF1F, 0xBF3F,
-+ 0xAF1F, 0xAF1F, 0x3F3F3F, 0x2F2F2F, 0x3F3F3F, 0xBF2F, 0x3F3F3F, 0xBF2F,
-+ 0x3F3F3F, 0x2F2F2F, 0x3F3F3F, 0xBF2F, 0x3F3F3F, 0xBF2F, 0x2F2F2F, 0x2F2F,
-+ 0x2F2F2F, 0x2F2F, 0x2F2F, 0x2F2F, 0x2F2F2F, (1U<<31) | 3528, (1U<<31) | 3518, (1U<<31) | 3506,
-+ (1U<<31) | 3528, (1U<<31) | 3607, (1U<<31) | 3528, (1U<<31) | 3518, (1U<<31) | 3590, (1U<<31) | 3518, (1U<<31) | 3506, (1U<<31) | 3569,
-+ (1U<<31) | 3506, 0x3F3F3F, (1U<<31) | 1339, 0x552C, (1U<<31) | 1327, 0x3F3F, (1U<<31) | 1346, (1U<<31) | 1327,
-+ 0x3F3F3F, 0xBF3F, 0xBF1F, 0xBF1F, 0x9F1F, 0x9F1F, 0x9F1F, 0x3F3F3F,
-+ (1U<<31) | 1334, 0x3F3F3F, 0x3F3F3F, 0x3F3F3F, 0xBF1F, 0x3F3F3F, 0x3F3F3F, 0xBF1F,
-+ (1U<<31) | 1339, 0x1F1F, 0x1F1F1F, 0x1F1F1F, (1U<<31) | 1339, 0x445, 0x1F1F, 0x1F1F1F,
-+ 0x1F1F1F, (1U<<31) | 1346, (1U<<31) | 1346, 0x1F1F1F, 0x1F1F1F, (1U<<31) | 1346, (1U<<31) | 1346, 0x1F1F1F,
-+ (1U<<31) | 126, (1U<<31) | 126, 0x3F3F3F, 0x1F1F1F, 0x1F1F1F, (1U<<31) | 1943, 0xCF3F3F0, (1U<<31) | 3484,
-+ (1U<<31) | 3494, 0xCF3F3F0, (1U<<31) | 3536, (1U<<31) | 3484, (1U<<31) | 3545, (1U<<31) | 3494, (1U<<31) | 3556, (1U<<31) | 1327,
-+ 0x1F1F1F, 0x3F2C3F, 0x3F2C2C3F, (1U<<31) | 1300, (1U<<31) | 1285, 0x3F2C3F3F, (1U<<31) | 1311, (1U<<31) | 1298,
-+ (1U<<31) | 1283, 0x3F3F3F, 0xBF3F, 0xBF1F, 0xBF1F, 0x3F3F3F, 0x3F3F3F, 0x3F3F3F,
-+ 0x3F3F3F, 0xBF1F, 0x3F3F3F, 0x3F3F3F, 0xBF1F, (1U<<31) | 1339, 0x1F1F1F, 0x1F1F1F,
-+ (1U<<31) | 1346, 0x1F1F1F, (1U<<31) | 1346, 0x1F1F1F, (1U<<31) | 126, 0x3F3F, 0x3F3F3F, 0x1F1F1F,
-+ 0x3F3F, 0x1F1F1F, (1U<<31) | 1943, 0x1F1F1F, 0x53F5BF3F, 0x4AF1F, 0x4AF1F, 0x7A3A,
-+ 0x49F2F, 0x49F2F, 0x3A7A, 0x43F3F3F, 0x43F3F3F, 0x1F1F, 0x1F1F1F, 0x2F2F2F,
-+ 0x87, 0x2E554, 0x4F54, 0x2E554, 0x4F54, 0x1F1F1F, 0x1FCF1F, 0x1FCF1F,
-+ 0x1444A44, 0x1444A44, 0x1444A444, 0x1444A44, 0x1444A44, 0x1444A44, 0x1444A44, 0x1444A44,
-+ 0x1444A44, 0x1444A44, 0x1444A44, 0x11444A2F, 0x11444A2F, (1U<<31) | 39, (1U<<31) | 39, 0x0,
-+ 0x0, 0x0, 0x42F1, 0x2F2F, 0x7777, 0x7777, 0x7777, 0x7777,
-+ 0x4474, 0x5, (1U<<31) | 145, 0x2F2F2F2F, (1U<<31) | 59, (1U<<31) | 49, 0x444, 0x444,
-+ 0x444, 0x42F2F5, 0x777, 0x2F2F, 0xAF1F, 0x2F2F, 0x4, 0x41F1F5,
-+ (1U<<31) | 29, (1U<<31) | 29, (1U<<31) | 28, (1U<<31) | 29, (1U<<31) | 29, (1U<<31) | 29, (1U<<31) | 29, (1U<<31) | 29,
-+ (1U<<31) | 29, (1U<<31) | 29, (1U<<31) | 29, (1U<<31) | 29, (1U<<31) | 29, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0,
-+ (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0,
-+ (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0,
-+ (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 16, (1U<<31) | 16,
-+ (1U<<31) | 16, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0,
-+ (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0,
-+ (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0,
-+ (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0,
-+ (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0,
-+ (1U<<31) | 0, (1U<<31) | 15, (1U<<31) | 15, (1U<<31) | 145, 0x44447, 0x44477, 0x444777, (1U<<31) | 145,
-+ 0x42F2F, 0x4444, 0x2F2F, 0x444, 0x444, 0x14441F1F, 0x5455, 0x4A454A,
-+ 0x4444, 0x1, 0x5455, (1U<<31) | 145, 0x2F2F, 0x77, 0x44, 0x444,
-+ 0x2F2F, 0x2F2F, 0x77, 0x0, 0x0, 0x0, 0x0, 0x0,
-+ 0x40, 0x44, 0x40, 0x5, 0x5, 0x40, 0x40, 0x4444,
-+ 0x4444, 0x4444, 0x1F1F, 0x2F2F, 0x42F2F, 0x0, 0x4, 0x4,
-+ 0x4, 0x4, 0x4, 0x4, 0x4444440, 0x4444440, 0x0, 0x444,
-+ 0x444, 0x444, 0x444, 0x444, 0x444, 0x40, 0x40, 0x40,
-+ 0x4, 0x40, 0x40, 0x4F4, (1U<<31) | 991, 0x2E440, 0x2E440, 0x2E440,
-+ 0x2E440, 0x4F4, (1U<<31) | 991, 0x4444440, 0x4444440, 0x444440, 0x444440, 0x444444,
-+ 0x444444, (1U<<31) | 2037, (1U<<31) | 2037, 0x2C2C2C, 0x2C2C2C, 0x2C2C, 0x2C2C, 0x4A44A4A,
-+ 0x44, 0x4A44A4A, 0x4A44A4A, 0x4A4A4A4A, 0x4A4A4A, 0x4A4A4A4A, 0x4A4A4A4A, 0x4A4A4A,
-+ 0x4A4A4A4A, 0x3F3F3F, 0x3F3F3F, 0x3F3F, 0xBFBF3F, 0xBFBF3F, 0x3F3F3F3F, 0x3F3F,
-+ 0xBF3F, 0xBF3F, 0x4AF1F, 0x4AF1F, 0x7A3A, 0x49F2F, 0x49F2F, 0x3A7A,
-+ 0xBF3F, 0xBF3F, 0xBF3F, 0xBF3F, 0xBF3F, 0xBF3F, 0x3F3F3F, 0x3F3F3F,
-+ 0x3F3F3F, 0x3F3F3F, 0x4CF3F, (1U<<31) | 2791, (1U<<31) | 2013, (1U<<31) | 2780, (1U<<31) | 1995, (1U<<31) | 2767,
-+ (1U<<31) | 1973, 0x3F3F3F, 0x3F3F3F, 0x3F3F3F, 0x3F3F3F, 0x3F3F3F, 0x3F3F3F, (1U<<31) | 1339,
-+ (1U<<31) | 1339, (1U<<31) | 1339, 0x3F3F3F, 0xBF3F3F, 0xBF3F3F, 0x3F3F3F, 0xBF3F, 0xBF3F,
-+ 0x3F3F3F, 0x3F3F3F, 0x3F3F3F, 0x3F3F3F, 0x3F3F, 0x3F3F3F, 0x3F3F3F, 0x3F3F3F,
-+ (1U<<31) | 1339, (1U<<31) | 1322, (1U<<31) | 1322, (1U<<31) | 1322, 0x3F3F, 0x3F3F3F, (1U<<31) | 1327, (1U<<31) | 1327,
-+ (1U<<31) | 1327, 0x3F3F3F, 0x3F3F3F, (1U<<31) | 1327, (1U<<31) | 1327, (1U<<31) | 1327, 0x3F3F3F, 0x3F3F3F,
-+ 0x3F3F3F, 0x3F3F3F, 0x3F3F3F, (1U<<31) | 1327, 0x3F3F, 0x3F3F3F, 0x3F3F3F, 0x3F3F3F,
-+ 0x3F3F, 0x3F3F, 0x3F3F, 0x3F3F, 0x3F3F, 0x3F3F, (1U<<31) | 1327, 0x3F3F3F,
-+ 0x3F3F3F, 0x3F3F, 0x3F3F3F, (1U<<31) | 1327, 0x3F3F3F3F, 0x3F3F3F, 0x3F3F3F, 0x4BF4F0,
-+ 0x4BFBF4F0, (1U<<31) | 2279, (1U<<31) | 2716, (1U<<31) | 2289, (1U<<31) | 2727, (1U<<31) | 2301, 0x2B2B2B, 0x2B2B2B2B,
-+ (1U<<31) | 955, (1U<<31) | 953, 0x2B2B2B2B, (1U<<31) | 955, (1U<<31) | 953, (1U<<31) | 951, 0x444, 0x444,
-+ 0x44, 0x40, 0x444, 0x444, 0x2E440, 0x2E440, 0x2E440, 0x2E440,
-+ 0x4F44, 0x2E444, 0x4F44, 0x2E444, 0x40, 0x444, 0x2F7, 0x2F7,
-+ 0x52E5, 0x52E5, 0x52E5, 0x555, 0x44, 0x55, 0x44, 0x444,
-+ 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444,
-+ 0x444, 0x444, 0x444, 0x444, 0x444, 0x555, 0x555, 0x444,
-+ 0x545, 0x444, 0x444, 0x555, 0x44, 0x44, 0x444, 0x444,
-+ 0x444, 0x444, 0x445, 0x445, 0x444, 0x555, 0x444, 0x555,
-+ 0x444, 0x555, 0x444, 0x555, 0x44, 0x55, 0x44, 0x44,
-+ 0x55, 0x444, 0x444, 0x555, 0x54, 0x54, 0x44, 0x44,
-+ 0x44, 0x44, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444,
-+ 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x555,
-+ 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444,
-+ 0x444, 0x444, 0x444, 0x44, 0x44, 0x44, 0x45, 0x44,
-+ 0x444, 0x444, 0x55, 0x45, 0x44, 0x55, 0x55, 0x55,
-+ 0x55, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555,
-+ 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555,
-+ 0x555, 0x555, 0x555, 0x555, 0x555, 0x554, 0x554, 0x554,
-+ 0x554, 0x554, 0x554, 0x554, 0x554, 0x55, 0x555, 0x555,
-+ 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555,
-+ 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555,
-+ 0x555, 0x5555, 0x555, 0x5555, 0x555, 0x555, 0x555, 0x555,
-+ 0x555, 0x555, 0x555, 0x555, 0x444, 0x555, 0x44, 0x44,
-+ 0x444, 0x555, 0x445, 0x445, 0x544, 0x444, 0x444, 0x444,
-+ 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444,
-+ 0x444, 0x445, 0x445, 0x444, 0x444, 0x444, 0x444, 0x555,
-+ 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444,
-+ 0x454, 0x554, 0x454, 0x554, 0x454, 0x454, 0x454, 0x454,
-+ 0x454, 0x454, 0x454, 0x454, 0x4555, 0x4555, 0x4555, 0x4555,
-+ 0x4555, 0x4555, 0x4555, 0x4555, 0x554, 0x44, 0x444, 0x444,
-+ 0x44, 0x444, 0x444, 0x444, 0x444, 0x444, 0x554, 0x444,
-+ 0x444, 0x444, 0x444, 0x554, 0x444, 0x444, 0x554, 0x444,
-+ 0x444, 0x45, 0x4444, 0x4444, 0x4444, 0x4444, 0x44, 0x444,
-+ 0x444, 0x44, 0x44, 0x44, 0x444, 0x5545, 0x444, 0x4444,
-+ 0x4444, 0x4444, 0x4444, 0x444, 0x444, 0x444, 0x444, 0x444,
-+ 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x4444, 0x4444,
-+ 0x4444, 0x4444, 0x58, 0x57, 0x85, 0x85, 0x87, 0x85,
-+ 0x85, 0x84, 0x84, 0x84, 0x84, 0x75, 0x75, 0x78,
-+ 0x75, 0x75, 0x74, 0x74, 0x74, 0x74, 0x58, 0x57,
-+ 0x48, 0x47, 0x48, 0x47, 0x484, 0x884, 0x884, 0x884,
-+ 0x884, 0x48, 0x48, 0x777, 0x474, 0x774, 0x774, 0x774,
-+ 0x774, 0x777, 0x777, 0x77, 0x7777, 0x7777, 0x47777, 0x7777,
-+ 0x7777, 0x47, 0x47, 0x777, 0x777, 0x777, 0x777, 0x4E4,
-+ 0x5E5, 0x4444, 0x4444, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455,
-+ 0x4455, 0x445, 0x445, 0x444, 0x444, 0x444, 0x444, 0x445,
-+ 0x445, 0x445, 0x445, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455,
-+ 0x4455, 0x444, 0x445, 0x4455, 0x4455, 0x445, 0x444, 0x444,
-+ 0x444, 0x444, 0x4444, 0x4444, 0x4444, 0x5555, 0x5555, 0x5555,
-+ 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555,
-+ 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x555, 0x555, 0x555,
-+ 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555,
-+ 0x555, 0x555, 0x555, 0x555, 0x555, 0x4444, 0x4444, 0x4444,
-+ 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444,
-+ 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x444, 0x444, 0x444,
-+ 0x444, 0x444, 0x444, 0x444, 0x444, 0x4444, 0x4444, 0x4444,
-+ 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444,
-+ 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x444, 0x444, 0x444,
-+ 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444,
-+ 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444,
-+ 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444,
-+ 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455,
-+ 0x445, 0x445, 0x445, 0x445, 0x445, 0x445, 0x445, 0x445,
-+ 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455,
-+ 0x445, 0x445, 0x445, 0x445, 0x445, 0x445, 0x445, 0x445,
-+ 0x444, 0x444, 0x444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444,
-+ 0x4444, 0x4444, 0x4444, 0x444, 0x444, 0x444, 0x444, 0x444,
-+ 0x444, 0x444, 0x444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444,
-+ 0x4444, 0x4444, 0x4444, 0x444, 0x4455, 0x4455, 0x4455, 0x4455,
-+ 0x4455, 0x4455, 0x4455, 0x4455, 0x445, 0x445, 0x445, 0x445,
-+ 0x445, 0x445, 0x445, 0x445, 0x4455, 0x4455, 0x4455, 0x4455,
-+ 0x4455, 0x4455, 0x4455, 0x4455, 0x444, 0x4444, 0x4444, 0x4444,
-+ 0x555, 0x555, 0x5555, 0x5555, 0x555, 0x555, 0x555, 0x555,
-+ 0x5555, 0x5555, 0x554, 0x554, 0x555, 0x555, 0x4455, 0x5555,
-+ 0x5555, 0x5555, 0x4455, 0x4455, 0x4455, 0x4455, 0x555, 0x555,
-+ 0x445, 0x444, 0x445, 0x444, 0x445, 0x445, 0x554, 0x554,
-+ 0x5555, 0x5555, 0x5555, 0x5555, 0x555, 0x555, 0x555, 0x555,
-+ 0x4555, 0x455, 0x454, 0x5555, 0x555, 0x4444, 0x4444, 0x4444,
-+ 0x4444, 0x4444, 0x454, 0x454, 0x454, 0x454, 0x4444, 0x4444,
-+ 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444,
-+ 0x4444, 0x445, 0x4455, 0x445, 0x4455, 0x5555, 0x5555, 0x555,
-+ 0x555, 0x5555, 0x5555, 0x555, 0x555, 0x4444, 0x4444, 0x4444,
-+ 0x5555, 0x5555, 0x555, 0x4455, 0x4455, 0x445, 0x445, 0x5555,
-+ 0x5555, 0x555, 0x555, 0x555, 0x555, 0x4444, 0x455, 0x4555,
-+ 0x4555, 0x4555, 0x4555, 0x4555, 0x444, 0x4444, 0x4444, 0x4444,
-+ 0x4444, 0x444, 0x4444, 0x455, 0x455, 0x455, 0x4555, 0x4555,
-+ 0x4555, 0x4555, 0x4555, 0x444, 0x4444, 0x4444, 0x4444, 0x4444,
-+ 0x444, 0x455, 0x455, 0x455, 0x4555, 0x4555, 0x4555, 0x4555,
-+ 0x455, 0x455, 0x444, 0x4444, 0x4444, 0x4444, 0x4444, 0x444,
-+ 0x444, 0x454, 0x455, 0x455, 0x455, 0x4555, 0x4555, 0x4555,
-+ 0x4555, 0x4555, 0x444, 0x4444, 0x4444, 0x4444, 0x4444, 0x444,
-+ 0x454, 0x455, 0x455, 0x44, 0x55, 0x4555, 0x44, 0x54,
-+ 0x44, 0x54, 0x44, 0x44, 0x54, 0x444, 0x444, 0x44,
-+ 0x54, 0x44, 0x54, 0x55, 0x4444, 0x544, 0x4455, 0x555,
-+ 0x44444, 0x5444, 0x44555, 0x5555, 0x55, 0x555, 0x455, 0x4555,
-+ 0x4555, 0x4555, 0x4555, 0x4555, 0x444, 0x4444, 0x4444, 0x4444,
-+ 0x4444, 0x455, 0x455, 0x455, 0x4555, 0x4555, 0x4555, 0x4555,
-+ 0x4555, 0x444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x455,
-+ 0x455, 0x455, 0x4555, 0x4555, 0x4555, 0x4555, 0x4555, 0x444,
-+ 0x4444, 0x4444, 0x4444, 0x4444, 0x455, 0x455, 0x445, 0x554,
-+ 0x444, 0x444, 0x555, 0x555, 0x555, 0x555, 0x44E4, 0x44,
-+ 0x44, 0x44444, 0x44444, 0x44444, 0x44444, 0x444, 0x444, 0x444,
-+ 0x444, 0x4555, 0x4555, 0x455, 0x455, 0x4555, 0x54, 0x54,
-+ 0x54, 0x55, 0x54, 0x55, 0x54, 0x55, 0x54, 0x55,
-+ 0x44, 0x45, 0x4555, 0x4555, 0x45, 0x45, 0x54, 0x555,
-+ 0x54, 0x555, 0x45, 0x45, 0x4444, 0x4444, 0x4444, 0x4444,
-+ 0x4444, 0x444, 0x454, 0x54, 0x4444, 0x544, 0x4455, 0x555,
-+ 0x444, 0x444, 0x444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444,
-+ 0x444, 0x55E4, 0x4444, 0x4444, 0x4444, 0x4455, 0x44555, 0x555,
-+ 0x555, 0x555, 0x555, 0x555, 0x555, 0x454, 0x454, 0x54,
-+ 0x455, 0x455, 0x4555, 0x4555, 0x4555, 0x4555, 0x4555, 0x444,
-+ 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x45, 0x555, 0x555,
-+ 0x44, 0x44C4, 0x44D4, 0x4D4C, (1U<<31) | 2855, 0x4D4C, (1U<<31) | 2855, 0x44C,
-+ 0x44D, (1U<<31) | 131, (1U<<31) | 138, (1U<<31) | 131, (1U<<31) | 138, (1U<<31) | 133, (1U<<31) | 140, (1U<<31) | 131,
-+ (1U<<31) | 138, (1U<<31) | 131, (1U<<31) | 138, (1U<<31) | 1356, (1U<<31) | 1364, (1U<<31) | 131, (1U<<31) | 138, 0x4C4C4C,
-+ 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C,
-+ 0x4D4D, 0x4C4C, 0x4D4D, 0x4C4C, 0x4D4D, 0x4C4C, 0x4D4D, 0x4C4C4C,
-+ 0x4D4D4D, 0x4D4D4D, (1U<<31) | 2860, (1U<<31) | 2749, (1U<<31) | 2809, (1U<<31) | 2749, (1U<<31) | 2809, 0x4C4C4C,
-+ 0x4D4D4D, 0x4D4D4D, (1U<<31) | 2860, (1U<<31) | 2749, (1U<<31) | 2809, (1U<<31) | 2749, (1U<<31) | 2809, 0x4C4C4C,
-+ 0x4D4D4D, 0x4D4D4D, (1U<<31) | 2860, 0x4C4C4D, (1U<<31) | 2829, 0x4C4C4D, (1U<<31) | 2829, 0x4C4C4C,
-+ 0x4D4D4D, 0x4D4D4D, (1U<<31) | 2860, 0x4C4C4C, 0x4D4D4D, 0x4D4D4D, (1U<<31) | 2860, 0x4C4C4D,
-+ (1U<<31) | 2829, 0x4C4C4C, 0x4D4D4D, 0x4D4D4D, (1U<<31) | 2860, (1U<<31) | 2749, (1U<<31) | 2809, (1U<<31) | 2749,
-+ (1U<<31) | 2809, 0x4C4C4C, 0x4D4D4D, 0x4D4D4D, (1U<<31) | 2860, 0x44C4C4C, 0x44D4D4D, 0x44C4C4C,
-+ 0x44D4D4D, 0x4C4C4C, 0x4D4D4D, (1U<<31) | 1354, (1U<<31) | 1362, (1U<<31) | 1352, (1U<<31) | 1360, (1U<<31) | 2317,
-+ (1U<<31) | 2355, (1U<<31) | 2315, (1U<<31) | 2353, 0x44C4C, 0x44D4D, 0x4C4C4C, 0x4D4D4D, 0x44C4C,
-+ 0x44D4D, 0x44C4C4C, 0x44D4D4D, 0x4C4C4C, 0x4D4D4D, 0x44C4C, 0x44D4D, 0x44C4C4C,
-+ 0x44D4D4D, 0x44C4C4C, 0x44D4D4D, 0x44C4C4C, 0x44D4D4D, 0x4C4C4C, 0x4D4D4D, 0x44C4C,
-+ 0x44D4D, 0x44C4C4C, 0x44D4D4D, 0x44C4C4C, 0x44D4D4D, 0x44C4C4C, 0x44D4D4D, 0x44C4C4C,
-+ 0x44D4D4D, 0x44C4C4C, 0x44D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C, 0x4D4D, 0x4D4D,
-+ (1U<<31) | 2862, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C,
-+ 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C,
-+ 0x4D4D4D, 0x4C4C, 0x4D4D, 0x4C4C, 0x4D4D, 0x4C4C4D, (1U<<31) | 2829, 0x4C,
-+ 0x4D, 0x4C4C, 0x4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C, 0x4D4D, 0x44C4C4D,
-+ (1U<<31) | 2373, 0x4C4C4C, 0x4D4D4D, 0x44C4C, 0x44D4D, 0x44C4C4C, 0x44D4D4D, 0x44D4D,
-+ (1U<<31) | 2399, 0x44D4D4D, (1U<<31) | 2397, 0x44C4C, 0x44D4D, 0x44C4C4C, 0x44D4D4D, 0x44D4D,
-+ (1U<<31) | 2399, 0x44D4D4D, (1U<<31) | 2397, 0x44D4C, (1U<<31) | 2391, 0x44D4C4C, (1U<<31) | 2389, 0x44C4C,
-+ 0x44D4D, 0x44C4C4C, 0x44D4D4D, 0x44D4C, (1U<<31) | 2391, 0x44D4C4C, (1U<<31) | 2389, 0x44C4C,
-+ 0x44D4D, 0x44C4C4C, 0x44D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C4C, 0x4D4D4D4D, 0x44D4D,
-+ (1U<<31) | 2399, 0x44D4D4D, (1U<<31) | 2397, (1U<<31) | 2742, (1U<<31) | 2802, (1U<<31) | 2740, (1U<<31) | 2800, (1U<<31) | 2740,
-+ (1U<<31) | 2800, (1U<<31) | 2740, (1U<<31) | 2800, (1U<<31) | 2742, (1U<<31) | 2802, (1U<<31) | 2740, (1U<<31) | 2800, (1U<<31) | 2740,
-+ (1U<<31) | 2800, (1U<<31) | 2740, (1U<<31) | 2800, (1U<<31) | 2742, (1U<<31) | 2802, (1U<<31) | 2740, (1U<<31) | 2800, (1U<<31) | 2740,
-+ (1U<<31) | 2800, (1U<<31) | 2740, (1U<<31) | 2800, (1U<<31) | 2742, (1U<<31) | 2802, (1U<<31) | 2740, (1U<<31) | 2800, (1U<<31) | 2740,
-+ (1U<<31) | 2800, (1U<<31) | 2740, (1U<<31) | 2800, (1U<<31) | 2742, (1U<<31) | 2802, (1U<<31) | 2740, (1U<<31) | 2800, (1U<<31) | 2740,
-+ (1U<<31) | 2800, (1U<<31) | 2740, (1U<<31) | 2800, (1U<<31) | 2742, (1U<<31) | 2802, (1U<<31) | 2740, (1U<<31) | 2800, (1U<<31) | 2740,
-+ (1U<<31) | 2800, (1U<<31) | 2740, (1U<<31) | 2800, (1U<<31) | 2742, (1U<<31) | 2802, (1U<<31) | 2740, (1U<<31) | 2800, (1U<<31) | 2740,
-+ (1U<<31) | 2800, (1U<<31) | 2740, (1U<<31) | 2800, (1U<<31) | 2742, (1U<<31) | 2802, (1U<<31) | 2740, (1U<<31) | 2800, (1U<<31) | 2740,
-+ (1U<<31) | 2800, (1U<<31) | 2740, (1U<<31) | 2800, (1U<<31) | 2742, (1U<<31) | 2802, (1U<<31) | 2740, (1U<<31) | 2800, (1U<<31) | 2740,
-+ (1U<<31) | 2800, (1U<<31) | 2740, (1U<<31) | 2800, 0x44C4C, 0x44D4D, 0x44C4C4C, 0x44D4D4D, 0x44C4C4C,
-+ 0x44D4D4D, 0x44C4C, 0x44D4D, 0x4C4C4C, 0x4D4D4D, 0x44C4C, 0x44D4D, 0x4C4C4C,
-+ 0x4D4D4D, 0x454C4C, 0x454D4D, 0x454C4C4C, 0x454D4D4D, 0x454D4D, (1U<<31) | 2450, 0x454D4D4D,
-+ (1U<<31) | 2448, 0x44C4C4C, 0x44D4D4D, (1U<<31) | 2333, (1U<<31) | 2361, 0x44C4C4D, (1U<<31) | 2373, (1U<<31) | 2343,
-+ (1U<<31) | 2371, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C,
-+ 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C,
-+ 0x4D4D4D, 0x44D4D, (1U<<31) | 2399, 0x44D4D4D, (1U<<31) | 2397, 0x4D4D4D, (1U<<31) | 2860, 0x4D4D4D,
-+ (1U<<31) | 2860, 0x44D4D, (1U<<31) | 2399, 0x44D4D4D, (1U<<31) | 2397, 0x44C4D, (1U<<31) | 2383, 0x44C4D4D,
-+ (1U<<31) | 2381, 0x4C4C4D, (1U<<31) | 2829, 0x4C4C4D4D, (1U<<31) | 2827, 0x4C4C4D, (1U<<31) | 2829, 0x4C4C4D4D,
-+ (1U<<31) | 2827, 0x4C4C4C, 0x4D4D4D, 0x44C4D, (1U<<31) | 2383, 0x44C4D4D, (1U<<31) | 2381, 0x44C4C,
-+ 0x44D4D, 0x44C4C, 0x44D4D, 0x4C4C4D, (1U<<31) | 2829, 0x4C4C4D4D, (1U<<31) | 2827, 0x4C4C4D,
-+ (1U<<31) | 2829, 0x4C4C4D4D, (1U<<31) | 2827, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C4C,
-+ 0x4D4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C4C, 0x4D4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C4C,
-+ 0x4D4D4D4D, 0x44C4C, 0x44D4D, 0x44C4C4C, 0x44D4D4D, 0x4C4C4C, 0x4D4D4D, 0x44C4C,
-+ 0x44D4D, 0x44C4C4C, 0x44D4D4D, 0x44C4C, 0x44D4D, 0x44C4C4C, 0x44D4D4D, 0x4C4C4C,
-+ 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C4C, 0x4D4D4D4D, 0x4C4C4C4C, 0x4D4D4D4D, 0x44C4D,
-+ (1U<<31) | 2383, 0x44C4D4D, (1U<<31) | 2381, 0x4C4C4D, (1U<<31) | 2829, 0x4C4C4D4D, (1U<<31) | 2827, 0x44C4D,
-+ (1U<<31) | 2383, 0x44C4D4D, (1U<<31) | 2381, 0x4C4C4D, (1U<<31) | 2829, 0x4C4C4D4D, (1U<<31) | 2827, (1U<<31) | 2749,
-+ (1U<<31) | 2809, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C,
-+ 0x4D4D, 0x4C4C, 0x4D4D, 0x4C4C, 0x4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C,
-+ 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C,
-+ 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C,
-+ 0x4D4D, 0x4C4C4C, 0x4D4D4D, 0x44C4C, 0x44D4D, 0x44C4C4C, 0x44D4D4D, 0x444D4D,
-+ (1U<<31) | 2122, 0x444D4D4D, (1U<<31) | 2120, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C4C, 0x4D4D4D4D, 0x4C4C4C,
-+ 0x4D4D4D, 0x4C4C4C4C, 0x4D4D4D4D, 0x44C4C, 0x44D4D, 0x44C4C4C, 0x44D4D4D, 0x444D4D,
-+ (1U<<31) | 2122, 0x444D4D4D, (1U<<31) | 2120, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C4C, 0x4D4D4D4D, 0x44C4C,
-+ 0x44D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C,
-+ 0x4D4D4D, 0x444D4D, (1U<<31) | 2122, 0x444D4D4D, (1U<<31) | 2120, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C,
-+ 0x4D4D4D, 0x4C4D, (1U<<31) | 2838, 0x4C4D, (1U<<31) | 2838, 0x4C4C4C, 0x4D4D4D, 0x4C4C,
-+ 0x4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C, 0x4D4D, 0x4C4C4C, 0x4D4D4D, 0x44C4C4D,
-+ (1U<<31) | 2373, 0x4C4C4D, (1U<<31) | 2829, 0x4C4C4D, (1U<<31) | 2829, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C,
-+ 0x4D4D4D, 0x4D4D4D, (1U<<31) | 2860, (1U<<31) | 2749, (1U<<31) | 2809, (1U<<31) | 2749, (1U<<31) | 2809, 0x4C4C4C,
-+ 0x4D4D4D, 0x4D4D4D, (1U<<31) | 2860, (1U<<31) | 2749, (1U<<31) | 2809, (1U<<31) | 2749, (1U<<31) | 2809, 0x4C4C4C,
-+ 0x4D4D4D, 0x4D4D4D, (1U<<31) | 2860, 0x4C4C4D, (1U<<31) | 2829, 0x4C4C4D, (1U<<31) | 2829, 0x4C4C4C,
-+ 0x4D4D4D, 0x4D4D4D, (1U<<31) | 2860, 0x4C4C4C, 0x4D4D4D, 0x4D4D4D, (1U<<31) | 2860, 0x4C4C4D,
-+ (1U<<31) | 2829, 0x4C4C4C, 0x4D4D4D, 0x4D4D4D, (1U<<31) | 2860, (1U<<31) | 2749, (1U<<31) | 2809, (1U<<31) | 2749,
-+ (1U<<31) | 2809, 0x4C4C4C, 0x4D4D4D, 0x4D4D4D, (1U<<31) | 2860, (1U<<31) | 2758, (1U<<31) | 2818, 0x44D4D,
-+ (1U<<31) | 2399, 0x44D4D4D, (1U<<31) | 2397, 0x44D4D, (1U<<31) | 2399, 0x44D4D4D, (1U<<31) | 2397, 0x44D4D,
-+ (1U<<31) | 2399, 0x44D4D4D, (1U<<31) | 2397, 0x4C4D, (1U<<31) | 2838, 0x4C4D, (1U<<31) | 2838, 0x4C4D4D,
-+ (1U<<31) | 2836, 0x4C4D4D, (1U<<31) | 2836, 0x4C4D, (1U<<31) | 2838, 0x4C4D, (1U<<31) | 2838, 0x4C4C4C,
-+ 0x4D4D4D, 0x4C4D, (1U<<31) | 2838, 0x4C4D, (1U<<31) | 2838, 0x42E2E2E, 0x42E2E2E, 0x42E2E2E,
-+ 0x42E2E2E, 0x42E2E2E, 0x42E2E2E, 0x442E2E, 0x452E2E, 0x442E2E, 0x442E2E, 0x442E2E,
-+ 0x442E2E2E, 0x442E2E2E, 0x442E2E2E, 0x442E2E2E, 0x442E2E2E, 0x442E2E2E, 0x4442E2E, 0x4452E2E,
-+ 0x4442E2E, 0x4442E2E, 0x4442E2E, 0x4B4B4B, 0x2E0, 0x3939, 0x2A2A, 0x44,
-+ 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x393939, 0x393939, 0x444, 0x393939,
-+ 0x393939, 0x444, 0x444, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C,
-+ 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x444,
-+ 0x393939, 0x2A2A2A, 0x393939, 0x2A2A2A, 0x2A2A2A, 0x2A2A2A, 0x2C2C2C, 0x595959,
-+ 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A, 0x444, 0x2C2C2C,
-+ 0x42C2C, 0x4444, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959,
-+ 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959,
-+ 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959,
-+ 0x3B3B3B, 0x4A4A4A, 0x4444, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C,
-+ 0x45959, 0x43B3B, 0x44A4A, 0x2C2C2C2C, 0x59595959, 0x3B3B3B3B, 0x4A4A4A4A, 0x42C2C2C,
-+ 0x4595959, 0x43B3B3B, 0x44A4A4A, 0x2C2C2C2C, 0x59595959, 0x3B3B3B3B, 0x4A4A4A4A, 0x42C2C2C,
-+ 0x4595959, 0x43B3B3B, 0x44A4A4A, 0x44, 0x2C2C2C2C, 0x42C2C2C, 0x2C2C2C2C, 0x42C2C2C,
-+ 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A,
-+ 0x2C4, 0x594, 0x3B4, 0x2C4, 0x4A4, 0x4, 0x2C2C2C2C, 0x42C2C2C,
-+ 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A,
-+ 0x2C4, 0x594, 0x3B4, 0x2C4, 0x4A4, 0x2C2C2C, 0x595959, 0x3B3B3B,
-+ 0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A, 0x44, 0x2C2C2C, 0x595959,
-+ 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959,
-+ 0x43B3B, 0x44A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A, 0x2C2C2C, 0x595959,
-+ 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959,
-+ 0x43B3B, 0x44A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A, 0x39390, 0x39390,
-+ 0x39390, 0x2A2A4, 0x2A2A4, 0x2A2A4, 0x2A2A4, 0x2A2A4, 0x2A2A4, 0x2A2A0,
-+ 0x2A2A0, 0x2A2A0, 0x42C4, 0x4595, 0x43B4, 0x44A4, 0x42C4, 0x4595,
-+ 0x43B4, 0x44A4, 0x440, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C,
-+ 0x595959, 0x3B3B3B, 0x4A4A4A, 0x4555, 0x4A4A59, 0x2C2C3B, 0x3B3B4A, 0x4A4A59,
-+ 0x2C2C3B, 0x3B3B4A, 0x393955, 0x4A4A5959, 0x2C2C3B3B, 0x3B3B4A4A, 0x4A4A5959, 0x2C2C3B3B,
-+ 0x3B3B4A4A, 0x393955, 0x4455, 0x393955, 0x393955, 0x2A2A55, 0x2A2A55, 0x393955,
-+ 0x393955, 0x393955, 0x4455, 0x393955, 0x393955, 0x2A2A55, 0x2A2A55, 0x4A4A5959,
-+ 0x2C2C3B3B, 0x3B3B4A4A, 0x4A4A5959, 0x2C2C3B3B, 0x3B3B4A4A, 0x393955, 0x454, 0x454,
-+ 0x454, 0x454, 0x454, 0x454, 0x898989, 0x7A7A7A, 0x898959, 0x7A7A4A,
-+ 0x898959, 0x7A7A4A, 0x8959, 0x7A4A, 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A,
-+ 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A,
-+ 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A, 0x898989, 0x7A7A7A,
-+ 0x7A7A6B, 0x89897A, 0x598989, 0x4A7A7A, 0x7A89, 0x6B7A, 0x7A89, 0x6B7A,
-+ 0x5989, 0x4A7A, 0x5989, 0x4A7A, 0x4A89, 0x3B7A, 0x4A89, 0x3B7A,
-+ 0x42C, 0x559, 0x43B, 0x44A, 0x8989, 0x7A7A, (1U<<31) | 3462, 0x7A7A7A7A,
-+ 0x898989, 0x7A7A7A, 0x898989, 0x7A7A7A, 0x898989, 0x7A7A7A, 0x898989, 0x7A7A7A,
-+ (1U<<31) | 3462, 0x7A7A7A7A, 0x898989, 0x7A7A7A, 0x8989, 0x7A7A, 0x8989, 0x7A7A,
-+ 0x8989, 0x7A7A, 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A,
-+ 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A, 0x8989, 0x7A7A,
-+ 0x898989, 0x7A7A7A, 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A,
-+ 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A, 0x8959, 0x7A4A, 0x8959, 0x7A4A,
-+ 0x7A7A3B, 0x89894A, 0x8959, 0x7A4A, 0x8959, 0x7A4A, 0x4A4A59, 0x2C2C3B,
-+ 0x3B3B4A, 0x4A4A59, 0x2C2C3B, 0x3B3B4A, 0x4A4A59, 0x2C2C3B, 0x3B3B4A, 0x4A4A59,
-+ 0x2C2C3B, 0x3B3B4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959,
-+ 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959,
-+ 0x3B3B3B, 0x4A4A4A, 0x442C2C, 0x545959, 0x443B3B, 0x444A4A, 0x444, 0x2C42C2C,
-+ 0x5945959, 0x3B43B3B, 0x4A44A4A, 0x42E4, 0x42E2C, 0x42E59, 0x42E3B, 0x42E4A,
-+ 0x42C, 0x459, 0x43B, 0x44A, 0x42E4, 0x4444, 0x42E4, 0x4455,
-+ 0x3B3B3B3B, 0x4A4A4A4A, 0x3B3B3B3B, 0x4A4A4A4A, 0x4455, 0x2C2C2C2C, 0x59595959, 0x3B3B3B3B,
-+ 0x4A4A4A4A, 0x393955, 0x393955, 0x393955, 0x393955, 0x2C2C2C, 0x595959, 0x3B3B3B,
-+ 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B,
-+ 0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A, 0x42C2C, 0x45959, 0x43B3B,
-+ 0x44A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B,
-+ 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B,
-+ 0x44A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A, 0x2C2C2C, 0x595959, 0x3B3B3B,
-+ 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x444, 0x2C2C, 0x4455,
-+ 0x3B3B3B3B, 0x4A4A4A4A, 0x3B3B3B3B, 0x4A4A4A4A, 0x4455, 0x2C2C2C2C, 0x59595959, 0x3B3B3B3B,
-+ 0x4A4A4A4A, 0x455, 0x393939, 0x3B3B3B, 0x4A4A4A, 0x393939, 0x39394, 0x39394,
-+ 0x392A39, 0x392A39, 0x393939, 0x444, 0x393939, 0x444, 0x3B3B3B, 0x4A4A4A,
-+ 0x393955, 0x393955, 0x445, 0x445, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A,
-+ 0x2C2C, 0x5959, 0x3B3B, 0x4A4A, 0x2C2C, 0x5959, 0x3B3B, 0x4A4A,
-+ 0x2C2C2C, 0x42C2C, 0x2C2C2C, 0x42C2C, 0x393939, 0x2C2C2C, 0x595959, 0x3B3B3B,
-+ 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C, 0x5959, 0x3B3B,
-+ 0x4A4A, 0x393939, 0x2A2A2A, 0x394, 0x394, 0x2A39, 0x2A39, 0x2A39,
-+ 0x2A39, 0x2A39, 0x2A39, 0x2A39, 0x2A39, 0x39392A, 0x44439, 0x44439,
-+ 0x4439, 0x39392A, 0x4439, 0x39392A, 0x4444, 0x2A4, 0x44, 0x439,
-+ 0x42A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A, 0x42C2C, 0x45959, 0x43B3B,
-+ 0x44A4A, 0x42C2C, 0x43B3B, 0x44A4A, 0x455, 0x43939, 0x42A2A, 0x43939,
-+ 0x444, 0x43939, 0x42A2A, 0x43939, 0x42A2A, 0x444, 0x43939, 0x42A2A,
-+ 0x42C2C2C, 0x4595959, 0x43B3B3B, 0x44A4A4A, 0x42C2C2C, 0x4595959, 0x43B3B3B, 0x44A4A4A,
-+ 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A,
-+ 0x42C2C, 0x45959, 0x43B3B, 0x44A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A,
-+ 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A,
-+ 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A,
-+ 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A,
-+ 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A,
-+ 0x42E2C0, 0x42E590, 0x42E3B0, 0x42E4A0, 0x393939, 0x393939, 0x444, 0x393939,
-+ 0x393939, 0x444, 0x444, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C,
-+ 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C,
-+ 0x595959, 0x3B3B3B, 0x4A4A4A, 0x393939, 0x2A2A2A, 0x393939, 0x2A2A2A, 0x2A2A2A,
-+ 0x2A2A2A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B,
-+ 0x44A4A, 0x2C2C2C2C, 0x59595959, 0x3B3B3B3B, 0x4A4A4A4A, 0x440, 0x2C2C2C, 0x42C2C,
-+ 0x44, 0x55, 0x888, 0x777, 0x777, 0x888, 0x777, 0x777,
-+ 0x888, 0x777, 0x777, 0x888, 0x777, 0x777, 0x2FCF2F, 0x2FCF2F,
-+ 0x1FCF1F, 0x1FCF1F, 0x1FCF1F, 0x1FCF1F, 0x1F1FCF1F, 0x1F1FCF1F, 0x1FCF1F, 0x1FCF1F,
-+ 0x1FCF1F, 0x1FCF1F, 0x1FCF1F, 0x1FCF1F, 0x74F7, 0x44F4, 0x44F4, 0x1FCF1F,
-+ 0x1FCF1F, 0x1FCF1F, 0x1FCF1F, 0x1FCF1F, 0x1FCF1F, 0x1FCF1F, 0x1FCF1F, 0x40,
-+ 0x0, 0x44, 0x44, 0x44, 0x85, 0x74, 0x47, 0x58,
-+ 0x44, 0x55, 0x88, 0x77, 0x77, 0x44, 0x54, 0x4F0,
-+ 0x4F0, 0x77, 0x77, 0x87, 0x87, 0x87, 0x87, 0x87,
-+ 0x87, 0x87, 0x87, 0x84, 0x84, 0x84, 0x84, 0x84,
-+ 0x84, 0x85, 0x85, 0x85, 0x85, 0x84, 0x84, 0x84,
-+ 0x84, 0x85, 0x85, 0x85, 0x85, 0x777, 0x777, 0x888,
-+ 0x777, 0x777, 0x888, 0x777, 0x777, 0x888, 0x777, 0x777,
-+ 0x888, 0x777, 0x777, 0x88, 0x77, 0x77, 0x73, 0x73,
-+ 0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74,
-+ 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75,
-+ 0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74,
-+ 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75,
-+ 0x88, 0x77, 0x77, 0x88, 0x77, 0x77, 0x8888, 0x7777,
-+ 0x7777, 0x8888, 0x7777, 0x7777, 0x8888, 0x7777, 0x7777, 0x8888,
-+ 0x7777, 0x7777, 0x888, 0x777, 0x777, 0x888, 0x777, 0x777,
-+ 0x37, 0x48, 0x48, 0x48, 0x48, 0x47, 0x47, 0x47,
-+ 0x47, 0x2E1, 0x2E1, 0x2E1, 0x2E1, 0x51, 0x51, 0x51,
-+ 0x4CF2F, 0x4CF1F, 0x4CF4F, 0x4CF2F, 0x4CF1F, 0x4CF4F, 0x88, 0x77,
-+ 0x77, 0x58, 0x58, 0x58, 0x58, 0x57, 0x57, 0x57,
-+ 0x57, 0x448, 0x444, 0x555, 0x444, 0x555, 0x0, 0x0,
-+ 0x0, 0x444, 0x555, 0x444, 0x555, 0x88, 0x77, 0x33,
-+ 0x44, 0x55, 0xCF4F, 0x888, 0x777, 0x777, 0x888, 0x777,
-+ 0x777, 0x888, 0x777, 0x777, 0x888, 0x777, 0x777, 0x444,
-+ 0x444, 0x444, 0x555, 0x444, 0x555, 0x44, 0x54, 0x4444,
-+ 0xCF4F, 0xCF4F, 0xCF4F, 0xCF4F, 0xCF4F, 0xCF4F, 0xCF4F, 0xCF4F,
-+ 0xCF4F, 0x88, 0x88, 0x77, 0x77, 0x88, 0x77, 0x77,
-+ 0x88, 0x77, 0x77, 0x88, 0x77, 0x77, 0x4, 0x5,
-+ 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4,
-+ 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4,
-+ 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4,
-+ 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4,
-+ 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4,
-+ 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4,
-+ 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4,
-+ 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4,
-+ 0x4F4, 0x444, 0x455, 0x455, 0x88, 0x77, 0x77, 0x88,
-+ 0x77, 0x77, 0x4444, 0x4444, 0x88, 0x77, 0x77, 0x4477,
-+ 0x4444, 0x4477, 0x4444, 0x4477, 0x4444, 0x4477, 0x4444, 0x77,
-+ 0x77, 0x77, 0x77, 0x77, 0x88, 0x77, 0x77, 0x88,
-+ 0x77, 0x77, 0x88, 0x77, 0x77, 0x88, 0x77, 0x77,
-+ 0x4453, 0x4453, 0x4453, 0x4454, 0x4454, 0x4454, 0x4455, 0x4455,
-+ 0x4455, 0x4453, 0x4453, 0x4453, (1U<<31) | 2138, (1U<<31) | 2138, (1U<<31) | 2138, (1U<<31) | 2154,
-+ (1U<<31) | 2154, (1U<<31) | 2154, (1U<<31) | 2171, (1U<<31) | 2171, (1U<<31) | 2171, (1U<<31) | 2138, (1U<<31) | 2138, (1U<<31) | 2138,
-+ (1U<<31) | 2129, (1U<<31) | 2129, (1U<<31) | 2129, (1U<<31) | 2145, (1U<<31) | 2145, (1U<<31) | 2145, (1U<<31) | 2129, (1U<<31) | 2129,
-+ (1U<<31) | 2129, 0x453, 0x453, 0x453, 0x454, 0x454, 0x454, 0x455,
-+ 0x455, 0x455, 0x453, 0x453, 0x453, (1U<<31) | 2428, (1U<<31) | 2428, (1U<<31) | 2428,
-+ (1U<<31) | 2442, (1U<<31) | 2442, (1U<<31) | 2442, (1U<<31) | 2466, (1U<<31) | 2466, (1U<<31) | 2466, (1U<<31) | 2428, (1U<<31) | 2428,
-+ (1U<<31) | 2428, (1U<<31) | 2420, (1U<<31) | 2420, (1U<<31) | 2420, (1U<<31) | 2434, (1U<<31) | 2434, (1U<<31) | 2434, (1U<<31) | 2420,
-+ (1U<<31) | 2420, (1U<<31) | 2420, 0x44453, 0x44453, 0x44453, 0x44454, 0x44454, 0x44454,
-+ 0x44455, 0x44455, 0x44455, 0x44453, 0x44453, 0x44453, (1U<<31) | 2054, (1U<<31) | 2054,
-+ (1U<<31) | 2054, (1U<<31) | 2072, (1U<<31) | 2072, (1U<<31) | 2072, (1U<<31) | 2091, (1U<<31) | 2091, (1U<<31) | 2091, (1U<<31) | 2054,
-+ (1U<<31) | 2054, (1U<<31) | 2054, (1U<<31) | 2044, (1U<<31) | 2044, (1U<<31) | 2044, (1U<<31) | 2062, (1U<<31) | 2062, (1U<<31) | 2062,
-+ (1U<<31) | 2044, (1U<<31) | 2044, (1U<<31) | 2044, 0x4453, 0x4453, 0x4453, 0x4454, 0x4454,
-+ 0x4454, 0x4455, 0x4455, 0x4455, 0x4453, 0x4453, 0x4453, (1U<<31) | 2138,
-+ (1U<<31) | 2138, (1U<<31) | 2138, (1U<<31) | 2154, (1U<<31) | 2154, (1U<<31) | 2154, (1U<<31) | 2171, (1U<<31) | 2171, (1U<<31) | 2171,
-+ (1U<<31) | 2138, (1U<<31) | 2138, (1U<<31) | 2138, (1U<<31) | 2129, (1U<<31) | 2129, (1U<<31) | 2129, (1U<<31) | 2145, (1U<<31) | 2145,
-+ (1U<<31) | 2145, (1U<<31) | 2129, (1U<<31) | 2129, (1U<<31) | 2129, 0x44453, 0x44453, 0x44453, 0x44454,
-+ 0x44454, 0x44454, 0x44455, 0x44455, 0x44455, 0x44453, 0x44453, 0x44453,
-+ (1U<<31) | 2054, (1U<<31) | 2054, (1U<<31) | 2054, (1U<<31) | 2072, (1U<<31) | 2072, (1U<<31) | 2072, (1U<<31) | 2091, (1U<<31) | 2091,
-+ (1U<<31) | 2091, (1U<<31) | 2054, (1U<<31) | 2054, (1U<<31) | 2054, (1U<<31) | 2044, (1U<<31) | 2044, (1U<<31) | 2044, (1U<<31) | 2062,
-+ (1U<<31) | 2062, (1U<<31) | 2062, (1U<<31) | 2044, (1U<<31) | 2044, (1U<<31) | 2044, 0x54, 0x54, 0x54,
-+ 0x54, 0x54, 0x54, 0x34450, 0x34450, 0x34450, 0x44450, 0x44450,
-+ 0x44450, 0x54450, 0x54450, 0x54450, 0x34450, 0x34450, 0x34450, 0x334450,
-+ 0x334450, 0x334450, 0x444450, 0x444450, 0x444450, 0x554450, 0x554450, 0x554450,
-+ 0x334450, 0x334450, 0x334450, 0x33334450, 0x33334450, 0x33334450, 0x44444450, 0x44444450,
-+ 0x44444450, 0x33334450, 0x33334450, 0x33334450, 0x3450, 0x3450, 0x3450, 0x4450,
-+ 0x4450, 0x4450, 0x5450, 0x5450, 0x5450, 0x3450, 0x3450, 0x3450,
-+ 0x33450, 0x33450, 0x33450, 0x44450, 0x44450, 0x44450, 0x55450, 0x55450,
-+ 0x55450, 0x33450, 0x33450, 0x33450, 0x3333450, 0x3333450, 0x3333450, 0x4444450,
-+ 0x4444450, 0x4444450, 0x3333450, 0x3333450, 0x3333450, 0x344450, 0x344450, 0x344450,
-+ 0x444450, 0x444450, 0x444450, 0x544450, 0x544450, 0x544450, 0x344450, 0x344450,
-+ 0x344450, 0x3344450, 0x3344450, 0x3344450, 0x4444450, 0x4444450, 0x4444450, 0x5544450,
-+ 0x5544450, 0x5544450, 0x3344450, 0x3344450, 0x3344450, (1U<<31) | 1058, (1U<<31) | 1058, (1U<<31) | 1058,
-+ (1U<<31) | 2027, (1U<<31) | 2027, (1U<<31) | 2027, (1U<<31) | 1058, (1U<<31) | 1058, (1U<<31) | 1058, 0x34450, 0x34450,
-+ 0x34450, 0x44450, 0x44450, 0x44450, 0x54450, 0x54450, 0x54450, 0x34450,
-+ 0x34450, 0x34450, 0x334450, 0x334450, 0x334450, 0x444450, 0x444450, 0x444450,
-+ 0x554450, 0x554450, 0x554450, 0x334450, 0x334450, 0x334450, 0x33334450, 0x33334450,
-+ 0x33334450, 0x44444450, 0x44444450, 0x44444450, 0x33334450, 0x33334450, 0x33334450, 0x344450,
-+ 0x344450, 0x344450, 0x444450, 0x444450, 0x444450, 0x544450, 0x544450, 0x544450,
-+ 0x344450, 0x344450, 0x344450, 0x3344450, 0x3344450, 0x3344450, 0x4444450, 0x4444450,
-+ 0x4444450, 0x5544450, 0x5544450, 0x5544450, 0x3344450, 0x3344450, 0x3344450, (1U<<31) | 1058,
-+ (1U<<31) | 1058, (1U<<31) | 1058, (1U<<31) | 2027, (1U<<31) | 2027, (1U<<31) | 2027, (1U<<31) | 1058, (1U<<31) | 1058, (1U<<31) | 1058,
-+ 0x34450, 0x44450, 0x34450, 0x334450, 0x444450, 0x334450, 0x33334450, 0x44444450,
-+ 0x33334450, 0x3450, 0x4450, 0x3450, 0x33450, 0x44450, 0x33450, 0x3333450,
-+ 0x4444450, 0x3333450, 0x344450, 0x444450, 0x344450, 0x3344450, 0x4444450, 0x3344450,
-+ (1U<<31) | 1058, (1U<<31) | 2027, (1U<<31) | 1058, 0x34450, 0x44450, 0x34450, 0x334450, 0x444450,
-+ 0x334450, 0x33334450, 0x44444450, 0x33334450, 0x344450, 0x444450, 0x344450, 0x3344450,
-+ 0x4444450, 0x3344450, (1U<<31) | 1058, (1U<<31) | 2027, (1U<<31) | 1058, 0x55, (1U<<31) | 3110, (1U<<31) | 3098,
-+ (1U<<31) | 3098, (1U<<31) | 3028, (1U<<31) | 3017, (1U<<31) | 3017, (1U<<31) | 2954, (1U<<31) | 2178, (1U<<31) | 2944, (1U<<31) | 2161,
-+ (1U<<31) | 2944, (1U<<31) | 2161, (1U<<31) | 3154, (1U<<31) | 3143, (1U<<31) | 3143, (1U<<31) | 3068, (1U<<31) | 3058, (1U<<31) | 3058,
-+ (1U<<31) | 2990, (1U<<31) | 2472, (1U<<31) | 2981, (1U<<31) | 2457, (1U<<31) | 2981, (1U<<31) | 2457, (1U<<31) | 3300, (1U<<31) | 3285,
-+ (1U<<31) | 3285, (1U<<31) | 3110, (1U<<31) | 3098, (1U<<31) | 3098, (1U<<31) | 3028, (1U<<31) | 2099, (1U<<31) | 3017, (1U<<31) | 2080,
-+ (1U<<31) | 3017, (1U<<31) | 2080, (1U<<31) | 3356, (1U<<31) | 3342, (1U<<31) | 3342, (1U<<31) | 3154, (1U<<31) | 3143, (1U<<31) | 3143,
-+ (1U<<31) | 3068, (1U<<31) | 2178, (1U<<31) | 3058, (1U<<31) | 2161, (1U<<31) | 3058, (1U<<31) | 2161, (1U<<31) | 3416, (1U<<31) | 3399,
-+ (1U<<31) | 3399, (1U<<31) | 3248, (1U<<31) | 3236, (1U<<31) | 3236, (1U<<31) | 3154, (1U<<31) | 2099, (1U<<31) | 3143, (1U<<31) | 2080,
-+ (1U<<31) | 3143, (1U<<31) | 2080, (1U<<31) | 3200, (1U<<31) | 3187, (1U<<31) | 3187, (1U<<31) | 3110, (1U<<31) | 3098, (1U<<31) | 3098,
-+ (1U<<31) | 3248, (1U<<31) | 3236, (1U<<31) | 3236, (1U<<31) | 3154, (1U<<31) | 3143, (1U<<31) | 3143, (1U<<31) | 3122, (1U<<31) | 3087,
-+ (1U<<31) | 3087, (1U<<31) | 3039, (1U<<31) | 3007, (1U<<31) | 3007, (1U<<31) | 2964, (1U<<31) | 2188, (1U<<31) | 2935, (1U<<31) | 2145,
-+ (1U<<31) | 2935, (1U<<31) | 2145, (1U<<31) | 3165, (1U<<31) | 3133, (1U<<31) | 3133, (1U<<31) | 3078, (1U<<31) | 3049, (1U<<31) | 3049,
-+ (1U<<31) | 2999, (1U<<31) | 2481, (1U<<31) | 2973, (1U<<31) | 2434, (1U<<31) | 2973, (1U<<31) | 2434, (1U<<31) | 3315, (1U<<31) | 3271,
-+ (1U<<31) | 3271, (1U<<31) | 3122, (1U<<31) | 3087, (1U<<31) | 3087, (1U<<31) | 3039, (1U<<31) | 2110, (1U<<31) | 3007, (1U<<31) | 2062,
-+ (1U<<31) | 3007, (1U<<31) | 2062, (1U<<31) | 3370, (1U<<31) | 3329, (1U<<31) | 3329, (1U<<31) | 3165, (1U<<31) | 3133, (1U<<31) | 3133,
-+ (1U<<31) | 3078, (1U<<31) | 2188, (1U<<31) | 3049, (1U<<31) | 2145, (1U<<31) | 3049, (1U<<31) | 2145, (1U<<31) | 3433, (1U<<31) | 3383,
-+ (1U<<31) | 3383, (1U<<31) | 3260, (1U<<31) | 3225, (1U<<31) | 3225, (1U<<31) | 3165, (1U<<31) | 2110, (1U<<31) | 3133, (1U<<31) | 2062,
-+ (1U<<31) | 3133, (1U<<31) | 2062, (1U<<31) | 3213, (1U<<31) | 3175, (1U<<31) | 3175, (1U<<31) | 3122, (1U<<31) | 3087, (1U<<31) | 3087,
-+ (1U<<31) | 3260, (1U<<31) | 3225, (1U<<31) | 3225, (1U<<31) | 3165, (1U<<31) | 3133, (1U<<31) | 3133, (1U<<31) | 2850, 0x4F5,
-+ (1U<<31) | 3068, (1U<<31) | 3058, (1U<<31) | 3058, (1U<<31) | 3068, (1U<<31) | 3058, (1U<<31) | 3058, (1U<<31) | 3068, (1U<<31) | 3058,
-+ (1U<<31) | 3058, (1U<<31) | 3068, (1U<<31) | 3058, (1U<<31) | 3058, (1U<<31) | 3078, (1U<<31) | 3049, (1U<<31) | 3049, (1U<<31) | 3078,
-+ (1U<<31) | 3049, (1U<<31) | 3049, (1U<<31) | 3078, (1U<<31) | 3049, (1U<<31) | 3049, (1U<<31) | 3078, (1U<<31) | 3049, (1U<<31) | 3049,
-+ 0x88, 0x77, 0x77, 0x54, 0x54, 0x54, 0x54, 0x54,
-+ 0x54, 0x54, 0x54, 0x48, 0x48, 0x48, 0x48, 0x47,
-+ 0x47, 0x47, 0x47, 0x58, 0x58, 0x58, 0x58, 0x57,
-+ 0x57, 0x57, 0x57, 0x595959, 0x595959, 0x595959, 0x595959, 0x2C2C2C2C,
-+ 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x5959, 0x445959, 0x444A4A, 0x40,
-+ 0x0, 0x442E0, 0x442E0, 0x442E0, 0x442E0, 0x2E2C, 0x2E3B, 0x2E4A,
-+ 0x2E2C, 0x2E2C, 0x2E4A, 0x2E4A, 0x3B, 0x4A0, 0x2E2C0, 0x2E3B0,
-+ 0x2E4A0, 0x2E4A0, 0x2E4A0, 0x2C2C2C, 0x3B3B3B, 0x4A4A4A, (1U<<31) | 3722, 0x4A4A4A,
-+ (1U<<31) | 3720, (1U<<31) | 3720, 0x2C2C2C, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x3B3B3B, 0x4A4A4A,
-+ 0x2C2C2C, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x3B3B3B, 0x4A4A4A, 0x2C2C59, 0x44A7A,
-+ 0x44A7A, 0x2C4, 0x7A7A4A, 0x7A7A44, 0x7A7A4A, 0x7A7A44, 0x2C2C2C, 0x2C2C44,
-+ 0x595959, 0x595944, 0x3B3B3B, 0x3B3B44, 0x4A4A4A, 0x4A4A44, 0x7A7A4A, 0x7A7A44,
-+ 0x7A7A4A, 0x7A7A44, 0x2C2C2C, 0x2C2C44, 0x595959, 0x595944, 0x3B3B3B, 0x3B3B44,
-+ 0x4A4A4A, 0x4A4A44, 0x2C2C2C, 0x2C2C44, 0x595959, 0x595944, 0x3B3B3B, 0x3B3B44,
-+ 0x4A4A4A, 0x4A4A44, 0x2C2C2C, 0x2C2C44, 0x3B3B3B, 0x3B3B44, 0x4A4A4A, 0x4A4A44,
-+ 0x2C2C2C, 0x2C2C44, 0x3B3B3B, 0x3B3B44, 0x4A4A4A, 0x4A4A44, 0x47A4A, 0x47A4A,
-+ 0x2C4, 0x7A7A, 0x2C2C, 0x7A7A, 0x7A7A7A7A, 0x7A7A7A, 0x2C2C2C, 0x595959,
-+ 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x3B3B3B3B, 0x3B3B3B3B,
-+ 0x7A7A7A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B,
-+ 0x4A4A4A, 0x3B3B3B3B, 0x4A2C2C4A, 0x4A3B3B4A, 0x4A3B3B4A, 0x4A2C2C4A, 0x4A3B3B4A, 0x4A3B3B4A,
-+ 0x2C2C3B, 0x3B3B4A, 0x4A4A59, 0x2C2C3B, 0x3B3B4A, 0x4A4A59, 0x2C2C3B, 0x3B3B4A,
-+ 0x4A4A59, 0x2C2C3B, 0x3B3B4A, 0x4A4A59, 0x7A7A7A7A, 0x2C4A4A4A, 0x4A4A3B, 0x59594A,
-+ 0x59594A, 0x3B3B2C, 0x3B3B2C, 0x4A4A3B, 0x4A4A3B, 0x59594A, 0x3B3B2C, 0x4A4A3B,
-+ 0x5959, (1U<<31) | 3724, 0x4A4A, 0x7A7A, 0x7A7A, 0x7A7A, 0x7A7A, 0x7A7A,
-+ 0x2C2C2C, 0x595959, 0x59595959, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x4A4A4A4A, 0x4A4A4A,
-+ 0x7A7A, 0x4A4A4A4A, 0x4A4A4A, 0x2C2C2C, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x4A4A4A,
-+ 0x4A4A4A, 0x2C2C2C, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C,
-+ 0x4A4A4A, (1U<<31) | 3722, 0x4A4A4A, (1U<<31) | 3720, (1U<<31) | 3720, 0x2C2C2C, 0x3B3B3B, 0x4A4A4A,
-+ 0x2C2C2C, 0x3B3B3B, 0x4A4A4A, 0x4A4A4A, 0x4A2C4A, 0x4A3B4A, 0x4A2C4A, 0x4A4A4A,
-+ 0x3B4A, 0x2C3B, 0x3B4A, 0x4A59, 0x3B4A, 0x2C3B, 0x3B4A, 0x4A59,
-+ 0x555, 0x2E0, 0x2E0, 0x2E0, 0x2E0, 0x2E0, 0x2E0, 0x2E0,
-+ 0x2E0, 0x555, 0x555, 0x444, 0x444, 0x5, 0x5, 0x5,
-+ 0x5, 0x1, 0x0, 0x1F0, 0x8A8A, 0x8A8A8A, 0x8A8A8A, 0x8A8A,
-+ 0x8A8A, 0x8A8A, 0x8A8A, 0x8A8A8A, 0x8A8A8A, 0x8A8A8A, 0x8A8A8A, 0x8A8A,
-+ 0x8A8A, 0x8A8A, 0x8A8A, 0x8A8A, 0x8A8A, 0x8A8A, 0x8A8A, 0x48A8A8A,
-+ (1U<<31) | 3475, (1U<<31) | 3475, (1U<<31) | 3475, (1U<<31) | 3475, 0x8A8A8A, 0x8A8A8A, 0x8A8A, 0x8A8A,
-+ (1U<<31) | 3475, (1U<<31) | 3475, (1U<<31) | 3475, (1U<<31) | 3475, (1U<<31) | 3475, 0x8A8A, 0x8A8A, 0x8A8A,
-+ 0x8A8A, 0x8A8A, 0x8A8A, 0x8A8A, 0x8A8A, 0x8A8A, (1U<<31) | 3475, 0x8A8A8A,
-+ 0x8A8A8A, 0x8A8A8A, (1U<<31) | 3475, (1U<<31) | 3475, 0x8A8A8A, 0x8A8A8A, (1U<<31) | 3475, (1U<<31) | 3475,
-+ (1U<<31) | 3475, (1U<<31) | 3475, (1U<<31) | 3475, (1U<<31) | 3475, 0x48A, 0x2E8A, 0x2E8A, 0x2E8A,
-+ 0x2E8A, 0x2E8A, 0x2E8A, 0x2E8A, 0x2E8A, 0x2E8A, 0x2E8A, 0x2E8A,
-+ 0x2E8A, 0x2E8A, 0x2E8A, 0x2E8A, 0x2E8A, 0x2E8A0, 0x2E8A0, 0x2E8A0,
-+ 0x2E8A0, 0x2E8A0, 0x2E8A0, 0x2E8A0, 0x2E8A0, 0x2E8A0, 0x2E8A0, 0x50,
-+ 0x50, 0x50, 0x50, 0x0, 0x44, 0x4444, 0x4444, 0x4444,
-+ 0x4444, 0x44, 0x4, 0x44, 0x4, 0x4, 0x44, 0x4,
-+ 0x44, 0x4, 0x5, 0x2E89, 0x2E89, 0x52E4A, 0x52E4A, 0x2E4A,
-+ 0x2E4A, 0x2E890, 0x2E890, 0x52E4A0, 0x52E4A0, 0x2E4A0, 0x2E4A0, 0x888,
-+ 0x888, 0x898959, 0x898944, 0x7A7A4A, 0x7A7A44, 0x898959, 0x898944, 0x7A7A4A,
-+ 0x7A7A44, 0x898959, 0x898944, 0x7A7A4A, 0x7A7A44, 0x897A, 0x894A, 0x894A,
-+ 0x3B7A, 0x7A89, 0x7A7A, 0x597A, 0x4A89, 0x597A, 0x4A89, 0x898989,
-+ 0x7A7A7A, 0x595989, 0x4A4A7A, 0x898989, 0x7A7A7A, 0x898989, 0x7A7A7A, 0x8989,
-+ 0x8989, 0x7A7A, 0x7A7A, 0x8989, 0x7A7A, 0x48959, 0x47A4A, 0x8959,
-+ 0x7A4A, 0x8959, 0x7A4A, 0x45959, 0x4594A4A, 0x4A4A4A, 0x0, (1U<<31) | 753,
-+ 0x44A4A0, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4,
-+ 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4,
-+ 0x2F2F, 0x2F2F, 0x4, 0x4, 0x42E4, 0x5E50, 0x40, 0x40,
-+ 0x50, 0x42E4, 0x42E4, 0x42E0, 0x52F4, 0x4, 0x2C2C2C, 0x2C2C2C2C,
-+ 0x4A4A4A, 0x595959, 0x3B3B3B, 0x2C2C2C, 0x2C2C2C2C, 0x2C2C2C, 0x2C2C2C, 0x4A4A4A,
-+ 0x595959, 0x3B3B3B, 0x2C2C2C, 0x4A4A4A, 0x595959, 0x3B3B3B, (1U<<31) | 966, (1U<<31) | 2707,
-+ (1U<<31) | 2926, (1U<<31) | 1235, (1U<<31) | 966, (1U<<31) | 2707, (1U<<31) | 2926, (1U<<31) | 1235, (1U<<31) | 966, (1U<<31) | 2707,
-+ (1U<<31) | 2926, (1U<<31) | 1235, 0x4A4A4A, (1U<<31) | 1737, (1U<<31) | 2229, (1U<<31) | 2509, (1U<<31) | 1866, 0x42C2C,
-+ 0x44A4A, 0x45959, 0x43B3B, 0x2C2C2C, 0x4A4A4A, 0x595959, 0x3B3B3B, 0x42C2C2C,
-+ (1U<<31) | 1759, 0x44A4A4A, (1U<<31) | 2207, 0x43B3B3B, (1U<<31) | 1888, 0x42C2C2C, (1U<<31) | 1759, 0x44A4A4A,
-+ (1U<<31) | 2207, 0x43B3B3B, (1U<<31) | 1888, (1U<<31) | 3453, (1U<<31) | 3453, (1U<<31) | 3453, 0x2C2C2C, (1U<<31) | 966,
-+ 0x4A4A4A, (1U<<31) | 2707, 0x3B3B3B, (1U<<31) | 1235, 0x2C2C2C, (1U<<31) | 966, 0x4A4A4A, (1U<<31) | 2707,
-+ 0x3B3B3B, (1U<<31) | 1235, 0x2C2C2C, (1U<<31) | 966, 0x4A4A4A, (1U<<31) | 2707, 0x3B3B3B, (1U<<31) | 1235,
-+ 0x2C2C2C, (1U<<31) | 966, 0x4A4A4A, (1U<<31) | 2707, 0x3B3B3B, (1U<<31) | 1235, 0x448989, (1U<<31) | 2623,
-+ 0x3B2C2C3B, 0x594A4A59, 0x2C59592C, 0x4A3B3B4A, 0x2C2C3B, 0x4A4A59, 0x59592C, 0x3B3B4A,
-+ 0x2C2C, (1U<<31) | 975, 0x4A4A, (1U<<31) | 2691, 0x3B3B, (1U<<31) | 1244, 0x42E2C, 0x2E42C,
-+ 0x3B2C2C3B, 0x594A4A59, 0x4A3B3B4A, 0x2C2C2C2C, 0x4A4A4A4A, 0x3B3B3B3B, 0x3B2C2C3B, 0x594A4A59,
-+ 0x4A3B3B4A, 0x2C2C2C2C, 0x4A4A4A4A, 0x3B3B3B3B, 0x3B2C2C3B, 0x594A4A59, 0x4A3B3B4A, 0x3B2C2C3B,
-+ 0x594A4A59, 0x4A3B3B4A, 0x2C2C3B, 0x4A4A59, 0x3B3B4A, 0x2C2C2C, 0x4A4A4A, 0x3B3B3B,
-+ 0x2C2C3B, 0x4A4A59, 0x3B3B4A, 0x2C2C2C, 0x4A4A4A, 0x3B3B3B, 0x2C2C3B, 0x4A4A59,
-+ 0x3B3B4A, 0x2C2C3B, 0x4A4A59, 0x3B3B4A, 0x4595959, 0x2C2C2C2C, 0x4A4A3B, (1U<<31) | 2698,
-+ 0x59594A, (1U<<31) | 2917, 0x3B3B2C, (1U<<31) | 1226, 0x4A4A3B, (1U<<31) | 2698, 0x59594A, (1U<<31) | 2917,
-+ 0x3B3B2C, (1U<<31) | 1226, 0x2C2C2C2C, 0x2C2C2C2C, 0x2C2C2C, 0x4A4A4A, 0x595959, 0x3B3B3B,
-+ 0x2C2C2C, 0x2C2C2C, 0x2C2C2C, 0x42C2C2C, 0x2C2C2C, 0x2C2C2C, 0x2C2C2C, 0x2C2C2C,
-+ 0x2C2C2C, 0x2E42C0, (1U<<31) | 1737, (1U<<31) | 1747, (1U<<31) | 2229, (1U<<31) | 2217, (1U<<31) | 1866, (1U<<31) | 1876,
-+ (1U<<31) | 1737, (1U<<31) | 1747, (1U<<31) | 2229, (1U<<31) | 2217, (1U<<31) | 1866, (1U<<31) | 1876, 0x2C2C4A, 0x4A4A59,
-+ 0x3B3B59, 0x3B3B4A, 0x4A4A2C, 0x59592C, 0x2C2C4, 0x2C3B, 0x4A59, 0x3B4A,
-+ 0x2C3B, 0x4A59, 0x2C3B, 0x4A59, 0x3B4A, 0x3B4A, 0x2C3B, 0x4A59,
-+ 0x3B4A, 0x1F, 0x1F0, (1U<<31) | 3638, (1U<<31) | 3635, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638,
-+ (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3635, (1U<<31) | 3638, (1U<<31) | 3638,
-+ (1U<<31) | 3638, (1U<<31) | 3635, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3635, (1U<<31) | 3638, (1U<<31) | 3635, (1U<<31) | 3638,
-+ (1U<<31) | 3638, (1U<<31) | 3635, (1U<<31) | 3635, 0x2E4422, 0x2E5522, 0x2E4422, 0x2E5522, 0x595959,
-+ 0x595959, 0x595959, 0x595959, 0x5959, 0x25959, 0x8A8A8A, 0x7B7B7B, (1U<<31) | 3475,
-+ 0x7B7B7B7B, 0x28A8A8A, 0x27B7B7B, 0x8A7A, 0x8A4A, 0x7B4B, 0x4B7B, 0x8A4A,
-+ 0x7B4B, 0x27B7B7B, 0x8A8A8A, 0x7B7B7B, 0x8A8A8A, 0x7B7B7B, 0x2E2D, 0x592E89,
-+ 0x5A2E8A, 0x4A2E7A, 0x4B2E7B, 0x89592E0, 0x8A5A2E0, 0x7A4A2E0, 0x7B4B2E0, 0x8A8A8A,
-+ 0x7B7B7B, 0x8A8A8A, 0x7B7B7B, 0x8A4, 0x7B4, 0x5A5A4, 0x5A5A4, 0x5A5A4,
-+ 0x7B7B, 0x48A8A, 0x47B7B, 0x7B7B, 0x8A8A, 0x7B7B, 0x28A8A8A, 0x27B7B7B,
-+ 0x24B4B4B, 0x598989, 0x5A8A8A, 0x4A7A7A, 0x4B7B7B, 0x89894, 0x8A8A4, 0x7A7A4,
-+ 0x7B7B4, 0x89894, 0x8A8A4, 0x7A7A4, 0x7B7B4, 0x89894, 0x8A8A4, 0x7A7A4,
-+ 0x7B7B4, 0x0, 0x0, (1U<<31) | 309, (1U<<31) | 397, (1U<<31) | 768, (1U<<31) | 844, (1U<<31) | 623,
-+ (1U<<31) | 711, (1U<<31) | 429, (1U<<31) | 505, (1U<<31) | 331, (1U<<31) | 343, (1U<<31) | 780, (1U<<31) | 856, (1U<<31) | 645,
-+ (1U<<31) | 657, (1U<<31) | 451, (1U<<31) | 527, 0x4A2E4A, 0x4B2E4B, 0x592E59, 0x5A2E5A, 0x4A4A2E0,
-+ 0x4B4B2E0, 0x59592E0, 0x5A5A2E0, 0x2E5A, 0x22D2D3C, 0x2D2D, 0x4B4B, 0x3C3C,
-+ 0x4B4B3C, 0x3C3C2D, 0x4B4B3C, 0x3C3C2D, 0x2D2D2D, 0x3C3C3C, 0x2D2D2D, 0x3C3C3C,
-+ 0x2D2D2D, 0x3C3C3C, 0x2D2D2D2D, 0x4B4B4B, 0x4B7B7B, 0x4B4B4B, 0x3C3C3C, 0x3C3C3C,
-+ 0x4B4B4B, 0x3C3C3C, 0x3C3C3C, 0x2D2D3C, 0x3C3C4B, 0x2D4, 0x4B4B5A, 0x3C3C3C,
-+ 0x3C3C3C, 0x3C3C3C, 0x4B4B5A, 0x2D2D5A, 0x2D2D2D, 0x2D2D2D, 0x4B4B4B, 0x3C3C3C,
-+ 0x4A4B4B, 0x595A5A, 0x3B3C3C, 0x44B4B, 0x45A5A, 0x43C3C, 0x4A4A4A, 0x4B4B4B,
-+ 0x595959, 0x5A5A5A, 0x4A4B4B, 0x3B3C3C, 0x44B4B, 0x43C3C, 0x4A4A4A, 0x4B4B4B,
-+ 0x4A4B4B, 0x595A5A, 0x3B3C3C, 0x44B4B, 0x45A5A, 0x43C3C, 0x4A4A4A, 0x4B4B4B,
-+ 0x595959, 0x5A5A5A, 0x2D2D2D, 0x3C3C3C, 0x2D2D2D, 0x3C3C3C, 0x25A5A5A, 0x259,
-+ 0x25A, 0x25B, 0x34A, 0x34B, 0x34C, 0x2C3, 0x2D4, (1U<<31) | 1029,
-+ 0x4A2, 0x4B2, 0x4C3, 0x32C, 0x42D, (1U<<31) | 2878, 0x24A, 0x24B,
-+ 0x34C, 0x259, 0x25A, 0x25B, 0x23B, 0x33C, 0x43D, 0x592,
-+ 0x5A2, 0x5B2, 0x458989, 0x447A7A, 0x457A7A, 0x4894, 0x4895, 0x4894,
-+ 0x4895, 0x47A4, 0x47A5, 0x47A4, 0x47A5, 0x48989, 0x447A7A, 0x458989,
-+ 0x457A7A, 0x3B2, 0x3C3, 0x3D4, 0x428B8B8B, 0x437C7C7C, (1U<<31) | 1503, (1U<<31) | 1821,
-+ (1U<<31) | 1481, (1U<<31) | 1832, (1U<<31) | 1635, (1U<<31) | 1602, (1U<<31) | 1613, (1U<<31) | 1624, (1U<<31) | 1547, (1U<<31) | 1525,
-+ (1U<<31) | 1591, (1U<<31) | 1569, (1U<<31) | 1536, (1U<<31) | 1514, (1U<<31) | 1580, (1U<<31) | 1558, (1U<<31) | 1448, (1U<<31) | 1415,
-+ (1U<<31) | 1459, (1U<<31) | 1426, (1U<<31) | 1437, (1U<<31) | 1404, (1U<<31) | 1492, (1U<<31) | 1470, 0x442E4B20, 0x442E4C30,
-+ 0x442E5B20, 0x442E5B20, 0x333, 0x333, 0x33, 0x333, 0x334, 0x334,
-+ 0x333, 0x555, 0x444, 0x333, 0x333, (1U<<31) | 1726, (1U<<31) | 1855, (1U<<31) | 1703,
-+ (1U<<31) | 1658, 0x27B7A7B, 0x37C7A7C, 0x27B7A7B, 0x37C7A7C, 0x37C7B7C, 0x28A898A, 0x28B898B,
-+ 0x28B8A8B, 0x24A4A4A, 0x24B4A4B, 0x34C4A4C, 0x24B4A4B, 0x34C4A4C, 0x34C4B4C, 0x25A595A,
-+ 0x25B595B, 0x25B5A5B, 0x342C2C3, 0x442D2D4, (1U<<31) | 2909, 0x244A4A2, 0x244B4B2, 0x344C4C3,
-+ 0x2489892, 0x248A8A2, 0x4248B8B2, 0x247A7A2, 0x247B7B2, 0x4347C7C3, 0x2459592, 0x245A5A2,
-+ 0x245B5B2, 0x42489892, 0x4247A7A2, 0x243B3B2, 0x343C3C3, 0x443D3D4, 0x24A4A4A, 0x24B4B4B,
-+ 0x34C4C4C, 0x2898989, 0x28A8A8A, 0x28B8B8B, 0x27A7A7A, 0x27B7B7B, 0x37C7C7C, 0x2595959,
-+ 0x25A5A5A, 0x25B5B5B, 0x24A2E0, 0x24B2E0, 0x34C2E0, 0x2892E0, 0x28A2E0, 0x28B2E0,
-+ 0x27A2E0, 0x27B2E0, 0x37C2E0, 0x2592E0, 0x25A2E0, 0x25B2E0, 0x24A4A4A, 0x24B4B4B,
-+ 0x34C4C4C, 0x2595959, 0x25A5A5A, 0x25B5B5B, 0x27A4A7A, 0x27B4B7B, 0x437C4C7C, 0x24A894A,
-+ 0x24A8A4A, 0x424B8B4B, 0x27A897A, 0x27A8A7A, 0x427B8B7B, 0x2598959, 0x25A8A5A, 0x425B8B5B,
-+ 0x24A894A, 0x24A8A4A, 0x424B8B4B, 0x2598959, 0x25A8A5A, 0x425B8B5B, 0x24A7A4A, 0x24B7B4B,
-+ 0x434C7C4C, 0x2897A89, 0x28A7A8A, 0x428B7B8B, 0x2597A59, 0x25A7A5A, 0x425B7B5B, 0x24A7A4A,
-+ 0x24B7B4B, 0x434C7C4C, 0x2597A59, 0x25A7A5A, 0x425B7B5B, 0x2895989, 0x28A5A8A, 0x428B5B8B,
-+ 0x27A597A, 0x27A5A7A, 0x427B5B7B, (1U<<31) | 1669, (1U<<31) | 1692, 0x24A894A, 0x24A8A4A, 0x424B8B4B,
-+ 0x2598959, 0x25A8A5A, 0x425B8B5B, 0x24A894A, 0x24A8A4A, 0x424B8B4B, 0x2598959, 0x25A8A5A,
-+ 0x425B8B5B, 0x24A7A4A, 0x24B7B4B, 0x434C7C4C, 0x2597A59, 0x25A7A5A, 0x425B7B5B, 0x24A7A4A,
-+ 0x24B7B4B, 0x434C7C4C, 0x2597A59, 0x25A7A5A, 0x425B7B5B, 0x27A4A7A, 0x27B4B7B, 0x437C4C7C,
-+ 0x2895989, 0x28A5A8A, 0x428B5B8B, 0x27A597A, 0x27A5A7A, 0x427B5B7B, (1U<<31) | 169, (1U<<31) | 1088,
-+ (1U<<31) | 1918, (1U<<31) | 1726, (1U<<31) | 1855, (1U<<31) | 1703, (1U<<31) | 1658, 0x24A4A4A, 0x24B4B4B, 0x34C4C4C,
-+ 0x24A2E4A, 0x24B2E4B, 0x34C2E4C, 0x2892E89, 0x28A2E8A, 0x28B2E8B, 0x27A2E7A, 0x27B2E7B,
-+ 0x37C2E7C, 0x2592E59, 0x25A2E5A, 0x25B2E5B, 0x2898989, 0x28A8A8A, 0x28B8B8B, 0x27A7A7A,
-+ 0x27B7B7B, 0x37C7C7C, 0x2595959, 0x25A5A5A, 0x25B5B5B, (1U<<31) | 255, (1U<<31) | 277, (1U<<31) | 1392,
-+ (1U<<31) | 211, (1U<<31) | 233, (1U<<31) | 1809, (1U<<31) | 1380, (1U<<31) | 1368, 0x24892, 0x248A2, 0x248B2,
-+ 0x247A2, 0x247B2, 0x347C3, 0x24892, 0x247A2, 0x2898989, 0x28A8A8A, 0x428B8B8B,
-+ 0x27A7A7A, 0x27B7B7B, 0x437C7C7C, (1U<<31) | 1703, (1U<<31) | 1658, 0x28948989, 0x28A48A8A, (1U<<31) | 1716,
-+ 0x27A47A7A, 0x27B47B7B, (1U<<31) | 1845, (1U<<31) | 1680, (1U<<31) | 1646, (1U<<31) | 689, (1U<<31) | 1173, (1U<<31) | 1184,
-+ (1U<<31) | 822, (1U<<31) | 898, (1U<<31) | 909, (1U<<31) | 375, (1U<<31) | 1130, (1U<<31) | 1141, (1U<<31) | 483, (1U<<31) | 559,
-+ (1U<<31) | 570, 0x24A4A4A, 0x24B4B4B, 0x34C4C4C, 0x2595959, 0x25A5A5A, 0x25B5B5B, (1U<<31) | 812,
-+ (1U<<31) | 888, (1U<<31) | 1726, (1U<<31) | 679, (1U<<31) | 743, (1U<<31) | 1855, (1U<<31) | 1703, (1U<<31) | 1658, (1U<<31) | 812,
-+ (1U<<31) | 888, (1U<<31) | 1726, (1U<<31) | 679, (1U<<31) | 743, (1U<<31) | 1855, (1U<<31) | 1703, (1U<<31) | 1658, (1U<<31) | 1726,
-+ (1U<<31) | 1855, (1U<<31) | 1703, (1U<<31) | 1658, 0x32C2C2C, 0x42D2D2D, (1U<<31) | 2884, 0x24A4A4A, 0x24B4B4B,
-+ 0x34C4C4C, 0x2595959, 0x25A5A5A, 0x25B5B5B, 0x23B3B3B, 0x33C3C3C, 0x43D3D3D, (1U<<31) | 180,
-+ (1U<<31) | 1099, (1U<<31) | 1929, (1U<<31) | 1048, (1U<<31) | 1779, (1U<<31) | 2899, (1U<<31) | 180, (1U<<31) | 1099, (1U<<31) | 1929,
-+ (1U<<31) | 1048, (1U<<31) | 1779, (1U<<31) | 2899, (1U<<31) | 1038, (1U<<31) | 1769, (1U<<31) | 2882, (1U<<31) | 159, (1U<<31) | 1078,
-+ (1U<<31) | 1908, (1U<<31) | 1038, (1U<<31) | 1769, (1U<<31) | 2882, (1U<<31) | 159, (1U<<31) | 1078, (1U<<31) | 1908, (1U<<31) | 1038,
-+ (1U<<31) | 1769, (1U<<31) | 2882, (1U<<31) | 159, (1U<<31) | 1078, (1U<<31) | 1908, 0x32C22C, 0x42D22D, (1U<<31) | 2875,
-+ 0x24A44A, 0x24B44B, 0x34C44C, 0x259559, 0x25A55A, 0x25B55B, 0x25B55B, 0x23B33B,
-+ 0x33C33C, 0x43D33D, (1U<<31) | 868, (1U<<31) | 931, (1U<<31) | 539, (1U<<31) | 602, (1U<<31) | 159, (1U<<31) | 1078,
-+ (1U<<31) | 1908, (1U<<31) | 1038, (1U<<31) | 1769, (1U<<31) | 2882, (1U<<31) | 723, (1U<<31) | 1206, (1U<<31) | 409, (1U<<31) | 1163,
-+ (1U<<31) | 149, (1U<<31) | 1068, (1U<<31) | 1898, (1U<<31) | 299, (1U<<31) | 365, (1U<<31) | 1120, 0x22C4A2C, 0x22C4B2C,
-+ 0x32C4C2C, 0x24A2E0, 0x24B2E0, 0x34C2E0, 0x23B4A3B, 0x23B4B3B, 0x33C4C3C, 0x24A2E0,
-+ 0x24B2E0, 0x34C2E0, 0x22C592C, 0x22C5A2C, 0x22C5B2C, 0x2592E0, 0x25A2E0, 0x25B2E0,
-+ 0x24A594A, 0x24A5A4A, 0x24B5B4B, 0x2592E0, 0x25A2E0, 0x25B2E0, 0x23B593B, 0x23B5A3B,
-+ 0x23B5B3B, 0x2592E0, 0x25A2E0, 0x25B2E0, 0x22C3B2C, 0x32C3C2C, 0x42D3D2D, 0x23B2E0,
-+ 0x33C2E0, 0x43D2E0, 0x22C4A2C, 0x22C4B2C, 0x32C4C2C, 0x24A2E0, 0x24B2E0, 0x34C2E0,
-+ 0x23B4A3B, 0x23B4B3B, 0x33C4C3C, 0x24A2E0, 0x24B2E0, 0x34C2E0, 0x22C592C, 0x22C5A2C,
-+ 0x22C5B2C, 0x2592E0, 0x25A2E0, 0x25B2E0, 0x24A594A, 0x24A5A4A, 0x24B5B4B, 0x2592E0,
-+ 0x25A2E0, 0x25B2E0, 0x23B593B, 0x23B5A3B, 0x23B5B3B, 0x2592E0, 0x25A2E0, 0x25B2E0,
-+ 0x22C3B2C, 0x32C3C2C, 0x42D3D2D, 0x23B2E0, 0x33C2E0, 0x43D2E0, 0x22C4A2C, 0x22C4B2C,
-+ 0x32C4C2C, 0x24A2E0, 0x24B2E0, 0x34C2E0, 0x23B4A3B, 0x23B4B3B, 0x33C4C3C, 0x24A2E0,
-+ 0x24B2E0, 0x34C2E0, 0x22C592C, 0x22C5A2C, 0x22C5B2C, 0x2592E0, 0x25A2E0, 0x25B2E0,
-+ 0x24A594A, 0x24A5A4A, 0x24B5B4B, 0x2592E0, 0x25A2E0, 0x25B2E0, 0x23B593B, 0x23B5A3B,
-+ 0x23B5B3B, 0x2592E0, 0x25A2E0, 0x25B2E0, 0x22C3B2C, 0x32C3C2C, 0x42D3D2D, 0x23B2E0,
-+ 0x33C2E0, 0x43D2E0, (1U<<31) | 441, (1U<<31) | 517, (1U<<31) | 592, (1U<<31) | 159, (1U<<31) | 1078, (1U<<31) | 1908,
-+ (1U<<31) | 159, (1U<<31) | 1078, (1U<<31) | 1908, (1U<<31) | 159, (1U<<31) | 1078, (1U<<31) | 1908, (1U<<31) | 1038, (1U<<31) | 1769,
-+ (1U<<31) | 2882, (1U<<31) | 441, (1U<<31) | 517, (1U<<31) | 592, 0x24A44A4A, 0x24B44B4B, 0x34C44C4C, 0x25945959,
-+ 0x25A45A5A, 0x25B45B5B, (1U<<31) | 321, (1U<<31) | 409, (1U<<31) | 1163, (1U<<31) | 463, (1U<<31) | 539, (1U<<31) | 602,
-+ 0x24A44A4A, 0x24B44B4B, 0x34C44C4C, 0x25945959, 0x25A45A5A, 0x25B45B5B, (1U<<31) | 321, (1U<<31) | 409,
-+ (1U<<31) | 1163, (1U<<31) | 463, (1U<<31) | 539, (1U<<31) | 602, (1U<<31) | 1038, (1U<<31) | 1769, (1U<<31) | 2882, (1U<<31) | 159,
-+ (1U<<31) | 1078, (1U<<31) | 1908, (1U<<31) | 1038, (1U<<31) | 1769, (1U<<31) | 2882, (1U<<31) | 159, (1U<<31) | 1078, (1U<<31) | 1908,
-+ (1U<<31) | 200, (1U<<31) | 222, (1U<<31) | 1109, (1U<<31) | 244, (1U<<31) | 266, (1U<<31) | 288, (1U<<31) | 757, (1U<<31) | 833,
-+ (1U<<31) | 1714, (1U<<31) | 612, (1U<<31) | 700, (1U<<31) | 1843, (1U<<31) | 1961, (1U<<31) | 1949, 0x28948989, 0x28A48A8A,
-+ (1U<<31) | 1716, 0x27A47A7A, 0x27B47B7B, (1U<<31) | 1845, (1U<<31) | 1961, (1U<<31) | 1949, 0x28948989, 0x28A48A8A,
-+ (1U<<31) | 1716, 0x27A47A7A, 0x27B47B7B, (1U<<31) | 1845, (1U<<31) | 1961, (1U<<31) | 1949, (1U<<31) | 812, (1U<<31) | 888,
-+ (1U<<31) | 1726, (1U<<31) | 679, (1U<<31) | 743, (1U<<31) | 1855, (1U<<31) | 1703, (1U<<31) | 1658, (1U<<31) | 1195, (1U<<31) | 700,
-+ (1U<<31) | 920, (1U<<31) | 833, (1U<<31) | 1152, (1U<<31) | 386, (1U<<31) | 581, (1U<<31) | 494, 0x2898989, 0x28A8A8A,
-+ 0x428B8B8B, 0x27A7A7A, 0x27B7B7B, 0x437C7C7C, (1U<<31) | 1703, (1U<<31) | 1658, 0x27A2E0, (1U<<31) | 1726,
-+ (1U<<31) | 1855, (1U<<31) | 1703, (1U<<31) | 1658, 0x342C2C3, 0x442D2D4, (1U<<31) | 2909, 0x244A4A2, 0x244B4B2,
-+ 0x344C4C3, 0x2459592, 0x245A5A2, 0x245B5B2, 0x243B3B2, 0x343C3C3, 0x443D3D4, 0x27A3B7A,
-+ 0x27B3B7B, 0x437C3C7C, 0x23B47A3B, 0x23B47B3B, 0x33C47C3C, 0x27A47B7A, 0x27A47C7A, 0x27B47C7B,
-+ 0x28948A89, 0x28948B89, 0x28A48B8A, 0x24A44B4A, 0x24A44C4A, 0x24B44C4B, 0x25945A59, 0x25945B59,
-+ 0x25A45B5A, (1U<<31) | 812, (1U<<31) | 888, (1U<<31) | 1726, (1U<<31) | 679, (1U<<31) | 743, (1U<<31) | 1855, (1U<<31) | 1703,
-+ (1U<<31) | 1658, (1U<<31) | 812, (1U<<31) | 888, (1U<<31) | 1726, (1U<<31) | 679, (1U<<31) | 743, (1U<<31) | 1855, (1U<<31) | 812,
-+ (1U<<31) | 888, (1U<<31) | 1726, (1U<<31) | 679, (1U<<31) | 743, (1U<<31) | 1855, (1U<<31) | 812, (1U<<31) | 888, (1U<<31) | 1726,
-+ (1U<<31) | 679, (1U<<31) | 743, (1U<<31) | 1855, (1U<<31) | 321, (1U<<31) | 409, (1U<<31) | 1163, (1U<<31) | 159, (1U<<31) | 1078,
-+ (1U<<31) | 1908, (1U<<31) | 792, (1U<<31) | 868, (1U<<31) | 931, (1U<<31) | 635, (1U<<31) | 723, (1U<<31) | 1206, (1U<<31) | 463,
-+ (1U<<31) | 539, (1U<<31) | 602, (1U<<31) | 1038, (1U<<31) | 1769, (1U<<31) | 2882, (1U<<31) | 321, (1U<<31) | 409, (1U<<31) | 1163,
-+ (1U<<31) | 159, (1U<<31) | 1078, (1U<<31) | 1908, (1U<<31) | 802, (1U<<31) | 878, (1U<<31) | 941, (1U<<31) | 669, (1U<<31) | 733,
-+ (1U<<31) | 1216, (1U<<31) | 463, (1U<<31) | 539, (1U<<31) | 602, (1U<<31) | 1038, (1U<<31) | 1769, (1U<<31) | 2882, (1U<<31) | 463,
-+ (1U<<31) | 539, (1U<<31) | 602, (1U<<31) | 463, (1U<<31) | 539, (1U<<31) | 602, (1U<<31) | 812, (1U<<31) | 888, (1U<<31) | 1726,
-+ (1U<<31) | 679, (1U<<31) | 743, (1U<<31) | 1855, (1U<<31) | 1703, (1U<<31) | 1658, (1U<<31) | 812, (1U<<31) | 888, (1U<<31) | 1726,
-+ (1U<<31) | 679, (1U<<31) | 743, (1U<<31) | 1855, (1U<<31) | 812, (1U<<31) | 888, (1U<<31) | 1726, (1U<<31) | 679, (1U<<31) | 743,
-+ (1U<<31) | 1855, (1U<<31) | 1703, (1U<<31) | 1658, (1U<<31) | 812, (1U<<31) | 888, (1U<<31) | 1726, (1U<<31) | 679, (1U<<31) | 743,
-+ (1U<<31) | 1855, (1U<<31) | 812, (1U<<31) | 888, (1U<<31) | 1726, (1U<<31) | 679, (1U<<31) | 743, (1U<<31) | 1855, (1U<<31) | 1703,
-+ (1U<<31) | 1658, (1U<<31) | 255, (1U<<31) | 277, (1U<<31) | 1392, (1U<<31) | 211, (1U<<31) | 233, (1U<<31) | 1809, (1U<<31) | 1380,
-+ (1U<<31) | 1368, (1U<<31) | 200, (1U<<31) | 222, (1U<<31) | 1109, (1U<<31) | 244, (1U<<31) | 266, (1U<<31) | 288, (1U<<31) | 812,
-+ (1U<<31) | 888, (1U<<31) | 1726, (1U<<31) | 679, (1U<<31) | 743, (1U<<31) | 1855, (1U<<31) | 1703, (1U<<31) | 1658, (1U<<31) | 812,
-+ (1U<<31) | 888, (1U<<31) | 1726, (1U<<31) | 679, (1U<<31) | 743, (1U<<31) | 1855, (1U<<31) | 321, (1U<<31) | 409, (1U<<31) | 1163,
-+ (1U<<31) | 159, (1U<<31) | 1078, (1U<<31) | 1908, (1U<<31) | 802, (1U<<31) | 878, (1U<<31) | 941, (1U<<31) | 669, (1U<<31) | 733,
-+ (1U<<31) | 1216, (1U<<31) | 463, (1U<<31) | 539, (1U<<31) | 602, (1U<<31) | 1038, (1U<<31) | 1769, (1U<<31) | 2882, (1U<<31) | 463,
-+ (1U<<31) | 539, (1U<<31) | 602, (1U<<31) | 463, (1U<<31) | 539, (1U<<31) | 602, 0x2E5B, (1U<<31) | 1022, (1U<<31) | 1015,
-+ 0x4A4C4C, 0x595B5B, 0x3B3D3D, 0x44C4C, 0x45B5B, 0x43D3D, 0x4C4C4C, 0x5B5B5B,
-+ 0x3B3B3B, 0x3C3C3C, 0x3D3D3D, 0x4A4C4C, 0x595959, 0x595A5A, 0x595B5B, 0x3B3D3D,
-+ 0x44C4C, 0x45959, 0x45A5A, 0x45B5B, 0x43D3D, 0x4C4C4C, 0x595959, 0x5A5A5A,
-+ 0x5B5B5B, 0x3B3B3B, 0x3C3C3C, 0x3D3D3D, 0x4A4C4C, 0x595B5B, 0x3B3D3D, 0x44C4C,
-+ 0x45B5B, 0x43D3D, 0x4C4C4C, 0x5B5B5B, 0x3B3B3B, 0x3C3C3C, 0x3D3D3D, 0x32C2C3,
-+ 0x42D2D4, (1U<<31) | 2892, 0x24A4A2, 0x24B4B2, 0x34C4C3, 0x259592, 0x25A5A2, 0x25B5B2,
-+ 0x23B3B2, 0x33C3C3, 0x43D3D4, 0x32C2C3, 0x42D2D4, (1U<<31) | 2892, 0x24A4A2, 0x24B4B2,
-+ 0x34C4C3, 0x259592, 0x25A5A2, 0x25B5B2, 0x23B3B2, 0x33C3C3, 0x43D3D4, 0x2898989,
-+ 0x28A8A8A, 0x28B8B8B, 0x27A7A7A, 0x27B7B7B, 0x37C7C7C, (1U<<31) | 812, (1U<<31) | 679, 0x428B8B8B,
-+ 0x437C7C7C, (1U<<31) | 1703, (1U<<31) | 1658, 0x2898989, 0x28A8A8A, 0x28B8B8B, 0x27A7A7A, 0x27B7B7B,
-+ 0x37C7C7C, (1U<<31) | 812, (1U<<31) | 679, 0x428B8B8B, 0x437C7C7C, (1U<<31) | 1703, (1U<<31) | 1658, (1U<<31) | 2671,
-+ (1U<<31) | 2323, (1U<<31) | 2539, (1U<<31) | 2613, (1U<<31) | 2681, (1U<<31) | 2269, (1U<<31) | 2549, (1U<<31) | 2603, (1U<<31) | 2641,
-+ (1U<<31) | 2499, (1U<<31) | 2661, (1U<<31) | 2529, (1U<<31) | 2573, (1U<<31) | 2239, (1U<<31) | 2583, (1U<<31) | 2249, 0x442E4B20,
-+ 0x442E4C30, 0x442E5B20, 0x442E5B20, (1U<<31) | 2631, (1U<<31) | 2489, (1U<<31) | 2651, (1U<<31) | 2519, (1U<<31) | 2563,
-+ (1U<<31) | 2197, (1U<<31) | 2593, (1U<<31) | 2259, 0x2E8B, 0x2E7C, 0x4489894, 0x447A7A4, 0x4894,
-+ 0x4895, 0x4894, 0x4895, 0x47A4, 0x47A5, 0x47A4, 0x47A5, 0x5B8B8B,
-+ 0x4C7C7C, 0x444, 0x555, 0x444, 0x555, 0x444, 0x555, 0x444,
-+ 0x555, 0x2E0, 0x4, 0x5, 0x40, 0x50, (1U<<31) | 3462, (1U<<31) | 3475,
-+ 0x7A7A7A7A, 0x7B7B7B7B, (1U<<31) | 3462, 0x7A7A7A7A, (1U<<31) | 3462, (1U<<31) | 3475, 0x7A7A7A7A, 0x7B7B7B7B,
-+ (1U<<31) | 3462, (1U<<31) | 3475, 0x7A7A7A7A, 0x7B7B7B7B, (1U<<31) | 3462, 0x7A7A7A7A, (1U<<31) | 3462, (1U<<31) | 3475,
-+ 0x7A7A7A7A, 0x7B7B7B7B, (1U<<31) | 3462, (1U<<31) | 3475, 0x7A7A7A7A, 0x7B7B7B7B, (1U<<31) | 3462, 0x7A7A7A7A,
-+ (1U<<31) | 3462, (1U<<31) | 3475, 0x7A7A7A7A, 0x7B7B7B7B, (1U<<31) | 3462, 0x7A7A7A7A, 0x2E0, 0x2E0,
-+ 0x2E0, 0x2E0, 0x20, 0x0, 0x0, (1U<<31) | 1003, (1U<<31) | 3633, (1U<<31) | 3638,
-+ (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638,
-+ (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 1033, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638,
-+ (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 2867, (1U<<31) | 2405, (1U<<31) | 3638,
-+ (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3620, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638,
-+ (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 2871, (1U<<31) | 2871,
-+ (1U<<31) | 2871, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 2871, (1U<<31) | 2871, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638,
-+ (1U<<31) | 2871, (1U<<31) | 2871, (1U<<31) | 2871, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638,
-+ (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638,
-+ (1U<<31) | 3638, (1U<<31) | 3638, 0x442E0, 0x4440, 0x2595959, 0x4, 0x5, 0x4,
-+ 0x5, 0x4, 0x45, (1U<<31) | 1939, (1U<<31) | 2416, (1U<<31) | 2559, (1U<<31) | 1939, (1U<<31) | 2416,
-+ (1U<<31) | 2559, 0x5, 0x2E5, 0x2E0, 0x2E0, 0x2E2E, 0x2E2E2E, 0x4A4A4A,
-+ 0x4A4A4A, 0x4A4A4A, 0x24A4A4A, 0x4A4A4A, 0x4A4A4A, 0x4A4A4A4A, 0x27A7A7A, 0x27A7A7A,
-+ 0x7A7A4, 0x7A7A4, 0x7A7A4, 0x7A7A4, 0x7A7A4, 0x7A7A4, (1U<<31) | 3471, (1U<<31) | 3629,
-+ (1U<<31) | 3623, (1U<<31) | 3449, 0x47A7A, 0x57A7A, 0x7A4, 0x7A5, (1U<<31) | 3471, (1U<<31) | 3449,
-+ 0x7A4, 0x7A5, 0x2E0, 0x7A7A7A, 0x7A7A7A, 0x7A7A7A, 0x7A7A7A, 0x7A4,
-+ (1U<<31) | 1034, 0x7A7A, 0x7A7A, 0x7A7A, 0x7A7A, 0x0, 0x7A7A, 0x7A7A,
-+ 0x2E0, 0x7A7A4, 0x7A7A4, 0x7A7A4, 0x7A7A4, 0x7A7A4, 0x7A7A4, 0x2E0,
-+ 0x2898989, 0x2898989, 0x89894, 0x89894, 0x89894, 0x89894, 0x89894, 0x89894,
-+ 0x4A7A, 0x894A, 0x897A, 0x7A4A, 0x894, 0x895, 0x897A7A, 0x48989,
-+ 0x58989, 0x7A8989, 0x894A, 0x7A4A, 0x894, 0x895, 0x0, 0x2E2C2C0,
-+ 0x898989, 0x898989, 0x0, 0x898989, 0x898989, 0x894, 0x4A4A3B, 0x3B3B2C,
-+ 0x3B3B2C, 0x2C2C2C, 0x3B3B3B, 0x2C2C2C, 0x3B3B3B, 0x0, 0x2C2C2C, 0x3B3B3B,
-+ 0x3B3B4A, 0x2C4, 0x3B3B3B, 0x3B3B3B, 0x4A4A59, 0x2C2C59, 0x4A4A4A, 0x595959,
-+ 0x3B3B3B, 0x44A4A, 0x45959, 0x43B3B, 0x4A4A4A, 0x3B3B3B, 0x44A4A, 0x43B3B,
-+ 0x4A4A4A, 0x595959, 0x3B3B3B, 0x44A4A, 0x45959, 0x43B3B, 0x2C2C2C, 0x3B3B3B,
-+ 0x2C2C2C, 0x3B3B3B, 0x8989, 0x8989, 0x89894, 0x89894, 0x89894, 0x89894,
-+ 0x89894, 0x89894, 0x898989, 0x7A7A7A, 0x898989, 0x7A7A7A, 0x898989, 0x7A7A7A,
-+ 0x2E2C, 0x442E0, 0x440, (1U<<31) | 3462, 0x7A7A7A7A, 0x2898989, 0x27A7A7A, 0x27A7A7A,
-+ 0x2E59, 0x22C2C3B, 0x4A4A3B, 0x2C2C2C2C, 0x3B3B, 0x4A4A59, 0x59594, 0x59594,
-+ 0x59594, 0x48989, 0x47A7A, 0x4898989, 0x47A7A7A, 0x344, 0x444, 0x244,
-+ 0x555, 0x242C42C4, 0x242C42C4, 0x242C42C4, 0x242C42C4, 0x242C42C4, 0x242C42C4, (1U<<31) | 190,
-+ 0x22C2C4, 0x22C2C4, 0x22C2C4, 0x22C2C4, 0x22C2C4, 0x22C2C4, 0x22C2C2C, 0x2C5959,
-+ 0x225959, 0x595959, 0x22595959, (1U<<31) | 3635, 0x2C2C, (1U<<31) | 3635, 0x4A4A, (1U<<31) | 3635,
-+ 0x3B3B, (1U<<31) | 3638, 0x4A4A4A, (1U<<31) | 3638, 0x3B3B3B, (1U<<31) | 3638, 0x3B3B3B, (1U<<31) | 3638,
-+ 0x4A4A4A, (1U<<31) | 3638, 0x3B3B3B, (1U<<31) | 3638, 0x3B3B3B, (1U<<31) | 3638, 0x2C2C3B, (1U<<31) | 3638,
-+ 0x3B3B3B, (1U<<31) | 3638, 0x2C2C2C, (1U<<31) | 3638, 0x2C2C2C, (1U<<31) | 3638, 0x4A4A4A, (1U<<31) | 3638,
-+ 0x3B3B3B, 0x2E4422, 0x2E5522, 0x444, 0x555, 0x3B7A, 0x3B7B, 0x47A3B,
-+ 0x47B3B, 0x40, 0x50, 0x40, 0x50, 0x40, 0x20, 0x4,
-+ 0x0, 0x45, 0x8989, 0x8A8A, 0x7A7A, 0x7B7B, 0x8989, 0x7A7A,
-+ 0x59595959, 0x5A5A5A5A, 0x22C2C2C, 0x24A4A4A, 0x2595959, 0x22C2C2C, 0x24A4A4A, 0x2595959,
-+ 0x23B3B3B, 0x23B3B3B, (1U<<31) | 473, (1U<<31) | 549, (1U<<31) | 355, (1U<<31) | 419, 0x2C4A, 0x2C59,
-+ 0x2C3B, 0x4A59, 0x2C4A, 0x2C59, 0x2C3B, 0x4A59, 0x3B4A, 0x3B59,
-+ 0x3B4A, 0x3B59, 0x2C3B, 0x4A59, 0x3B4A, 0x4A4A4A4A, 0x594A4A59, 0x594A4A59,
-+ 0x4A4A4A4A, 0x594A4A59, 0x594A4A59, 0x4A3B3B4A, 0x3B3B3B3B, 0x4A3B3B4A, 0x3B3B3B3B, 0x4A3B3B4A,
-+ 0x4A3B3B4A, 0x2C2C2C2C, 0x2C2C2C, 0x22C2C, 0x4A4A4A, 0x24A4A, 0x595959, 0x25959,
-+ 0x3B3B3B, 0x23B3B, 0x2C2C2C, 0x4A4A4A, 0x595959, 0x3B3B3B, 0x2C2C2C, 0x4A4A4A,
-+ 0x595959, 0x3B3B3B, 0x442E0, 0x442E0, 0x442E0, 0x442E0, 0x442E0, 0x442E0,
-+ 0x442E0, 0x442E0, 0x442E0, 0x442E0, 0x442E0, 0x442E0, 0x4440, 0x4,
-+ 0x44, 0x2E2E, 0x44F0, 0x0, 0x4F0, 0x40, 0x4444, (1U<<31) | 2037,
-+ 0x4F0, 0x4F0, 0x4F4, 0x4F0, 0x4, 0x4, 0x4, 0x44,
-+ 0x44F, 0xCF4F, 0x4F4, 0x4F4, 0x4F4, 0x2E4F0, 0x2E4F0, 0x2E4F0,
-+ 0x2E4F0, 0x2E4F0, 0x44F4, 0x4F4, 0x4F0, 0x4F0, 0x44F0, 0x44F0,
-+ 0x44F4, 0x44F0, 0x4F4, 0x44F0, 0xCF4F0, 0x44F0, 0x2E4F0, 0x440,
-+ 0x44F0, 0x44F0, 0xCF4F0, 0x40, 0x44F0, 0x2E4F0, 0x444, 0x0,
-+ 0x4F0, 0x4F4, 0x4F4, 0x2E, 0x444, 0
-+};
-+
-+static const unsigned char IIT_LongEncodingTable[] = {
-+ /* 0 */ 15, 2, 15, 10, 15, 17, 10, 4, 4, 1, 1, 1, 1, 1, 0,
-+ /* 15 */ 0, 15, 2, 15, 9, 15, 17, 4, 1, 1, 1, 1, 0,
-+ /* 28 */ 4, 4, 4, 15, 1, 11, 4, 1, 1, 1, 0,
-+ /* 39 */ 0, 15, 2, 10, 4, 4, 4, 1, 1, 0,
-+ /* 49 */ 21, 15, 2, 1, 15, 2, 15, 2, 1, 0,
-+ /* 59 */ 15, 2, 15, 2, 15, 2, 15, 2, 1, 0,
-+ /* 69 */ 0, 15, 3, 33, 3, 31, 3, 1, 0,
-+ /* 78 */ 0, 15, 3, 34, 3, 4, 31, 3, 1, 0,
-+ /* 88 */ 0, 15, 3, 15, 12, 4, 31, 3, 1, 0,
-+ /* 98 */ 0, 15, 4, 15, 12, 15, 17, 4, 1, 0,
-+ /* 108 */ 21, 15, 1, 1, 15, 1, 15, 1, 0,
-+ /* 117 */ 0, 19, 15, 1, 0,
-+ /* 122 */ 2, 18, 1, 0,
-+ /* 126 */ 15, 1, 25, 1, 0,
-+ /* 131 */ 36, 1, 36, 1, 36, 1, 0,
-+ /* 138 */ 37, 1, 37, 1, 37, 1, 0,
-+ /* 145 */ 27, 2, 2, 0,
-+ /* 149 */ 11, 3, 12, 2, 12, 2, 11, 3, 2, 0,
-+ /* 159 */ 11, 3, 11, 3, 11, 3, 11, 3, 2, 0,
-+ /* 169 */ 11, 3, 12, 2, 12, 2, 4, 11, 3, 2, 0,
-+ /* 180 */ 11, 3, 10, 4, 10, 4, 11, 3, 2, 0,
-+ /* 190 */ 12, 2, 12, 2, 4, 12, 2, 4, 2, 0,
-+ /* 200 */ 10, 4, 10, 4, 10, 4, 10, 4, 4, 2, 0,
-+ /* 211 */ 10, 7, 10, 7, 10, 7, 10, 4, 4, 2, 0,
-+ /* 222 */ 11, 4, 11, 4, 11, 4, 11, 4, 4, 2, 0,
-+ /* 233 */ 11, 7, 11, 7, 11, 7, 11, 4, 4, 2, 0,
-+ /* 244 */ 9, 5, 9, 5, 9, 5, 9, 5, 4, 2, 0,
-+ /* 255 */ 9, 8, 9, 8, 9, 8, 9, 5, 4, 2, 0,
-+ /* 266 */ 10, 5, 10, 5, 10, 5, 10, 5, 4, 2, 0,
-+ /* 277 */ 10, 8, 10, 8, 10, 8, 10, 5, 4, 2, 0,
-+ /* 288 */ 11, 5, 11, 5, 11, 5, 11, 5, 4, 2, 0,
-+ /* 299 */ 10, 4, 11, 3, 11, 3, 10, 4, 2, 0,
-+ /* 309 */ 10, 4, 10, 4, 14, 2, 10, 4, 10, 4, 2, 0,
-+ /* 321 */ 10, 4, 10, 4, 10, 4, 10, 4, 2, 0,
-+ /* 331 */ 10, 4, 10, 4, 14, 2, 9, 5, 10, 4, 2, 0,
-+ /* 343 */ 10, 4, 10, 4, 14, 2, 10, 5, 10, 4, 2, 0,
-+ /* 355 */ 10, 7, 10, 7, 10, 7, 10, 4, 2, 0,
-+ /* 365 */ 11, 4, 12, 3, 12, 3, 11, 4, 2, 0,
-+ /* 375 */ 11, 4, 11, 4, 10, 4, 4, 11, 4, 2, 0,
-+ /* 386 */ 11, 4, 11, 4, 11, 4, 4, 11, 4, 2, 0,
-+ /* 397 */ 11, 4, 11, 4, 14, 2, 11, 4, 11, 4, 2, 0,
-+ /* 409 */ 11, 4, 11, 4, 11, 4, 11, 4, 2, 0,
-+ /* 419 */ 11, 7, 11, 7, 11, 7, 11, 4, 2, 0,
-+ /* 429 */ 9, 5, 9, 5, 14, 2, 10, 4, 9, 5, 2, 0,
-+ /* 441 */ 9, 5, 10, 4, 10, 4, 9, 5, 2, 0,
-+ /* 451 */ 9, 5, 9, 5, 14, 2, 9, 5, 9, 5, 2, 0,
-+ /* 463 */ 9, 5, 9, 5, 9, 5, 9, 5, 2, 0,
-+ /* 473 */ 9, 8, 9, 8, 9, 8, 9, 5, 2, 0,
-+ /* 483 */ 10, 5, 10, 5, 9, 5, 4, 10, 5, 2, 0,
-+ /* 494 */ 10, 5, 10, 5, 10, 5, 4, 10, 5, 2, 0,
-+ /* 505 */ 10, 5, 10, 5, 14, 2, 10, 4, 10, 5, 2, 0,
-+ /* 517 */ 10, 5, 11, 4, 11, 4, 10, 5, 2, 0,
-+ /* 527 */ 10, 5, 10, 5, 14, 2, 10, 5, 10, 5, 2, 0,
-+ /* 539 */ 10, 5, 10, 5, 10, 5, 10, 5, 2, 0,
-+ /* 549 */ 10, 8, 10, 8, 10, 8, 10, 5, 2, 0,
-+ /* 559 */ 11, 5, 11, 5, 9, 5, 4, 11, 5, 2, 0,
-+ /* 570 */ 11, 5, 11, 5, 10, 5, 4, 11, 5, 2, 0,
-+ /* 581 */ 11, 5, 11, 5, 11, 5, 4, 11, 5, 2, 0,
-+ /* 592 */ 11, 5, 12, 4, 12, 4, 11, 5, 2, 0,
-+ /* 602 */ 11, 5, 11, 5, 11, 5, 11, 5, 2, 0,
-+ /* 612 */ 10, 7, 10, 7, 10, 7, 4, 10, 7, 2, 0,
-+ /* 623 */ 10, 7, 10, 7, 14, 2, 10, 4, 10, 7, 2, 0,
-+ /* 635 */ 10, 7, 10, 7, 10, 4, 10, 7, 2, 0,
-+ /* 645 */ 10, 7, 10, 7, 14, 2, 9, 5, 10, 7, 2, 0,
-+ /* 657 */ 10, 7, 10, 7, 14, 2, 10, 5, 10, 7, 2, 0,
-+ /* 669 */ 10, 7, 10, 4, 10, 7, 10, 7, 2, 0,
-+ /* 679 */ 10, 7, 10, 7, 10, 7, 10, 7, 2, 0,
-+ /* 689 */ 11, 7, 11, 7, 10, 7, 4, 11, 7, 2, 0,
-+ /* 700 */ 11, 7, 11, 7, 11, 7, 4, 11, 7, 2, 0,
-+ /* 711 */ 11, 7, 11, 7, 14, 2, 11, 4, 11, 7, 2, 0,
-+ /* 723 */ 11, 7, 11, 7, 11, 4, 11, 7, 2, 0,
-+ /* 733 */ 11, 7, 11, 4, 11, 7, 11, 7, 2, 0,
-+ /* 743 */ 11, 7, 11, 7, 11, 7, 11, 7, 2, 0,
-+ /* 753 */ 27, 7, 2, 0,
-+ /* 757 */ 9, 8, 9, 8, 9, 8, 4, 9, 8, 2, 0,
-+ /* 768 */ 9, 8, 9, 8, 14, 2, 10, 4, 9, 8, 2, 0,
-+ /* 780 */ 9, 8, 9, 8, 14, 2, 9, 5, 9, 8, 2, 0,
-+ /* 792 */ 9, 8, 9, 8, 9, 5, 9, 8, 2, 0,
-+ /* 802 */ 9, 8, 9, 5, 9, 8, 9, 8, 2, 0,
-+ /* 812 */ 9, 8, 9, 8, 9, 8, 9, 8, 2, 0,
-+ /* 822 */ 10, 8, 10, 8, 9, 8, 4, 10, 8, 2, 0,
-+ /* 833 */ 10, 8, 10, 8, 10, 8, 4, 10, 8, 2, 0,
-+ /* 844 */ 10, 8, 10, 8, 14, 2, 10, 4, 10, 8, 2, 0,
-+ /* 856 */ 10, 8, 10, 8, 14, 2, 10, 5, 10, 8, 2, 0,
-+ /* 868 */ 10, 8, 10, 8, 10, 5, 10, 8, 2, 0,
-+ /* 878 */ 10, 8, 10, 5, 10, 8, 10, 8, 2, 0,
-+ /* 888 */ 10, 8, 10, 8, 10, 8, 10, 8, 2, 0,
-+ /* 898 */ 11, 8, 11, 8, 9, 8, 4, 11, 8, 2, 0,
-+ /* 909 */ 11, 8, 11, 8, 10, 8, 4, 11, 8, 2, 0,
-+ /* 920 */ 11, 8, 11, 8, 11, 8, 4, 11, 8, 2, 0,
-+ /* 931 */ 11, 8, 11, 8, 11, 5, 11, 8, 2, 0,
-+ /* 941 */ 11, 8, 11, 5, 11, 8, 11, 8, 2, 0,
-+ /* 951 */ 11, 2, 11, 2, 11, 2, 11, 2, 11, 2, 11, 2, 11, 2, 0,
-+ /* 966 */ 21, 12, 2, 4, 12, 2, 12, 2, 0,
-+ /* 975 */ 21, 12, 2, 4, 12, 2, 0,
-+ /* 982 */ 18, 4, 14, 2, 14, 2, 14, 2, 0,
-+ /* 991 */ 21, 4, 4, 14, 2, 0,
-+ /* 997 */ 21, 5, 5, 14, 2, 0,
-+ /* 1003 */ 0, 17, 17, 14, 2, 0,
-+ /* 1009 */ 14, 2, 18, 14, 2, 0,
-+ /* 1015 */ 16, 2, 16, 2, 16, 2, 0,
-+ /* 1022 */ 11, 5, 16, 2, 16, 2, 0,
-+ /* 1029 */ 5, 16, 2, 0,
-+ /* 1033 */ 17, 17, 17, 2, 0,
-+ /* 1038 */ 12, 2, 12, 2, 12, 2, 12, 2, 3, 0,
-+ /* 1048 */ 12, 2, 11, 3, 11, 3, 12, 2, 3, 0,
-+ /* 1058 */ 0, 5, 4, 4, 4, 3, 3, 3, 3, 0,
-+ /* 1068 */ 12, 3, 13, 2, 13, 2, 12, 3, 3, 0,
-+ /* 1078 */ 12, 3, 12, 3, 12, 3, 12, 3, 3, 0,
-+ /* 1088 */ 12, 3, 13, 2, 13, 2, 4, 12, 3, 3, 0,
-+ /* 1099 */ 12, 3, 11, 4, 11, 4, 12, 3, 3, 0,
-+ /* 1109 */ 12, 4, 12, 4, 12, 4, 12, 4, 4, 3, 0,
-+ /* 1120 */ 12, 4, 13, 3, 13, 3, 12, 4, 3, 0,
-+ /* 1130 */ 12, 4, 12, 4, 10, 4, 4, 12, 4, 3, 0,
-+ /* 1141 */ 12, 4, 12, 4, 11, 4, 4, 12, 4, 3, 0,
-+ /* 1152 */ 12, 4, 12, 4, 12, 4, 4, 12, 4, 3, 0,
-+ /* 1163 */ 12, 4, 12, 4, 12, 4, 12, 4, 3, 0,
-+ /* 1173 */ 12, 7, 12, 7, 10, 7, 4, 12, 7, 3, 0,
-+ /* 1184 */ 12, 7, 12, 7, 11, 7, 4, 12, 7, 3, 0,
-+ /* 1195 */ 12, 7, 12, 7, 12, 7, 4, 12, 7, 3, 0,
-+ /* 1206 */ 12, 7, 12, 7, 12, 4, 12, 7, 3, 0,
-+ /* 1216 */ 12, 7, 12, 4, 12, 7, 12, 7, 3, 0,
-+ /* 1226 */ 21, 12, 2, 4, 11, 3, 11, 3, 0,
-+ /* 1235 */ 21, 11, 3, 4, 11, 3, 11, 3, 0,
-+ /* 1244 */ 21, 11, 3, 4, 11, 3, 0,
-+ /* 1251 */ 15, 3, 33, 3, 31, 3, 1, 15, 3, 0,
-+ /* 1261 */ 15, 3, 34, 3, 4, 31, 3, 1, 15, 3, 0,
-+ /* 1272 */ 15, 3, 15, 12, 4, 31, 3, 1, 15, 3, 0,
-+ /* 1283 */ 15, 3, 15, 3, 12, 2, 12, 2, 12, 2, 12, 2, 15, 3, 0,
-+ /* 1298 */ 15, 3, 15, 3, 12, 2, 12, 2, 12, 2, 15, 3, 0,
-+ /* 1311 */ 15, 3, 15, 3, 12, 2, 12, 2, 15, 3, 0,
-+ /* 1322 */ 15, 3, 25, 3, 0,
-+ /* 1327 */ 15, 3, 25, 3, 25, 3, 0,
-+ /* 1334 */ 15, 3, 26, 3, 0,
-+ /* 1339 */ 15, 3, 26, 3, 26, 3, 0,
-+ /* 1346 */ 15, 1, 25, 1, 4, 0,
-+ /* 1352 */ 12, 4, 12, 4, 36, 1, 4, 0,
-+ /* 1360 */ 13, 4, 13, 4, 37, 1, 4, 0,
-+ /* 1368 */ 10, 7, 10, 7, 10, 7, 10, 4, 4, 2, 4, 0,
-+ /* 1380 */ 9, 8, 9, 8, 9, 8, 9, 5, 4, 2, 4, 0,
-+ /* 1392 */ 11, 8, 11, 8, 11, 8, 11, 5, 4, 2, 4, 0,
-+ /* 1404 */ 10, 4, 10, 4, 14, 2, 10, 4, 2, 4, 0,
-+ /* 1415 */ 9, 5, 9, 5, 14, 2, 10, 4, 2, 4, 0,
-+ /* 1426 */ 10, 5, 10, 5, 14, 2, 10, 4, 2, 4, 0,
-+ /* 1437 */ 10, 7, 10, 7, 14, 2, 10, 4, 2, 4, 0,
-+ /* 1448 */ 9, 8, 9, 8, 14, 2, 10, 4, 2, 4, 0,
-+ /* 1459 */ 10, 8, 10, 8, 14, 2, 10, 4, 2, 4, 0,
-+ /* 1470 */ 11, 4, 11, 4, 14, 2, 11, 4, 2, 4, 0,
-+ /* 1481 */ 11, 5, 11, 5, 14, 2, 11, 4, 2, 4, 0,
-+ /* 1492 */ 11, 7, 11, 7, 14, 2, 11, 4, 2, 4, 0,
-+ /* 1503 */ 11, 8, 11, 8, 14, 2, 11, 4, 2, 4, 0,
-+ /* 1514 */ 10, 4, 10, 4, 14, 2, 9, 5, 2, 4, 0,
-+ /* 1525 */ 9, 5, 9, 5, 14, 2, 9, 5, 2, 4, 0,
-+ /* 1536 */ 10, 7, 10, 7, 14, 2, 9, 5, 2, 4, 0,
-+ /* 1547 */ 9, 8, 9, 8, 14, 2, 9, 5, 2, 4, 0,
-+ /* 1558 */ 10, 4, 10, 4, 14, 2, 10, 5, 2, 4, 0,
-+ /* 1569 */ 10, 5, 10, 5, 14, 2, 10, 5, 2, 4, 0,
-+ /* 1580 */ 10, 7, 10, 7, 14, 2, 10, 5, 2, 4, 0,
-+ /* 1591 */ 10, 8, 10, 8, 14, 2, 10, 5, 2, 4, 0,
-+ /* 1602 */ 11, 4, 11, 4, 14, 2, 11, 5, 2, 4, 0,
-+ /* 1613 */ 11, 5, 11, 5, 14, 2, 11, 5, 2, 4, 0,
-+ /* 1624 */ 11, 7, 11, 7, 14, 2, 11, 5, 2, 4, 0,
-+ /* 1635 */ 11, 8, 11, 8, 14, 2, 11, 5, 2, 4, 0,
-+ /* 1646 */ 10, 7, 10, 7, 10, 7, 4, 10, 7, 2, 4, 0,
-+ /* 1658 */ 10, 7, 10, 7, 10, 7, 10, 7, 2, 4, 0,
-+ /* 1669 */ 10, 7, 10, 7, 9, 8, 10, 7, 2, 4, 0,
-+ /* 1680 */ 9, 8, 9, 8, 9, 8, 4, 9, 8, 2, 4, 0,
-+ /* 1692 */ 9, 8, 9, 8, 10, 7, 9, 8, 2, 4, 0,
-+ /* 1703 */ 9, 8, 9, 8, 9, 8, 9, 8, 2, 4, 0,
-+ /* 1714 */ 11, 8, 11, 8, 11, 8, 4, 11, 8, 2, 4, 0,
-+ /* 1726 */ 11, 8, 11, 8, 11, 8, 11, 8, 2, 4, 0,
-+ /* 1737 */ 12, 2, 12, 2, 12, 2, 12, 2, 4, 0,
-+ /* 1747 */ 21, 12, 2, 4, 12, 2, 12, 2, 12, 2, 4, 0,
-+ /* 1759 */ 21, 12, 2, 4, 12, 2, 12, 2, 4, 0,
-+ /* 1769 */ 13, 2, 13, 2, 13, 2, 13, 2, 4, 0,
-+ /* 1779 */ 13, 2, 12, 3, 12, 3, 13, 2, 4, 0,
-+ /* 1789 */ 15, 1, 15, 1, 14, 2, 14, 2, 4, 0,
-+ /* 1799 */ 15, 4, 15, 4, 14, 2, 14, 2, 4, 0,
-+ /* 1809 */ 12, 7, 12, 7, 12, 7, 12, 4, 4, 3, 4, 0,
-+ /* 1821 */ 12, 4, 12, 4, 14, 2, 12, 4, 3, 4, 0,
-+ /* 1832 */ 12, 7, 12, 7, 14, 2, 12, 4, 3, 4, 0,
-+ /* 1843 */ 12, 7, 12, 7, 12, 7, 4, 12, 7, 3, 4, 0,
-+ /* 1855 */ 12, 7, 12, 7, 12, 7, 12, 7, 3, 4, 0,
-+ /* 1866 */ 11, 3, 11, 3, 11, 3, 11, 3, 4, 0,
-+ /* 1876 */ 21, 11, 3, 4, 11, 3, 11, 3, 11, 3, 4, 0,
-+ /* 1888 */ 21, 11, 3, 4, 11, 3, 11, 3, 4, 0,
-+ /* 1898 */ 13, 3, 16, 2, 16, 2, 13, 3, 4, 0,
-+ /* 1908 */ 13, 3, 13, 3, 13, 3, 13, 3, 4, 0,
-+ /* 1918 */ 13, 3, 16, 2, 16, 2, 4, 13, 3, 4, 0,
-+ /* 1929 */ 13, 3, 12, 4, 12, 4, 13, 3, 4, 0,
-+ /* 1939 */ 21, 3, 4, 0,
-+ /* 1943 */ 15, 3, 26, 3, 4, 0,
-+ /* 1949 */ 10, 7, 10, 7, 10, 7, 10, 7, 2, 4, 4, 0,
-+ /* 1961 */ 9, 8, 9, 8, 9, 8, 9, 8, 2, 4, 4, 0,
-+ /* 1973 */ 23, 15, 3, 15, 3, 15, 3, 15, 3, 15, 12, 15, 3, 15, 3, 15, 3, 15, 3, 4, 4, 0,
-+ /* 1995 */ 22, 15, 3, 15, 3, 15, 3, 15, 12, 15, 3, 15, 3, 15, 3, 4, 4, 0,
-+ /* 2013 */ 21, 15, 3, 15, 3, 15, 12, 15, 3, 15, 3, 4, 4, 0,
-+ /* 2027 */ 0, 5, 4, 4, 4, 4, 4, 4, 4, 0,
-+ /* 2037 */ 21, 4, 4, 4, 4, 4, 0,
-+ /* 2044 */ 23, 3, 3, 3, 3, 5, 4, 4, 4, 0,
-+ /* 2054 */ 21, 3, 3, 5, 4, 4, 4, 0,
-+ /* 2062 */ 23, 4, 4, 4, 4, 5, 4, 4, 4, 0,
-+ /* 2072 */ 21, 4, 4, 5, 4, 4, 4, 0,
-+ /* 2080 */ 23, 4, 4, 4, 4, 5, 5, 4, 4, 4, 0,
-+ /* 2091 */ 21, 5, 5, 5, 4, 4, 4, 0,
-+ /* 2099 */ 23, 7, 7, 7, 7, 5, 5, 4, 4, 4, 0,
-+ /* 2110 */ 23, 7, 7, 7, 7, 5, 4, 4, 4, 0,
-+ /* 2120 */ 16, 4, 16, 4, 16, 4, 4, 4, 0,
-+ /* 2129 */ 23, 3, 3, 3, 3, 5, 4, 4, 0,
-+ /* 2138 */ 21, 3, 3, 5, 4, 4, 0,
-+ /* 2145 */ 23, 4, 4, 4, 4, 5, 4, 4, 0,
-+ /* 2154 */ 21, 4, 4, 5, 4, 4, 0,
-+ /* 2161 */ 23, 4, 4, 4, 4, 5, 5, 4, 4, 0,
-+ /* 2171 */ 21, 5, 5, 5, 4, 4, 0,
-+ /* 2178 */ 23, 7, 7, 7, 7, 5, 5, 4, 4, 0,
-+ /* 2188 */ 23, 7, 7, 7, 7, 5, 4, 4, 0,
-+ /* 2197 */ 0, 14, 2, 2, 10, 4, 10, 4, 4, 0,
-+ /* 2207 */ 21, 10, 4, 4, 10, 4, 10, 4, 4, 0,
-+ /* 2217 */ 21, 10, 4, 4, 10, 4, 10, 4, 10, 4, 4, 0,
-+ /* 2229 */ 10, 4, 10, 4, 10, 4, 10, 4, 4, 0,
-+ /* 2239 */ 0, 14, 2, 2, 9, 5, 10, 4, 4, 0,
-+ /* 2249 */ 0, 14, 2, 2, 10, 5, 10, 4, 4, 0,
-+ /* 2259 */ 0, 14, 2, 2, 11, 4, 11, 4, 4, 0,
-+ /* 2269 */ 0, 14, 2, 2, 11, 5, 11, 4, 4, 0,
-+ /* 2279 */ 0, 15, 4, 15, 11, 15, 11, 4, 4, 0,
-+ /* 2289 */ 0, 15, 4, 15, 11, 15, 11, 15, 11, 4, 4, 0,
-+ /* 2301 */ 0, 15, 4, 15, 11, 15, 11, 15, 11, 15, 11, 4, 4, 0,
-+ /* 2315 */ 36, 1, 36, 1, 12, 4, 4, 0,
-+ /* 2323 */ 0, 14, 2, 3, 12, 4, 12, 4, 4, 0,
-+ /* 2333 */ 12, 4, 12, 4, 12, 4, 12, 4, 4, 0,
-+ /* 2343 */ 13, 4, 13, 4, 12, 4, 12, 4, 4, 0,
-+ /* 2353 */ 37, 1, 37, 1, 13, 4, 4, 0,
-+ /* 2361 */ 13, 4, 13, 4, 13, 4, 13, 4, 4, 0,
-+ /* 2371 */ 16, 4, 16, 4, 13, 4, 13, 4, 4, 0,
-+ /* 2381 */ 16, 4, 16, 4, 13, 4, 4, 0,
-+ /* 2389 */ 13, 4, 13, 4, 16, 4, 4, 0,
-+ /* 2397 */ 16, 4, 16, 4, 16, 4, 4, 0,
-+ /* 2405 */ 17, 17, 4, 4, 0,
-+ /* 2410 */ 15, 0, 18, 4, 4, 0,
-+ /* 2416 */ 21, 4, 4, 0,
-+ /* 2420 */ 23, 3, 3, 3, 3, 5, 4, 0,
-+ /* 2428 */ 21, 3, 3, 5, 4, 0,
-+ /* 2434 */ 23, 4, 4, 4, 4, 5, 4, 0,
-+ /* 2442 */ 21, 4, 4, 5, 4, 0,
-+ /* 2448 */ 16, 4, 16, 4, 16, 4, 5, 4, 0,
-+ /* 2457 */ 23, 4, 4, 4, 4, 5, 5, 4, 0,
-+ /* 2466 */ 21, 5, 5, 5, 4, 0,
-+ /* 2472 */ 23, 7, 7, 7, 7, 5, 5, 4, 0,
-+ /* 2481 */ 23, 7, 7, 7, 7, 5, 4, 0,
-+ /* 2489 */ 0, 14, 2, 2, 10, 4, 9, 5, 4, 0,
-+ /* 2499 */ 0, 14, 2, 2, 9, 5, 9, 5, 4, 0,
-+ /* 2509 */ 9, 5, 9, 5, 9, 5, 9, 5, 4, 0,
-+ /* 2519 */ 0, 14, 2, 2, 10, 4, 10, 5, 4, 0,
-+ /* 2529 */ 0, 14, 2, 2, 10, 5, 10, 5, 4, 0,
-+ /* 2539 */ 0, 14, 2, 2, 11, 4, 11, 5, 4, 0,
-+ /* 2549 */ 0, 14, 2, 2, 11, 5, 11, 5, 4, 0,
-+ /* 2559 */ 21, 5, 4, 0,
-+ /* 2563 */ 0, 14, 2, 2, 10, 4, 10, 7, 4, 0,
-+ /* 2573 */ 0, 14, 2, 2, 9, 5, 10, 7, 4, 0,
-+ /* 2583 */ 0, 14, 2, 2, 10, 5, 10, 7, 4, 0,
-+ /* 2593 */ 0, 14, 2, 2, 11, 4, 11, 7, 4, 0,
-+ /* 2603 */ 0, 14, 2, 2, 11, 5, 11, 7, 4, 0,
-+ /* 2613 */ 0, 14, 2, 3, 12, 4, 12, 7, 4, 0,
-+ /* 2623 */ 21, 9, 5, 4, 9, 8, 4, 0,
-+ /* 2631 */ 0, 14, 2, 2, 10, 4, 9, 8, 4, 0,
-+ /* 2641 */ 0, 14, 2, 2, 9, 5, 9, 8, 4, 0,
-+ /* 2651 */ 0, 14, 2, 2, 10, 4, 10, 8, 4, 0,
-+ /* 2661 */ 0, 14, 2, 2, 10, 5, 10, 8, 4, 0,
-+ /* 2671 */ 0, 14, 2, 2, 11, 4, 11, 8, 4, 0,
-+ /* 2681 */ 0, 14, 2, 2, 11, 5, 11, 8, 4, 0,
-+ /* 2691 */ 21, 10, 4, 4, 10, 4, 0,
-+ /* 2698 */ 21, 11, 3, 4, 10, 4, 10, 4, 0,
-+ /* 2707 */ 21, 10, 4, 4, 10, 4, 10, 4, 0,
-+ /* 2716 */ 0, 15, 4, 15, 11, 15, 11, 15, 11, 4, 0,
-+ /* 2727 */ 0, 15, 4, 15, 11, 15, 11, 15, 11, 15, 11, 4, 0,
-+ /* 2740 */ 36, 1, 36, 1, 12, 4, 12, 4, 0,
-+ /* 2749 */ 12, 4, 36, 1, 12, 4, 12, 4, 0,
-+ /* 2758 */ 13, 4, 36, 1, 12, 4, 12, 4, 0,
-+ /* 2767 */ 23, 15, 3, 15, 3, 15, 3, 15, 3, 15, 12, 4, 0,
-+ /* 2780 */ 22, 15, 3, 15, 3, 15, 3, 15, 12, 4, 0,
-+ /* 2791 */ 21, 15, 3, 15, 3, 15, 12, 4, 0,
-+ /* 2800 */ 37, 1, 37, 1, 13, 4, 13, 4, 0,
-+ /* 2809 */ 13, 4, 37, 1, 13, 4, 13, 4, 0,
-+ /* 2818 */ 16, 4, 37, 1, 13, 4, 13, 4, 0,
-+ /* 2827 */ 16, 4, 16, 4, 13, 4, 13, 4, 0,
-+ /* 2836 */ 16, 4, 16, 4, 13, 4, 0,
-+ /* 2843 */ 0, 14, 20, 5, 15, 4, 0,
-+ /* 2850 */ 5, 19, 15, 4, 0,
-+ /* 2855 */ 13, 4, 16, 4, 0,
-+ /* 2860 */ 16, 4, 16, 4, 16, 4, 0,
-+ /* 2867 */ 4, 17, 4, 0,
-+ /* 2871 */ 17, 17, 4, 0,
-+ /* 2875 */ 16, 2, 2, 16, 2, 5, 0,
-+ /* 2882 */ 16, 2, 16, 2, 16, 2, 16, 2, 5, 0,
-+ /* 2892 */ 5, 16, 2, 16, 2, 5, 0,
-+ /* 2899 */ 16, 2, 13, 3, 13, 3, 16, 2, 5, 0,
-+ /* 2909 */ 5, 16, 2, 16, 2, 4, 5, 0,
-+ /* 2917 */ 21, 10, 4, 4, 9, 5, 9, 5, 0,
-+ /* 2926 */ 21, 9, 5, 4, 9, 5, 9, 5, 0,
-+ /* 2935 */ 23, 4, 4, 4, 4, 5, 4, 7, 0,
-+ /* 2944 */ 23, 4, 4, 4, 4, 5, 5, 4, 7, 0,
-+ /* 2954 */ 23, 7, 7, 7, 7, 5, 5, 4, 7, 0,
-+ /* 2964 */ 23, 7, 7, 7, 7, 5, 4, 7, 0,
-+ /* 2973 */ 23, 4, 4, 4, 4, 5, 7, 0,
-+ /* 2981 */ 23, 4, 4, 4, 4, 5, 5, 7, 0,
-+ /* 2990 */ 23, 7, 7, 7, 7, 5, 5, 7, 0,
-+ /* 2999 */ 23, 7, 7, 7, 7, 5, 7, 0,
-+ /* 3007 */ 23, 4, 4, 4, 4, 5, 4, 7, 7, 0,
-+ /* 3017 */ 23, 4, 4, 4, 4, 5, 5, 4, 7, 7, 0,
-+ /* 3028 */ 23, 7, 7, 7, 7, 5, 5, 4, 7, 7, 0,
-+ /* 3039 */ 23, 7, 7, 7, 7, 5, 4, 7, 7, 0,
-+ /* 3049 */ 23, 4, 4, 4, 4, 5, 7, 7, 0,
-+ /* 3058 */ 23, 4, 4, 4, 4, 5, 5, 7, 7, 0,
-+ /* 3068 */ 23, 7, 7, 7, 7, 5, 5, 7, 7, 0,
-+ /* 3078 */ 23, 7, 7, 7, 7, 5, 7, 7, 0,
-+ /* 3087 */ 23, 4, 4, 4, 4, 5, 4, 7, 7, 7, 0,
-+ /* 3098 */ 23, 4, 4, 4, 4, 5, 5, 4, 7, 7, 7, 0,
-+ /* 3110 */ 23, 7, 7, 7, 7, 5, 5, 4, 7, 7, 7, 0,
-+ /* 3122 */ 23, 7, 7, 7, 7, 5, 4, 7, 7, 7, 0,
-+ /* 3133 */ 23, 4, 4, 4, 4, 5, 7, 7, 7, 0,
-+ /* 3143 */ 23, 4, 4, 4, 4, 5, 5, 7, 7, 7, 0,
-+ /* 3154 */ 23, 7, 7, 7, 7, 5, 5, 7, 7, 7, 0,
-+ /* 3165 */ 23, 7, 7, 7, 7, 5, 7, 7, 7, 0,
-+ /* 3175 */ 23, 4, 4, 4, 4, 5, 4, 7, 7, 7, 7, 0,
-+ /* 3187 */ 23, 4, 4, 4, 4, 5, 5, 4, 7, 7, 7, 7, 0,
-+ /* 3200 */ 23, 7, 7, 7, 7, 5, 5, 4, 7, 7, 7, 7, 0,
-+ /* 3213 */ 23, 7, 7, 7, 7, 5, 4, 7, 7, 7, 7, 0,
-+ /* 3225 */ 23, 4, 4, 4, 4, 5, 7, 7, 7, 7, 0,
-+ /* 3236 */ 23, 4, 4, 4, 4, 5, 5, 7, 7, 7, 7, 0,
-+ /* 3248 */ 23, 7, 7, 7, 7, 5, 5, 7, 7, 7, 7, 0,
-+ /* 3260 */ 23, 7, 7, 7, 7, 5, 7, 7, 7, 7, 0,
-+ /* 3271 */ 23, 4, 4, 4, 4, 5, 4, 7, 7, 7, 7, 7, 7, 0,
-+ /* 3285 */ 23, 4, 4, 4, 4, 5, 5, 4, 7, 7, 7, 7, 7, 7, 0,
-+ /* 3300 */ 23, 7, 7, 7, 7, 5, 5, 4, 7, 7, 7, 7, 7, 7, 0,
-+ /* 3315 */ 23, 7, 7, 7, 7, 5, 4, 7, 7, 7, 7, 7, 7, 0,
-+ /* 3329 */ 23, 4, 4, 4, 4, 5, 7, 7, 7, 7, 7, 7, 0,
-+ /* 3342 */ 23, 4, 4, 4, 4, 5, 5, 7, 7, 7, 7, 7, 7, 0,
-+ /* 3356 */ 23, 7, 7, 7, 7, 5, 5, 7, 7, 7, 7, 7, 7, 0,
-+ /* 3370 */ 23, 7, 7, 7, 7, 5, 7, 7, 7, 7, 7, 7, 0,
-+ /* 3383 */ 23, 4, 4, 4, 4, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0,
-+ /* 3399 */ 23, 4, 4, 4, 4, 5, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0,
-+ /* 3416 */ 23, 7, 7, 7, 7, 5, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0,
-+ /* 3433 */ 23, 7, 7, 7, 7, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0,
-+ /* 3449 */ 17, 10, 7, 0,
-+ /* 3453 */ 21, 9, 5, 4, 9, 8, 9, 8, 0,
-+ /* 3462 */ 9, 8, 9, 8, 9, 8, 9, 8, 0,
-+ /* 3471 */ 17, 9, 8, 0,
-+ /* 3475 */ 10, 8, 10, 8, 10, 8, 10, 8, 0,
-+ /* 3484 */ 0, 15, 3, 15, 3, 15, 3, 15, 12, 0,
-+ /* 3494 */ 0, 15, 3, 15, 3, 15, 3, 15, 3, 15, 12, 0,
-+ /* 3506 */ 23, 15, 3, 15, 3, 15, 3, 15, 3, 15, 12, 0,
-+ /* 3518 */ 22, 15, 3, 15, 3, 15, 3, 15, 12, 0,
-+ /* 3528 */ 21, 15, 3, 15, 3, 15, 12, 0,
-+ /* 3536 */ 0, 15, 3, 15, 3, 5, 15, 12, 0,
-+ /* 3545 */ 0, 15, 3, 15, 3, 15, 3, 5, 15, 12, 0,
-+ /* 3556 */ 0, 15, 3, 15, 3, 15, 3, 15, 3, 5, 15, 12, 0,
-+ /* 3569 */ 23, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 5, 15, 12, 0,
-+ /* 3590 */ 22, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 5, 15, 12, 0,
-+ /* 3607 */ 21, 15, 3, 15, 3, 15, 3, 15, 3, 5, 15, 12, 0,
-+ /* 3620 */ 4, 17, 0,
-+ /* 3623 */ 10, 7, 10, 7, 17, 0,
-+ /* 3629 */ 9, 8, 17, 0,
-+ /* 3633 */ 0, 14, 17, 17, 0,
-+ /* 3638 */ 17, 17, 17, 0,
-+ /* 3642 */ 15, 0, 18, 0,
-+ /* 3646 */ 1, 18, 0,
-+ /* 3649 */ 15, 4, 18, 0,
-+ /* 3653 */ 15, 1, 19, 0,
-+ /* 3657 */ 1, 14, 2, 19, 0,
-+ /* 3662 */ 21, 14, 2, 1, 14, 2, 4, 19, 0,
-+ /* 3671 */ 0, 19, 5, 19, 19, 0,
-+ /* 3677 */ 0, 19, 19, 19, 0,
-+ /* 3682 */ 15, 0, 29, 0,
-+ /* 3686 */ 0, 1, 29, 0,
-+ /* 3690 */ 0, 5, 4, 14, 2, 4, 29, 0,
-+ /* 3698 */ 5, 5, 4, 14, 2, 4, 29, 0,
-+ /* 3706 */ 18, 5, 4, 15, 4, 4, 4, 29, 0,
-+ /* 3715 */ 0, 5, 4, 29, 0,
-+ /* 3720 */ 28, 35, 28, 35, 28, 35, 28, 35, 0,
-+ 255
-+};
-+
-+#endif
-+
-+// Add parameter attributes that are not common to all intrinsics.
-+#ifdef GET_INTRINSIC_ATTRIBUTES
-+AttributeSet Intrinsic::getAttributes(LLVMContext &C, ID id) {
-+ static const uint8_t IntrinsicsToAttributesMap[] = {
-+ 1, // llvm.addressofreturnaddress
-+ 2, // llvm.adjust.trampoline
-+ 3, // llvm.annotation
-+ 3, // llvm.assume
-+ 1, // llvm.bitreverse
-+ 1, // llvm.bswap
-+ 1, // llvm.canonicalize
-+ 1, // llvm.ceil
-+ 3, // llvm.clear_cache
-+ 1, // llvm.convert.from.fp16
-+ 1, // llvm.convert.to.fp16
-+ 3, // llvm.convertff
-+ 3, // llvm.convertfsi
-+ 3, // llvm.convertfui
-+ 3, // llvm.convertsif
-+ 3, // llvm.convertss
-+ 3, // llvm.convertsu
-+ 3, // llvm.convertuif
-+ 3, // llvm.convertus
-+ 3, // llvm.convertuu
-+ 1, // llvm.copysign
-+ 3, // llvm.coro.alloc
-+ 4, // llvm.coro.begin
-+ 5, // llvm.coro.destroy
-+ 6, // llvm.coro.done
-+ 3, // llvm.coro.end
-+ 1, // llvm.coro.frame
-+ 7, // llvm.coro.free
-+ 8, // llvm.coro.id
-+ 9, // llvm.coro.param
-+ 10, // llvm.coro.promise
-+ 5, // llvm.coro.resume
-+ 3, // llvm.coro.save
-+ 1, // llvm.coro.size
-+ 11, // llvm.coro.subfn.addr
-+ 3, // llvm.coro.suspend
-+ 1, // llvm.cos
-+ 1, // llvm.ctlz
-+ 1, // llvm.ctpop
-+ 1, // llvm.cttz
-+ 1, // llvm.dbg.declare
-+ 1, // llvm.dbg.value
-+ 3, // llvm.debugtrap
-+ 1, // llvm.donothing
-+ 3, // llvm.eh.dwarf.cfa
-+ 1, // llvm.eh.exceptioncode
-+ 1, // llvm.eh.exceptionpointer
-+ 3, // llvm.eh.return.i32
-+ 3, // llvm.eh.return.i64
-+ 1, // llvm.eh.sjlj.callsite
-+ 3, // llvm.eh.sjlj.functioncontext
-+ 12, // llvm.eh.sjlj.longjmp
-+ 1, // llvm.eh.sjlj.lsda
-+ 3, // llvm.eh.sjlj.setjmp
-+ 3, // llvm.eh.sjlj.setup.dispatch
-+ 1, // llvm.eh.typeid.for
-+ 3, // llvm.eh.unwind.init
-+ 1, // llvm.exp
-+ 1, // llvm.exp2
-+ 1, // llvm.expect
-+ 5, // llvm.experimental.deoptimize
-+ 13, // llvm.experimental.gc.relocate
-+ 13, // llvm.experimental.gc.result
-+ 5, // llvm.experimental.gc.statepoint
-+ 5, // llvm.experimental.guard
-+ 5, // llvm.experimental.patchpoint.i64
-+ 5, // llvm.experimental.patchpoint.void
-+ 5, // llvm.experimental.stackmap
-+ 1, // llvm.fabs
-+ 1, // llvm.floor
-+ 3, // llvm.flt.rounds
-+ 1, // llvm.fma
-+ 1, // llvm.fmuladd
-+ 1, // llvm.frameaddress
-+ 2, // llvm.gcread
-+ 3, // llvm.gcroot
-+ 14, // llvm.gcwrite
-+ 3, // llvm.get.dynamic.area.offset
-+ 15, // llvm.init.trampoline
-+ 3, // llvm.instrprof.increment
-+ 3, // llvm.instrprof.increment.step
-+ 3, // llvm.instrprof.value.profile
-+ 16, // llvm.invariant.end
-+ 1, // llvm.invariant.group.barrier
-+ 17, // llvm.invariant.start
-+ 17, // llvm.lifetime.end
-+ 17, // llvm.lifetime.start
-+ 2, // llvm.load.relative
-+ 1, // llvm.localaddress
-+ 3, // llvm.localescape
-+ 1, // llvm.localrecover
-+ 1, // llvm.log
-+ 1, // llvm.log10
-+ 1, // llvm.log2
-+ 12, // llvm.longjmp
-+ 18, // llvm.masked.compressstore
-+ 13, // llvm.masked.expandload
-+ 13, // llvm.masked.gather
-+ 2, // llvm.masked.load
-+ 3, // llvm.masked.scatter
-+ 18, // llvm.masked.store
-+ 1, // llvm.maxnum
-+ 19, // llvm.memcpy
-+ 20, // llvm.memmove
-+ 21, // llvm.memset
-+ 1, // llvm.minnum
-+ 1, // llvm.nearbyint
-+ 1, // llvm.objectsize
-+ 3, // llvm.pcmarker
-+ 1, // llvm.pow
-+ 1, // llvm.powi
-+ 15, // llvm.prefetch
-+ 3, // llvm.ptr.annotation
-+ 13, // llvm.read_register
-+ 3, // llvm.readcyclecounter
-+ 1, // llvm.returnaddress
-+ 1, // llvm.rint
-+ 1, // llvm.round
-+ 1, // llvm.sadd.with.overflow
-+ 3, // llvm.setjmp
-+ 12, // llvm.siglongjmp
-+ 3, // llvm.sigsetjmp
-+ 1, // llvm.sin
-+ 1, // llvm.smul.with.overflow
-+ 1, // llvm.sqrt
-+ 1, // llvm.ssub.with.overflow
-+ 3, // llvm.stackguard
-+ 3, // llvm.stackprotector
-+ 3, // llvm.stackrestore
-+ 3, // llvm.stacksave
-+ 1, // llvm.thread.pointer
-+ 12, // llvm.trap
-+ 1, // llvm.trunc
-+ 1, // llvm.type.checked.load
-+ 1, // llvm.type.test
-+ 1, // llvm.uadd.with.overflow
-+ 1, // llvm.umul.with.overflow
-+ 1, // llvm.usub.with.overflow
-+ 3, // llvm.va_copy
-+ 3, // llvm.va_end
-+ 3, // llvm.va_start
-+ 3, // llvm.var.annotation
-+ 3, // llvm.write_register
-+ 3, // llvm.aarch64.clrex
-+ 1, // llvm.aarch64.crc32b
-+ 1, // llvm.aarch64.crc32cb
-+ 1, // llvm.aarch64.crc32ch
-+ 1, // llvm.aarch64.crc32cw
-+ 1, // llvm.aarch64.crc32cx
-+ 1, // llvm.aarch64.crc32h
-+ 1, // llvm.aarch64.crc32w
-+ 1, // llvm.aarch64.crc32x
-+ 1, // llvm.aarch64.crypto.aesd
-+ 1, // llvm.aarch64.crypto.aese
-+ 1, // llvm.aarch64.crypto.aesimc
-+ 1, // llvm.aarch64.crypto.aesmc
-+ 1, // llvm.aarch64.crypto.sha1c
-+ 1, // llvm.aarch64.crypto.sha1h
-+ 1, // llvm.aarch64.crypto.sha1m
-+ 1, // llvm.aarch64.crypto.sha1p
-+ 1, // llvm.aarch64.crypto.sha1su0
-+ 1, // llvm.aarch64.crypto.sha1su1
-+ 1, // llvm.aarch64.crypto.sha256h
-+ 1, // llvm.aarch64.crypto.sha256h2
-+ 1, // llvm.aarch64.crypto.sha256su0
-+ 1, // llvm.aarch64.crypto.sha256su1
-+ 3, // llvm.aarch64.dmb
-+ 3, // llvm.aarch64.dsb
-+ 3, // llvm.aarch64.hint
-+ 3, // llvm.aarch64.isb
-+ 3, // llvm.aarch64.ldaxp
-+ 3, // llvm.aarch64.ldaxr
-+ 3, // llvm.aarch64.ldxp
-+ 3, // llvm.aarch64.ldxr
-+ 1, // llvm.aarch64.neon.abs
-+ 1, // llvm.aarch64.neon.addhn
-+ 1, // llvm.aarch64.neon.addp
-+ 1, // llvm.aarch64.neon.cls
-+ 1, // llvm.aarch64.neon.fabd
-+ 1, // llvm.aarch64.neon.facge
-+ 1, // llvm.aarch64.neon.facgt
-+ 1, // llvm.aarch64.neon.faddv
-+ 1, // llvm.aarch64.neon.fcvtas
-+ 1, // llvm.aarch64.neon.fcvtau
-+ 1, // llvm.aarch64.neon.fcvtms
-+ 1, // llvm.aarch64.neon.fcvtmu
-+ 1, // llvm.aarch64.neon.fcvtns
-+ 1, // llvm.aarch64.neon.fcvtnu
-+ 1, // llvm.aarch64.neon.fcvtps
-+ 1, // llvm.aarch64.neon.fcvtpu
-+ 1, // llvm.aarch64.neon.fcvtxn
-+ 1, // llvm.aarch64.neon.fcvtzs
-+ 1, // llvm.aarch64.neon.fcvtzu
-+ 1, // llvm.aarch64.neon.fmax
-+ 1, // llvm.aarch64.neon.fmaxnm
-+ 1, // llvm.aarch64.neon.fmaxnmp
-+ 1, // llvm.aarch64.neon.fmaxnmv
-+ 1, // llvm.aarch64.neon.fmaxp
-+ 1, // llvm.aarch64.neon.fmaxv
-+ 1, // llvm.aarch64.neon.fmin
-+ 1, // llvm.aarch64.neon.fminnm
-+ 1, // llvm.aarch64.neon.fminnmp
-+ 1, // llvm.aarch64.neon.fminnmv
-+ 1, // llvm.aarch64.neon.fminp
-+ 1, // llvm.aarch64.neon.fminv
-+ 1, // llvm.aarch64.neon.fmulx
-+ 1, // llvm.aarch64.neon.frecpe
-+ 1, // llvm.aarch64.neon.frecps
-+ 1, // llvm.aarch64.neon.frecpx
-+ 1, // llvm.aarch64.neon.frintn
-+ 1, // llvm.aarch64.neon.frsqrte
-+ 1, // llvm.aarch64.neon.frsqrts
-+ 2, // llvm.aarch64.neon.ld1x2
-+ 2, // llvm.aarch64.neon.ld1x3
-+ 2, // llvm.aarch64.neon.ld1x4
-+ 2, // llvm.aarch64.neon.ld2
-+ 2, // llvm.aarch64.neon.ld2lane
-+ 2, // llvm.aarch64.neon.ld2r
-+ 2, // llvm.aarch64.neon.ld3
-+ 2, // llvm.aarch64.neon.ld3lane
-+ 2, // llvm.aarch64.neon.ld3r
-+ 2, // llvm.aarch64.neon.ld4
-+ 2, // llvm.aarch64.neon.ld4lane
-+ 2, // llvm.aarch64.neon.ld4r
-+ 1, // llvm.aarch64.neon.pmul
-+ 1, // llvm.aarch64.neon.pmull
-+ 1, // llvm.aarch64.neon.pmull64
-+ 1, // llvm.aarch64.neon.raddhn
-+ 1, // llvm.aarch64.neon.rbit
-+ 1, // llvm.aarch64.neon.rshrn
-+ 1, // llvm.aarch64.neon.rsubhn
-+ 1, // llvm.aarch64.neon.sabd
-+ 1, // llvm.aarch64.neon.saddlp
-+ 1, // llvm.aarch64.neon.saddlv
-+ 1, // llvm.aarch64.neon.saddv
-+ 1, // llvm.aarch64.neon.scalar.sqxtn
-+ 1, // llvm.aarch64.neon.scalar.sqxtun
-+ 1, // llvm.aarch64.neon.scalar.uqxtn
-+ 1, // llvm.aarch64.neon.shadd
-+ 1, // llvm.aarch64.neon.shll
-+ 1, // llvm.aarch64.neon.shsub
-+ 1, // llvm.aarch64.neon.smax
-+ 1, // llvm.aarch64.neon.smaxp
-+ 1, // llvm.aarch64.neon.smaxv
-+ 1, // llvm.aarch64.neon.smin
-+ 1, // llvm.aarch64.neon.sminp
-+ 1, // llvm.aarch64.neon.sminv
-+ 1, // llvm.aarch64.neon.smull
-+ 1, // llvm.aarch64.neon.sqabs
-+ 1, // llvm.aarch64.neon.sqadd
-+ 1, // llvm.aarch64.neon.sqdmulh
-+ 1, // llvm.aarch64.neon.sqdmull
-+ 1, // llvm.aarch64.neon.sqdmulls.scalar
-+ 1, // llvm.aarch64.neon.sqneg
-+ 1, // llvm.aarch64.neon.sqrdmulh
-+ 1, // llvm.aarch64.neon.sqrshl
-+ 1, // llvm.aarch64.neon.sqrshrn
-+ 1, // llvm.aarch64.neon.sqrshrun
-+ 1, // llvm.aarch64.neon.sqshl
-+ 1, // llvm.aarch64.neon.sqshlu
-+ 1, // llvm.aarch64.neon.sqshrn
-+ 1, // llvm.aarch64.neon.sqshrun
-+ 1, // llvm.aarch64.neon.sqsub
-+ 1, // llvm.aarch64.neon.sqxtn
-+ 1, // llvm.aarch64.neon.sqxtun
-+ 1, // llvm.aarch64.neon.srhadd
-+ 1, // llvm.aarch64.neon.srshl
-+ 1, // llvm.aarch64.neon.sshl
-+ 1, // llvm.aarch64.neon.sshll
-+ 16, // llvm.aarch64.neon.st1x2
-+ 22, // llvm.aarch64.neon.st1x3
-+ 23, // llvm.aarch64.neon.st1x4
-+ 16, // llvm.aarch64.neon.st2
-+ 22, // llvm.aarch64.neon.st2lane
-+ 22, // llvm.aarch64.neon.st3
-+ 23, // llvm.aarch64.neon.st3lane
-+ 23, // llvm.aarch64.neon.st4
-+ 24, // llvm.aarch64.neon.st4lane
-+ 1, // llvm.aarch64.neon.subhn
-+ 1, // llvm.aarch64.neon.suqadd
-+ 1, // llvm.aarch64.neon.tbl1
-+ 1, // llvm.aarch64.neon.tbl2
-+ 1, // llvm.aarch64.neon.tbl3
-+ 1, // llvm.aarch64.neon.tbl4
-+ 1, // llvm.aarch64.neon.tbx1
-+ 1, // llvm.aarch64.neon.tbx2
-+ 1, // llvm.aarch64.neon.tbx3
-+ 1, // llvm.aarch64.neon.tbx4
-+ 1, // llvm.aarch64.neon.uabd
-+ 1, // llvm.aarch64.neon.uaddlp
-+ 1, // llvm.aarch64.neon.uaddlv
-+ 1, // llvm.aarch64.neon.uaddv
-+ 1, // llvm.aarch64.neon.uhadd
-+ 1, // llvm.aarch64.neon.uhsub
-+ 1, // llvm.aarch64.neon.umax
-+ 1, // llvm.aarch64.neon.umaxp
-+ 1, // llvm.aarch64.neon.umaxv
-+ 1, // llvm.aarch64.neon.umin
-+ 1, // llvm.aarch64.neon.uminp
-+ 1, // llvm.aarch64.neon.uminv
-+ 1, // llvm.aarch64.neon.umull
-+ 1, // llvm.aarch64.neon.uqadd
-+ 1, // llvm.aarch64.neon.uqrshl
-+ 1, // llvm.aarch64.neon.uqrshrn
-+ 1, // llvm.aarch64.neon.uqshl
-+ 1, // llvm.aarch64.neon.uqshrn
-+ 1, // llvm.aarch64.neon.uqsub
-+ 1, // llvm.aarch64.neon.uqxtn
-+ 1, // llvm.aarch64.neon.urecpe
-+ 1, // llvm.aarch64.neon.urhadd
-+ 1, // llvm.aarch64.neon.urshl
-+ 1, // llvm.aarch64.neon.ursqrte
-+ 1, // llvm.aarch64.neon.ushl
-+ 1, // llvm.aarch64.neon.ushll
-+ 1, // llvm.aarch64.neon.usqadd
-+ 1, // llvm.aarch64.neon.vcopy.lane
-+ 1, // llvm.aarch64.neon.vcvtfp2fxs
-+ 1, // llvm.aarch64.neon.vcvtfp2fxu
-+ 1, // llvm.aarch64.neon.vcvtfp2hf
-+ 1, // llvm.aarch64.neon.vcvtfxs2fp
-+ 1, // llvm.aarch64.neon.vcvtfxu2fp
-+ 1, // llvm.aarch64.neon.vcvthf2fp
-+ 1, // llvm.aarch64.neon.vsli
-+ 1, // llvm.aarch64.neon.vsri
-+ 1, // llvm.aarch64.rbit
-+ 1, // llvm.aarch64.sdiv
-+ 1, // llvm.aarch64.sisd.fabd
-+ 1, // llvm.aarch64.sisd.fcvtxn
-+ 3, // llvm.aarch64.stlxp
-+ 3, // llvm.aarch64.stlxr
-+ 3, // llvm.aarch64.stxp
-+ 3, // llvm.aarch64.stxr
-+ 1, // llvm.aarch64.udiv
-+ 15, // llvm.amdgcn.atomic.dec
-+ 15, // llvm.amdgcn.atomic.inc
-+ 3, // llvm.amdgcn.buffer.atomic.add
-+ 3, // llvm.amdgcn.buffer.atomic.and
-+ 3, // llvm.amdgcn.buffer.atomic.cmpswap
-+ 3, // llvm.amdgcn.buffer.atomic.or
-+ 3, // llvm.amdgcn.buffer.atomic.smax
-+ 3, // llvm.amdgcn.buffer.atomic.smin
-+ 3, // llvm.amdgcn.buffer.atomic.sub
-+ 3, // llvm.amdgcn.buffer.atomic.swap
-+ 3, // llvm.amdgcn.buffer.atomic.umax
-+ 3, // llvm.amdgcn.buffer.atomic.umin
-+ 3, // llvm.amdgcn.buffer.atomic.xor
-+ 13, // llvm.amdgcn.buffer.load
-+ 13, // llvm.amdgcn.buffer.load.format
-+ 25, // llvm.amdgcn.buffer.store
-+ 25, // llvm.amdgcn.buffer.store.format
-+ 3, // llvm.amdgcn.buffer.wbinvl1
-+ 3, // llvm.amdgcn.buffer.wbinvl1.sc
-+ 3, // llvm.amdgcn.buffer.wbinvl1.vol
-+ 1, // llvm.amdgcn.class
-+ 1, // llvm.amdgcn.cos
-+ 1, // llvm.amdgcn.cubeid
-+ 1, // llvm.amdgcn.cubema
-+ 1, // llvm.amdgcn.cubesc
-+ 1, // llvm.amdgcn.cubetc
-+ 1, // llvm.amdgcn.cvt.pk.u8.f32
-+ 1, // llvm.amdgcn.dispatch.id
-+ 1, // llvm.amdgcn.dispatch.ptr
-+ 1, // llvm.amdgcn.div.fixup
-+ 1, // llvm.amdgcn.div.fmas
-+ 1, // llvm.amdgcn.div.scale
-+ 26, // llvm.amdgcn.ds.bpermute
-+ 26, // llvm.amdgcn.ds.permute
-+ 26, // llvm.amdgcn.ds.swizzle
-+ 26, // llvm.amdgcn.fcmp
-+ 1, // llvm.amdgcn.fmul.legacy
-+ 1, // llvm.amdgcn.fract
-+ 1, // llvm.amdgcn.frexp.exp
-+ 1, // llvm.amdgcn.frexp.mant
-+ 1, // llvm.amdgcn.groupstaticsize
-+ 26, // llvm.amdgcn.icmp
-+ 3, // llvm.amdgcn.image.atomic.add
-+ 3, // llvm.amdgcn.image.atomic.and
-+ 3, // llvm.amdgcn.image.atomic.cmpswap
-+ 3, // llvm.amdgcn.image.atomic.dec
-+ 3, // llvm.amdgcn.image.atomic.inc
-+ 3, // llvm.amdgcn.image.atomic.or
-+ 3, // llvm.amdgcn.image.atomic.smax
-+ 3, // llvm.amdgcn.image.atomic.smin
-+ 3, // llvm.amdgcn.image.atomic.sub
-+ 3, // llvm.amdgcn.image.atomic.swap
-+ 3, // llvm.amdgcn.image.atomic.umax
-+ 3, // llvm.amdgcn.image.atomic.umin
-+ 3, // llvm.amdgcn.image.atomic.xor
-+ 13, // llvm.amdgcn.image.gather4
-+ 13, // llvm.amdgcn.image.gather4.b
-+ 13, // llvm.amdgcn.image.gather4.b.cl
-+ 13, // llvm.amdgcn.image.gather4.b.cl.o
-+ 13, // llvm.amdgcn.image.gather4.b.o
-+ 13, // llvm.amdgcn.image.gather4.c
-+ 13, // llvm.amdgcn.image.gather4.c.b
-+ 13, // llvm.amdgcn.image.gather4.c.b.cl
-+ 13, // llvm.amdgcn.image.gather4.c.b.cl.o
-+ 13, // llvm.amdgcn.image.gather4.c.b.o
-+ 13, // llvm.amdgcn.image.gather4.c.cl
-+ 13, // llvm.amdgcn.image.gather4.c.cl.o
-+ 13, // llvm.amdgcn.image.gather4.c.l
-+ 13, // llvm.amdgcn.image.gather4.c.l.o
-+ 13, // llvm.amdgcn.image.gather4.c.lz
-+ 13, // llvm.amdgcn.image.gather4.c.lz.o
-+ 13, // llvm.amdgcn.image.gather4.c.o
-+ 13, // llvm.amdgcn.image.gather4.cl
-+ 13, // llvm.amdgcn.image.gather4.cl.o
-+ 13, // llvm.amdgcn.image.gather4.l
-+ 13, // llvm.amdgcn.image.gather4.l.o
-+ 13, // llvm.amdgcn.image.gather4.lz
-+ 13, // llvm.amdgcn.image.gather4.lz.o
-+ 13, // llvm.amdgcn.image.gather4.o
-+ 13, // llvm.amdgcn.image.getlod
-+ 13, // llvm.amdgcn.image.getresinfo
-+ 13, // llvm.amdgcn.image.load
-+ 13, // llvm.amdgcn.image.load.mip
-+ 13, // llvm.amdgcn.image.sample
-+ 13, // llvm.amdgcn.image.sample.b
-+ 13, // llvm.amdgcn.image.sample.b.cl
-+ 13, // llvm.amdgcn.image.sample.b.cl.o
-+ 13, // llvm.amdgcn.image.sample.b.o
-+ 13, // llvm.amdgcn.image.sample.c
-+ 13, // llvm.amdgcn.image.sample.c.b
-+ 13, // llvm.amdgcn.image.sample.c.b.cl
-+ 13, // llvm.amdgcn.image.sample.c.b.cl.o
-+ 13, // llvm.amdgcn.image.sample.c.b.o
-+ 13, // llvm.amdgcn.image.sample.c.cd
-+ 13, // llvm.amdgcn.image.sample.c.cd.cl
-+ 13, // llvm.amdgcn.image.sample.c.cd.cl.o
-+ 13, // llvm.amdgcn.image.sample.c.cd.o
-+ 13, // llvm.amdgcn.image.sample.c.cl
-+ 13, // llvm.amdgcn.image.sample.c.cl.o
-+ 13, // llvm.amdgcn.image.sample.c.d
-+ 13, // llvm.amdgcn.image.sample.c.d.cl
-+ 13, // llvm.amdgcn.image.sample.c.d.cl.o
-+ 13, // llvm.amdgcn.image.sample.c.d.o
-+ 13, // llvm.amdgcn.image.sample.c.l
-+ 13, // llvm.amdgcn.image.sample.c.l.o
-+ 13, // llvm.amdgcn.image.sample.c.lz
-+ 13, // llvm.amdgcn.image.sample.c.lz.o
-+ 13, // llvm.amdgcn.image.sample.c.o
-+ 13, // llvm.amdgcn.image.sample.cd
-+ 13, // llvm.amdgcn.image.sample.cd.cl
-+ 13, // llvm.amdgcn.image.sample.cd.cl.o
-+ 13, // llvm.amdgcn.image.sample.cd.o
-+ 13, // llvm.amdgcn.image.sample.cl
-+ 13, // llvm.amdgcn.image.sample.cl.o
-+ 13, // llvm.amdgcn.image.sample.d
-+ 13, // llvm.amdgcn.image.sample.d.cl
-+ 13, // llvm.amdgcn.image.sample.d.cl.o
-+ 13, // llvm.amdgcn.image.sample.d.o
-+ 13, // llvm.amdgcn.image.sample.l
-+ 13, // llvm.amdgcn.image.sample.l.o
-+ 13, // llvm.amdgcn.image.sample.lz
-+ 13, // llvm.amdgcn.image.sample.lz.o
-+ 13, // llvm.amdgcn.image.sample.o
-+ 3, // llvm.amdgcn.image.store
-+ 3, // llvm.amdgcn.image.store.mip
-+ 1, // llvm.amdgcn.implicitarg.ptr
-+ 1, // llvm.amdgcn.interp.mov
-+ 1, // llvm.amdgcn.interp.p1
-+ 1, // llvm.amdgcn.interp.p2
-+ 1, // llvm.amdgcn.kernarg.segment.ptr
-+ 1, // llvm.amdgcn.ldexp
-+ 1, // llvm.amdgcn.lerp
-+ 1, // llvm.amdgcn.log.clamp
-+ 1, // llvm.amdgcn.mbcnt.hi
-+ 1, // llvm.amdgcn.mbcnt.lo
-+ 26, // llvm.amdgcn.mov.dpp
-+ 1, // llvm.amdgcn.mqsad.pk.u16.u8
-+ 1, // llvm.amdgcn.mqsad.u32.u8
-+ 1, // llvm.amdgcn.msad.u8
-+ 1, // llvm.amdgcn.ps.live
-+ 1, // llvm.amdgcn.qsad.pk.u16.u8
-+ 1, // llvm.amdgcn.queue.ptr
-+ 1, // llvm.amdgcn.rcp
-+ 1, // llvm.amdgcn.rcp.legacy
-+ 26, // llvm.amdgcn.readfirstlane
-+ 26, // llvm.amdgcn.readlane
-+ 1, // llvm.amdgcn.rsq
-+ 1, // llvm.amdgcn.rsq.clamp
-+ 1, // llvm.amdgcn.rsq.legacy
-+ 27, // llvm.amdgcn.s.barrier
-+ 3, // llvm.amdgcn.s.dcache.inv
-+ 3, // llvm.amdgcn.s.dcache.inv.vol
-+ 3, // llvm.amdgcn.s.dcache.wb
-+ 3, // llvm.amdgcn.s.dcache.wb.vol
-+ 3, // llvm.amdgcn.s.decperflevel
-+ 13, // llvm.amdgcn.s.getreg
-+ 3, // llvm.amdgcn.s.incperflevel
-+ 3, // llvm.amdgcn.s.memrealtime
-+ 3, // llvm.amdgcn.s.memtime
-+ 3, // llvm.amdgcn.s.sleep
-+ 3, // llvm.amdgcn.s.waitcnt
-+ 1, // llvm.amdgcn.sad.hi.u8
-+ 1, // llvm.amdgcn.sad.u16
-+ 1, // llvm.amdgcn.sad.u8
-+ 1, // llvm.amdgcn.sffbh
-+ 1, // llvm.amdgcn.sin
-+ 1, // llvm.amdgcn.trig.preop
-+ 27, // llvm.amdgcn.wave.barrier
-+ 1, // llvm.amdgcn.workgroup.id.x
-+ 1, // llvm.amdgcn.workgroup.id.y
-+ 1, // llvm.amdgcn.workgroup.id.z
-+ 1, // llvm.amdgcn.workitem.id.x
-+ 1, // llvm.amdgcn.workitem.id.y
-+ 1, // llvm.amdgcn.workitem.id.z
-+ 3, // llvm.arm.cdp
-+ 3, // llvm.arm.cdp2
-+ 3, // llvm.arm.clrex
-+ 1, // llvm.arm.crc32b
-+ 1, // llvm.arm.crc32cb
-+ 1, // llvm.arm.crc32ch
-+ 1, // llvm.arm.crc32cw
-+ 1, // llvm.arm.crc32h
-+ 1, // llvm.arm.crc32w
-+ 3, // llvm.arm.dbg
-+ 3, // llvm.arm.dmb
-+ 3, // llvm.arm.dsb
-+ 1, // llvm.arm.get.fpscr
-+ 3, // llvm.arm.hint
-+ 3, // llvm.arm.isb
-+ 3, // llvm.arm.ldaex
-+ 3, // llvm.arm.ldaexd
-+ 3, // llvm.arm.ldc
-+ 3, // llvm.arm.ldc2
-+ 3, // llvm.arm.ldc2l
-+ 3, // llvm.arm.ldcl
-+ 3, // llvm.arm.ldrex
-+ 3, // llvm.arm.ldrexd
-+ 3, // llvm.arm.mcr
-+ 3, // llvm.arm.mcr2
-+ 3, // llvm.arm.mcrr
-+ 3, // llvm.arm.mcrr2
-+ 3, // llvm.arm.mrc
-+ 3, // llvm.arm.mrc2
-+ 3, // llvm.arm.mrrc
-+ 3, // llvm.arm.mrrc2
-+ 1, // llvm.arm.neon.aesd
-+ 1, // llvm.arm.neon.aese
-+ 1, // llvm.arm.neon.aesimc
-+ 1, // llvm.arm.neon.aesmc
-+ 1, // llvm.arm.neon.sha1c
-+ 1, // llvm.arm.neon.sha1h
-+ 1, // llvm.arm.neon.sha1m
-+ 1, // llvm.arm.neon.sha1p
-+ 1, // llvm.arm.neon.sha1su0
-+ 1, // llvm.arm.neon.sha1su1
-+ 1, // llvm.arm.neon.sha256h
-+ 1, // llvm.arm.neon.sha256h2
-+ 1, // llvm.arm.neon.sha256su0
-+ 1, // llvm.arm.neon.sha256su1
-+ 1, // llvm.arm.neon.vabds
-+ 1, // llvm.arm.neon.vabdu
-+ 1, // llvm.arm.neon.vabs
-+ 1, // llvm.arm.neon.vacge
-+ 1, // llvm.arm.neon.vacgt
-+ 1, // llvm.arm.neon.vbsl
-+ 1, // llvm.arm.neon.vcls
-+ 1, // llvm.arm.neon.vcvtas
-+ 1, // llvm.arm.neon.vcvtau
-+ 1, // llvm.arm.neon.vcvtfp2fxs
-+ 1, // llvm.arm.neon.vcvtfp2fxu
-+ 1, // llvm.arm.neon.vcvtfp2hf
-+ 1, // llvm.arm.neon.vcvtfxs2fp
-+ 1, // llvm.arm.neon.vcvtfxu2fp
-+ 1, // llvm.arm.neon.vcvthf2fp
-+ 1, // llvm.arm.neon.vcvtms
-+ 1, // llvm.arm.neon.vcvtmu
-+ 1, // llvm.arm.neon.vcvtns
-+ 1, // llvm.arm.neon.vcvtnu
-+ 1, // llvm.arm.neon.vcvtps
-+ 1, // llvm.arm.neon.vcvtpu
-+ 1, // llvm.arm.neon.vhadds
-+ 1, // llvm.arm.neon.vhaddu
-+ 1, // llvm.arm.neon.vhsubs
-+ 1, // llvm.arm.neon.vhsubu
-+ 2, // llvm.arm.neon.vld1
-+ 2, // llvm.arm.neon.vld2
-+ 2, // llvm.arm.neon.vld2lane
-+ 2, // llvm.arm.neon.vld3
-+ 2, // llvm.arm.neon.vld3lane
-+ 2, // llvm.arm.neon.vld4
-+ 2, // llvm.arm.neon.vld4lane
-+ 1, // llvm.arm.neon.vmaxnm
-+ 1, // llvm.arm.neon.vmaxs
-+ 1, // llvm.arm.neon.vmaxu
-+ 1, // llvm.arm.neon.vminnm
-+ 1, // llvm.arm.neon.vmins
-+ 1, // llvm.arm.neon.vminu
-+ 1, // llvm.arm.neon.vmullp
-+ 1, // llvm.arm.neon.vmulls
-+ 1, // llvm.arm.neon.vmullu
-+ 1, // llvm.arm.neon.vmulp
-+ 1, // llvm.arm.neon.vpadals
-+ 1, // llvm.arm.neon.vpadalu
-+ 1, // llvm.arm.neon.vpadd
-+ 1, // llvm.arm.neon.vpaddls
-+ 1, // llvm.arm.neon.vpaddlu
-+ 1, // llvm.arm.neon.vpmaxs
-+ 1, // llvm.arm.neon.vpmaxu
-+ 1, // llvm.arm.neon.vpmins
-+ 1, // llvm.arm.neon.vpminu
-+ 1, // llvm.arm.neon.vqabs
-+ 1, // llvm.arm.neon.vqadds
-+ 1, // llvm.arm.neon.vqaddu
-+ 1, // llvm.arm.neon.vqdmulh
-+ 1, // llvm.arm.neon.vqdmull
-+ 1, // llvm.arm.neon.vqmovns
-+ 1, // llvm.arm.neon.vqmovnsu
-+ 1, // llvm.arm.neon.vqmovnu
-+ 1, // llvm.arm.neon.vqneg
-+ 1, // llvm.arm.neon.vqrdmulh
-+ 1, // llvm.arm.neon.vqrshiftns
-+ 1, // llvm.arm.neon.vqrshiftnsu
-+ 1, // llvm.arm.neon.vqrshiftnu
-+ 1, // llvm.arm.neon.vqrshifts
-+ 1, // llvm.arm.neon.vqrshiftu
-+ 1, // llvm.arm.neon.vqshiftns
-+ 1, // llvm.arm.neon.vqshiftnsu
-+ 1, // llvm.arm.neon.vqshiftnu
-+ 1, // llvm.arm.neon.vqshifts
-+ 1, // llvm.arm.neon.vqshiftsu
-+ 1, // llvm.arm.neon.vqshiftu
-+ 1, // llvm.arm.neon.vqsubs
-+ 1, // llvm.arm.neon.vqsubu
-+ 1, // llvm.arm.neon.vraddhn
-+ 1, // llvm.arm.neon.vrecpe
-+ 1, // llvm.arm.neon.vrecps
-+ 1, // llvm.arm.neon.vrhadds
-+ 1, // llvm.arm.neon.vrhaddu
-+ 1, // llvm.arm.neon.vrinta
-+ 1, // llvm.arm.neon.vrintm
-+ 1, // llvm.arm.neon.vrintn
-+ 1, // llvm.arm.neon.vrintp
-+ 1, // llvm.arm.neon.vrintx
-+ 1, // llvm.arm.neon.vrintz
-+ 1, // llvm.arm.neon.vrshiftn
-+ 1, // llvm.arm.neon.vrshifts
-+ 1, // llvm.arm.neon.vrshiftu
-+ 1, // llvm.arm.neon.vrsqrte
-+ 1, // llvm.arm.neon.vrsqrts
-+ 1, // llvm.arm.neon.vrsubhn
-+ 1, // llvm.arm.neon.vshiftins
-+ 1, // llvm.arm.neon.vshifts
-+ 1, // llvm.arm.neon.vshiftu
-+ 18, // llvm.arm.neon.vst1
-+ 18, // llvm.arm.neon.vst2
-+ 18, // llvm.arm.neon.vst2lane
-+ 18, // llvm.arm.neon.vst3
-+ 18, // llvm.arm.neon.vst3lane
-+ 18, // llvm.arm.neon.vst4
-+ 18, // llvm.arm.neon.vst4lane
-+ 1, // llvm.arm.neon.vtbl1
-+ 1, // llvm.arm.neon.vtbl2
-+ 1, // llvm.arm.neon.vtbl3
-+ 1, // llvm.arm.neon.vtbl4
-+ 1, // llvm.arm.neon.vtbx1
-+ 1, // llvm.arm.neon.vtbx2
-+ 1, // llvm.arm.neon.vtbx3
-+ 1, // llvm.arm.neon.vtbx4
-+ 1, // llvm.arm.qadd
-+ 1, // llvm.arm.qsub
-+ 1, // llvm.arm.rbit
-+ 3, // llvm.arm.set.fpscr
-+ 3, // llvm.arm.space
-+ 1, // llvm.arm.ssat
-+ 3, // llvm.arm.stc
-+ 3, // llvm.arm.stc2
-+ 3, // llvm.arm.stc2l
-+ 3, // llvm.arm.stcl
-+ 3, // llvm.arm.stlex
-+ 3, // llvm.arm.stlexd
-+ 3, // llvm.arm.strex
-+ 3, // llvm.arm.strexd
-+ 3, // llvm.arm.undefined
-+ 1, // llvm.arm.usat
-+ 1, // llvm.arm.vcvtr
-+ 1, // llvm.arm.vcvtru
-+ 13, // llvm.bpf.load.byte
-+ 13, // llvm.bpf.load.half
-+ 13, // llvm.bpf.load.word
-+ 3, // llvm.bpf.pseudo
-+ 1, // llvm.hexagon.A2.abs
-+ 1, // llvm.hexagon.A2.absp
-+ 1, // llvm.hexagon.A2.abssat
-+ 1, // llvm.hexagon.A2.add
-+ 1, // llvm.hexagon.A2.addh.h16.hh
-+ 1, // llvm.hexagon.A2.addh.h16.hl
-+ 1, // llvm.hexagon.A2.addh.h16.lh
-+ 1, // llvm.hexagon.A2.addh.h16.ll
-+ 1, // llvm.hexagon.A2.addh.h16.sat.hh
-+ 1, // llvm.hexagon.A2.addh.h16.sat.hl
-+ 1, // llvm.hexagon.A2.addh.h16.sat.lh
-+ 1, // llvm.hexagon.A2.addh.h16.sat.ll
-+ 1, // llvm.hexagon.A2.addh.l16.hl
-+ 1, // llvm.hexagon.A2.addh.l16.ll
-+ 1, // llvm.hexagon.A2.addh.l16.sat.hl
-+ 1, // llvm.hexagon.A2.addh.l16.sat.ll
-+ 1, // llvm.hexagon.A2.addi
-+ 1, // llvm.hexagon.A2.addp
-+ 1, // llvm.hexagon.A2.addpsat
-+ 1, // llvm.hexagon.A2.addsat
-+ 1, // llvm.hexagon.A2.addsp
-+ 1, // llvm.hexagon.A2.and
-+ 1, // llvm.hexagon.A2.andir
-+ 1, // llvm.hexagon.A2.andp
-+ 1, // llvm.hexagon.A2.aslh
-+ 1, // llvm.hexagon.A2.asrh
-+ 1, // llvm.hexagon.A2.combine.hh
-+ 1, // llvm.hexagon.A2.combine.hl
-+ 1, // llvm.hexagon.A2.combine.lh
-+ 1, // llvm.hexagon.A2.combine.ll
-+ 1, // llvm.hexagon.A2.combineii
-+ 1, // llvm.hexagon.A2.combinew
-+ 1, // llvm.hexagon.A2.max
-+ 1, // llvm.hexagon.A2.maxp
-+ 1, // llvm.hexagon.A2.maxu
-+ 1, // llvm.hexagon.A2.maxup
-+ 1, // llvm.hexagon.A2.min
-+ 1, // llvm.hexagon.A2.minp
-+ 1, // llvm.hexagon.A2.minu
-+ 1, // llvm.hexagon.A2.minup
-+ 1, // llvm.hexagon.A2.neg
-+ 1, // llvm.hexagon.A2.negp
-+ 1, // llvm.hexagon.A2.negsat
-+ 1, // llvm.hexagon.A2.not
-+ 1, // llvm.hexagon.A2.notp
-+ 1, // llvm.hexagon.A2.or
-+ 1, // llvm.hexagon.A2.orir
-+ 1, // llvm.hexagon.A2.orp
-+ 1, // llvm.hexagon.A2.roundsat
-+ 1, // llvm.hexagon.A2.sat
-+ 1, // llvm.hexagon.A2.satb
-+ 1, // llvm.hexagon.A2.sath
-+ 1, // llvm.hexagon.A2.satub
-+ 1, // llvm.hexagon.A2.satuh
-+ 1, // llvm.hexagon.A2.sub
-+ 1, // llvm.hexagon.A2.subh.h16.hh
-+ 1, // llvm.hexagon.A2.subh.h16.hl
-+ 1, // llvm.hexagon.A2.subh.h16.lh
-+ 1, // llvm.hexagon.A2.subh.h16.ll
-+ 1, // llvm.hexagon.A2.subh.h16.sat.hh
-+ 1, // llvm.hexagon.A2.subh.h16.sat.hl
-+ 1, // llvm.hexagon.A2.subh.h16.sat.lh
-+ 1, // llvm.hexagon.A2.subh.h16.sat.ll
-+ 1, // llvm.hexagon.A2.subh.l16.hl
-+ 1, // llvm.hexagon.A2.subh.l16.ll
-+ 1, // llvm.hexagon.A2.subh.l16.sat.hl
-+ 1, // llvm.hexagon.A2.subh.l16.sat.ll
-+ 1, // llvm.hexagon.A2.subp
-+ 1, // llvm.hexagon.A2.subri
-+ 1, // llvm.hexagon.A2.subsat
-+ 1, // llvm.hexagon.A2.svaddh
-+ 1, // llvm.hexagon.A2.svaddhs
-+ 1, // llvm.hexagon.A2.svadduhs
-+ 1, // llvm.hexagon.A2.svavgh
-+ 1, // llvm.hexagon.A2.svavghs
-+ 1, // llvm.hexagon.A2.svnavgh
-+ 1, // llvm.hexagon.A2.svsubh
-+ 1, // llvm.hexagon.A2.svsubhs
-+ 1, // llvm.hexagon.A2.svsubuhs
-+ 1, // llvm.hexagon.A2.swiz
-+ 1, // llvm.hexagon.A2.sxtb
-+ 1, // llvm.hexagon.A2.sxth
-+ 1, // llvm.hexagon.A2.sxtw
-+ 1, // llvm.hexagon.A2.tfr
-+ 1, // llvm.hexagon.A2.tfrih
-+ 1, // llvm.hexagon.A2.tfril
-+ 1, // llvm.hexagon.A2.tfrp
-+ 1, // llvm.hexagon.A2.tfrpi
-+ 1, // llvm.hexagon.A2.tfrsi
-+ 1, // llvm.hexagon.A2.vabsh
-+ 1, // llvm.hexagon.A2.vabshsat
-+ 1, // llvm.hexagon.A2.vabsw
-+ 1, // llvm.hexagon.A2.vabswsat
-+ 1, // llvm.hexagon.A2.vaddb.map
-+ 1, // llvm.hexagon.A2.vaddh
-+ 1, // llvm.hexagon.A2.vaddhs
-+ 1, // llvm.hexagon.A2.vaddub
-+ 1, // llvm.hexagon.A2.vaddubs
-+ 1, // llvm.hexagon.A2.vadduhs
-+ 1, // llvm.hexagon.A2.vaddw
-+ 1, // llvm.hexagon.A2.vaddws
-+ 1, // llvm.hexagon.A2.vavgh
-+ 1, // llvm.hexagon.A2.vavghcr
-+ 1, // llvm.hexagon.A2.vavghr
-+ 1, // llvm.hexagon.A2.vavgub
-+ 1, // llvm.hexagon.A2.vavgubr
-+ 1, // llvm.hexagon.A2.vavguh
-+ 1, // llvm.hexagon.A2.vavguhr
-+ 1, // llvm.hexagon.A2.vavguw
-+ 1, // llvm.hexagon.A2.vavguwr
-+ 1, // llvm.hexagon.A2.vavgw
-+ 1, // llvm.hexagon.A2.vavgwcr
-+ 1, // llvm.hexagon.A2.vavgwr
-+ 1, // llvm.hexagon.A2.vcmpbeq
-+ 1, // llvm.hexagon.A2.vcmpbgtu
-+ 1, // llvm.hexagon.A2.vcmpheq
-+ 1, // llvm.hexagon.A2.vcmphgt
-+ 1, // llvm.hexagon.A2.vcmphgtu
-+ 1, // llvm.hexagon.A2.vcmpweq
-+ 1, // llvm.hexagon.A2.vcmpwgt
-+ 1, // llvm.hexagon.A2.vcmpwgtu
-+ 1, // llvm.hexagon.A2.vconj
-+ 1, // llvm.hexagon.A2.vmaxb
-+ 1, // llvm.hexagon.A2.vmaxh
-+ 1, // llvm.hexagon.A2.vmaxub
-+ 1, // llvm.hexagon.A2.vmaxuh
-+ 1, // llvm.hexagon.A2.vmaxuw
-+ 1, // llvm.hexagon.A2.vmaxw
-+ 1, // llvm.hexagon.A2.vminb
-+ 1, // llvm.hexagon.A2.vminh
-+ 1, // llvm.hexagon.A2.vminub
-+ 1, // llvm.hexagon.A2.vminuh
-+ 1, // llvm.hexagon.A2.vminuw
-+ 1, // llvm.hexagon.A2.vminw
-+ 1, // llvm.hexagon.A2.vnavgh
-+ 1, // llvm.hexagon.A2.vnavghcr
-+ 1, // llvm.hexagon.A2.vnavghr
-+ 1, // llvm.hexagon.A2.vnavgw
-+ 1, // llvm.hexagon.A2.vnavgwcr
-+ 1, // llvm.hexagon.A2.vnavgwr
-+ 1, // llvm.hexagon.A2.vraddub
-+ 1, // llvm.hexagon.A2.vraddub.acc
-+ 1, // llvm.hexagon.A2.vrsadub
-+ 1, // llvm.hexagon.A2.vrsadub.acc
-+ 1, // llvm.hexagon.A2.vsubb.map
-+ 1, // llvm.hexagon.A2.vsubh
-+ 1, // llvm.hexagon.A2.vsubhs
-+ 1, // llvm.hexagon.A2.vsubub
-+ 1, // llvm.hexagon.A2.vsububs
-+ 1, // llvm.hexagon.A2.vsubuhs
-+ 1, // llvm.hexagon.A2.vsubw
-+ 1, // llvm.hexagon.A2.vsubws
-+ 1, // llvm.hexagon.A2.xor
-+ 1, // llvm.hexagon.A2.xorp
-+ 1, // llvm.hexagon.A2.zxtb
-+ 1, // llvm.hexagon.A2.zxth
-+ 1, // llvm.hexagon.A4.andn
-+ 1, // llvm.hexagon.A4.andnp
-+ 1, // llvm.hexagon.A4.bitsplit
-+ 1, // llvm.hexagon.A4.bitspliti
-+ 1, // llvm.hexagon.A4.boundscheck
-+ 1, // llvm.hexagon.A4.cmpbeq
-+ 1, // llvm.hexagon.A4.cmpbeqi
-+ 1, // llvm.hexagon.A4.cmpbgt
-+ 1, // llvm.hexagon.A4.cmpbgti
-+ 1, // llvm.hexagon.A4.cmpbgtu
-+ 1, // llvm.hexagon.A4.cmpbgtui
-+ 1, // llvm.hexagon.A4.cmpheq
-+ 1, // llvm.hexagon.A4.cmpheqi
-+ 1, // llvm.hexagon.A4.cmphgt
-+ 1, // llvm.hexagon.A4.cmphgti
-+ 1, // llvm.hexagon.A4.cmphgtu
-+ 1, // llvm.hexagon.A4.cmphgtui
-+ 1, // llvm.hexagon.A4.combineir
-+ 1, // llvm.hexagon.A4.combineri
-+ 1, // llvm.hexagon.A4.cround.ri
-+ 1, // llvm.hexagon.A4.cround.rr
-+ 1, // llvm.hexagon.A4.modwrapu
-+ 1, // llvm.hexagon.A4.orn
-+ 1, // llvm.hexagon.A4.ornp
-+ 1, // llvm.hexagon.A4.rcmpeq
-+ 1, // llvm.hexagon.A4.rcmpeqi
-+ 1, // llvm.hexagon.A4.rcmpneq
-+ 1, // llvm.hexagon.A4.rcmpneqi
-+ 1, // llvm.hexagon.A4.round.ri
-+ 1, // llvm.hexagon.A4.round.ri.sat
-+ 1, // llvm.hexagon.A4.round.rr
-+ 1, // llvm.hexagon.A4.round.rr.sat
-+ 1, // llvm.hexagon.A4.tlbmatch
-+ 1, // llvm.hexagon.A4.vcmpbeq.any
-+ 1, // llvm.hexagon.A4.vcmpbeqi
-+ 1, // llvm.hexagon.A4.vcmpbgt
-+ 1, // llvm.hexagon.A4.vcmpbgti
-+ 1, // llvm.hexagon.A4.vcmpbgtui
-+ 1, // llvm.hexagon.A4.vcmpheqi
-+ 1, // llvm.hexagon.A4.vcmphgti
-+ 1, // llvm.hexagon.A4.vcmphgtui
-+ 1, // llvm.hexagon.A4.vcmpweqi
-+ 1, // llvm.hexagon.A4.vcmpwgti
-+ 1, // llvm.hexagon.A4.vcmpwgtui
-+ 1, // llvm.hexagon.A4.vrmaxh
-+ 1, // llvm.hexagon.A4.vrmaxuh
-+ 1, // llvm.hexagon.A4.vrmaxuw
-+ 1, // llvm.hexagon.A4.vrmaxw
-+ 1, // llvm.hexagon.A4.vrminh
-+ 1, // llvm.hexagon.A4.vrminuh
-+ 1, // llvm.hexagon.A4.vrminuw
-+ 1, // llvm.hexagon.A4.vrminw
-+ 1, // llvm.hexagon.A5.vaddhubs
-+ 1, // llvm.hexagon.C2.all8
-+ 1, // llvm.hexagon.C2.and
-+ 1, // llvm.hexagon.C2.andn
-+ 1, // llvm.hexagon.C2.any8
-+ 1, // llvm.hexagon.C2.bitsclr
-+ 1, // llvm.hexagon.C2.bitsclri
-+ 1, // llvm.hexagon.C2.bitsset
-+ 1, // llvm.hexagon.C2.cmpeq
-+ 1, // llvm.hexagon.C2.cmpeqi
-+ 1, // llvm.hexagon.C2.cmpeqp
-+ 1, // llvm.hexagon.C2.cmpgei
-+ 1, // llvm.hexagon.C2.cmpgeui
-+ 1, // llvm.hexagon.C2.cmpgt
-+ 1, // llvm.hexagon.C2.cmpgti
-+ 1, // llvm.hexagon.C2.cmpgtp
-+ 1, // llvm.hexagon.C2.cmpgtu
-+ 1, // llvm.hexagon.C2.cmpgtui
-+ 1, // llvm.hexagon.C2.cmpgtup
-+ 1, // llvm.hexagon.C2.cmplt
-+ 1, // llvm.hexagon.C2.cmpltu
-+ 1, // llvm.hexagon.C2.mask
-+ 1, // llvm.hexagon.C2.mux
-+ 1, // llvm.hexagon.C2.muxii
-+ 1, // llvm.hexagon.C2.muxir
-+ 1, // llvm.hexagon.C2.muxri
-+ 1, // llvm.hexagon.C2.not
-+ 1, // llvm.hexagon.C2.or
-+ 1, // llvm.hexagon.C2.orn
-+ 1, // llvm.hexagon.C2.pxfer.map
-+ 1, // llvm.hexagon.C2.tfrpr
-+ 1, // llvm.hexagon.C2.tfrrp
-+ 1, // llvm.hexagon.C2.vitpack
-+ 1, // llvm.hexagon.C2.vmux
-+ 1, // llvm.hexagon.C2.xor
-+ 1, // llvm.hexagon.C4.and.and
-+ 1, // llvm.hexagon.C4.and.andn
-+ 1, // llvm.hexagon.C4.and.or
-+ 1, // llvm.hexagon.C4.and.orn
-+ 1, // llvm.hexagon.C4.cmplte
-+ 1, // llvm.hexagon.C4.cmpltei
-+ 1, // llvm.hexagon.C4.cmplteu
-+ 1, // llvm.hexagon.C4.cmplteui
-+ 1, // llvm.hexagon.C4.cmpneq
-+ 1, // llvm.hexagon.C4.cmpneqi
-+ 1, // llvm.hexagon.C4.fastcorner9
-+ 1, // llvm.hexagon.C4.fastcorner9.not
-+ 1, // llvm.hexagon.C4.nbitsclr
-+ 1, // llvm.hexagon.C4.nbitsclri
-+ 1, // llvm.hexagon.C4.nbitsset
-+ 1, // llvm.hexagon.C4.or.and
-+ 1, // llvm.hexagon.C4.or.andn
-+ 1, // llvm.hexagon.C4.or.or
-+ 1, // llvm.hexagon.C4.or.orn
-+ 1, // llvm.hexagon.F2.conv.d2df
-+ 1, // llvm.hexagon.F2.conv.d2sf
-+ 1, // llvm.hexagon.F2.conv.df2d
-+ 1, // llvm.hexagon.F2.conv.df2d.chop
-+ 1, // llvm.hexagon.F2.conv.df2sf
-+ 1, // llvm.hexagon.F2.conv.df2ud
-+ 1, // llvm.hexagon.F2.conv.df2ud.chop
-+ 1, // llvm.hexagon.F2.conv.df2uw
-+ 1, // llvm.hexagon.F2.conv.df2uw.chop
-+ 1, // llvm.hexagon.F2.conv.df2w
-+ 1, // llvm.hexagon.F2.conv.df2w.chop
-+ 1, // llvm.hexagon.F2.conv.sf2d
-+ 1, // llvm.hexagon.F2.conv.sf2d.chop
-+ 1, // llvm.hexagon.F2.conv.sf2df
-+ 1, // llvm.hexagon.F2.conv.sf2ud
-+ 1, // llvm.hexagon.F2.conv.sf2ud.chop
-+ 1, // llvm.hexagon.F2.conv.sf2uw
-+ 1, // llvm.hexagon.F2.conv.sf2uw.chop
-+ 1, // llvm.hexagon.F2.conv.sf2w
-+ 1, // llvm.hexagon.F2.conv.sf2w.chop
-+ 1, // llvm.hexagon.F2.conv.ud2df
-+ 1, // llvm.hexagon.F2.conv.ud2sf
-+ 28, // llvm.hexagon.F2.conv.uw2df
-+ 28, // llvm.hexagon.F2.conv.uw2sf
-+ 28, // llvm.hexagon.F2.conv.w2df
-+ 28, // llvm.hexagon.F2.conv.w2sf
-+ 28, // llvm.hexagon.F2.dfclass
-+ 28, // llvm.hexagon.F2.dfcmpeq
-+ 28, // llvm.hexagon.F2.dfcmpge
-+ 28, // llvm.hexagon.F2.dfcmpgt
-+ 28, // llvm.hexagon.F2.dfcmpuo
-+ 28, // llvm.hexagon.F2.dfimm.n
-+ 28, // llvm.hexagon.F2.dfimm.p
-+ 28, // llvm.hexagon.F2.sfadd
-+ 28, // llvm.hexagon.F2.sfclass
-+ 28, // llvm.hexagon.F2.sfcmpeq
-+ 28, // llvm.hexagon.F2.sfcmpge
-+ 28, // llvm.hexagon.F2.sfcmpgt
-+ 28, // llvm.hexagon.F2.sfcmpuo
-+ 28, // llvm.hexagon.F2.sffixupd
-+ 28, // llvm.hexagon.F2.sffixupn
-+ 1, // llvm.hexagon.F2.sffixupr
-+ 28, // llvm.hexagon.F2.sffma
-+ 28, // llvm.hexagon.F2.sffma.lib
-+ 28, // llvm.hexagon.F2.sffma.sc
-+ 28, // llvm.hexagon.F2.sffms
-+ 28, // llvm.hexagon.F2.sffms.lib
-+ 28, // llvm.hexagon.F2.sfimm.n
-+ 28, // llvm.hexagon.F2.sfimm.p
-+ 28, // llvm.hexagon.F2.sfmax
-+ 28, // llvm.hexagon.F2.sfmin
-+ 28, // llvm.hexagon.F2.sfmpy
-+ 28, // llvm.hexagon.F2.sfsub
-+ 15, // llvm.hexagon.L2.loadw.locked
-+ 15, // llvm.hexagon.L4.loadd.locked
-+ 1, // llvm.hexagon.M2.acci
-+ 1, // llvm.hexagon.M2.accii
-+ 1, // llvm.hexagon.M2.cmaci.s0
-+ 1, // llvm.hexagon.M2.cmacr.s0
-+ 1, // llvm.hexagon.M2.cmacs.s0
-+ 1, // llvm.hexagon.M2.cmacs.s1
-+ 1, // llvm.hexagon.M2.cmacsc.s0
-+ 1, // llvm.hexagon.M2.cmacsc.s1
-+ 1, // llvm.hexagon.M2.cmpyi.s0
-+ 1, // llvm.hexagon.M2.cmpyr.s0
-+ 1, // llvm.hexagon.M2.cmpyrs.s0
-+ 1, // llvm.hexagon.M2.cmpyrs.s1
-+ 1, // llvm.hexagon.M2.cmpyrsc.s0
-+ 1, // llvm.hexagon.M2.cmpyrsc.s1
-+ 1, // llvm.hexagon.M2.cmpys.s0
-+ 1, // llvm.hexagon.M2.cmpys.s1
-+ 1, // llvm.hexagon.M2.cmpysc.s0
-+ 1, // llvm.hexagon.M2.cmpysc.s1
-+ 1, // llvm.hexagon.M2.cnacs.s0
-+ 1, // llvm.hexagon.M2.cnacs.s1
-+ 1, // llvm.hexagon.M2.cnacsc.s0
-+ 1, // llvm.hexagon.M2.cnacsc.s1
-+ 1, // llvm.hexagon.M2.dpmpyss.acc.s0
-+ 1, // llvm.hexagon.M2.dpmpyss.nac.s0
-+ 1, // llvm.hexagon.M2.dpmpyss.rnd.s0
-+ 1, // llvm.hexagon.M2.dpmpyss.s0
-+ 1, // llvm.hexagon.M2.dpmpyuu.acc.s0
-+ 1, // llvm.hexagon.M2.dpmpyuu.nac.s0
-+ 1, // llvm.hexagon.M2.dpmpyuu.s0
-+ 1, // llvm.hexagon.M2.hmmpyh.rs1
-+ 1, // llvm.hexagon.M2.hmmpyh.s1
-+ 1, // llvm.hexagon.M2.hmmpyl.rs1
-+ 1, // llvm.hexagon.M2.hmmpyl.s1
-+ 1, // llvm.hexagon.M2.maci
-+ 1, // llvm.hexagon.M2.macsin
-+ 1, // llvm.hexagon.M2.macsip
-+ 1, // llvm.hexagon.M2.mmachs.rs0
-+ 1, // llvm.hexagon.M2.mmachs.rs1
-+ 1, // llvm.hexagon.M2.mmachs.s0
-+ 1, // llvm.hexagon.M2.mmachs.s1
-+ 1, // llvm.hexagon.M2.mmacls.rs0
-+ 1, // llvm.hexagon.M2.mmacls.rs1
-+ 1, // llvm.hexagon.M2.mmacls.s0
-+ 1, // llvm.hexagon.M2.mmacls.s1
-+ 1, // llvm.hexagon.M2.mmacuhs.rs0
-+ 1, // llvm.hexagon.M2.mmacuhs.rs1
-+ 1, // llvm.hexagon.M2.mmacuhs.s0
-+ 1, // llvm.hexagon.M2.mmacuhs.s1
-+ 1, // llvm.hexagon.M2.mmaculs.rs0
-+ 1, // llvm.hexagon.M2.mmaculs.rs1
-+ 1, // llvm.hexagon.M2.mmaculs.s0
-+ 1, // llvm.hexagon.M2.mmaculs.s1
-+ 1, // llvm.hexagon.M2.mmpyh.rs0
-+ 1, // llvm.hexagon.M2.mmpyh.rs1
-+ 1, // llvm.hexagon.M2.mmpyh.s0
-+ 1, // llvm.hexagon.M2.mmpyh.s1
-+ 1, // llvm.hexagon.M2.mmpyl.rs0
-+ 1, // llvm.hexagon.M2.mmpyl.rs1
-+ 1, // llvm.hexagon.M2.mmpyl.s0
-+ 1, // llvm.hexagon.M2.mmpyl.s1
-+ 1, // llvm.hexagon.M2.mmpyuh.rs0
-+ 1, // llvm.hexagon.M2.mmpyuh.rs1
-+ 1, // llvm.hexagon.M2.mmpyuh.s0
-+ 1, // llvm.hexagon.M2.mmpyuh.s1
-+ 1, // llvm.hexagon.M2.mmpyul.rs0
-+ 1, // llvm.hexagon.M2.mmpyul.rs1
-+ 1, // llvm.hexagon.M2.mmpyul.s0
-+ 1, // llvm.hexagon.M2.mmpyul.s1
-+ 1, // llvm.hexagon.M2.mpy.acc.hh.s0
-+ 1, // llvm.hexagon.M2.mpy.acc.hh.s1
-+ 1, // llvm.hexagon.M2.mpy.acc.hl.s0
-+ 1, // llvm.hexagon.M2.mpy.acc.hl.s1
-+ 1, // llvm.hexagon.M2.mpy.acc.lh.s0
-+ 1, // llvm.hexagon.M2.mpy.acc.lh.s1
-+ 1, // llvm.hexagon.M2.mpy.acc.ll.s0
-+ 1, // llvm.hexagon.M2.mpy.acc.ll.s1
-+ 1, // llvm.hexagon.M2.mpy.acc.sat.hh.s0
-+ 1, // llvm.hexagon.M2.mpy.acc.sat.hh.s1
-+ 1, // llvm.hexagon.M2.mpy.acc.sat.hl.s0
-+ 1, // llvm.hexagon.M2.mpy.acc.sat.hl.s1
-+ 1, // llvm.hexagon.M2.mpy.acc.sat.lh.s0
-+ 1, // llvm.hexagon.M2.mpy.acc.sat.lh.s1
-+ 1, // llvm.hexagon.M2.mpy.acc.sat.ll.s0
-+ 1, // llvm.hexagon.M2.mpy.acc.sat.ll.s1
-+ 1, // llvm.hexagon.M2.mpy.hh.s0
-+ 1, // llvm.hexagon.M2.mpy.hh.s1
-+ 1, // llvm.hexagon.M2.mpy.hl.s0
-+ 1, // llvm.hexagon.M2.mpy.hl.s1
-+ 1, // llvm.hexagon.M2.mpy.lh.s0
-+ 1, // llvm.hexagon.M2.mpy.lh.s1
-+ 1, // llvm.hexagon.M2.mpy.ll.s0
-+ 1, // llvm.hexagon.M2.mpy.ll.s1
-+ 1, // llvm.hexagon.M2.mpy.nac.hh.s0
-+ 1, // llvm.hexagon.M2.mpy.nac.hh.s1
-+ 1, // llvm.hexagon.M2.mpy.nac.hl.s0
-+ 1, // llvm.hexagon.M2.mpy.nac.hl.s1
-+ 1, // llvm.hexagon.M2.mpy.nac.lh.s0
-+ 1, // llvm.hexagon.M2.mpy.nac.lh.s1
-+ 1, // llvm.hexagon.M2.mpy.nac.ll.s0
-+ 1, // llvm.hexagon.M2.mpy.nac.ll.s1
-+ 1, // llvm.hexagon.M2.mpy.nac.sat.hh.s0
-+ 1, // llvm.hexagon.M2.mpy.nac.sat.hh.s1
-+ 1, // llvm.hexagon.M2.mpy.nac.sat.hl.s0
-+ 1, // llvm.hexagon.M2.mpy.nac.sat.hl.s1
-+ 1, // llvm.hexagon.M2.mpy.nac.sat.lh.s0
-+ 1, // llvm.hexagon.M2.mpy.nac.sat.lh.s1
-+ 1, // llvm.hexagon.M2.mpy.nac.sat.ll.s0
-+ 1, // llvm.hexagon.M2.mpy.nac.sat.ll.s1
-+ 1, // llvm.hexagon.M2.mpy.rnd.hh.s0
-+ 1, // llvm.hexagon.M2.mpy.rnd.hh.s1
-+ 1, // llvm.hexagon.M2.mpy.rnd.hl.s0
-+ 1, // llvm.hexagon.M2.mpy.rnd.hl.s1
-+ 1, // llvm.hexagon.M2.mpy.rnd.lh.s0
-+ 1, // llvm.hexagon.M2.mpy.rnd.lh.s1
-+ 1, // llvm.hexagon.M2.mpy.rnd.ll.s0
-+ 1, // llvm.hexagon.M2.mpy.rnd.ll.s1
-+ 1, // llvm.hexagon.M2.mpy.sat.hh.s0
-+ 1, // llvm.hexagon.M2.mpy.sat.hh.s1
-+ 1, // llvm.hexagon.M2.mpy.sat.hl.s0
-+ 1, // llvm.hexagon.M2.mpy.sat.hl.s1
-+ 1, // llvm.hexagon.M2.mpy.sat.lh.s0
-+ 1, // llvm.hexagon.M2.mpy.sat.lh.s1
-+ 1, // llvm.hexagon.M2.mpy.sat.ll.s0
-+ 1, // llvm.hexagon.M2.mpy.sat.ll.s1
-+ 1, // llvm.hexagon.M2.mpy.sat.rnd.hh.s0
-+ 1, // llvm.hexagon.M2.mpy.sat.rnd.hh.s1
-+ 1, // llvm.hexagon.M2.mpy.sat.rnd.hl.s0
-+ 1, // llvm.hexagon.M2.mpy.sat.rnd.hl.s1
-+ 1, // llvm.hexagon.M2.mpy.sat.rnd.lh.s0
-+ 1, // llvm.hexagon.M2.mpy.sat.rnd.lh.s1
-+ 1, // llvm.hexagon.M2.mpy.sat.rnd.ll.s0
-+ 1, // llvm.hexagon.M2.mpy.sat.rnd.ll.s1
-+ 1, // llvm.hexagon.M2.mpy.up
-+ 1, // llvm.hexagon.M2.mpy.up.s1
-+ 1, // llvm.hexagon.M2.mpy.up.s1.sat
-+ 1, // llvm.hexagon.M2.mpyd.acc.hh.s0
-+ 1, // llvm.hexagon.M2.mpyd.acc.hh.s1
-+ 1, // llvm.hexagon.M2.mpyd.acc.hl.s0
-+ 1, // llvm.hexagon.M2.mpyd.acc.hl.s1
-+ 1, // llvm.hexagon.M2.mpyd.acc.lh.s0
-+ 1, // llvm.hexagon.M2.mpyd.acc.lh.s1
-+ 1, // llvm.hexagon.M2.mpyd.acc.ll.s0
-+ 1, // llvm.hexagon.M2.mpyd.acc.ll.s1
-+ 1, // llvm.hexagon.M2.mpyd.hh.s0
-+ 1, // llvm.hexagon.M2.mpyd.hh.s1
-+ 1, // llvm.hexagon.M2.mpyd.hl.s0
-+ 1, // llvm.hexagon.M2.mpyd.hl.s1
-+ 1, // llvm.hexagon.M2.mpyd.lh.s0
-+ 1, // llvm.hexagon.M2.mpyd.lh.s1
-+ 1, // llvm.hexagon.M2.mpyd.ll.s0
-+ 1, // llvm.hexagon.M2.mpyd.ll.s1
-+ 1, // llvm.hexagon.M2.mpyd.nac.hh.s0
-+ 1, // llvm.hexagon.M2.mpyd.nac.hh.s1
-+ 1, // llvm.hexagon.M2.mpyd.nac.hl.s0
-+ 1, // llvm.hexagon.M2.mpyd.nac.hl.s1
-+ 1, // llvm.hexagon.M2.mpyd.nac.lh.s0
-+ 1, // llvm.hexagon.M2.mpyd.nac.lh.s1
-+ 1, // llvm.hexagon.M2.mpyd.nac.ll.s0
-+ 1, // llvm.hexagon.M2.mpyd.nac.ll.s1
-+ 1, // llvm.hexagon.M2.mpyd.rnd.hh.s0
-+ 1, // llvm.hexagon.M2.mpyd.rnd.hh.s1
-+ 1, // llvm.hexagon.M2.mpyd.rnd.hl.s0
-+ 1, // llvm.hexagon.M2.mpyd.rnd.hl.s1
-+ 1, // llvm.hexagon.M2.mpyd.rnd.lh.s0
-+ 1, // llvm.hexagon.M2.mpyd.rnd.lh.s1
-+ 1, // llvm.hexagon.M2.mpyd.rnd.ll.s0
-+ 1, // llvm.hexagon.M2.mpyd.rnd.ll.s1
-+ 1, // llvm.hexagon.M2.mpyi
-+ 1, // llvm.hexagon.M2.mpysmi
-+ 1, // llvm.hexagon.M2.mpysu.up
-+ 1, // llvm.hexagon.M2.mpyu.acc.hh.s0
-+ 1, // llvm.hexagon.M2.mpyu.acc.hh.s1
-+ 1, // llvm.hexagon.M2.mpyu.acc.hl.s0
-+ 1, // llvm.hexagon.M2.mpyu.acc.hl.s1
-+ 1, // llvm.hexagon.M2.mpyu.acc.lh.s0
-+ 1, // llvm.hexagon.M2.mpyu.acc.lh.s1
-+ 1, // llvm.hexagon.M2.mpyu.acc.ll.s0
-+ 1, // llvm.hexagon.M2.mpyu.acc.ll.s1
-+ 1, // llvm.hexagon.M2.mpyu.hh.s0
-+ 1, // llvm.hexagon.M2.mpyu.hh.s1
-+ 1, // llvm.hexagon.M2.mpyu.hl.s0
-+ 1, // llvm.hexagon.M2.mpyu.hl.s1
-+ 1, // llvm.hexagon.M2.mpyu.lh.s0
-+ 1, // llvm.hexagon.M2.mpyu.lh.s1
-+ 1, // llvm.hexagon.M2.mpyu.ll.s0
-+ 1, // llvm.hexagon.M2.mpyu.ll.s1
-+ 1, // llvm.hexagon.M2.mpyu.nac.hh.s0
-+ 1, // llvm.hexagon.M2.mpyu.nac.hh.s1
-+ 1, // llvm.hexagon.M2.mpyu.nac.hl.s0
-+ 1, // llvm.hexagon.M2.mpyu.nac.hl.s1
-+ 1, // llvm.hexagon.M2.mpyu.nac.lh.s0
-+ 1, // llvm.hexagon.M2.mpyu.nac.lh.s1
-+ 1, // llvm.hexagon.M2.mpyu.nac.ll.s0
-+ 1, // llvm.hexagon.M2.mpyu.nac.ll.s1
-+ 1, // llvm.hexagon.M2.mpyu.up
-+ 1, // llvm.hexagon.M2.mpyud.acc.hh.s0
-+ 1, // llvm.hexagon.M2.mpyud.acc.hh.s1
-+ 1, // llvm.hexagon.M2.mpyud.acc.hl.s0
-+ 1, // llvm.hexagon.M2.mpyud.acc.hl.s1
-+ 1, // llvm.hexagon.M2.mpyud.acc.lh.s0
-+ 1, // llvm.hexagon.M2.mpyud.acc.lh.s1
-+ 1, // llvm.hexagon.M2.mpyud.acc.ll.s0
-+ 1, // llvm.hexagon.M2.mpyud.acc.ll.s1
-+ 1, // llvm.hexagon.M2.mpyud.hh.s0
-+ 1, // llvm.hexagon.M2.mpyud.hh.s1
-+ 1, // llvm.hexagon.M2.mpyud.hl.s0
-+ 1, // llvm.hexagon.M2.mpyud.hl.s1
-+ 1, // llvm.hexagon.M2.mpyud.lh.s0
-+ 1, // llvm.hexagon.M2.mpyud.lh.s1
-+ 1, // llvm.hexagon.M2.mpyud.ll.s0
-+ 1, // llvm.hexagon.M2.mpyud.ll.s1
-+ 1, // llvm.hexagon.M2.mpyud.nac.hh.s0
-+ 1, // llvm.hexagon.M2.mpyud.nac.hh.s1
-+ 1, // llvm.hexagon.M2.mpyud.nac.hl.s0
-+ 1, // llvm.hexagon.M2.mpyud.nac.hl.s1
-+ 1, // llvm.hexagon.M2.mpyud.nac.lh.s0
-+ 1, // llvm.hexagon.M2.mpyud.nac.lh.s1
-+ 1, // llvm.hexagon.M2.mpyud.nac.ll.s0
-+ 1, // llvm.hexagon.M2.mpyud.nac.ll.s1
-+ 1, // llvm.hexagon.M2.mpyui
-+ 1, // llvm.hexagon.M2.nacci
-+ 1, // llvm.hexagon.M2.naccii
-+ 1, // llvm.hexagon.M2.subacc
-+ 1, // llvm.hexagon.M2.vabsdiffh
-+ 1, // llvm.hexagon.M2.vabsdiffw
-+ 1, // llvm.hexagon.M2.vcmac.s0.sat.i
-+ 1, // llvm.hexagon.M2.vcmac.s0.sat.r
-+ 1, // llvm.hexagon.M2.vcmpy.s0.sat.i
-+ 1, // llvm.hexagon.M2.vcmpy.s0.sat.r
-+ 1, // llvm.hexagon.M2.vcmpy.s1.sat.i
-+ 1, // llvm.hexagon.M2.vcmpy.s1.sat.r
-+ 1, // llvm.hexagon.M2.vdmacs.s0
-+ 1, // llvm.hexagon.M2.vdmacs.s1
-+ 1, // llvm.hexagon.M2.vdmpyrs.s0
-+ 1, // llvm.hexagon.M2.vdmpyrs.s1
-+ 1, // llvm.hexagon.M2.vdmpys.s0
-+ 1, // llvm.hexagon.M2.vdmpys.s1
-+ 1, // llvm.hexagon.M2.vmac2
-+ 1, // llvm.hexagon.M2.vmac2es
-+ 1, // llvm.hexagon.M2.vmac2es.s0
-+ 1, // llvm.hexagon.M2.vmac2es.s1
-+ 1, // llvm.hexagon.M2.vmac2s.s0
-+ 1, // llvm.hexagon.M2.vmac2s.s1
-+ 1, // llvm.hexagon.M2.vmac2su.s0
-+ 1, // llvm.hexagon.M2.vmac2su.s1
-+ 1, // llvm.hexagon.M2.vmpy2es.s0
-+ 1, // llvm.hexagon.M2.vmpy2es.s1
-+ 1, // llvm.hexagon.M2.vmpy2s.s0
-+ 1, // llvm.hexagon.M2.vmpy2s.s0pack
-+ 1, // llvm.hexagon.M2.vmpy2s.s1
-+ 1, // llvm.hexagon.M2.vmpy2s.s1pack
-+ 1, // llvm.hexagon.M2.vmpy2su.s0
-+ 1, // llvm.hexagon.M2.vmpy2su.s1
-+ 1, // llvm.hexagon.M2.vraddh
-+ 1, // llvm.hexagon.M2.vradduh
-+ 1, // llvm.hexagon.M2.vrcmaci.s0
-+ 1, // llvm.hexagon.M2.vrcmaci.s0c
-+ 1, // llvm.hexagon.M2.vrcmacr.s0
-+ 1, // llvm.hexagon.M2.vrcmacr.s0c
-+ 1, // llvm.hexagon.M2.vrcmpyi.s0
-+ 1, // llvm.hexagon.M2.vrcmpyi.s0c
-+ 1, // llvm.hexagon.M2.vrcmpyr.s0
-+ 1, // llvm.hexagon.M2.vrcmpyr.s0c
-+ 1, // llvm.hexagon.M2.vrcmpys.acc.s1
-+ 1, // llvm.hexagon.M2.vrcmpys.s1
-+ 1, // llvm.hexagon.M2.vrcmpys.s1rp
-+ 1, // llvm.hexagon.M2.vrmac.s0
-+ 1, // llvm.hexagon.M2.vrmpy.s0
-+ 1, // llvm.hexagon.M2.xor.xacc
-+ 1, // llvm.hexagon.M4.and.and
-+ 1, // llvm.hexagon.M4.and.andn
-+ 1, // llvm.hexagon.M4.and.or
-+ 1, // llvm.hexagon.M4.and.xor
-+ 1, // llvm.hexagon.M4.cmpyi.wh
-+ 1, // llvm.hexagon.M4.cmpyi.whc
-+ 1, // llvm.hexagon.M4.cmpyr.wh
-+ 1, // llvm.hexagon.M4.cmpyr.whc
-+ 1, // llvm.hexagon.M4.mac.up.s1.sat
-+ 1, // llvm.hexagon.M4.mpyri.addi
-+ 1, // llvm.hexagon.M4.mpyri.addr
-+ 1, // llvm.hexagon.M4.mpyri.addr.u2
-+ 1, // llvm.hexagon.M4.mpyrr.addi
-+ 1, // llvm.hexagon.M4.mpyrr.addr
-+ 1, // llvm.hexagon.M4.nac.up.s1.sat
-+ 1, // llvm.hexagon.M4.or.and
-+ 1, // llvm.hexagon.M4.or.andn
-+ 1, // llvm.hexagon.M4.or.or
-+ 1, // llvm.hexagon.M4.or.xor
-+ 1, // llvm.hexagon.M4.pmpyw
-+ 1, // llvm.hexagon.M4.pmpyw.acc
-+ 1, // llvm.hexagon.M4.vpmpyh
-+ 1, // llvm.hexagon.M4.vpmpyh.acc
-+ 1, // llvm.hexagon.M4.vrmpyeh.acc.s0
-+ 1, // llvm.hexagon.M4.vrmpyeh.acc.s1
-+ 1, // llvm.hexagon.M4.vrmpyeh.s0
-+ 1, // llvm.hexagon.M4.vrmpyeh.s1
-+ 1, // llvm.hexagon.M4.vrmpyoh.acc.s0
-+ 1, // llvm.hexagon.M4.vrmpyoh.acc.s1
-+ 1, // llvm.hexagon.M4.vrmpyoh.s0
-+ 1, // llvm.hexagon.M4.vrmpyoh.s1
-+ 1, // llvm.hexagon.M4.xor.and
-+ 1, // llvm.hexagon.M4.xor.andn
-+ 1, // llvm.hexagon.M4.xor.or
-+ 1, // llvm.hexagon.M4.xor.xacc
-+ 1, // llvm.hexagon.M5.vdmacbsu
-+ 1, // llvm.hexagon.M5.vdmpybsu
-+ 1, // llvm.hexagon.M5.vmacbsu
-+ 1, // llvm.hexagon.M5.vmacbuu
-+ 1, // llvm.hexagon.M5.vmpybsu
-+ 1, // llvm.hexagon.M5.vmpybuu
-+ 1, // llvm.hexagon.M5.vrmacbsu
-+ 1, // llvm.hexagon.M5.vrmacbuu
-+ 1, // llvm.hexagon.M5.vrmpybsu
-+ 1, // llvm.hexagon.M5.vrmpybuu
-+ 1, // llvm.hexagon.M6.vabsdiffb
-+ 1, // llvm.hexagon.M6.vabsdiffub
-+ 1, // llvm.hexagon.S2.addasl.rrri
-+ 1, // llvm.hexagon.S2.asl.i.p
-+ 1, // llvm.hexagon.S2.asl.i.p.acc
-+ 1, // llvm.hexagon.S2.asl.i.p.and
-+ 1, // llvm.hexagon.S2.asl.i.p.nac
-+ 1, // llvm.hexagon.S2.asl.i.p.or
-+ 1, // llvm.hexagon.S2.asl.i.p.xacc
-+ 1, // llvm.hexagon.S2.asl.i.r
-+ 1, // llvm.hexagon.S2.asl.i.r.acc
-+ 1, // llvm.hexagon.S2.asl.i.r.and
-+ 1, // llvm.hexagon.S2.asl.i.r.nac
-+ 1, // llvm.hexagon.S2.asl.i.r.or
-+ 1, // llvm.hexagon.S2.asl.i.r.sat
-+ 1, // llvm.hexagon.S2.asl.i.r.xacc
-+ 1, // llvm.hexagon.S2.asl.i.vh
-+ 1, // llvm.hexagon.S2.asl.i.vw
-+ 1, // llvm.hexagon.S2.asl.r.p
-+ 1, // llvm.hexagon.S2.asl.r.p.acc
-+ 1, // llvm.hexagon.S2.asl.r.p.and
-+ 1, // llvm.hexagon.S2.asl.r.p.nac
-+ 1, // llvm.hexagon.S2.asl.r.p.or
-+ 1, // llvm.hexagon.S2.asl.r.p.xor
-+ 1, // llvm.hexagon.S2.asl.r.r
-+ 1, // llvm.hexagon.S2.asl.r.r.acc
-+ 1, // llvm.hexagon.S2.asl.r.r.and
-+ 1, // llvm.hexagon.S2.asl.r.r.nac
-+ 1, // llvm.hexagon.S2.asl.r.r.or
-+ 1, // llvm.hexagon.S2.asl.r.r.sat
-+ 1, // llvm.hexagon.S2.asl.r.vh
-+ 1, // llvm.hexagon.S2.asl.r.vw
-+ 1, // llvm.hexagon.S2.asr.i.p
-+ 1, // llvm.hexagon.S2.asr.i.p.acc
-+ 1, // llvm.hexagon.S2.asr.i.p.and
-+ 1, // llvm.hexagon.S2.asr.i.p.nac
-+ 1, // llvm.hexagon.S2.asr.i.p.or
-+ 1, // llvm.hexagon.S2.asr.i.p.rnd
-+ 1, // llvm.hexagon.S2.asr.i.p.rnd.goodsyntax
-+ 1, // llvm.hexagon.S2.asr.i.r
-+ 1, // llvm.hexagon.S2.asr.i.r.acc
-+ 1, // llvm.hexagon.S2.asr.i.r.and
-+ 1, // llvm.hexagon.S2.asr.i.r.nac
-+ 1, // llvm.hexagon.S2.asr.i.r.or
-+ 1, // llvm.hexagon.S2.asr.i.r.rnd
-+ 1, // llvm.hexagon.S2.asr.i.r.rnd.goodsyntax
-+ 1, // llvm.hexagon.S2.asr.i.svw.trun
-+ 1, // llvm.hexagon.S2.asr.i.vh
-+ 1, // llvm.hexagon.S2.asr.i.vw
-+ 1, // llvm.hexagon.S2.asr.r.p
-+ 1, // llvm.hexagon.S2.asr.r.p.acc
-+ 1, // llvm.hexagon.S2.asr.r.p.and
-+ 1, // llvm.hexagon.S2.asr.r.p.nac
-+ 1, // llvm.hexagon.S2.asr.r.p.or
-+ 1, // llvm.hexagon.S2.asr.r.p.xor
-+ 1, // llvm.hexagon.S2.asr.r.r
-+ 1, // llvm.hexagon.S2.asr.r.r.acc
-+ 1, // llvm.hexagon.S2.asr.r.r.and
-+ 1, // llvm.hexagon.S2.asr.r.r.nac
-+ 1, // llvm.hexagon.S2.asr.r.r.or
-+ 1, // llvm.hexagon.S2.asr.r.r.sat
-+ 1, // llvm.hexagon.S2.asr.r.svw.trun
-+ 1, // llvm.hexagon.S2.asr.r.vh
-+ 1, // llvm.hexagon.S2.asr.r.vw
-+ 1, // llvm.hexagon.S2.brev
-+ 1, // llvm.hexagon.S2.brevp
-+ 1, // llvm.hexagon.S2.cabacencbin
-+ 1, // llvm.hexagon.S2.cl0
-+ 1, // llvm.hexagon.S2.cl0p
-+ 1, // llvm.hexagon.S2.cl1
-+ 1, // llvm.hexagon.S2.cl1p
-+ 1, // llvm.hexagon.S2.clb
-+ 1, // llvm.hexagon.S2.clbnorm
-+ 1, // llvm.hexagon.S2.clbp
-+ 1, // llvm.hexagon.S2.clrbit.i
-+ 1, // llvm.hexagon.S2.clrbit.r
-+ 1, // llvm.hexagon.S2.ct0
-+ 1, // llvm.hexagon.S2.ct0p
-+ 1, // llvm.hexagon.S2.ct1
-+ 1, // llvm.hexagon.S2.ct1p
-+ 1, // llvm.hexagon.S2.deinterleave
-+ 1, // llvm.hexagon.S2.extractu
-+ 1, // llvm.hexagon.S2.extractu.rp
-+ 1, // llvm.hexagon.S2.extractup
-+ 1, // llvm.hexagon.S2.extractup.rp
-+ 1, // llvm.hexagon.S2.insert
-+ 1, // llvm.hexagon.S2.insert.rp
-+ 1, // llvm.hexagon.S2.insertp
-+ 1, // llvm.hexagon.S2.insertp.rp
-+ 1, // llvm.hexagon.S2.interleave
-+ 1, // llvm.hexagon.S2.lfsp
-+ 1, // llvm.hexagon.S2.lsl.r.p
-+ 1, // llvm.hexagon.S2.lsl.r.p.acc
-+ 1, // llvm.hexagon.S2.lsl.r.p.and
-+ 1, // llvm.hexagon.S2.lsl.r.p.nac
-+ 1, // llvm.hexagon.S2.lsl.r.p.or
-+ 1, // llvm.hexagon.S2.lsl.r.p.xor
-+ 1, // llvm.hexagon.S2.lsl.r.r
-+ 1, // llvm.hexagon.S2.lsl.r.r.acc
-+ 1, // llvm.hexagon.S2.lsl.r.r.and
-+ 1, // llvm.hexagon.S2.lsl.r.r.nac
-+ 1, // llvm.hexagon.S2.lsl.r.r.or
-+ 1, // llvm.hexagon.S2.lsl.r.vh
-+ 1, // llvm.hexagon.S2.lsl.r.vw
-+ 1, // llvm.hexagon.S2.lsr.i.p
-+ 1, // llvm.hexagon.S2.lsr.i.p.acc
-+ 1, // llvm.hexagon.S2.lsr.i.p.and
-+ 1, // llvm.hexagon.S2.lsr.i.p.nac
-+ 1, // llvm.hexagon.S2.lsr.i.p.or
-+ 1, // llvm.hexagon.S2.lsr.i.p.xacc
-+ 1, // llvm.hexagon.S2.lsr.i.r
-+ 1, // llvm.hexagon.S2.lsr.i.r.acc
-+ 1, // llvm.hexagon.S2.lsr.i.r.and
-+ 1, // llvm.hexagon.S2.lsr.i.r.nac
-+ 1, // llvm.hexagon.S2.lsr.i.r.or
-+ 1, // llvm.hexagon.S2.lsr.i.r.xacc
-+ 1, // llvm.hexagon.S2.lsr.i.vh
-+ 1, // llvm.hexagon.S2.lsr.i.vw
-+ 1, // llvm.hexagon.S2.lsr.r.p
-+ 1, // llvm.hexagon.S2.lsr.r.p.acc
-+ 1, // llvm.hexagon.S2.lsr.r.p.and
-+ 1, // llvm.hexagon.S2.lsr.r.p.nac
-+ 1, // llvm.hexagon.S2.lsr.r.p.or
-+ 1, // llvm.hexagon.S2.lsr.r.p.xor
-+ 1, // llvm.hexagon.S2.lsr.r.r
-+ 1, // llvm.hexagon.S2.lsr.r.r.acc
-+ 1, // llvm.hexagon.S2.lsr.r.r.and
-+ 1, // llvm.hexagon.S2.lsr.r.r.nac
-+ 1, // llvm.hexagon.S2.lsr.r.r.or
-+ 1, // llvm.hexagon.S2.lsr.r.vh
-+ 1, // llvm.hexagon.S2.lsr.r.vw
-+ 1, // llvm.hexagon.S2.packhl
-+ 1, // llvm.hexagon.S2.parityp
-+ 1, // llvm.hexagon.S2.setbit.i
-+ 1, // llvm.hexagon.S2.setbit.r
-+ 1, // llvm.hexagon.S2.shuffeb
-+ 1, // llvm.hexagon.S2.shuffeh
-+ 1, // llvm.hexagon.S2.shuffob
-+ 1, // llvm.hexagon.S2.shuffoh
-+ 15, // llvm.hexagon.S2.storew.locked
-+ 1, // llvm.hexagon.S2.svsathb
-+ 1, // llvm.hexagon.S2.svsathub
-+ 1, // llvm.hexagon.S2.tableidxb.goodsyntax
-+ 1, // llvm.hexagon.S2.tableidxd.goodsyntax
-+ 1, // llvm.hexagon.S2.tableidxh.goodsyntax
-+ 1, // llvm.hexagon.S2.tableidxw.goodsyntax
-+ 1, // llvm.hexagon.S2.togglebit.i
-+ 1, // llvm.hexagon.S2.togglebit.r
-+ 1, // llvm.hexagon.S2.tstbit.i
-+ 1, // llvm.hexagon.S2.tstbit.r
-+ 1, // llvm.hexagon.S2.valignib
-+ 1, // llvm.hexagon.S2.valignrb
-+ 1, // llvm.hexagon.S2.vcnegh
-+ 1, // llvm.hexagon.S2.vcrotate
-+ 1, // llvm.hexagon.S2.vrcnegh
-+ 1, // llvm.hexagon.S2.vrndpackwh
-+ 1, // llvm.hexagon.S2.vrndpackwhs
-+ 1, // llvm.hexagon.S2.vsathb
-+ 1, // llvm.hexagon.S2.vsathb.nopack
-+ 1, // llvm.hexagon.S2.vsathub
-+ 1, // llvm.hexagon.S2.vsathub.nopack
-+ 1, // llvm.hexagon.S2.vsatwh
-+ 1, // llvm.hexagon.S2.vsatwh.nopack
-+ 1, // llvm.hexagon.S2.vsatwuh
-+ 1, // llvm.hexagon.S2.vsatwuh.nopack
-+ 1, // llvm.hexagon.S2.vsplatrb
-+ 1, // llvm.hexagon.S2.vsplatrh
-+ 1, // llvm.hexagon.S2.vspliceib
-+ 1, // llvm.hexagon.S2.vsplicerb
-+ 1, // llvm.hexagon.S2.vsxtbh
-+ 1, // llvm.hexagon.S2.vsxthw
-+ 1, // llvm.hexagon.S2.vtrunehb
-+ 1, // llvm.hexagon.S2.vtrunewh
-+ 1, // llvm.hexagon.S2.vtrunohb
-+ 1, // llvm.hexagon.S2.vtrunowh
-+ 1, // llvm.hexagon.S2.vzxtbh
-+ 1, // llvm.hexagon.S2.vzxthw
-+ 1, // llvm.hexagon.S4.addaddi
-+ 1, // llvm.hexagon.S4.addi.asl.ri
-+ 1, // llvm.hexagon.S4.addi.lsr.ri
-+ 1, // llvm.hexagon.S4.andi.asl.ri
-+ 1, // llvm.hexagon.S4.andi.lsr.ri
-+ 1, // llvm.hexagon.S4.clbaddi
-+ 1, // llvm.hexagon.S4.clbpaddi
-+ 1, // llvm.hexagon.S4.clbpnorm
-+ 1, // llvm.hexagon.S4.extract
-+ 1, // llvm.hexagon.S4.extract.rp
-+ 1, // llvm.hexagon.S4.extractp
-+ 1, // llvm.hexagon.S4.extractp.rp
-+ 1, // llvm.hexagon.S4.lsli
-+ 1, // llvm.hexagon.S4.ntstbit.i
-+ 1, // llvm.hexagon.S4.ntstbit.r
-+ 1, // llvm.hexagon.S4.or.andi
-+ 1, // llvm.hexagon.S4.or.andix
-+ 1, // llvm.hexagon.S4.or.ori
-+ 1, // llvm.hexagon.S4.ori.asl.ri
-+ 1, // llvm.hexagon.S4.ori.lsr.ri
-+ 1, // llvm.hexagon.S4.parity
-+ 15, // llvm.hexagon.S4.stored.locked
-+ 1, // llvm.hexagon.S4.subaddi
-+ 1, // llvm.hexagon.S4.subi.asl.ri
-+ 1, // llvm.hexagon.S4.subi.lsr.ri
-+ 1, // llvm.hexagon.S4.vrcrotate
-+ 1, // llvm.hexagon.S4.vrcrotate.acc
-+ 1, // llvm.hexagon.S4.vxaddsubh
-+ 1, // llvm.hexagon.S4.vxaddsubhr
-+ 1, // llvm.hexagon.S4.vxaddsubw
-+ 1, // llvm.hexagon.S4.vxsubaddh
-+ 1, // llvm.hexagon.S4.vxsubaddhr
-+ 1, // llvm.hexagon.S4.vxsubaddw
-+ 1, // llvm.hexagon.S5.asrhub.rnd.sat.goodsyntax
-+ 1, // llvm.hexagon.S5.asrhub.sat
-+ 1, // llvm.hexagon.S5.popcountp
-+ 1, // llvm.hexagon.S5.vasrhrnd.goodsyntax
-+ 1, // llvm.hexagon.S6.rol.i.p
-+ 1, // llvm.hexagon.S6.rol.i.p.acc
-+ 1, // llvm.hexagon.S6.rol.i.p.and
-+ 1, // llvm.hexagon.S6.rol.i.p.nac
-+ 1, // llvm.hexagon.S6.rol.i.p.or
-+ 1, // llvm.hexagon.S6.rol.i.p.xacc
-+ 1, // llvm.hexagon.S6.rol.i.r
-+ 1, // llvm.hexagon.S6.rol.i.r.acc
-+ 1, // llvm.hexagon.S6.rol.i.r.and
-+ 1, // llvm.hexagon.S6.rol.i.r.nac
-+ 1, // llvm.hexagon.S6.rol.i.r.or
-+ 1, // llvm.hexagon.S6.rol.i.r.xacc
-+ 1, // llvm.hexagon.S6.vsplatrbp
-+ 1, // llvm.hexagon.S6.vtrunehb.ppp
-+ 1, // llvm.hexagon.S6.vtrunohb.ppp
-+ 1, // llvm.hexagon.SI.to.SXTHI.asrh
-+ 1, // llvm.hexagon.V6.extractw
-+ 1, // llvm.hexagon.V6.extractw.128B
-+ 1, // llvm.hexagon.V6.hi
-+ 1, // llvm.hexagon.V6.hi.128B
-+ 1, // llvm.hexagon.V6.lo
-+ 1, // llvm.hexagon.V6.lo.128B
-+ 1, // llvm.hexagon.V6.lvsplatw
-+ 1, // llvm.hexagon.V6.lvsplatw.128B
-+ 1, // llvm.hexagon.V6.pred.and
-+ 1, // llvm.hexagon.V6.pred.and.128B
-+ 1, // llvm.hexagon.V6.pred.and.n
-+ 1, // llvm.hexagon.V6.pred.and.n.128B
-+ 1, // llvm.hexagon.V6.pred.not
-+ 1, // llvm.hexagon.V6.pred.not.128B
-+ 1, // llvm.hexagon.V6.pred.or
-+ 1, // llvm.hexagon.V6.pred.or.128B
-+ 1, // llvm.hexagon.V6.pred.or.n
-+ 1, // llvm.hexagon.V6.pred.or.n.128B
-+ 1, // llvm.hexagon.V6.pred.scalar2
-+ 1, // llvm.hexagon.V6.pred.scalar2.128B
-+ 1, // llvm.hexagon.V6.pred.xor
-+ 1, // llvm.hexagon.V6.pred.xor.128B
-+ 1, // llvm.hexagon.V6.vabsdiffh
-+ 1, // llvm.hexagon.V6.vabsdiffh.128B
-+ 1, // llvm.hexagon.V6.vabsdiffub
-+ 1, // llvm.hexagon.V6.vabsdiffub.128B
-+ 1, // llvm.hexagon.V6.vabsdiffuh
-+ 1, // llvm.hexagon.V6.vabsdiffuh.128B
-+ 1, // llvm.hexagon.V6.vabsdiffw
-+ 1, // llvm.hexagon.V6.vabsdiffw.128B
-+ 1, // llvm.hexagon.V6.vabsh
-+ 1, // llvm.hexagon.V6.vabsh.128B
-+ 1, // llvm.hexagon.V6.vabsh.sat
-+ 1, // llvm.hexagon.V6.vabsh.sat.128B
-+ 1, // llvm.hexagon.V6.vabsw
-+ 1, // llvm.hexagon.V6.vabsw.128B
-+ 1, // llvm.hexagon.V6.vabsw.sat
-+ 1, // llvm.hexagon.V6.vabsw.sat.128B
-+ 1, // llvm.hexagon.V6.vaddb
-+ 1, // llvm.hexagon.V6.vaddb.128B
-+ 1, // llvm.hexagon.V6.vaddb.dv
-+ 1, // llvm.hexagon.V6.vaddb.dv.128B
-+ 1, // llvm.hexagon.V6.vaddbnq
-+ 1, // llvm.hexagon.V6.vaddbnq.128B
-+ 1, // llvm.hexagon.V6.vaddbq
-+ 1, // llvm.hexagon.V6.vaddbq.128B
-+ 1, // llvm.hexagon.V6.vaddh
-+ 1, // llvm.hexagon.V6.vaddh.128B
-+ 1, // llvm.hexagon.V6.vaddh.dv
-+ 1, // llvm.hexagon.V6.vaddh.dv.128B
-+ 1, // llvm.hexagon.V6.vaddhnq
-+ 1, // llvm.hexagon.V6.vaddhnq.128B
-+ 1, // llvm.hexagon.V6.vaddhq
-+ 1, // llvm.hexagon.V6.vaddhq.128B
-+ 1, // llvm.hexagon.V6.vaddhsat
-+ 1, // llvm.hexagon.V6.vaddhsat.128B
-+ 1, // llvm.hexagon.V6.vaddhsat.dv
-+ 1, // llvm.hexagon.V6.vaddhsat.dv.128B
-+ 1, // llvm.hexagon.V6.vaddhw
-+ 1, // llvm.hexagon.V6.vaddhw.128B
-+ 1, // llvm.hexagon.V6.vaddubh
-+ 1, // llvm.hexagon.V6.vaddubh.128B
-+ 1, // llvm.hexagon.V6.vaddubsat
-+ 1, // llvm.hexagon.V6.vaddubsat.128B
-+ 1, // llvm.hexagon.V6.vaddubsat.dv
-+ 1, // llvm.hexagon.V6.vaddubsat.dv.128B
-+ 1, // llvm.hexagon.V6.vadduhsat
-+ 1, // llvm.hexagon.V6.vadduhsat.128B
-+ 1, // llvm.hexagon.V6.vadduhsat.dv
-+ 1, // llvm.hexagon.V6.vadduhsat.dv.128B
-+ 1, // llvm.hexagon.V6.vadduhw
-+ 1, // llvm.hexagon.V6.vadduhw.128B
-+ 1, // llvm.hexagon.V6.vaddw
-+ 1, // llvm.hexagon.V6.vaddw.128B
-+ 1, // llvm.hexagon.V6.vaddw.dv
-+ 1, // llvm.hexagon.V6.vaddw.dv.128B
-+ 1, // llvm.hexagon.V6.vaddwnq
-+ 1, // llvm.hexagon.V6.vaddwnq.128B
-+ 1, // llvm.hexagon.V6.vaddwq
-+ 1, // llvm.hexagon.V6.vaddwq.128B
-+ 1, // llvm.hexagon.V6.vaddwsat
-+ 1, // llvm.hexagon.V6.vaddwsat.128B
-+ 1, // llvm.hexagon.V6.vaddwsat.dv
-+ 1, // llvm.hexagon.V6.vaddwsat.dv.128B
-+ 1, // llvm.hexagon.V6.valignb
-+ 1, // llvm.hexagon.V6.valignb.128B
-+ 1, // llvm.hexagon.V6.valignbi
-+ 1, // llvm.hexagon.V6.valignbi.128B
-+ 1, // llvm.hexagon.V6.vand
-+ 1, // llvm.hexagon.V6.vand.128B
-+ 1, // llvm.hexagon.V6.vandqrt
-+ 1, // llvm.hexagon.V6.vandqrt.128B
-+ 1, // llvm.hexagon.V6.vandqrt.acc
-+ 1, // llvm.hexagon.V6.vandqrt.acc.128B
-+ 1, // llvm.hexagon.V6.vandvrt
-+ 1, // llvm.hexagon.V6.vandvrt.128B
-+ 1, // llvm.hexagon.V6.vandvrt.acc
-+ 1, // llvm.hexagon.V6.vandvrt.acc.128B
-+ 1, // llvm.hexagon.V6.vaslh
-+ 1, // llvm.hexagon.V6.vaslh.128B
-+ 1, // llvm.hexagon.V6.vaslhv
-+ 1, // llvm.hexagon.V6.vaslhv.128B
-+ 1, // llvm.hexagon.V6.vaslw
-+ 1, // llvm.hexagon.V6.vaslw.128B
-+ 1, // llvm.hexagon.V6.vaslw.acc
-+ 1, // llvm.hexagon.V6.vaslw.acc.128B
-+ 1, // llvm.hexagon.V6.vaslwv
-+ 1, // llvm.hexagon.V6.vaslwv.128B
-+ 1, // llvm.hexagon.V6.vasrh
-+ 1, // llvm.hexagon.V6.vasrh.128B
-+ 1, // llvm.hexagon.V6.vasrhbrndsat
-+ 1, // llvm.hexagon.V6.vasrhbrndsat.128B
-+ 1, // llvm.hexagon.V6.vasrhubrndsat
-+ 1, // llvm.hexagon.V6.vasrhubrndsat.128B
-+ 1, // llvm.hexagon.V6.vasrhubsat
-+ 1, // llvm.hexagon.V6.vasrhubsat.128B
-+ 1, // llvm.hexagon.V6.vasrhv
-+ 1, // llvm.hexagon.V6.vasrhv.128B
-+ 1, // llvm.hexagon.V6.vasrw
-+ 1, // llvm.hexagon.V6.vasrw.128B
-+ 1, // llvm.hexagon.V6.vasrw.acc
-+ 1, // llvm.hexagon.V6.vasrw.acc.128B
-+ 1, // llvm.hexagon.V6.vasrwh
-+ 1, // llvm.hexagon.V6.vasrwh.128B
-+ 1, // llvm.hexagon.V6.vasrwhrndsat
-+ 1, // llvm.hexagon.V6.vasrwhrndsat.128B
-+ 1, // llvm.hexagon.V6.vasrwhsat
-+ 1, // llvm.hexagon.V6.vasrwhsat.128B
-+ 1, // llvm.hexagon.V6.vasrwuhsat
-+ 1, // llvm.hexagon.V6.vasrwuhsat.128B
-+ 1, // llvm.hexagon.V6.vasrwv
-+ 1, // llvm.hexagon.V6.vasrwv.128B
-+ 1, // llvm.hexagon.V6.vassign
-+ 1, // llvm.hexagon.V6.vassign.128B
-+ 1, // llvm.hexagon.V6.vassignp
-+ 1, // llvm.hexagon.V6.vassignp.128B
-+ 1, // llvm.hexagon.V6.vavgh
-+ 1, // llvm.hexagon.V6.vavgh.128B
-+ 1, // llvm.hexagon.V6.vavghrnd
-+ 1, // llvm.hexagon.V6.vavghrnd.128B
-+ 1, // llvm.hexagon.V6.vavgub
-+ 1, // llvm.hexagon.V6.vavgub.128B
-+ 1, // llvm.hexagon.V6.vavgubrnd
-+ 1, // llvm.hexagon.V6.vavgubrnd.128B
-+ 1, // llvm.hexagon.V6.vavguh
-+ 1, // llvm.hexagon.V6.vavguh.128B
-+ 1, // llvm.hexagon.V6.vavguhrnd
-+ 1, // llvm.hexagon.V6.vavguhrnd.128B
-+ 1, // llvm.hexagon.V6.vavgw
-+ 1, // llvm.hexagon.V6.vavgw.128B
-+ 1, // llvm.hexagon.V6.vavgwrnd
-+ 1, // llvm.hexagon.V6.vavgwrnd.128B
-+ 1, // llvm.hexagon.V6.vcl0h
-+ 1, // llvm.hexagon.V6.vcl0h.128B
-+ 1, // llvm.hexagon.V6.vcl0w
-+ 1, // llvm.hexagon.V6.vcl0w.128B
-+ 1, // llvm.hexagon.V6.vcombine
-+ 1, // llvm.hexagon.V6.vcombine.128B
-+ 1, // llvm.hexagon.V6.vd0
-+ 1, // llvm.hexagon.V6.vd0.128B
-+ 1, // llvm.hexagon.V6.vdealb
-+ 1, // llvm.hexagon.V6.vdealb.128B
-+ 1, // llvm.hexagon.V6.vdealb4w
-+ 1, // llvm.hexagon.V6.vdealb4w.128B
-+ 1, // llvm.hexagon.V6.vdealh
-+ 1, // llvm.hexagon.V6.vdealh.128B
-+ 1, // llvm.hexagon.V6.vdealvdd
-+ 1, // llvm.hexagon.V6.vdealvdd.128B
-+ 1, // llvm.hexagon.V6.vdelta
-+ 1, // llvm.hexagon.V6.vdelta.128B
-+ 1, // llvm.hexagon.V6.vdmpybus
-+ 1, // llvm.hexagon.V6.vdmpybus.128B
-+ 1, // llvm.hexagon.V6.vdmpybus.acc
-+ 1, // llvm.hexagon.V6.vdmpybus.acc.128B
-+ 1, // llvm.hexagon.V6.vdmpybus.dv
-+ 1, // llvm.hexagon.V6.vdmpybus.dv.128B
-+ 1, // llvm.hexagon.V6.vdmpybus.dv.acc
-+ 1, // llvm.hexagon.V6.vdmpybus.dv.acc.128B
-+ 1, // llvm.hexagon.V6.vdmpyhb
-+ 1, // llvm.hexagon.V6.vdmpyhb.128B
-+ 1, // llvm.hexagon.V6.vdmpyhb.acc
-+ 1, // llvm.hexagon.V6.vdmpyhb.acc.128B
-+ 1, // llvm.hexagon.V6.vdmpyhb.dv
-+ 1, // llvm.hexagon.V6.vdmpyhb.dv.128B
-+ 1, // llvm.hexagon.V6.vdmpyhb.dv.acc
-+ 1, // llvm.hexagon.V6.vdmpyhb.dv.acc.128B
-+ 1, // llvm.hexagon.V6.vdmpyhisat
-+ 1, // llvm.hexagon.V6.vdmpyhisat.128B
-+ 1, // llvm.hexagon.V6.vdmpyhisat.acc
-+ 1, // llvm.hexagon.V6.vdmpyhisat.acc.128B
-+ 1, // llvm.hexagon.V6.vdmpyhsat
-+ 1, // llvm.hexagon.V6.vdmpyhsat.128B
-+ 1, // llvm.hexagon.V6.vdmpyhsat.acc
-+ 1, // llvm.hexagon.V6.vdmpyhsat.acc.128B
-+ 1, // llvm.hexagon.V6.vdmpyhsuisat
-+ 1, // llvm.hexagon.V6.vdmpyhsuisat.128B
-+ 1, // llvm.hexagon.V6.vdmpyhsuisat.acc
-+ 1, // llvm.hexagon.V6.vdmpyhsuisat.acc.128B
-+ 1, // llvm.hexagon.V6.vdmpyhsusat
-+ 1, // llvm.hexagon.V6.vdmpyhsusat.128B
-+ 1, // llvm.hexagon.V6.vdmpyhsusat.acc
-+ 1, // llvm.hexagon.V6.vdmpyhsusat.acc.128B
-+ 1, // llvm.hexagon.V6.vdmpyhvsat
-+ 1, // llvm.hexagon.V6.vdmpyhvsat.128B
-+ 1, // llvm.hexagon.V6.vdmpyhvsat.acc
-+ 1, // llvm.hexagon.V6.vdmpyhvsat.acc.128B
-+ 1, // llvm.hexagon.V6.vdsaduh
-+ 1, // llvm.hexagon.V6.vdsaduh.128B
-+ 1, // llvm.hexagon.V6.vdsaduh.acc
-+ 1, // llvm.hexagon.V6.vdsaduh.acc.128B
-+ 1, // llvm.hexagon.V6.veqb
-+ 1, // llvm.hexagon.V6.veqb.128B
-+ 1, // llvm.hexagon.V6.veqb.and
-+ 1, // llvm.hexagon.V6.veqb.and.128B
-+ 1, // llvm.hexagon.V6.veqb.or
-+ 1, // llvm.hexagon.V6.veqb.or.128B
-+ 1, // llvm.hexagon.V6.veqb.xor
-+ 1, // llvm.hexagon.V6.veqb.xor.128B
-+ 1, // llvm.hexagon.V6.veqh
-+ 1, // llvm.hexagon.V6.veqh.128B
-+ 1, // llvm.hexagon.V6.veqh.and
-+ 1, // llvm.hexagon.V6.veqh.and.128B
-+ 1, // llvm.hexagon.V6.veqh.or
-+ 1, // llvm.hexagon.V6.veqh.or.128B
-+ 1, // llvm.hexagon.V6.veqh.xor
-+ 1, // llvm.hexagon.V6.veqh.xor.128B
-+ 1, // llvm.hexagon.V6.veqw
-+ 1, // llvm.hexagon.V6.veqw.128B
-+ 1, // llvm.hexagon.V6.veqw.and
-+ 1, // llvm.hexagon.V6.veqw.and.128B
-+ 1, // llvm.hexagon.V6.veqw.or
-+ 1, // llvm.hexagon.V6.veqw.or.128B
-+ 1, // llvm.hexagon.V6.veqw.xor
-+ 1, // llvm.hexagon.V6.veqw.xor.128B
-+ 1, // llvm.hexagon.V6.vgtb
-+ 1, // llvm.hexagon.V6.vgtb.128B
-+ 1, // llvm.hexagon.V6.vgtb.and
-+ 1, // llvm.hexagon.V6.vgtb.and.128B
-+ 1, // llvm.hexagon.V6.vgtb.or
-+ 1, // llvm.hexagon.V6.vgtb.or.128B
-+ 1, // llvm.hexagon.V6.vgtb.xor
-+ 1, // llvm.hexagon.V6.vgtb.xor.128B
-+ 1, // llvm.hexagon.V6.vgth
-+ 1, // llvm.hexagon.V6.vgth.128B
-+ 1, // llvm.hexagon.V6.vgth.and
-+ 1, // llvm.hexagon.V6.vgth.and.128B
-+ 1, // llvm.hexagon.V6.vgth.or
-+ 1, // llvm.hexagon.V6.vgth.or.128B
-+ 1, // llvm.hexagon.V6.vgth.xor
-+ 1, // llvm.hexagon.V6.vgth.xor.128B
-+ 1, // llvm.hexagon.V6.vgtub
-+ 1, // llvm.hexagon.V6.vgtub.128B
-+ 1, // llvm.hexagon.V6.vgtub.and
-+ 1, // llvm.hexagon.V6.vgtub.and.128B
-+ 1, // llvm.hexagon.V6.vgtub.or
-+ 1, // llvm.hexagon.V6.vgtub.or.128B
-+ 1, // llvm.hexagon.V6.vgtub.xor
-+ 1, // llvm.hexagon.V6.vgtub.xor.128B
-+ 1, // llvm.hexagon.V6.vgtuh
-+ 1, // llvm.hexagon.V6.vgtuh.128B
-+ 1, // llvm.hexagon.V6.vgtuh.and
-+ 1, // llvm.hexagon.V6.vgtuh.and.128B
-+ 1, // llvm.hexagon.V6.vgtuh.or
-+ 1, // llvm.hexagon.V6.vgtuh.or.128B
-+ 1, // llvm.hexagon.V6.vgtuh.xor
-+ 1, // llvm.hexagon.V6.vgtuh.xor.128B
-+ 1, // llvm.hexagon.V6.vgtuw
-+ 1, // llvm.hexagon.V6.vgtuw.128B
-+ 1, // llvm.hexagon.V6.vgtuw.and
-+ 1, // llvm.hexagon.V6.vgtuw.and.128B
-+ 1, // llvm.hexagon.V6.vgtuw.or
-+ 1, // llvm.hexagon.V6.vgtuw.or.128B
-+ 1, // llvm.hexagon.V6.vgtuw.xor
-+ 1, // llvm.hexagon.V6.vgtuw.xor.128B
-+ 1, // llvm.hexagon.V6.vgtw
-+ 1, // llvm.hexagon.V6.vgtw.128B
-+ 1, // llvm.hexagon.V6.vgtw.and
-+ 1, // llvm.hexagon.V6.vgtw.and.128B
-+ 1, // llvm.hexagon.V6.vgtw.or
-+ 1, // llvm.hexagon.V6.vgtw.or.128B
-+ 1, // llvm.hexagon.V6.vgtw.xor
-+ 1, // llvm.hexagon.V6.vgtw.xor.128B
-+ 1, // llvm.hexagon.V6.vinsertwr
-+ 1, // llvm.hexagon.V6.vinsertwr.128B
-+ 1, // llvm.hexagon.V6.vlalignb
-+ 1, // llvm.hexagon.V6.vlalignb.128B
-+ 1, // llvm.hexagon.V6.vlalignbi
-+ 1, // llvm.hexagon.V6.vlalignbi.128B
-+ 1, // llvm.hexagon.V6.vlsrh
-+ 1, // llvm.hexagon.V6.vlsrh.128B
-+ 1, // llvm.hexagon.V6.vlsrhv
-+ 1, // llvm.hexagon.V6.vlsrhv.128B
-+ 1, // llvm.hexagon.V6.vlsrw
-+ 1, // llvm.hexagon.V6.vlsrw.128B
-+ 1, // llvm.hexagon.V6.vlsrwv
-+ 1, // llvm.hexagon.V6.vlsrwv.128B
-+ 1, // llvm.hexagon.V6.vlutb
-+ 1, // llvm.hexagon.V6.vlutb.128B
-+ 1, // llvm.hexagon.V6.vlutb.acc
-+ 1, // llvm.hexagon.V6.vlutb.acc.128B
-+ 1, // llvm.hexagon.V6.vlutb.dv
-+ 1, // llvm.hexagon.V6.vlutb.dv.128B
-+ 1, // llvm.hexagon.V6.vlutb.dv.acc
-+ 1, // llvm.hexagon.V6.vlutb.dv.acc.128B
-+ 1, // llvm.hexagon.V6.vlutvvb
-+ 1, // llvm.hexagon.V6.vlutvvb.128B
-+ 1, // llvm.hexagon.V6.vlutvvb.oracc
-+ 1, // llvm.hexagon.V6.vlutvvb.oracc.128B
-+ 1, // llvm.hexagon.V6.vlutvwh
-+ 1, // llvm.hexagon.V6.vlutvwh.128B
-+ 1, // llvm.hexagon.V6.vlutvwh.oracc
-+ 1, // llvm.hexagon.V6.vlutvwh.oracc.128B
-+ 1, // llvm.hexagon.V6.vmaxh
-+ 1, // llvm.hexagon.V6.vmaxh.128B
-+ 1, // llvm.hexagon.V6.vmaxub
-+ 1, // llvm.hexagon.V6.vmaxub.128B
-+ 1, // llvm.hexagon.V6.vmaxuh
-+ 1, // llvm.hexagon.V6.vmaxuh.128B
-+ 1, // llvm.hexagon.V6.vmaxw
-+ 1, // llvm.hexagon.V6.vmaxw.128B
-+ 1, // llvm.hexagon.V6.vminh
-+ 1, // llvm.hexagon.V6.vminh.128B
-+ 1, // llvm.hexagon.V6.vminub
-+ 1, // llvm.hexagon.V6.vminub.128B
-+ 1, // llvm.hexagon.V6.vminuh
-+ 1, // llvm.hexagon.V6.vminuh.128B
-+ 1, // llvm.hexagon.V6.vminw
-+ 1, // llvm.hexagon.V6.vminw.128B
-+ 1, // llvm.hexagon.V6.vmpabus
-+ 1, // llvm.hexagon.V6.vmpabus.128B
-+ 1, // llvm.hexagon.V6.vmpabus.acc
-+ 1, // llvm.hexagon.V6.vmpabus.acc.128B
-+ 1, // llvm.hexagon.V6.vmpabusv
-+ 1, // llvm.hexagon.V6.vmpabusv.128B
-+ 1, // llvm.hexagon.V6.vmpabuuv
-+ 1, // llvm.hexagon.V6.vmpabuuv.128B
-+ 1, // llvm.hexagon.V6.vmpahb
-+ 1, // llvm.hexagon.V6.vmpahb.128B
-+ 1, // llvm.hexagon.V6.vmpahb.acc
-+ 1, // llvm.hexagon.V6.vmpahb.acc.128B
-+ 1, // llvm.hexagon.V6.vmpybus
-+ 1, // llvm.hexagon.V6.vmpybus.128B
-+ 1, // llvm.hexagon.V6.vmpybus.acc
-+ 1, // llvm.hexagon.V6.vmpybus.acc.128B
-+ 1, // llvm.hexagon.V6.vmpybusv
-+ 1, // llvm.hexagon.V6.vmpybusv.128B
-+ 1, // llvm.hexagon.V6.vmpybusv.acc
-+ 1, // llvm.hexagon.V6.vmpybusv.acc.128B
-+ 1, // llvm.hexagon.V6.vmpybv
-+ 1, // llvm.hexagon.V6.vmpybv.128B
-+ 1, // llvm.hexagon.V6.vmpybv.acc
-+ 1, // llvm.hexagon.V6.vmpybv.acc.128B
-+ 1, // llvm.hexagon.V6.vmpyewuh
-+ 1, // llvm.hexagon.V6.vmpyewuh.128B
-+ 1, // llvm.hexagon.V6.vmpyh
-+ 1, // llvm.hexagon.V6.vmpyh.128B
-+ 1, // llvm.hexagon.V6.vmpyhsat.acc
-+ 1, // llvm.hexagon.V6.vmpyhsat.acc.128B
-+ 1, // llvm.hexagon.V6.vmpyhsrs
-+ 1, // llvm.hexagon.V6.vmpyhsrs.128B
-+ 1, // llvm.hexagon.V6.vmpyhss
-+ 1, // llvm.hexagon.V6.vmpyhss.128B
-+ 1, // llvm.hexagon.V6.vmpyhus
-+ 1, // llvm.hexagon.V6.vmpyhus.128B
-+ 1, // llvm.hexagon.V6.vmpyhus.acc
-+ 1, // llvm.hexagon.V6.vmpyhus.acc.128B
-+ 1, // llvm.hexagon.V6.vmpyhv
-+ 1, // llvm.hexagon.V6.vmpyhv.128B
-+ 1, // llvm.hexagon.V6.vmpyhv.acc
-+ 1, // llvm.hexagon.V6.vmpyhv.acc.128B
-+ 1, // llvm.hexagon.V6.vmpyhvsrs
-+ 1, // llvm.hexagon.V6.vmpyhvsrs.128B
-+ 1, // llvm.hexagon.V6.vmpyieoh
-+ 1, // llvm.hexagon.V6.vmpyieoh.128B
-+ 1, // llvm.hexagon.V6.vmpyiewh.acc
-+ 1, // llvm.hexagon.V6.vmpyiewh.acc.128B
-+ 1, // llvm.hexagon.V6.vmpyiewuh
-+ 1, // llvm.hexagon.V6.vmpyiewuh.128B
-+ 1, // llvm.hexagon.V6.vmpyiewuh.acc
-+ 1, // llvm.hexagon.V6.vmpyiewuh.acc.128B
-+ 1, // llvm.hexagon.V6.vmpyih
-+ 1, // llvm.hexagon.V6.vmpyih.128B
-+ 1, // llvm.hexagon.V6.vmpyih.acc
-+ 1, // llvm.hexagon.V6.vmpyih.acc.128B
-+ 1, // llvm.hexagon.V6.vmpyihb
-+ 1, // llvm.hexagon.V6.vmpyihb.128B
-+ 1, // llvm.hexagon.V6.vmpyihb.acc
-+ 1, // llvm.hexagon.V6.vmpyihb.acc.128B
-+ 1, // llvm.hexagon.V6.vmpyiowh
-+ 1, // llvm.hexagon.V6.vmpyiowh.128B
-+ 1, // llvm.hexagon.V6.vmpyiwb
-+ 1, // llvm.hexagon.V6.vmpyiwb.128B
-+ 1, // llvm.hexagon.V6.vmpyiwb.acc
-+ 1, // llvm.hexagon.V6.vmpyiwb.acc.128B
-+ 1, // llvm.hexagon.V6.vmpyiwh
-+ 1, // llvm.hexagon.V6.vmpyiwh.128B
-+ 1, // llvm.hexagon.V6.vmpyiwh.acc
-+ 1, // llvm.hexagon.V6.vmpyiwh.acc.128B
-+ 1, // llvm.hexagon.V6.vmpyowh
-+ 1, // llvm.hexagon.V6.vmpyowh.128B
-+ 1, // llvm.hexagon.V6.vmpyowh.rnd
-+ 1, // llvm.hexagon.V6.vmpyowh.rnd.128B
-+ 1, // llvm.hexagon.V6.vmpyowh.rnd.sacc
-+ 1, // llvm.hexagon.V6.vmpyowh.rnd.sacc.128B
-+ 1, // llvm.hexagon.V6.vmpyowh.sacc
-+ 1, // llvm.hexagon.V6.vmpyowh.sacc.128B
-+ 1, // llvm.hexagon.V6.vmpyub
-+ 1, // llvm.hexagon.V6.vmpyub.128B
-+ 1, // llvm.hexagon.V6.vmpyub.acc
-+ 1, // llvm.hexagon.V6.vmpyub.acc.128B
-+ 1, // llvm.hexagon.V6.vmpyubv
-+ 1, // llvm.hexagon.V6.vmpyubv.128B
-+ 1, // llvm.hexagon.V6.vmpyubv.acc
-+ 1, // llvm.hexagon.V6.vmpyubv.acc.128B
-+ 1, // llvm.hexagon.V6.vmpyuh
-+ 1, // llvm.hexagon.V6.vmpyuh.128B
-+ 1, // llvm.hexagon.V6.vmpyuh.acc
-+ 1, // llvm.hexagon.V6.vmpyuh.acc.128B
-+ 1, // llvm.hexagon.V6.vmpyuhv
-+ 1, // llvm.hexagon.V6.vmpyuhv.128B
-+ 1, // llvm.hexagon.V6.vmpyuhv.acc
-+ 1, // llvm.hexagon.V6.vmpyuhv.acc.128B
-+ 1, // llvm.hexagon.V6.vmux
-+ 1, // llvm.hexagon.V6.vmux.128B
-+ 1, // llvm.hexagon.V6.vnavgh
-+ 1, // llvm.hexagon.V6.vnavgh.128B
-+ 1, // llvm.hexagon.V6.vnavgub
-+ 1, // llvm.hexagon.V6.vnavgub.128B
-+ 1, // llvm.hexagon.V6.vnavgw
-+ 1, // llvm.hexagon.V6.vnavgw.128B
-+ 1, // llvm.hexagon.V6.vnormamth
-+ 1, // llvm.hexagon.V6.vnormamth.128B
-+ 1, // llvm.hexagon.V6.vnormamtw
-+ 1, // llvm.hexagon.V6.vnormamtw.128B
-+ 1, // llvm.hexagon.V6.vnot
-+ 1, // llvm.hexagon.V6.vnot.128B
-+ 1, // llvm.hexagon.V6.vor
-+ 1, // llvm.hexagon.V6.vor.128B
-+ 1, // llvm.hexagon.V6.vpackeb
-+ 1, // llvm.hexagon.V6.vpackeb.128B
-+ 1, // llvm.hexagon.V6.vpackeh
-+ 1, // llvm.hexagon.V6.vpackeh.128B
-+ 1, // llvm.hexagon.V6.vpackhb.sat
-+ 1, // llvm.hexagon.V6.vpackhb.sat.128B
-+ 1, // llvm.hexagon.V6.vpackhub.sat
-+ 1, // llvm.hexagon.V6.vpackhub.sat.128B
-+ 1, // llvm.hexagon.V6.vpackob
-+ 1, // llvm.hexagon.V6.vpackob.128B
-+ 1, // llvm.hexagon.V6.vpackoh
-+ 1, // llvm.hexagon.V6.vpackoh.128B
-+ 1, // llvm.hexagon.V6.vpackwh.sat
-+ 1, // llvm.hexagon.V6.vpackwh.sat.128B
-+ 1, // llvm.hexagon.V6.vpackwuh.sat
-+ 1, // llvm.hexagon.V6.vpackwuh.sat.128B
-+ 1, // llvm.hexagon.V6.vpopcounth
-+ 1, // llvm.hexagon.V6.vpopcounth.128B
-+ 1, // llvm.hexagon.V6.vrdelta
-+ 1, // llvm.hexagon.V6.vrdelta.128B
-+ 1, // llvm.hexagon.V6.vrmpybus
-+ 1, // llvm.hexagon.V6.vrmpybus.128B
-+ 1, // llvm.hexagon.V6.vrmpybus.acc
-+ 1, // llvm.hexagon.V6.vrmpybus.acc.128B
-+ 1, // llvm.hexagon.V6.vrmpybusi
-+ 1, // llvm.hexagon.V6.vrmpybusi.128B
-+ 1, // llvm.hexagon.V6.vrmpybusi.acc
-+ 1, // llvm.hexagon.V6.vrmpybusi.acc.128B
-+ 1, // llvm.hexagon.V6.vrmpybusv
-+ 1, // llvm.hexagon.V6.vrmpybusv.128B
-+ 1, // llvm.hexagon.V6.vrmpybusv.acc
-+ 1, // llvm.hexagon.V6.vrmpybusv.acc.128B
-+ 1, // llvm.hexagon.V6.vrmpybv
-+ 1, // llvm.hexagon.V6.vrmpybv.128B
-+ 1, // llvm.hexagon.V6.vrmpybv.acc
-+ 1, // llvm.hexagon.V6.vrmpybv.acc.128B
-+ 1, // llvm.hexagon.V6.vrmpyub
-+ 1, // llvm.hexagon.V6.vrmpyub.128B
-+ 1, // llvm.hexagon.V6.vrmpyub.acc
-+ 1, // llvm.hexagon.V6.vrmpyub.acc.128B
-+ 1, // llvm.hexagon.V6.vrmpyubi
-+ 1, // llvm.hexagon.V6.vrmpyubi.128B
-+ 1, // llvm.hexagon.V6.vrmpyubi.acc
-+ 1, // llvm.hexagon.V6.vrmpyubi.acc.128B
-+ 1, // llvm.hexagon.V6.vrmpyubv
-+ 1, // llvm.hexagon.V6.vrmpyubv.128B
-+ 1, // llvm.hexagon.V6.vrmpyubv.acc
-+ 1, // llvm.hexagon.V6.vrmpyubv.acc.128B
-+ 1, // llvm.hexagon.V6.vror
-+ 1, // llvm.hexagon.V6.vror.128B
-+ 1, // llvm.hexagon.V6.vroundhb
-+ 1, // llvm.hexagon.V6.vroundhb.128B
-+ 1, // llvm.hexagon.V6.vroundhub
-+ 1, // llvm.hexagon.V6.vroundhub.128B
-+ 1, // llvm.hexagon.V6.vroundwh
-+ 1, // llvm.hexagon.V6.vroundwh.128B
-+ 1, // llvm.hexagon.V6.vroundwuh
-+ 1, // llvm.hexagon.V6.vroundwuh.128B
-+ 1, // llvm.hexagon.V6.vrsadubi
-+ 1, // llvm.hexagon.V6.vrsadubi.128B
-+ 1, // llvm.hexagon.V6.vrsadubi.acc
-+ 1, // llvm.hexagon.V6.vrsadubi.acc.128B
-+ 1, // llvm.hexagon.V6.vsathub
-+ 1, // llvm.hexagon.V6.vsathub.128B
-+ 1, // llvm.hexagon.V6.vsatwh
-+ 1, // llvm.hexagon.V6.vsatwh.128B
-+ 1, // llvm.hexagon.V6.vsb
-+ 1, // llvm.hexagon.V6.vsb.128B
-+ 1, // llvm.hexagon.V6.vsh
-+ 1, // llvm.hexagon.V6.vsh.128B
-+ 1, // llvm.hexagon.V6.vshufeh
-+ 1, // llvm.hexagon.V6.vshufeh.128B
-+ 1, // llvm.hexagon.V6.vshuffb
-+ 1, // llvm.hexagon.V6.vshuffb.128B
-+ 1, // llvm.hexagon.V6.vshuffeb
-+ 1, // llvm.hexagon.V6.vshuffeb.128B
-+ 1, // llvm.hexagon.V6.vshuffh
-+ 1, // llvm.hexagon.V6.vshuffh.128B
-+ 1, // llvm.hexagon.V6.vshuffob
-+ 1, // llvm.hexagon.V6.vshuffob.128B
-+ 1, // llvm.hexagon.V6.vshuffvdd
-+ 1, // llvm.hexagon.V6.vshuffvdd.128B
-+ 1, // llvm.hexagon.V6.vshufoeb
-+ 1, // llvm.hexagon.V6.vshufoeb.128B
-+ 1, // llvm.hexagon.V6.vshufoeh
-+ 1, // llvm.hexagon.V6.vshufoeh.128B
-+ 1, // llvm.hexagon.V6.vshufoh
-+ 1, // llvm.hexagon.V6.vshufoh.128B
-+ 1, // llvm.hexagon.V6.vsubb
-+ 1, // llvm.hexagon.V6.vsubb.128B
-+ 1, // llvm.hexagon.V6.vsubb.dv
-+ 1, // llvm.hexagon.V6.vsubb.dv.128B
-+ 1, // llvm.hexagon.V6.vsubbnq
-+ 1, // llvm.hexagon.V6.vsubbnq.128B
-+ 1, // llvm.hexagon.V6.vsubbq
-+ 1, // llvm.hexagon.V6.vsubbq.128B
-+ 1, // llvm.hexagon.V6.vsubh
-+ 1, // llvm.hexagon.V6.vsubh.128B
-+ 1, // llvm.hexagon.V6.vsubh.dv
-+ 1, // llvm.hexagon.V6.vsubh.dv.128B
-+ 1, // llvm.hexagon.V6.vsubhnq
-+ 1, // llvm.hexagon.V6.vsubhnq.128B
-+ 1, // llvm.hexagon.V6.vsubhq
-+ 1, // llvm.hexagon.V6.vsubhq.128B
-+ 1, // llvm.hexagon.V6.vsubhsat
-+ 1, // llvm.hexagon.V6.vsubhsat.128B
-+ 1, // llvm.hexagon.V6.vsubhsat.dv
-+ 1, // llvm.hexagon.V6.vsubhsat.dv.128B
-+ 1, // llvm.hexagon.V6.vsubhw
-+ 1, // llvm.hexagon.V6.vsubhw.128B
-+ 1, // llvm.hexagon.V6.vsububh
-+ 1, // llvm.hexagon.V6.vsububh.128B
-+ 1, // llvm.hexagon.V6.vsububsat
-+ 1, // llvm.hexagon.V6.vsububsat.128B
-+ 1, // llvm.hexagon.V6.vsububsat.dv
-+ 1, // llvm.hexagon.V6.vsububsat.dv.128B
-+ 1, // llvm.hexagon.V6.vsubuhsat
-+ 1, // llvm.hexagon.V6.vsubuhsat.128B
-+ 1, // llvm.hexagon.V6.vsubuhsat.dv
-+ 1, // llvm.hexagon.V6.vsubuhsat.dv.128B
-+ 1, // llvm.hexagon.V6.vsubuhw
-+ 1, // llvm.hexagon.V6.vsubuhw.128B
-+ 1, // llvm.hexagon.V6.vsubw
-+ 1, // llvm.hexagon.V6.vsubw.128B
-+ 1, // llvm.hexagon.V6.vsubw.dv
-+ 1, // llvm.hexagon.V6.vsubw.dv.128B
-+ 1, // llvm.hexagon.V6.vsubwnq
-+ 1, // llvm.hexagon.V6.vsubwnq.128B
-+ 1, // llvm.hexagon.V6.vsubwq
-+ 1, // llvm.hexagon.V6.vsubwq.128B
-+ 1, // llvm.hexagon.V6.vsubwsat
-+ 1, // llvm.hexagon.V6.vsubwsat.128B
-+ 1, // llvm.hexagon.V6.vsubwsat.dv
-+ 1, // llvm.hexagon.V6.vsubwsat.dv.128B
-+ 1, // llvm.hexagon.V6.vswap
-+ 1, // llvm.hexagon.V6.vswap.128B
-+ 1, // llvm.hexagon.V6.vtmpyb
-+ 1, // llvm.hexagon.V6.vtmpyb.128B
-+ 1, // llvm.hexagon.V6.vtmpyb.acc
-+ 1, // llvm.hexagon.V6.vtmpyb.acc.128B
-+ 1, // llvm.hexagon.V6.vtmpybus
-+ 1, // llvm.hexagon.V6.vtmpybus.128B
-+ 1, // llvm.hexagon.V6.vtmpybus.acc
-+ 1, // llvm.hexagon.V6.vtmpybus.acc.128B
-+ 1, // llvm.hexagon.V6.vtmpyhb
-+ 1, // llvm.hexagon.V6.vtmpyhb.128B
-+ 1, // llvm.hexagon.V6.vtmpyhb.acc
-+ 1, // llvm.hexagon.V6.vtmpyhb.acc.128B
-+ 1, // llvm.hexagon.V6.vunpackb
-+ 1, // llvm.hexagon.V6.vunpackb.128B
-+ 1, // llvm.hexagon.V6.vunpackh
-+ 1, // llvm.hexagon.V6.vunpackh.128B
-+ 1, // llvm.hexagon.V6.vunpackob
-+ 1, // llvm.hexagon.V6.vunpackob.128B
-+ 1, // llvm.hexagon.V6.vunpackoh
-+ 1, // llvm.hexagon.V6.vunpackoh.128B
-+ 1, // llvm.hexagon.V6.vunpackub
-+ 1, // llvm.hexagon.V6.vunpackub.128B
-+ 1, // llvm.hexagon.V6.vunpackuh
-+ 1, // llvm.hexagon.V6.vunpackuh.128B
-+ 1, // llvm.hexagon.V6.vxor
-+ 1, // llvm.hexagon.V6.vxor.128B
-+ 1, // llvm.hexagon.V6.vzb
-+ 1, // llvm.hexagon.V6.vzb.128B
-+ 1, // llvm.hexagon.V6.vzh
-+ 1, // llvm.hexagon.V6.vzh.128B
-+ 18, // llvm.hexagon.brev.ldb
-+ 18, // llvm.hexagon.brev.ldd
-+ 18, // llvm.hexagon.brev.ldh
-+ 18, // llvm.hexagon.brev.ldub
-+ 18, // llvm.hexagon.brev.lduh
-+ 18, // llvm.hexagon.brev.ldw
-+ 18, // llvm.hexagon.brev.stb
-+ 18, // llvm.hexagon.brev.std
-+ 18, // llvm.hexagon.brev.sth
-+ 18, // llvm.hexagon.brev.sthhi
-+ 18, // llvm.hexagon.brev.stw
-+ 18, // llvm.hexagon.circ.ldb
-+ 18, // llvm.hexagon.circ.ldd
-+ 18, // llvm.hexagon.circ.ldh
-+ 18, // llvm.hexagon.circ.ldub
-+ 18, // llvm.hexagon.circ.lduh
-+ 18, // llvm.hexagon.circ.ldw
-+ 18, // llvm.hexagon.circ.stb
-+ 18, // llvm.hexagon.circ.std
-+ 18, // llvm.hexagon.circ.sth
-+ 18, // llvm.hexagon.circ.sthhi
-+ 18, // llvm.hexagon.circ.stw
-+ 18, // llvm.hexagon.mm256i.vaddw
-+ 3, // llvm.hexagon.prefetch
-+ 3, // llvm.mips.absq.s.ph
-+ 3, // llvm.mips.absq.s.qb
-+ 3, // llvm.mips.absq.s.w
-+ 1, // llvm.mips.add.a.b
-+ 1, // llvm.mips.add.a.d
-+ 1, // llvm.mips.add.a.h
-+ 1, // llvm.mips.add.a.w
-+ 1, // llvm.mips.addq.ph
-+ 1, // llvm.mips.addq.s.ph
-+ 3, // llvm.mips.addq.s.w
-+ 1, // llvm.mips.addqh.ph
-+ 1, // llvm.mips.addqh.r.ph
-+ 1, // llvm.mips.addqh.r.w
-+ 1, // llvm.mips.addqh.w
-+ 1, // llvm.mips.adds.a.b
-+ 1, // llvm.mips.adds.a.d
-+ 1, // llvm.mips.adds.a.h
-+ 1, // llvm.mips.adds.a.w
-+ 1, // llvm.mips.adds.s.b
-+ 1, // llvm.mips.adds.s.d
-+ 1, // llvm.mips.adds.s.h
-+ 1, // llvm.mips.adds.s.w
-+ 1, // llvm.mips.adds.u.b
-+ 1, // llvm.mips.adds.u.d
-+ 1, // llvm.mips.adds.u.h
-+ 1, // llvm.mips.adds.u.w
-+ 3, // llvm.mips.addsc
-+ 3, // llvm.mips.addu.ph
-+ 1, // llvm.mips.addu.qb
-+ 3, // llvm.mips.addu.s.ph
-+ 1, // llvm.mips.addu.s.qb
-+ 1, // llvm.mips.adduh.qb
-+ 1, // llvm.mips.adduh.r.qb
-+ 1, // llvm.mips.addv.b
-+ 1, // llvm.mips.addv.d
-+ 1, // llvm.mips.addv.h
-+ 1, // llvm.mips.addv.w
-+ 1, // llvm.mips.addvi.b
-+ 1, // llvm.mips.addvi.d
-+ 1, // llvm.mips.addvi.h
-+ 1, // llvm.mips.addvi.w
-+ 3, // llvm.mips.addwc
-+ 1, // llvm.mips.and.v
-+ 1, // llvm.mips.andi.b
-+ 1, // llvm.mips.append
-+ 1, // llvm.mips.asub.s.b
-+ 1, // llvm.mips.asub.s.d
-+ 1, // llvm.mips.asub.s.h
-+ 1, // llvm.mips.asub.s.w
-+ 1, // llvm.mips.asub.u.b
-+ 1, // llvm.mips.asub.u.d
-+ 1, // llvm.mips.asub.u.h
-+ 1, // llvm.mips.asub.u.w
-+ 1, // llvm.mips.ave.s.b
-+ 1, // llvm.mips.ave.s.d
-+ 1, // llvm.mips.ave.s.h
-+ 1, // llvm.mips.ave.s.w
-+ 1, // llvm.mips.ave.u.b
-+ 1, // llvm.mips.ave.u.d
-+ 1, // llvm.mips.ave.u.h
-+ 1, // llvm.mips.ave.u.w
-+ 1, // llvm.mips.aver.s.b
-+ 1, // llvm.mips.aver.s.d
-+ 1, // llvm.mips.aver.s.h
-+ 1, // llvm.mips.aver.s.w
-+ 1, // llvm.mips.aver.u.b
-+ 1, // llvm.mips.aver.u.d
-+ 1, // llvm.mips.aver.u.h
-+ 1, // llvm.mips.aver.u.w
-+ 1, // llvm.mips.balign
-+ 1, // llvm.mips.bclr.b
-+ 1, // llvm.mips.bclr.d
-+ 1, // llvm.mips.bclr.h
-+ 1, // llvm.mips.bclr.w
-+ 1, // llvm.mips.bclri.b
-+ 1, // llvm.mips.bclri.d
-+ 1, // llvm.mips.bclri.h
-+ 1, // llvm.mips.bclri.w
-+ 1, // llvm.mips.binsl.b
-+ 1, // llvm.mips.binsl.d
-+ 1, // llvm.mips.binsl.h
-+ 1, // llvm.mips.binsl.w
-+ 1, // llvm.mips.binsli.b
-+ 1, // llvm.mips.binsli.d
-+ 1, // llvm.mips.binsli.h
-+ 1, // llvm.mips.binsli.w
-+ 1, // llvm.mips.binsr.b
-+ 1, // llvm.mips.binsr.d
-+ 1, // llvm.mips.binsr.h
-+ 1, // llvm.mips.binsr.w
-+ 1, // llvm.mips.binsri.b
-+ 1, // llvm.mips.binsri.d
-+ 1, // llvm.mips.binsri.h
-+ 1, // llvm.mips.binsri.w
-+ 1, // llvm.mips.bitrev
-+ 1, // llvm.mips.bmnz.v
-+ 1, // llvm.mips.bmnzi.b
-+ 1, // llvm.mips.bmz.v
-+ 1, // llvm.mips.bmzi.b
-+ 1, // llvm.mips.bneg.b
-+ 1, // llvm.mips.bneg.d
-+ 1, // llvm.mips.bneg.h
-+ 1, // llvm.mips.bneg.w
-+ 1, // llvm.mips.bnegi.b
-+ 1, // llvm.mips.bnegi.d
-+ 1, // llvm.mips.bnegi.h
-+ 1, // llvm.mips.bnegi.w
-+ 1, // llvm.mips.bnz.b
-+ 1, // llvm.mips.bnz.d
-+ 1, // llvm.mips.bnz.h
-+ 1, // llvm.mips.bnz.v
-+ 1, // llvm.mips.bnz.w
-+ 13, // llvm.mips.bposge32
-+ 1, // llvm.mips.bsel.v
-+ 1, // llvm.mips.bseli.b
-+ 1, // llvm.mips.bset.b
-+ 1, // llvm.mips.bset.d
-+ 1, // llvm.mips.bset.h
-+ 1, // llvm.mips.bset.w
-+ 1, // llvm.mips.bseti.b
-+ 1, // llvm.mips.bseti.d
-+ 1, // llvm.mips.bseti.h
-+ 1, // llvm.mips.bseti.w
-+ 1, // llvm.mips.bz.b
-+ 1, // llvm.mips.bz.d
-+ 1, // llvm.mips.bz.h
-+ 1, // llvm.mips.bz.v
-+ 1, // llvm.mips.bz.w
-+ 1, // llvm.mips.ceq.b
-+ 1, // llvm.mips.ceq.d
-+ 1, // llvm.mips.ceq.h
-+ 1, // llvm.mips.ceq.w
-+ 1, // llvm.mips.ceqi.b
-+ 1, // llvm.mips.ceqi.d
-+ 1, // llvm.mips.ceqi.h
-+ 1, // llvm.mips.ceqi.w
-+ 3, // llvm.mips.cfcmsa
-+ 1, // llvm.mips.cle.s.b
-+ 1, // llvm.mips.cle.s.d
-+ 1, // llvm.mips.cle.s.h
-+ 1, // llvm.mips.cle.s.w
-+ 1, // llvm.mips.cle.u.b
-+ 1, // llvm.mips.cle.u.d
-+ 1, // llvm.mips.cle.u.h
-+ 1, // llvm.mips.cle.u.w
-+ 1, // llvm.mips.clei.s.b
-+ 1, // llvm.mips.clei.s.d
-+ 1, // llvm.mips.clei.s.h
-+ 1, // llvm.mips.clei.s.w
-+ 1, // llvm.mips.clei.u.b
-+ 1, // llvm.mips.clei.u.d
-+ 1, // llvm.mips.clei.u.h
-+ 1, // llvm.mips.clei.u.w
-+ 1, // llvm.mips.clt.s.b
-+ 1, // llvm.mips.clt.s.d
-+ 1, // llvm.mips.clt.s.h
-+ 1, // llvm.mips.clt.s.w
-+ 1, // llvm.mips.clt.u.b
-+ 1, // llvm.mips.clt.u.d
-+ 1, // llvm.mips.clt.u.h
-+ 1, // llvm.mips.clt.u.w
-+ 1, // llvm.mips.clti.s.b
-+ 1, // llvm.mips.clti.s.d
-+ 1, // llvm.mips.clti.s.h
-+ 1, // llvm.mips.clti.s.w
-+ 1, // llvm.mips.clti.u.b
-+ 1, // llvm.mips.clti.u.d
-+ 1, // llvm.mips.clti.u.h
-+ 1, // llvm.mips.clti.u.w
-+ 3, // llvm.mips.cmp.eq.ph
-+ 3, // llvm.mips.cmp.le.ph
-+ 3, // llvm.mips.cmp.lt.ph
-+ 3, // llvm.mips.cmpgdu.eq.qb
-+ 3, // llvm.mips.cmpgdu.le.qb
-+ 3, // llvm.mips.cmpgdu.lt.qb
-+ 3, // llvm.mips.cmpgu.eq.qb
-+ 3, // llvm.mips.cmpgu.le.qb
-+ 3, // llvm.mips.cmpgu.lt.qb
-+ 3, // llvm.mips.cmpu.eq.qb
-+ 3, // llvm.mips.cmpu.le.qb
-+ 3, // llvm.mips.cmpu.lt.qb
-+ 1, // llvm.mips.copy.s.b
-+ 1, // llvm.mips.copy.s.d
-+ 1, // llvm.mips.copy.s.h
-+ 1, // llvm.mips.copy.s.w
-+ 1, // llvm.mips.copy.u.b
-+ 1, // llvm.mips.copy.u.d
-+ 1, // llvm.mips.copy.u.h
-+ 1, // llvm.mips.copy.u.w
-+ 3, // llvm.mips.ctcmsa
-+ 1, // llvm.mips.div.s.b
-+ 1, // llvm.mips.div.s.d
-+ 1, // llvm.mips.div.s.h
-+ 1, // llvm.mips.div.s.w
-+ 1, // llvm.mips.div.u.b
-+ 1, // llvm.mips.div.u.d
-+ 1, // llvm.mips.div.u.h
-+ 1, // llvm.mips.div.u.w
-+ 1, // llvm.mips.dlsa
-+ 1, // llvm.mips.dotp.s.d
-+ 1, // llvm.mips.dotp.s.h
-+ 1, // llvm.mips.dotp.s.w
-+ 1, // llvm.mips.dotp.u.d
-+ 1, // llvm.mips.dotp.u.h
-+ 1, // llvm.mips.dotp.u.w
-+ 1, // llvm.mips.dpa.w.ph
-+ 1, // llvm.mips.dpadd.s.d
-+ 1, // llvm.mips.dpadd.s.h
-+ 1, // llvm.mips.dpadd.s.w
-+ 1, // llvm.mips.dpadd.u.d
-+ 1, // llvm.mips.dpadd.u.h
-+ 1, // llvm.mips.dpadd.u.w
-+ 3, // llvm.mips.dpaq.s.w.ph
-+ 3, // llvm.mips.dpaq.sa.l.w
-+ 3, // llvm.mips.dpaqx.s.w.ph
-+ 3, // llvm.mips.dpaqx.sa.w.ph
-+ 1, // llvm.mips.dpau.h.qbl
-+ 1, // llvm.mips.dpau.h.qbr
-+ 1, // llvm.mips.dpax.w.ph
-+ 1, // llvm.mips.dps.w.ph
-+ 3, // llvm.mips.dpsq.s.w.ph
-+ 3, // llvm.mips.dpsq.sa.l.w
-+ 3, // llvm.mips.dpsqx.s.w.ph
-+ 3, // llvm.mips.dpsqx.sa.w.ph
-+ 1, // llvm.mips.dpsu.h.qbl
-+ 1, // llvm.mips.dpsu.h.qbr
-+ 1, // llvm.mips.dpsub.s.d
-+ 1, // llvm.mips.dpsub.s.h
-+ 1, // llvm.mips.dpsub.s.w
-+ 1, // llvm.mips.dpsub.u.d
-+ 1, // llvm.mips.dpsub.u.h
-+ 1, // llvm.mips.dpsub.u.w
-+ 1, // llvm.mips.dpsx.w.ph
-+ 3, // llvm.mips.extp
-+ 3, // llvm.mips.extpdp
-+ 3, // llvm.mips.extr.r.w
-+ 3, // llvm.mips.extr.rs.w
-+ 3, // llvm.mips.extr.s.h
-+ 3, // llvm.mips.extr.w
-+ 1, // llvm.mips.fadd.d
-+ 1, // llvm.mips.fadd.w
-+ 1, // llvm.mips.fcaf.d
-+ 1, // llvm.mips.fcaf.w
-+ 1, // llvm.mips.fceq.d
-+ 1, // llvm.mips.fceq.w
-+ 1, // llvm.mips.fclass.d
-+ 1, // llvm.mips.fclass.w
-+ 1, // llvm.mips.fcle.d
-+ 1, // llvm.mips.fcle.w
-+ 1, // llvm.mips.fclt.d
-+ 1, // llvm.mips.fclt.w
-+ 1, // llvm.mips.fcne.d
-+ 1, // llvm.mips.fcne.w
-+ 1, // llvm.mips.fcor.d
-+ 1, // llvm.mips.fcor.w
-+ 1, // llvm.mips.fcueq.d
-+ 1, // llvm.mips.fcueq.w
-+ 1, // llvm.mips.fcule.d
-+ 1, // llvm.mips.fcule.w
-+ 1, // llvm.mips.fcult.d
-+ 1, // llvm.mips.fcult.w
-+ 1, // llvm.mips.fcun.d
-+ 1, // llvm.mips.fcun.w
-+ 1, // llvm.mips.fcune.d
-+ 1, // llvm.mips.fcune.w
-+ 1, // llvm.mips.fdiv.d
-+ 1, // llvm.mips.fdiv.w
-+ 1, // llvm.mips.fexdo.h
-+ 1, // llvm.mips.fexdo.w
-+ 1, // llvm.mips.fexp2.d
-+ 1, // llvm.mips.fexp2.w
-+ 1, // llvm.mips.fexupl.d
-+ 1, // llvm.mips.fexupl.w
-+ 1, // llvm.mips.fexupr.d
-+ 1, // llvm.mips.fexupr.w
-+ 1, // llvm.mips.ffint.s.d
-+ 1, // llvm.mips.ffint.s.w
-+ 1, // llvm.mips.ffint.u.d
-+ 1, // llvm.mips.ffint.u.w
-+ 1, // llvm.mips.ffql.d
-+ 1, // llvm.mips.ffql.w
-+ 1, // llvm.mips.ffqr.d
-+ 1, // llvm.mips.ffqr.w
-+ 1, // llvm.mips.fill.b
-+ 1, // llvm.mips.fill.d
-+ 1, // llvm.mips.fill.h
-+ 1, // llvm.mips.fill.w
-+ 1, // llvm.mips.flog2.d
-+ 1, // llvm.mips.flog2.w
-+ 1, // llvm.mips.fmadd.d
-+ 1, // llvm.mips.fmadd.w
-+ 1, // llvm.mips.fmax.a.d
-+ 1, // llvm.mips.fmax.a.w
-+ 1, // llvm.mips.fmax.d
-+ 1, // llvm.mips.fmax.w
-+ 1, // llvm.mips.fmin.a.d
-+ 1, // llvm.mips.fmin.a.w
-+ 1, // llvm.mips.fmin.d
-+ 1, // llvm.mips.fmin.w
-+ 1, // llvm.mips.fmsub.d
-+ 1, // llvm.mips.fmsub.w
-+ 1, // llvm.mips.fmul.d
-+ 1, // llvm.mips.fmul.w
-+ 1, // llvm.mips.frcp.d
-+ 1, // llvm.mips.frcp.w
-+ 1, // llvm.mips.frint.d
-+ 1, // llvm.mips.frint.w
-+ 1, // llvm.mips.frsqrt.d
-+ 1, // llvm.mips.frsqrt.w
-+ 1, // llvm.mips.fsaf.d
-+ 1, // llvm.mips.fsaf.w
-+ 1, // llvm.mips.fseq.d
-+ 1, // llvm.mips.fseq.w
-+ 1, // llvm.mips.fsle.d
-+ 1, // llvm.mips.fsle.w
-+ 1, // llvm.mips.fslt.d
-+ 1, // llvm.mips.fslt.w
-+ 1, // llvm.mips.fsne.d
-+ 1, // llvm.mips.fsne.w
-+ 1, // llvm.mips.fsor.d
-+ 1, // llvm.mips.fsor.w
-+ 1, // llvm.mips.fsqrt.d
-+ 1, // llvm.mips.fsqrt.w
-+ 1, // llvm.mips.fsub.d
-+ 1, // llvm.mips.fsub.w
-+ 1, // llvm.mips.fsueq.d
-+ 1, // llvm.mips.fsueq.w
-+ 1, // llvm.mips.fsule.d
-+ 1, // llvm.mips.fsule.w
-+ 1, // llvm.mips.fsult.d
-+ 1, // llvm.mips.fsult.w
-+ 1, // llvm.mips.fsun.d
-+ 1, // llvm.mips.fsun.w
-+ 1, // llvm.mips.fsune.d
-+ 1, // llvm.mips.fsune.w
-+ 1, // llvm.mips.ftint.s.d
-+ 1, // llvm.mips.ftint.s.w
-+ 1, // llvm.mips.ftint.u.d
-+ 1, // llvm.mips.ftint.u.w
-+ 1, // llvm.mips.ftq.h
-+ 1, // llvm.mips.ftq.w
-+ 1, // llvm.mips.ftrunc.s.d
-+ 1, // llvm.mips.ftrunc.s.w
-+ 1, // llvm.mips.ftrunc.u.d
-+ 1, // llvm.mips.ftrunc.u.w
-+ 1, // llvm.mips.hadd.s.d
-+ 1, // llvm.mips.hadd.s.h
-+ 1, // llvm.mips.hadd.s.w
-+ 1, // llvm.mips.hadd.u.d
-+ 1, // llvm.mips.hadd.u.h
-+ 1, // llvm.mips.hadd.u.w
-+ 1, // llvm.mips.hsub.s.d
-+ 1, // llvm.mips.hsub.s.h
-+ 1, // llvm.mips.hsub.s.w
-+ 1, // llvm.mips.hsub.u.d
-+ 1, // llvm.mips.hsub.u.h
-+ 1, // llvm.mips.hsub.u.w
-+ 1, // llvm.mips.ilvev.b
-+ 1, // llvm.mips.ilvev.d
-+ 1, // llvm.mips.ilvev.h
-+ 1, // llvm.mips.ilvev.w
-+ 1, // llvm.mips.ilvl.b
-+ 1, // llvm.mips.ilvl.d
-+ 1, // llvm.mips.ilvl.h
-+ 1, // llvm.mips.ilvl.w
-+ 1, // llvm.mips.ilvod.b
-+ 1, // llvm.mips.ilvod.d
-+ 1, // llvm.mips.ilvod.h
-+ 1, // llvm.mips.ilvod.w
-+ 1, // llvm.mips.ilvr.b
-+ 1, // llvm.mips.ilvr.d
-+ 1, // llvm.mips.ilvr.h
-+ 1, // llvm.mips.ilvr.w
-+ 1, // llvm.mips.insert.b
-+ 1, // llvm.mips.insert.d
-+ 1, // llvm.mips.insert.h
-+ 1, // llvm.mips.insert.w
-+ 13, // llvm.mips.insv
-+ 1, // llvm.mips.insve.b
-+ 1, // llvm.mips.insve.d
-+ 1, // llvm.mips.insve.h
-+ 1, // llvm.mips.insve.w
-+ 2, // llvm.mips.lbux
-+ 2, // llvm.mips.ld.b
-+ 2, // llvm.mips.ld.d
-+ 2, // llvm.mips.ld.h
-+ 2, // llvm.mips.ld.w
-+ 1, // llvm.mips.ldi.b
-+ 1, // llvm.mips.ldi.d
-+ 1, // llvm.mips.ldi.h
-+ 1, // llvm.mips.ldi.w
-+ 2, // llvm.mips.lhx
-+ 1, // llvm.mips.lsa
-+ 2, // llvm.mips.lwx
-+ 1, // llvm.mips.madd
-+ 1, // llvm.mips.madd.q.h
-+ 1, // llvm.mips.madd.q.w
-+ 1, // llvm.mips.maddr.q.h
-+ 1, // llvm.mips.maddr.q.w
-+ 1, // llvm.mips.maddu
-+ 1, // llvm.mips.maddv.b
-+ 1, // llvm.mips.maddv.d
-+ 1, // llvm.mips.maddv.h
-+ 1, // llvm.mips.maddv.w
-+ 3, // llvm.mips.maq.s.w.phl
-+ 3, // llvm.mips.maq.s.w.phr
-+ 3, // llvm.mips.maq.sa.w.phl
-+ 3, // llvm.mips.maq.sa.w.phr
-+ 1, // llvm.mips.max.a.b
-+ 1, // llvm.mips.max.a.d
-+ 1, // llvm.mips.max.a.h
-+ 1, // llvm.mips.max.a.w
-+ 1, // llvm.mips.max.s.b
-+ 1, // llvm.mips.max.s.d
-+ 1, // llvm.mips.max.s.h
-+ 1, // llvm.mips.max.s.w
-+ 1, // llvm.mips.max.u.b
-+ 1, // llvm.mips.max.u.d
-+ 1, // llvm.mips.max.u.h
-+ 1, // llvm.mips.max.u.w
-+ 1, // llvm.mips.maxi.s.b
-+ 1, // llvm.mips.maxi.s.d
-+ 1, // llvm.mips.maxi.s.h
-+ 1, // llvm.mips.maxi.s.w
-+ 1, // llvm.mips.maxi.u.b
-+ 1, // llvm.mips.maxi.u.d
-+ 1, // llvm.mips.maxi.u.h
-+ 1, // llvm.mips.maxi.u.w
-+ 1, // llvm.mips.min.a.b
-+ 1, // llvm.mips.min.a.d
-+ 1, // llvm.mips.min.a.h
-+ 1, // llvm.mips.min.a.w
-+ 1, // llvm.mips.min.s.b
-+ 1, // llvm.mips.min.s.d
-+ 1, // llvm.mips.min.s.h
-+ 1, // llvm.mips.min.s.w
-+ 1, // llvm.mips.min.u.b
-+ 1, // llvm.mips.min.u.d
-+ 1, // llvm.mips.min.u.h
-+ 1, // llvm.mips.min.u.w
-+ 1, // llvm.mips.mini.s.b
-+ 1, // llvm.mips.mini.s.d
-+ 1, // llvm.mips.mini.s.h
-+ 1, // llvm.mips.mini.s.w
-+ 1, // llvm.mips.mini.u.b
-+ 1, // llvm.mips.mini.u.d
-+ 1, // llvm.mips.mini.u.h
-+ 1, // llvm.mips.mini.u.w
-+ 1, // llvm.mips.mod.s.b
-+ 1, // llvm.mips.mod.s.d
-+ 1, // llvm.mips.mod.s.h
-+ 1, // llvm.mips.mod.s.w
-+ 1, // llvm.mips.mod.u.b
-+ 1, // llvm.mips.mod.u.d
-+ 1, // llvm.mips.mod.u.h
-+ 1, // llvm.mips.mod.u.w
-+ 1, // llvm.mips.modsub
-+ 1, // llvm.mips.move.v
-+ 1, // llvm.mips.msub
-+ 1, // llvm.mips.msub.q.h
-+ 1, // llvm.mips.msub.q.w
-+ 1, // llvm.mips.msubr.q.h
-+ 1, // llvm.mips.msubr.q.w
-+ 1, // llvm.mips.msubu
-+ 1, // llvm.mips.msubv.b
-+ 1, // llvm.mips.msubv.d
-+ 1, // llvm.mips.msubv.h
-+ 1, // llvm.mips.msubv.w
-+ 3, // llvm.mips.mthlip
-+ 3, // llvm.mips.mul.ph
-+ 1, // llvm.mips.mul.q.h
-+ 1, // llvm.mips.mul.q.w
-+ 3, // llvm.mips.mul.s.ph
-+ 3, // llvm.mips.muleq.s.w.phl
-+ 3, // llvm.mips.muleq.s.w.phr
-+ 3, // llvm.mips.muleu.s.ph.qbl
-+ 3, // llvm.mips.muleu.s.ph.qbr
-+ 3, // llvm.mips.mulq.rs.ph
-+ 3, // llvm.mips.mulq.rs.w
-+ 3, // llvm.mips.mulq.s.ph
-+ 3, // llvm.mips.mulq.s.w
-+ 1, // llvm.mips.mulr.q.h
-+ 1, // llvm.mips.mulr.q.w
-+ 1, // llvm.mips.mulsa.w.ph
-+ 3, // llvm.mips.mulsaq.s.w.ph
-+ 1, // llvm.mips.mult
-+ 1, // llvm.mips.multu
-+ 1, // llvm.mips.mulv.b
-+ 1, // llvm.mips.mulv.d
-+ 1, // llvm.mips.mulv.h
-+ 1, // llvm.mips.mulv.w
-+ 1, // llvm.mips.nloc.b
-+ 1, // llvm.mips.nloc.d
-+ 1, // llvm.mips.nloc.h
-+ 1, // llvm.mips.nloc.w
-+ 1, // llvm.mips.nlzc.b
-+ 1, // llvm.mips.nlzc.d
-+ 1, // llvm.mips.nlzc.h
-+ 1, // llvm.mips.nlzc.w
-+ 1, // llvm.mips.nor.v
-+ 1, // llvm.mips.nori.b
-+ 1, // llvm.mips.or.v
-+ 1, // llvm.mips.ori.b
-+ 1, // llvm.mips.packrl.ph
-+ 1, // llvm.mips.pckev.b
-+ 1, // llvm.mips.pckev.d
-+ 1, // llvm.mips.pckev.h
-+ 1, // llvm.mips.pckev.w
-+ 1, // llvm.mips.pckod.b
-+ 1, // llvm.mips.pckod.d
-+ 1, // llvm.mips.pckod.h
-+ 1, // llvm.mips.pckod.w
-+ 1, // llvm.mips.pcnt.b
-+ 1, // llvm.mips.pcnt.d
-+ 1, // llvm.mips.pcnt.h
-+ 1, // llvm.mips.pcnt.w
-+ 13, // llvm.mips.pick.ph
-+ 13, // llvm.mips.pick.qb
-+ 1, // llvm.mips.preceq.w.phl
-+ 1, // llvm.mips.preceq.w.phr
-+ 1, // llvm.mips.precequ.ph.qbl
-+ 1, // llvm.mips.precequ.ph.qbla
-+ 1, // llvm.mips.precequ.ph.qbr
-+ 1, // llvm.mips.precequ.ph.qbra
-+ 1, // llvm.mips.preceu.ph.qbl
-+ 1, // llvm.mips.preceu.ph.qbla
-+ 1, // llvm.mips.preceu.ph.qbr
-+ 1, // llvm.mips.preceu.ph.qbra
-+ 3, // llvm.mips.precr.qb.ph
-+ 1, // llvm.mips.precr.sra.ph.w
-+ 1, // llvm.mips.precr.sra.r.ph.w
-+ 1, // llvm.mips.precrq.ph.w
-+ 1, // llvm.mips.precrq.qb.ph
-+ 3, // llvm.mips.precrq.rs.ph.w
-+ 3, // llvm.mips.precrqu.s.qb.ph
-+ 1, // llvm.mips.prepend
-+ 1, // llvm.mips.raddu.w.qb
-+ 13, // llvm.mips.rddsp
-+ 1, // llvm.mips.repl.ph
-+ 1, // llvm.mips.repl.qb
-+ 1, // llvm.mips.sat.s.b
-+ 1, // llvm.mips.sat.s.d
-+ 1, // llvm.mips.sat.s.h
-+ 1, // llvm.mips.sat.s.w
-+ 1, // llvm.mips.sat.u.b
-+ 1, // llvm.mips.sat.u.d
-+ 1, // llvm.mips.sat.u.h
-+ 1, // llvm.mips.sat.u.w
-+ 1, // llvm.mips.shf.b
-+ 1, // llvm.mips.shf.h
-+ 1, // llvm.mips.shf.w
-+ 1, // llvm.mips.shilo
-+ 3, // llvm.mips.shll.ph
-+ 3, // llvm.mips.shll.qb
-+ 3, // llvm.mips.shll.s.ph
-+ 3, // llvm.mips.shll.s.w
-+ 1, // llvm.mips.shra.ph
-+ 1, // llvm.mips.shra.qb
-+ 1, // llvm.mips.shra.r.ph
-+ 1, // llvm.mips.shra.r.qb
-+ 1, // llvm.mips.shra.r.w
-+ 1, // llvm.mips.shrl.ph
-+ 1, // llvm.mips.shrl.qb
-+ 1, // llvm.mips.sld.b
-+ 1, // llvm.mips.sld.d
-+ 1, // llvm.mips.sld.h
-+ 1, // llvm.mips.sld.w
-+ 1, // llvm.mips.sldi.b
-+ 1, // llvm.mips.sldi.d
-+ 1, // llvm.mips.sldi.h
-+ 1, // llvm.mips.sldi.w
-+ 1, // llvm.mips.sll.b
-+ 1, // llvm.mips.sll.d
-+ 1, // llvm.mips.sll.h
-+ 1, // llvm.mips.sll.w
-+ 1, // llvm.mips.slli.b
-+ 1, // llvm.mips.slli.d
-+ 1, // llvm.mips.slli.h
-+ 1, // llvm.mips.slli.w
-+ 1, // llvm.mips.splat.b
-+ 1, // llvm.mips.splat.d
-+ 1, // llvm.mips.splat.h
-+ 1, // llvm.mips.splat.w
-+ 1, // llvm.mips.splati.b
-+ 1, // llvm.mips.splati.d
-+ 1, // llvm.mips.splati.h
-+ 1, // llvm.mips.splati.w
-+ 1, // llvm.mips.sra.b
-+ 1, // llvm.mips.sra.d
-+ 1, // llvm.mips.sra.h
-+ 1, // llvm.mips.sra.w
-+ 1, // llvm.mips.srai.b
-+ 1, // llvm.mips.srai.d
-+ 1, // llvm.mips.srai.h
-+ 1, // llvm.mips.srai.w
-+ 1, // llvm.mips.srar.b
-+ 1, // llvm.mips.srar.d
-+ 1, // llvm.mips.srar.h
-+ 1, // llvm.mips.srar.w
-+ 1, // llvm.mips.srari.b
-+ 1, // llvm.mips.srari.d
-+ 1, // llvm.mips.srari.h
-+ 1, // llvm.mips.srari.w
-+ 1, // llvm.mips.srl.b
-+ 1, // llvm.mips.srl.d
-+ 1, // llvm.mips.srl.h
-+ 1, // llvm.mips.srl.w
-+ 1, // llvm.mips.srli.b
-+ 1, // llvm.mips.srli.d
-+ 1, // llvm.mips.srli.h
-+ 1, // llvm.mips.srli.w
-+ 1, // llvm.mips.srlr.b
-+ 1, // llvm.mips.srlr.d
-+ 1, // llvm.mips.srlr.h
-+ 1, // llvm.mips.srlr.w
-+ 1, // llvm.mips.srlri.b
-+ 1, // llvm.mips.srlri.d
-+ 1, // llvm.mips.srlri.h
-+ 1, // llvm.mips.srlri.w
-+ 18, // llvm.mips.st.b
-+ 18, // llvm.mips.st.d
-+ 18, // llvm.mips.st.h
-+ 18, // llvm.mips.st.w
-+ 1, // llvm.mips.subq.ph
-+ 1, // llvm.mips.subq.s.ph
-+ 3, // llvm.mips.subq.s.w
-+ 1, // llvm.mips.subqh.ph
-+ 1, // llvm.mips.subqh.r.ph
-+ 1, // llvm.mips.subqh.r.w
-+ 1, // llvm.mips.subqh.w
-+ 1, // llvm.mips.subs.s.b
-+ 1, // llvm.mips.subs.s.d
-+ 1, // llvm.mips.subs.s.h
-+ 1, // llvm.mips.subs.s.w
-+ 1, // llvm.mips.subs.u.b
-+ 1, // llvm.mips.subs.u.d
-+ 1, // llvm.mips.subs.u.h
-+ 1, // llvm.mips.subs.u.w
-+ 1, // llvm.mips.subsus.u.b
-+ 1, // llvm.mips.subsus.u.d
-+ 1, // llvm.mips.subsus.u.h
-+ 1, // llvm.mips.subsus.u.w
-+ 1, // llvm.mips.subsuu.s.b
-+ 1, // llvm.mips.subsuu.s.d
-+ 1, // llvm.mips.subsuu.s.h
-+ 1, // llvm.mips.subsuu.s.w
-+ 3, // llvm.mips.subu.ph
-+ 1, // llvm.mips.subu.qb
-+ 3, // llvm.mips.subu.s.ph
-+ 1, // llvm.mips.subu.s.qb
-+ 1, // llvm.mips.subuh.qb
-+ 1, // llvm.mips.subuh.r.qb
-+ 1, // llvm.mips.subv.b
-+ 1, // llvm.mips.subv.d
-+ 1, // llvm.mips.subv.h
-+ 1, // llvm.mips.subv.w
-+ 1, // llvm.mips.subvi.b
-+ 1, // llvm.mips.subvi.d
-+ 1, // llvm.mips.subvi.h
-+ 1, // llvm.mips.subvi.w
-+ 1, // llvm.mips.vshf.b
-+ 1, // llvm.mips.vshf.d
-+ 1, // llvm.mips.vshf.h
-+ 1, // llvm.mips.vshf.w
-+ 3, // llvm.mips.wrdsp
-+ 1, // llvm.mips.xor.v
-+ 1, // llvm.mips.xori.b
-+ 1, // llvm.nvvm.abs.i
-+ 1, // llvm.nvvm.abs.ll
-+ 1, // llvm.nvvm.add.rm.d
-+ 1, // llvm.nvvm.add.rm.f
-+ 1, // llvm.nvvm.add.rm.ftz.f
-+ 1, // llvm.nvvm.add.rn.d
-+ 1, // llvm.nvvm.add.rn.f
-+ 1, // llvm.nvvm.add.rn.ftz.f
-+ 1, // llvm.nvvm.add.rp.d
-+ 1, // llvm.nvvm.add.rp.f
-+ 1, // llvm.nvvm.add.rp.ftz.f
-+ 1, // llvm.nvvm.add.rz.d
-+ 1, // llvm.nvvm.add.rz.f
-+ 1, // llvm.nvvm.add.rz.ftz.f
-+ 15, // llvm.nvvm.atomic.add.gen.f.cta
-+ 15, // llvm.nvvm.atomic.add.gen.f.sys
-+ 15, // llvm.nvvm.atomic.add.gen.i.cta
-+ 15, // llvm.nvvm.atomic.add.gen.i.sys
-+ 15, // llvm.nvvm.atomic.and.gen.i.cta
-+ 15, // llvm.nvvm.atomic.and.gen.i.sys
-+ 15, // llvm.nvvm.atomic.cas.gen.i.cta
-+ 15, // llvm.nvvm.atomic.cas.gen.i.sys
-+ 15, // llvm.nvvm.atomic.dec.gen.i.cta
-+ 15, // llvm.nvvm.atomic.dec.gen.i.sys
-+ 15, // llvm.nvvm.atomic.exch.gen.i.cta
-+ 15, // llvm.nvvm.atomic.exch.gen.i.sys
-+ 15, // llvm.nvvm.atomic.inc.gen.i.cta
-+ 15, // llvm.nvvm.atomic.inc.gen.i.sys
-+ 15, // llvm.nvvm.atomic.load.add.f32
-+ 15, // llvm.nvvm.atomic.load.dec.32
-+ 15, // llvm.nvvm.atomic.load.inc.32
-+ 15, // llvm.nvvm.atomic.max.gen.i.cta
-+ 15, // llvm.nvvm.atomic.max.gen.i.sys
-+ 15, // llvm.nvvm.atomic.min.gen.i.cta
-+ 15, // llvm.nvvm.atomic.min.gen.i.sys
-+ 15, // llvm.nvvm.atomic.or.gen.i.cta
-+ 15, // llvm.nvvm.atomic.or.gen.i.sys
-+ 15, // llvm.nvvm.atomic.xor.gen.i.cta
-+ 15, // llvm.nvvm.atomic.xor.gen.i.sys
-+ 27, // llvm.nvvm.bar.sync
-+ 27, // llvm.nvvm.barrier0
-+ 27, // llvm.nvvm.barrier0.and
-+ 27, // llvm.nvvm.barrier0.or
-+ 27, // llvm.nvvm.barrier0.popc
-+ 1, // llvm.nvvm.bitcast.d2ll
-+ 1, // llvm.nvvm.bitcast.f2i
-+ 1, // llvm.nvvm.bitcast.i2f
-+ 1, // llvm.nvvm.bitcast.ll2d
-+ 1, // llvm.nvvm.brev32
-+ 1, // llvm.nvvm.brev64
-+ 1, // llvm.nvvm.ceil.d
-+ 1, // llvm.nvvm.ceil.f
-+ 1, // llvm.nvvm.ceil.ftz.f
-+ 1, // llvm.nvvm.clz.i
-+ 1, // llvm.nvvm.clz.ll
-+ 3, // llvm.nvvm.compiler.error
-+ 3, // llvm.nvvm.compiler.warn
-+ 1, // llvm.nvvm.cos.approx.f
-+ 1, // llvm.nvvm.cos.approx.ftz.f
-+ 1, // llvm.nvvm.d2f.rm
-+ 1, // llvm.nvvm.d2f.rm.ftz
-+ 1, // llvm.nvvm.d2f.rn
-+ 1, // llvm.nvvm.d2f.rn.ftz
-+ 1, // llvm.nvvm.d2f.rp
-+ 1, // llvm.nvvm.d2f.rp.ftz
-+ 1, // llvm.nvvm.d2f.rz
-+ 1, // llvm.nvvm.d2f.rz.ftz
-+ 1, // llvm.nvvm.d2i.hi
-+ 1, // llvm.nvvm.d2i.lo
-+ 1, // llvm.nvvm.d2i.rm
-+ 1, // llvm.nvvm.d2i.rn
-+ 1, // llvm.nvvm.d2i.rp
-+ 1, // llvm.nvvm.d2i.rz
-+ 1, // llvm.nvvm.d2ll.rm
-+ 1, // llvm.nvvm.d2ll.rn
-+ 1, // llvm.nvvm.d2ll.rp
-+ 1, // llvm.nvvm.d2ll.rz
-+ 1, // llvm.nvvm.d2ui.rm
-+ 1, // llvm.nvvm.d2ui.rn
-+ 1, // llvm.nvvm.d2ui.rp
-+ 1, // llvm.nvvm.d2ui.rz
-+ 1, // llvm.nvvm.d2ull.rm
-+ 1, // llvm.nvvm.d2ull.rn
-+ 1, // llvm.nvvm.d2ull.rp
-+ 1, // llvm.nvvm.d2ull.rz
-+ 1, // llvm.nvvm.div.approx.f
-+ 1, // llvm.nvvm.div.approx.ftz.f
-+ 1, // llvm.nvvm.div.rm.d
-+ 1, // llvm.nvvm.div.rm.f
-+ 1, // llvm.nvvm.div.rm.ftz.f
-+ 1, // llvm.nvvm.div.rn.d
-+ 1, // llvm.nvvm.div.rn.f
-+ 1, // llvm.nvvm.div.rn.ftz.f
-+ 1, // llvm.nvvm.div.rp.d
-+ 1, // llvm.nvvm.div.rp.f
-+ 1, // llvm.nvvm.div.rp.ftz.f
-+ 1, // llvm.nvvm.div.rz.d
-+ 1, // llvm.nvvm.div.rz.f
-+ 1, // llvm.nvvm.div.rz.ftz.f
-+ 1, // llvm.nvvm.ex2.approx.d
-+ 1, // llvm.nvvm.ex2.approx.f
-+ 1, // llvm.nvvm.ex2.approx.ftz.f
-+ 1, // llvm.nvvm.f2h.rn
-+ 1, // llvm.nvvm.f2h.rn.ftz
-+ 1, // llvm.nvvm.f2i.rm
-+ 1, // llvm.nvvm.f2i.rm.ftz
-+ 1, // llvm.nvvm.f2i.rn
-+ 1, // llvm.nvvm.f2i.rn.ftz
-+ 1, // llvm.nvvm.f2i.rp
-+ 1, // llvm.nvvm.f2i.rp.ftz
-+ 1, // llvm.nvvm.f2i.rz
-+ 1, // llvm.nvvm.f2i.rz.ftz
-+ 1, // llvm.nvvm.f2ll.rm
-+ 1, // llvm.nvvm.f2ll.rm.ftz
-+ 1, // llvm.nvvm.f2ll.rn
-+ 1, // llvm.nvvm.f2ll.rn.ftz
-+ 1, // llvm.nvvm.f2ll.rp
-+ 1, // llvm.nvvm.f2ll.rp.ftz
-+ 1, // llvm.nvvm.f2ll.rz
-+ 1, // llvm.nvvm.f2ll.rz.ftz
-+ 1, // llvm.nvvm.f2ui.rm
-+ 1, // llvm.nvvm.f2ui.rm.ftz
-+ 1, // llvm.nvvm.f2ui.rn
-+ 1, // llvm.nvvm.f2ui.rn.ftz
-+ 1, // llvm.nvvm.f2ui.rp
-+ 1, // llvm.nvvm.f2ui.rp.ftz
-+ 1, // llvm.nvvm.f2ui.rz
-+ 1, // llvm.nvvm.f2ui.rz.ftz
-+ 1, // llvm.nvvm.f2ull.rm
-+ 1, // llvm.nvvm.f2ull.rm.ftz
-+ 1, // llvm.nvvm.f2ull.rn
-+ 1, // llvm.nvvm.f2ull.rn.ftz
-+ 1, // llvm.nvvm.f2ull.rp
-+ 1, // llvm.nvvm.f2ull.rp.ftz
-+ 1, // llvm.nvvm.f2ull.rz
-+ 1, // llvm.nvvm.f2ull.rz.ftz
-+ 1, // llvm.nvvm.fabs.d
-+ 1, // llvm.nvvm.fabs.f
-+ 1, // llvm.nvvm.fabs.ftz.f
-+ 1, // llvm.nvvm.floor.d
-+ 1, // llvm.nvvm.floor.f
-+ 1, // llvm.nvvm.floor.ftz.f
-+ 1, // llvm.nvvm.fma.rm.d
-+ 1, // llvm.nvvm.fma.rm.f
-+ 1, // llvm.nvvm.fma.rm.ftz.f
-+ 1, // llvm.nvvm.fma.rn.d
-+ 1, // llvm.nvvm.fma.rn.f
-+ 1, // llvm.nvvm.fma.rn.ftz.f
-+ 1, // llvm.nvvm.fma.rp.d
-+ 1, // llvm.nvvm.fma.rp.f
-+ 1, // llvm.nvvm.fma.rp.ftz.f
-+ 1, // llvm.nvvm.fma.rz.d
-+ 1, // llvm.nvvm.fma.rz.f
-+ 1, // llvm.nvvm.fma.rz.ftz.f
-+ 1, // llvm.nvvm.fmax.d
-+ 1, // llvm.nvvm.fmax.f
-+ 1, // llvm.nvvm.fmax.ftz.f
-+ 1, // llvm.nvvm.fmin.d
-+ 1, // llvm.nvvm.fmin.f
-+ 1, // llvm.nvvm.fmin.ftz.f
-+ 1, // llvm.nvvm.h2f
-+ 1, // llvm.nvvm.i2d.rm
-+ 1, // llvm.nvvm.i2d.rn
-+ 1, // llvm.nvvm.i2d.rp
-+ 1, // llvm.nvvm.i2d.rz
-+ 1, // llvm.nvvm.i2f.rm
-+ 1, // llvm.nvvm.i2f.rn
-+ 1, // llvm.nvvm.i2f.rp
-+ 1, // llvm.nvvm.i2f.rz
-+ 1, // llvm.nvvm.isspacep.const
-+ 1, // llvm.nvvm.isspacep.global
-+ 1, // llvm.nvvm.isspacep.local
-+ 1, // llvm.nvvm.isspacep.shared
-+ 1, // llvm.nvvm.istypep.sampler
-+ 1, // llvm.nvvm.istypep.surface
-+ 1, // llvm.nvvm.istypep.texture
-+ 29, // llvm.nvvm.ldg.global.f
-+ 29, // llvm.nvvm.ldg.global.i
-+ 29, // llvm.nvvm.ldg.global.p
-+ 29, // llvm.nvvm.ldu.global.f
-+ 29, // llvm.nvvm.ldu.global.i
-+ 29, // llvm.nvvm.ldu.global.p
-+ 1, // llvm.nvvm.lg2.approx.d
-+ 1, // llvm.nvvm.lg2.approx.f
-+ 1, // llvm.nvvm.lg2.approx.ftz.f
-+ 1, // llvm.nvvm.ll2d.rm
-+ 1, // llvm.nvvm.ll2d.rn
-+ 1, // llvm.nvvm.ll2d.rp
-+ 1, // llvm.nvvm.ll2d.rz
-+ 1, // llvm.nvvm.ll2f.rm
-+ 1, // llvm.nvvm.ll2f.rn
-+ 1, // llvm.nvvm.ll2f.rp
-+ 1, // llvm.nvvm.ll2f.rz
-+ 1, // llvm.nvvm.lohi.i2d
-+ 1, // llvm.nvvm.max.i
-+ 1, // llvm.nvvm.max.ll
-+ 1, // llvm.nvvm.max.ui
-+ 1, // llvm.nvvm.max.ull
-+ 3, // llvm.nvvm.membar.cta
-+ 3, // llvm.nvvm.membar.gl
-+ 3, // llvm.nvvm.membar.sys
-+ 1, // llvm.nvvm.min.i
-+ 1, // llvm.nvvm.min.ll
-+ 1, // llvm.nvvm.min.ui
-+ 1, // llvm.nvvm.min.ull
-+ 1, // llvm.nvvm.move.double
-+ 1, // llvm.nvvm.move.float
-+ 1, // llvm.nvvm.move.i16
-+ 1, // llvm.nvvm.move.i32
-+ 1, // llvm.nvvm.move.i64
-+ 10, // llvm.nvvm.move.ptr
-+ 1, // llvm.nvvm.mul.rm.d
-+ 1, // llvm.nvvm.mul.rm.f
-+ 1, // llvm.nvvm.mul.rm.ftz.f
-+ 1, // llvm.nvvm.mul.rn.d
-+ 1, // llvm.nvvm.mul.rn.f
-+ 1, // llvm.nvvm.mul.rn.ftz.f
-+ 1, // llvm.nvvm.mul.rp.d
-+ 1, // llvm.nvvm.mul.rp.f
-+ 1, // llvm.nvvm.mul.rp.ftz.f
-+ 1, // llvm.nvvm.mul.rz.d
-+ 1, // llvm.nvvm.mul.rz.f
-+ 1, // llvm.nvvm.mul.rz.ftz.f
-+ 1, // llvm.nvvm.mul24.i
-+ 1, // llvm.nvvm.mul24.ui
-+ 1, // llvm.nvvm.mulhi.i
-+ 1, // llvm.nvvm.mulhi.ll
-+ 1, // llvm.nvvm.mulhi.ui
-+ 1, // llvm.nvvm.mulhi.ull
-+ 1, // llvm.nvvm.popc.i
-+ 1, // llvm.nvvm.popc.ll
-+ 1, // llvm.nvvm.prmt
-+ 1, // llvm.nvvm.ptr.constant.to.gen
-+ 1, // llvm.nvvm.ptr.gen.to.constant
-+ 1, // llvm.nvvm.ptr.gen.to.global
-+ 1, // llvm.nvvm.ptr.gen.to.local
-+ 1, // llvm.nvvm.ptr.gen.to.param
-+ 1, // llvm.nvvm.ptr.gen.to.shared
-+ 1, // llvm.nvvm.ptr.global.to.gen
-+ 1, // llvm.nvvm.ptr.local.to.gen
-+ 1, // llvm.nvvm.ptr.shared.to.gen
-+ 1, // llvm.nvvm.rcp.approx.ftz.d
-+ 1, // llvm.nvvm.rcp.rm.d
-+ 1, // llvm.nvvm.rcp.rm.f
-+ 1, // llvm.nvvm.rcp.rm.ftz.f
-+ 1, // llvm.nvvm.rcp.rn.d
-+ 1, // llvm.nvvm.rcp.rn.f
-+ 1, // llvm.nvvm.rcp.rn.ftz.f
-+ 1, // llvm.nvvm.rcp.rp.d
-+ 1, // llvm.nvvm.rcp.rp.f
-+ 1, // llvm.nvvm.rcp.rp.ftz.f
-+ 1, // llvm.nvvm.rcp.rz.d
-+ 1, // llvm.nvvm.rcp.rz.f
-+ 1, // llvm.nvvm.rcp.rz.ftz.f
-+ 1, // llvm.nvvm.read.ptx.sreg.clock
-+ 1, // llvm.nvvm.read.ptx.sreg.clock64
-+ 1, // llvm.nvvm.read.ptx.sreg.ctaid.w
-+ 1, // llvm.nvvm.read.ptx.sreg.ctaid.x
-+ 1, // llvm.nvvm.read.ptx.sreg.ctaid.y
-+ 1, // llvm.nvvm.read.ptx.sreg.ctaid.z
-+ 1, // llvm.nvvm.read.ptx.sreg.envreg0
-+ 1, // llvm.nvvm.read.ptx.sreg.envreg1
-+ 1, // llvm.nvvm.read.ptx.sreg.envreg10
-+ 1, // llvm.nvvm.read.ptx.sreg.envreg11
-+ 1, // llvm.nvvm.read.ptx.sreg.envreg12
-+ 1, // llvm.nvvm.read.ptx.sreg.envreg13
-+ 1, // llvm.nvvm.read.ptx.sreg.envreg14
-+ 1, // llvm.nvvm.read.ptx.sreg.envreg15
-+ 1, // llvm.nvvm.read.ptx.sreg.envreg16
-+ 1, // llvm.nvvm.read.ptx.sreg.envreg17
-+ 1, // llvm.nvvm.read.ptx.sreg.envreg18
-+ 1, // llvm.nvvm.read.ptx.sreg.envreg19
-+ 1, // llvm.nvvm.read.ptx.sreg.envreg2
-+ 1, // llvm.nvvm.read.ptx.sreg.envreg20
-+ 1, // llvm.nvvm.read.ptx.sreg.envreg21
-+ 1, // llvm.nvvm.read.ptx.sreg.envreg22
-+ 1, // llvm.nvvm.read.ptx.sreg.envreg23
-+ 1, // llvm.nvvm.read.ptx.sreg.envreg24
-+ 1, // llvm.nvvm.read.ptx.sreg.envreg25
-+ 1, // llvm.nvvm.read.ptx.sreg.envreg26
-+ 1, // llvm.nvvm.read.ptx.sreg.envreg27
-+ 1, // llvm.nvvm.read.ptx.sreg.envreg28
-+ 1, // llvm.nvvm.read.ptx.sreg.envreg29
-+ 1, // llvm.nvvm.read.ptx.sreg.envreg3
-+ 1, // llvm.nvvm.read.ptx.sreg.envreg30
-+ 1, // llvm.nvvm.read.ptx.sreg.envreg31
-+ 1, // llvm.nvvm.read.ptx.sreg.envreg4
-+ 1, // llvm.nvvm.read.ptx.sreg.envreg5
-+ 1, // llvm.nvvm.read.ptx.sreg.envreg6
-+ 1, // llvm.nvvm.read.ptx.sreg.envreg7
-+ 1, // llvm.nvvm.read.ptx.sreg.envreg8
-+ 1, // llvm.nvvm.read.ptx.sreg.envreg9
-+ 1, // llvm.nvvm.read.ptx.sreg.gridid
-+ 1, // llvm.nvvm.read.ptx.sreg.laneid
-+ 1, // llvm.nvvm.read.ptx.sreg.lanemask.eq
-+ 1, // llvm.nvvm.read.ptx.sreg.lanemask.ge
-+ 1, // llvm.nvvm.read.ptx.sreg.lanemask.gt
-+ 1, // llvm.nvvm.read.ptx.sreg.lanemask.le
-+ 1, // llvm.nvvm.read.ptx.sreg.lanemask.lt
-+ 1, // llvm.nvvm.read.ptx.sreg.nctaid.w
-+ 1, // llvm.nvvm.read.ptx.sreg.nctaid.x
-+ 1, // llvm.nvvm.read.ptx.sreg.nctaid.y
-+ 1, // llvm.nvvm.read.ptx.sreg.nctaid.z
-+ 1, // llvm.nvvm.read.ptx.sreg.nsmid
-+ 1, // llvm.nvvm.read.ptx.sreg.ntid.w
-+ 1, // llvm.nvvm.read.ptx.sreg.ntid.x
-+ 1, // llvm.nvvm.read.ptx.sreg.ntid.y
-+ 1, // llvm.nvvm.read.ptx.sreg.ntid.z
-+ 1, // llvm.nvvm.read.ptx.sreg.nwarpid
-+ 1, // llvm.nvvm.read.ptx.sreg.pm0
-+ 1, // llvm.nvvm.read.ptx.sreg.pm1
-+ 1, // llvm.nvvm.read.ptx.sreg.pm2
-+ 1, // llvm.nvvm.read.ptx.sreg.pm3
-+ 1, // llvm.nvvm.read.ptx.sreg.smid
-+ 1, // llvm.nvvm.read.ptx.sreg.tid.w
-+ 1, // llvm.nvvm.read.ptx.sreg.tid.x
-+ 1, // llvm.nvvm.read.ptx.sreg.tid.y
-+ 1, // llvm.nvvm.read.ptx.sreg.tid.z
-+ 1, // llvm.nvvm.read.ptx.sreg.warpid
-+ 1, // llvm.nvvm.read.ptx.sreg.warpsize
-+ 1, // llvm.nvvm.reflect
-+ 1, // llvm.nvvm.rotate.b32
-+ 1, // llvm.nvvm.rotate.b64
-+ 1, // llvm.nvvm.rotate.right.b64
-+ 1, // llvm.nvvm.round.d
-+ 1, // llvm.nvvm.round.f
-+ 1, // llvm.nvvm.round.ftz.f
-+ 1, // llvm.nvvm.rsqrt.approx.d
-+ 1, // llvm.nvvm.rsqrt.approx.f
-+ 1, // llvm.nvvm.rsqrt.approx.ftz.f
-+ 1, // llvm.nvvm.sad.i
-+ 1, // llvm.nvvm.sad.ui
-+ 1, // llvm.nvvm.saturate.d
-+ 1, // llvm.nvvm.saturate.f
-+ 1, // llvm.nvvm.saturate.ftz.f
-+ 26, // llvm.nvvm.shfl.bfly.f32
-+ 26, // llvm.nvvm.shfl.bfly.i32
-+ 26, // llvm.nvvm.shfl.down.f32
-+ 26, // llvm.nvvm.shfl.down.i32
-+ 26, // llvm.nvvm.shfl.idx.f32
-+ 26, // llvm.nvvm.shfl.idx.i32
-+ 26, // llvm.nvvm.shfl.up.f32
-+ 26, // llvm.nvvm.shfl.up.i32
-+ 1, // llvm.nvvm.sin.approx.f
-+ 1, // llvm.nvvm.sin.approx.ftz.f
-+ 1, // llvm.nvvm.sqrt.approx.f
-+ 1, // llvm.nvvm.sqrt.approx.ftz.f
-+ 1, // llvm.nvvm.sqrt.f
-+ 1, // llvm.nvvm.sqrt.rm.d
-+ 1, // llvm.nvvm.sqrt.rm.f
-+ 1, // llvm.nvvm.sqrt.rm.ftz.f
-+ 1, // llvm.nvvm.sqrt.rn.d
-+ 1, // llvm.nvvm.sqrt.rn.f
-+ 1, // llvm.nvvm.sqrt.rn.ftz.f
-+ 1, // llvm.nvvm.sqrt.rp.d
-+ 1, // llvm.nvvm.sqrt.rp.f
-+ 1, // llvm.nvvm.sqrt.rp.ftz.f
-+ 1, // llvm.nvvm.sqrt.rz.d
-+ 1, // llvm.nvvm.sqrt.rz.f
-+ 1, // llvm.nvvm.sqrt.rz.ftz.f
-+ 3, // llvm.nvvm.suld.1d.array.i16.clamp
-+ 3, // llvm.nvvm.suld.1d.array.i16.trap
-+ 3, // llvm.nvvm.suld.1d.array.i16.zero
-+ 3, // llvm.nvvm.suld.1d.array.i32.clamp
-+ 3, // llvm.nvvm.suld.1d.array.i32.trap
-+ 3, // llvm.nvvm.suld.1d.array.i32.zero
-+ 3, // llvm.nvvm.suld.1d.array.i64.clamp
-+ 3, // llvm.nvvm.suld.1d.array.i64.trap
-+ 3, // llvm.nvvm.suld.1d.array.i64.zero
-+ 3, // llvm.nvvm.suld.1d.array.i8.clamp
-+ 3, // llvm.nvvm.suld.1d.array.i8.trap
-+ 3, // llvm.nvvm.suld.1d.array.i8.zero
-+ 3, // llvm.nvvm.suld.1d.array.v2i16.clamp
-+ 3, // llvm.nvvm.suld.1d.array.v2i16.trap
-+ 3, // llvm.nvvm.suld.1d.array.v2i16.zero
-+ 3, // llvm.nvvm.suld.1d.array.v2i32.clamp
-+ 3, // llvm.nvvm.suld.1d.array.v2i32.trap
-+ 3, // llvm.nvvm.suld.1d.array.v2i32.zero
-+ 3, // llvm.nvvm.suld.1d.array.v2i64.clamp
-+ 3, // llvm.nvvm.suld.1d.array.v2i64.trap
-+ 3, // llvm.nvvm.suld.1d.array.v2i64.zero
-+ 3, // llvm.nvvm.suld.1d.array.v2i8.clamp
-+ 3, // llvm.nvvm.suld.1d.array.v2i8.trap
-+ 3, // llvm.nvvm.suld.1d.array.v2i8.zero
-+ 3, // llvm.nvvm.suld.1d.array.v4i16.clamp
-+ 3, // llvm.nvvm.suld.1d.array.v4i16.trap
-+ 3, // llvm.nvvm.suld.1d.array.v4i16.zero
-+ 3, // llvm.nvvm.suld.1d.array.v4i32.clamp
-+ 3, // llvm.nvvm.suld.1d.array.v4i32.trap
-+ 3, // llvm.nvvm.suld.1d.array.v4i32.zero
-+ 3, // llvm.nvvm.suld.1d.array.v4i8.clamp
-+ 3, // llvm.nvvm.suld.1d.array.v4i8.trap
-+ 3, // llvm.nvvm.suld.1d.array.v4i8.zero
-+ 3, // llvm.nvvm.suld.1d.i16.clamp
-+ 3, // llvm.nvvm.suld.1d.i16.trap
-+ 3, // llvm.nvvm.suld.1d.i16.zero
-+ 3, // llvm.nvvm.suld.1d.i32.clamp
-+ 3, // llvm.nvvm.suld.1d.i32.trap
-+ 3, // llvm.nvvm.suld.1d.i32.zero
-+ 3, // llvm.nvvm.suld.1d.i64.clamp
-+ 3, // llvm.nvvm.suld.1d.i64.trap
-+ 3, // llvm.nvvm.suld.1d.i64.zero
-+ 3, // llvm.nvvm.suld.1d.i8.clamp
-+ 3, // llvm.nvvm.suld.1d.i8.trap
-+ 3, // llvm.nvvm.suld.1d.i8.zero
-+ 3, // llvm.nvvm.suld.1d.v2i16.clamp
-+ 3, // llvm.nvvm.suld.1d.v2i16.trap
-+ 3, // llvm.nvvm.suld.1d.v2i16.zero
-+ 3, // llvm.nvvm.suld.1d.v2i32.clamp
-+ 3, // llvm.nvvm.suld.1d.v2i32.trap
-+ 3, // llvm.nvvm.suld.1d.v2i32.zero
-+ 3, // llvm.nvvm.suld.1d.v2i64.clamp
-+ 3, // llvm.nvvm.suld.1d.v2i64.trap
-+ 3, // llvm.nvvm.suld.1d.v2i64.zero
-+ 3, // llvm.nvvm.suld.1d.v2i8.clamp
-+ 3, // llvm.nvvm.suld.1d.v2i8.trap
-+ 3, // llvm.nvvm.suld.1d.v2i8.zero
-+ 3, // llvm.nvvm.suld.1d.v4i16.clamp
-+ 3, // llvm.nvvm.suld.1d.v4i16.trap
-+ 3, // llvm.nvvm.suld.1d.v4i16.zero
-+ 3, // llvm.nvvm.suld.1d.v4i32.clamp
-+ 3, // llvm.nvvm.suld.1d.v4i32.trap
-+ 3, // llvm.nvvm.suld.1d.v4i32.zero
-+ 3, // llvm.nvvm.suld.1d.v4i8.clamp
-+ 3, // llvm.nvvm.suld.1d.v4i8.trap
-+ 3, // llvm.nvvm.suld.1d.v4i8.zero
-+ 3, // llvm.nvvm.suld.2d.array.i16.clamp
-+ 3, // llvm.nvvm.suld.2d.array.i16.trap
-+ 3, // llvm.nvvm.suld.2d.array.i16.zero
-+ 3, // llvm.nvvm.suld.2d.array.i32.clamp
-+ 3, // llvm.nvvm.suld.2d.array.i32.trap
-+ 3, // llvm.nvvm.suld.2d.array.i32.zero
-+ 3, // llvm.nvvm.suld.2d.array.i64.clamp
-+ 3, // llvm.nvvm.suld.2d.array.i64.trap
-+ 3, // llvm.nvvm.suld.2d.array.i64.zero
-+ 3, // llvm.nvvm.suld.2d.array.i8.clamp
-+ 3, // llvm.nvvm.suld.2d.array.i8.trap
-+ 3, // llvm.nvvm.suld.2d.array.i8.zero
-+ 3, // llvm.nvvm.suld.2d.array.v2i16.clamp
-+ 3, // llvm.nvvm.suld.2d.array.v2i16.trap
-+ 3, // llvm.nvvm.suld.2d.array.v2i16.zero
-+ 3, // llvm.nvvm.suld.2d.array.v2i32.clamp
-+ 3, // llvm.nvvm.suld.2d.array.v2i32.trap
-+ 3, // llvm.nvvm.suld.2d.array.v2i32.zero
-+ 3, // llvm.nvvm.suld.2d.array.v2i64.clamp
-+ 3, // llvm.nvvm.suld.2d.array.v2i64.trap
-+ 3, // llvm.nvvm.suld.2d.array.v2i64.zero
-+ 3, // llvm.nvvm.suld.2d.array.v2i8.clamp
-+ 3, // llvm.nvvm.suld.2d.array.v2i8.trap
-+ 3, // llvm.nvvm.suld.2d.array.v2i8.zero
-+ 3, // llvm.nvvm.suld.2d.array.v4i16.clamp
-+ 3, // llvm.nvvm.suld.2d.array.v4i16.trap
-+ 3, // llvm.nvvm.suld.2d.array.v4i16.zero
-+ 3, // llvm.nvvm.suld.2d.array.v4i32.clamp
-+ 3, // llvm.nvvm.suld.2d.array.v4i32.trap
-+ 3, // llvm.nvvm.suld.2d.array.v4i32.zero
-+ 3, // llvm.nvvm.suld.2d.array.v4i8.clamp
-+ 3, // llvm.nvvm.suld.2d.array.v4i8.trap
-+ 3, // llvm.nvvm.suld.2d.array.v4i8.zero
-+ 3, // llvm.nvvm.suld.2d.i16.clamp
-+ 3, // llvm.nvvm.suld.2d.i16.trap
-+ 3, // llvm.nvvm.suld.2d.i16.zero
-+ 3, // llvm.nvvm.suld.2d.i32.clamp
-+ 3, // llvm.nvvm.suld.2d.i32.trap
-+ 3, // llvm.nvvm.suld.2d.i32.zero
-+ 3, // llvm.nvvm.suld.2d.i64.clamp
-+ 3, // llvm.nvvm.suld.2d.i64.trap
-+ 3, // llvm.nvvm.suld.2d.i64.zero
-+ 3, // llvm.nvvm.suld.2d.i8.clamp
-+ 3, // llvm.nvvm.suld.2d.i8.trap
-+ 3, // llvm.nvvm.suld.2d.i8.zero
-+ 3, // llvm.nvvm.suld.2d.v2i16.clamp
-+ 3, // llvm.nvvm.suld.2d.v2i16.trap
-+ 3, // llvm.nvvm.suld.2d.v2i16.zero
-+ 3, // llvm.nvvm.suld.2d.v2i32.clamp
-+ 3, // llvm.nvvm.suld.2d.v2i32.trap
-+ 3, // llvm.nvvm.suld.2d.v2i32.zero
-+ 3, // llvm.nvvm.suld.2d.v2i64.clamp
-+ 3, // llvm.nvvm.suld.2d.v2i64.trap
-+ 3, // llvm.nvvm.suld.2d.v2i64.zero
-+ 3, // llvm.nvvm.suld.2d.v2i8.clamp
-+ 3, // llvm.nvvm.suld.2d.v2i8.trap
-+ 3, // llvm.nvvm.suld.2d.v2i8.zero
-+ 3, // llvm.nvvm.suld.2d.v4i16.clamp
-+ 3, // llvm.nvvm.suld.2d.v4i16.trap
-+ 3, // llvm.nvvm.suld.2d.v4i16.zero
-+ 3, // llvm.nvvm.suld.2d.v4i32.clamp
-+ 3, // llvm.nvvm.suld.2d.v4i32.trap
-+ 3, // llvm.nvvm.suld.2d.v4i32.zero
-+ 3, // llvm.nvvm.suld.2d.v4i8.clamp
-+ 3, // llvm.nvvm.suld.2d.v4i8.trap
-+ 3, // llvm.nvvm.suld.2d.v4i8.zero
-+ 3, // llvm.nvvm.suld.3d.i16.clamp
-+ 3, // llvm.nvvm.suld.3d.i16.trap
-+ 3, // llvm.nvvm.suld.3d.i16.zero
-+ 3, // llvm.nvvm.suld.3d.i32.clamp
-+ 3, // llvm.nvvm.suld.3d.i32.trap
-+ 3, // llvm.nvvm.suld.3d.i32.zero
-+ 3, // llvm.nvvm.suld.3d.i64.clamp
-+ 3, // llvm.nvvm.suld.3d.i64.trap
-+ 3, // llvm.nvvm.suld.3d.i64.zero
-+ 3, // llvm.nvvm.suld.3d.i8.clamp
-+ 3, // llvm.nvvm.suld.3d.i8.trap
-+ 3, // llvm.nvvm.suld.3d.i8.zero
-+ 3, // llvm.nvvm.suld.3d.v2i16.clamp
-+ 3, // llvm.nvvm.suld.3d.v2i16.trap
-+ 3, // llvm.nvvm.suld.3d.v2i16.zero
-+ 3, // llvm.nvvm.suld.3d.v2i32.clamp
-+ 3, // llvm.nvvm.suld.3d.v2i32.trap
-+ 3, // llvm.nvvm.suld.3d.v2i32.zero
-+ 3, // llvm.nvvm.suld.3d.v2i64.clamp
-+ 3, // llvm.nvvm.suld.3d.v2i64.trap
-+ 3, // llvm.nvvm.suld.3d.v2i64.zero
-+ 3, // llvm.nvvm.suld.3d.v2i8.clamp
-+ 3, // llvm.nvvm.suld.3d.v2i8.trap
-+ 3, // llvm.nvvm.suld.3d.v2i8.zero
-+ 3, // llvm.nvvm.suld.3d.v4i16.clamp
-+ 3, // llvm.nvvm.suld.3d.v4i16.trap
-+ 3, // llvm.nvvm.suld.3d.v4i16.zero
-+ 3, // llvm.nvvm.suld.3d.v4i32.clamp
-+ 3, // llvm.nvvm.suld.3d.v4i32.trap
-+ 3, // llvm.nvvm.suld.3d.v4i32.zero
-+ 3, // llvm.nvvm.suld.3d.v4i8.clamp
-+ 3, // llvm.nvvm.suld.3d.v4i8.trap
-+ 3, // llvm.nvvm.suld.3d.v4i8.zero
-+ 1, // llvm.nvvm.suq.array.size
-+ 1, // llvm.nvvm.suq.channel.data.type
-+ 1, // llvm.nvvm.suq.channel.order
-+ 1, // llvm.nvvm.suq.depth
-+ 1, // llvm.nvvm.suq.height
-+ 1, // llvm.nvvm.suq.width
-+ 3, // llvm.nvvm.sust.b.1d.array.i16.clamp
-+ 3, // llvm.nvvm.sust.b.1d.array.i16.trap
-+ 3, // llvm.nvvm.sust.b.1d.array.i16.zero
-+ 3, // llvm.nvvm.sust.b.1d.array.i32.clamp
-+ 3, // llvm.nvvm.sust.b.1d.array.i32.trap
-+ 3, // llvm.nvvm.sust.b.1d.array.i32.zero
-+ 3, // llvm.nvvm.sust.b.1d.array.i64.clamp
-+ 3, // llvm.nvvm.sust.b.1d.array.i64.trap
-+ 3, // llvm.nvvm.sust.b.1d.array.i64.zero
-+ 3, // llvm.nvvm.sust.b.1d.array.i8.clamp
-+ 3, // llvm.nvvm.sust.b.1d.array.i8.trap
-+ 3, // llvm.nvvm.sust.b.1d.array.i8.zero
-+ 3, // llvm.nvvm.sust.b.1d.array.v2i16.clamp
-+ 3, // llvm.nvvm.sust.b.1d.array.v2i16.trap
-+ 3, // llvm.nvvm.sust.b.1d.array.v2i16.zero
-+ 3, // llvm.nvvm.sust.b.1d.array.v2i32.clamp
-+ 3, // llvm.nvvm.sust.b.1d.array.v2i32.trap
-+ 3, // llvm.nvvm.sust.b.1d.array.v2i32.zero
-+ 3, // llvm.nvvm.sust.b.1d.array.v2i64.clamp
-+ 3, // llvm.nvvm.sust.b.1d.array.v2i64.trap
-+ 3, // llvm.nvvm.sust.b.1d.array.v2i64.zero
-+ 3, // llvm.nvvm.sust.b.1d.array.v2i8.clamp
-+ 3, // llvm.nvvm.sust.b.1d.array.v2i8.trap
-+ 3, // llvm.nvvm.sust.b.1d.array.v2i8.zero
-+ 3, // llvm.nvvm.sust.b.1d.array.v4i16.clamp
-+ 3, // llvm.nvvm.sust.b.1d.array.v4i16.trap
-+ 3, // llvm.nvvm.sust.b.1d.array.v4i16.zero
-+ 3, // llvm.nvvm.sust.b.1d.array.v4i32.clamp
-+ 3, // llvm.nvvm.sust.b.1d.array.v4i32.trap
-+ 3, // llvm.nvvm.sust.b.1d.array.v4i32.zero
-+ 3, // llvm.nvvm.sust.b.1d.array.v4i8.clamp
-+ 3, // llvm.nvvm.sust.b.1d.array.v4i8.trap
-+ 3, // llvm.nvvm.sust.b.1d.array.v4i8.zero
-+ 3, // llvm.nvvm.sust.b.1d.i16.clamp
-+ 3, // llvm.nvvm.sust.b.1d.i16.trap
-+ 3, // llvm.nvvm.sust.b.1d.i16.zero
-+ 3, // llvm.nvvm.sust.b.1d.i32.clamp
-+ 3, // llvm.nvvm.sust.b.1d.i32.trap
-+ 3, // llvm.nvvm.sust.b.1d.i32.zero
-+ 3, // llvm.nvvm.sust.b.1d.i64.clamp
-+ 3, // llvm.nvvm.sust.b.1d.i64.trap
-+ 3, // llvm.nvvm.sust.b.1d.i64.zero
-+ 3, // llvm.nvvm.sust.b.1d.i8.clamp
-+ 3, // llvm.nvvm.sust.b.1d.i8.trap
-+ 3, // llvm.nvvm.sust.b.1d.i8.zero
-+ 3, // llvm.nvvm.sust.b.1d.v2i16.clamp
-+ 3, // llvm.nvvm.sust.b.1d.v2i16.trap
-+ 3, // llvm.nvvm.sust.b.1d.v2i16.zero
-+ 3, // llvm.nvvm.sust.b.1d.v2i32.clamp
-+ 3, // llvm.nvvm.sust.b.1d.v2i32.trap
-+ 3, // llvm.nvvm.sust.b.1d.v2i32.zero
-+ 3, // llvm.nvvm.sust.b.1d.v2i64.clamp
-+ 3, // llvm.nvvm.sust.b.1d.v2i64.trap
-+ 3, // llvm.nvvm.sust.b.1d.v2i64.zero
-+ 3, // llvm.nvvm.sust.b.1d.v2i8.clamp
-+ 3, // llvm.nvvm.sust.b.1d.v2i8.trap
-+ 3, // llvm.nvvm.sust.b.1d.v2i8.zero
-+ 3, // llvm.nvvm.sust.b.1d.v4i16.clamp
-+ 3, // llvm.nvvm.sust.b.1d.v4i16.trap
-+ 3, // llvm.nvvm.sust.b.1d.v4i16.zero
-+ 3, // llvm.nvvm.sust.b.1d.v4i32.clamp
-+ 3, // llvm.nvvm.sust.b.1d.v4i32.trap
-+ 3, // llvm.nvvm.sust.b.1d.v4i32.zero
-+ 3, // llvm.nvvm.sust.b.1d.v4i8.clamp
-+ 3, // llvm.nvvm.sust.b.1d.v4i8.trap
-+ 3, // llvm.nvvm.sust.b.1d.v4i8.zero
-+ 3, // llvm.nvvm.sust.b.2d.array.i16.clamp
-+ 3, // llvm.nvvm.sust.b.2d.array.i16.trap
-+ 3, // llvm.nvvm.sust.b.2d.array.i16.zero
-+ 3, // llvm.nvvm.sust.b.2d.array.i32.clamp
-+ 3, // llvm.nvvm.sust.b.2d.array.i32.trap
-+ 3, // llvm.nvvm.sust.b.2d.array.i32.zero
-+ 3, // llvm.nvvm.sust.b.2d.array.i64.clamp
-+ 3, // llvm.nvvm.sust.b.2d.array.i64.trap
-+ 3, // llvm.nvvm.sust.b.2d.array.i64.zero
-+ 3, // llvm.nvvm.sust.b.2d.array.i8.clamp
-+ 3, // llvm.nvvm.sust.b.2d.array.i8.trap
-+ 3, // llvm.nvvm.sust.b.2d.array.i8.zero
-+ 3, // llvm.nvvm.sust.b.2d.array.v2i16.clamp
-+ 3, // llvm.nvvm.sust.b.2d.array.v2i16.trap
-+ 3, // llvm.nvvm.sust.b.2d.array.v2i16.zero
-+ 3, // llvm.nvvm.sust.b.2d.array.v2i32.clamp
-+ 3, // llvm.nvvm.sust.b.2d.array.v2i32.trap
-+ 3, // llvm.nvvm.sust.b.2d.array.v2i32.zero
-+ 3, // llvm.nvvm.sust.b.2d.array.v2i64.clamp
-+ 3, // llvm.nvvm.sust.b.2d.array.v2i64.trap
-+ 3, // llvm.nvvm.sust.b.2d.array.v2i64.zero
-+ 3, // llvm.nvvm.sust.b.2d.array.v2i8.clamp
-+ 3, // llvm.nvvm.sust.b.2d.array.v2i8.trap
-+ 3, // llvm.nvvm.sust.b.2d.array.v2i8.zero
-+ 3, // llvm.nvvm.sust.b.2d.array.v4i16.clamp
-+ 3, // llvm.nvvm.sust.b.2d.array.v4i16.trap
-+ 3, // llvm.nvvm.sust.b.2d.array.v4i16.zero
-+ 3, // llvm.nvvm.sust.b.2d.array.v4i32.clamp
-+ 3, // llvm.nvvm.sust.b.2d.array.v4i32.trap
-+ 3, // llvm.nvvm.sust.b.2d.array.v4i32.zero
-+ 3, // llvm.nvvm.sust.b.2d.array.v4i8.clamp
-+ 3, // llvm.nvvm.sust.b.2d.array.v4i8.trap
-+ 3, // llvm.nvvm.sust.b.2d.array.v4i8.zero
-+ 3, // llvm.nvvm.sust.b.2d.i16.clamp
-+ 3, // llvm.nvvm.sust.b.2d.i16.trap
-+ 3, // llvm.nvvm.sust.b.2d.i16.zero
-+ 3, // llvm.nvvm.sust.b.2d.i32.clamp
-+ 3, // llvm.nvvm.sust.b.2d.i32.trap
-+ 3, // llvm.nvvm.sust.b.2d.i32.zero
-+ 3, // llvm.nvvm.sust.b.2d.i64.clamp
-+ 3, // llvm.nvvm.sust.b.2d.i64.trap
-+ 3, // llvm.nvvm.sust.b.2d.i64.zero
-+ 3, // llvm.nvvm.sust.b.2d.i8.clamp
-+ 3, // llvm.nvvm.sust.b.2d.i8.trap
-+ 3, // llvm.nvvm.sust.b.2d.i8.zero
-+ 3, // llvm.nvvm.sust.b.2d.v2i16.clamp
-+ 3, // llvm.nvvm.sust.b.2d.v2i16.trap
-+ 3, // llvm.nvvm.sust.b.2d.v2i16.zero
-+ 3, // llvm.nvvm.sust.b.2d.v2i32.clamp
-+ 3, // llvm.nvvm.sust.b.2d.v2i32.trap
-+ 3, // llvm.nvvm.sust.b.2d.v2i32.zero
-+ 3, // llvm.nvvm.sust.b.2d.v2i64.clamp
-+ 3, // llvm.nvvm.sust.b.2d.v2i64.trap
-+ 3, // llvm.nvvm.sust.b.2d.v2i64.zero
-+ 3, // llvm.nvvm.sust.b.2d.v2i8.clamp
-+ 3, // llvm.nvvm.sust.b.2d.v2i8.trap
-+ 3, // llvm.nvvm.sust.b.2d.v2i8.zero
-+ 3, // llvm.nvvm.sust.b.2d.v4i16.clamp
-+ 3, // llvm.nvvm.sust.b.2d.v4i16.trap
-+ 3, // llvm.nvvm.sust.b.2d.v4i16.zero
-+ 3, // llvm.nvvm.sust.b.2d.v4i32.clamp
-+ 3, // llvm.nvvm.sust.b.2d.v4i32.trap
-+ 3, // llvm.nvvm.sust.b.2d.v4i32.zero
-+ 3, // llvm.nvvm.sust.b.2d.v4i8.clamp
-+ 3, // llvm.nvvm.sust.b.2d.v4i8.trap
-+ 3, // llvm.nvvm.sust.b.2d.v4i8.zero
-+ 3, // llvm.nvvm.sust.b.3d.i16.clamp
-+ 3, // llvm.nvvm.sust.b.3d.i16.trap
-+ 3, // llvm.nvvm.sust.b.3d.i16.zero
-+ 3, // llvm.nvvm.sust.b.3d.i32.clamp
-+ 3, // llvm.nvvm.sust.b.3d.i32.trap
-+ 3, // llvm.nvvm.sust.b.3d.i32.zero
-+ 3, // llvm.nvvm.sust.b.3d.i64.clamp
-+ 3, // llvm.nvvm.sust.b.3d.i64.trap
-+ 3, // llvm.nvvm.sust.b.3d.i64.zero
-+ 3, // llvm.nvvm.sust.b.3d.i8.clamp
-+ 3, // llvm.nvvm.sust.b.3d.i8.trap
-+ 3, // llvm.nvvm.sust.b.3d.i8.zero
-+ 3, // llvm.nvvm.sust.b.3d.v2i16.clamp
-+ 3, // llvm.nvvm.sust.b.3d.v2i16.trap
-+ 3, // llvm.nvvm.sust.b.3d.v2i16.zero
-+ 3, // llvm.nvvm.sust.b.3d.v2i32.clamp
-+ 3, // llvm.nvvm.sust.b.3d.v2i32.trap
-+ 3, // llvm.nvvm.sust.b.3d.v2i32.zero
-+ 3, // llvm.nvvm.sust.b.3d.v2i64.clamp
-+ 3, // llvm.nvvm.sust.b.3d.v2i64.trap
-+ 3, // llvm.nvvm.sust.b.3d.v2i64.zero
-+ 3, // llvm.nvvm.sust.b.3d.v2i8.clamp
-+ 3, // llvm.nvvm.sust.b.3d.v2i8.trap
-+ 3, // llvm.nvvm.sust.b.3d.v2i8.zero
-+ 3, // llvm.nvvm.sust.b.3d.v4i16.clamp
-+ 3, // llvm.nvvm.sust.b.3d.v4i16.trap
-+ 3, // llvm.nvvm.sust.b.3d.v4i16.zero
-+ 3, // llvm.nvvm.sust.b.3d.v4i32.clamp
-+ 3, // llvm.nvvm.sust.b.3d.v4i32.trap
-+ 3, // llvm.nvvm.sust.b.3d.v4i32.zero
-+ 3, // llvm.nvvm.sust.b.3d.v4i8.clamp
-+ 3, // llvm.nvvm.sust.b.3d.v4i8.trap
-+ 3, // llvm.nvvm.sust.b.3d.v4i8.zero
-+ 3, // llvm.nvvm.sust.p.1d.array.i16.trap
-+ 3, // llvm.nvvm.sust.p.1d.array.i32.trap
-+ 3, // llvm.nvvm.sust.p.1d.array.i8.trap
-+ 3, // llvm.nvvm.sust.p.1d.array.v2i16.trap
-+ 3, // llvm.nvvm.sust.p.1d.array.v2i32.trap
-+ 3, // llvm.nvvm.sust.p.1d.array.v2i8.trap
-+ 3, // llvm.nvvm.sust.p.1d.array.v4i16.trap
-+ 3, // llvm.nvvm.sust.p.1d.array.v4i32.trap
-+ 3, // llvm.nvvm.sust.p.1d.array.v4i8.trap
-+ 3, // llvm.nvvm.sust.p.1d.i16.trap
-+ 3, // llvm.nvvm.sust.p.1d.i32.trap
-+ 3, // llvm.nvvm.sust.p.1d.i8.trap
-+ 3, // llvm.nvvm.sust.p.1d.v2i16.trap
-+ 3, // llvm.nvvm.sust.p.1d.v2i32.trap
-+ 3, // llvm.nvvm.sust.p.1d.v2i8.trap
-+ 3, // llvm.nvvm.sust.p.1d.v4i16.trap
-+ 3, // llvm.nvvm.sust.p.1d.v4i32.trap
-+ 3, // llvm.nvvm.sust.p.1d.v4i8.trap
-+ 3, // llvm.nvvm.sust.p.2d.array.i16.trap
-+ 3, // llvm.nvvm.sust.p.2d.array.i32.trap
-+ 3, // llvm.nvvm.sust.p.2d.array.i8.trap
-+ 3, // llvm.nvvm.sust.p.2d.array.v2i16.trap
-+ 3, // llvm.nvvm.sust.p.2d.array.v2i32.trap
-+ 3, // llvm.nvvm.sust.p.2d.array.v2i8.trap
-+ 3, // llvm.nvvm.sust.p.2d.array.v4i16.trap
-+ 3, // llvm.nvvm.sust.p.2d.array.v4i32.trap
-+ 3, // llvm.nvvm.sust.p.2d.array.v4i8.trap
-+ 3, // llvm.nvvm.sust.p.2d.i16.trap
-+ 3, // llvm.nvvm.sust.p.2d.i32.trap
-+ 3, // llvm.nvvm.sust.p.2d.i8.trap
-+ 3, // llvm.nvvm.sust.p.2d.v2i16.trap
-+ 3, // llvm.nvvm.sust.p.2d.v2i32.trap
-+ 3, // llvm.nvvm.sust.p.2d.v2i8.trap
-+ 3, // llvm.nvvm.sust.p.2d.v4i16.trap
-+ 3, // llvm.nvvm.sust.p.2d.v4i32.trap
-+ 3, // llvm.nvvm.sust.p.2d.v4i8.trap
-+ 3, // llvm.nvvm.sust.p.3d.i16.trap
-+ 3, // llvm.nvvm.sust.p.3d.i32.trap
-+ 3, // llvm.nvvm.sust.p.3d.i8.trap
-+ 3, // llvm.nvvm.sust.p.3d.v2i16.trap
-+ 3, // llvm.nvvm.sust.p.3d.v2i32.trap
-+ 3, // llvm.nvvm.sust.p.3d.v2i8.trap
-+ 3, // llvm.nvvm.sust.p.3d.v4i16.trap
-+ 3, // llvm.nvvm.sust.p.3d.v4i32.trap
-+ 3, // llvm.nvvm.sust.p.3d.v4i8.trap
-+ 1, // llvm.nvvm.swap.lo.hi.b64
-+ 3, // llvm.nvvm.tex.1d.array.grad.v4f32.f32
-+ 3, // llvm.nvvm.tex.1d.array.grad.v4s32.f32
-+ 3, // llvm.nvvm.tex.1d.array.grad.v4u32.f32
-+ 3, // llvm.nvvm.tex.1d.array.level.v4f32.f32
-+ 3, // llvm.nvvm.tex.1d.array.level.v4s32.f32
-+ 3, // llvm.nvvm.tex.1d.array.level.v4u32.f32
-+ 3, // llvm.nvvm.tex.1d.array.v4f32.f32
-+ 3, // llvm.nvvm.tex.1d.array.v4f32.s32
-+ 3, // llvm.nvvm.tex.1d.array.v4s32.f32
-+ 3, // llvm.nvvm.tex.1d.array.v4s32.s32
-+ 3, // llvm.nvvm.tex.1d.array.v4u32.f32
-+ 3, // llvm.nvvm.tex.1d.array.v4u32.s32
-+ 3, // llvm.nvvm.tex.1d.grad.v4f32.f32
-+ 3, // llvm.nvvm.tex.1d.grad.v4s32.f32
-+ 3, // llvm.nvvm.tex.1d.grad.v4u32.f32
-+ 3, // llvm.nvvm.tex.1d.level.v4f32.f32
-+ 3, // llvm.nvvm.tex.1d.level.v4s32.f32
-+ 3, // llvm.nvvm.tex.1d.level.v4u32.f32
-+ 3, // llvm.nvvm.tex.1d.v4f32.f32
-+ 3, // llvm.nvvm.tex.1d.v4f32.s32
-+ 3, // llvm.nvvm.tex.1d.v4s32.f32
-+ 3, // llvm.nvvm.tex.1d.v4s32.s32
-+ 3, // llvm.nvvm.tex.1d.v4u32.f32
-+ 3, // llvm.nvvm.tex.1d.v4u32.s32
-+ 3, // llvm.nvvm.tex.2d.array.grad.v4f32.f32
-+ 3, // llvm.nvvm.tex.2d.array.grad.v4s32.f32
-+ 3, // llvm.nvvm.tex.2d.array.grad.v4u32.f32
-+ 3, // llvm.nvvm.tex.2d.array.level.v4f32.f32
-+ 3, // llvm.nvvm.tex.2d.array.level.v4s32.f32
-+ 3, // llvm.nvvm.tex.2d.array.level.v4u32.f32
-+ 3, // llvm.nvvm.tex.2d.array.v4f32.f32
-+ 3, // llvm.nvvm.tex.2d.array.v4f32.s32
-+ 3, // llvm.nvvm.tex.2d.array.v4s32.f32
-+ 3, // llvm.nvvm.tex.2d.array.v4s32.s32
-+ 3, // llvm.nvvm.tex.2d.array.v4u32.f32
-+ 3, // llvm.nvvm.tex.2d.array.v4u32.s32
-+ 3, // llvm.nvvm.tex.2d.grad.v4f32.f32
-+ 3, // llvm.nvvm.tex.2d.grad.v4s32.f32
-+ 3, // llvm.nvvm.tex.2d.grad.v4u32.f32
-+ 3, // llvm.nvvm.tex.2d.level.v4f32.f32
-+ 3, // llvm.nvvm.tex.2d.level.v4s32.f32
-+ 3, // llvm.nvvm.tex.2d.level.v4u32.f32
-+ 3, // llvm.nvvm.tex.2d.v4f32.f32
-+ 3, // llvm.nvvm.tex.2d.v4f32.s32
-+ 3, // llvm.nvvm.tex.2d.v4s32.f32
-+ 3, // llvm.nvvm.tex.2d.v4s32.s32
-+ 3, // llvm.nvvm.tex.2d.v4u32.f32
-+ 3, // llvm.nvvm.tex.2d.v4u32.s32
-+ 3, // llvm.nvvm.tex.3d.grad.v4f32.f32
-+ 3, // llvm.nvvm.tex.3d.grad.v4s32.f32
-+ 3, // llvm.nvvm.tex.3d.grad.v4u32.f32
-+ 3, // llvm.nvvm.tex.3d.level.v4f32.f32
-+ 3, // llvm.nvvm.tex.3d.level.v4s32.f32
-+ 3, // llvm.nvvm.tex.3d.level.v4u32.f32
-+ 3, // llvm.nvvm.tex.3d.v4f32.f32
-+ 3, // llvm.nvvm.tex.3d.v4f32.s32
-+ 3, // llvm.nvvm.tex.3d.v4s32.f32
-+ 3, // llvm.nvvm.tex.3d.v4s32.s32
-+ 3, // llvm.nvvm.tex.3d.v4u32.f32
-+ 3, // llvm.nvvm.tex.3d.v4u32.s32
-+ 3, // llvm.nvvm.tex.cube.array.level.v4f32.f32
-+ 3, // llvm.nvvm.tex.cube.array.level.v4s32.f32
-+ 3, // llvm.nvvm.tex.cube.array.level.v4u32.f32
-+ 3, // llvm.nvvm.tex.cube.array.v4f32.f32
-+ 3, // llvm.nvvm.tex.cube.array.v4s32.f32
-+ 3, // llvm.nvvm.tex.cube.array.v4u32.f32
-+ 3, // llvm.nvvm.tex.cube.level.v4f32.f32
-+ 3, // llvm.nvvm.tex.cube.level.v4s32.f32
-+ 3, // llvm.nvvm.tex.cube.level.v4u32.f32
-+ 3, // llvm.nvvm.tex.cube.v4f32.f32
-+ 3, // llvm.nvvm.tex.cube.v4s32.f32
-+ 3, // llvm.nvvm.tex.cube.v4u32.f32
-+ 3, // llvm.nvvm.tex.unified.1d.array.grad.v4f32.f32
-+ 3, // llvm.nvvm.tex.unified.1d.array.grad.v4s32.f32
-+ 3, // llvm.nvvm.tex.unified.1d.array.grad.v4u32.f32
-+ 3, // llvm.nvvm.tex.unified.1d.array.level.v4f32.f32
-+ 3, // llvm.nvvm.tex.unified.1d.array.level.v4s32.f32
-+ 3, // llvm.nvvm.tex.unified.1d.array.level.v4u32.f32
-+ 3, // llvm.nvvm.tex.unified.1d.array.v4f32.f32
-+ 3, // llvm.nvvm.tex.unified.1d.array.v4f32.s32
-+ 3, // llvm.nvvm.tex.unified.1d.array.v4s32.f32
-+ 3, // llvm.nvvm.tex.unified.1d.array.v4s32.s32
-+ 3, // llvm.nvvm.tex.unified.1d.array.v4u32.f32
-+ 3, // llvm.nvvm.tex.unified.1d.array.v4u32.s32
-+ 3, // llvm.nvvm.tex.unified.1d.grad.v4f32.f32
-+ 3, // llvm.nvvm.tex.unified.1d.grad.v4s32.f32
-+ 3, // llvm.nvvm.tex.unified.1d.grad.v4u32.f32
-+ 3, // llvm.nvvm.tex.unified.1d.level.v4f32.f32
-+ 3, // llvm.nvvm.tex.unified.1d.level.v4s32.f32
-+ 3, // llvm.nvvm.tex.unified.1d.level.v4u32.f32
-+ 3, // llvm.nvvm.tex.unified.1d.v4f32.f32
-+ 3, // llvm.nvvm.tex.unified.1d.v4f32.s32
-+ 3, // llvm.nvvm.tex.unified.1d.v4s32.f32
-+ 3, // llvm.nvvm.tex.unified.1d.v4s32.s32
-+ 3, // llvm.nvvm.tex.unified.1d.v4u32.f32
-+ 3, // llvm.nvvm.tex.unified.1d.v4u32.s32
-+ 3, // llvm.nvvm.tex.unified.2d.array.grad.v4f32.f32
-+ 3, // llvm.nvvm.tex.unified.2d.array.grad.v4s32.f32
-+ 3, // llvm.nvvm.tex.unified.2d.array.grad.v4u32.f32
-+ 3, // llvm.nvvm.tex.unified.2d.array.level.v4f32.f32
-+ 3, // llvm.nvvm.tex.unified.2d.array.level.v4s32.f32
-+ 3, // llvm.nvvm.tex.unified.2d.array.level.v4u32.f32
-+ 3, // llvm.nvvm.tex.unified.2d.array.v4f32.f32
-+ 3, // llvm.nvvm.tex.unified.2d.array.v4f32.s32
-+ 3, // llvm.nvvm.tex.unified.2d.array.v4s32.f32
-+ 3, // llvm.nvvm.tex.unified.2d.array.v4s32.s32
-+ 3, // llvm.nvvm.tex.unified.2d.array.v4u32.f32
-+ 3, // llvm.nvvm.tex.unified.2d.array.v4u32.s32
-+ 3, // llvm.nvvm.tex.unified.2d.grad.v4f32.f32
-+ 3, // llvm.nvvm.tex.unified.2d.grad.v4s32.f32
-+ 3, // llvm.nvvm.tex.unified.2d.grad.v4u32.f32
-+ 3, // llvm.nvvm.tex.unified.2d.level.v4f32.f32
-+ 3, // llvm.nvvm.tex.unified.2d.level.v4s32.f32
-+ 3, // llvm.nvvm.tex.unified.2d.level.v4u32.f32
-+ 3, // llvm.nvvm.tex.unified.2d.v4f32.f32
-+ 3, // llvm.nvvm.tex.unified.2d.v4f32.s32
-+ 3, // llvm.nvvm.tex.unified.2d.v4s32.f32
-+ 3, // llvm.nvvm.tex.unified.2d.v4s32.s32
-+ 3, // llvm.nvvm.tex.unified.2d.v4u32.f32
-+ 3, // llvm.nvvm.tex.unified.2d.v4u32.s32
-+ 3, // llvm.nvvm.tex.unified.3d.grad.v4f32.f32
-+ 3, // llvm.nvvm.tex.unified.3d.grad.v4s32.f32
-+ 3, // llvm.nvvm.tex.unified.3d.grad.v4u32.f32
-+ 3, // llvm.nvvm.tex.unified.3d.level.v4f32.f32
-+ 3, // llvm.nvvm.tex.unified.3d.level.v4s32.f32
-+ 3, // llvm.nvvm.tex.unified.3d.level.v4u32.f32
-+ 3, // llvm.nvvm.tex.unified.3d.v4f32.f32
-+ 3, // llvm.nvvm.tex.unified.3d.v4f32.s32
-+ 3, // llvm.nvvm.tex.unified.3d.v4s32.f32
-+ 3, // llvm.nvvm.tex.unified.3d.v4s32.s32
-+ 3, // llvm.nvvm.tex.unified.3d.v4u32.f32
-+ 3, // llvm.nvvm.tex.unified.3d.v4u32.s32
-+ 3, // llvm.nvvm.tex.unified.cube.array.level.v4f32.f32
-+ 3, // llvm.nvvm.tex.unified.cube.array.level.v4s32.f32
-+ 3, // llvm.nvvm.tex.unified.cube.array.level.v4u32.f32
-+ 3, // llvm.nvvm.tex.unified.cube.array.v4f32.f32
-+ 3, // llvm.nvvm.tex.unified.cube.array.v4s32.f32
-+ 3, // llvm.nvvm.tex.unified.cube.array.v4u32.f32
-+ 3, // llvm.nvvm.tex.unified.cube.level.v4f32.f32
-+ 3, // llvm.nvvm.tex.unified.cube.level.v4s32.f32
-+ 3, // llvm.nvvm.tex.unified.cube.level.v4u32.f32
-+ 3, // llvm.nvvm.tex.unified.cube.v4f32.f32
-+ 3, // llvm.nvvm.tex.unified.cube.v4s32.f32
-+ 3, // llvm.nvvm.tex.unified.cube.v4u32.f32
-+ 1, // llvm.nvvm.texsurf.handle
-+ 1, // llvm.nvvm.texsurf.handle.internal
-+ 3, // llvm.nvvm.tld4.a.2d.v4f32.f32
-+ 3, // llvm.nvvm.tld4.a.2d.v4s32.f32
-+ 3, // llvm.nvvm.tld4.a.2d.v4u32.f32
-+ 3, // llvm.nvvm.tld4.b.2d.v4f32.f32
-+ 3, // llvm.nvvm.tld4.b.2d.v4s32.f32
-+ 3, // llvm.nvvm.tld4.b.2d.v4u32.f32
-+ 3, // llvm.nvvm.tld4.g.2d.v4f32.f32
-+ 3, // llvm.nvvm.tld4.g.2d.v4s32.f32
-+ 3, // llvm.nvvm.tld4.g.2d.v4u32.f32
-+ 3, // llvm.nvvm.tld4.r.2d.v4f32.f32
-+ 3, // llvm.nvvm.tld4.r.2d.v4s32.f32
-+ 3, // llvm.nvvm.tld4.r.2d.v4u32.f32
-+ 3, // llvm.nvvm.tld4.unified.a.2d.v4f32.f32
-+ 3, // llvm.nvvm.tld4.unified.a.2d.v4s32.f32
-+ 3, // llvm.nvvm.tld4.unified.a.2d.v4u32.f32
-+ 3, // llvm.nvvm.tld4.unified.b.2d.v4f32.f32
-+ 3, // llvm.nvvm.tld4.unified.b.2d.v4s32.f32
-+ 3, // llvm.nvvm.tld4.unified.b.2d.v4u32.f32
-+ 3, // llvm.nvvm.tld4.unified.g.2d.v4f32.f32
-+ 3, // llvm.nvvm.tld4.unified.g.2d.v4s32.f32
-+ 3, // llvm.nvvm.tld4.unified.g.2d.v4u32.f32
-+ 3, // llvm.nvvm.tld4.unified.r.2d.v4f32.f32
-+ 3, // llvm.nvvm.tld4.unified.r.2d.v4s32.f32
-+ 3, // llvm.nvvm.tld4.unified.r.2d.v4u32.f32
-+ 1, // llvm.nvvm.trunc.d
-+ 1, // llvm.nvvm.trunc.f
-+ 1, // llvm.nvvm.trunc.ftz.f
-+ 1, // llvm.nvvm.txq.array.size
-+ 1, // llvm.nvvm.txq.channel.data.type
-+ 1, // llvm.nvvm.txq.channel.order
-+ 1, // llvm.nvvm.txq.depth
-+ 1, // llvm.nvvm.txq.height
-+ 1, // llvm.nvvm.txq.num.mipmap.levels
-+ 1, // llvm.nvvm.txq.num.samples
-+ 1, // llvm.nvvm.txq.width
-+ 1, // llvm.nvvm.ui2d.rm
-+ 1, // llvm.nvvm.ui2d.rn
-+ 1, // llvm.nvvm.ui2d.rp
-+ 1, // llvm.nvvm.ui2d.rz
-+ 1, // llvm.nvvm.ui2f.rm
-+ 1, // llvm.nvvm.ui2f.rn
-+ 1, // llvm.nvvm.ui2f.rp
-+ 1, // llvm.nvvm.ui2f.rz
-+ 1, // llvm.nvvm.ull2d.rm
-+ 1, // llvm.nvvm.ull2d.rn
-+ 1, // llvm.nvvm.ull2d.rp
-+ 1, // llvm.nvvm.ull2d.rz
-+ 1, // llvm.nvvm.ull2f.rm
-+ 1, // llvm.nvvm.ull2f.rn
-+ 1, // llvm.nvvm.ull2f.rp
-+ 1, // llvm.nvvm.ull2f.rz
-+ 1, // llvm.ppc.altivec.crypto.vcipher
-+ 1, // llvm.ppc.altivec.crypto.vcipherlast
-+ 1, // llvm.ppc.altivec.crypto.vncipher
-+ 1, // llvm.ppc.altivec.crypto.vncipherlast
-+ 1, // llvm.ppc.altivec.crypto.vpermxor
-+ 1, // llvm.ppc.altivec.crypto.vpmsumb
-+ 1, // llvm.ppc.altivec.crypto.vpmsumd
-+ 1, // llvm.ppc.altivec.crypto.vpmsumh
-+ 1, // llvm.ppc.altivec.crypto.vpmsumw
-+ 1, // llvm.ppc.altivec.crypto.vsbox
-+ 1, // llvm.ppc.altivec.crypto.vshasigmad
-+ 1, // llvm.ppc.altivec.crypto.vshasigmaw
-+ 3, // llvm.ppc.altivec.dss
-+ 3, // llvm.ppc.altivec.dssall
-+ 3, // llvm.ppc.altivec.dst
-+ 3, // llvm.ppc.altivec.dstst
-+ 3, // llvm.ppc.altivec.dststt
-+ 3, // llvm.ppc.altivec.dstt
-+ 2, // llvm.ppc.altivec.lvebx
-+ 2, // llvm.ppc.altivec.lvehx
-+ 2, // llvm.ppc.altivec.lvewx
-+ 1, // llvm.ppc.altivec.lvsl
-+ 1, // llvm.ppc.altivec.lvsr
-+ 2, // llvm.ppc.altivec.lvx
-+ 2, // llvm.ppc.altivec.lvxl
-+ 13, // llvm.ppc.altivec.mfvscr
-+ 3, // llvm.ppc.altivec.mtvscr
-+ 18, // llvm.ppc.altivec.stvebx
-+ 18, // llvm.ppc.altivec.stvehx
-+ 18, // llvm.ppc.altivec.stvewx
-+ 18, // llvm.ppc.altivec.stvx
-+ 18, // llvm.ppc.altivec.stvxl
-+ 1, // llvm.ppc.altivec.vabsdub
-+ 1, // llvm.ppc.altivec.vabsduh
-+ 1, // llvm.ppc.altivec.vabsduw
-+ 1, // llvm.ppc.altivec.vaddcuq
-+ 1, // llvm.ppc.altivec.vaddcuw
-+ 1, // llvm.ppc.altivec.vaddecuq
-+ 1, // llvm.ppc.altivec.vaddeuqm
-+ 1, // llvm.ppc.altivec.vaddsbs
-+ 1, // llvm.ppc.altivec.vaddshs
-+ 1, // llvm.ppc.altivec.vaddsws
-+ 1, // llvm.ppc.altivec.vaddubs
-+ 1, // llvm.ppc.altivec.vadduhs
-+ 1, // llvm.ppc.altivec.vadduws
-+ 1, // llvm.ppc.altivec.vavgsb
-+ 1, // llvm.ppc.altivec.vavgsh
-+ 1, // llvm.ppc.altivec.vavgsw
-+ 1, // llvm.ppc.altivec.vavgub
-+ 1, // llvm.ppc.altivec.vavguh
-+ 1, // llvm.ppc.altivec.vavguw
-+ 1, // llvm.ppc.altivec.vbpermq
-+ 1, // llvm.ppc.altivec.vcfsx
-+ 1, // llvm.ppc.altivec.vcfux
-+ 1, // llvm.ppc.altivec.vclzlsbb
-+ 1, // llvm.ppc.altivec.vcmpbfp
-+ 1, // llvm.ppc.altivec.vcmpbfp.p
-+ 1, // llvm.ppc.altivec.vcmpeqfp
-+ 1, // llvm.ppc.altivec.vcmpeqfp.p
-+ 1, // llvm.ppc.altivec.vcmpequb
-+ 1, // llvm.ppc.altivec.vcmpequb.p
-+ 1, // llvm.ppc.altivec.vcmpequd
-+ 1, // llvm.ppc.altivec.vcmpequd.p
-+ 1, // llvm.ppc.altivec.vcmpequh
-+ 1, // llvm.ppc.altivec.vcmpequh.p
-+ 1, // llvm.ppc.altivec.vcmpequw
-+ 1, // llvm.ppc.altivec.vcmpequw.p
-+ 1, // llvm.ppc.altivec.vcmpgefp
-+ 1, // llvm.ppc.altivec.vcmpgefp.p
-+ 1, // llvm.ppc.altivec.vcmpgtfp
-+ 1, // llvm.ppc.altivec.vcmpgtfp.p
-+ 1, // llvm.ppc.altivec.vcmpgtsb
-+ 1, // llvm.ppc.altivec.vcmpgtsb.p
-+ 1, // llvm.ppc.altivec.vcmpgtsd
-+ 1, // llvm.ppc.altivec.vcmpgtsd.p
-+ 1, // llvm.ppc.altivec.vcmpgtsh
-+ 1, // llvm.ppc.altivec.vcmpgtsh.p
-+ 1, // llvm.ppc.altivec.vcmpgtsw
-+ 1, // llvm.ppc.altivec.vcmpgtsw.p
-+ 1, // llvm.ppc.altivec.vcmpgtub
-+ 1, // llvm.ppc.altivec.vcmpgtub.p
-+ 1, // llvm.ppc.altivec.vcmpgtud
-+ 1, // llvm.ppc.altivec.vcmpgtud.p
-+ 1, // llvm.ppc.altivec.vcmpgtuh
-+ 1, // llvm.ppc.altivec.vcmpgtuh.p
-+ 1, // llvm.ppc.altivec.vcmpgtuw
-+ 1, // llvm.ppc.altivec.vcmpgtuw.p
-+ 1, // llvm.ppc.altivec.vcmpneb
-+ 1, // llvm.ppc.altivec.vcmpneb.p
-+ 1, // llvm.ppc.altivec.vcmpneh
-+ 1, // llvm.ppc.altivec.vcmpneh.p
-+ 1, // llvm.ppc.altivec.vcmpnew
-+ 1, // llvm.ppc.altivec.vcmpnew.p
-+ 1, // llvm.ppc.altivec.vcmpnezb
-+ 1, // llvm.ppc.altivec.vcmpnezb.p
-+ 1, // llvm.ppc.altivec.vcmpnezh
-+ 1, // llvm.ppc.altivec.vcmpnezh.p
-+ 1, // llvm.ppc.altivec.vcmpnezw
-+ 1, // llvm.ppc.altivec.vcmpnezw.p
-+ 1, // llvm.ppc.altivec.vctsxs
-+ 1, // llvm.ppc.altivec.vctuxs
-+ 1, // llvm.ppc.altivec.vctzlsbb
-+ 1, // llvm.ppc.altivec.vexptefp
-+ 1, // llvm.ppc.altivec.vgbbd
-+ 1, // llvm.ppc.altivec.vlogefp
-+ 1, // llvm.ppc.altivec.vmaddfp
-+ 1, // llvm.ppc.altivec.vmaxfp
-+ 1, // llvm.ppc.altivec.vmaxsb
-+ 1, // llvm.ppc.altivec.vmaxsd
-+ 1, // llvm.ppc.altivec.vmaxsh
-+ 1, // llvm.ppc.altivec.vmaxsw
-+ 1, // llvm.ppc.altivec.vmaxub
-+ 1, // llvm.ppc.altivec.vmaxud
-+ 1, // llvm.ppc.altivec.vmaxuh
-+ 1, // llvm.ppc.altivec.vmaxuw
-+ 1, // llvm.ppc.altivec.vmhaddshs
-+ 1, // llvm.ppc.altivec.vmhraddshs
-+ 1, // llvm.ppc.altivec.vminfp
-+ 1, // llvm.ppc.altivec.vminsb
-+ 1, // llvm.ppc.altivec.vminsd
-+ 1, // llvm.ppc.altivec.vminsh
-+ 1, // llvm.ppc.altivec.vminsw
-+ 1, // llvm.ppc.altivec.vminub
-+ 1, // llvm.ppc.altivec.vminud
-+ 1, // llvm.ppc.altivec.vminuh
-+ 1, // llvm.ppc.altivec.vminuw
-+ 1, // llvm.ppc.altivec.vmladduhm
-+ 1, // llvm.ppc.altivec.vmsummbm
-+ 1, // llvm.ppc.altivec.vmsumshm
-+ 1, // llvm.ppc.altivec.vmsumshs
-+ 1, // llvm.ppc.altivec.vmsumubm
-+ 1, // llvm.ppc.altivec.vmsumuhm
-+ 1, // llvm.ppc.altivec.vmsumuhs
-+ 1, // llvm.ppc.altivec.vmulesb
-+ 1, // llvm.ppc.altivec.vmulesh
-+ 1, // llvm.ppc.altivec.vmulesw
-+ 1, // llvm.ppc.altivec.vmuleub
-+ 1, // llvm.ppc.altivec.vmuleuh
-+ 1, // llvm.ppc.altivec.vmuleuw
-+ 1, // llvm.ppc.altivec.vmulosb
-+ 1, // llvm.ppc.altivec.vmulosh
-+ 1, // llvm.ppc.altivec.vmulosw
-+ 1, // llvm.ppc.altivec.vmuloub
-+ 1, // llvm.ppc.altivec.vmulouh
-+ 1, // llvm.ppc.altivec.vmulouw
-+ 1, // llvm.ppc.altivec.vnmsubfp
-+ 1, // llvm.ppc.altivec.vperm
-+ 1, // llvm.ppc.altivec.vpkpx
-+ 1, // llvm.ppc.altivec.vpksdss
-+ 1, // llvm.ppc.altivec.vpksdus
-+ 1, // llvm.ppc.altivec.vpkshss
-+ 1, // llvm.ppc.altivec.vpkshus
-+ 1, // llvm.ppc.altivec.vpkswss
-+ 1, // llvm.ppc.altivec.vpkswus
-+ 1, // llvm.ppc.altivec.vpkudus
-+ 1, // llvm.ppc.altivec.vpkuhus
-+ 1, // llvm.ppc.altivec.vpkuwus
-+ 1, // llvm.ppc.altivec.vprtybd
-+ 1, // llvm.ppc.altivec.vprtybq
-+ 1, // llvm.ppc.altivec.vprtybw
-+ 1, // llvm.ppc.altivec.vrefp
-+ 1, // llvm.ppc.altivec.vrfim
-+ 1, // llvm.ppc.altivec.vrfin
-+ 1, // llvm.ppc.altivec.vrfip
-+ 1, // llvm.ppc.altivec.vrfiz
-+ 1, // llvm.ppc.altivec.vrlb
-+ 1, // llvm.ppc.altivec.vrld
-+ 1, // llvm.ppc.altivec.vrldmi
-+ 1, // llvm.ppc.altivec.vrldnm
-+ 1, // llvm.ppc.altivec.vrlh
-+ 1, // llvm.ppc.altivec.vrlw
-+ 1, // llvm.ppc.altivec.vrlwmi
-+ 1, // llvm.ppc.altivec.vrlwnm
-+ 1, // llvm.ppc.altivec.vrsqrtefp
-+ 1, // llvm.ppc.altivec.vsel
-+ 1, // llvm.ppc.altivec.vsl
-+ 1, // llvm.ppc.altivec.vslb
-+ 1, // llvm.ppc.altivec.vslh
-+ 1, // llvm.ppc.altivec.vslo
-+ 1, // llvm.ppc.altivec.vslv
-+ 1, // llvm.ppc.altivec.vslw
-+ 1, // llvm.ppc.altivec.vsr
-+ 1, // llvm.ppc.altivec.vsrab
-+ 1, // llvm.ppc.altivec.vsrah
-+ 1, // llvm.ppc.altivec.vsraw
-+ 1, // llvm.ppc.altivec.vsrb
-+ 1, // llvm.ppc.altivec.vsrh
-+ 1, // llvm.ppc.altivec.vsro
-+ 1, // llvm.ppc.altivec.vsrv
-+ 1, // llvm.ppc.altivec.vsrw
-+ 1, // llvm.ppc.altivec.vsubcuq
-+ 1, // llvm.ppc.altivec.vsubcuw
-+ 1, // llvm.ppc.altivec.vsubecuq
-+ 1, // llvm.ppc.altivec.vsubeuqm
-+ 1, // llvm.ppc.altivec.vsubsbs
-+ 1, // llvm.ppc.altivec.vsubshs
-+ 1, // llvm.ppc.altivec.vsubsws
-+ 1, // llvm.ppc.altivec.vsububs
-+ 1, // llvm.ppc.altivec.vsubuhs
-+ 1, // llvm.ppc.altivec.vsubuws
-+ 1, // llvm.ppc.altivec.vsum2sws
-+ 1, // llvm.ppc.altivec.vsum4sbs
-+ 1, // llvm.ppc.altivec.vsum4shs
-+ 1, // llvm.ppc.altivec.vsum4ubs
-+ 1, // llvm.ppc.altivec.vsumsws
-+ 1, // llvm.ppc.altivec.vupkhpx
-+ 1, // llvm.ppc.altivec.vupkhsb
-+ 1, // llvm.ppc.altivec.vupkhsh
-+ 1, // llvm.ppc.altivec.vupkhsw
-+ 1, // llvm.ppc.altivec.vupklpx
-+ 1, // llvm.ppc.altivec.vupklsb
-+ 1, // llvm.ppc.altivec.vupklsh
-+ 1, // llvm.ppc.altivec.vupklsw
-+ 1, // llvm.ppc.bpermd
-+ 3, // llvm.ppc.dcba
-+ 3, // llvm.ppc.dcbf
-+ 3, // llvm.ppc.dcbi
-+ 3, // llvm.ppc.dcbst
-+ 15, // llvm.ppc.dcbt
-+ 15, // llvm.ppc.dcbtst
-+ 3, // llvm.ppc.dcbz
-+ 3, // llvm.ppc.dcbzl
-+ 1, // llvm.ppc.divde
-+ 1, // llvm.ppc.divdeu
-+ 1, // llvm.ppc.divwe
-+ 1, // llvm.ppc.divweu
-+ 3, // llvm.ppc.get.texasr
-+ 3, // llvm.ppc.get.texasru
-+ 3, // llvm.ppc.get.tfhar
-+ 3, // llvm.ppc.get.tfiar
-+ 3, // llvm.ppc.is.decremented.ctr.nonzero
-+ 3, // llvm.ppc.lwsync
-+ 3, // llvm.ppc.mtctr
-+ 1, // llvm.ppc.qpx.qvfabs
-+ 1, // llvm.ppc.qpx.qvfadd
-+ 1, // llvm.ppc.qpx.qvfadds
-+ 1, // llvm.ppc.qpx.qvfcfid
-+ 1, // llvm.ppc.qpx.qvfcfids
-+ 1, // llvm.ppc.qpx.qvfcfidu
-+ 1, // llvm.ppc.qpx.qvfcfidus
-+ 1, // llvm.ppc.qpx.qvfcmpeq
-+ 1, // llvm.ppc.qpx.qvfcmpgt
-+ 1, // llvm.ppc.qpx.qvfcmplt
-+ 1, // llvm.ppc.qpx.qvfcpsgn
-+ 1, // llvm.ppc.qpx.qvfctid
-+ 1, // llvm.ppc.qpx.qvfctidu
-+ 1, // llvm.ppc.qpx.qvfctiduz
-+ 1, // llvm.ppc.qpx.qvfctidz
-+ 1, // llvm.ppc.qpx.qvfctiw
-+ 1, // llvm.ppc.qpx.qvfctiwu
-+ 1, // llvm.ppc.qpx.qvfctiwuz
-+ 1, // llvm.ppc.qpx.qvfctiwz
-+ 1, // llvm.ppc.qpx.qvflogical
-+ 1, // llvm.ppc.qpx.qvfmadd
-+ 1, // llvm.ppc.qpx.qvfmadds
-+ 1, // llvm.ppc.qpx.qvfmsub
-+ 1, // llvm.ppc.qpx.qvfmsubs
-+ 1, // llvm.ppc.qpx.qvfmul
-+ 1, // llvm.ppc.qpx.qvfmuls
-+ 1, // llvm.ppc.qpx.qvfnabs
-+ 1, // llvm.ppc.qpx.qvfneg
-+ 1, // llvm.ppc.qpx.qvfnmadd
-+ 1, // llvm.ppc.qpx.qvfnmadds
-+ 1, // llvm.ppc.qpx.qvfnmsub
-+ 1, // llvm.ppc.qpx.qvfnmsubs
-+ 1, // llvm.ppc.qpx.qvfperm
-+ 1, // llvm.ppc.qpx.qvfre
-+ 1, // llvm.ppc.qpx.qvfres
-+ 1, // llvm.ppc.qpx.qvfrim
-+ 1, // llvm.ppc.qpx.qvfrin
-+ 1, // llvm.ppc.qpx.qvfrip
-+ 1, // llvm.ppc.qpx.qvfriz
-+ 1, // llvm.ppc.qpx.qvfrsp
-+ 1, // llvm.ppc.qpx.qvfrsqrte
-+ 1, // llvm.ppc.qpx.qvfrsqrtes
-+ 1, // llvm.ppc.qpx.qvfsel
-+ 1, // llvm.ppc.qpx.qvfsub
-+ 1, // llvm.ppc.qpx.qvfsubs
-+ 1, // llvm.ppc.qpx.qvftstnan
-+ 1, // llvm.ppc.qpx.qvfxmadd
-+ 1, // llvm.ppc.qpx.qvfxmadds
-+ 1, // llvm.ppc.qpx.qvfxmul
-+ 1, // llvm.ppc.qpx.qvfxmuls
-+ 1, // llvm.ppc.qpx.qvfxxcpnmadd
-+ 1, // llvm.ppc.qpx.qvfxxcpnmadds
-+ 1, // llvm.ppc.qpx.qvfxxmadd
-+ 1, // llvm.ppc.qpx.qvfxxmadds
-+ 1, // llvm.ppc.qpx.qvfxxnpmadd
-+ 1, // llvm.ppc.qpx.qvfxxnpmadds
-+ 1, // llvm.ppc.qpx.qvgpci
-+ 2, // llvm.ppc.qpx.qvlfcd
-+ 2, // llvm.ppc.qpx.qvlfcda
-+ 2, // llvm.ppc.qpx.qvlfcs
-+ 2, // llvm.ppc.qpx.qvlfcsa
-+ 2, // llvm.ppc.qpx.qvlfd
-+ 2, // llvm.ppc.qpx.qvlfda
-+ 2, // llvm.ppc.qpx.qvlfiwa
-+ 2, // llvm.ppc.qpx.qvlfiwaa
-+ 2, // llvm.ppc.qpx.qvlfiwz
-+ 2, // llvm.ppc.qpx.qvlfiwza
-+ 2, // llvm.ppc.qpx.qvlfs
-+ 2, // llvm.ppc.qpx.qvlfsa
-+ 1, // llvm.ppc.qpx.qvlpcld
-+ 1, // llvm.ppc.qpx.qvlpcls
-+ 1, // llvm.ppc.qpx.qvlpcrd
-+ 1, // llvm.ppc.qpx.qvlpcrs
-+ 18, // llvm.ppc.qpx.qvstfcd
-+ 18, // llvm.ppc.qpx.qvstfcda
-+ 18, // llvm.ppc.qpx.qvstfcs
-+ 18, // llvm.ppc.qpx.qvstfcsa
-+ 18, // llvm.ppc.qpx.qvstfd
-+ 18, // llvm.ppc.qpx.qvstfda
-+ 18, // llvm.ppc.qpx.qvstfiw
-+ 18, // llvm.ppc.qpx.qvstfiwa
-+ 18, // llvm.ppc.qpx.qvstfs
-+ 18, // llvm.ppc.qpx.qvstfsa
-+ 3, // llvm.ppc.set.texasr
-+ 3, // llvm.ppc.set.texasru
-+ 3, // llvm.ppc.set.tfhar
-+ 3, // llvm.ppc.set.tfiar
-+ 3, // llvm.ppc.sync
-+ 3, // llvm.ppc.tabort
-+ 3, // llvm.ppc.tabortdc
-+ 3, // llvm.ppc.tabortdci
-+ 3, // llvm.ppc.tabortwc
-+ 3, // llvm.ppc.tabortwci
-+ 3, // llvm.ppc.tbegin
-+ 3, // llvm.ppc.tcheck
-+ 3, // llvm.ppc.tend
-+ 3, // llvm.ppc.tendall
-+ 3, // llvm.ppc.trechkpt
-+ 3, // llvm.ppc.treclaim
-+ 3, // llvm.ppc.tresume
-+ 3, // llvm.ppc.tsr
-+ 3, // llvm.ppc.tsuspend
-+ 3, // llvm.ppc.ttest
-+ 2, // llvm.ppc.vsx.lxvd2x
-+ 2, // llvm.ppc.vsx.lxvd2x.be
-+ 2, // llvm.ppc.vsx.lxvl
-+ 2, // llvm.ppc.vsx.lxvll
-+ 2, // llvm.ppc.vsx.lxvw4x
-+ 2, // llvm.ppc.vsx.lxvw4x.be
-+ 18, // llvm.ppc.vsx.stxvd2x
-+ 18, // llvm.ppc.vsx.stxvd2x.be
-+ 18, // llvm.ppc.vsx.stxvl
-+ 18, // llvm.ppc.vsx.stxvll
-+ 18, // llvm.ppc.vsx.stxvw4x
-+ 18, // llvm.ppc.vsx.stxvw4x.be
-+ 1, // llvm.ppc.vsx.xsmaxdp
-+ 1, // llvm.ppc.vsx.xsmindp
-+ 1, // llvm.ppc.vsx.xvcmpeqdp
-+ 1, // llvm.ppc.vsx.xvcmpeqdp.p
-+ 1, // llvm.ppc.vsx.xvcmpeqsp
-+ 1, // llvm.ppc.vsx.xvcmpeqsp.p
-+ 1, // llvm.ppc.vsx.xvcmpgedp
-+ 1, // llvm.ppc.vsx.xvcmpgedp.p
-+ 1, // llvm.ppc.vsx.xvcmpgesp
-+ 1, // llvm.ppc.vsx.xvcmpgesp.p
-+ 1, // llvm.ppc.vsx.xvcmpgtdp
-+ 1, // llvm.ppc.vsx.xvcmpgtdp.p
-+ 1, // llvm.ppc.vsx.xvcmpgtsp
-+ 1, // llvm.ppc.vsx.xvcmpgtsp.p
-+ 1, // llvm.ppc.vsx.xvcvdpsp
-+ 1, // llvm.ppc.vsx.xvcvdpsxws
-+ 1, // llvm.ppc.vsx.xvcvdpuxws
-+ 1, // llvm.ppc.vsx.xvcvhpsp
-+ 1, // llvm.ppc.vsx.xvcvspdp
-+ 1, // llvm.ppc.vsx.xvcvsphp
-+ 1, // llvm.ppc.vsx.xvcvsxdsp
-+ 1, // llvm.ppc.vsx.xvcvsxwdp
-+ 1, // llvm.ppc.vsx.xvcvuxdsp
-+ 1, // llvm.ppc.vsx.xvcvuxwdp
-+ 1, // llvm.ppc.vsx.xvdivdp
-+ 1, // llvm.ppc.vsx.xvdivsp
-+ 1, // llvm.ppc.vsx.xviexpdp
-+ 1, // llvm.ppc.vsx.xviexpsp
-+ 1, // llvm.ppc.vsx.xvmaxdp
-+ 1, // llvm.ppc.vsx.xvmaxsp
-+ 1, // llvm.ppc.vsx.xvmindp
-+ 1, // llvm.ppc.vsx.xvminsp
-+ 1, // llvm.ppc.vsx.xvrdpip
-+ 1, // llvm.ppc.vsx.xvredp
-+ 1, // llvm.ppc.vsx.xvresp
-+ 1, // llvm.ppc.vsx.xvrspip
-+ 1, // llvm.ppc.vsx.xvrsqrtedp
-+ 1, // llvm.ppc.vsx.xvrsqrtesp
-+ 1, // llvm.ppc.vsx.xvtstdcdp
-+ 1, // llvm.ppc.vsx.xvtstdcsp
-+ 1, // llvm.ppc.vsx.xvxexpdp
-+ 1, // llvm.ppc.vsx.xvxexpsp
-+ 1, // llvm.ppc.vsx.xvxsigdp
-+ 1, // llvm.ppc.vsx.xvxsigsp
-+ 1, // llvm.ppc.vsx.xxextractuw
-+ 1, // llvm.ppc.vsx.xxinsertw
-+ 1, // llvm.ppc.vsx.xxleqv
-+ 27, // llvm.r600.group.barrier
-+ 1, // llvm.r600.implicitarg.ptr
-+ 3, // llvm.r600.rat.store.typed
-+ 1, // llvm.r600.read.global.size.x
-+ 1, // llvm.r600.read.global.size.y
-+ 1, // llvm.r600.read.global.size.z
-+ 1, // llvm.r600.read.local.size.x
-+ 1, // llvm.r600.read.local.size.y
-+ 1, // llvm.r600.read.local.size.z
-+ 1, // llvm.r600.read.ngroups.x
-+ 1, // llvm.r600.read.ngroups.y
-+ 1, // llvm.r600.read.ngroups.z
-+ 1, // llvm.r600.read.tgid.x
-+ 1, // llvm.r600.read.tgid.y
-+ 1, // llvm.r600.read.tgid.z
-+ 1, // llvm.r600.read.tidig.x
-+ 1, // llvm.r600.read.tidig.y
-+ 1, // llvm.r600.read.tidig.z
-+ 1, // llvm.r600.recipsqrt.clamped
-+ 1, // llvm.r600.recipsqrt.ieee
-+ 3, // llvm.s390.efpc
-+ 1, // llvm.s390.etnd
-+ 1, // llvm.s390.lcbb
-+ 18, // llvm.s390.ntstg
-+ 3, // llvm.s390.ppa.txassist
-+ 3, // llvm.s390.sfpc
-+ 30, // llvm.s390.tabort
-+ 31, // llvm.s390.tbegin
-+ 31, // llvm.s390.tbegin.nofloat
-+ 31, // llvm.s390.tbeginc
-+ 1, // llvm.s390.tdc
-+ 3, // llvm.s390.tend
-+ 1, // llvm.s390.vaccb
-+ 1, // llvm.s390.vacccq
-+ 1, // llvm.s390.vaccf
-+ 1, // llvm.s390.vaccg
-+ 1, // llvm.s390.vacch
-+ 1, // llvm.s390.vaccq
-+ 1, // llvm.s390.vacq
-+ 1, // llvm.s390.vaq
-+ 1, // llvm.s390.vavgb
-+ 1, // llvm.s390.vavgf
-+ 1, // llvm.s390.vavgg
-+ 1, // llvm.s390.vavgh
-+ 1, // llvm.s390.vavglb
-+ 1, // llvm.s390.vavglf
-+ 1, // llvm.s390.vavglg
-+ 1, // llvm.s390.vavglh
-+ 1, // llvm.s390.vceqbs
-+ 1, // llvm.s390.vceqfs
-+ 1, // llvm.s390.vceqgs
-+ 1, // llvm.s390.vceqhs
-+ 1, // llvm.s390.vchbs
-+ 1, // llvm.s390.vchfs
-+ 1, // llvm.s390.vchgs
-+ 1, // llvm.s390.vchhs
-+ 1, // llvm.s390.vchlbs
-+ 1, // llvm.s390.vchlfs
-+ 1, // llvm.s390.vchlgs
-+ 1, // llvm.s390.vchlhs
-+ 1, // llvm.s390.vcksm
-+ 1, // llvm.s390.verimb
-+ 1, // llvm.s390.verimf
-+ 1, // llvm.s390.verimg
-+ 1, // llvm.s390.verimh
-+ 1, // llvm.s390.verllb
-+ 1, // llvm.s390.verllf
-+ 1, // llvm.s390.verllg
-+ 1, // llvm.s390.verllh
-+ 1, // llvm.s390.verllvb
-+ 1, // llvm.s390.verllvf
-+ 1, // llvm.s390.verllvg
-+ 1, // llvm.s390.verllvh
-+ 1, // llvm.s390.vfaeb
-+ 1, // llvm.s390.vfaebs
-+ 1, // llvm.s390.vfaef
-+ 1, // llvm.s390.vfaefs
-+ 1, // llvm.s390.vfaeh
-+ 1, // llvm.s390.vfaehs
-+ 1, // llvm.s390.vfaezb
-+ 1, // llvm.s390.vfaezbs
-+ 1, // llvm.s390.vfaezf
-+ 1, // llvm.s390.vfaezfs
-+ 1, // llvm.s390.vfaezh
-+ 1, // llvm.s390.vfaezhs
-+ 1, // llvm.s390.vfcedbs
-+ 1, // llvm.s390.vfchdbs
-+ 1, // llvm.s390.vfchedbs
-+ 1, // llvm.s390.vfeeb
-+ 1, // llvm.s390.vfeebs
-+ 1, // llvm.s390.vfeef
-+ 1, // llvm.s390.vfeefs
-+ 1, // llvm.s390.vfeeh
-+ 1, // llvm.s390.vfeehs
-+ 1, // llvm.s390.vfeezb
-+ 1, // llvm.s390.vfeezbs
-+ 1, // llvm.s390.vfeezf
-+ 1, // llvm.s390.vfeezfs
-+ 1, // llvm.s390.vfeezh
-+ 1, // llvm.s390.vfeezhs
-+ 1, // llvm.s390.vfeneb
-+ 1, // llvm.s390.vfenebs
-+ 1, // llvm.s390.vfenef
-+ 1, // llvm.s390.vfenefs
-+ 1, // llvm.s390.vfeneh
-+ 1, // llvm.s390.vfenehs
-+ 1, // llvm.s390.vfenezb
-+ 1, // llvm.s390.vfenezbs
-+ 1, // llvm.s390.vfenezf
-+ 1, // llvm.s390.vfenezfs
-+ 1, // llvm.s390.vfenezh
-+ 1, // llvm.s390.vfenezhs
-+ 1, // llvm.s390.vfidb
-+ 1, // llvm.s390.vftcidb
-+ 1, // llvm.s390.vgfmab
-+ 1, // llvm.s390.vgfmaf
-+ 1, // llvm.s390.vgfmag
-+ 1, // llvm.s390.vgfmah
-+ 1, // llvm.s390.vgfmb
-+ 1, // llvm.s390.vgfmf
-+ 1, // llvm.s390.vgfmg
-+ 1, // llvm.s390.vgfmh
-+ 1, // llvm.s390.vistrb
-+ 1, // llvm.s390.vistrbs
-+ 1, // llvm.s390.vistrf
-+ 1, // llvm.s390.vistrfs
-+ 1, // llvm.s390.vistrh
-+ 1, // llvm.s390.vistrhs
-+ 2, // llvm.s390.vlbb
-+ 2, // llvm.s390.vll
-+ 1, // llvm.s390.vmaeb
-+ 1, // llvm.s390.vmaef
-+ 1, // llvm.s390.vmaeh
-+ 1, // llvm.s390.vmahb
-+ 1, // llvm.s390.vmahf
-+ 1, // llvm.s390.vmahh
-+ 1, // llvm.s390.vmaleb
-+ 1, // llvm.s390.vmalef
-+ 1, // llvm.s390.vmaleh
-+ 1, // llvm.s390.vmalhb
-+ 1, // llvm.s390.vmalhf
-+ 1, // llvm.s390.vmalhh
-+ 1, // llvm.s390.vmalob
-+ 1, // llvm.s390.vmalof
-+ 1, // llvm.s390.vmaloh
-+ 1, // llvm.s390.vmaob
-+ 1, // llvm.s390.vmaof
-+ 1, // llvm.s390.vmaoh
-+ 1, // llvm.s390.vmeb
-+ 1, // llvm.s390.vmef
-+ 1, // llvm.s390.vmeh
-+ 1, // llvm.s390.vmhb
-+ 1, // llvm.s390.vmhf
-+ 1, // llvm.s390.vmhh
-+ 1, // llvm.s390.vmleb
-+ 1, // llvm.s390.vmlef
-+ 1, // llvm.s390.vmleh
-+ 1, // llvm.s390.vmlhb
-+ 1, // llvm.s390.vmlhf
-+ 1, // llvm.s390.vmlhh
-+ 1, // llvm.s390.vmlob
-+ 1, // llvm.s390.vmlof
-+ 1, // llvm.s390.vmloh
-+ 1, // llvm.s390.vmob
-+ 1, // llvm.s390.vmof
-+ 1, // llvm.s390.vmoh
-+ 1, // llvm.s390.vpdi
-+ 1, // llvm.s390.vperm
-+ 1, // llvm.s390.vpklsf
-+ 1, // llvm.s390.vpklsfs
-+ 1, // llvm.s390.vpklsg
-+ 1, // llvm.s390.vpklsgs
-+ 1, // llvm.s390.vpklsh
-+ 1, // llvm.s390.vpklshs
-+ 1, // llvm.s390.vpksf
-+ 1, // llvm.s390.vpksfs
-+ 1, // llvm.s390.vpksg
-+ 1, // llvm.s390.vpksgs
-+ 1, // llvm.s390.vpksh
-+ 1, // llvm.s390.vpkshs
-+ 1, // llvm.s390.vsbcbiq
-+ 1, // llvm.s390.vsbiq
-+ 1, // llvm.s390.vscbib
-+ 1, // llvm.s390.vscbif
-+ 1, // llvm.s390.vscbig
-+ 1, // llvm.s390.vscbih
-+ 1, // llvm.s390.vscbiq
-+ 1, // llvm.s390.vsl
-+ 1, // llvm.s390.vslb
-+ 1, // llvm.s390.vsldb
-+ 1, // llvm.s390.vsq
-+ 1, // llvm.s390.vsra
-+ 1, // llvm.s390.vsrab
-+ 1, // llvm.s390.vsrl
-+ 1, // llvm.s390.vsrlb
-+ 18, // llvm.s390.vstl
-+ 1, // llvm.s390.vstrcb
-+ 1, // llvm.s390.vstrcbs
-+ 1, // llvm.s390.vstrcf
-+ 1, // llvm.s390.vstrcfs
-+ 1, // llvm.s390.vstrch
-+ 1, // llvm.s390.vstrchs
-+ 1, // llvm.s390.vstrczb
-+ 1, // llvm.s390.vstrczbs
-+ 1, // llvm.s390.vstrczf
-+ 1, // llvm.s390.vstrczfs
-+ 1, // llvm.s390.vstrczh
-+ 1, // llvm.s390.vstrczhs
-+ 1, // llvm.s390.vsumb
-+ 1, // llvm.s390.vsumgf
-+ 1, // llvm.s390.vsumgh
-+ 1, // llvm.s390.vsumh
-+ 1, // llvm.s390.vsumqf
-+ 1, // llvm.s390.vsumqg
-+ 1, // llvm.s390.vtm
-+ 1, // llvm.s390.vuphb
-+ 1, // llvm.s390.vuphf
-+ 1, // llvm.s390.vuphh
-+ 1, // llvm.s390.vuplb
-+ 1, // llvm.s390.vuplf
-+ 1, // llvm.s390.vuplhb
-+ 1, // llvm.s390.vuplhf
-+ 1, // llvm.s390.vuplhh
-+ 1, // llvm.s390.vuplhw
-+ 1, // llvm.s390.vupllb
-+ 1, // llvm.s390.vupllf
-+ 1, // llvm.s390.vupllh
-+ 13, // llvm.wasm.current.memory
-+ 3, // llvm.wasm.grow.memory
-+ 1, // llvm.x86.3dnow.pavgusb
-+ 1, // llvm.x86.3dnow.pf2id
-+ 1, // llvm.x86.3dnow.pfacc
-+ 1, // llvm.x86.3dnow.pfadd
-+ 1, // llvm.x86.3dnow.pfcmpeq
-+ 1, // llvm.x86.3dnow.pfcmpge
-+ 1, // llvm.x86.3dnow.pfcmpgt
-+ 1, // llvm.x86.3dnow.pfmax
-+ 1, // llvm.x86.3dnow.pfmin
-+ 1, // llvm.x86.3dnow.pfmul
-+ 1, // llvm.x86.3dnow.pfrcp
-+ 1, // llvm.x86.3dnow.pfrcpit1
-+ 1, // llvm.x86.3dnow.pfrcpit2
-+ 1, // llvm.x86.3dnow.pfrsqit1
-+ 1, // llvm.x86.3dnow.pfrsqrt
-+ 1, // llvm.x86.3dnow.pfsub
-+ 1, // llvm.x86.3dnow.pfsubr
-+ 1, // llvm.x86.3dnow.pi2fd
-+ 1, // llvm.x86.3dnow.pmulhrw
-+ 1, // llvm.x86.3dnowa.pf2iw
-+ 1, // llvm.x86.3dnowa.pfnacc
-+ 1, // llvm.x86.3dnowa.pfpnacc
-+ 1, // llvm.x86.3dnowa.pi2fw
-+ 1, // llvm.x86.3dnowa.pswapd
-+ 18, // llvm.x86.addcarry.u32
-+ 18, // llvm.x86.addcarry.u64
-+ 18, // llvm.x86.addcarryx.u32
-+ 18, // llvm.x86.addcarryx.u64
-+ 1, // llvm.x86.aesni.aesdec
-+ 1, // llvm.x86.aesni.aesdeclast
-+ 1, // llvm.x86.aesni.aesenc
-+ 1, // llvm.x86.aesni.aesenclast
-+ 1, // llvm.x86.aesni.aesimc
-+ 1, // llvm.x86.aesni.aeskeygenassist
-+ 1, // llvm.x86.avx.addsub.pd.256
-+ 1, // llvm.x86.avx.addsub.ps.256
-+ 1, // llvm.x86.avx.blendv.pd.256
-+ 1, // llvm.x86.avx.blendv.ps.256
-+ 1, // llvm.x86.avx.cmp.pd.256
-+ 1, // llvm.x86.avx.cmp.ps.256
-+ 1, // llvm.x86.avx.cvt.pd2.ps.256
-+ 1, // llvm.x86.avx.cvt.pd2dq.256
-+ 1, // llvm.x86.avx.cvt.ps2dq.256
-+ 1, // llvm.x86.avx.cvtdq2.ps.256
-+ 1, // llvm.x86.avx.cvtt.pd2dq.256
-+ 1, // llvm.x86.avx.cvtt.ps2dq.256
-+ 1, // llvm.x86.avx.dp.ps.256
-+ 1, // llvm.x86.avx.hadd.pd.256
-+ 1, // llvm.x86.avx.hadd.ps.256
-+ 1, // llvm.x86.avx.hsub.pd.256
-+ 1, // llvm.x86.avx.hsub.ps.256
-+ 13, // llvm.x86.avx.ldu.dq.256
-+ 2, // llvm.x86.avx.maskload.pd
-+ 2, // llvm.x86.avx.maskload.pd.256
-+ 2, // llvm.x86.avx.maskload.ps
-+ 2, // llvm.x86.avx.maskload.ps.256
-+ 18, // llvm.x86.avx.maskstore.pd
-+ 18, // llvm.x86.avx.maskstore.pd.256
-+ 18, // llvm.x86.avx.maskstore.ps
-+ 18, // llvm.x86.avx.maskstore.ps.256
-+ 1, // llvm.x86.avx.max.pd.256
-+ 1, // llvm.x86.avx.max.ps.256
-+ 1, // llvm.x86.avx.min.pd.256
-+ 1, // llvm.x86.avx.min.ps.256
-+ 1, // llvm.x86.avx.movmsk.pd.256
-+ 1, // llvm.x86.avx.movmsk.ps.256
-+ 1, // llvm.x86.avx.ptestc.256
-+ 1, // llvm.x86.avx.ptestnzc.256
-+ 1, // llvm.x86.avx.ptestz.256
-+ 1, // llvm.x86.avx.rcp.ps.256
-+ 1, // llvm.x86.avx.round.pd.256
-+ 1, // llvm.x86.avx.round.ps.256
-+ 1, // llvm.x86.avx.rsqrt.ps.256
-+ 1, // llvm.x86.avx.sqrt.pd.256
-+ 1, // llvm.x86.avx.sqrt.ps.256
-+ 1, // llvm.x86.avx.vperm2f128.pd.256
-+ 1, // llvm.x86.avx.vperm2f128.ps.256
-+ 1, // llvm.x86.avx.vperm2f128.si.256
-+ 1, // llvm.x86.avx.vpermilvar.pd
-+ 1, // llvm.x86.avx.vpermilvar.pd.256
-+ 1, // llvm.x86.avx.vpermilvar.ps
-+ 1, // llvm.x86.avx.vpermilvar.ps.256
-+ 1, // llvm.x86.avx.vtestc.pd
-+ 1, // llvm.x86.avx.vtestc.pd.256
-+ 1, // llvm.x86.avx.vtestc.ps
-+ 1, // llvm.x86.avx.vtestc.ps.256
-+ 1, // llvm.x86.avx.vtestnzc.pd
-+ 1, // llvm.x86.avx.vtestnzc.pd.256
-+ 1, // llvm.x86.avx.vtestnzc.ps
-+ 1, // llvm.x86.avx.vtestnzc.ps.256
-+ 1, // llvm.x86.avx.vtestz.pd
-+ 1, // llvm.x86.avx.vtestz.pd.256
-+ 1, // llvm.x86.avx.vtestz.ps
-+ 1, // llvm.x86.avx.vtestz.ps.256
-+ 3, // llvm.x86.avx.vzeroall
-+ 3, // llvm.x86.avx.vzeroupper
-+ 2, // llvm.x86.avx2.gather.d.d
-+ 2, // llvm.x86.avx2.gather.d.d.256
-+ 2, // llvm.x86.avx2.gather.d.pd
-+ 2, // llvm.x86.avx2.gather.d.pd.256
-+ 2, // llvm.x86.avx2.gather.d.ps
-+ 2, // llvm.x86.avx2.gather.d.ps.256
-+ 2, // llvm.x86.avx2.gather.d.q
-+ 2, // llvm.x86.avx2.gather.d.q.256
-+ 2, // llvm.x86.avx2.gather.q.d
-+ 2, // llvm.x86.avx2.gather.q.d.256
-+ 2, // llvm.x86.avx2.gather.q.pd
-+ 2, // llvm.x86.avx2.gather.q.pd.256
-+ 2, // llvm.x86.avx2.gather.q.ps
-+ 2, // llvm.x86.avx2.gather.q.ps.256
-+ 2, // llvm.x86.avx2.gather.q.q
-+ 2, // llvm.x86.avx2.gather.q.q.256
-+ 2, // llvm.x86.avx2.maskload.d
-+ 2, // llvm.x86.avx2.maskload.d.256
-+ 2, // llvm.x86.avx2.maskload.q
-+ 2, // llvm.x86.avx2.maskload.q.256
-+ 18, // llvm.x86.avx2.maskstore.d
-+ 18, // llvm.x86.avx2.maskstore.d.256
-+ 18, // llvm.x86.avx2.maskstore.q
-+ 18, // llvm.x86.avx2.maskstore.q.256
-+ 13, // llvm.x86.avx2.movntdqa
-+ 1, // llvm.x86.avx2.mpsadbw
-+ 1, // llvm.x86.avx2.pabs.b
-+ 1, // llvm.x86.avx2.pabs.d
-+ 1, // llvm.x86.avx2.pabs.w
-+ 1, // llvm.x86.avx2.packssdw
-+ 1, // llvm.x86.avx2.packsswb
-+ 1, // llvm.x86.avx2.packusdw
-+ 1, // llvm.x86.avx2.packuswb
-+ 1, // llvm.x86.avx2.padds.b
-+ 1, // llvm.x86.avx2.padds.w
-+ 1, // llvm.x86.avx2.paddus.b
-+ 1, // llvm.x86.avx2.paddus.w
-+ 1, // llvm.x86.avx2.pavg.b
-+ 1, // llvm.x86.avx2.pavg.w
-+ 1, // llvm.x86.avx2.pblendvb
-+ 1, // llvm.x86.avx2.permd
-+ 1, // llvm.x86.avx2.permps
-+ 1, // llvm.x86.avx2.phadd.d
-+ 1, // llvm.x86.avx2.phadd.sw
-+ 1, // llvm.x86.avx2.phadd.w
-+ 1, // llvm.x86.avx2.phsub.d
-+ 1, // llvm.x86.avx2.phsub.sw
-+ 1, // llvm.x86.avx2.phsub.w
-+ 1, // llvm.x86.avx2.pmadd.ub.sw
-+ 1, // llvm.x86.avx2.pmadd.wd
-+ 1, // llvm.x86.avx2.pmovmskb
-+ 1, // llvm.x86.avx2.pmul.dq
-+ 1, // llvm.x86.avx2.pmul.hr.sw
-+ 1, // llvm.x86.avx2.pmulh.w
-+ 1, // llvm.x86.avx2.pmulhu.w
-+ 1, // llvm.x86.avx2.pmulu.dq
-+ 1, // llvm.x86.avx2.psad.bw
-+ 1, // llvm.x86.avx2.pshuf.b
-+ 1, // llvm.x86.avx2.psign.b
-+ 1, // llvm.x86.avx2.psign.d
-+ 1, // llvm.x86.avx2.psign.w
-+ 1, // llvm.x86.avx2.psll.d
-+ 1, // llvm.x86.avx2.psll.q
-+ 1, // llvm.x86.avx2.psll.w
-+ 1, // llvm.x86.avx2.pslli.d
-+ 1, // llvm.x86.avx2.pslli.q
-+ 1, // llvm.x86.avx2.pslli.w
-+ 1, // llvm.x86.avx2.psllv.d
-+ 1, // llvm.x86.avx2.psllv.d.256
-+ 1, // llvm.x86.avx2.psllv.q
-+ 1, // llvm.x86.avx2.psllv.q.256
-+ 1, // llvm.x86.avx2.psra.d
-+ 1, // llvm.x86.avx2.psra.w
-+ 1, // llvm.x86.avx2.psrai.d
-+ 1, // llvm.x86.avx2.psrai.w
-+ 1, // llvm.x86.avx2.psrav.d
-+ 1, // llvm.x86.avx2.psrav.d.256
-+ 1, // llvm.x86.avx2.psrl.d
-+ 1, // llvm.x86.avx2.psrl.q
-+ 1, // llvm.x86.avx2.psrl.w
-+ 1, // llvm.x86.avx2.psrli.d
-+ 1, // llvm.x86.avx2.psrli.q
-+ 1, // llvm.x86.avx2.psrli.w
-+ 1, // llvm.x86.avx2.psrlv.d
-+ 1, // llvm.x86.avx2.psrlv.d.256
-+ 1, // llvm.x86.avx2.psrlv.q
-+ 1, // llvm.x86.avx2.psrlv.q.256
-+ 1, // llvm.x86.avx2.psubs.b
-+ 1, // llvm.x86.avx2.psubs.w
-+ 1, // llvm.x86.avx2.psubus.b
-+ 1, // llvm.x86.avx2.psubus.w
-+ 1, // llvm.x86.avx2.vperm2i128
-+ 1, // llvm.x86.avx512.broadcastmb.128
-+ 1, // llvm.x86.avx512.broadcastmb.256
-+ 1, // llvm.x86.avx512.broadcastmb.512
-+ 1, // llvm.x86.avx512.broadcastmw.128
-+ 1, // llvm.x86.avx512.broadcastmw.256
-+ 1, // llvm.x86.avx512.broadcastmw.512
-+ 1, // llvm.x86.avx512.cvtb2mask.128
-+ 1, // llvm.x86.avx512.cvtb2mask.256
-+ 1, // llvm.x86.avx512.cvtb2mask.512
-+ 1, // llvm.x86.avx512.cvtd2mask.128
-+ 1, // llvm.x86.avx512.cvtd2mask.256
-+ 1, // llvm.x86.avx512.cvtd2mask.512
-+ 1, // llvm.x86.avx512.cvtmask2b.128
-+ 1, // llvm.x86.avx512.cvtmask2b.256
-+ 1, // llvm.x86.avx512.cvtmask2b.512
-+ 1, // llvm.x86.avx512.cvtmask2d.128
-+ 1, // llvm.x86.avx512.cvtmask2d.256
-+ 1, // llvm.x86.avx512.cvtmask2d.512
-+ 1, // llvm.x86.avx512.cvtmask2q.128
-+ 1, // llvm.x86.avx512.cvtmask2q.256
-+ 1, // llvm.x86.avx512.cvtmask2q.512
-+ 1, // llvm.x86.avx512.cvtmask2w.128
-+ 1, // llvm.x86.avx512.cvtmask2w.256
-+ 1, // llvm.x86.avx512.cvtmask2w.512
-+ 1, // llvm.x86.avx512.cvtq2mask.128
-+ 1, // llvm.x86.avx512.cvtq2mask.256
-+ 1, // llvm.x86.avx512.cvtq2mask.512
-+ 1, // llvm.x86.avx512.cvtsi2sd64
-+ 1, // llvm.x86.avx512.cvtsi2ss32
-+ 1, // llvm.x86.avx512.cvtsi2ss64
-+ 1, // llvm.x86.avx512.cvttsd2si
-+ 1, // llvm.x86.avx512.cvttsd2si64
-+ 1, // llvm.x86.avx512.cvttsd2usi
-+ 1, // llvm.x86.avx512.cvttsd2usi64
-+ 1, // llvm.x86.avx512.cvttss2si
-+ 1, // llvm.x86.avx512.cvttss2si64
-+ 1, // llvm.x86.avx512.cvttss2usi
-+ 1, // llvm.x86.avx512.cvttss2usi64
-+ 1, // llvm.x86.avx512.cvtusi2sd
-+ 1, // llvm.x86.avx512.cvtusi2ss
-+ 1, // llvm.x86.avx512.cvtusi642sd
-+ 1, // llvm.x86.avx512.cvtusi642ss
-+ 1, // llvm.x86.avx512.cvtw2mask.128
-+ 1, // llvm.x86.avx512.cvtw2mask.256
-+ 1, // llvm.x86.avx512.cvtw2mask.512
-+ 1, // llvm.x86.avx512.exp2.pd
-+ 1, // llvm.x86.avx512.exp2.ps
-+ 2, // llvm.x86.avx512.gather.dpd.512
-+ 2, // llvm.x86.avx512.gather.dpi.512
-+ 2, // llvm.x86.avx512.gather.dpq.512
-+ 2, // llvm.x86.avx512.gather.dps.512
-+ 2, // llvm.x86.avx512.gather.qpd.512
-+ 2, // llvm.x86.avx512.gather.qpi.512
-+ 2, // llvm.x86.avx512.gather.qpq.512
-+ 2, // llvm.x86.avx512.gather.qps.512
-+ 2, // llvm.x86.avx512.gather3div2.df
-+ 2, // llvm.x86.avx512.gather3div2.di
-+ 2, // llvm.x86.avx512.gather3div4.df
-+ 2, // llvm.x86.avx512.gather3div4.di
-+ 2, // llvm.x86.avx512.gather3div4.sf
-+ 2, // llvm.x86.avx512.gather3div4.si
-+ 2, // llvm.x86.avx512.gather3div8.sf
-+ 2, // llvm.x86.avx512.gather3div8.si
-+ 2, // llvm.x86.avx512.gather3siv2.df
-+ 2, // llvm.x86.avx512.gather3siv2.di
-+ 2, // llvm.x86.avx512.gather3siv4.df
-+ 2, // llvm.x86.avx512.gather3siv4.di
-+ 2, // llvm.x86.avx512.gather3siv4.sf
-+ 2, // llvm.x86.avx512.gather3siv4.si
-+ 2, // llvm.x86.avx512.gather3siv8.sf
-+ 2, // llvm.x86.avx512.gather3siv8.si
-+ 18, // llvm.x86.avx512.gatherpf.dpd.512
-+ 18, // llvm.x86.avx512.gatherpf.dps.512
-+ 18, // llvm.x86.avx512.gatherpf.qpd.512
-+ 18, // llvm.x86.avx512.gatherpf.qps.512
-+ 1, // llvm.x86.avx512.kand.w
-+ 1, // llvm.x86.avx512.kandn.w
-+ 1, // llvm.x86.avx512.knot.w
-+ 1, // llvm.x86.avx512.kor.w
-+ 1, // llvm.x86.avx512.kortestc.w
-+ 1, // llvm.x86.avx512.kortestz.w
-+ 1, // llvm.x86.avx512.kunpck.bw
-+ 1, // llvm.x86.avx512.kunpck.dq
-+ 1, // llvm.x86.avx512.kunpck.wd
-+ 1, // llvm.x86.avx512.kxnor.w
-+ 1, // llvm.x86.avx512.kxor.w
-+ 1, // llvm.x86.avx512.mask.add.pd.512
-+ 1, // llvm.x86.avx512.mask.add.ps.512
-+ 1, // llvm.x86.avx512.mask.add.sd.round
-+ 1, // llvm.x86.avx512.mask.add.ss.round
-+ 1, // llvm.x86.avx512.mask.broadcastf32x2.256
-+ 1, // llvm.x86.avx512.mask.broadcastf32x2.512
-+ 1, // llvm.x86.avx512.mask.broadcastf32x4.256
-+ 1, // llvm.x86.avx512.mask.broadcastf32x4.512
-+ 1, // llvm.x86.avx512.mask.broadcastf32x8.512
-+ 1, // llvm.x86.avx512.mask.broadcastf64x2.256
-+ 1, // llvm.x86.avx512.mask.broadcastf64x2.512
-+ 1, // llvm.x86.avx512.mask.broadcastf64x4.512
-+ 1, // llvm.x86.avx512.mask.broadcasti32x2.128
-+ 1, // llvm.x86.avx512.mask.broadcasti32x2.256
-+ 1, // llvm.x86.avx512.mask.broadcasti32x2.512
-+ 1, // llvm.x86.avx512.mask.broadcasti32x4.256
-+ 1, // llvm.x86.avx512.mask.broadcasti32x4.512
-+ 1, // llvm.x86.avx512.mask.broadcasti32x8.512
-+ 1, // llvm.x86.avx512.mask.broadcasti64x2.256
-+ 1, // llvm.x86.avx512.mask.broadcasti64x2.512
-+ 1, // llvm.x86.avx512.mask.broadcasti64x4.512
-+ 1, // llvm.x86.avx512.mask.cmp.b.128
-+ 1, // llvm.x86.avx512.mask.cmp.b.256
-+ 1, // llvm.x86.avx512.mask.cmp.b.512
-+ 1, // llvm.x86.avx512.mask.cmp.d.128
-+ 1, // llvm.x86.avx512.mask.cmp.d.256
-+ 1, // llvm.x86.avx512.mask.cmp.d.512
-+ 1, // llvm.x86.avx512.mask.cmp.pd.128
-+ 1, // llvm.x86.avx512.mask.cmp.pd.256
-+ 1, // llvm.x86.avx512.mask.cmp.pd.512
-+ 1, // llvm.x86.avx512.mask.cmp.ps.128
-+ 1, // llvm.x86.avx512.mask.cmp.ps.256
-+ 1, // llvm.x86.avx512.mask.cmp.ps.512
-+ 1, // llvm.x86.avx512.mask.cmp.q.128
-+ 1, // llvm.x86.avx512.mask.cmp.q.256
-+ 1, // llvm.x86.avx512.mask.cmp.q.512
-+ 1, // llvm.x86.avx512.mask.cmp.sd
-+ 1, // llvm.x86.avx512.mask.cmp.ss
-+ 1, // llvm.x86.avx512.mask.cmp.w.128
-+ 1, // llvm.x86.avx512.mask.cmp.w.256
-+ 1, // llvm.x86.avx512.mask.cmp.w.512
-+ 1, // llvm.x86.avx512.mask.compress.d.128
-+ 1, // llvm.x86.avx512.mask.compress.d.256
-+ 1, // llvm.x86.avx512.mask.compress.d.512
-+ 1, // llvm.x86.avx512.mask.compress.pd.128
-+ 1, // llvm.x86.avx512.mask.compress.pd.256
-+ 1, // llvm.x86.avx512.mask.compress.pd.512
-+ 1, // llvm.x86.avx512.mask.compress.ps.128
-+ 1, // llvm.x86.avx512.mask.compress.ps.256
-+ 1, // llvm.x86.avx512.mask.compress.ps.512
-+ 1, // llvm.x86.avx512.mask.compress.q.128
-+ 1, // llvm.x86.avx512.mask.compress.q.256
-+ 1, // llvm.x86.avx512.mask.compress.q.512
-+ 18, // llvm.x86.avx512.mask.compress.store.d.128
-+ 18, // llvm.x86.avx512.mask.compress.store.d.256
-+ 18, // llvm.x86.avx512.mask.compress.store.d.512
-+ 18, // llvm.x86.avx512.mask.compress.store.pd.128
-+ 18, // llvm.x86.avx512.mask.compress.store.pd.256
-+ 18, // llvm.x86.avx512.mask.compress.store.pd.512
-+ 18, // llvm.x86.avx512.mask.compress.store.ps.128
-+ 18, // llvm.x86.avx512.mask.compress.store.ps.256
-+ 18, // llvm.x86.avx512.mask.compress.store.ps.512
-+ 18, // llvm.x86.avx512.mask.compress.store.q.128
-+ 18, // llvm.x86.avx512.mask.compress.store.q.256
-+ 18, // llvm.x86.avx512.mask.compress.store.q.512
-+ 1, // llvm.x86.avx512.mask.conflict.d.128
-+ 1, // llvm.x86.avx512.mask.conflict.d.256
-+ 1, // llvm.x86.avx512.mask.conflict.d.512
-+ 1, // llvm.x86.avx512.mask.conflict.q.128
-+ 1, // llvm.x86.avx512.mask.conflict.q.256
-+ 1, // llvm.x86.avx512.mask.conflict.q.512
-+ 1, // llvm.x86.avx512.mask.cvtdq2ps.128
-+ 1, // llvm.x86.avx512.mask.cvtdq2ps.256
-+ 1, // llvm.x86.avx512.mask.cvtdq2ps.512
-+ 1, // llvm.x86.avx512.mask.cvtpd2dq.128
-+ 1, // llvm.x86.avx512.mask.cvtpd2dq.256
-+ 1, // llvm.x86.avx512.mask.cvtpd2dq.512
-+ 1, // llvm.x86.avx512.mask.cvtpd2ps
-+ 1, // llvm.x86.avx512.mask.cvtpd2ps.256
-+ 1, // llvm.x86.avx512.mask.cvtpd2ps.512
-+ 1, // llvm.x86.avx512.mask.cvtpd2qq.128
-+ 1, // llvm.x86.avx512.mask.cvtpd2qq.256
-+ 1, // llvm.x86.avx512.mask.cvtpd2qq.512
-+ 1, // llvm.x86.avx512.mask.cvtpd2udq.128
-+ 1, // llvm.x86.avx512.mask.cvtpd2udq.256
-+ 1, // llvm.x86.avx512.mask.cvtpd2udq.512
-+ 1, // llvm.x86.avx512.mask.cvtpd2uqq.128
-+ 1, // llvm.x86.avx512.mask.cvtpd2uqq.256
-+ 1, // llvm.x86.avx512.mask.cvtpd2uqq.512
-+ 1, // llvm.x86.avx512.mask.cvtps2dq.128
-+ 1, // llvm.x86.avx512.mask.cvtps2dq.256
-+ 1, // llvm.x86.avx512.mask.cvtps2dq.512
-+ 1, // llvm.x86.avx512.mask.cvtps2pd.128
-+ 1, // llvm.x86.avx512.mask.cvtps2pd.256
-+ 1, // llvm.x86.avx512.mask.cvtps2pd.512
-+ 1, // llvm.x86.avx512.mask.cvtps2qq.128
-+ 1, // llvm.x86.avx512.mask.cvtps2qq.256
-+ 1, // llvm.x86.avx512.mask.cvtps2qq.512
-+ 1, // llvm.x86.avx512.mask.cvtps2udq.128
-+ 1, // llvm.x86.avx512.mask.cvtps2udq.256
-+ 1, // llvm.x86.avx512.mask.cvtps2udq.512
-+ 1, // llvm.x86.avx512.mask.cvtps2uqq.128
-+ 1, // llvm.x86.avx512.mask.cvtps2uqq.256
-+ 1, // llvm.x86.avx512.mask.cvtps2uqq.512
-+ 1, // llvm.x86.avx512.mask.cvtqq2pd.128
-+ 1, // llvm.x86.avx512.mask.cvtqq2pd.256
-+ 1, // llvm.x86.avx512.mask.cvtqq2pd.512
-+ 1, // llvm.x86.avx512.mask.cvtqq2ps.128
-+ 1, // llvm.x86.avx512.mask.cvtqq2ps.256
-+ 1, // llvm.x86.avx512.mask.cvtqq2ps.512
-+ 1, // llvm.x86.avx512.mask.cvtsd2ss.round
-+ 1, // llvm.x86.avx512.mask.cvtss2sd.round
-+ 1, // llvm.x86.avx512.mask.cvttpd2dq.128
-+ 1, // llvm.x86.avx512.mask.cvttpd2dq.256
-+ 1, // llvm.x86.avx512.mask.cvttpd2dq.512
-+ 1, // llvm.x86.avx512.mask.cvttpd2qq.128
-+ 1, // llvm.x86.avx512.mask.cvttpd2qq.256
-+ 1, // llvm.x86.avx512.mask.cvttpd2qq.512
-+ 1, // llvm.x86.avx512.mask.cvttpd2udq.128
-+ 1, // llvm.x86.avx512.mask.cvttpd2udq.256
-+ 1, // llvm.x86.avx512.mask.cvttpd2udq.512
-+ 1, // llvm.x86.avx512.mask.cvttpd2uqq.128
-+ 1, // llvm.x86.avx512.mask.cvttpd2uqq.256
-+ 1, // llvm.x86.avx512.mask.cvttpd2uqq.512
-+ 1, // llvm.x86.avx512.mask.cvttps2dq.128
-+ 1, // llvm.x86.avx512.mask.cvttps2dq.256
-+ 1, // llvm.x86.avx512.mask.cvttps2dq.512
-+ 1, // llvm.x86.avx512.mask.cvttps2qq.128
-+ 1, // llvm.x86.avx512.mask.cvttps2qq.256
-+ 1, // llvm.x86.avx512.mask.cvttps2qq.512
-+ 1, // llvm.x86.avx512.mask.cvttps2udq.128
-+ 1, // llvm.x86.avx512.mask.cvttps2udq.256
-+ 1, // llvm.x86.avx512.mask.cvttps2udq.512
-+ 1, // llvm.x86.avx512.mask.cvttps2uqq.128
-+ 1, // llvm.x86.avx512.mask.cvttps2uqq.256
-+ 1, // llvm.x86.avx512.mask.cvttps2uqq.512
-+ 1, // llvm.x86.avx512.mask.cvtudq2ps.128
-+ 1, // llvm.x86.avx512.mask.cvtudq2ps.256
-+ 1, // llvm.x86.avx512.mask.cvtudq2ps.512
-+ 1, // llvm.x86.avx512.mask.cvtuqq2pd.128
-+ 1, // llvm.x86.avx512.mask.cvtuqq2pd.256
-+ 1, // llvm.x86.avx512.mask.cvtuqq2pd.512
-+ 1, // llvm.x86.avx512.mask.cvtuqq2ps.128
-+ 1, // llvm.x86.avx512.mask.cvtuqq2ps.256
-+ 1, // llvm.x86.avx512.mask.cvtuqq2ps.512
-+ 1, // llvm.x86.avx512.mask.dbpsadbw.128
-+ 1, // llvm.x86.avx512.mask.dbpsadbw.256
-+ 1, // llvm.x86.avx512.mask.dbpsadbw.512
-+ 1, // llvm.x86.avx512.mask.div.pd.512
-+ 1, // llvm.x86.avx512.mask.div.ps.512
-+ 1, // llvm.x86.avx512.mask.div.sd.round
-+ 1, // llvm.x86.avx512.mask.div.ss.round
-+ 1, // llvm.x86.avx512.mask.expand.d.128
-+ 1, // llvm.x86.avx512.mask.expand.d.256
-+ 1, // llvm.x86.avx512.mask.expand.d.512
-+ 2, // llvm.x86.avx512.mask.expand.load.d.128
-+ 2, // llvm.x86.avx512.mask.expand.load.d.256
-+ 2, // llvm.x86.avx512.mask.expand.load.d.512
-+ 2, // llvm.x86.avx512.mask.expand.load.pd.128
-+ 2, // llvm.x86.avx512.mask.expand.load.pd.256
-+ 2, // llvm.x86.avx512.mask.expand.load.pd.512
-+ 2, // llvm.x86.avx512.mask.expand.load.ps.128
-+ 2, // llvm.x86.avx512.mask.expand.load.ps.256
-+ 2, // llvm.x86.avx512.mask.expand.load.ps.512
-+ 2, // llvm.x86.avx512.mask.expand.load.q.128
-+ 2, // llvm.x86.avx512.mask.expand.load.q.256
-+ 2, // llvm.x86.avx512.mask.expand.load.q.512
-+ 1, // llvm.x86.avx512.mask.expand.pd.128
-+ 1, // llvm.x86.avx512.mask.expand.pd.256
-+ 1, // llvm.x86.avx512.mask.expand.pd.512
-+ 1, // llvm.x86.avx512.mask.expand.ps.128
-+ 1, // llvm.x86.avx512.mask.expand.ps.256
-+ 1, // llvm.x86.avx512.mask.expand.ps.512
-+ 1, // llvm.x86.avx512.mask.expand.q.128
-+ 1, // llvm.x86.avx512.mask.expand.q.256
-+ 1, // llvm.x86.avx512.mask.expand.q.512
-+ 1, // llvm.x86.avx512.mask.fixupimm.pd.128
-+ 1, // llvm.x86.avx512.mask.fixupimm.pd.256
-+ 1, // llvm.x86.avx512.mask.fixupimm.pd.512
-+ 1, // llvm.x86.avx512.mask.fixupimm.ps.128
-+ 1, // llvm.x86.avx512.mask.fixupimm.ps.256
-+ 1, // llvm.x86.avx512.mask.fixupimm.ps.512
-+ 1, // llvm.x86.avx512.mask.fixupimm.sd
-+ 1, // llvm.x86.avx512.mask.fixupimm.ss
-+ 1, // llvm.x86.avx512.mask.fpclass.pd.128
-+ 1, // llvm.x86.avx512.mask.fpclass.pd.256
-+ 1, // llvm.x86.avx512.mask.fpclass.pd.512
-+ 1, // llvm.x86.avx512.mask.fpclass.ps.128
-+ 1, // llvm.x86.avx512.mask.fpclass.ps.256
-+ 1, // llvm.x86.avx512.mask.fpclass.ps.512
-+ 1, // llvm.x86.avx512.mask.fpclass.sd
-+ 1, // llvm.x86.avx512.mask.fpclass.ss
-+ 1, // llvm.x86.avx512.mask.getexp.pd.128
-+ 1, // llvm.x86.avx512.mask.getexp.pd.256
-+ 1, // llvm.x86.avx512.mask.getexp.pd.512
-+ 1, // llvm.x86.avx512.mask.getexp.ps.128
-+ 1, // llvm.x86.avx512.mask.getexp.ps.256
-+ 1, // llvm.x86.avx512.mask.getexp.ps.512
-+ 1, // llvm.x86.avx512.mask.getexp.sd
-+ 1, // llvm.x86.avx512.mask.getexp.ss
-+ 1, // llvm.x86.avx512.mask.getmant.pd.128
-+ 1, // llvm.x86.avx512.mask.getmant.pd.256
-+ 1, // llvm.x86.avx512.mask.getmant.pd.512
-+ 1, // llvm.x86.avx512.mask.getmant.ps.128
-+ 1, // llvm.x86.avx512.mask.getmant.ps.256
-+ 1, // llvm.x86.avx512.mask.getmant.ps.512
-+ 1, // llvm.x86.avx512.mask.getmant.sd
-+ 1, // llvm.x86.avx512.mask.getmant.ss
-+ 1, // llvm.x86.avx512.mask.insertf32x4.256
-+ 1, // llvm.x86.avx512.mask.insertf32x4.512
-+ 1, // llvm.x86.avx512.mask.insertf32x8.512
-+ 1, // llvm.x86.avx512.mask.insertf64x2.256
-+ 1, // llvm.x86.avx512.mask.insertf64x2.512
-+ 1, // llvm.x86.avx512.mask.insertf64x4.512
-+ 1, // llvm.x86.avx512.mask.inserti32x4.256
-+ 1, // llvm.x86.avx512.mask.inserti32x4.512
-+ 1, // llvm.x86.avx512.mask.inserti32x8.512
-+ 1, // llvm.x86.avx512.mask.inserti64x2.256
-+ 1, // llvm.x86.avx512.mask.inserti64x2.512
-+ 1, // llvm.x86.avx512.mask.inserti64x4.512
-+ 1, // llvm.x86.avx512.mask.lzcnt.d.128
-+ 1, // llvm.x86.avx512.mask.lzcnt.d.256
-+ 1, // llvm.x86.avx512.mask.lzcnt.d.512
-+ 1, // llvm.x86.avx512.mask.lzcnt.q.128
-+ 1, // llvm.x86.avx512.mask.lzcnt.q.256
-+ 1, // llvm.x86.avx512.mask.lzcnt.q.512
-+ 1, // llvm.x86.avx512.mask.max.pd.128
-+ 1, // llvm.x86.avx512.mask.max.pd.256
-+ 1, // llvm.x86.avx512.mask.max.pd.512
-+ 1, // llvm.x86.avx512.mask.max.ps.128
-+ 1, // llvm.x86.avx512.mask.max.ps.256
-+ 1, // llvm.x86.avx512.mask.max.ps.512
-+ 1, // llvm.x86.avx512.mask.max.sd.round
-+ 1, // llvm.x86.avx512.mask.max.ss.round
-+ 1, // llvm.x86.avx512.mask.min.pd.128
-+ 1, // llvm.x86.avx512.mask.min.pd.256
-+ 1, // llvm.x86.avx512.mask.min.pd.512
-+ 1, // llvm.x86.avx512.mask.min.ps.128
-+ 1, // llvm.x86.avx512.mask.min.ps.256
-+ 1, // llvm.x86.avx512.mask.min.ps.512
-+ 1, // llvm.x86.avx512.mask.min.sd.round
-+ 1, // llvm.x86.avx512.mask.min.ss.round
-+ 1, // llvm.x86.avx512.mask.mul.pd.512
-+ 1, // llvm.x86.avx512.mask.mul.ps.512
-+ 1, // llvm.x86.avx512.mask.mul.sd.round
-+ 1, // llvm.x86.avx512.mask.mul.ss.round
-+ 1, // llvm.x86.avx512.mask.pabs.b.128
-+ 1, // llvm.x86.avx512.mask.pabs.b.256
-+ 1, // llvm.x86.avx512.mask.pabs.b.512
-+ 1, // llvm.x86.avx512.mask.pabs.d.128
-+ 1, // llvm.x86.avx512.mask.pabs.d.256
-+ 1, // llvm.x86.avx512.mask.pabs.d.512
-+ 1, // llvm.x86.avx512.mask.pabs.q.128
-+ 1, // llvm.x86.avx512.mask.pabs.q.256
-+ 1, // llvm.x86.avx512.mask.pabs.q.512
-+ 1, // llvm.x86.avx512.mask.pabs.w.128
-+ 1, // llvm.x86.avx512.mask.pabs.w.256
-+ 1, // llvm.x86.avx512.mask.pabs.w.512
-+ 1, // llvm.x86.avx512.mask.packssdw.128
-+ 1, // llvm.x86.avx512.mask.packssdw.256
-+ 1, // llvm.x86.avx512.mask.packssdw.512
-+ 1, // llvm.x86.avx512.mask.packsswb.128
-+ 1, // llvm.x86.avx512.mask.packsswb.256
-+ 1, // llvm.x86.avx512.mask.packsswb.512
-+ 1, // llvm.x86.avx512.mask.packusdw.128
-+ 1, // llvm.x86.avx512.mask.packusdw.256
-+ 1, // llvm.x86.avx512.mask.packusdw.512
-+ 1, // llvm.x86.avx512.mask.packuswb.128
-+ 1, // llvm.x86.avx512.mask.packuswb.256
-+ 1, // llvm.x86.avx512.mask.packuswb.512
-+ 1, // llvm.x86.avx512.mask.padds.b.128
-+ 1, // llvm.x86.avx512.mask.padds.b.256
-+ 1, // llvm.x86.avx512.mask.padds.b.512
-+ 1, // llvm.x86.avx512.mask.padds.w.128
-+ 1, // llvm.x86.avx512.mask.padds.w.256
-+ 1, // llvm.x86.avx512.mask.padds.w.512
-+ 1, // llvm.x86.avx512.mask.paddus.b.128
-+ 1, // llvm.x86.avx512.mask.paddus.b.256
-+ 1, // llvm.x86.avx512.mask.paddus.b.512
-+ 1, // llvm.x86.avx512.mask.paddus.w.128
-+ 1, // llvm.x86.avx512.mask.paddus.w.256
-+ 1, // llvm.x86.avx512.mask.paddus.w.512
-+ 1, // llvm.x86.avx512.mask.pavg.b.128
-+ 1, // llvm.x86.avx512.mask.pavg.b.256
-+ 1, // llvm.x86.avx512.mask.pavg.b.512
-+ 1, // llvm.x86.avx512.mask.pavg.w.128
-+ 1, // llvm.x86.avx512.mask.pavg.w.256
-+ 1, // llvm.x86.avx512.mask.pavg.w.512
-+ 1, // llvm.x86.avx512.mask.pbroadcast.b.gpr.128
-+ 1, // llvm.x86.avx512.mask.pbroadcast.b.gpr.256
-+ 1, // llvm.x86.avx512.mask.pbroadcast.b.gpr.512
-+ 1, // llvm.x86.avx512.mask.pbroadcast.d.gpr.128
-+ 1, // llvm.x86.avx512.mask.pbroadcast.d.gpr.256
-+ 1, // llvm.x86.avx512.mask.pbroadcast.d.gpr.512
-+ 1, // llvm.x86.avx512.mask.pbroadcast.q.gpr.128
-+ 1, // llvm.x86.avx512.mask.pbroadcast.q.gpr.256
-+ 1, // llvm.x86.avx512.mask.pbroadcast.q.gpr.512
-+ 1, // llvm.x86.avx512.mask.pbroadcast.q.mem.512
-+ 1, // llvm.x86.avx512.mask.pbroadcast.w.gpr.128
-+ 1, // llvm.x86.avx512.mask.pbroadcast.w.gpr.256
-+ 1, // llvm.x86.avx512.mask.pbroadcast.w.gpr.512
-+ 1, // llvm.x86.avx512.mask.permvar.df.256
-+ 1, // llvm.x86.avx512.mask.permvar.df.512
-+ 1, // llvm.x86.avx512.mask.permvar.di.256
-+ 1, // llvm.x86.avx512.mask.permvar.di.512
-+ 1, // llvm.x86.avx512.mask.permvar.hi.128
-+ 1, // llvm.x86.avx512.mask.permvar.hi.256
-+ 1, // llvm.x86.avx512.mask.permvar.hi.512
-+ 1, // llvm.x86.avx512.mask.permvar.qi.128
-+ 1, // llvm.x86.avx512.mask.permvar.qi.256
-+ 1, // llvm.x86.avx512.mask.permvar.qi.512
-+ 1, // llvm.x86.avx512.mask.permvar.sf.256
-+ 1, // llvm.x86.avx512.mask.permvar.sf.512
-+ 1, // llvm.x86.avx512.mask.permvar.si.256
-+ 1, // llvm.x86.avx512.mask.permvar.si.512
-+ 1, // llvm.x86.avx512.mask.pmaddubs.w.128
-+ 1, // llvm.x86.avx512.mask.pmaddubs.w.256
-+ 1, // llvm.x86.avx512.mask.pmaddubs.w.512
-+ 1, // llvm.x86.avx512.mask.pmaddw.d.128
-+ 1, // llvm.x86.avx512.mask.pmaddw.d.256
-+ 1, // llvm.x86.avx512.mask.pmaddw.d.512
-+ 1, // llvm.x86.avx512.mask.pmov.db.128
-+ 1, // llvm.x86.avx512.mask.pmov.db.256
-+ 1, // llvm.x86.avx512.mask.pmov.db.512
-+ 18, // llvm.x86.avx512.mask.pmov.db.mem.128
-+ 18, // llvm.x86.avx512.mask.pmov.db.mem.256
-+ 18, // llvm.x86.avx512.mask.pmov.db.mem.512
-+ 1, // llvm.x86.avx512.mask.pmov.dw.128
-+ 1, // llvm.x86.avx512.mask.pmov.dw.256
-+ 1, // llvm.x86.avx512.mask.pmov.dw.512
-+ 18, // llvm.x86.avx512.mask.pmov.dw.mem.128
-+ 18, // llvm.x86.avx512.mask.pmov.dw.mem.256
-+ 18, // llvm.x86.avx512.mask.pmov.dw.mem.512
-+ 1, // llvm.x86.avx512.mask.pmov.qb.128
-+ 1, // llvm.x86.avx512.mask.pmov.qb.256
-+ 1, // llvm.x86.avx512.mask.pmov.qb.512
-+ 18, // llvm.x86.avx512.mask.pmov.qb.mem.128
-+ 18, // llvm.x86.avx512.mask.pmov.qb.mem.256
-+ 18, // llvm.x86.avx512.mask.pmov.qb.mem.512
-+ 1, // llvm.x86.avx512.mask.pmov.qd.128
-+ 1, // llvm.x86.avx512.mask.pmov.qd.256
-+ 1, // llvm.x86.avx512.mask.pmov.qd.512
-+ 18, // llvm.x86.avx512.mask.pmov.qd.mem.128
-+ 18, // llvm.x86.avx512.mask.pmov.qd.mem.256
-+ 18, // llvm.x86.avx512.mask.pmov.qd.mem.512
-+ 1, // llvm.x86.avx512.mask.pmov.qw.128
-+ 1, // llvm.x86.avx512.mask.pmov.qw.256
-+ 1, // llvm.x86.avx512.mask.pmov.qw.512
-+ 18, // llvm.x86.avx512.mask.pmov.qw.mem.128
-+ 18, // llvm.x86.avx512.mask.pmov.qw.mem.256
-+ 18, // llvm.x86.avx512.mask.pmov.qw.mem.512
-+ 1, // llvm.x86.avx512.mask.pmov.wb.128
-+ 1, // llvm.x86.avx512.mask.pmov.wb.256
-+ 1, // llvm.x86.avx512.mask.pmov.wb.512
-+ 18, // llvm.x86.avx512.mask.pmov.wb.mem.128
-+ 18, // llvm.x86.avx512.mask.pmov.wb.mem.256
-+ 18, // llvm.x86.avx512.mask.pmov.wb.mem.512
-+ 1, // llvm.x86.avx512.mask.pmovs.db.128
-+ 1, // llvm.x86.avx512.mask.pmovs.db.256
-+ 1, // llvm.x86.avx512.mask.pmovs.db.512
-+ 18, // llvm.x86.avx512.mask.pmovs.db.mem.128
-+ 18, // llvm.x86.avx512.mask.pmovs.db.mem.256
-+ 18, // llvm.x86.avx512.mask.pmovs.db.mem.512
-+ 1, // llvm.x86.avx512.mask.pmovs.dw.128
-+ 1, // llvm.x86.avx512.mask.pmovs.dw.256
-+ 1, // llvm.x86.avx512.mask.pmovs.dw.512
-+ 18, // llvm.x86.avx512.mask.pmovs.dw.mem.128
-+ 18, // llvm.x86.avx512.mask.pmovs.dw.mem.256
-+ 18, // llvm.x86.avx512.mask.pmovs.dw.mem.512
-+ 1, // llvm.x86.avx512.mask.pmovs.qb.128
-+ 1, // llvm.x86.avx512.mask.pmovs.qb.256
-+ 1, // llvm.x86.avx512.mask.pmovs.qb.512
-+ 18, // llvm.x86.avx512.mask.pmovs.qb.mem.128
-+ 18, // llvm.x86.avx512.mask.pmovs.qb.mem.256
-+ 18, // llvm.x86.avx512.mask.pmovs.qb.mem.512
-+ 1, // llvm.x86.avx512.mask.pmovs.qd.128
-+ 1, // llvm.x86.avx512.mask.pmovs.qd.256
-+ 1, // llvm.x86.avx512.mask.pmovs.qd.512
-+ 18, // llvm.x86.avx512.mask.pmovs.qd.mem.128
-+ 18, // llvm.x86.avx512.mask.pmovs.qd.mem.256
-+ 18, // llvm.x86.avx512.mask.pmovs.qd.mem.512
-+ 1, // llvm.x86.avx512.mask.pmovs.qw.128
-+ 1, // llvm.x86.avx512.mask.pmovs.qw.256
-+ 1, // llvm.x86.avx512.mask.pmovs.qw.512
-+ 18, // llvm.x86.avx512.mask.pmovs.qw.mem.128
-+ 18, // llvm.x86.avx512.mask.pmovs.qw.mem.256
-+ 18, // llvm.x86.avx512.mask.pmovs.qw.mem.512
-+ 1, // llvm.x86.avx512.mask.pmovs.wb.128
-+ 1, // llvm.x86.avx512.mask.pmovs.wb.256
-+ 1, // llvm.x86.avx512.mask.pmovs.wb.512
-+ 18, // llvm.x86.avx512.mask.pmovs.wb.mem.128
-+ 18, // llvm.x86.avx512.mask.pmovs.wb.mem.256
-+ 18, // llvm.x86.avx512.mask.pmovs.wb.mem.512
-+ 1, // llvm.x86.avx512.mask.pmovus.db.128
-+ 1, // llvm.x86.avx512.mask.pmovus.db.256
-+ 1, // llvm.x86.avx512.mask.pmovus.db.512
-+ 18, // llvm.x86.avx512.mask.pmovus.db.mem.128
-+ 18, // llvm.x86.avx512.mask.pmovus.db.mem.256
-+ 18, // llvm.x86.avx512.mask.pmovus.db.mem.512
-+ 1, // llvm.x86.avx512.mask.pmovus.dw.128
-+ 1, // llvm.x86.avx512.mask.pmovus.dw.256
-+ 1, // llvm.x86.avx512.mask.pmovus.dw.512
-+ 18, // llvm.x86.avx512.mask.pmovus.dw.mem.128
-+ 18, // llvm.x86.avx512.mask.pmovus.dw.mem.256
-+ 18, // llvm.x86.avx512.mask.pmovus.dw.mem.512
-+ 1, // llvm.x86.avx512.mask.pmovus.qb.128
-+ 1, // llvm.x86.avx512.mask.pmovus.qb.256
-+ 1, // llvm.x86.avx512.mask.pmovus.qb.512
-+ 18, // llvm.x86.avx512.mask.pmovus.qb.mem.128
-+ 18, // llvm.x86.avx512.mask.pmovus.qb.mem.256
-+ 18, // llvm.x86.avx512.mask.pmovus.qb.mem.512
-+ 1, // llvm.x86.avx512.mask.pmovus.qd.128
-+ 1, // llvm.x86.avx512.mask.pmovus.qd.256
-+ 1, // llvm.x86.avx512.mask.pmovus.qd.512
-+ 18, // llvm.x86.avx512.mask.pmovus.qd.mem.128
-+ 18, // llvm.x86.avx512.mask.pmovus.qd.mem.256
-+ 18, // llvm.x86.avx512.mask.pmovus.qd.mem.512
-+ 1, // llvm.x86.avx512.mask.pmovus.qw.128
-+ 1, // llvm.x86.avx512.mask.pmovus.qw.256
-+ 1, // llvm.x86.avx512.mask.pmovus.qw.512
-+ 18, // llvm.x86.avx512.mask.pmovus.qw.mem.128
-+ 18, // llvm.x86.avx512.mask.pmovus.qw.mem.256
-+ 18, // llvm.x86.avx512.mask.pmovus.qw.mem.512
-+ 1, // llvm.x86.avx512.mask.pmovus.wb.128
-+ 1, // llvm.x86.avx512.mask.pmovus.wb.256
-+ 1, // llvm.x86.avx512.mask.pmovus.wb.512
-+ 18, // llvm.x86.avx512.mask.pmovus.wb.mem.128
-+ 18, // llvm.x86.avx512.mask.pmovus.wb.mem.256
-+ 18, // llvm.x86.avx512.mask.pmovus.wb.mem.512
-+ 1, // llvm.x86.avx512.mask.pmul.dq.128
-+ 1, // llvm.x86.avx512.mask.pmul.dq.256
-+ 1, // llvm.x86.avx512.mask.pmul.dq.512
-+ 1, // llvm.x86.avx512.mask.pmul.hr.sw.128
-+ 1, // llvm.x86.avx512.mask.pmul.hr.sw.256
-+ 1, // llvm.x86.avx512.mask.pmul.hr.sw.512
-+ 1, // llvm.x86.avx512.mask.pmulh.w.128
-+ 1, // llvm.x86.avx512.mask.pmulh.w.256
-+ 1, // llvm.x86.avx512.mask.pmulh.w.512
-+ 1, // llvm.x86.avx512.mask.pmulhu.w.128
-+ 1, // llvm.x86.avx512.mask.pmulhu.w.256
-+ 1, // llvm.x86.avx512.mask.pmulhu.w.512
-+ 1, // llvm.x86.avx512.mask.pmultishift.qb.128
-+ 1, // llvm.x86.avx512.mask.pmultishift.qb.256
-+ 1, // llvm.x86.avx512.mask.pmultishift.qb.512
-+ 1, // llvm.x86.avx512.mask.pmulu.dq.128
-+ 1, // llvm.x86.avx512.mask.pmulu.dq.256
-+ 1, // llvm.x86.avx512.mask.pmulu.dq.512
-+ 1, // llvm.x86.avx512.mask.prol.d.128
-+ 1, // llvm.x86.avx512.mask.prol.d.256
-+ 1, // llvm.x86.avx512.mask.prol.d.512
-+ 1, // llvm.x86.avx512.mask.prol.q.128
-+ 1, // llvm.x86.avx512.mask.prol.q.256
-+ 1, // llvm.x86.avx512.mask.prol.q.512
-+ 1, // llvm.x86.avx512.mask.prolv.d.128
-+ 1, // llvm.x86.avx512.mask.prolv.d.256
-+ 1, // llvm.x86.avx512.mask.prolv.d.512
-+ 1, // llvm.x86.avx512.mask.prolv.q.128
-+ 1, // llvm.x86.avx512.mask.prolv.q.256
-+ 1, // llvm.x86.avx512.mask.prolv.q.512
-+ 1, // llvm.x86.avx512.mask.pror.d.128
-+ 1, // llvm.x86.avx512.mask.pror.d.256
-+ 1, // llvm.x86.avx512.mask.pror.d.512
-+ 1, // llvm.x86.avx512.mask.pror.q.128
-+ 1, // llvm.x86.avx512.mask.pror.q.256
-+ 1, // llvm.x86.avx512.mask.pror.q.512
-+ 1, // llvm.x86.avx512.mask.prorv.d.128
-+ 1, // llvm.x86.avx512.mask.prorv.d.256
-+ 1, // llvm.x86.avx512.mask.prorv.d.512
-+ 1, // llvm.x86.avx512.mask.prorv.q.128
-+ 1, // llvm.x86.avx512.mask.prorv.q.256
-+ 1, // llvm.x86.avx512.mask.prorv.q.512
-+ 1, // llvm.x86.avx512.mask.psubs.b.128
-+ 1, // llvm.x86.avx512.mask.psubs.b.256
-+ 1, // llvm.x86.avx512.mask.psubs.b.512
-+ 1, // llvm.x86.avx512.mask.psubs.w.128
-+ 1, // llvm.x86.avx512.mask.psubs.w.256
-+ 1, // llvm.x86.avx512.mask.psubs.w.512
-+ 1, // llvm.x86.avx512.mask.psubus.b.128
-+ 1, // llvm.x86.avx512.mask.psubus.b.256
-+ 1, // llvm.x86.avx512.mask.psubus.b.512
-+ 1, // llvm.x86.avx512.mask.psubus.w.128
-+ 1, // llvm.x86.avx512.mask.psubus.w.256
-+ 1, // llvm.x86.avx512.mask.psubus.w.512
-+ 1, // llvm.x86.avx512.mask.pternlog.d.128
-+ 1, // llvm.x86.avx512.mask.pternlog.d.256
-+ 1, // llvm.x86.avx512.mask.pternlog.d.512
-+ 1, // llvm.x86.avx512.mask.pternlog.q.128
-+ 1, // llvm.x86.avx512.mask.pternlog.q.256
-+ 1, // llvm.x86.avx512.mask.pternlog.q.512
-+ 1, // llvm.x86.avx512.mask.range.pd.128
-+ 1, // llvm.x86.avx512.mask.range.pd.256
-+ 1, // llvm.x86.avx512.mask.range.pd.512
-+ 1, // llvm.x86.avx512.mask.range.ps.128
-+ 1, // llvm.x86.avx512.mask.range.ps.256
-+ 1, // llvm.x86.avx512.mask.range.ps.512
-+ 1, // llvm.x86.avx512.mask.range.sd
-+ 1, // llvm.x86.avx512.mask.range.ss
-+ 1, // llvm.x86.avx512.mask.reduce.pd.128
-+ 1, // llvm.x86.avx512.mask.reduce.pd.256
-+ 1, // llvm.x86.avx512.mask.reduce.pd.512
-+ 1, // llvm.x86.avx512.mask.reduce.ps.128
-+ 1, // llvm.x86.avx512.mask.reduce.ps.256
-+ 1, // llvm.x86.avx512.mask.reduce.ps.512
-+ 1, // llvm.x86.avx512.mask.reduce.sd
-+ 1, // llvm.x86.avx512.mask.reduce.ss
-+ 1, // llvm.x86.avx512.mask.rndscale.pd.128
-+ 1, // llvm.x86.avx512.mask.rndscale.pd.256
-+ 1, // llvm.x86.avx512.mask.rndscale.pd.512
-+ 1, // llvm.x86.avx512.mask.rndscale.ps.128
-+ 1, // llvm.x86.avx512.mask.rndscale.ps.256
-+ 1, // llvm.x86.avx512.mask.rndscale.ps.512
-+ 1, // llvm.x86.avx512.mask.rndscale.sd
-+ 1, // llvm.x86.avx512.mask.rndscale.ss
-+ 1, // llvm.x86.avx512.mask.scalef.pd.128
-+ 1, // llvm.x86.avx512.mask.scalef.pd.256
-+ 1, // llvm.x86.avx512.mask.scalef.pd.512
-+ 1, // llvm.x86.avx512.mask.scalef.ps.128
-+ 1, // llvm.x86.avx512.mask.scalef.ps.256
-+ 1, // llvm.x86.avx512.mask.scalef.ps.512
-+ 1, // llvm.x86.avx512.mask.scalef.sd
-+ 1, // llvm.x86.avx512.mask.scalef.ss
-+ 1, // llvm.x86.avx512.mask.shuf.f32x4
-+ 1, // llvm.x86.avx512.mask.shuf.f32x4.256
-+ 1, // llvm.x86.avx512.mask.shuf.f64x2
-+ 1, // llvm.x86.avx512.mask.shuf.f64x2.256
-+ 1, // llvm.x86.avx512.mask.shuf.i32x4
-+ 1, // llvm.x86.avx512.mask.shuf.i32x4.256
-+ 1, // llvm.x86.avx512.mask.shuf.i64x2
-+ 1, // llvm.x86.avx512.mask.shuf.i64x2.256
-+ 1, // llvm.x86.avx512.mask.sqrt.pd.128
-+ 1, // llvm.x86.avx512.mask.sqrt.pd.256
-+ 1, // llvm.x86.avx512.mask.sqrt.pd.512
-+ 1, // llvm.x86.avx512.mask.sqrt.ps.128
-+ 1, // llvm.x86.avx512.mask.sqrt.ps.256
-+ 1, // llvm.x86.avx512.mask.sqrt.ps.512
-+ 1, // llvm.x86.avx512.mask.sqrt.sd
-+ 1, // llvm.x86.avx512.mask.sqrt.ss
-+ 18, // llvm.x86.avx512.mask.store.ss
-+ 1, // llvm.x86.avx512.mask.sub.pd.512
-+ 1, // llvm.x86.avx512.mask.sub.ps.512
-+ 1, // llvm.x86.avx512.mask.sub.sd.round
-+ 1, // llvm.x86.avx512.mask.sub.ss.round
-+ 1, // llvm.x86.avx512.mask.ucmp.b.128
-+ 1, // llvm.x86.avx512.mask.ucmp.b.256
-+ 1, // llvm.x86.avx512.mask.ucmp.b.512
-+ 1, // llvm.x86.avx512.mask.ucmp.d.128
-+ 1, // llvm.x86.avx512.mask.ucmp.d.256
-+ 1, // llvm.x86.avx512.mask.ucmp.d.512
-+ 1, // llvm.x86.avx512.mask.ucmp.q.128
-+ 1, // llvm.x86.avx512.mask.ucmp.q.256
-+ 1, // llvm.x86.avx512.mask.ucmp.q.512
-+ 1, // llvm.x86.avx512.mask.ucmp.w.128
-+ 1, // llvm.x86.avx512.mask.ucmp.w.256
-+ 1, // llvm.x86.avx512.mask.ucmp.w.512
-+ 1, // llvm.x86.avx512.mask.vcvtph2ps.128
-+ 1, // llvm.x86.avx512.mask.vcvtph2ps.256
-+ 1, // llvm.x86.avx512.mask.vcvtph2ps.512
-+ 1, // llvm.x86.avx512.mask.vcvtps2ph.128
-+ 1, // llvm.x86.avx512.mask.vcvtps2ph.256
-+ 1, // llvm.x86.avx512.mask.vcvtps2ph.512
-+ 1, // llvm.x86.avx512.mask.vextractf32x4.256
-+ 1, // llvm.x86.avx512.mask.vextractf32x4.512
-+ 1, // llvm.x86.avx512.mask.vextractf32x8.512
-+ 1, // llvm.x86.avx512.mask.vextractf64x2.256
-+ 1, // llvm.x86.avx512.mask.vextractf64x2.512
-+ 1, // llvm.x86.avx512.mask.vextractf64x4.512
-+ 1, // llvm.x86.avx512.mask.vextracti32x4.256
-+ 1, // llvm.x86.avx512.mask.vextracti32x4.512
-+ 1, // llvm.x86.avx512.mask.vextracti32x8.512
-+ 1, // llvm.x86.avx512.mask.vextracti64x2.256
-+ 1, // llvm.x86.avx512.mask.vextracti64x2.512
-+ 1, // llvm.x86.avx512.mask.vextracti64x4.512
-+ 1, // llvm.x86.avx512.mask.vfmadd.pd.128
-+ 1, // llvm.x86.avx512.mask.vfmadd.pd.256
-+ 1, // llvm.x86.avx512.mask.vfmadd.pd.512
-+ 1, // llvm.x86.avx512.mask.vfmadd.ps.128
-+ 1, // llvm.x86.avx512.mask.vfmadd.ps.256
-+ 1, // llvm.x86.avx512.mask.vfmadd.ps.512
-+ 1, // llvm.x86.avx512.mask.vfmadd.sd
-+ 1, // llvm.x86.avx512.mask.vfmadd.ss
-+ 1, // llvm.x86.avx512.mask.vfmaddsub.pd.128
-+ 1, // llvm.x86.avx512.mask.vfmaddsub.pd.256
-+ 1, // llvm.x86.avx512.mask.vfmaddsub.pd.512
-+ 1, // llvm.x86.avx512.mask.vfmaddsub.ps.128
-+ 1, // llvm.x86.avx512.mask.vfmaddsub.ps.256
-+ 1, // llvm.x86.avx512.mask.vfmaddsub.ps.512
-+ 1, // llvm.x86.avx512.mask.vfnmadd.pd.128
-+ 1, // llvm.x86.avx512.mask.vfnmadd.pd.256
-+ 1, // llvm.x86.avx512.mask.vfnmadd.pd.512
-+ 1, // llvm.x86.avx512.mask.vfnmadd.ps.128
-+ 1, // llvm.x86.avx512.mask.vfnmadd.ps.256
-+ 1, // llvm.x86.avx512.mask.vfnmadd.ps.512
-+ 1, // llvm.x86.avx512.mask.vfnmsub.pd.128
-+ 1, // llvm.x86.avx512.mask.vfnmsub.pd.256
-+ 1, // llvm.x86.avx512.mask.vfnmsub.pd.512
-+ 1, // llvm.x86.avx512.mask.vfnmsub.ps.128
-+ 1, // llvm.x86.avx512.mask.vfnmsub.ps.256
-+ 1, // llvm.x86.avx512.mask.vfnmsub.ps.512
-+ 1, // llvm.x86.avx512.mask.vpermi2var.d.128
-+ 1, // llvm.x86.avx512.mask.vpermi2var.d.256
-+ 1, // llvm.x86.avx512.mask.vpermi2var.d.512
-+ 1, // llvm.x86.avx512.mask.vpermi2var.hi.128
-+ 1, // llvm.x86.avx512.mask.vpermi2var.hi.256
-+ 1, // llvm.x86.avx512.mask.vpermi2var.hi.512
-+ 1, // llvm.x86.avx512.mask.vpermi2var.pd.128
-+ 1, // llvm.x86.avx512.mask.vpermi2var.pd.256
-+ 1, // llvm.x86.avx512.mask.vpermi2var.pd.512
-+ 1, // llvm.x86.avx512.mask.vpermi2var.ps.128
-+ 1, // llvm.x86.avx512.mask.vpermi2var.ps.256
-+ 1, // llvm.x86.avx512.mask.vpermi2var.ps.512
-+ 1, // llvm.x86.avx512.mask.vpermi2var.q.128
-+ 1, // llvm.x86.avx512.mask.vpermi2var.q.256
-+ 1, // llvm.x86.avx512.mask.vpermi2var.q.512
-+ 1, // llvm.x86.avx512.mask.vpermi2var.qi.128
-+ 1, // llvm.x86.avx512.mask.vpermi2var.qi.256
-+ 1, // llvm.x86.avx512.mask.vpermi2var.qi.512
-+ 1, // llvm.x86.avx512.mask.vpermt2var.d.128
-+ 1, // llvm.x86.avx512.mask.vpermt2var.d.256
-+ 1, // llvm.x86.avx512.mask.vpermt2var.d.512
-+ 1, // llvm.x86.avx512.mask.vpermt2var.hi.128
-+ 1, // llvm.x86.avx512.mask.vpermt2var.hi.256
-+ 1, // llvm.x86.avx512.mask.vpermt2var.hi.512
-+ 1, // llvm.x86.avx512.mask.vpermt2var.pd.128
-+ 1, // llvm.x86.avx512.mask.vpermt2var.pd.256
-+ 1, // llvm.x86.avx512.mask.vpermt2var.pd.512
-+ 1, // llvm.x86.avx512.mask.vpermt2var.ps.128
-+ 1, // llvm.x86.avx512.mask.vpermt2var.ps.256
-+ 1, // llvm.x86.avx512.mask.vpermt2var.ps.512
-+ 1, // llvm.x86.avx512.mask.vpermt2var.q.128
-+ 1, // llvm.x86.avx512.mask.vpermt2var.q.256
-+ 1, // llvm.x86.avx512.mask.vpermt2var.q.512
-+ 1, // llvm.x86.avx512.mask.vpermt2var.qi.128
-+ 1, // llvm.x86.avx512.mask.vpermt2var.qi.256
-+ 1, // llvm.x86.avx512.mask.vpermt2var.qi.512
-+ 1, // llvm.x86.avx512.mask.vpmadd52h.uq.128
-+ 1, // llvm.x86.avx512.mask.vpmadd52h.uq.256
-+ 1, // llvm.x86.avx512.mask.vpmadd52h.uq.512
-+ 1, // llvm.x86.avx512.mask.vpmadd52l.uq.128
-+ 1, // llvm.x86.avx512.mask.vpmadd52l.uq.256
-+ 1, // llvm.x86.avx512.mask.vpmadd52l.uq.512
-+ 1, // llvm.x86.avx512.mask3.vfmadd.pd.128
-+ 1, // llvm.x86.avx512.mask3.vfmadd.pd.256
-+ 1, // llvm.x86.avx512.mask3.vfmadd.pd.512
-+ 1, // llvm.x86.avx512.mask3.vfmadd.ps.128
-+ 1, // llvm.x86.avx512.mask3.vfmadd.ps.256
-+ 1, // llvm.x86.avx512.mask3.vfmadd.ps.512
-+ 1, // llvm.x86.avx512.mask3.vfmadd.sd
-+ 1, // llvm.x86.avx512.mask3.vfmadd.ss
-+ 1, // llvm.x86.avx512.mask3.vfmaddsub.pd.128
-+ 1, // llvm.x86.avx512.mask3.vfmaddsub.pd.256
-+ 1, // llvm.x86.avx512.mask3.vfmaddsub.pd.512
-+ 1, // llvm.x86.avx512.mask3.vfmaddsub.ps.128
-+ 1, // llvm.x86.avx512.mask3.vfmaddsub.ps.256
-+ 1, // llvm.x86.avx512.mask3.vfmaddsub.ps.512
-+ 1, // llvm.x86.avx512.mask3.vfmsub.pd.128
-+ 1, // llvm.x86.avx512.mask3.vfmsub.pd.256
-+ 1, // llvm.x86.avx512.mask3.vfmsub.pd.512
-+ 1, // llvm.x86.avx512.mask3.vfmsub.ps.128
-+ 1, // llvm.x86.avx512.mask3.vfmsub.ps.256
-+ 1, // llvm.x86.avx512.mask3.vfmsub.ps.512
-+ 1, // llvm.x86.avx512.mask3.vfmsub.sd
-+ 1, // llvm.x86.avx512.mask3.vfmsub.ss
-+ 1, // llvm.x86.avx512.mask3.vfmsubadd.pd.128
-+ 1, // llvm.x86.avx512.mask3.vfmsubadd.pd.256
-+ 1, // llvm.x86.avx512.mask3.vfmsubadd.pd.512
-+ 1, // llvm.x86.avx512.mask3.vfmsubadd.ps.128
-+ 1, // llvm.x86.avx512.mask3.vfmsubadd.ps.256
-+ 1, // llvm.x86.avx512.mask3.vfmsubadd.ps.512
-+ 1, // llvm.x86.avx512.mask3.vfnmsub.pd.128
-+ 1, // llvm.x86.avx512.mask3.vfnmsub.pd.256
-+ 1, // llvm.x86.avx512.mask3.vfnmsub.pd.512
-+ 1, // llvm.x86.avx512.mask3.vfnmsub.ps.128
-+ 1, // llvm.x86.avx512.mask3.vfnmsub.ps.256
-+ 1, // llvm.x86.avx512.mask3.vfnmsub.ps.512
-+ 1, // llvm.x86.avx512.mask3.vfnmsub.sd
-+ 1, // llvm.x86.avx512.mask3.vfnmsub.ss
-+ 1, // llvm.x86.avx512.maskz.fixupimm.pd.128
-+ 1, // llvm.x86.avx512.maskz.fixupimm.pd.256
-+ 1, // llvm.x86.avx512.maskz.fixupimm.pd.512
-+ 1, // llvm.x86.avx512.maskz.fixupimm.ps.128
-+ 1, // llvm.x86.avx512.maskz.fixupimm.ps.256
-+ 1, // llvm.x86.avx512.maskz.fixupimm.ps.512
-+ 1, // llvm.x86.avx512.maskz.fixupimm.sd
-+ 1, // llvm.x86.avx512.maskz.fixupimm.ss
-+ 1, // llvm.x86.avx512.maskz.pternlog.d.128
-+ 1, // llvm.x86.avx512.maskz.pternlog.d.256
-+ 1, // llvm.x86.avx512.maskz.pternlog.d.512
-+ 1, // llvm.x86.avx512.maskz.pternlog.q.128
-+ 1, // llvm.x86.avx512.maskz.pternlog.q.256
-+ 1, // llvm.x86.avx512.maskz.pternlog.q.512
-+ 1, // llvm.x86.avx512.maskz.vfmadd.pd.128
-+ 1, // llvm.x86.avx512.maskz.vfmadd.pd.256
-+ 1, // llvm.x86.avx512.maskz.vfmadd.pd.512
-+ 1, // llvm.x86.avx512.maskz.vfmadd.ps.128
-+ 1, // llvm.x86.avx512.maskz.vfmadd.ps.256
-+ 1, // llvm.x86.avx512.maskz.vfmadd.ps.512
-+ 1, // llvm.x86.avx512.maskz.vfmadd.sd
-+ 1, // llvm.x86.avx512.maskz.vfmadd.ss
-+ 1, // llvm.x86.avx512.maskz.vfmaddsub.pd.128
-+ 1, // llvm.x86.avx512.maskz.vfmaddsub.pd.256
-+ 1, // llvm.x86.avx512.maskz.vfmaddsub.pd.512
-+ 1, // llvm.x86.avx512.maskz.vfmaddsub.ps.128
-+ 1, // llvm.x86.avx512.maskz.vfmaddsub.ps.256
-+ 1, // llvm.x86.avx512.maskz.vfmaddsub.ps.512
-+ 1, // llvm.x86.avx512.maskz.vpermt2var.d.128
-+ 1, // llvm.x86.avx512.maskz.vpermt2var.d.256
-+ 1, // llvm.x86.avx512.maskz.vpermt2var.d.512
-+ 1, // llvm.x86.avx512.maskz.vpermt2var.hi.128
-+ 1, // llvm.x86.avx512.maskz.vpermt2var.hi.256
-+ 1, // llvm.x86.avx512.maskz.vpermt2var.hi.512
-+ 1, // llvm.x86.avx512.maskz.vpermt2var.pd.128
-+ 1, // llvm.x86.avx512.maskz.vpermt2var.pd.256
-+ 1, // llvm.x86.avx512.maskz.vpermt2var.pd.512
-+ 1, // llvm.x86.avx512.maskz.vpermt2var.ps.128
-+ 1, // llvm.x86.avx512.maskz.vpermt2var.ps.256
-+ 1, // llvm.x86.avx512.maskz.vpermt2var.ps.512
-+ 1, // llvm.x86.avx512.maskz.vpermt2var.q.128
-+ 1, // llvm.x86.avx512.maskz.vpermt2var.q.256
-+ 1, // llvm.x86.avx512.maskz.vpermt2var.q.512
-+ 1, // llvm.x86.avx512.maskz.vpermt2var.qi.128
-+ 1, // llvm.x86.avx512.maskz.vpermt2var.qi.256
-+ 1, // llvm.x86.avx512.maskz.vpermt2var.qi.512
-+ 1, // llvm.x86.avx512.maskz.vpmadd52h.uq.128
-+ 1, // llvm.x86.avx512.maskz.vpmadd52h.uq.256
-+ 1, // llvm.x86.avx512.maskz.vpmadd52h.uq.512
-+ 1, // llvm.x86.avx512.maskz.vpmadd52l.uq.128
-+ 1, // llvm.x86.avx512.maskz.vpmadd52l.uq.256
-+ 1, // llvm.x86.avx512.maskz.vpmadd52l.uq.512
-+ 13, // llvm.x86.avx512.movntdqa
-+ 1, // llvm.x86.avx512.psad.bw.512
-+ 1, // llvm.x86.avx512.pshuf.b.512
-+ 1, // llvm.x86.avx512.psll.d.512
-+ 1, // llvm.x86.avx512.psll.q.512
-+ 1, // llvm.x86.avx512.psll.w.512
-+ 1, // llvm.x86.avx512.pslli.d.512
-+ 1, // llvm.x86.avx512.pslli.q.512
-+ 1, // llvm.x86.avx512.pslli.w.512
-+ 1, // llvm.x86.avx512.psllv.d.512
-+ 1, // llvm.x86.avx512.psllv.q.512
-+ 1, // llvm.x86.avx512.psllv.w.128
-+ 1, // llvm.x86.avx512.psllv.w.256
-+ 1, // llvm.x86.avx512.psllv.w.512
-+ 1, // llvm.x86.avx512.psra.d.512
-+ 1, // llvm.x86.avx512.psra.q.128
-+ 1, // llvm.x86.avx512.psra.q.256
-+ 1, // llvm.x86.avx512.psra.q.512
-+ 1, // llvm.x86.avx512.psra.w.512
-+ 1, // llvm.x86.avx512.psrai.d.512
-+ 1, // llvm.x86.avx512.psrai.q.128
-+ 1, // llvm.x86.avx512.psrai.q.256
-+ 1, // llvm.x86.avx512.psrai.q.512
-+ 1, // llvm.x86.avx512.psrai.w.512
-+ 1, // llvm.x86.avx512.psrav.d.512
-+ 1, // llvm.x86.avx512.psrav.q.128
-+ 1, // llvm.x86.avx512.psrav.q.256
-+ 1, // llvm.x86.avx512.psrav.q.512
-+ 1, // llvm.x86.avx512.psrav.w.128
-+ 1, // llvm.x86.avx512.psrav.w.256
-+ 1, // llvm.x86.avx512.psrav.w.512
-+ 1, // llvm.x86.avx512.psrl.d.512
-+ 1, // llvm.x86.avx512.psrl.q.512
-+ 1, // llvm.x86.avx512.psrl.w.512
-+ 1, // llvm.x86.avx512.psrli.d.512
-+ 1, // llvm.x86.avx512.psrli.q.512
-+ 1, // llvm.x86.avx512.psrli.w.512
-+ 1, // llvm.x86.avx512.psrlv.d.512
-+ 1, // llvm.x86.avx512.psrlv.q.512
-+ 1, // llvm.x86.avx512.psrlv.w.128
-+ 1, // llvm.x86.avx512.psrlv.w.256
-+ 1, // llvm.x86.avx512.psrlv.w.512
-+ 1, // llvm.x86.avx512.ptestm.b.128
-+ 1, // llvm.x86.avx512.ptestm.b.256
-+ 1, // llvm.x86.avx512.ptestm.b.512
-+ 1, // llvm.x86.avx512.ptestm.d.128
-+ 1, // llvm.x86.avx512.ptestm.d.256
-+ 1, // llvm.x86.avx512.ptestm.d.512
-+ 1, // llvm.x86.avx512.ptestm.q.128
-+ 1, // llvm.x86.avx512.ptestm.q.256
-+ 1, // llvm.x86.avx512.ptestm.q.512
-+ 1, // llvm.x86.avx512.ptestm.w.128
-+ 1, // llvm.x86.avx512.ptestm.w.256
-+ 1, // llvm.x86.avx512.ptestm.w.512
-+ 1, // llvm.x86.avx512.ptestnm.b.128
-+ 1, // llvm.x86.avx512.ptestnm.b.256
-+ 1, // llvm.x86.avx512.ptestnm.b.512
-+ 1, // llvm.x86.avx512.ptestnm.d.128
-+ 1, // llvm.x86.avx512.ptestnm.d.256
-+ 1, // llvm.x86.avx512.ptestnm.d.512
-+ 1, // llvm.x86.avx512.ptestnm.q.128
-+ 1, // llvm.x86.avx512.ptestnm.q.256
-+ 1, // llvm.x86.avx512.ptestnm.q.512
-+ 1, // llvm.x86.avx512.ptestnm.w.128
-+ 1, // llvm.x86.avx512.ptestnm.w.256
-+ 1, // llvm.x86.avx512.ptestnm.w.512
-+ 1, // llvm.x86.avx512.rcp14.pd.128
-+ 1, // llvm.x86.avx512.rcp14.pd.256
-+ 1, // llvm.x86.avx512.rcp14.pd.512
-+ 1, // llvm.x86.avx512.rcp14.ps.128
-+ 1, // llvm.x86.avx512.rcp14.ps.256
-+ 1, // llvm.x86.avx512.rcp14.ps.512
-+ 1, // llvm.x86.avx512.rcp14.sd
-+ 1, // llvm.x86.avx512.rcp14.ss
-+ 1, // llvm.x86.avx512.rcp28.pd
-+ 1, // llvm.x86.avx512.rcp28.ps
-+ 1, // llvm.x86.avx512.rcp28.sd
-+ 1, // llvm.x86.avx512.rcp28.ss
-+ 1, // llvm.x86.avx512.rsqrt14.pd.128
-+ 1, // llvm.x86.avx512.rsqrt14.pd.256
-+ 1, // llvm.x86.avx512.rsqrt14.pd.512
-+ 1, // llvm.x86.avx512.rsqrt14.ps.128
-+ 1, // llvm.x86.avx512.rsqrt14.ps.256
-+ 1, // llvm.x86.avx512.rsqrt14.ps.512
-+ 1, // llvm.x86.avx512.rsqrt14.sd
-+ 1, // llvm.x86.avx512.rsqrt14.ss
-+ 1, // llvm.x86.avx512.rsqrt28.pd
-+ 1, // llvm.x86.avx512.rsqrt28.ps
-+ 1, // llvm.x86.avx512.rsqrt28.sd
-+ 1, // llvm.x86.avx512.rsqrt28.ss
-+ 18, // llvm.x86.avx512.scatter.dpd.512
-+ 18, // llvm.x86.avx512.scatter.dpi.512
-+ 18, // llvm.x86.avx512.scatter.dpq.512
-+ 18, // llvm.x86.avx512.scatter.dps.512
-+ 18, // llvm.x86.avx512.scatter.qpd.512
-+ 18, // llvm.x86.avx512.scatter.qpi.512
-+ 18, // llvm.x86.avx512.scatter.qpq.512
-+ 18, // llvm.x86.avx512.scatter.qps.512
-+ 18, // llvm.x86.avx512.scatterdiv2.df
-+ 18, // llvm.x86.avx512.scatterdiv2.di
-+ 18, // llvm.x86.avx512.scatterdiv4.df
-+ 18, // llvm.x86.avx512.scatterdiv4.di
-+ 18, // llvm.x86.avx512.scatterdiv4.sf
-+ 18, // llvm.x86.avx512.scatterdiv4.si
-+ 18, // llvm.x86.avx512.scatterdiv8.sf
-+ 18, // llvm.x86.avx512.scatterdiv8.si
-+ 18, // llvm.x86.avx512.scatterpf.dpd.512
-+ 18, // llvm.x86.avx512.scatterpf.dps.512
-+ 18, // llvm.x86.avx512.scatterpf.qpd.512
-+ 18, // llvm.x86.avx512.scatterpf.qps.512
-+ 18, // llvm.x86.avx512.scattersiv2.df
-+ 18, // llvm.x86.avx512.scattersiv2.di
-+ 18, // llvm.x86.avx512.scattersiv4.df
-+ 18, // llvm.x86.avx512.scattersiv4.di
-+ 18, // llvm.x86.avx512.scattersiv4.sf
-+ 18, // llvm.x86.avx512.scattersiv4.si
-+ 18, // llvm.x86.avx512.scattersiv8.sf
-+ 18, // llvm.x86.avx512.scattersiv8.si
-+ 2, // llvm.x86.avx512.vbroadcast.sd.512
-+ 2, // llvm.x86.avx512.vbroadcast.ss.512
-+ 1, // llvm.x86.avx512.vcomi.sd
-+ 1, // llvm.x86.avx512.vcomi.ss
-+ 1, // llvm.x86.avx512.vcvtsd2si32
-+ 1, // llvm.x86.avx512.vcvtsd2si64
-+ 1, // llvm.x86.avx512.vcvtsd2usi32
-+ 1, // llvm.x86.avx512.vcvtsd2usi64
-+ 1, // llvm.x86.avx512.vcvtss2si32
-+ 1, // llvm.x86.avx512.vcvtss2si64
-+ 1, // llvm.x86.avx512.vcvtss2usi32
-+ 1, // llvm.x86.avx512.vcvtss2usi64
-+ 1, // llvm.x86.avx512.vpermilvar.pd.512
-+ 1, // llvm.x86.avx512.vpermilvar.ps.512
-+ 1, // llvm.x86.bmi.bextr.32
-+ 1, // llvm.x86.bmi.bextr.64
-+ 1, // llvm.x86.bmi.bzhi.32
-+ 1, // llvm.x86.bmi.bzhi.64
-+ 1, // llvm.x86.bmi.pdep.32
-+ 1, // llvm.x86.bmi.pdep.64
-+ 1, // llvm.x86.bmi.pext.32
-+ 1, // llvm.x86.bmi.pext.64
-+ 3, // llvm.x86.clflushopt
-+ 3, // llvm.x86.flags.read.u32
-+ 3, // llvm.x86.flags.read.u64
-+ 3, // llvm.x86.flags.write.u32
-+ 3, // llvm.x86.flags.write.u64
-+ 1, // llvm.x86.fma.vfmadd.pd
-+ 1, // llvm.x86.fma.vfmadd.pd.256
-+ 1, // llvm.x86.fma.vfmadd.ps
-+ 1, // llvm.x86.fma.vfmadd.ps.256
-+ 1, // llvm.x86.fma.vfmadd.sd
-+ 1, // llvm.x86.fma.vfmadd.ss
-+ 1, // llvm.x86.fma.vfmaddsub.pd
-+ 1, // llvm.x86.fma.vfmaddsub.pd.256
-+ 1, // llvm.x86.fma.vfmaddsub.ps
-+ 1, // llvm.x86.fma.vfmaddsub.ps.256
-+ 1, // llvm.x86.fma.vfmsub.pd
-+ 1, // llvm.x86.fma.vfmsub.pd.256
-+ 1, // llvm.x86.fma.vfmsub.ps
-+ 1, // llvm.x86.fma.vfmsub.ps.256
-+ 1, // llvm.x86.fma.vfmsub.sd
-+ 1, // llvm.x86.fma.vfmsub.ss
-+ 1, // llvm.x86.fma.vfmsubadd.pd
-+ 1, // llvm.x86.fma.vfmsubadd.pd.256
-+ 1, // llvm.x86.fma.vfmsubadd.ps
-+ 1, // llvm.x86.fma.vfmsubadd.ps.256
-+ 1, // llvm.x86.fma.vfnmadd.pd
-+ 1, // llvm.x86.fma.vfnmadd.pd.256
-+ 1, // llvm.x86.fma.vfnmadd.ps
-+ 1, // llvm.x86.fma.vfnmadd.ps.256
-+ 1, // llvm.x86.fma.vfnmadd.sd
-+ 1, // llvm.x86.fma.vfnmadd.ss
-+ 1, // llvm.x86.fma.vfnmsub.pd
-+ 1, // llvm.x86.fma.vfnmsub.pd.256
-+ 1, // llvm.x86.fma.vfnmsub.ps
-+ 1, // llvm.x86.fma.vfnmsub.ps.256
-+ 1, // llvm.x86.fma.vfnmsub.sd
-+ 1, // llvm.x86.fma.vfnmsub.ss
-+ 3, // llvm.x86.fxrstor
-+ 3, // llvm.x86.fxrstor64
-+ 3, // llvm.x86.fxsave
-+ 3, // llvm.x86.fxsave64
-+ 3, // llvm.x86.int
-+ 3, // llvm.x86.mmx.emms
-+ 3, // llvm.x86.mmx.femms
-+ 3, // llvm.x86.mmx.maskmovq
-+ 3, // llvm.x86.mmx.movnt.dq
-+ 1, // llvm.x86.mmx.packssdw
-+ 1, // llvm.x86.mmx.packsswb
-+ 1, // llvm.x86.mmx.packuswb
-+ 1, // llvm.x86.mmx.padd.b
-+ 1, // llvm.x86.mmx.padd.d
-+ 1, // llvm.x86.mmx.padd.q
-+ 1, // llvm.x86.mmx.padd.w
-+ 1, // llvm.x86.mmx.padds.b
-+ 1, // llvm.x86.mmx.padds.w
-+ 1, // llvm.x86.mmx.paddus.b
-+ 1, // llvm.x86.mmx.paddus.w
-+ 1, // llvm.x86.mmx.palignr.b
-+ 1, // llvm.x86.mmx.pand
-+ 1, // llvm.x86.mmx.pandn
-+ 1, // llvm.x86.mmx.pavg.b
-+ 1, // llvm.x86.mmx.pavg.w
-+ 1, // llvm.x86.mmx.pcmpeq.b
-+ 1, // llvm.x86.mmx.pcmpeq.d
-+ 1, // llvm.x86.mmx.pcmpeq.w
-+ 1, // llvm.x86.mmx.pcmpgt.b
-+ 1, // llvm.x86.mmx.pcmpgt.d
-+ 1, // llvm.x86.mmx.pcmpgt.w
-+ 1, // llvm.x86.mmx.pextr.w
-+ 1, // llvm.x86.mmx.pinsr.w
-+ 1, // llvm.x86.mmx.pmadd.wd
-+ 1, // llvm.x86.mmx.pmaxs.w
-+ 1, // llvm.x86.mmx.pmaxu.b
-+ 1, // llvm.x86.mmx.pmins.w
-+ 1, // llvm.x86.mmx.pminu.b
-+ 1, // llvm.x86.mmx.pmovmskb
-+ 1, // llvm.x86.mmx.pmulh.w
-+ 1, // llvm.x86.mmx.pmulhu.w
-+ 1, // llvm.x86.mmx.pmull.w
-+ 1, // llvm.x86.mmx.pmulu.dq
-+ 1, // llvm.x86.mmx.por
-+ 1, // llvm.x86.mmx.psad.bw
-+ 1, // llvm.x86.mmx.psll.d
-+ 1, // llvm.x86.mmx.psll.q
-+ 1, // llvm.x86.mmx.psll.w
-+ 1, // llvm.x86.mmx.pslli.d
-+ 1, // llvm.x86.mmx.pslli.q
-+ 1, // llvm.x86.mmx.pslli.w
-+ 1, // llvm.x86.mmx.psra.d
-+ 1, // llvm.x86.mmx.psra.w
-+ 1, // llvm.x86.mmx.psrai.d
-+ 1, // llvm.x86.mmx.psrai.w
-+ 1, // llvm.x86.mmx.psrl.d
-+ 1, // llvm.x86.mmx.psrl.q
-+ 1, // llvm.x86.mmx.psrl.w
-+ 1, // llvm.x86.mmx.psrli.d
-+ 1, // llvm.x86.mmx.psrli.q
-+ 1, // llvm.x86.mmx.psrli.w
-+ 1, // llvm.x86.mmx.psub.b
-+ 1, // llvm.x86.mmx.psub.d
-+ 1, // llvm.x86.mmx.psub.q
-+ 1, // llvm.x86.mmx.psub.w
-+ 1, // llvm.x86.mmx.psubs.b
-+ 1, // llvm.x86.mmx.psubs.w
-+ 1, // llvm.x86.mmx.psubus.b
-+ 1, // llvm.x86.mmx.psubus.w
-+ 1, // llvm.x86.mmx.punpckhbw
-+ 1, // llvm.x86.mmx.punpckhdq
-+ 1, // llvm.x86.mmx.punpckhwd
-+ 1, // llvm.x86.mmx.punpcklbw
-+ 1, // llvm.x86.mmx.punpckldq
-+ 1, // llvm.x86.mmx.punpcklwd
-+ 1, // llvm.x86.mmx.pxor
-+ 3, // llvm.x86.monitorx
-+ 3, // llvm.x86.mwaitx
-+ 1, // llvm.x86.pclmulqdq
-+ 3, // llvm.x86.rdfsbase.32
-+ 3, // llvm.x86.rdfsbase.64
-+ 3, // llvm.x86.rdgsbase.32
-+ 3, // llvm.x86.rdgsbase.64
-+ 3, // llvm.x86.rdpkru
-+ 3, // llvm.x86.rdpmc
-+ 3, // llvm.x86.rdrand.16
-+ 3, // llvm.x86.rdrand.32
-+ 3, // llvm.x86.rdrand.64
-+ 3, // llvm.x86.rdseed.16
-+ 3, // llvm.x86.rdseed.32
-+ 3, // llvm.x86.rdseed.64
-+ 3, // llvm.x86.rdtsc
-+ 18, // llvm.x86.rdtscp
-+ 3, // llvm.x86.seh.ehguard
-+ 3, // llvm.x86.seh.ehregnode
-+ 1, // llvm.x86.seh.lsda
-+ 1, // llvm.x86.seh.recoverfp
-+ 1, // llvm.x86.sha1msg1
-+ 1, // llvm.x86.sha1msg2
-+ 1, // llvm.x86.sha1nexte
-+ 1, // llvm.x86.sha1rnds4
-+ 1, // llvm.x86.sha256msg1
-+ 1, // llvm.x86.sha256msg2
-+ 1, // llvm.x86.sha256rnds2
-+ 1, // llvm.x86.sse.cmp.ps
-+ 1, // llvm.x86.sse.cmp.ss
-+ 1, // llvm.x86.sse.comieq.ss
-+ 1, // llvm.x86.sse.comige.ss
-+ 1, // llvm.x86.sse.comigt.ss
-+ 1, // llvm.x86.sse.comile.ss
-+ 1, // llvm.x86.sse.comilt.ss
-+ 1, // llvm.x86.sse.comineq.ss
-+ 1, // llvm.x86.sse.cvtpd2pi
-+ 1, // llvm.x86.sse.cvtpi2pd
-+ 1, // llvm.x86.sse.cvtpi2ps
-+ 1, // llvm.x86.sse.cvtps2pi
-+ 1, // llvm.x86.sse.cvtsi2ss
-+ 1, // llvm.x86.sse.cvtsi642ss
-+ 1, // llvm.x86.sse.cvtss2si
-+ 1, // llvm.x86.sse.cvtss2si64
-+ 1, // llvm.x86.sse.cvttpd2pi
-+ 1, // llvm.x86.sse.cvttps2pi
-+ 1, // llvm.x86.sse.cvttss2si
-+ 1, // llvm.x86.sse.cvttss2si64
-+ 3, // llvm.x86.sse.ldmxcsr
-+ 1, // llvm.x86.sse.max.ps
-+ 1, // llvm.x86.sse.max.ss
-+ 1, // llvm.x86.sse.min.ps
-+ 1, // llvm.x86.sse.min.ss
-+ 1, // llvm.x86.sse.movmsk.ps
-+ 1, // llvm.x86.sse.pshuf.w
-+ 1, // llvm.x86.sse.rcp.ps
-+ 1, // llvm.x86.sse.rcp.ss
-+ 1, // llvm.x86.sse.rsqrt.ps
-+ 1, // llvm.x86.sse.rsqrt.ss
-+ 3, // llvm.x86.sse.sfence
-+ 1, // llvm.x86.sse.sqrt.ps
-+ 1, // llvm.x86.sse.sqrt.ss
-+ 3, // llvm.x86.sse.stmxcsr
-+ 1, // llvm.x86.sse.ucomieq.ss
-+ 1, // llvm.x86.sse.ucomige.ss
-+ 1, // llvm.x86.sse.ucomigt.ss
-+ 1, // llvm.x86.sse.ucomile.ss
-+ 1, // llvm.x86.sse.ucomilt.ss
-+ 1, // llvm.x86.sse.ucomineq.ss
-+ 3, // llvm.x86.sse2.clflush
-+ 1, // llvm.x86.sse2.cmp.pd
-+ 1, // llvm.x86.sse2.cmp.sd
-+ 1, // llvm.x86.sse2.comieq.sd
-+ 1, // llvm.x86.sse2.comige.sd
-+ 1, // llvm.x86.sse2.comigt.sd
-+ 1, // llvm.x86.sse2.comile.sd
-+ 1, // llvm.x86.sse2.comilt.sd
-+ 1, // llvm.x86.sse2.comineq.sd
-+ 1, // llvm.x86.sse2.cvtdq2ps
-+ 1, // llvm.x86.sse2.cvtpd2dq
-+ 1, // llvm.x86.sse2.cvtpd2ps
-+ 1, // llvm.x86.sse2.cvtps2dq
-+ 1, // llvm.x86.sse2.cvtsd2si
-+ 1, // llvm.x86.sse2.cvtsd2si64
-+ 1, // llvm.x86.sse2.cvtsd2ss
-+ 1, // llvm.x86.sse2.cvtsi2sd
-+ 1, // llvm.x86.sse2.cvtsi642sd
-+ 1, // llvm.x86.sse2.cvtss2sd
-+ 1, // llvm.x86.sse2.cvttpd2dq
-+ 1, // llvm.x86.sse2.cvttps2dq
-+ 1, // llvm.x86.sse2.cvttsd2si
-+ 1, // llvm.x86.sse2.cvttsd2si64
-+ 3, // llvm.x86.sse2.lfence
-+ 3, // llvm.x86.sse2.maskmov.dqu
-+ 1, // llvm.x86.sse2.max.pd
-+ 1, // llvm.x86.sse2.max.sd
-+ 3, // llvm.x86.sse2.mfence
-+ 1, // llvm.x86.sse2.min.pd
-+ 1, // llvm.x86.sse2.min.sd
-+ 1, // llvm.x86.sse2.movmsk.pd
-+ 1, // llvm.x86.sse2.packssdw.128
-+ 1, // llvm.x86.sse2.packsswb.128
-+ 1, // llvm.x86.sse2.packuswb.128
-+ 1, // llvm.x86.sse2.padds.b
-+ 1, // llvm.x86.sse2.padds.w
-+ 1, // llvm.x86.sse2.paddus.b
-+ 1, // llvm.x86.sse2.paddus.w
-+ 3, // llvm.x86.sse2.pause
-+ 1, // llvm.x86.sse2.pavg.b
-+ 1, // llvm.x86.sse2.pavg.w
-+ 1, // llvm.x86.sse2.pmadd.wd
-+ 1, // llvm.x86.sse2.pmovmskb.128
-+ 1, // llvm.x86.sse2.pmulh.w
-+ 1, // llvm.x86.sse2.pmulhu.w
-+ 1, // llvm.x86.sse2.pmulu.dq
-+ 1, // llvm.x86.sse2.psad.bw
-+ 1, // llvm.x86.sse2.psll.d
-+ 1, // llvm.x86.sse2.psll.q
-+ 1, // llvm.x86.sse2.psll.w
-+ 1, // llvm.x86.sse2.pslli.d
-+ 1, // llvm.x86.sse2.pslli.q
-+ 1, // llvm.x86.sse2.pslli.w
-+ 1, // llvm.x86.sse2.psra.d
-+ 1, // llvm.x86.sse2.psra.w
-+ 1, // llvm.x86.sse2.psrai.d
-+ 1, // llvm.x86.sse2.psrai.w
-+ 1, // llvm.x86.sse2.psrl.d
-+ 1, // llvm.x86.sse2.psrl.q
-+ 1, // llvm.x86.sse2.psrl.w
-+ 1, // llvm.x86.sse2.psrli.d
-+ 1, // llvm.x86.sse2.psrli.q
-+ 1, // llvm.x86.sse2.psrli.w
-+ 1, // llvm.x86.sse2.psubs.b
-+ 1, // llvm.x86.sse2.psubs.w
-+ 1, // llvm.x86.sse2.psubus.b
-+ 1, // llvm.x86.sse2.psubus.w
-+ 1, // llvm.x86.sse2.sqrt.pd
-+ 1, // llvm.x86.sse2.sqrt.sd
-+ 1, // llvm.x86.sse2.ucomieq.sd
-+ 1, // llvm.x86.sse2.ucomige.sd
-+ 1, // llvm.x86.sse2.ucomigt.sd
-+ 1, // llvm.x86.sse2.ucomile.sd
-+ 1, // llvm.x86.sse2.ucomilt.sd
-+ 1, // llvm.x86.sse2.ucomineq.sd
-+ 1, // llvm.x86.sse3.addsub.pd
-+ 1, // llvm.x86.sse3.addsub.ps
-+ 1, // llvm.x86.sse3.hadd.pd
-+ 1, // llvm.x86.sse3.hadd.ps
-+ 1, // llvm.x86.sse3.hsub.pd
-+ 1, // llvm.x86.sse3.hsub.ps
-+ 13, // llvm.x86.sse3.ldu.dq
-+ 3, // llvm.x86.sse3.monitor
-+ 3, // llvm.x86.sse3.mwait
-+ 1, // llvm.x86.sse41.blendvpd
-+ 1, // llvm.x86.sse41.blendvps
-+ 1, // llvm.x86.sse41.dppd
-+ 1, // llvm.x86.sse41.dpps
-+ 1, // llvm.x86.sse41.insertps
-+ 13, // llvm.x86.sse41.movntdqa
-+ 1, // llvm.x86.sse41.mpsadbw
-+ 1, // llvm.x86.sse41.packusdw
-+ 1, // llvm.x86.sse41.pblendvb
-+ 1, // llvm.x86.sse41.phminposuw
-+ 1, // llvm.x86.sse41.pmuldq
-+ 1, // llvm.x86.sse41.ptestc
-+ 1, // llvm.x86.sse41.ptestnzc
-+ 1, // llvm.x86.sse41.ptestz
-+ 1, // llvm.x86.sse41.round.pd
-+ 1, // llvm.x86.sse41.round.ps
-+ 1, // llvm.x86.sse41.round.sd
-+ 1, // llvm.x86.sse41.round.ss
-+ 1, // llvm.x86.sse42.crc32.32.16
-+ 1, // llvm.x86.sse42.crc32.32.32
-+ 1, // llvm.x86.sse42.crc32.32.8
-+ 1, // llvm.x86.sse42.crc32.64.64
-+ 1, // llvm.x86.sse42.pcmpestri128
-+ 1, // llvm.x86.sse42.pcmpestria128
-+ 1, // llvm.x86.sse42.pcmpestric128
-+ 1, // llvm.x86.sse42.pcmpestrio128
-+ 1, // llvm.x86.sse42.pcmpestris128
-+ 1, // llvm.x86.sse42.pcmpestriz128
-+ 1, // llvm.x86.sse42.pcmpestrm128
-+ 1, // llvm.x86.sse42.pcmpistri128
-+ 1, // llvm.x86.sse42.pcmpistria128
-+ 1, // llvm.x86.sse42.pcmpistric128
-+ 1, // llvm.x86.sse42.pcmpistrio128
-+ 1, // llvm.x86.sse42.pcmpistris128
-+ 1, // llvm.x86.sse42.pcmpistriz128
-+ 1, // llvm.x86.sse42.pcmpistrm128
-+ 1, // llvm.x86.sse4a.extrq
-+ 1, // llvm.x86.sse4a.extrqi
-+ 1, // llvm.x86.sse4a.insertq
-+ 1, // llvm.x86.sse4a.insertqi
-+ 1, // llvm.x86.ssse3.pabs.b
-+ 1, // llvm.x86.ssse3.pabs.b.128
-+ 1, // llvm.x86.ssse3.pabs.d
-+ 1, // llvm.x86.ssse3.pabs.d.128
-+ 1, // llvm.x86.ssse3.pabs.w
-+ 1, // llvm.x86.ssse3.pabs.w.128
-+ 1, // llvm.x86.ssse3.phadd.d
-+ 1, // llvm.x86.ssse3.phadd.d.128
-+ 1, // llvm.x86.ssse3.phadd.sw
-+ 1, // llvm.x86.ssse3.phadd.sw.128
-+ 1, // llvm.x86.ssse3.phadd.w
-+ 1, // llvm.x86.ssse3.phadd.w.128
-+ 1, // llvm.x86.ssse3.phsub.d
-+ 1, // llvm.x86.ssse3.phsub.d.128
-+ 1, // llvm.x86.ssse3.phsub.sw
-+ 1, // llvm.x86.ssse3.phsub.sw.128
-+ 1, // llvm.x86.ssse3.phsub.w
-+ 1, // llvm.x86.ssse3.phsub.w.128
-+ 1, // llvm.x86.ssse3.pmadd.ub.sw
-+ 1, // llvm.x86.ssse3.pmadd.ub.sw.128
-+ 1, // llvm.x86.ssse3.pmul.hr.sw
-+ 1, // llvm.x86.ssse3.pmul.hr.sw.128
-+ 1, // llvm.x86.ssse3.pshuf.b
-+ 1, // llvm.x86.ssse3.pshuf.b.128
-+ 1, // llvm.x86.ssse3.psign.b
-+ 1, // llvm.x86.ssse3.psign.b.128
-+ 1, // llvm.x86.ssse3.psign.d
-+ 1, // llvm.x86.ssse3.psign.d.128
-+ 1, // llvm.x86.ssse3.psign.w
-+ 1, // llvm.x86.ssse3.psign.w.128
-+ 18, // llvm.x86.subborrow.u32
-+ 18, // llvm.x86.subborrow.u64
-+ 1, // llvm.x86.tbm.bextri.u32
-+ 1, // llvm.x86.tbm.bextri.u64
-+ 1, // llvm.x86.vcvtph2ps.128
-+ 1, // llvm.x86.vcvtph2ps.256
-+ 1, // llvm.x86.vcvtps2ph.128
-+ 1, // llvm.x86.vcvtps2ph.256
-+ 3, // llvm.x86.wrfsbase.32
-+ 3, // llvm.x86.wrfsbase.64
-+ 3, // llvm.x86.wrgsbase.32
-+ 3, // llvm.x86.wrgsbase.64
-+ 3, // llvm.x86.wrpkru
-+ 3, // llvm.x86.xabort
-+ 3, // llvm.x86.xbegin
-+ 3, // llvm.x86.xend
-+ 3, // llvm.x86.xgetbv
-+ 1, // llvm.x86.xop.vfrcz.pd
-+ 1, // llvm.x86.xop.vfrcz.pd.256
-+ 1, // llvm.x86.xop.vfrcz.ps
-+ 1, // llvm.x86.xop.vfrcz.ps.256
-+ 1, // llvm.x86.xop.vfrcz.sd
-+ 1, // llvm.x86.xop.vfrcz.ss
-+ 1, // llvm.x86.xop.vpcmov
-+ 1, // llvm.x86.xop.vpcmov.256
-+ 1, // llvm.x86.xop.vpcomb
-+ 1, // llvm.x86.xop.vpcomd
-+ 1, // llvm.x86.xop.vpcomq
-+ 1, // llvm.x86.xop.vpcomub
-+ 1, // llvm.x86.xop.vpcomud
-+ 1, // llvm.x86.xop.vpcomuq
-+ 1, // llvm.x86.xop.vpcomuw
-+ 1, // llvm.x86.xop.vpcomw
-+ 1, // llvm.x86.xop.vpermil2pd
-+ 1, // llvm.x86.xop.vpermil2pd.256
-+ 1, // llvm.x86.xop.vpermil2ps
-+ 1, // llvm.x86.xop.vpermil2ps.256
-+ 1, // llvm.x86.xop.vphaddbd
-+ 1, // llvm.x86.xop.vphaddbq
-+ 1, // llvm.x86.xop.vphaddbw
-+ 1, // llvm.x86.xop.vphadddq
-+ 1, // llvm.x86.xop.vphaddubd
-+ 1, // llvm.x86.xop.vphaddubq
-+ 1, // llvm.x86.xop.vphaddubw
-+ 1, // llvm.x86.xop.vphaddudq
-+ 1, // llvm.x86.xop.vphadduwd
-+ 1, // llvm.x86.xop.vphadduwq
-+ 1, // llvm.x86.xop.vphaddwd
-+ 1, // llvm.x86.xop.vphaddwq
-+ 1, // llvm.x86.xop.vphsubbw
-+ 1, // llvm.x86.xop.vphsubdq
-+ 1, // llvm.x86.xop.vphsubwd
-+ 1, // llvm.x86.xop.vpmacsdd
-+ 1, // llvm.x86.xop.vpmacsdqh
-+ 1, // llvm.x86.xop.vpmacsdql
-+ 1, // llvm.x86.xop.vpmacssdd
-+ 1, // llvm.x86.xop.vpmacssdqh
-+ 1, // llvm.x86.xop.vpmacssdql
-+ 1, // llvm.x86.xop.vpmacsswd
-+ 1, // llvm.x86.xop.vpmacssww
-+ 1, // llvm.x86.xop.vpmacswd
-+ 1, // llvm.x86.xop.vpmacsww
-+ 1, // llvm.x86.xop.vpmadcsswd
-+ 1, // llvm.x86.xop.vpmadcswd
-+ 1, // llvm.x86.xop.vpperm
-+ 1, // llvm.x86.xop.vprotb
-+ 1, // llvm.x86.xop.vprotbi
-+ 1, // llvm.x86.xop.vprotd
-+ 1, // llvm.x86.xop.vprotdi
-+ 1, // llvm.x86.xop.vprotq
-+ 1, // llvm.x86.xop.vprotqi
-+ 1, // llvm.x86.xop.vprotw
-+ 1, // llvm.x86.xop.vprotwi
-+ 1, // llvm.x86.xop.vpshab
-+ 1, // llvm.x86.xop.vpshad
-+ 1, // llvm.x86.xop.vpshaq
-+ 1, // llvm.x86.xop.vpshaw
-+ 1, // llvm.x86.xop.vpshlb
-+ 1, // llvm.x86.xop.vpshld
-+ 1, // llvm.x86.xop.vpshlq
-+ 1, // llvm.x86.xop.vpshlw
-+ 3, // llvm.x86.xrstor
-+ 3, // llvm.x86.xrstor64
-+ 3, // llvm.x86.xrstors
-+ 3, // llvm.x86.xrstors64
-+ 3, // llvm.x86.xsave
-+ 3, // llvm.x86.xsave64
-+ 3, // llvm.x86.xsavec
-+ 3, // llvm.x86.xsavec64
-+ 3, // llvm.x86.xsaveopt
-+ 3, // llvm.x86.xsaveopt64
-+ 3, // llvm.x86.xsaves
-+ 3, // llvm.x86.xsaves64
-+ 3, // llvm.x86.xsetbv
-+ 3, // llvm.x86.xtest
-+ 1, // llvm.xcore.bitrev
-+ 3, // llvm.xcore.checkevent
-+ 32, // llvm.xcore.chkct
-+ 3, // llvm.xcore.clre
-+ 32, // llvm.xcore.clrpt
-+ 3, // llvm.xcore.clrsr
-+ 1, // llvm.xcore.crc32
-+ 1, // llvm.xcore.crc8
-+ 32, // llvm.xcore.edu
-+ 32, // llvm.xcore.eeu
-+ 32, // llvm.xcore.endin
-+ 32, // llvm.xcore.freer
-+ 3, // llvm.xcore.geted
-+ 3, // llvm.xcore.getet
-+ 1, // llvm.xcore.getid
-+ 3, // llvm.xcore.getps
-+ 3, // llvm.xcore.getr
-+ 32, // llvm.xcore.getst
-+ 32, // llvm.xcore.getts
-+ 32, // llvm.xcore.in
-+ 32, // llvm.xcore.inct
-+ 32, // llvm.xcore.initcp
-+ 32, // llvm.xcore.initdp
-+ 32, // llvm.xcore.initlr
-+ 32, // llvm.xcore.initpc
-+ 32, // llvm.xcore.initsp
-+ 32, // llvm.xcore.inshr
-+ 32, // llvm.xcore.int
-+ 32, // llvm.xcore.mjoin
-+ 32, // llvm.xcore.msync
-+ 32, // llvm.xcore.out
-+ 32, // llvm.xcore.outct
-+ 32, // llvm.xcore.outshr
-+ 32, // llvm.xcore.outt
-+ 32, // llvm.xcore.peek
-+ 32, // llvm.xcore.setc
-+ 33, // llvm.xcore.setclk
-+ 32, // llvm.xcore.setd
-+ 32, // llvm.xcore.setev
-+ 3, // llvm.xcore.setps
-+ 32, // llvm.xcore.setpsc
-+ 32, // llvm.xcore.setpt
-+ 33, // llvm.xcore.setrdy
-+ 3, // llvm.xcore.setsr
-+ 32, // llvm.xcore.settw
-+ 32, // llvm.xcore.setv
-+ 1, // llvm.xcore.sext
-+ 3, // llvm.xcore.ssync
-+ 32, // llvm.xcore.syncr
-+ 32, // llvm.xcore.testct
-+ 32, // llvm.xcore.testwct
-+ 13, // llvm.xcore.waitevent
-+ 1, // llvm.xcore.zext
-+ };
-+
-+ AttributeSet AS[5];
-+ unsigned NumAttrs = 0;
-+ if (id != 0) {
-+ switch(IntrinsicsToAttributesMap[id - 1]) {
-+ default: llvm_unreachable("Invalid attribute number");
-+ case 3: {
-+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind};
-+ AS[0] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+ NumAttrs = 1;
-+ break;
-+ }
-+ case 32: {
-+ const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture};
-+ AS[0] = AttributeSet::get(C, 1, AttrParam1);
-+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind};
-+ AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+ NumAttrs = 2;
-+ break;
-+ }
-+ case 33: {
-+ const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture};
-+ AS[0] = AttributeSet::get(C, 1, AttrParam1);
-+ const Attribute::AttrKind AttrParam2[]= {Attribute::NoCapture};
-+ AS[1] = AttributeSet::get(C, 2, AttrParam2);
-+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind};
-+ AS[2] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+ NumAttrs = 3;
-+ break;
-+ }
-+ case 4: {
-+ const Attribute::AttrKind AttrParam2[]= {Attribute::WriteOnly};
-+ AS[0] = AttributeSet::get(C, 2, AttrParam2);
-+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind};
-+ AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+ NumAttrs = 2;
-+ break;
-+ }
-+ case 18: {
-+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-+ AS[0] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+ NumAttrs = 1;
-+ break;
-+ }
-+ case 15: {
-+ const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture};
-+ AS[0] = AttributeSet::get(C, 1, AttrParam1);
-+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-+ AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+ NumAttrs = 2;
-+ break;
-+ }
-+ case 6: {
-+ const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture,Attribute::ReadOnly};
-+ AS[0] = AttributeSet::get(C, 1, AttrParam1);
-+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-+ AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+ NumAttrs = 2;
-+ break;
-+ }
-+ case 21: {
-+ const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture,Attribute::WriteOnly};
-+ AS[0] = AttributeSet::get(C, 1, AttrParam1);
-+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-+ AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+ NumAttrs = 2;
-+ break;
-+ }
-+ case 19: {
-+ const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture,Attribute::WriteOnly};
-+ AS[0] = AttributeSet::get(C, 1, AttrParam1);
-+ const Attribute::AttrKind AttrParam2[]= {Attribute::NoCapture,Attribute::ReadOnly};
-+ AS[1] = AttributeSet::get(C, 2, AttrParam2);
-+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-+ AS[2] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+ NumAttrs = 3;
-+ break;
-+ }
-+ case 20: {
-+ const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture};
-+ AS[0] = AttributeSet::get(C, 1, AttrParam1);
-+ const Attribute::AttrKind AttrParam2[]= {Attribute::NoCapture,Attribute::ReadOnly};
-+ AS[1] = AttributeSet::get(C, 2, AttrParam2);
-+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-+ AS[2] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+ NumAttrs = 3;
-+ break;
-+ }
-+ case 17: {
-+ const Attribute::AttrKind AttrParam2[]= {Attribute::NoCapture};
-+ AS[0] = AttributeSet::get(C, 2, AttrParam2);
-+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-+ AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+ NumAttrs = 2;
-+ break;
-+ }
-+ case 14: {
-+ const Attribute::AttrKind AttrParam2[]= {Attribute::NoCapture};
-+ AS[0] = AttributeSet::get(C, 2, AttrParam2);
-+ const Attribute::AttrKind AttrParam3[]= {Attribute::NoCapture};
-+ AS[1] = AttributeSet::get(C, 3, AttrParam3);
-+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-+ AS[2] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+ NumAttrs = 3;
-+ break;
-+ }
-+ case 16: {
-+ const Attribute::AttrKind AttrParam3[]= {Attribute::NoCapture};
-+ AS[0] = AttributeSet::get(C, 3, AttrParam3);
-+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-+ AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+ NumAttrs = 2;
-+ break;
-+ }
-+ case 22: {
-+ const Attribute::AttrKind AttrParam4[]= {Attribute::NoCapture};
-+ AS[0] = AttributeSet::get(C, 4, AttrParam4);
-+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-+ AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+ NumAttrs = 2;
-+ break;
-+ }
-+ case 23: {
-+ const Attribute::AttrKind AttrParam5[]= {Attribute::NoCapture};
-+ AS[0] = AttributeSet::get(C, 5, AttrParam5);
-+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-+ AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+ NumAttrs = 2;
-+ break;
-+ }
-+ case 24: {
-+ const Attribute::AttrKind AttrParam6[]= {Attribute::NoCapture};
-+ AS[0] = AttributeSet::get(C, 6, AttrParam6);
-+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-+ AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+ NumAttrs = 2;
-+ break;
-+ }
-+ case 25: {
-+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::WriteOnly};
-+ AS[0] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+ NumAttrs = 1;
-+ break;
-+ }
-+ case 13: {
-+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadOnly};
-+ AS[0] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+ NumAttrs = 1;
-+ break;
-+ }
-+ case 2: {
-+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadOnly,Attribute::ArgMemOnly};
-+ AS[0] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+ NumAttrs = 1;
-+ break;
-+ }
-+ case 29: {
-+ const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture};
-+ AS[0] = AttributeSet::get(C, 1, AttrParam1);
-+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadOnly,Attribute::ArgMemOnly};
-+ AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+ NumAttrs = 2;
-+ break;
-+ }
-+ case 11: {
-+ const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture,Attribute::ReadOnly};
-+ AS[0] = AttributeSet::get(C, 1, AttrParam1);
-+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadOnly,Attribute::ArgMemOnly};
-+ AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+ NumAttrs = 2;
-+ break;
-+ }
-+ case 7: {
-+ const Attribute::AttrKind AttrParam2[]= {Attribute::NoCapture,Attribute::ReadOnly};
-+ AS[0] = AttributeSet::get(C, 2, AttrParam2);
-+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadOnly,Attribute::ArgMemOnly};
-+ AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+ NumAttrs = 2;
-+ break;
-+ }
-+ case 8: {
-+ const Attribute::AttrKind AttrParam2[]= {Attribute::ReadNone};
-+ AS[0] = AttributeSet::get(C, 2, AttrParam2);
-+ const Attribute::AttrKind AttrParam3[]= {Attribute::NoCapture,Attribute::ReadOnly};
-+ AS[1] = AttributeSet::get(C, 3, AttrParam3);
-+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadOnly,Attribute::ArgMemOnly};
-+ AS[2] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+ NumAttrs = 3;
-+ break;
-+ }
-+ case 1: {
-+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadNone};
-+ AS[0] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+ NumAttrs = 1;
-+ break;
-+ }
-+ case 10: {
-+ const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture};
-+ AS[0] = AttributeSet::get(C, 1, AttrParam1);
-+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadNone};
-+ AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+ NumAttrs = 2;
-+ break;
-+ }
-+ case 9: {
-+ const Attribute::AttrKind AttrParam1[]= {Attribute::ReadNone};
-+ AS[0] = AttributeSet::get(C, 1, AttrParam1);
-+ const Attribute::AttrKind AttrParam2[]= {Attribute::ReadNone};
-+ AS[1] = AttributeSet::get(C, 2, AttrParam2);
-+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadNone};
-+ AS[2] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+ NumAttrs = 3;
-+ break;
-+ }
-+ case 27: {
-+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::Convergent};
-+ AS[0] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+ NumAttrs = 1;
-+ break;
-+ }
-+ case 26: {
-+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::Convergent,Attribute::ReadNone};
-+ AS[0] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+ NumAttrs = 1;
-+ break;
-+ }
-+ case 12: {
-+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::NoReturn};
-+ AS[0] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+ NumAttrs = 1;
-+ break;
-+ }
-+ case 31: {
-+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::NoDuplicate};
-+ AS[0] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+ NumAttrs = 1;
-+ break;
-+ }
-+ case 5: {
-+ return AttributeSet();
-+ }
-+ case 28: {
-+ const Attribute::AttrKind Atts[] = {Attribute::ReadNone};
-+ AS[0] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+ NumAttrs = 1;
-+ break;
-+ }
-+ case 30: {
-+ const Attribute::AttrKind Atts[] = {Attribute::NoReturn};
-+ AS[0] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+ NumAttrs = 1;
-+ break;
-+ }
-+ }
-+ }
-+ return AttributeSet::get(C, makeArrayRef(AS, NumAttrs));
-+}
-+#endif // GET_INTRINSIC_ATTRIBUTES
-+
-+// Get the LLVM intrinsic that corresponds to a builtin.
-+// This is used by the C front-end. The builtin name is passed
-+// in as BuiltinName, and a target prefix (e.g. 'ppc') is passed
-+// in as TargetPrefix. The result is assigned to 'IntrinsicID'.
-+#ifdef GET_LLVM_INTRINSIC_FOR_GCC_BUILTIN
-+Intrinsic::ID Intrinsic::getIntrinsicForGCCBuiltin(const char *TargetPrefixStr, StringRef BuiltinNameStr) {
-+ static const char BuiltinNames[] = {
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'd', 'j', 'u', 's',
-+ 't', '_', 't', 'r', 'a', 'm', 'p', 'o', 'l', 'i', 'n', 'e', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'd', 'e', 'b', 'u', 'g', 't', 'r',
-+ 'a', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'u', 'n',
-+ 'w', 'i', 'n', 'd', '_', 'i', 'n', 'i', 't', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'f', 'l', 't', '_', 'r', 'o', 'u', 'n', 'd', 's',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'n', 'i', 't',
-+ '_', 't', 'r', 'a', 'm', 'p', 'o', 'l', 'i', 'n', 'e', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'o', 'b', 'j', 'e', 'c', 't', '_', 's',
-+ 'i', 'z', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-+ 't', 'a', 'c', 'k', '_', 'r', 'e', 's', 't', 'o', 'r', 'e', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', 't', 'a', 'c', 'k', '_', 's',
-+ 'a', 'v', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't',
-+ 'h', 'r', 'e', 'a', 'd', '_', 'p', 'o', 'i', 'n', 't', 'e', 'r', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't', 'r', 'a', 'p', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'd', 'm',
-+ 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm',
-+ '_', 'd', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'a', 'r', 'm', '_', 'i', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'b', 'u', 'f', 'f', 'e',
-+ 'r', '_', 'w', 'b', 'i', 'n', 'v', 'l', '1', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'b', 'u', 'f',
-+ 'f', 'e', 'r', '_', 'w', 'b', 'i', 'n', 'v', 'l', '1', '_', 's', 'c', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c',
-+ 'n', '_', 'b', 'u', 'f', 'f', 'e', 'r', '_', 'w', 'b', 'i', 'n', 'v', 'l',
-+ '1', '_', 'v', 'o', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'c', 'u', 'b', 'e', 'i', 'd', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c',
-+ 'n', '_', 'c', 'u', 'b', 'e', 'm', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'c', 'u', 'b', 'e',
-+ 's', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm',
-+ 'd', 'g', 'c', 'n', '_', 'c', 'u', 'b', 'e', 't', 'c', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'c',
-+ 'v', 't', '_', 'p', 'k', '_', 'u', '8', '_', 'f', '3', '2', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_',
-+ 'd', 'i', 's', 'p', 'a', 't', 'c', 'h', '_', 'i', 'd', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'd',
-+ 'i', 's', 'p', 'a', 't', 'c', 'h', '_', 'p', 't', 'r', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'd',
-+ 's', '_', 's', 'w', 'i', 'z', 'z', 'l', 'e', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'f', 'm', 'u',
-+ 'l', '_', 'l', 'e', 'g', 'a', 'c', 'y', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'g', 'r', 'o', 'u',
-+ 'p', 's', 't', 'a', 't', 'i', 'c', 's', 'i', 'z', 'e', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'i',
-+ 'm', 'p', 'l', 'i', 'c', 'i', 't', 'a', 'r', 'g', '_', 'p', 't', 'r', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c',
-+ 'n', '_', 'i', 'n', 't', 'e', 'r', 'p', '_', 'm', 'o', 'v', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_',
-+ 'i', 'n', 't', 'e', 'r', 'p', '_', 'p', '1', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'i', 'n', 't',
-+ 'e', 'r', 'p', '_', 'p', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'k', 'e', 'r', 'n', 'a', 'r',
-+ 'g', '_', 's', 'e', 'g', 'm', 'e', 'n', 't', '_', 'p', 't', 'r', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n',
-+ '_', 'l', 'e', 'r', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'm', 'b', 'c', 'n', 't', '_', 'h',
-+ 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd',
-+ 'g', 'c', 'n', '_', 'm', 'b', 'c', 'n', 't', '_', 'l', 'o', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_',
-+ 'm', 'q', 's', 'a', 'd', '_', 'p', 'k', '_', 'u', '1', '6', '_', 'u', '8',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g',
-+ 'c', 'n', '_', 'm', 'q', 's', 'a', 'd', '_', 'u', '3', '2', '_', 'u', '8',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g',
-+ 'c', 'n', '_', 'm', 's', 'a', 'd', '_', 'u', '8', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'q', 's',
-+ 'a', 'd', '_', 'p', 'k', '_', 'u', '1', '6', '_', 'u', '8', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_',
-+ 'q', 'u', 'e', 'u', 'e', '_', 'p', 't', 'r', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'r', 'c', 'p',
-+ '_', 'l', 'e', 'g', 'a', 'c', 'y', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'r', 'e', 'a', 'd', 'f',
-+ 'i', 'r', 's', 't', 'l', 'a', 'n', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'r', 'e', 'a', 'd',
-+ 'l', 'a', 'n', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'a', 'm', 'd', 'g', 'c', 'n', '_', 'r', 's', 'q', '_', 'l', 'e', 'g', 'a',
-+ 'c', 'y', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm',
-+ 'd', 'g', 'c', 'n', '_', 's', '_', 'b', 'a', 'r', 'r', 'i', 'e', 'r', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c',
-+ 'n', '_', 's', '_', 'd', 'c', 'a', 'c', 'h', 'e', '_', 'i', 'n', 'v', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c',
-+ 'n', '_', 's', '_', 'd', 'c', 'a', 'c', 'h', 'e', '_', 'i', 'n', 'v', '_',
-+ 'v', 'o', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+ 'm', 'd', 'g', 'c', 'n', '_', 's', '_', 'd', 'c', 'a', 'c', 'h', 'e', '_',
-+ 'w', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm',
-+ 'd', 'g', 'c', 'n', '_', 's', '_', 'd', 'c', 'a', 'c', 'h', 'e', '_', 'w',
-+ 'b', '_', 'v', 'o', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 's', '_', 'd', 'e', 'c', 'p', 'e',
-+ 'r', 'f', 'l', 'e', 'v', 'e', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 's', '_', 'g', 'e', 't',
-+ 'r', 'e', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+ 'm', 'd', 'g', 'c', 'n', '_', 's', '_', 'i', 'n', 'c', 'p', 'e', 'r', 'f',
-+ 'l', 'e', 'v', 'e', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 's', '_', 'm', 'e', 'm', 'r', 'e',
-+ 'a', 'l', 't', 'i', 'm', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 's', '_', 'm', 'e', 'm', 't',
-+ 'i', 'm', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+ 'm', 'd', 'g', 'c', 'n', '_', 's', '_', 's', 'l', 'e', 'e', 'p', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n',
-+ '_', 's', 'a', 'd', '_', 'h', 'i', '_', 'u', '8', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 's', 'a',
-+ 'd', '_', 'u', '1', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 's', 'a', 'd', '_', 'u', '8', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c',
-+ 'n', '_', 'w', 'a', 'v', 'e', '_', 'b', 'a', 'r', 'r', 'i', 'e', 'r', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c',
-+ 'n', '_', 'w', 'o', 'r', 'k', 'g', 'r', 'o', 'u', 'p', '_', 'i', 'd', '_',
-+ 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd',
-+ 'g', 'c', 'n', '_', 'w', 'o', 'r', 'k', 'g', 'r', 'o', 'u', 'p', '_', 'i',
-+ 'd', '_', 'y', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+ 'm', 'd', 'g', 'c', 'n', '_', 'w', 'o', 'r', 'k', 'g', 'r', 'o', 'u', 'p',
-+ '_', 'i', 'd', '_', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'a', 'r', 'm', '_', 'c', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'c', 'd', 'p', '2', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'g', 'e', 't',
-+ '_', 'f', 'p', 's', 'c', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'a', 'r', 'm', '_', 'l', 'd', 'c', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'l', 'd', 'c', '2', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'l', 'd',
-+ 'c', '2', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+ 'r', 'm', '_', 'l', 'd', 'c', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'a', 'r', 'm', '_', 'm', 'c', 'r', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'm', 'c', 'r', '2', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'm',
-+ 'r', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r',
-+ 'm', '_', 'm', 'r', 'c', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'a', 'r', 'm', '_', 'q', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'q', 's', 'u', 'b', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's',
-+ 'e', 't', '_', 'f', 'p', 's', 'c', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 's', 'a', 't', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 't', 'c',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_',
-+ 's', 't', 'c', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'a', 'r', 'm', '_', 's', 't', 'c', '2', 'l', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 't', 'c', 'l', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'u', 's',
-+ 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'b', 'p',
-+ 'f', '_', 'l', 'o', 'a', 'd', '_', 'b', 'y', 't', 'e', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'b', 'p', 'f', '_', 'l', 'o', 'a', 'd',
-+ '_', 'h', 'a', 'l', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'b', 'p', 'f', '_', 'l', 'o', 'a', 'd', '_', 'w', 'o', 'r', 'd', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'b', 'p', 'f', '_', 'p',
-+ 's', 'e', 'u', 'd', 'o', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'b', 's',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'b', 's', 'p', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'A', '2', '_', 'a', 'b', 's', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-+ '_', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'd', 'd', 'h',
-+ '_', 'h', '1', '6', '_', 'h', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a',
-+ 'd', 'd', 'h', '_', 'h', '1', '6', '_', 'h', 'l', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A',
-+ '2', '_', 'a', 'd', 'd', 'h', '_', 'h', '1', '6', '_', 'l', 'h', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'A', '2', '_', 'a', 'd', 'd', 'h', '_', 'h', '1', '6', '_', 'l',
-+ 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'd', 'd', 'h', '_', 'h', '1',
-+ '6', '_', 's', 'a', 't', '_', 'h', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-+ 'a', 'd', 'd', 'h', '_', 'h', '1', '6', '_', 's', 'a', 't', '_', 'h', 'l',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'd', 'd', 'h', '_', 'h', '1', '6',
-+ '_', 's', 'a', 't', '_', 'l', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a',
-+ 'd', 'd', 'h', '_', 'h', '1', '6', '_', 's', 'a', 't', '_', 'l', 'l', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'A', '2', '_', 'a', 'd', 'd', 'h', '_', 'l', '1', '6', '_',
-+ 'h', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'd', 'd', 'h', '_', 'l',
-+ '1', '6', '_', 'l', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'd', 'd',
-+ 'h', '_', 'l', '1', '6', '_', 's', 'a', 't', '_', 'h', 'l', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'A', '2', '_', 'a', 'd', 'd', 'h', '_', 'l', '1', '6', '_', 's', 'a',
-+ 't', '_', 'l', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'd', 'd', 'i',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'd', 'd', 'p', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'A', '2', '_', 'a', 'd', 'd', 'p', 's', 'a', 't', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A',
-+ '2', '_', 'a', 'd', 'd', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-+ 'a', 'd', 'd', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'n', 'd',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'n', 'd', 'i', 'r', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'A', '2', '_', 'a', 'n', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-+ 'a', 's', 'l', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 's', 'r', 'h',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'A', '2', '_', 'c', 'o', 'm', 'b', 'i', 'n', 'e', '_',
-+ 'h', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'c', 'o', 'm', 'b', 'i', 'n',
-+ 'e', '_', 'h', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'c', 'o', 'm', 'b',
-+ 'i', 'n', 'e', '_', 'l', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'c', 'o',
-+ 'm', 'b', 'i', 'n', 'e', '_', 'l', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-+ 'c', 'o', 'm', 'b', 'i', 'n', 'e', 'i', 'i', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-+ '_', 'c', 'o', 'm', 'b', 'i', 'n', 'e', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-+ '_', 'm', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'm', 'a', 'x', 'p',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'A', '2', '_', 'm', 'a', 'x', 'u', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'A', '2', '_', 'm', 'a', 'x', 'u', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-+ 'm', 'i', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'm', 'i', 'n', 'p', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'A', '2', '_', 'm', 'i', 'n', 'u', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A',
-+ '2', '_', 'm', 'i', 'n', 'u', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'n',
-+ 'e', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'n', 'e', 'g', 'p', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'A', '2', '_', 'n', 'e', 'g', 's', 'a', 't', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'A', '2', '_', 'n', 'o', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'n', 'o',
-+ 't', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'o', 'r', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'A', '2', '_', 'o', 'r', 'i', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'o',
-+ 'r', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'r', 'o', 'u', 'n', 'd', 's',
-+ 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'a', 't', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'A', '2', '_', 's', 'a', 't', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-+ 's', 'a', 't', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'a', 't', 'u',
-+ 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'a', 't', 'u', 'h', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'A', '2', '_', 's', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-+ 's', 'u', 'b', 'h', '_', 'h', '1', '6', '_', 'h', 'h', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'A', '2', '_', 's', 'u', 'b', 'h', '_', 'h', '1', '6', '_', 'h', 'l', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'A', '2', '_', 's', 'u', 'b', 'h', '_', 'h', '1', '6', '_',
-+ 'l', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'u', 'b', 'h', '_', 'h',
-+ '1', '6', '_', 'l', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'u', 'b',
-+ 'h', '_', 'h', '1', '6', '_', 's', 'a', 't', '_', 'h', 'h', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'A', '2', '_', 's', 'u', 'b', 'h', '_', 'h', '1', '6', '_', 's', 'a',
-+ 't', '_', 'h', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'u', 'b', 'h',
-+ '_', 'h', '1', '6', '_', 's', 'a', 't', '_', 'l', 'h', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'A', '2', '_', 's', 'u', 'b', 'h', '_', 'h', '1', '6', '_', 's', 'a', 't',
-+ '_', 'l', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'u', 'b', 'h', '_',
-+ 'l', '1', '6', '_', 'h', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'u',
-+ 'b', 'h', '_', 'l', '1', '6', '_', 'l', 'l', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-+ '_', 's', 'u', 'b', 'h', '_', 'l', '1', '6', '_', 's', 'a', 't', '_', 'h',
-+ 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'u', 'b', 'h', '_', 'l', '1',
-+ '6', '_', 's', 'a', 't', '_', 'l', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-+ 's', 'u', 'b', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'u', 'b', 'r',
-+ 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'u', 'b', 's', 'a', 't', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'A', '2', '_', 's', 'v', 'a', 'd', 'd', 'h', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'A', '2', '_', 's', 'v', 'a', 'd', 'd', 'h', 's', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'A', '2', '_', 's', 'v', 'a', 'd', 'd', 'u', 'h', 's', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'A', '2', '_', 's', 'v', 'a', 'v', 'g', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-+ '_', 's', 'v', 'a', 'v', 'g', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-+ 's', 'v', 'n', 'a', 'v', 'g', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's',
-+ 'v', 's', 'u', 'b', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'v', 's',
-+ 'u', 'b', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'v', 's', 'u',
-+ 'b', 'u', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'w', 'i', 'z',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'x', 't', 'b', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'A', '2', '_', 's', 'x', 't', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's',
-+ 'x', 't', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 't', 'f', 'r', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'A', '2', '_', 't', 'f', 'r', 'i', 'h', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A',
-+ '2', '_', 't', 'f', 'r', 'i', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 't',
-+ 'f', 'r', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 't', 'f', 'r', 'p', 'i',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'A', '2', '_', 't', 'f', 'r', 's', 'i', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'A', '2', '_', 'v', 'a', 'b', 's', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-+ '_', 'v', 'a', 'b', 's', 'h', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-+ '_', 'v', 'a', 'b', 's', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a',
-+ 'b', 's', 'w', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a',
-+ 'd', 'd', 'b', '_', 'm', 'a', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v',
-+ 'a', 'd', 'd', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'd', 'd',
-+ 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'd', 'd', 'u', 'b',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'd', 'd', 'u', 'b', 's', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'd', 'd', 'u', 'h', 's', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'A', '2', '_', 'v', 'a', 'd', 'd', 'w', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A',
-+ '2', '_', 'v', 'a', 'd', 'd', 'w', 's', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-+ 'v', 'a', 'v', 'g', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'v',
-+ 'g', 'h', 'c', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'v', 'g',
-+ 'h', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'v', 'g', 'u', 'b',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'v', 'g', 'u', 'b', 'r', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'v', 'g', 'u', 'h', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'A', '2', '_', 'v', 'a', 'v', 'g', 'u', 'h', 'r', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'A', '2', '_', 'v', 'a', 'v', 'g', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-+ '_', 'v', 'a', 'v', 'g', 'u', 'w', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-+ 'v', 'a', 'v', 'g', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'v',
-+ 'g', 'w', 'c', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'v', 'g',
-+ 'w', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'c', 'm', 'p', 'b', 'e',
-+ 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'c', 'm', 'p', 'b', 'g', 't',
-+ 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'c', 'm', 'p', 'h', 'e', 'q',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'c', 'm', 'p', 'h', 'g', 't', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'A', '2', '_', 'v', 'c', 'm', 'p', 'h', 'g', 't', 'u', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'A', '2', '_', 'v', 'c', 'm', 'p', 'w', 'e', 'q', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'A', '2', '_', 'v', 'c', 'm', 'p', 'w', 'g', 't', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'A', '2', '_', 'v', 'c', 'm', 'p', 'w', 'g', 't', 'u', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'A', '2', '_', 'v', 'c', 'o', 'n', 'j', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-+ '_', 'v', 'm', 'a', 'x', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'm',
-+ 'a', 'x', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'm', 'a', 'x', 'u',
-+ 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'm', 'a', 'x', 'u', 'h', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'A', '2', '_', 'v', 'm', 'a', 'x', 'u', 'w', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'A', '2', '_', 'v', 'm', 'a', 'x', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-+ '_', 'v', 'm', 'i', 'n', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'm',
-+ 'i', 'n', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'm', 'i', 'n', 'u',
-+ 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'm', 'i', 'n', 'u', 'h', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'A', '2', '_', 'v', 'm', 'i', 'n', 'u', 'w', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'A', '2', '_', 'v', 'm', 'i', 'n', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-+ '_', 'v', 'n', 'a', 'v', 'g', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v',
-+ 'n', 'a', 'v', 'g', 'h', 'c', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v',
-+ 'n', 'a', 'v', 'g', 'h', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'n',
-+ 'a', 'v', 'g', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'n', 'a', 'v',
-+ 'g', 'w', 'c', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'n', 'a', 'v',
-+ 'g', 'w', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'r', 'a', 'd', 'd',
-+ 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'r', 'a', 'd', 'd', 'u',
-+ 'b', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'r', 's',
-+ 'a', 'd', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'r', 's', 'a',
-+ 'd', 'u', 'b', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v',
-+ 's', 'u', 'b', 'b', '_', 'm', 'a', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-+ 'v', 's', 'u', 'b', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 's', 'u',
-+ 'b', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 's', 'u', 'b', 'u',
-+ 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 's', 'u', 'b', 'u', 'b', 's',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 's', 'u', 'b', 'u', 'h', 's', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'A', '2', '_', 'v', 's', 'u', 'b', 'w', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'A', '2', '_', 'v', 's', 'u', 'b', 'w', 's', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-+ '_', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'x', 'o', 'r', 'p',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'A', '2', '_', 'z', 'x', 't', 'b', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'A', '2', '_', 'z', 'x', 't', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'a',
-+ 'n', 'd', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'a', 'n', 'd', 'n', 'p',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'A', '4', '_', 'b', 'i', 't', 's', 'p', 'l', 'i', 't',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'A', '4', '_', 'b', 'i', 't', 's', 'p', 'l', 'i', 't',
-+ 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'b', 'o', 'u', 'n', 'd', 's', 'c',
-+ 'h', 'e', 'c', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'c', 'm', 'p', 'b',
-+ 'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'c', 'm', 'p', 'b', 'e', 'q',
-+ 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'c', 'm', 'p', 'b', 'g', 't', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'A', '4', '_', 'c', 'm', 'p', 'b', 'g', 't', 'i', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'A', '4', '_', 'c', 'm', 'p', 'b', 'g', 't', 'u', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'A', '4', '_', 'c', 'm', 'p', 'b', 'g', 't', 'u', 'i', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'A', '4', '_', 'c', 'm', 'p', 'h', 'e', 'q', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A',
-+ '4', '_', 'c', 'm', 'p', 'h', 'e', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4',
-+ '_', 'c', 'm', 'p', 'h', 'g', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'c',
-+ 'm', 'p', 'h', 'g', 't', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'c', 'm',
-+ 'p', 'h', 'g', 't', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'c', 'm', 'p',
-+ 'h', 'g', 't', 'u', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'c', 'o', 'm',
-+ 'b', 'i', 'n', 'e', 'i', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'c', 'o',
-+ 'm', 'b', 'i', 'n', 'e', 'r', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'c',
-+ 'r', 'o', 'u', 'n', 'd', '_', 'r', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_',
-+ 'c', 'r', 'o', 'u', 'n', 'd', '_', 'r', 'r', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4',
-+ '_', 'm', 'o', 'd', 'w', 'r', 'a', 'p', 'u', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4',
-+ '_', 'o', 'r', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'o', 'r', 'n', 'p',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'A', '4', '_', 'r', 'c', 'm', 'p', 'e', 'q', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'A', '4', '_', 'r', 'c', 'm', 'p', 'e', 'q', 'i', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'A', '4', '_', 'r', 'c', 'm', 'p', 'n', 'e', 'q', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'A', '4', '_', 'r', 'c', 'm', 'p', 'n', 'e', 'q', 'i', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'A', '4', '_', 'r', 'o', 'u', 'n', 'd', '_', 'r', 'i', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'A', '4', '_', 'r', 'o', 'u', 'n', 'd', '_', 'r', 'i', '_', 's', 'a', 't',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'A', '4', '_', 'r', 'o', 'u', 'n', 'd', '_', 'r', 'r',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'A', '4', '_', 'r', 'o', 'u', 'n', 'd', '_', 'r', 'r',
-+ '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 't', 'l', 'b', 'm',
-+ 'a', 't', 'c', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v', 'c', 'm', 'p',
-+ 'b', 'e', 'q', '_', 'a', 'n', 'y', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v',
-+ 'c', 'm', 'p', 'b', 'e', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v',
-+ 'c', 'm', 'p', 'b', 'g', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v', 'c',
-+ 'm', 'p', 'b', 'g', 't', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v', 'c',
-+ 'm', 'p', 'b', 'g', 't', 'u', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v',
-+ 'c', 'm', 'p', 'h', 'e', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v',
-+ 'c', 'm', 'p', 'h', 'g', 't', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v',
-+ 'c', 'm', 'p', 'h', 'g', 't', 'u', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_',
-+ 'v', 'c', 'm', 'p', 'w', 'e', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_',
-+ 'v', 'c', 'm', 'p', 'w', 'g', 't', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_',
-+ 'v', 'c', 'm', 'p', 'w', 'g', 't', 'u', 'i', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4',
-+ '_', 'v', 'r', 'm', 'a', 'x', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v',
-+ 'r', 'm', 'a', 'x', 'u', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v', 'r',
-+ 'm', 'a', 'x', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v', 'r', 'm',
-+ 'a', 'x', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v', 'r', 'm', 'i', 'n',
-+ 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v', 'r', 'm', 'i', 'n', 'u', 'h',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'A', '4', '_', 'v', 'r', 'm', 'i', 'n', 'u', 'w', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'A', '4', '_', 'v', 'r', 'm', 'i', 'n', 'w', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'A', '5', '_', 'v', 'a', 'd', 'd', 'h', 'u', 'b', 's', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'C', '2', '_', 'a', 'l', 'l', '8', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_',
-+ 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'a', 'n', 'd', 'n', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'C', '2', '_', 'a', 'n', 'y', '8', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C',
-+ '2', '_', 'b', 'i', 't', 's', 'c', 'l', 'r', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2',
-+ '_', 'b', 'i', 't', 's', 'c', 'l', 'r', 'i', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2',
-+ '_', 'b', 'i', 't', 's', 's', 'e', 't', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_',
-+ 'c', 'm', 'p', 'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'c', 'm', 'p',
-+ 'e', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'c', 'm', 'p', 'e', 'q',
-+ 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'c', 'm', 'p', 'g', 'e', 'i', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'C', '2', '_', 'c', 'm', 'p', 'g', 'e', 'u', 'i', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'C', '2', '_', 'c', 'm', 'p', 'g', 't', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C',
-+ '2', '_', 'c', 'm', 'p', 'g', 't', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_',
-+ 'c', 'm', 'p', 'g', 't', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'c', 'm',
-+ 'p', 'g', 't', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'c', 'm', 'p', 'g',
-+ 't', 'u', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'c', 'm', 'p', 'g', 't',
-+ 'u', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'c', 'm', 'p', 'l', 't', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'C', '2', '_', 'c', 'm', 'p', 'l', 't', 'u', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'C', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_',
-+ 'm', 'u', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'm', 'u', 'x', 'i', 'i',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'C', '2', '_', 'm', 'u', 'x', 'i', 'r', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'C', '2', '_', 'm', 'u', 'x', 'r', 'i', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2',
-+ '_', 'n', 'o', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'o', 'r', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'C', '2', '_', 'o', 'r', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_',
-+ 'p', 'x', 'f', 'e', 'r', '_', 'm', 'a', 'p', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2',
-+ '_', 't', 'f', 'r', 'p', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 't', 'f',
-+ 'r', 'r', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'v', 'i', 't', 'p', 'a',
-+ 'c', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'v', 'm', 'u', 'x', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'C', '2', '_', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_',
-+ 'a', 'n', 'd', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'a',
-+ 'n', 'd', '_', 'a', 'n', 'd', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'a',
-+ 'n', 'd', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'a', 'n', 'd',
-+ '_', 'o', 'r', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'c', 'm', 'p', 'l',
-+ 't', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'c', 'm', 'p', 'l', 't', 'e',
-+ 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'c', 'm', 'p', 'l', 't', 'e', 'u',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'C', '4', '_', 'c', 'm', 'p', 'l', 't', 'e', 'u', 'i',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'C', '4', '_', 'c', 'm', 'p', 'n', 'e', 'q', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'C', '4', '_', 'c', 'm', 'p', 'n', 'e', 'q', 'i', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'C', '4', '_', 'f', 'a', 's', 't', 'c', 'o', 'r', 'n', 'e', 'r', '9',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'C', '4', '_', 'f', 'a', 's', 't', 'c', 'o', 'r', 'n',
-+ 'e', 'r', '9', '_', 'n', 'o', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'n',
-+ 'b', 'i', 't', 's', 'c', 'l', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'n',
-+ 'b', 'i', 't', 's', 'c', 'l', 'r', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_',
-+ 'n', 'b', 'i', 't', 's', 's', 'e', 't', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_',
-+ 'o', 'r', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'o', 'r',
-+ '_', 'a', 'n', 'd', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'o', 'r', '_',
-+ 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'o', 'r', '_', 'o', 'r', 'n',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'd', '2', 'd',
-+ 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'd', '2',
-+ 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'd',
-+ 'f', '2', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_',
-+ 'd', 'f', '2', 'd', '_', 'c', 'h', 'o', 'p', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2',
-+ '_', 'c', 'o', 'n', 'v', '_', 'd', 'f', '2', 's', 'f', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'd', 'f', '2', 'u', 'd', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'd', 'f', '2', 'u', 'd',
-+ '_', 'c', 'h', 'o', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n',
-+ 'v', '_', 'd', 'f', '2', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c',
-+ 'o', 'n', 'v', '_', 'd', 'f', '2', 'u', 'w', '_', 'c', 'h', 'o', 'p', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'd', 'f', '2', 'w',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'd', 'f', '2',
-+ 'w', '_', 'c', 'h', 'o', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o',
-+ 'n', 'v', '_', 's', 'f', '2', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c',
-+ 'o', 'n', 'v', '_', 's', 'f', '2', 'd', '_', 'c', 'h', 'o', 'p', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 's', 'f', '2', 'd', 'f',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 's', 'f', '2',
-+ 'u', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 's',
-+ 'f', '2', 'u', 'd', '_', 'c', 'h', 'o', 'p', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2',
-+ '_', 'c', 'o', 'n', 'v', '_', 's', 'f', '2', 'u', 'w', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 's', 'f', '2', 'u', 'w', '_', 'c',
-+ 'h', 'o', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_',
-+ 's', 'f', '2', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v',
-+ '_', 's', 'f', '2', 'w', '_', 'c', 'h', 'o', 'p', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F',
-+ '2', '_', 'c', 'o', 'n', 'v', '_', 'u', 'd', '2', 'd', 'f', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'u', 'd', '2', 's', 'f', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'u', 'w', '2', 'd',
-+ 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'u', 'w',
-+ '2', 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_',
-+ 'w', '2', 'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v',
-+ '_', 'w', '2', 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'd', 'f', 'c',
-+ 'l', 'a', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'd', 'f', 'c', 'm',
-+ 'p', 'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'd', 'f', 'c', 'm', 'p',
-+ 'g', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'd', 'f', 'c', 'm', 'p', 'g',
-+ 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'd', 'f', 'c', 'm', 'p', 'u', 'o',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'F', '2', '_', 'd', 'f', 'i', 'm', 'm', '_', 'n', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'F', '2', '_', 'd', 'f', 'i', 'm', 'm', '_', 'p', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'F', '2', '_', 's', 'f', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F',
-+ '2', '_', 's', 'f', 'c', 'l', 'a', 's', 's', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2',
-+ '_', 's', 'f', 'c', 'm', 'p', 'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_',
-+ 's', 'f', 'c', 'm', 'p', 'g', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's',
-+ 'f', 'c', 'm', 'p', 'g', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f',
-+ 'c', 'm', 'p', 'u', 'o', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'f',
-+ 'i', 'x', 'u', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'f',
-+ 'i', 'x', 'u', 'p', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'f',
-+ 'i', 'x', 'u', 'p', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'f',
-+ 'm', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'f', 'm', 'a', '_',
-+ 'l', 'i', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'f', 'm', 'a',
-+ '_', 's', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'f', 'm', 's',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'f', 'm', 's', '_', 'l', 'i',
-+ 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'i', 'm', 'm', '_', 'n',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'i', 'm', 'm', '_', 'p', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'm', 'a', 'x', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'F', '2', '_', 's', 'f', 'm', 'i', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_',
-+ 's', 'f', 'm', 'p', 'y', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 's',
-+ 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'L', '2', '_', 'l', 'o', 'a', 'd', 'w', '_',
-+ 'l', 'o', 'c', 'k', 'e', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'L', '4', '_', 'l', 'o',
-+ 'a', 'd', 'd', '_', 'l', 'o', 'c', 'k', 'e', 'd', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+ '2', '_', 'a', 'c', 'c', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'a', 'c',
-+ 'c', 'i', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'm', 'a', 'c', 'i',
-+ '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'm', 'a', 'c', 'r',
-+ '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'm', 'a', 'c', 's',
-+ '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'm', 'a', 'c', 's',
-+ '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'm', 'a', 'c', 's',
-+ 'c', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'm', 'a', 'c',
-+ 's', 'c', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'm', 'p',
-+ 'y', 'i', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'm', 'p',
-+ 'y', 'r', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'm', 'p',
-+ 'y', 'r', 's', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'm',
-+ 'p', 'y', 'r', 's', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c',
-+ 'm', 'p', 'y', 'r', 's', 'c', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-+ '_', 'c', 'm', 'p', 'y', 'r', 's', 'c', '_', 's', '1', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'M', '2', '_', 'c', 'm', 'p', 'y', 's', '_', 's', '0', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'M', '2', '_', 'c', 'm', 'p', 'y', 's', '_', 's', '1', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'M', '2', '_', 'c', 'm', 'p', 'y', 's', 'c', '_', 's', '0', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'M', '2', '_', 'c', 'm', 'p', 'y', 's', 'c', '_', 's', '1', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'M', '2', '_', 'c', 'n', 'a', 'c', 's', '_', 's', '0', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'M', '2', '_', 'c', 'n', 'a', 'c', 's', '_', 's', '1', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'M', '2', '_', 'c', 'n', 'a', 'c', 's', 'c', '_', 's', '0', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'M', '2', '_', 'c', 'n', 'a', 'c', 's', 'c', '_', 's', '1',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'M', '2', '_', 'd', 'p', 'm', 'p', 'y', 's', 's', '_',
-+ 'a', 'c', 'c', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'd', 'p',
-+ 'm', 'p', 'y', 's', 's', '_', 'n', 'a', 'c', '_', 's', '0', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'M', '2', '_', 'd', 'p', 'm', 'p', 'y', 's', 's', '_', 'r', 'n', 'd',
-+ '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'd', 'p', 'm', 'p', 'y',
-+ 's', 's', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'd', 'p', 'm',
-+ 'p', 'y', 'u', 'u', '_', 'a', 'c', 'c', '_', 's', '0', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'M', '2', '_', 'd', 'p', 'm', 'p', 'y', 'u', 'u', '_', 'n', 'a', 'c', '_',
-+ 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'd', 'p', 'm', 'p', 'y', 'u',
-+ 'u', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'h', 'm', 'm', 'p',
-+ 'y', 'h', '_', 'r', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'h', 'm',
-+ 'm', 'p', 'y', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'h',
-+ 'm', 'm', 'p', 'y', 'l', '_', 'r', 's', '1', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-+ '_', 'h', 'm', 'm', 'p', 'y', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+ '2', '_', 'm', 'a', 'c', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'a',
-+ 'c', 's', 'i', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'a', 'c', 's',
-+ 'i', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'a', 'c', 'h', 's',
-+ '_', 'r', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'a', 'c',
-+ 'h', 's', '_', 'r', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm',
-+ 'a', 'c', 'h', 's', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-+ 'm', 'a', 'c', 'h', 's', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-+ 'm', 'm', 'a', 'c', 'l', 's', '_', 'r', 's', '0', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+ '2', '_', 'm', 'm', 'a', 'c', 'l', 's', '_', 'r', 's', '1', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'M', '2', '_', 'm', 'm', 'a', 'c', 'l', 's', '_', 's', '0', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'M', '2', '_', 'm', 'm', 'a', 'c', 'l', 's', '_', 's', '1', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'a', 'c', 'u', 'h', 's', '_', 'r',
-+ 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'a', 'c', 'u', 'h',
-+ 's', '_', 'r', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'a',
-+ 'c', 'u', 'h', 's', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-+ 'm', 'a', 'c', 'u', 'h', 's', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-+ '_', 'm', 'm', 'a', 'c', 'u', 'l', 's', '_', 'r', 's', '0', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'M', '2', '_', 'm', 'm', 'a', 'c', 'u', 'l', 's', '_', 'r', 's', '1',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'a', 'c', 'u', 'l', 's', '_',
-+ 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'a', 'c', 'u', 'l',
-+ 's', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'p', 'y',
-+ 'h', '_', 'r', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'p',
-+ 'y', 'h', '_', 'r', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm',
-+ 'p', 'y', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm',
-+ 'p', 'y', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm',
-+ 'p', 'y', 'l', '_', 'r', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-+ 'm', 'p', 'y', 'l', '_', 'r', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-+ 'm', 'm', 'p', 'y', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-+ 'm', 'm', 'p', 'y', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-+ 'm', 'm', 'p', 'y', 'u', 'h', '_', 'r', 's', '0', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+ '2', '_', 'm', 'm', 'p', 'y', 'u', 'h', '_', 'r', 's', '1', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'M', '2', '_', 'm', 'm', 'p', 'y', 'u', 'h', '_', 's', '0', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'M', '2', '_', 'm', 'm', 'p', 'y', 'u', 'h', '_', 's', '1', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'p', 'y', 'u', 'l', '_', 'r', 's',
-+ '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'p', 'y', 'u', 'l', '_',
-+ 'r', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'p', 'y', 'u',
-+ 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'p', 'y',
-+ 'u', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-+ '_', 'a', 'c', 'c', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+ '2', '_', 'm', 'p', 'y', '_', 'a', 'c', 'c', '_', 'h', 'h', '_', 's', '1',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'a', 'c', 'c', '_',
-+ 'h', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-+ '_', 'a', 'c', 'c', '_', 'h', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+ '2', '_', 'm', 'p', 'y', '_', 'a', 'c', 'c', '_', 'l', 'h', '_', 's', '0',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'a', 'c', 'c', '_',
-+ 'l', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-+ '_', 'a', 'c', 'c', '_', 'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+ '2', '_', 'm', 'p', 'y', '_', 'a', 'c', 'c', '_', 'l', 'l', '_', 's', '1',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'a', 'c', 'c', '_',
-+ 's', 'a', 't', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-+ '_', 'm', 'p', 'y', '_', 'a', 'c', 'c', '_', 's', 'a', 't', '_', 'h', 'h',
-+ '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'a',
-+ 'c', 'c', '_', 's', 'a', 't', '_', 'h', 'l', '_', 's', '0', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'a', 'c', 'c', '_', 's', 'a', 't',
-+ '_', 'h', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p',
-+ 'y', '_', 'a', 'c', 'c', '_', 's', 'a', 't', '_', 'l', 'h', '_', 's', '0',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'a', 'c', 'c', '_',
-+ 's', 'a', 't', '_', 'l', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-+ '_', 'm', 'p', 'y', '_', 'a', 'c', 'c', '_', 's', 'a', 't', '_', 'l', 'l',
-+ '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'a',
-+ 'c', 'c', '_', 's', 'a', 't', '_', 'l', 'l', '_', 's', '1', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'h', 'h', '_', 's', '0', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'h', 'h', '_', 's', '1', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'h', 'l', '_', 's', '0',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'h', 'l', '_', 's',
-+ '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'l', 'h', '_',
-+ 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'l', 'h',
-+ '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'l',
-+ 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_',
-+ 'l', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-+ '_', 'n', 'a', 'c', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+ '2', '_', 'm', 'p', 'y', '_', 'n', 'a', 'c', '_', 'h', 'h', '_', 's', '1',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'n', 'a', 'c', '_',
-+ 'h', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-+ '_', 'n', 'a', 'c', '_', 'h', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+ '2', '_', 'm', 'p', 'y', '_', 'n', 'a', 'c', '_', 'l', 'h', '_', 's', '0',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'n', 'a', 'c', '_',
-+ 'l', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-+ '_', 'n', 'a', 'c', '_', 'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+ '2', '_', 'm', 'p', 'y', '_', 'n', 'a', 'c', '_', 'l', 'l', '_', 's', '1',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'n', 'a', 'c', '_',
-+ 's', 'a', 't', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-+ '_', 'm', 'p', 'y', '_', 'n', 'a', 'c', '_', 's', 'a', 't', '_', 'h', 'h',
-+ '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'n',
-+ 'a', 'c', '_', 's', 'a', 't', '_', 'h', 'l', '_', 's', '0', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'n', 'a', 'c', '_', 's', 'a', 't',
-+ '_', 'h', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p',
-+ 'y', '_', 'n', 'a', 'c', '_', 's', 'a', 't', '_', 'l', 'h', '_', 's', '0',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'n', 'a', 'c', '_',
-+ 's', 'a', 't', '_', 'l', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-+ '_', 'm', 'p', 'y', '_', 'n', 'a', 'c', '_', 's', 'a', 't', '_', 'l', 'l',
-+ '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'n',
-+ 'a', 'c', '_', 's', 'a', 't', '_', 'l', 'l', '_', 's', '1', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'r', 'n', 'd', '_', 'h', 'h', '_',
-+ 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'r', 'n',
-+ 'd', '_', 'h', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-+ 'p', 'y', '_', 'r', 'n', 'd', '_', 'h', 'l', '_', 's', '0', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'r', 'n', 'd', '_', 'h', 'l', '_',
-+ 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'r', 'n',
-+ 'd', '_', 'l', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-+ 'p', 'y', '_', 'r', 'n', 'd', '_', 'l', 'h', '_', 's', '1', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'r', 'n', 'd', '_', 'l', 'l', '_',
-+ 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'r', 'n',
-+ 'd', '_', 'l', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-+ 'p', 'y', '_', 's', 'a', 't', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'M', '2', '_', 'm', 'p', 'y', '_', 's', 'a', 't', '_', 'h', 'h', '_',
-+ 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 's', 'a',
-+ 't', '_', 'h', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-+ 'p', 'y', '_', 's', 'a', 't', '_', 'h', 'l', '_', 's', '1', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'M', '2', '_', 'm', 'p', 'y', '_', 's', 'a', 't', '_', 'l', 'h', '_',
-+ 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 's', 'a',
-+ 't', '_', 'l', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-+ 'p', 'y', '_', 's', 'a', 't', '_', 'l', 'l', '_', 's', '0', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'M', '2', '_', 'm', 'p', 'y', '_', 's', 'a', 't', '_', 'l', 'l', '_',
-+ 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 's', 'a',
-+ 't', '_', 'r', 'n', 'd', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'M', '2', '_', 'm', 'p', 'y', '_', 's', 'a', 't', '_', 'r', 'n', 'd', '_',
-+ 'h', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-+ '_', 's', 'a', 't', '_', 'r', 'n', 'd', '_', 'h', 'l', '_', 's', '0', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 's', 'a', 't', '_', 'r',
-+ 'n', 'd', '_', 'h', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-+ 'm', 'p', 'y', '_', 's', 'a', 't', '_', 'r', 'n', 'd', '_', 'l', 'h', '_',
-+ 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 's', 'a',
-+ 't', '_', 'r', 'n', 'd', '_', 'l', 'h', '_', 's', '1', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'M', '2', '_', 'm', 'p', 'y', '_', 's', 'a', 't', '_', 'r', 'n', 'd', '_',
-+ 'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-+ '_', 's', 'a', 't', '_', 'r', 'n', 'd', '_', 'l', 'l', '_', 's', '1', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'u', 'p', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'u', 'p', '_', 's', '1', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'u', 'p', '_', 's', '1', '_',
-+ 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_',
-+ 'a', 'c', 'c', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-+ '_', 'm', 'p', 'y', 'd', '_', 'a', 'c', 'c', '_', 'h', 'h', '_', 's', '1',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'a', 'c', 'c',
-+ '_', 'h', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p',
-+ 'y', 'd', '_', 'a', 'c', 'c', '_', 'h', 'l', '_', 's', '1', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'a', 'c', 'c', '_', 'l', 'h',
-+ '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_',
-+ 'a', 'c', 'c', '_', 'l', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-+ '_', 'm', 'p', 'y', 'd', '_', 'a', 'c', 'c', '_', 'l', 'l', '_', 's', '0',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'a', 'c', 'c',
-+ '_', 'l', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p',
-+ 'y', 'd', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-+ 'm', 'p', 'y', 'd', '_', 'h', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+ '2', '_', 'm', 'p', 'y', 'd', '_', 'h', 'l', '_', 's', '0', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'h', 'l', '_', 's', '1', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'l', 'h', '_', 's',
-+ '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'l', 'h',
-+ '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_',
-+ 'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-+ 'd', '_', 'l', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-+ 'p', 'y', 'd', '_', 'n', 'a', 'c', '_', 'h', 'h', '_', 's', '0', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'n', 'a', 'c', '_', 'h',
-+ 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd',
-+ '_', 'n', 'a', 'c', '_', 'h', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+ '2', '_', 'm', 'p', 'y', 'd', '_', 'n', 'a', 'c', '_', 'h', 'l', '_', 's',
-+ '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'n', 'a',
-+ 'c', '_', 'l', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-+ 'p', 'y', 'd', '_', 'n', 'a', 'c', '_', 'l', 'h', '_', 's', '1', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'n', 'a', 'c', '_', 'l',
-+ 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd',
-+ '_', 'n', 'a', 'c', '_', 'l', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+ '2', '_', 'm', 'p', 'y', 'd', '_', 'r', 'n', 'd', '_', 'h', 'h', '_', 's',
-+ '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'r', 'n',
-+ 'd', '_', 'h', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-+ 'p', 'y', 'd', '_', 'r', 'n', 'd', '_', 'h', 'l', '_', 's', '0', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'r', 'n', 'd', '_', 'h',
-+ 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd',
-+ '_', 'r', 'n', 'd', '_', 'l', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+ '2', '_', 'm', 'p', 'y', 'd', '_', 'r', 'n', 'd', '_', 'l', 'h', '_', 's',
-+ '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'r', 'n',
-+ 'd', '_', 'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-+ 'p', 'y', 'd', '_', 'r', 'n', 'd', '_', 'l', 'l', '_', 's', '1', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'i', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-+ '_', 'm', 'p', 'y', 's', 'm', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-+ 'p', 'y', 's', 'u', '_', 'u', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-+ 'p', 'y', 'u', '_', 'a', 'c', 'c', '_', 'h', 'h', '_', 's', '0', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'a', 'c', 'c', '_', 'h',
-+ 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u',
-+ '_', 'a', 'c', 'c', '_', 'h', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+ '2', '_', 'm', 'p', 'y', 'u', '_', 'a', 'c', 'c', '_', 'h', 'l', '_', 's',
-+ '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'a', 'c',
-+ 'c', '_', 'l', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-+ 'p', 'y', 'u', '_', 'a', 'c', 'c', '_', 'l', 'h', '_', 's', '1', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'a', 'c', 'c', '_', 'l',
-+ 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u',
-+ '_', 'a', 'c', 'c', '_', 'l', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+ '2', '_', 'm', 'p', 'y', 'u', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'h', 'h', '_', 's', '1', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'h', 'l', '_', 's',
-+ '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'h', 'l',
-+ '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_',
-+ 'l', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-+ 'u', '_', 'l', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-+ 'p', 'y', 'u', '_', 'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-+ '_', 'm', 'p', 'y', 'u', '_', 'l', 'l', '_', 's', '1', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'n', 'a', 'c', '_', 'h', 'h', '_',
-+ 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'n',
-+ 'a', 'c', '_', 'h', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-+ 'm', 'p', 'y', 'u', '_', 'n', 'a', 'c', '_', 'h', 'l', '_', 's', '0', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'n', 'a', 'c', '_',
-+ 'h', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-+ 'u', '_', 'n', 'a', 'c', '_', 'l', 'h', '_', 's', '0', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'n', 'a', 'c', '_', 'l', 'h', '_',
-+ 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'n',
-+ 'a', 'c', '_', 'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-+ 'm', 'p', 'y', 'u', '_', 'n', 'a', 'c', '_', 'l', 'l', '_', 's', '1', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'u', 'p', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'a', 'c', 'c', '_',
-+ 'h', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-+ 'u', 'd', '_', 'a', 'c', 'c', '_', 'h', 'h', '_', 's', '1', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'a', 'c', 'c', '_', 'h',
-+ 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u',
-+ 'd', '_', 'a', 'c', 'c', '_', 'h', 'l', '_', 's', '1', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'a', 'c', 'c', '_', 'l', 'h',
-+ '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd',
-+ '_', 'a', 'c', 'c', '_', 'l', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+ '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'a', 'c', 'c', '_', 'l', 'l', '_',
-+ 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_',
-+ 'a', 'c', 'c', '_', 'l', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-+ '_', 'm', 'p', 'y', 'u', 'd', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'h', 'h', '_', 's', '1',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'h', 'l',
-+ '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd',
-+ '_', 'h', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p',
-+ 'y', 'u', 'd', '_', 'l', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-+ '_', 'm', 'p', 'y', 'u', 'd', '_', 'l', 'h', '_', 's', '1', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'l', 'l', '_', 's', '0',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'l', 'l',
-+ '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd',
-+ '_', 'n', 'a', 'c', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+ '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'n', 'a', 'c', '_', 'h', 'h', '_',
-+ 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_',
-+ 'n', 'a', 'c', '_', 'h', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-+ '_', 'm', 'p', 'y', 'u', 'd', '_', 'n', 'a', 'c', '_', 'h', 'l', '_', 's',
-+ '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'n',
-+ 'a', 'c', '_', 'l', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-+ 'm', 'p', 'y', 'u', 'd', '_', 'n', 'a', 'c', '_', 'l', 'h', '_', 's', '1',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'n', 'a',
-+ 'c', '_', 'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-+ 'p', 'y', 'u', 'd', '_', 'n', 'a', 'c', '_', 'l', 'l', '_', 's', '1', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'i', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'M', '2', '_', 'n', 'a', 'c', 'c', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-+ 'n', 'a', 'c', 'c', 'i', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 's', 'u',
-+ 'b', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'a', 'b', 's',
-+ 'd', 'i', 'f', 'f', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'a', 'b',
-+ 's', 'd', 'i', 'f', 'f', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'c',
-+ 'm', 'a', 'c', '_', 's', '0', '_', 's', 'a', 't', '_', 'i', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'M', '2', '_', 'v', 'c', 'm', 'a', 'c', '_', 's', '0', '_', 's', 'a',
-+ 't', '_', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'c', 'm', 'p', 'y',
-+ '_', 's', '0', '_', 's', 'a', 't', '_', 'i', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-+ '_', 'v', 'c', 'm', 'p', 'y', '_', 's', '0', '_', 's', 'a', 't', '_', 'r',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'c', 'm', 'p', 'y', '_', 's', '1',
-+ '_', 's', 'a', 't', '_', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'c',
-+ 'm', 'p', 'y', '_', 's', '1', '_', 's', 'a', 't', '_', 'r', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'M', '2', '_', 'v', 'd', 'm', 'a', 'c', 's', '_', 's', '0', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'M', '2', '_', 'v', 'd', 'm', 'a', 'c', 's', '_', 's', '1', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'M', '2', '_', 'v', 'd', 'm', 'p', 'y', 'r', 's', '_', 's',
-+ '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'd', 'm', 'p', 'y', 'r', 's',
-+ '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'd', 'm', 'p', 'y',
-+ 's', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'd', 'm', 'p',
-+ 'y', 's', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'm', 'a',
-+ 'c', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'm', 'a', 'c', '2', 'e',
-+ 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'm', 'a', 'c', '2', 'e', 's',
-+ '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'm', 'a', 'c', '2',
-+ 'e', 's', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'm', 'a',
-+ 'c', '2', 's', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'm',
-+ 'a', 'c', '2', 's', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v',
-+ 'm', 'a', 'c', '2', 's', 'u', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-+ '_', 'v', 'm', 'a', 'c', '2', 's', 'u', '_', 's', '1', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'M', '2', '_', 'v', 'm', 'p', 'y', '2', 'e', 's', '_', 's', '0', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'M', '2', '_', 'v', 'm', 'p', 'y', '2', 'e', 's', '_', 's', '1',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'm', 'p', 'y', '2', 's', '_', 's',
-+ '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'm', 'p', 'y', '2', 's', '_',
-+ 's', '0', 'p', 'a', 'c', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'm',
-+ 'p', 'y', '2', 's', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v',
-+ 'm', 'p', 'y', '2', 's', '_', 's', '1', 'p', 'a', 'c', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'M', '2', '_', 'v', 'm', 'p', 'y', '2', 's', 'u', '_', 's', '0', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'M', '2', '_', 'v', 'm', 'p', 'y', '2', 's', 'u', '_', 's',
-+ '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'a', 'd', 'd', 'h', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'a', 'd', 'd', 'u', 'h', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'M', '2', '_', 'v', 'r', 'c', 'm', 'a', 'c', 'i', '_', 's', '0',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'c', 'm', 'a', 'c', 'i', '_',
-+ 's', '0', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'c', 'm', 'a',
-+ 'c', 'r', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'c',
-+ 'm', 'a', 'c', 'r', '_', 's', '0', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-+ 'v', 'r', 'c', 'm', 'p', 'y', 'i', '_', 's', '0', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+ '2', '_', 'v', 'r', 'c', 'm', 'p', 'y', 'i', '_', 's', '0', 'c', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'M', '2', '_', 'v', 'r', 'c', 'm', 'p', 'y', 'r', '_', 's', '0',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'c', 'm', 'p', 'y', 'r', '_',
-+ 's', '0', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'c', 'm', 'p',
-+ 'y', 's', '_', 'a', 'c', 'c', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-+ '_', 'v', 'r', 'c', 'm', 'p', 'y', 's', '_', 's', '1', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'M', '2', '_', 'v', 'r', 'c', 'm', 'p', 'y', 's', '_', 's', '1', 'r', 'p',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'm', 'a', 'c', '_', 's', '0',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'm', 'p', 'y', '_', 's', '0',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'M', '2', '_', 'x', 'o', 'r', '_', 'x', 'a', 'c', 'c',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'M', '4', '_', 'a', 'n', 'd', '_', 'a', 'n', 'd', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'M', '4', '_', 'a', 'n', 'd', '_', 'a', 'n', 'd', 'n', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'M', '4', '_', 'a', 'n', 'd', '_', 'o', 'r', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'M', '4', '_', 'a', 'n', 'd', '_', 'x', 'o', 'r', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'M', '4', '_', 'c', 'm', 'p', 'y', 'i', '_', 'w', 'h', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'M', '4', '_', 'c', 'm', 'p', 'y', 'i', '_', 'w', 'h', 'c', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'M', '4', '_', 'c', 'm', 'p', 'y', 'r', '_', 'w', 'h', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'M', '4', '_', 'c', 'm', 'p', 'y', 'r', '_', 'w', 'h', 'c', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'M', '4', '_', 'm', 'a', 'c', '_', 'u', 'p', '_', 's', '1', '_',
-+ 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'm', 'p', 'y', 'r', 'i',
-+ '_', 'a', 'd', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'm', 'p', 'y',
-+ 'r', 'i', '_', 'a', 'd', 'd', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'm',
-+ 'p', 'y', 'r', 'i', '_', 'a', 'd', 'd', 'r', '_', 'u', '2', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'M', '4', '_', 'm', 'p', 'y', 'r', 'r', '_', 'a', 'd', 'd', 'i', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'M', '4', '_', 'm', 'p', 'y', 'r', 'r', '_', 'a', 'd', 'd',
-+ 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'n', 'a', 'c', '_', 'u', 'p', '_',
-+ 's', '1', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'o', 'r',
-+ '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'o', 'r', '_', 'a',
-+ 'n', 'd', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'o', 'r', '_', 'o', 'r',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'M', '4', '_', 'o', 'r', '_', 'x', 'o', 'r', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'M', '4', '_', 'p', 'm', 'p', 'y', 'w', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+ '4', '_', 'p', 'm', 'p', 'y', 'w', '_', 'a', 'c', 'c', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'M', '4', '_', 'v', 'p', 'm', 'p', 'y', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4',
-+ '_', 'v', 'p', 'm', 'p', 'y', 'h', '_', 'a', 'c', 'c', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'M', '4', '_', 'v', 'r', 'm', 'p', 'y', 'e', 'h', '_', 'a', 'c', 'c', '_',
-+ 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'v', 'r', 'm', 'p', 'y', 'e',
-+ 'h', '_', 'a', 'c', 'c', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_',
-+ 'v', 'r', 'm', 'p', 'y', 'e', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+ '4', '_', 'v', 'r', 'm', 'p', 'y', 'e', 'h', '_', 's', '1', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'M', '4', '_', 'v', 'r', 'm', 'p', 'y', 'o', 'h', '_', 'a', 'c', 'c',
-+ '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'v', 'r', 'm', 'p', 'y',
-+ 'o', 'h', '_', 'a', 'c', 'c', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4',
-+ '_', 'v', 'r', 'm', 'p', 'y', 'o', 'h', '_', 's', '0', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'M', '4', '_', 'v', 'r', 'm', 'p', 'y', 'o', 'h', '_', 's', '1', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'M', '4', '_', 'x', 'o', 'r', '_', 'a', 'n', 'd', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'M', '4', '_', 'x', 'o', 'r', '_', 'a', 'n', 'd', 'n', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'M', '4', '_', 'x', 'o', 'r', '_', 'o', 'r', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+ '4', '_', 'x', 'o', 'r', '_', 'x', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+ '5', '_', 'v', 'd', 'm', 'a', 'c', 'b', 's', 'u', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+ '5', '_', 'v', 'd', 'm', 'p', 'y', 'b', 's', 'u', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+ '5', '_', 'v', 'm', 'a', 'c', 'b', 's', 'u', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '5',
-+ '_', 'v', 'm', 'a', 'c', 'b', 'u', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '5', '_',
-+ 'v', 'm', 'p', 'y', 'b', 's', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '5', '_', 'v',
-+ 'm', 'p', 'y', 'b', 'u', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '5', '_', 'v', 'r',
-+ 'm', 'a', 'c', 'b', 's', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '5', '_', 'v', 'r',
-+ 'm', 'a', 'c', 'b', 'u', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '5', '_', 'v', 'r',
-+ 'm', 'p', 'y', 'b', 's', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '5', '_', 'v', 'r',
-+ 'm', 'p', 'y', 'b', 'u', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '6', '_', 'v', 'a',
-+ 'b', 's', 'd', 'i', 'f', 'f', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '6', '_', 'v',
-+ 'a', 'b', 's', 'd', 'i', 'f', 'f', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+ '_', 'a', 'd', 'd', 'a', 's', 'l', '_', 'r', 'r', 'r', 'i', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'S', '2', '_', 'a', 's', 'l', '_', 'i', '_', 'p', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'S', '2', '_', 'a', 's', 'l', '_', 'i', '_', 'p', '_', 'a', 'c', 'c', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'i', '_', 'p', '_', 'a',
-+ 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'i', '_',
-+ 'p', '_', 'n', 'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l',
-+ '_', 'i', '_', 'p', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a',
-+ 's', 'l', '_', 'i', '_', 'p', '_', 'x', 'a', 'c', 'c', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'S', '2', '_', 'a', 's', 'l', '_', 'i', '_', 'r', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-+ '2', '_', 'a', 's', 'l', '_', 'i', '_', 'r', '_', 'a', 'c', 'c', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'i', '_', 'r', '_', 'a', 'n',
-+ 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'i', '_', 'r',
-+ '_', 'n', 'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_',
-+ 'i', '_', 'r', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's',
-+ 'l', '_', 'i', '_', 'r', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+ '_', 'a', 's', 'l', '_', 'i', '_', 'r', '_', 'x', 'a', 'c', 'c', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'i', '_', 'v', 'h', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'i', '_', 'v', 'w', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'r', '_', 'p', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'S', '2', '_', 'a', 's', 'l', '_', 'r', '_', 'p', '_', 'a', 'c', 'c',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'r', '_', 'p', '_',
-+ 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'r',
-+ '_', 'p', '_', 'n', 'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's',
-+ 'l', '_', 'r', '_', 'p', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_',
-+ 'a', 's', 'l', '_', 'r', '_', 'p', '_', 'x', 'o', 'r', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'S', '2', '_', 'a', 's', 'l', '_', 'r', '_', 'r', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-+ '2', '_', 'a', 's', 'l', '_', 'r', '_', 'r', '_', 'a', 'c', 'c', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'r', '_', 'r', '_', 'a', 'n',
-+ 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'r', '_', 'r',
-+ '_', 'n', 'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_',
-+ 'r', '_', 'r', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's',
-+ 'l', '_', 'r', '_', 'r', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+ '_', 'a', 's', 'l', '_', 'r', '_', 'v', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+ '_', 'a', 's', 'l', '_', 'r', '_', 'v', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+ '_', 'a', 's', 'r', '_', 'i', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_',
-+ 'a', 's', 'r', '_', 'i', '_', 'p', '_', 'a', 'c', 'c', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'S', '2', '_', 'a', 's', 'r', '_', 'i', '_', 'p', '_', 'a', 'n', 'd', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'i', '_', 'p', '_', 'n',
-+ 'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'i', '_',
-+ 'p', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_',
-+ 'i', '_', 'p', '_', 'r', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a',
-+ 's', 'r', '_', 'i', '_', 'p', '_', 'r', 'n', 'd', '_', 'g', 'o', 'o', 'd',
-+ 's', 'y', 'n', 't', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's',
-+ 'r', '_', 'i', '_', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r',
-+ '_', 'i', '_', 'r', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_',
-+ 'a', 's', 'r', '_', 'i', '_', 'r', '_', 'a', 'n', 'd', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'S', '2', '_', 'a', 's', 'r', '_', 'i', '_', 'r', '_', 'n', 'a', 'c', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'i', '_', 'r', '_', 'o',
-+ 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'i', '_', 'r',
-+ '_', 'r', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_',
-+ 'i', '_', 'r', '_', 'r', 'n', 'd', '_', 'g', 'o', 'o', 'd', 's', 'y', 'n',
-+ 't', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'i',
-+ '_', 's', 'v', 'w', '_', 't', 'r', 'u', 'n', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+ '_', 'a', 's', 'r', '_', 'i', '_', 'v', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+ '_', 'a', 's', 'r', '_', 'i', '_', 'v', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+ '_', 'a', 's', 'r', '_', 'r', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_',
-+ 'a', 's', 'r', '_', 'r', '_', 'p', '_', 'a', 'c', 'c', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'S', '2', '_', 'a', 's', 'r', '_', 'r', '_', 'p', '_', 'a', 'n', 'd', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'r', '_', 'p', '_', 'n',
-+ 'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'r', '_',
-+ 'p', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_',
-+ 'r', '_', 'p', '_', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a',
-+ 's', 'r', '_', 'r', '_', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's',
-+ 'r', '_', 'r', '_', 'r', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+ '_', 'a', 's', 'r', '_', 'r', '_', 'r', '_', 'a', 'n', 'd', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'S', '2', '_', 'a', 's', 'r', '_', 'r', '_', 'r', '_', 'n', 'a', 'c',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'r', '_', 'r', '_',
-+ 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'r', '_',
-+ 'r', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r',
-+ '_', 'r', '_', 's', 'v', 'w', '_', 't', 'r', 'u', 'n', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'S', '2', '_', 'a', 's', 'r', '_', 'r', '_', 'v', 'h', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'S', '2', '_', 'a', 's', 'r', '_', 'r', '_', 'v', 'w', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'S', '2', '_', 'b', 'r', 'e', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'b',
-+ 'r', 'e', 'v', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'c', 'a', 'b', 'a',
-+ 'c', 'e', 'n', 'c', 'b', 'i', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'c',
-+ 'l', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'c', 'l', '0', 'p', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'S', '2', '_', 'c', 'l', '1', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_',
-+ 'c', 'l', '1', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'c', 'l', 'b', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'S', '2', '_', 'c', 'l', 'b', 'n', 'o', 'r', 'm', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'S', '2', '_', 'c', 'l', 'b', 'p', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+ '_', 'c', 'l', 'r', 'b', 'i', 't', '_', 'i', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+ '_', 'c', 'l', 'r', 'b', 'i', 't', '_', 'r', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+ '_', 'c', 't', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'c', 't', '0', 'p',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'S', '2', '_', 'c', 't', '1', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-+ '2', '_', 'c', 't', '1', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'd', 'e',
-+ 'i', 'n', 't', 'e', 'r', 'l', 'e', 'a', 'v', 'e', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-+ '2', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'u', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-+ '2', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'u', '_', 'r', 'p', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'S', '2', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'u', 'p', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'S', '2', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'u', 'p',
-+ '_', 'r', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'i', 'n', 's', 'e', 'r',
-+ 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'i', 'n', 's', 'e', 'r', 't', '_',
-+ 'r', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'i', 'n', 's', 'e', 'r', 't',
-+ 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'i', 'n', 's', 'e', 'r', 't', 'p',
-+ '_', 'r', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'i', 'n', 't', 'e', 'r',
-+ 'l', 'e', 'a', 'v', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 'f', 's',
-+ 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'l', '_', 'r', '_', 'p',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'l', '_', 'r', '_', 'p', '_',
-+ 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'l', '_', 'r',
-+ '_', 'p', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's',
-+ 'l', '_', 'r', '_', 'p', '_', 'n', 'a', 'c', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+ '_', 'l', 's', 'l', '_', 'r', '_', 'p', '_', 'o', 'r', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'S', '2', '_', 'l', 's', 'l', '_', 'r', '_', 'p', '_', 'x', 'o', 'r', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'l', '_', 'r', '_', 'r', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'S', '2', '_', 'l', 's', 'l', '_', 'r', '_', 'r', '_', 'a', 'c',
-+ 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'l', '_', 'r', '_', 'r',
-+ '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'l', '_',
-+ 'r', '_', 'r', '_', 'n', 'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l',
-+ 's', 'l', '_', 'r', '_', 'r', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+ '_', 'l', 's', 'l', '_', 'r', '_', 'v', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+ '_', 'l', 's', 'l', '_', 'r', '_', 'v', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+ '_', 'l', 's', 'r', '_', 'i', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_',
-+ 'l', 's', 'r', '_', 'i', '_', 'p', '_', 'a', 'c', 'c', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'S', '2', '_', 'l', 's', 'r', '_', 'i', '_', 'p', '_', 'a', 'n', 'd', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'i', '_', 'p', '_', 'n',
-+ 'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'i', '_',
-+ 'p', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_',
-+ 'i', '_', 'p', '_', 'x', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_',
-+ 'l', 's', 'r', '_', 'i', '_', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l',
-+ 's', 'r', '_', 'i', '_', 'r', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-+ '2', '_', 'l', 's', 'r', '_', 'i', '_', 'r', '_', 'a', 'n', 'd', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'i', '_', 'r', '_', 'n', 'a',
-+ 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'i', '_', 'r',
-+ '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'i',
-+ '_', 'r', '_', 'x', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l',
-+ 's', 'r', '_', 'i', '_', 'v', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l',
-+ 's', 'r', '_', 'i', '_', 'v', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l',
-+ 's', 'r', '_', 'r', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's',
-+ 'r', '_', 'r', '_', 'p', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+ '_', 'l', 's', 'r', '_', 'r', '_', 'p', '_', 'a', 'n', 'd', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'S', '2', '_', 'l', 's', 'r', '_', 'r', '_', 'p', '_', 'n', 'a', 'c',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'r', '_', 'p', '_',
-+ 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'r', '_',
-+ 'p', '_', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r',
-+ '_', 'r', '_', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_',
-+ 'r', '_', 'r', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l',
-+ 's', 'r', '_', 'r', '_', 'r', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-+ '2', '_', 'l', 's', 'r', '_', 'r', '_', 'r', '_', 'n', 'a', 'c', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'r', '_', 'r', '_', 'o', 'r',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'r', '_', 'v', 'h',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'r', '_', 'v', 'w',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'S', '2', '_', 'p', 'a', 'c', 'k', 'h', 'l', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'S', '2', '_', 'p', 'a', 'r', 'i', 't', 'y', 'p', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'S', '2', '_', 's', 'e', 't', 'b', 'i', 't', '_', 'i', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'S', '2', '_', 's', 'e', 't', 'b', 'i', 't', '_', 'r', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'S', '2', '_', 's', 'h', 'u', 'f', 'f', 'e', 'b', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'S', '2', '_', 's', 'h', 'u', 'f', 'f', 'e', 'h', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-+ '2', '_', 's', 'h', 'u', 'f', 'f', 'o', 'b', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+ '_', 's', 'h', 'u', 'f', 'f', 'o', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_',
-+ 's', 't', 'o', 'r', 'e', 'w', '_', 'l', 'o', 'c', 'k', 'e', 'd', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'S', '2', '_', 's', 'v', 's', 'a', 't', 'h', 'b', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'S', '2', '_', 's', 'v', 's', 'a', 't', 'h', 'u', 'b', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'S', '2', '_', 't', 'a', 'b', 'l', 'e', 'i', 'd', 'x', 'b', '_', 'g',
-+ 'o', 'o', 'd', 's', 'y', 'n', 't', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+ '_', 't', 'a', 'b', 'l', 'e', 'i', 'd', 'x', 'd', '_', 'g', 'o', 'o', 'd',
-+ 's', 'y', 'n', 't', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 't', 'a',
-+ 'b', 'l', 'e', 'i', 'd', 'x', 'h', '_', 'g', 'o', 'o', 'd', 's', 'y', 'n',
-+ 't', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 't', 'a', 'b', 'l', 'e',
-+ 'i', 'd', 'x', 'w', '_', 'g', 'o', 'o', 'd', 's', 'y', 'n', 't', 'a', 'x',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'S', '2', '_', 't', 'o', 'g', 'g', 'l', 'e', 'b', 'i',
-+ 't', '_', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 't', 'o', 'g', 'g', 'l',
-+ 'e', 'b', 'i', 't', '_', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 't', 's',
-+ 't', 'b', 'i', 't', '_', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 't', 's',
-+ 't', 'b', 'i', 't', '_', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 'a',
-+ 'l', 'i', 'g', 'n', 'i', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 'a',
-+ 'l', 'i', 'g', 'n', 'r', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 'c',
-+ 'n', 'e', 'g', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 'c', 'r', 'o',
-+ 't', 'a', 't', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 'r', 'c', 'n',
-+ 'e', 'g', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 'r', 'n', 'd', 'p',
-+ 'a', 'c', 'k', 'w', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 'r', 'n',
-+ 'd', 'p', 'a', 'c', 'k', 'w', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_',
-+ 'v', 's', 'a', 't', 'h', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 's',
-+ 'a', 't', 'h', 'b', '_', 'n', 'o', 'p', 'a', 'c', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'S', '2', '_', 'v', 's', 'a', 't', 'h', 'u', 'b', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-+ '2', '_', 'v', 's', 'a', 't', 'h', 'u', 'b', '_', 'n', 'o', 'p', 'a', 'c',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 's', 'a', 't', 'w', 'h', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'S', '2', '_', 'v', 's', 'a', 't', 'w', 'h', '_', 'n', 'o',
-+ 'p', 'a', 'c', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 's', 'a', 't',
-+ 'w', 'u', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 's', 'a', 't', 'w',
-+ 'u', 'h', '_', 'n', 'o', 'p', 'a', 'c', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+ '_', 'v', 's', 'p', 'l', 'a', 't', 'r', 'b', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+ '_', 'v', 's', 'p', 'l', 'a', 't', 'r', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+ '_', 'v', 's', 'p', 'l', 'i', 'c', 'e', 'i', 'b', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-+ '2', '_', 'v', 's', 'p', 'l', 'i', 'c', 'e', 'r', 'b', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'S', '2', '_', 'v', 's', 'x', 't', 'b', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+ '_', 'v', 's', 'x', 't', 'h', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v',
-+ 't', 'r', 'u', 'n', 'e', 'h', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v',
-+ 't', 'r', 'u', 'n', 'e', 'w', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v',
-+ 't', 'r', 'u', 'n', 'o', 'h', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v',
-+ 't', 'r', 'u', 'n', 'o', 'w', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v',
-+ 'z', 'x', 't', 'b', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 'z', 'x',
-+ 't', 'h', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'a', 'd', 'd', 'a', 'd',
-+ 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'a', 'd', 'd', 'i', '_', 'a',
-+ 's', 'l', '_', 'r', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'a', 'd', 'd',
-+ 'i', '_', 'l', 's', 'r', '_', 'r', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_',
-+ 'a', 'n', 'd', 'i', '_', 'a', 's', 'l', '_', 'r', 'i', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'S', '4', '_', 'a', 'n', 'd', 'i', '_', 'l', 's', 'r', '_', 'r', 'i', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'S', '4', '_', 'c', 'l', 'b', 'a', 'd', 'd', 'i', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'S', '4', '_', 'c', 'l', 'b', 'p', 'a', 'd', 'd', 'i', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'S', '4', '_', 'c', 'l', 'b', 'p', 'n', 'o', 'r', 'm', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'S', '4', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'S', '4', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', '_', 'r', 'p', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'S', '4', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'p', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'S', '4', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'p', '_',
-+ 'r', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'l', 's', 'l', 'i', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'S', '4', '_', 'n', 't', 's', 't', 'b', 'i', 't', '_', 'i', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'S', '4', '_', 'n', 't', 's', 't', 'b', 'i', 't', '_', 'r',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'S', '4', '_', 'o', 'r', '_', 'a', 'n', 'd', 'i', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'S', '4', '_', 'o', 'r', '_', 'a', 'n', 'd', 'i', 'x', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'S', '4', '_', 'o', 'r', '_', 'o', 'r', 'i', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'S', '4', '_', 'o', 'r', 'i', '_', 'a', 's', 'l', '_', 'r', 'i', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'S', '4', '_', 'o', 'r', 'i', '_', 'l', 's', 'r', '_', 'r',
-+ 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'p', 'a', 'r', 'i', 't', 'y', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'S', '4', '_', 's', 't', 'o', 'r', 'e', 'd', '_', 'l', 'o',
-+ 'c', 'k', 'e', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 's', 'u', 'b', 'a',
-+ 'd', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 's', 'u', 'b', 'i', '_',
-+ 'a', 's', 'l', '_', 'r', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 's', 'u',
-+ 'b', 'i', '_', 'l', 's', 'r', '_', 'r', 'i', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4',
-+ '_', 'v', 'r', 'c', 'r', 'o', 't', 'a', 't', 'e', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-+ '4', '_', 'v', 'r', 'c', 'r', 'o', 't', 'a', 't', 'e', '_', 'a', 'c', 'c',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'S', '4', '_', 'v', 'x', 'a', 'd', 'd', 's', 'u', 'b',
-+ 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'v', 'x', 'a', 'd', 'd', 's', 'u',
-+ 'b', 'h', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'v', 'x', 'a', 'd', 'd',
-+ 's', 'u', 'b', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'v', 'x', 's', 'u',
-+ 'b', 'a', 'd', 'd', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'v', 'x', 's',
-+ 'u', 'b', 'a', 'd', 'd', 'h', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'v',
-+ 'x', 's', 'u', 'b', 'a', 'd', 'd', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '5', '_',
-+ 'a', 's', 'r', 'h', 'u', 'b', '_', 'r', 'n', 'd', '_', 's', 'a', 't', '_',
-+ 'g', 'o', 'o', 'd', 's', 'y', 'n', 't', 'a', 'x', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-+ '5', '_', 'a', 's', 'r', 'h', 'u', 'b', '_', 's', 'a', 't', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'S', '5', '_', 'p', 'o', 'p', 'c', 'o', 'u', 'n', 't', 'p', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'S', '5', '_', 'v', 'a', 's', 'r', 'h', 'r', 'n', 'd', '_', 'g',
-+ 'o', 'o', 'd', 's', 'y', 'n', 't', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '6',
-+ '_', 'r', 'o', 'l', '_', 'i', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_',
-+ 'r', 'o', 'l', '_', 'i', '_', 'p', '_', 'a', 'c', 'c', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'S', '6', '_', 'r', 'o', 'l', '_', 'i', '_', 'p', '_', 'a', 'n', 'd', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'S', '6', '_', 'r', 'o', 'l', '_', 'i', '_', 'p', '_', 'n',
-+ 'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_', 'r', 'o', 'l', '_', 'i', '_',
-+ 'p', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_', 'r', 'o', 'l', '_',
-+ 'i', '_', 'p', '_', 'x', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_',
-+ 'r', 'o', 'l', '_', 'i', '_', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_', 'r',
-+ 'o', 'l', '_', 'i', '_', 'r', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-+ '6', '_', 'r', 'o', 'l', '_', 'i', '_', 'r', '_', 'a', 'n', 'd', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'S', '6', '_', 'r', 'o', 'l', '_', 'i', '_', 'r', '_', 'n', 'a',
-+ 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'S', '6', '_', 'r', 'o', 'l', '_', 'i', '_', 'r',
-+ '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_', 'r', 'o', 'l', '_', 'i',
-+ '_', 'r', '_', 'x', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_', 'v',
-+ 's', 'p', 'l', 'a', 't', 'r', 'b', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_',
-+ 'v', 't', 'r', 'u', 'n', 'e', 'h', 'b', '_', 'p', 'p', 'p', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'S', '6', '_', 'v', 't', 'r', 'u', 'n', 'o', 'h', 'b', '_', 'p', 'p',
-+ 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'S', 'I', '_',
-+ 't', 'o', '_', 'S', 'X', 'T', 'H', 'I', '_', 'a', 's', 'r', 'h', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'w', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'w', '_', '1',
-+ '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'h', 'i', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'h', 'i', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'l', 'o', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'l', 'o', '_',
-+ '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'l', 'v', 's', 'p',
-+ 'l', 'a', 't', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'l', 'v', 's', 'p',
-+ 'l', 'a', 't', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+ '_', 'p', 'r', 'e', 'd', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+ '_', 'p', 'r', 'e', 'd', '_', 'a', 'n', 'd', '_', '1', '2', '8', 'B', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'p', 'r', 'e', 'd', '_', 'a', 'n', 'd', '_',
-+ 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'p', 'r', 'e', 'd', '_', 'a', 'n',
-+ 'd', '_', 'n', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'p', 'r', 'e', 'd', '_', 'n', 'o', 't', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'p', 'r', 'e', 'd', '_', 'n', 'o', 't', '_', '1', '2', '8', 'B', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'p', 'r', 'e', 'd', '_', 'o', 'r', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'p', 'r', 'e', 'd', '_', 'o', 'r', '_', '1', '2', '8',
-+ 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'p', 'r', 'e', 'd', '_', 'o', 'r',
-+ '_', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'p', 'r', 'e', 'd', '_', 'o',
-+ 'r', '_', 'n', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'p', 'r', 'e', 'd', '_', 's', 'c', 'a', 'l', 'a', 'r', '2', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'p', 'r', 'e', 'd', '_', 's', 'c', 'a', 'l', 'a', 'r',
-+ '2', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'p', 'r',
-+ 'e', 'd', '_', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'p', 'r',
-+ 'e', 'd', '_', 'x', 'o', 'r', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'v', 'a', 'b', 's', 'd', 'i', 'f', 'f', 'h', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 'a', 'b', 's', 'd', 'i', 'f', 'f', 'h', '_', '1',
-+ '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'b', 's', 'd',
-+ 'i', 'f', 'f', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'b',
-+ 's', 'd', 'i', 'f', 'f', 'u', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 'a', 'b', 's', 'd', 'i', 'f', 'f', 'u', 'h', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'b', 's', 'd', 'i', 'f', 'f', 'u',
-+ 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
-+ 'b', 's', 'd', 'i', 'f', 'f', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'a', 'b', 's', 'd', 'i', 'f', 'f', 'w', '_', '1', '2', '8', 'B', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 'a', 'b', 's', 'h', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'a', 'b', 's', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 'a', 'b', 's', 'h', '_', 's', 'a', 't', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 'a', 'b', 's', 'h', '_', 's', 'a', 't', '_',
-+ '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'b', 's',
-+ 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'b', 's', 'w', '_', '1',
-+ '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'b', 's', 'w',
-+ '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'b', 's',
-+ 'w', '_', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'a', 'd', 'd', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'a', 'd', 'd', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+ '_', 'v', 'a', 'd', 'd', 'b', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+ '_', 'v', 'a', 'd', 'd', 'b', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'b', 'n', 'q', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'b', 'n', 'q', '_', '1', '2',
-+ '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'b', 'q',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'b', 'q', '_', '1',
-+ '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'h',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'h', '_', '1', '2',
-+ '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'h', '_',
-+ 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'h', '_',
-+ 'd', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'a', 'd', 'd', 'h', 'n', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
-+ 'd', 'd', 'h', 'n', 'q', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'a', 'd', 'd', 'h', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 'a', 'd', 'd', 'h', 'q', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'v', 'a', 'd', 'd', 'h', 's', 'a', 't', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'v', 'a', 'd', 'd', 'h', 's', 'a', 't', '_', '1', '2', '8',
-+ 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'h', 's', 'a',
-+ 't', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd',
-+ 'h', 's', 'a', 't', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'h', 'w', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'a', 'd', 'd', 'h', 'w', '_', '1', '2', '8', 'B', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'u', 'b', 'h', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'u', 'b', 'h', '_', '1', '2', '8',
-+ 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'u', 'b', 's',
-+ 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'u', 'b',
-+ 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 'a', 'd', 'd', 'u', 'b', 's', 'a', 't', '_', 'd', 'v', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'u', 'b', 's', 'a', 't', '_', 'd',
-+ 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
-+ 'd', 'd', 'u', 'h', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'a', 'd', 'd', 'u', 'h', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'u', 'h', 's', 'a', 't', '_',
-+ 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'u', 'h',
-+ 's', 'a', 't', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'v', 'a', 'd', 'd', 'u', 'h', 'w', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'a', 'd', 'd', 'u', 'h', 'w', '_', '1', '2', '8', 'B', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'w', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'v', 'a', 'd', 'd', 'w', '_', '1', '2', '8', 'B', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'w', '_', 'd', 'v', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'w', '_', 'd', 'v', '_', '1',
-+ '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'w',
-+ 'n', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'w', 'n',
-+ 'q', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
-+ 'd', 'd', 'w', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd',
-+ 'w', 'q', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'a', 'd', 'd', 'w', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'a', 'd', 'd', 'w', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'w', 's', 'a', 't', '_', 'd', 'v',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'w', 's', 'a', 't',
-+ '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 'a', 'l', 'i', 'g', 'n', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'a', 'l', 'i', 'g', 'n', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'v', 'a', 'l', 'i', 'g', 'n', 'b', 'i', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'v', 'a', 'l', 'i', 'g', 'n', 'b', 'i', '_', '1', '2', '8',
-+ 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'n', 'd', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 'a', 'n', 'd', '_', '1', '2', '8', 'B', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 'a', 'n', 'd', 'q', 'r', 't', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 'a', 'n', 'd', 'q', 'r', 't', '_', '1', '2', '8',
-+ 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'n', 'd', 'q', 'r', 't',
-+ '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'n', 'd',
-+ 'q', 'r', 't', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 'a', 'n', 'd', 'v', 'r', 't', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'v', 'a', 'n', 'd', 'v', 'r', 't', '_', '1', '2', '8', 'B',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'n', 'd', 'v', 'r', 't', '_',
-+ 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'n', 'd', 'v',
-+ 'r', 't', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'v', 'a', 's', 'l', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 'a', 's', 'l', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'a', 's', 'l', 'h', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 'a', 's', 'l', 'h', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'v', 'a', 's', 'l', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 'a', 's', 'l', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'a', 's', 'l', 'w', '_', 'a', 'c', 'c', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'v', 'a', 's', 'l', 'w', '_', 'a', 'c', 'c', '_', '1', '2',
-+ '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'l', 'w', 'v',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'l', 'w', 'v', '_', '1',
-+ '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'h',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'h', '_', '1', '2',
-+ '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'h', 'b',
-+ 'r', 'n', 'd', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
-+ 's', 'r', 'h', 'b', 'r', 'n', 'd', 's', 'a', 't', '_', '1', '2', '8', 'B',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'h', 'u', 'b', 'r',
-+ 'n', 'd', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's',
-+ 'r', 'h', 'u', 'b', 'r', 'n', 'd', 's', 'a', 't', '_', '1', '2', '8', 'B',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'h', 'u', 'b', 's',
-+ 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'h', 'u',
-+ 'b', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+ '_', 'v', 'a', 's', 'r', 'h', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'a', 's', 'r', 'h', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'a', 's', 'r', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'a', 's', 'r', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+ '_', 'v', 'a', 's', 'r', 'w', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'a', 's', 'r', 'w', '_', 'a', 'c', 'c', '_', '1', '2', '8',
-+ 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'w', 'h', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'w', 'h', '_', '1', '2',
-+ '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'w', 'h',
-+ 'r', 'n', 'd', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
-+ 's', 'r', 'w', 'h', 'r', 'n', 'd', 's', 'a', 't', '_', '1', '2', '8', 'B',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'w', 'h', 's', 'a',
-+ 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'w', 'h', 's',
-+ 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'a', 's', 'r', 'w', 'u', 'h', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+ '_', 'v', 'a', 's', 'r', 'w', 'u', 'h', 's', 'a', 't', '_', '1', '2', '8',
-+ 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'w', 'v', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'w', 'v', '_', '1', '2',
-+ '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 's', 'i', 'g',
-+ 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 's', 'i', 'g', 'n',
-+ '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's',
-+ 's', 'i', 'g', 'n', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's',
-+ 's', 'i', 'g', 'n', 'p', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'a', 'v', 'g', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'a', 'v', 'g', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+ '_', 'v', 'a', 'v', 'g', 'h', 'r', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+ '_', 'v', 'a', 'v', 'g', 'h', 'r', 'n', 'd', '_', '1', '2', '8', 'B', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'v', 'g', 'u', 'b', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 'a', 'v', 'g', 'u', 'b', '_', '1', '2', '8', 'B',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'v', 'g', 'u', 'b', 'r', 'n',
-+ 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'v', 'g', 'u', 'b', 'r',
-+ 'n', 'd', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'a', 'v', 'g', 'u', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'v',
-+ 'g', 'u', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 'a', 'v', 'g', 'u', 'h', 'r', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+ '_', 'v', 'a', 'v', 'g', 'u', 'h', 'r', 'n', 'd', '_', '1', '2', '8', 'B',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'v', 'g', 'w', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 'a', 'v', 'g', 'w', '_', '1', '2', '8', 'B', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'v', 'g', 'w', 'r', 'n', 'd', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'v', 'g', 'w', 'r', 'n', 'd', '_',
-+ '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'c', 'l', '0',
-+ 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'c', 'l', '0', 'h', '_', '1',
-+ '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'c', 'l', '0', 'w',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'c', 'l', '0', 'w', '_', '1', '2',
-+ '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'c', 'o', 'm', 'b', 'i',
-+ 'n', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'c', 'o', 'm', 'b', 'i',
-+ 'n', 'e', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'd', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', '0', '_', '1', '2',
-+ '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'e', 'a', 'l', 'b',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'e', 'a', 'l', 'b', '_', '1',
-+ '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'e', 'a', 'l',
-+ 'b', '4', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'e', 'a', 'l',
-+ 'b', '4', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 'd', 'e', 'a', 'l', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd',
-+ 'e', 'a', 'l', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+ '_', 'v', 'd', 'e', 'a', 'l', 'v', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+ '_', 'v', 'd', 'e', 'a', 'l', 'v', 'd', 'd', '_', '1', '2', '8', 'B', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'e', 'l', 't', 'a', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 'd', 'e', 'l', 't', 'a', '_', '1', '2', '8', 'B',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'b', 'u', 's',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'b', 'u', 's',
-+ '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm',
-+ 'p', 'y', 'b', 'u', 's', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+ '_', 'v', 'd', 'm', 'p', 'y', 'b', 'u', 's', '_', 'a', 'c', 'c', '_', '1',
-+ '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y',
-+ 'b', 'u', 's', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd',
-+ 'm', 'p', 'y', 'b', 'u', 's', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'b', 'u', 's', '_',
-+ 'd', 'v', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd',
-+ 'm', 'p', 'y', 'b', 'u', 's', '_', 'd', 'v', '_', 'a', 'c', 'c', '_', '1',
-+ '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y',
-+ 'h', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h',
-+ 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd',
-+ 'm', 'p', 'y', 'h', 'b', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+ '_', 'v', 'd', 'm', 'p', 'y', 'h', 'b', '_', 'a', 'c', 'c', '_', '1', '2',
-+ '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h',
-+ 'b', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p',
-+ 'y', 'h', 'b', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 'b', '_', 'd', 'v', '_', 'a',
-+ 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h',
-+ 'b', '_', 'd', 'v', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 'i', 's', 'a', 't',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 'i', 's',
-+ 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'd', 'm', 'p', 'y', 'h', 'i', 's', 'a', 't', '_', 'a', 'c', 'c', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 'i', 's', 'a', 't',
-+ '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+ '_', 'v', 'd', 'm', 'p', 'y', 'h', 's', 'a', 't', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 's', 'a', 't', '_', '1', '2', '8',
-+ 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 's',
-+ 'a', 't', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd',
-+ 'm', 'p', 'y', 'h', 's', 'a', 't', '_', 'a', 'c', 'c', '_', '1', '2', '8',
-+ 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 's',
-+ 'u', 'i', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm',
-+ 'p', 'y', 'h', 's', 'u', 'i', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 's', 'u', 'i',
-+ 's', 'a', 't', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'd', 'm', 'p', 'y', 'h', 's', 'u', 'i', 's', 'a', 't', '_', 'a', 'c', 'c',
-+ '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm',
-+ 'p', 'y', 'h', 's', 'u', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 'd', 'm', 'p', 'y', 'h', 's', 'u', 's', 'a', 't', '_', '1', '2', '8',
-+ 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 's',
-+ 'u', 's', 'a', 't', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 'd', 'm', 'p', 'y', 'h', 's', 'u', 's', 'a', 't', '_', 'a', 'c', 'c',
-+ '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm',
-+ 'p', 'y', 'h', 'v', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'd', 'm', 'p', 'y', 'h', 'v', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 'v', 's', 'a',
-+ 't', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm',
-+ 'p', 'y', 'h', 'v', 's', 'a', 't', '_', 'a', 'c', 'c', '_', '1', '2', '8',
-+ 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 's', 'a', 'd', 'u', 'h',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 's', 'a', 'd', 'u', 'h', '_',
-+ '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 's', 'a',
-+ 'd', 'u', 'h', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'd', 's', 'a', 'd', 'u', 'h', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'b', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'v', 'e', 'q', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 'e', 'q', 'b', '_', 'a', 'n', 'd', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 'e', 'q', 'b', '_', 'a', 'n', 'd', '_', '1', '2',
-+ '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'b', '_', 'o',
-+ 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'b', '_', 'o', 'r',
-+ '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q',
-+ 'b', '_', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q',
-+ 'b', '_', 'x', 'o', 'r', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'e', 'q', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e',
-+ 'q', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'e', 'q', 'h', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'e', 'q', 'h', '_', 'a', 'n', 'd', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 'e', 'q', 'h', '_', 'o', 'r', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'v', 'e', 'q', 'h', '_', 'o', 'r', '_', '1', '2', '8', 'B',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'h', '_', 'x', 'o', 'r',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'h', '_', 'x', 'o', 'r',
-+ '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q',
-+ 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'w', '_', '1', '2',
-+ '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'w', '_', 'a',
-+ 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'w', '_', 'a',
-+ 'n', 'd', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'e', 'q', 'w', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e',
-+ 'q', 'w', '_', 'o', 'r', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'e', 'q', 'w', '_', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'e', 'q', 'w', '_', 'x', 'o', 'r', '_', '1', '2', '8', 'B',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'b', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'v', 'g', 't', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 'g', 't', 'b', '_', 'a', 'n', 'd', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 'g', 't', 'b', '_', 'a', 'n', 'd', '_', '1', '2',
-+ '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'b', '_', 'o',
-+ 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'b', '_', 'o', 'r',
-+ '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't',
-+ 'b', '_', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't',
-+ 'b', '_', 'x', 'o', 'r', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'g', 't', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g',
-+ 't', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'g', 't', 'h', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'g', 't', 'h', '_', 'a', 'n', 'd', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 'g', 't', 'h', '_', 'o', 'r', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'v', 'g', 't', 'h', '_', 'o', 'r', '_', '1', '2', '8', 'B',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'h', '_', 'x', 'o', 'r',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'h', '_', 'x', 'o', 'r',
-+ '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't',
-+ 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'b', '_',
-+ '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u',
-+ 'b', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't',
-+ 'u', 'b', '_', 'a', 'n', 'd', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'v', 'g', 't', 'u', 'b', '_', 'o', 'r', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'v', 'g', 't', 'u', 'b', '_', 'o', 'r', '_', '1', '2', '8',
-+ 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'b', '_', 'x',
-+ 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'b', '_',
-+ 'x', 'o', 'r', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 'g', 't', 'u', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't',
-+ 'u', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'g', 't', 'u', 'h', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 'g', 't', 'u', 'h', '_', 'a', 'n', 'd', '_', '1', '2', '8', 'B', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'h', '_', 'o', 'r', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'h', '_', 'o', 'r', '_',
-+ '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u',
-+ 'h', '_', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't',
-+ 'u', 'h', '_', 'x', 'o', 'r', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'v', 'g', 't', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 'g', 't', 'u', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'g', 't', 'u', 'w', '_', 'a', 'n', 'd', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'v', 'g', 't', 'u', 'w', '_', 'a', 'n', 'd', '_', '1', '2',
-+ '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'w', '_',
-+ 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'w', '_',
-+ 'o', 'r', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'g', 't', 'u', 'w', '_', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 'g', 't', 'u', 'w', '_', 'x', 'o', 'r', '_', '1', '2', '8', 'B', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'w', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'g', 't', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'v', 'g', 't', 'w', '_', 'a', 'n', 'd', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'v', 'g', 't', 'w', '_', 'a', 'n', 'd', '_', '1', '2', '8',
-+ 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'w', '_', 'o', 'r',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'w', '_', 'o', 'r', '_',
-+ '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'w',
-+ '_', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'w',
-+ '_', 'x', 'o', 'r', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+ '_', 'v', 'i', 'n', 's', 'e', 'r', 't', 'w', 'r', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'i', 'n', 's', 'e', 'r', 't', 'w', 'r', '_', '1', '2', '8',
-+ 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l', 'a', 'l', 'i', 'g', 'n',
-+ 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l', 'a', 'l', 'i', 'g', 'n',
-+ 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l',
-+ 'a', 'l', 'i', 'g', 'n', 'b', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'l', 'a', 'l', 'i', 'g', 'n', 'b', 'i', '_', '1', '2', '8', 'B', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 'l', 's', 'r', 'h', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'l', 's', 'r', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 'l', 's', 'r', 'h', 'v', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'l', 's', 'r', 'h', 'v', '_', '1', '2', '8', 'B', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 'l', 's', 'r', 'w', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'l', 's', 'r', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 'l', 's', 'r', 'w', 'v', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'l', 's', 'r', 'w', 'v', '_', '1', '2', '8', 'B', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 'l', 'u', 't', 'b', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'l', 'u', 't', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 'l', 'u', 't', 'b', '_', 'a', 'c', 'c', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 'l', 'u', 't', 'b', '_', 'a', 'c', 'c', '_',
-+ '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l', 'u', 't',
-+ 'b', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l', 'u', 't',
-+ 'b', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+ '_', 'v', 'l', 'u', 't', 'b', '_', 'd', 'v', '_', 'a', 'c', 'c', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 'l', 'u', 't', 'b', '_', 'd', 'v', '_', 'a',
-+ 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'l', 'u', 't', 'v', 'v', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l',
-+ 'u', 't', 'v', 'v', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'l', 'u', 't', 'v', 'v', 'b', '_', 'o', 'r', 'a', 'c', 'c',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l', 'u', 't', 'v', 'v', 'b', '_',
-+ 'o', 'r', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'l', 'u', 't', 'v', 'w', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+ '_', 'v', 'l', 'u', 't', 'v', 'w', 'h', '_', '1', '2', '8', 'B', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 'l', 'u', 't', 'v', 'w', 'h', '_', 'o', 'r',
-+ 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l', 'u', 't', 'v',
-+ 'w', 'h', '_', 'o', 'r', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 'm', 'a', 'x', 'h', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'm', 'a', 'x', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 'm', 'a', 'x', 'u', 'b', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'm', 'a', 'x', 'u', 'b', '_', '1', '2', '8', 'B', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 'm', 'a', 'x', 'u', 'h', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'v', 'm', 'a', 'x', 'u', 'h', '_', '1', '2', '8', 'B', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'a', 'x', 'w', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'v', 'm', 'a', 'x', 'w', '_', '1', '2', '8', 'B', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 'm', 'i', 'n', 'h', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'm', 'i', 'n', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 'm', 'i', 'n', 'u', 'b', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'm', 'i', 'n', 'u', 'b', '_', '1', '2', '8', 'B', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 'm', 'i', 'n', 'u', 'h', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'v', 'm', 'i', 'n', 'u', 'h', '_', '1', '2', '8', 'B', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'i', 'n', 'w', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'v', 'm', 'i', 'n', 'w', '_', '1', '2', '8', 'B', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'b', 'u', 's', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'b', 'u', 's', '_', '1', '2', '8',
-+ 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'b', 'u', 's',
-+ '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'a',
-+ 'b', 'u', 's', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'b', 'u', 's', 'v', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'b', 'u', 's', 'v', '_', '1', '2',
-+ '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'b', 'u',
-+ 'u', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'b', 'u',
-+ 'u', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'm', 'p', 'a', 'h', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p',
-+ 'a', 'h', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 'm', 'p', 'a', 'h', 'b', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'm', 'p', 'a', 'h', 'b', '_', 'a', 'c', 'c', '_', '1', '2',
-+ '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'b', 'u',
-+ 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'b', 'u', 's',
-+ '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p',
-+ 'y', 'b', 'u', 's', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 'm', 'p', 'y', 'b', 'u', 's', '_', 'a', 'c', 'c', '_', '1', '2', '8',
-+ 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'b', 'u', 's',
-+ 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'b', 'u', 's',
-+ 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm',
-+ 'p', 'y', 'b', 'u', 's', 'v', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'm', 'p', 'y', 'b', 'u', 's', 'v', '_', 'a', 'c', 'c', '_',
-+ '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y',
-+ 'b', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'b', 'v',
-+ '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p',
-+ 'y', 'b', 'v', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'm', 'p', 'y', 'b', 'v', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'e', 'w', 'u', 'h', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'e', 'w', 'u', 'h', '_',
-+ '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y',
-+ 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'h', '_', '1',
-+ '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'h',
-+ 's', 'a', 't', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'm', 'p', 'y', 'h', 's', 'a', 't', '_', 'a', 'c', 'c', '_', '1', '2', '8',
-+ 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'h', 's', 'r',
-+ 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'h', 's', 'r',
-+ 's', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm',
-+ 'p', 'y', 'h', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p',
-+ 'y', 'h', 's', 's', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+ '_', 'v', 'm', 'p', 'y', 'h', 'u', 's', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 'm', 'p', 'y', 'h', 'u', 's', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'h', 'u', 's', '_', 'a', 'c', 'c',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'h', 'u', 's', '_',
-+ 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 'm', 'p', 'y', 'h', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm',
-+ 'p', 'y', 'h', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+ '_', 'v', 'm', 'p', 'y', 'h', 'v', '_', 'a', 'c', 'c', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'v', 'm', 'p', 'y', 'h', 'v', '_', 'a', 'c', 'c', '_', '1',
-+ '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'h',
-+ 'v', 's', 'r', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y',
-+ 'h', 'v', 's', 'r', 's', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'm', 'p', 'y', 'i', 'e', 'o', 'h', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'm', 'p', 'y', 'i', 'e', 'o', 'h', '_', '1', '2', '8', 'B',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'e', 'w', 'h',
-+ '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y',
-+ 'i', 'e', 'w', 'h', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'e', 'w', 'u', 'h', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'e', 'w', 'u', 'h',
-+ '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p',
-+ 'y', 'i', 'e', 'w', 'u', 'h', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'm', 'p', 'y', 'i', 'e', 'w', 'u', 'h', '_', 'a', 'c', 'c',
-+ '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p',
-+ 'y', 'i', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i',
-+ 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm',
-+ 'p', 'y', 'i', 'h', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 'm', 'p', 'y', 'i', 'h', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'h', 'b', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'h', 'b', '_', '1',
-+ '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i',
-+ 'h', 'b', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm',
-+ 'p', 'y', 'i', 'h', 'b', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'o', 'w', 'h', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'o', 'w', 'h', '_',
-+ '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y',
-+ 'i', 'w', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i',
-+ 'w', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'm', 'p', 'y', 'i', 'w', 'b', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'm', 'p', 'y', 'i', 'w', 'b', '_', 'a', 'c', 'c', '_', '1',
-+ '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i',
-+ 'w', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'w',
-+ 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm',
-+ 'p', 'y', 'i', 'w', 'h', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+ '_', 'v', 'm', 'p', 'y', 'i', 'w', 'h', '_', 'a', 'c', 'c', '_', '1', '2',
-+ '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'o', 'w',
-+ 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'o', 'w', 'h',
-+ '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p',
-+ 'y', 'o', 'w', 'h', '_', 'r', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 'm', 'p', 'y', 'o', 'w', 'h', '_', 'r', 'n', 'd', '_', '1', '2', '8',
-+ 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'o', 'w', 'h',
-+ '_', 'r', 'n', 'd', '_', 's', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+ '_', 'v', 'm', 'p', 'y', 'o', 'w', 'h', '_', 'r', 'n', 'd', '_', 's', 'a',
-+ 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'm', 'p', 'y', 'o', 'w', 'h', '_', 's', 'a', 'c', 'c', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'v', 'm', 'p', 'y', 'o', 'w', 'h', '_', 's', 'a', 'c', 'c',
-+ '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p',
-+ 'y', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u',
-+ 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm',
-+ 'p', 'y', 'u', 'b', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 'm', 'p', 'y', 'u', 'b', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u', 'b', 'v', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u', 'b', 'v', '_', '1',
-+ '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u',
-+ 'b', 'v', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm',
-+ 'p', 'y', 'u', 'b', 'v', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u', 'h', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u', 'h', '_', '1', '2', '8', 'B',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u', 'h', '_', 'a',
-+ 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u', 'h',
-+ '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+ '_', 'v', 'm', 'p', 'y', 'u', 'h', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 'm', 'p', 'y', 'u', 'h', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u', 'h', 'v', '_', 'a', 'c', 'c',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u', 'h', 'v', '_',
-+ 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 'm', 'u', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'u', 'x',
-+ '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'n', 'a',
-+ 'v', 'g', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'n', 'a', 'v', 'g',
-+ 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'n',
-+ 'a', 'v', 'g', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'n', 'a',
-+ 'v', 'g', 'u', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+ '_', 'v', 'n', 'a', 'v', 'g', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'n', 'a', 'v', 'g', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'n', 'o', 'r', 'm', 'a', 'm', 't', 'h', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'v', 'n', 'o', 'r', 'm', 'a', 'm', 't', 'h', '_', '1', '2',
-+ '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'n', 'o', 'r', 'm', 'a',
-+ 'm', 't', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'n', 'o', 'r', 'm',
-+ 'a', 'm', 't', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+ '_', 'v', 'n', 'o', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'n', 'o',
-+ 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'o',
-+ 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'o', 'r', '_', '1', '2', '8',
-+ 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'a', 'c', 'k', 'e', 'b',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'a', 'c', 'k', 'e', 'b', '_',
-+ '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'a', 'c',
-+ 'k', 'e', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'a', 'c', 'k',
-+ 'e', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'p', 'a', 'c', 'k', 'h', 'b', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'p', 'a', 'c', 'k', 'h', 'b', '_', 's', 'a', 't', '_', '1',
-+ '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'a', 'c', 'k',
-+ 'h', 'u', 'b', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'p', 'a', 'c', 'k', 'h', 'u', 'b', '_', 's', 'a', 't', '_', '1', '2', '8',
-+ 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'a', 'c', 'k', 'o', 'b',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'a', 'c', 'k', 'o', 'b', '_',
-+ '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'a', 'c',
-+ 'k', 'o', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'a', 'c', 'k',
-+ 'o', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'p', 'a', 'c', 'k', 'w', 'h', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'p', 'a', 'c', 'k', 'w', 'h', '_', 's', 'a', 't', '_', '1',
-+ '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'a', 'c', 'k',
-+ 'w', 'u', 'h', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'p', 'a', 'c', 'k', 'w', 'u', 'h', '_', 's', 'a', 't', '_', '1', '2', '8',
-+ 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'o', 'p', 'c', 'o', 'u',
-+ 'n', 't', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'o', 'p', 'c',
-+ 'o', 'u', 'n', 't', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'r', 'd', 'e', 'l', 't', 'a', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+ '_', 'v', 'r', 'd', 'e', 'l', 't', 'a', '_', '1', '2', '8', 'B', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'u', 's', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'u', 's', '_', '1',
-+ '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y',
-+ 'b', 'u', 's', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'r', 'm', 'p', 'y', 'b', 'u', 's', '_', 'a', 'c', 'c', '_', '1', '2', '8',
-+ 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'u',
-+ 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b',
-+ 'u', 's', 'i', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 'r', 'm', 'p', 'y', 'b', 'u', 's', 'i', '_', 'a', 'c', 'c', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'u', 's', 'i', '_',
-+ 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 'r', 'm', 'p', 'y', 'b', 'u', 's', 'v', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+ '_', 'v', 'r', 'm', 'p', 'y', 'b', 'u', 's', 'v', '_', '1', '2', '8', 'B',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'u', 's',
-+ 'v', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm',
-+ 'p', 'y', 'b', 'u', 's', 'v', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'v', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'v', '_', '1',
-+ '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y',
-+ 'b', 'v', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r',
-+ 'm', 'p', 'y', 'b', 'v', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b', '_', '1', '2',
-+ '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u',
-+ 'b', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm',
-+ 'p', 'y', 'u', 'b', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b', 'i', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b', 'i', '_', '1',
-+ '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y',
-+ 'u', 'b', 'i', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'r', 'm', 'p', 'y', 'u', 'b', 'i', '_', 'a', 'c', 'c', '_', '1', '2', '8',
-+ 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b',
-+ 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b',
-+ 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r',
-+ 'm', 'p', 'y', 'u', 'b', 'v', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b', 'v', '_', 'a', 'c', 'c', '_',
-+ '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'o', 'r',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'o', 'r', '_', '1', '2', '8',
-+ 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'o', 'u', 'n', 'd', 'h',
-+ 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'o', 'u', 'n', 'd', 'h',
-+ 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r',
-+ 'o', 'u', 'n', 'd', 'h', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 'r', 'o', 'u', 'n', 'd', 'h', 'u', 'b', '_', '1', '2', '8', 'B', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 'r', 'o', 'u', 'n', 'd', 'w', 'h', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 'r', 'o', 'u', 'n', 'd', 'w', 'h', '_', '1',
-+ '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'o', 'u', 'n',
-+ 'd', 'w', 'u', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'o', 'u',
-+ 'n', 'd', 'w', 'u', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'r', 's', 'a', 'd', 'u', 'b', 'i', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'r', 's', 'a', 'd', 'u', 'b', 'i', '_', '1', '2', '8', 'B',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 's', 'a', 'd', 'u', 'b', 'i',
-+ '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 's', 'a',
-+ 'd', 'u', 'b', 'i', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 's', 'a', 't', 'h', 'u', 'b', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 's', 'a', 't', 'h', 'u', 'b', '_', '1', '2', '8',
-+ 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'a', 't', 'w', 'h', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'a', 't', 'w', 'h', '_', '1', '2',
-+ '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'b', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 's', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 's', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 's', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 's', 'h', 'u', 'f', 'e', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's',
-+ 'h', 'u', 'f', 'e', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 's', 'h', 'u', 'f', 'f', 'b', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+ '_', 'v', 's', 'h', 'u', 'f', 'f', 'b', '_', '1', '2', '8', 'B', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'f', 'e', 'b', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'f', 'e', 'b', '_', '1',
-+ '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f',
-+ 'f', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'f',
-+ 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's',
-+ 'h', 'u', 'f', 'f', 'o', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's',
-+ 'h', 'u', 'f', 'f', 'o', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'f', 'v', 'd', 'd', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'f', 'v', 'd', 'd', '_', '1',
-+ '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f',
-+ 'o', 'e', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f',
-+ 'o', 'e', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 's', 'h', 'u', 'f', 'o', 'e', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 's', 'h', 'u', 'f', 'o', 'e', 'h', '_', '1', '2', '8', 'B', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'o', 'h', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'o', 'h', '_', '1', '2', '8',
-+ 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'b', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'b', '_', '1', '2', '8', 'B',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'b', '_', 'd', 'v',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'b', '_', 'd', 'v',
-+ '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u',
-+ 'b', 'b', 'n', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b',
-+ 'b', 'n', 'q', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 's', 'u', 'b', 'b', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's',
-+ 'u', 'b', 'b', 'q', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+ '_', 'v', 's', 'u', 'b', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's',
-+ 'u', 'b', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 's', 'u', 'b', 'h', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 's', 'u', 'b', 'h', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'h', 'n', 'q', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'h', 'n', 'q', '_', '1', '2', '8',
-+ 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'h', 'q', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'h', 'q', '_', '1', '2',
-+ '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'h', 's',
-+ 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'h', 's',
-+ 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 's', 'u', 'b', 'h', 's', 'a', 't', '_', 'd', 'v', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 's', 'u', 'b', 'h', 's', 'a', 't', '_', 'd', 'v', '_', '1',
-+ '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'h',
-+ 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'h', 'w', '_',
-+ '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b',
-+ 'u', 'b', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u',
-+ 'b', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+ 's', 'u', 'b', 'u', 'b', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 's', 'u', 'b', 'u', 'b', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u', 'b', 's', 'a', 't',
-+ '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u',
-+ 'b', 's', 'a', 't', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u', 'h', 's', 'a', 't', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u', 'h', 's', 'a', 't', '_',
-+ '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b',
-+ 'u', 'h', 's', 'a', 't', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 's', 'u', 'b', 'u', 'h', 's', 'a', 't', '_', 'd', 'v', '_', '1', '2',
-+ '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u', 'h',
-+ 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u', 'h', 'w',
-+ '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u',
-+ 'b', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'w', '_',
-+ '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b',
-+ 'w', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b',
-+ 'w', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+ '_', 'v', 's', 'u', 'b', 'w', 'n', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 's', 'u', 'b', 'w', 'n', 'q', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'w', 'q', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 's', 'u', 'b', 'w', 'q', '_', '1', '2', '8', 'B', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'w', 's', 'a', 't', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'w', 's', 'a', 't', '_', '1',
-+ '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'w',
-+ 's', 'a', 't', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's',
-+ 'u', 'b', 'w', 's', 'a', 't', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'w', 'a', 'p', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'v', 's', 'w', 'a', 'p', '_', '1', '2', '8', 'B', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 't', 'm', 'p', 'y', 'b', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'v', 't', 'm', 'p', 'y', 'b', '_', '1', '2', '8', 'B', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'v', 't', 'm', 'p', 'y', 'b', '_', 'a', 'c',
-+ 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+ 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 't', 'm', 'p', 'y', 'b', '_',
-+ 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 't', 'm', 'p', 'y', 'b', 'u', 's', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+ 'v', 't', 'm', 'p', 'y', 'b', 'u', 's', '_', '1', '2', '8', 'B', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 't', 'm', 'p', 'y', 'b', 'u', 's', '_', 'a',
-+ 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 't', 'm', 'p', 'y', 'b',
-+ 'u', 's', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'v', 't', 'm', 'p', 'y', 'h', 'b', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 't', 'm', 'p', 'y', 'h', 'b', '_', '1', '2', '8', 'B', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'v', 't', 'm', 'p', 'y', 'h', 'b', '_', 'a',
-+ 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+ 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 't', 'm', 'p', 'y', 'h',
-+ 'b', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'u', 'n', 'p', 'a', 'c', 'k', 'b', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'u', 'n', 'p', 'a', 'c', 'k', 'b', '_', '1', '2', '8', 'B',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'u', 'n', 'p', 'a', 'c', 'k', 'h',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'u', 'n', 'p', 'a', 'c', 'k', 'h',
-+ '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'u', 'n',
-+ 'p', 'a', 'c', 'k', 'o', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'u',
-+ 'n', 'p', 'a', 'c', 'k', 'o', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 'u', 'n', 'p', 'a', 'c', 'k', 'o', 'h', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+ 'N', '_', 'V', '6', '_', 'v', 'u', 'n', 'p', 'a', 'c', 'k', 'o', 'h', '_',
-+ '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'u', 'n', 'p',
-+ 'a', 'c', 'k', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'u', 'n',
-+ 'p', 'a', 'c', 'k', 'u', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+ 'V', '6', '_', 'v', 'u', 'n', 'p', 'a', 'c', 'k', 'u', 'h', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+ '_', 'V', '6', '_', 'v', 'u', 'n', 'p', 'a', 'c', 'k', 'u', 'h', '_', '1',
-+ '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+ 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'x', 'o', 'r', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+ 'O', 'N', '_', 'V', '6', '_', 'v', 'x', 'o', 'r', '_', '1', '2', '8', 'B',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+ 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'z', 'b', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'z', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+ '6', '_', 'v', 'z', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'z', 'h',
-+ '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'b', 'r', 'e', 'v', '_', 'l', 'd', 'b', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'b', 'r', 'e', 'v', '_', 'l', 'd', 'd', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'b', 'r', 'e', 'v', '_', 'l',
-+ 'd', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'b', 'r',
-+ 'e', 'v', '_', 'l', 'd', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'b', 'r', 'e', 'v', '_', 'l', 'd', 'u', 'h', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'b', 'r', 'e', 'v', '_', 'l', 'd',
-+ 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'b', 'r', 'e',
-+ 'v', '_', 's', 't', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'b', 'r', 'e', 'v', '_', 's', 't', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'b', 'r', 'e', 'v', '_', 's', 't', 'h', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'b', 'r', 'e', 'v', '_', 's',
-+ 't', 'h', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'b', 'r', 'e', 'v', '_', 's', 't', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'c', 'i', 'r', 'c', '_', 'l', 'd', 'b', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'c', 'i', 'r', 'c', '_', 'l', 'd',
-+ 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'c', 'i', 'r',
-+ 'c', '_', 'l', 'd', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'c', 'i', 'r', 'c', '_', 'l', 'd', 'u', 'b', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'c', 'i', 'r', 'c', '_', 'l', 'd', 'u', 'h',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'c', 'i', 'r', 'c',
-+ '_', 'l', 'd', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'c', 'i', 'r', 'c', '_', 's', 't', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'c', 'i', 'r', 'c', '_', 's', 't', 'd', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'c', 'i', 'r', 'c', '_', 's', 't',
-+ 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'c', 'i', 'r',
-+ 'c', '_', 's', 't', 'h', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'c', 'i', 'r', 'c', '_', 's', 't', 'w', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', '_', 'm', 'm', '2', '5', '6', 'i', '_',
-+ 'v', 'a', 'd', 'd', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'p', 'r', 'e', 'f', 'e', 't',
-+ 'c', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-+ 'p', 's', '_', 'a', 'b', 's', 'q', '_', 's', '_', 'p', 'h', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'b',
-+ 's', 'q', '_', 's', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'b', 's', 'q', '_', 's', '_',
-+ 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+ '_', 'a', 'd', 'd', '_', 'a', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd', '_', 'a', '_', 'd',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'a', 'd', 'd', '_', 'a', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd', '_', 'a', '_', 'w', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
-+ 'a', 'd', 'd', 'q', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'd', 'd', 'q', '_', 's', '_',
-+ 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-+ 'p', 's', '_', 'a', 'd', 'd', 'q', '_', 's', '_', 'w', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'd', 'd',
-+ 'q', 'h', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 'i', 'p', 's', '_', 'a', 'd', 'd', 'q', 'h', '_', 'r', '_', 'p',
-+ 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
-+ 's', '_', 'a', 'd', 'd', 'q', 'h', '_', 'r', '_', 'w', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'd', 'd',
-+ 'q', 'h', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 'a', 'd', 'd', 's', '_', 'a', '_', 'b', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd',
-+ 's', '_', 'a', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 's', '_', 'a', '_', 'h', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd',
-+ 'd', 's', '_', 'a', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 's', '_', 's', '_', 'b', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a',
-+ 'd', 'd', 's', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 's', '_', 's', '_', 'h',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'a', 'd', 'd', 's', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 's', '_', 'u', '_',
-+ 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+ '_', 'a', 'd', 'd', 's', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 's', '_', 'u',
-+ '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+ 'a', '_', 'a', 'd', 'd', 's', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'd', 'd', 's',
-+ 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
-+ 's', '_', 'a', 'd', 'd', 'u', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'd', 'd', 'u', '_',
-+ 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-+ 'p', 's', '_', 'a', 'd', 'd', 'u', '_', 's', '_', 'p', 'h', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'd',
-+ 'd', 'u', '_', 's', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'd', 'd', 'u', 'h', '_', 'q',
-+ 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
-+ 's', '_', 'a', 'd', 'd', 'u', 'h', '_', 'r', '_', 'q', 'b', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd',
-+ 'v', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'a', 'd', 'd', 'v', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 'v', '_', 'h',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'a', 'd', 'd', 'v', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 'v', 'i', '_', 'b', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd',
-+ 'd', 'v', 'i', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 'v', 'i', '_', 'h', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd',
-+ 'v', 'i', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 'i', 'p', 's', '_', 'a', 'd', 'd', 'w', 'c', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'n', 'd', '_', 'v',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'a', 'n', 'd', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'p', 'p', 'e', 'n', 'd', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 's',
-+ 'u', 'b', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 'a', 's', 'u', 'b', '_', 's', '_', 'd', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a',
-+ 's', 'u', 'b', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 's', 'u', 'b', '_', 's', '_', 'w',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'a', 's', 'u', 'b', '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 's', 'u', 'b', '_', 'u', '_',
-+ 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+ '_', 'a', 's', 'u', 'b', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 's', 'u', 'b', '_', 'u',
-+ '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+ 'a', '_', 'a', 'v', 'e', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'v', 'e', '_', 's', '_',
-+ 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+ '_', 'a', 'v', 'e', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'v', 'e', '_', 's', '_', 'w',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'a', 'v', 'e', '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'v', 'e', '_', 'u', '_', 'd', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a',
-+ 'v', 'e', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 'a', 'v', 'e', '_', 'u', '_', 'w', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'v',
-+ 'e', 'r', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 'a', 'v', 'e', 'r', '_', 's', '_', 'd', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a',
-+ 'v', 'e', 'r', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'v', 'e', 'r', '_', 's', '_', 'w',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'a', 'v', 'e', 'r', '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'v', 'e', 'r', '_', 'u', '_',
-+ 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+ '_', 'a', 'v', 'e', 'r', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'v', 'e', 'r', '_', 'u',
-+ '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-+ 'p', 's', '_', 'b', 'a', 'l', 'i', 'g', 'n', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'c', 'l', 'r', '_', 'b',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'b', 'c', 'l', 'r', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 'b', 'c', 'l', 'r', '_', 'h', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'c', 'l',
-+ 'r', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'b', 'c', 'l', 'r', 'i', '_', 'b', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'c', 'l', 'r', 'i',
-+ '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+ 'a', '_', 'b', 'c', 'l', 'r', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'c', 'l', 'r', 'i', '_',
-+ 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+ '_', 'b', 'i', 'n', 's', 'l', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'i', 'n', 's', 'l', '_', 'd',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'b', 'i', 'n', 's', 'l', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'i', 'n', 's', 'l', '_', 'w', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b',
-+ 'i', 'n', 's', 'l', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'i', 'n', 's', 'l', 'i', '_', 'd',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'b', 'i', 'n', 's', 'l', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'i', 'n', 's', 'l', 'i', '_',
-+ 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+ '_', 'b', 'i', 'n', 's', 'r', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'i', 'n', 's', 'r', '_', 'd',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'b', 'i', 'n', 's', 'r', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'i', 'n', 's', 'r', '_', 'w', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b',
-+ 'i', 'n', 's', 'r', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'i', 'n', 's', 'r', 'i', '_', 'd',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'b', 'i', 'n', 's', 'r', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'i', 'n', 's', 'r', 'i', '_',
-+ 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
-+ 's', '_', 'b', 'i', 't', 'r', 'e', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'm', 'n', 'z', '_', 'v', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b',
-+ 'm', 'n', 'z', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 'b', 'm', 'z', '_', 'v', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'm', 'z', 'i',
-+ '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+ 'a', '_', 'b', 'n', 'e', 'g', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'n', 'e', 'g', '_', 'd', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b',
-+ 'n', 'e', 'g', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 'b', 'n', 'e', 'g', '_', 'w', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'n', 'e', 'g',
-+ 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'b', 'n', 'e', 'g', 'i', '_', 'd', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'n', 'e', 'g', 'i',
-+ '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+ 'a', '_', 'b', 'n', 'e', 'g', 'i', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'n', 'z', '_', 'b', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b',
-+ 'n', 'z', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 'b', 'n', 'z', '_', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'n', 'z', '_', 'v', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b',
-+ 'n', 'z', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 'i', 'p', 's', '_', 'b', 'p', 'o', 's', 'g', 'e', '3', '2', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 's',
-+ 'e', 'l', '_', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 'b', 's', 'e', 'l', 'i', '_', 'b', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 's', 'e', 't',
-+ '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+ 'a', '_', 'b', 's', 'e', 't', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 's', 'e', 't', '_', 'h', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b',
-+ 's', 'e', 't', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 'b', 's', 'e', 't', 'i', '_', 'b', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 's', 'e',
-+ 't', 'i', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 'b', 's', 'e', 't', 'i', '_', 'h', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 's', 'e', 't',
-+ 'i', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'b', 'z', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'z', '_', 'd', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'z', '_', 'h',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'b', 'z', '_', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 'b', 'z', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'e', 'q', '_', 'b', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'e',
-+ 'q', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'c', 'e', 'q', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'e', 'q', '_', 'w', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'e',
-+ 'q', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 'c', 'e', 'q', 'i', '_', 'd', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'e', 'q', 'i', '_',
-+ 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+ '_', 'c', 'e', 'q', 'i', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'f', 'c', 'm', 's', 'a', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l',
-+ 'e', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 'c', 'l', 'e', '_', 's', '_', 'd', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 'e',
-+ '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 'c', 'l', 'e', '_', 's', '_', 'w', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 'e', '_',
-+ 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'c', 'l', 'e', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 'e', '_', 'u',
-+ '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+ 'a', '_', 'c', 'l', 'e', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 'e', 'i', '_', 's',
-+ '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+ 'a', '_', 'c', 'l', 'e', 'i', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 'e', 'i', '_',
-+ 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'c', 'l', 'e', 'i', '_', 's', '_', 'w', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 'e', 'i',
-+ '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 'c', 'l', 'e', 'i', '_', 'u', '_', 'd', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 'e',
-+ 'i', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 'c', 'l', 'e', 'i', '_', 'u', '_', 'w', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l',
-+ 't', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 'c', 'l', 't', '_', 's', '_', 'd', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 't',
-+ '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 'c', 'l', 't', '_', 's', '_', 'w', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 't', '_',
-+ 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'c', 'l', 't', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 't', '_', 'u',
-+ '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+ 'a', '_', 'c', 'l', 't', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 't', 'i', '_', 's',
-+ '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+ 'a', '_', 'c', 'l', 't', 'i', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 't', 'i', '_',
-+ 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'c', 'l', 't', 'i', '_', 's', '_', 'w', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 't', 'i',
-+ '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 'c', 'l', 't', 'i', '_', 'u', '_', 'd', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 't',
-+ 'i', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 'c', 'l', 't', 'i', '_', 'u', '_', 'w', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'c',
-+ 'm', 'p', '_', 'e', 'q', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'c', 'm', 'p', '_', 'l', 'e',
-+ '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 'i', 'p', 's', '_', 'c', 'm', 'p', '_', 'l', 't', '_', 'p', 'h', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'c',
-+ 'm', 'p', 'g', 'd', 'u', '_', 'e', 'q', '_', 'q', 'b', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'c', 'm', 'p',
-+ 'g', 'd', 'u', '_', 'l', 'e', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'c', 'm', 'p', 'g', 'd',
-+ 'u', '_', 'l', 't', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'c', 'm', 'p', 'g', 'u', '_', 'e',
-+ 'q', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 'i', 'p', 's', '_', 'c', 'm', 'p', 'g', 'u', '_', 'l', 'e', '_', 'q',
-+ 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
-+ 's', '_', 'c', 'm', 'p', 'g', 'u', '_', 'l', 't', '_', 'q', 'b', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'c',
-+ 'm', 'p', 'u', '_', 'e', 'q', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'c', 'm', 'p', 'u', '_',
-+ 'l', 'e', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 'i', 'p', 's', '_', 'c', 'm', 'p', 'u', '_', 'l', 't', '_', 'q',
-+ 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+ '_', 'c', 'o', 'p', 'y', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'o', 'p', 'y', '_', 's',
-+ '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+ 'a', '_', 'c', 'o', 'p', 'y', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'o', 'p', 'y', '_',
-+ 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'c', 'o', 'p', 'y', '_', 'u', '_', 'b', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'o', 'p', 'y',
-+ '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 'c', 'o', 'p', 'y', '_', 'u', '_', 'h', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'o', 'p',
-+ 'y', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 'c', 't', 'c', 'm', 's', 'a', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'i', 'v', '_',
-+ 's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'd', 'i', 'v', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'i', 'v', '_', 's',
-+ '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+ 'a', '_', 'd', 'i', 'v', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'i', 'v', '_', 'u', '_',
-+ 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+ '_', 'd', 'i', 'v', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'i', 'v', '_', 'u', '_', 'h',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'd', 'i', 'v', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'l', 's', 'a', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'o', 't',
-+ 'p', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 'd', 'o', 't', 'p', '_', 's', '_', 'h', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'o',
-+ 't', 'p', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 'd', 'o', 't', 'p', '_', 'u', '_', 'd', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd',
-+ 'o', 't', 'p', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'o', 't', 'p', '_', 'u', '_', 'w',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
-+ '_', 'd', 'p', 'a', '_', 'w', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'p', 'a', 'd', 'd', '_',
-+ 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'd', 'p', 'a', 'd', 'd', '_', 's', '_', 'h', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'p', 'a',
-+ 'd', 'd', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 'd', 'p', 'a', 'd', 'd', '_', 'u', '_', 'd',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'd', 'p', 'a', 'd', 'd', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'p', 'a', 'd', 'd', '_',
-+ 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 'i', 'p', 's', '_', 'd', 'p', 'a', 'q', '_', 's', '_', 'w', '_', 'p', 'h',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
-+ '_', 'd', 'p', 'a', 'q', '_', 's', 'a', '_', 'l', '_', 'w', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p',
-+ 'a', 'q', 'x', '_', 's', '_', 'w', '_', 'p', 'h', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p', 'a', 'q',
-+ 'x', '_', 's', 'a', '_', 'w', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p', 'a', 'u', '_',
-+ 'h', '_', 'q', 'b', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 'i', 'p', 's', '_', 'd', 'p', 'a', 'u', '_', 'h', '_', 'q', 'b',
-+ 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
-+ 's', '_', 'd', 'p', 'a', 'x', '_', 'w', '_', 'p', 'h', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p', 's',
-+ '_', 'w', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 'i', 'p', 's', '_', 'd', 'p', 's', 'q', '_', 's', '_', 'w', '_',
-+ 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-+ 'p', 's', '_', 'd', 'p', 's', 'q', '_', 's', 'a', '_', 'l', '_', 'w', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
-+ 'd', 'p', 's', 'q', 'x', '_', 's', '_', 'w', '_', 'p', 'h', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p',
-+ 's', 'q', 'x', '_', 's', 'a', '_', 'w', '_', 'p', 'h', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p', 's',
-+ 'u', '_', 'h', '_', 'q', 'b', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p', 's', 'u', '_', 'h', '_',
-+ 'q', 'b', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'd', 'p', 's', 'u', 'b', '_', 's', '_', 'd', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'p', 's',
-+ 'u', 'b', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 'd', 'p', 's', 'u', 'b', '_', 's', '_', 'w',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'd', 'p', 's', 'u', 'b', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'p', 's', 'u', 'b', '_',
-+ 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'd', 'p', 's', 'u', 'b', '_', 'u', '_', 'w', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p',
-+ 's', 'x', '_', 'w', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'e', 'x', 't', 'p', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'e', 'x',
-+ 't', 'p', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 'i', 'p', 's', '_', 'e', 'x', 't', 'r', '_', 'r', '_', 'w', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'e',
-+ 'x', 't', 'r', '_', 'r', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'e', 'x', 't', 'r', '_', 's',
-+ '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-+ 'p', 's', '_', 'e', 'x', 't', 'r', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'a', 'd', 'd', '_', 'd',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'f', 'a', 'd', 'd', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'a', 'f', '_', 'd', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'a',
-+ 'f', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'f', 'c', 'e', 'q', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'e', 'q', '_', 'w',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'f', 'c', 'l', 'a', 's', 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'l', 'a', 's', 's', '_',
-+ 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+ '_', 'f', 'c', 'l', 'e', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'l', 'e', '_', 'w', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c',
-+ 'l', 't', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 'f', 'c', 'l', 't', '_', 'w', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'n', 'e', '_',
-+ 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+ '_', 'f', 'c', 'n', 'e', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'o', 'r', '_', 'd', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c',
-+ 'o', 'r', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 'f', 'c', 'u', 'e', 'q', '_', 'd', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'u', 'e',
-+ 'q', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'f', 'c', 'u', 'l', 'e', '_', 'd', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'u', 'l', 'e',
-+ '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+ 'a', '_', 'f', 'c', 'u', 'l', 't', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'u', 'l', 't', '_',
-+ 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+ '_', 'f', 'c', 'u', 'n', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'u', 'n', '_', 'w', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c',
-+ 'u', 'n', 'e', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 'f', 'c', 'u', 'n', 'e', '_', 'w', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'd', 'i',
-+ 'v', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'f', 'd', 'i', 'v', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'e', 'x', 'd', 'o', '_',
-+ 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+ '_', 'f', 'e', 'x', 'd', 'o', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'e', 'x', 'p', '2', '_', 'd',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'f', 'e', 'x', 'p', '2', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'e', 'x', 'u', 'p', 'l', '_', 'd',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'f', 'e', 'x', 'u', 'p', 'l', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'e', 'x', 'u', 'p', 'r', '_',
-+ 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+ '_', 'f', 'e', 'x', 'u', 'p', 'r', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'f', 'i', 'n', 't', '_',
-+ 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'f', 'f', 'i', 'n', 't', '_', 's', '_', 'w', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'f', 'i',
-+ 'n', 't', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 'f', 'f', 'i', 'n', 't', '_', 'u', '_', 'w',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'f', 'f', 'q', 'l', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 'f', 'f', 'q', 'l', '_', 'w', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'f', 'q',
-+ 'r', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'f', 'f', 'q', 'r', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'i', 'l', 'l', '_', 'b',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'f', 'i', 'l', 'l', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 'f', 'i', 'l', 'l', '_', 'h', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'i', 'l',
-+ 'l', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'f', 'l', 'o', 'g', '2', '_', 'd', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'l', 'o', 'g', '2',
-+ '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+ 'a', '_', 'f', 'm', 'a', 'd', 'd', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'm', 'a', 'd', 'd', '_',
-+ 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+ '_', 'f', 'm', 'a', 'x', '_', 'a', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'm', 'a', 'x', '_', 'a',
-+ '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+ 'a', '_', 'f', 'm', 'a', 'x', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'm', 'a', 'x', '_', 'w', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f',
-+ 'm', 'i', 'n', '_', 'a', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'm', 'i', 'n', '_', 'a', '_', 'w',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'f', 'm', 'i', 'n', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 'f', 'm', 'i', 'n', '_', 'w', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'm', 's',
-+ 'u', 'b', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 'f', 'm', 's', 'u', 'b', '_', 'w', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'm', 'u', 'l',
-+ '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+ 'a', '_', 'f', 'm', 'u', 'l', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'r', 'c', 'p', '_', 'd', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f',
-+ 'r', 'c', 'p', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 'f', 'r', 'i', 'n', 't', '_', 'd', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'r', 'i',
-+ 'n', 't', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 'f', 'r', 's', 'q', 'r', 't', '_', 'd', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'r', 's',
-+ 'q', 'r', 't', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 'f', 's', 'a', 'f', '_', 'd', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'a', 'f',
-+ '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+ 'a', '_', 'f', 's', 'e', 'q', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'e', 'q', '_', 'w', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f',
-+ 's', 'l', 'e', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 'f', 's', 'l', 'e', '_', 'w', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'l', 't',
-+ '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+ 'a', '_', 'f', 's', 'l', 't', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'n', 'e', '_', 'd', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f',
-+ 's', 'n', 'e', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 'f', 's', 'o', 'r', '_', 'd', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'o', 'r',
-+ '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+ 'a', '_', 'f', 's', 'q', 'r', 't', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'q', 'r', 't', '_',
-+ 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+ '_', 'f', 's', 'u', 'b', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'u', 'b', '_', 'w', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's',
-+ 'u', 'e', 'q', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 'f', 's', 'u', 'e', 'q', '_', 'w', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'u',
-+ 'l', 'e', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 'f', 's', 'u', 'l', 'e', '_', 'w', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'u', 'l',
-+ 't', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'f', 's', 'u', 'l', 't', '_', 'w', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'u', 'n', '_',
-+ 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+ '_', 'f', 's', 'u', 'n', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'u', 'n', 'e', '_', 'd', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f',
-+ 's', 'u', 'n', 'e', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 'f', 't', 'i', 'n', 't', '_', 's', '_', 'd',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'f', 't', 'i', 'n', 't', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 't', 'i', 'n', 't', '_',
-+ 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'f', 't', 'i', 'n', 't', '_', 'u', '_', 'w', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 't', 'q',
-+ '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+ 'a', '_', 'f', 't', 'q', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 't', 'r', 'u', 'n', 'c', '_', 's',
-+ '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+ 'a', '_', 'f', 't', 'r', 'u', 'n', 'c', '_', 's', '_', 'w', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 't', 'r',
-+ 'u', 'n', 'c', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 't', 'r', 'u', 'n', 'c', '_', 'u',
-+ '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+ 'a', '_', 'h', 'a', 'd', 'd', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'h', 'a', 'd', 'd', '_',
-+ 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'h', 'a', 'd', 'd', '_', 's', '_', 'w', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'h', 'a', 'd', 'd',
-+ '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 'h', 'a', 'd', 'd', '_', 'u', '_', 'h', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'h', 'a', 'd',
-+ 'd', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 'h', 's', 'u', 'b', '_', 's', '_', 'd', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'h', 's',
-+ 'u', 'b', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 'h', 's', 'u', 'b', '_', 's', '_', 'w', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'h',
-+ 's', 'u', 'b', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 'h', 's', 'u', 'b', '_', 'u', '_', 'h',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'h', 's', 'u', 'b', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'l', 'v', 'e', 'v', '_', 'b',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'i', 'l', 'v', 'e', 'v', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'l', 'v', 'e', 'v', '_', 'h', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i',
-+ 'l', 'v', 'e', 'v', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 'i', 'l', 'v', 'l', '_', 'b', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'l', 'v',
-+ 'l', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'i', 'l', 'v', 'l', '_', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'l', 'v', 'l', '_', 'w',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'i', 'l', 'v', 'o', 'd', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'l', 'v', 'o', 'd', '_', 'd', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i',
-+ 'l', 'v', 'o', 'd', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 'i', 'l', 'v', 'o', 'd', '_', 'w', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'l',
-+ 'v', 'r', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 'i', 'l', 'v', 'r', '_', 'd', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'l', 'v', 'r', '_',
-+ 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+ '_', 'i', 'l', 'v', 'r', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'n', 's', 'e', 'r', 't', '_', 'b',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'i', 'n', 's', 'e', 'r', 't', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'n', 's', 'e', 'r', 't', '_',
-+ 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+ '_', 'i', 'n', 's', 'e', 'r', 't', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'i', 'n', 's', 'v', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i',
-+ 'n', 's', 'v', 'e', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 'i', 'n', 's', 'v', 'e', '_', 'd', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'n',
-+ 's', 'v', 'e', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 'i', 'n', 's', 'v', 'e', '_', 'w', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'l', 'b',
-+ 'u', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+ 'a', '_', 'l', 'd', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 'l', 'd', '_', 'd', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'l', 'd', '_', 'h', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'l',
-+ 'd', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'l', 'd', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'l', 'd', 'i', '_', 'd', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'l', 'd',
-+ 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'l', 'd', 'i', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'l', 'h', 'x', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'l', 's',
-+ 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
-+ 's', '_', 'l', 'w', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 'i', 'p', 's', '_', 'm', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'd', 'd', '_',
-+ 'q', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'm', 'a', 'd', 'd', '_', 'q', '_', 'w', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'd', 'd',
-+ 'r', '_', 'q', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 'm', 'a', 'd', 'd', 'r', '_', 'q', '_', 'w', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
-+ 'm', 'a', 'd', 'd', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 'm', 'a', 'd', 'd', 'v', '_', 'b', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'd',
-+ 'd', 'v', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 'm', 'a', 'd', 'd', 'v', '_', 'h', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'd', 'd',
-+ 'v', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 'i', 'p', 's', '_', 'm', 'a', 'q', '_', 's', '_', 'w', '_', 'p', 'h', 'l',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
-+ '_', 'm', 'a', 'q', '_', 's', '_', 'w', '_', 'p', 'h', 'r', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'a',
-+ 'q', '_', 's', 'a', '_', 'w', '_', 'p', 'h', 'l', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'a', 'q', '_',
-+ 's', 'a', '_', 'w', '_', 'p', 'h', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x', '_', 'a', '_', 'b',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'm', 'a', 'x', '_', 'a', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x', '_', 'a', '_', 'h', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm',
-+ 'a', 'x', '_', 'a', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x', '_', 's', '_', 'b', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a',
-+ 'x', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 'm', 'a', 'x', '_', 's', '_', 'h', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x',
-+ '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 'm', 'a', 'x', '_', 'u', '_', 'b', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x', '_',
-+ 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'm', 'a', 'x', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x', '_', 'u',
-+ '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+ 'a', '_', 'm', 'a', 'x', 'i', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x', 'i', '_',
-+ 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'm', 'a', 'x', 'i', '_', 's', '_', 'h', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x', 'i',
-+ '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 'm', 'a', 'x', 'i', '_', 'u', '_', 'b', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x',
-+ 'i', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 'm', 'a', 'x', 'i', '_', 'u', '_', 'h', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a',
-+ 'x', 'i', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n', '_', 'a', '_', 'b', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i',
-+ 'n', '_', 'a', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 'm', 'i', 'n', '_', 'a', '_', 'h', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n',
-+ '_', 'a', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 'm', 'i', 'n', '_', 's', '_', 'b', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n', '_',
-+ 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'm', 'i', 'n', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n', '_', 's',
-+ '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+ 'a', '_', 'm', 'i', 'n', '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n', '_', 'u', '_',
-+ 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+ '_', 'm', 'i', 'n', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n', '_', 'u', '_', 'w',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'm', 'i', 'n', 'i', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n', 'i', '_', 's', '_',
-+ 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+ '_', 'm', 'i', 'n', 'i', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n', 'i', '_', 's',
-+ '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+ 'a', '_', 'm', 'i', 'n', 'i', '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n', 'i', '_',
-+ 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'm', 'i', 'n', 'i', '_', 'u', '_', 'h', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n', 'i',
-+ '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 'm', 'o', 'd', '_', 's', '_', 'b', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'o', 'd', '_',
-+ 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'm', 'o', 'd', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'o', 'd', '_', 's',
-+ '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+ 'a', '_', 'm', 'o', 'd', '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'o', 'd', '_', 'u', '_',
-+ 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+ '_', 'm', 'o', 'd', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'o', 'd', '_', 'u', '_', 'w',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
-+ '_', 'm', 'o', 'd', 's', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'o', 'v', 'e', '_', 'v', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm',
-+ 's', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'm', 's', 'u', 'b', '_', 'q', '_', 'h', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 's', 'u', 'b',
-+ '_', 'q', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 'm', 's', 'u', 'b', 'r', '_', 'q', '_', 'h', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 's',
-+ 'u', 'b', 'r', '_', 'q', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 's', 'u', 'b', 'u', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 's',
-+ 'u', 'b', 'v', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 'm', 's', 'u', 'b', 'v', '_', 'd', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 's', 'u',
-+ 'b', 'v', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 'm', 's', 'u', 'b', 'v', '_', 'w', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 't', 'h',
-+ 'l', 'i', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 'i', 'p', 's', '_', 'm', 'u', 'l', '_', 'p', 'h', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'u', 'l', '_', 'q',
-+ '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+ 'a', '_', 'm', 'u', 'l', '_', 'q', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'u', 'l', '_', 's',
-+ '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 'i', 'p', 's', '_', 'm', 'u', 'l', 'e', 'q', '_', 's', '_', 'w', '_', 'p',
-+ 'h', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-+ 'p', 's', '_', 'm', 'u', 'l', 'e', 'q', '_', 's', '_', 'w', '_', 'p', 'h',
-+ 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
-+ 's', '_', 'm', 'u', 'l', 'e', 'u', '_', 's', '_', 'p', 'h', '_', 'q', 'b',
-+ 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
-+ 's', '_', 'm', 'u', 'l', 'e', 'u', '_', 's', '_', 'p', 'h', '_', 'q', 'b',
-+ 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
-+ 's', '_', 'm', 'u', 'l', 'q', '_', 'r', 's', '_', 'p', 'h', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'u',
-+ 'l', 'q', '_', 'r', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'u', 'l', 'q', '_', 's', '_',
-+ 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-+ 'p', 's', '_', 'm', 'u', 'l', 'q', '_', 's', '_', 'w', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'u', 'l', 'r',
-+ '_', 'q', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 'm', 'u', 'l', 'r', '_', 'q', '_', 'w', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'u',
-+ 'l', 's', 'a', '_', 'w', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'u', 'l', 's', 'a', 'q',
-+ '_', 's', '_', 'w', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'u', 'l', 't', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'u',
-+ 'l', 't', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'm', 'u', 'l', 'v', '_', 'b', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'u', 'l', 'v', '_', 'd',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'm', 'u', 'l', 'v', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 'm', 'u', 'l', 'v', '_', 'w', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'n', 'l', 'o',
-+ 'c', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'n', 'l', 'o', 'c', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'n', 'l', 'o', 'c', '_', 'h',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'n', 'l', 'o', 'c', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 'n', 'l', 'z', 'c', '_', 'b', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'n', 'l', 'z',
-+ 'c', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 'n', 'l', 'z', 'c', '_', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'n', 'l', 'z', 'c', '_', 'w',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'n', 'o', 'r', '_', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 'n', 'o', 'r', 'i', '_', 'b', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'o', 'r', '_', 'v',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'o', 'r', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 'i', 'p', 's', '_', 'p', 'a', 'c', 'k', 'r', 'l', '_', 'p', 'h',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 'p', 'c', 'k', 'e', 'v', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 'p', 'c', 'k', 'e', 'v', '_', 'd', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'p',
-+ 'c', 'k', 'e', 'v', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 'p', 'c', 'k', 'e', 'v', '_', 'w', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'p', 'c',
-+ 'k', 'o', 'd', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 'p', 'c', 'k', 'o', 'd', '_', 'd', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'p', 'c', 'k',
-+ 'o', 'd', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 'p', 'c', 'k', 'o', 'd', '_', 'w', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'p', 'c', 'n', 't',
-+ '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+ 'a', '_', 'p', 'c', 'n', 't', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'p', 'c', 'n', 't', '_', 'h', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'p',
-+ 'c', 'n', 't', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 'i', 'p', 's', '_', 'p', 'i', 'c', 'k', '_', 'p', 'h', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'p',
-+ 'i', 'c', 'k', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 'i', 'p', 's', '_', 'p', 'r', 'e', 'c', 'e', 'q', '_', 'w',
-+ '_', 'p', 'h', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 'i', 'p', 's', '_', 'p', 'r', 'e', 'c', 'e', 'q', '_', 'w', '_', 'p',
-+ 'h', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-+ 'p', 's', '_', 'p', 'r', 'e', 'c', 'e', 'q', 'u', '_', 'p', 'h', '_', 'q',
-+ 'b', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-+ 'p', 's', '_', 'p', 'r', 'e', 'c', 'e', 'q', 'u', '_', 'p', 'h', '_', 'q',
-+ 'b', 'l', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 'i', 'p', 's', '_', 'p', 'r', 'e', 'c', 'e', 'q', 'u', '_', 'p', 'h', '_',
-+ 'q', 'b', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 'i', 'p', 's', '_', 'p', 'r', 'e', 'c', 'e', 'q', 'u', '_', 'p', 'h', '_',
-+ 'q', 'b', 'r', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 'i', 'p', 's', '_', 'p', 'r', 'e', 'c', 'e', 'u', '_', 'p', 'h', '_',
-+ 'q', 'b', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 'i', 'p', 's', '_', 'p', 'r', 'e', 'c', 'e', 'u', '_', 'p', 'h', '_', 'q',
-+ 'b', 'l', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 'i', 'p', 's', '_', 'p', 'r', 'e', 'c', 'e', 'u', '_', 'p', 'h', '_', 'q',
-+ 'b', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-+ 'p', 's', '_', 'p', 'r', 'e', 'c', 'e', 'u', '_', 'p', 'h', '_', 'q', 'b',
-+ 'r', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-+ 'p', 's', '_', 'p', 'r', 'e', 'c', 'r', '_', 'q', 'b', '_', 'p', 'h', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
-+ 'p', 'r', 'e', 'c', 'r', '_', 's', 'r', 'a', '_', 'p', 'h', '_', 'w', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
-+ 'p', 'r', 'e', 'c', 'r', '_', 's', 'r', 'a', '_', 'r', '_', 'p', 'h', '_',
-+ 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
-+ 's', '_', 'p', 'r', 'e', 'c', 'r', 'q', '_', 'p', 'h', '_', 'w', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'p',
-+ 'r', 'e', 'c', 'r', 'q', '_', 'q', 'b', '_', 'p', 'h', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'p', 'r', 'e',
-+ 'c', 'r', 'q', '_', 'r', 's', '_', 'p', 'h', '_', 'w', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'p', 'r', 'e',
-+ 'c', 'r', 'q', 'u', '_', 's', '_', 'q', 'b', '_', 'p', 'h', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'p', 'r',
-+ 'e', 'p', 'e', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 'i', 'p', 's', '_', 'r', 'a', 'd', 'd', 'u', '_', 'w', '_', 'q',
-+ 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
-+ 's', '_', 'r', 'd', 'd', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'r', 'e', 'p', 'l', '_', 'p', 'h',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
-+ '_', 'r', 'e', 'p', 'l', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'a', 't', '_', 's', '_', 'b',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 's', 'a', 't', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'a', 't', '_', 's', '_', 'h', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's',
-+ 'a', 't', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 's', 'a', 't', '_', 'u', '_', 'b', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'a',
-+ 't', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 's', 'a', 't', '_', 'u', '_', 'h', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'a', 't',
-+ '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 's', 'h', 'f', '_', 'b', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'h', 'f', '_', 'h', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's',
-+ 'h', 'f', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 'i', 'p', 's', '_', 's', 'h', 'i', 'l', 'o', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'h', 'l', 'l',
-+ '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 'i', 'p', 's', '_', 's', 'h', 'l', 'l', '_', 'q', 'b', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'h', 'l',
-+ 'l', '_', 's', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'h', 'l', 'l', '_', 's', '_', 'w',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
-+ '_', 's', 'h', 'r', 'a', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'h', 'r', 'a', '_', 'q',
-+ 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
-+ 's', '_', 's', 'h', 'r', 'a', '_', 'r', '_', 'p', 'h', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'h', 'r',
-+ 'a', '_', 'r', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'h', 'r', 'a', '_', 'r', '_', 'w',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
-+ '_', 's', 'h', 'r', 'l', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'h', 'r', 'l', '_', 'q',
-+ 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+ '_', 's', 'l', 'd', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 's', 'l', 'd', '_', 'd', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'l', 'd', '_',
-+ 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+ '_', 's', 'l', 'd', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 's', 'l', 'd', 'i', '_', 'b', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'l', 'd',
-+ 'i', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 's', 'l', 'd', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'l', 'd', 'i', '_', 'w',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 's', 'l', 'l', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 's', 'l', 'l', '_', 'd', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'l', 'l', '_', 'h',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 's', 'l', 'l', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 's', 'l', 'l', 'i', '_', 'b', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'l', 'l', 'i',
-+ '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+ 'a', '_', 's', 'l', 'l', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'l', 'l', 'i', '_', 'w', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's',
-+ 'p', 'l', 'a', 't', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 's', 'p', 'l', 'a', 't', '_', 'd', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'p',
-+ 'l', 'a', 't', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 's', 'p', 'l', 'a', 't', '_', 'w', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'p', 'l',
-+ 'a', 't', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 's', 'p', 'l', 'a', 't', 'i', '_', 'd', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'p',
-+ 'l', 'a', 't', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 's', 'p', 'l', 'a', 't', 'i', '_', 'w', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's',
-+ 'r', 'a', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 's', 'r', 'a', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'a', '_', 'h', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's',
-+ 'r', 'a', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 's', 'r', 'a', 'i', '_', 'b', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'a', 'i', '_',
-+ 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+ '_', 's', 'r', 'a', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'a', 'i', '_', 'w', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r',
-+ 'a', 'r', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 's', 'r', 'a', 'r', '_', 'd', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'a', 'r', '_',
-+ 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+ '_', 's', 'r', 'a', 'r', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'a', 'r', 'i', '_', 'b', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's',
-+ 'r', 'a', 'r', 'i', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'a', 'r', 'i', '_', 'h', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r',
-+ 'a', 'r', 'i', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 's', 'r', 'l', '_', 'b', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'l', '_', 'd',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 's', 'r', 'l', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 's', 'r', 'l', '_', 'w', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'l', 'i', '_',
-+ 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+ '_', 's', 'r', 'l', 'i', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'l', 'i', '_', 'h', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r',
-+ 'l', 'i', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 's', 'r', 'l', 'r', '_', 'b', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'l', 'r', '_',
-+ 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+ '_', 's', 'r', 'l', 'r', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'l', 'r', '_', 'w', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r',
-+ 'l', 'r', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 's', 'r', 'l', 'r', 'i', '_', 'd', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'l',
-+ 'r', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 's', 'r', 'l', 'r', 'i', '_', 'w', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 't', '_', 'b',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 's', 't', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 's', 't', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 't', '_', 'w', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'u',
-+ 'b', 'q', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 'i', 'p', 's', '_', 's', 'u', 'b', 'q', '_', 's', '_', 'p', 'h',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
-+ '_', 's', 'u', 'b', 'q', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'u', 'b', 'q', 'h',
-+ '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 'i', 'p', 's', '_', 's', 'u', 'b', 'q', 'h', '_', 'r', '_', 'p', 'h', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
-+ 's', 'u', 'b', 'q', 'h', '_', 'r', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'u', 'b', 'q', 'h',
-+ '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+ 'a', '_', 's', 'u', 'b', 's', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 's', '_',
-+ 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+ 's', 'a', '_', 's', 'u', 'b', 's', '_', 's', '_', 'h', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 's',
-+ '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 's', 'u', 'b', 's', '_', 'u', '_', 'b', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b',
-+ 's', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 's', 'u', 'b', 's', '_', 'u', '_', 'h', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u',
-+ 'b', 's', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 's', 'u', 's', '_', 'u', '_',
-+ 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+ '_', 's', 'u', 'b', 's', 'u', 's', '_', 'u', '_', 'd', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 's',
-+ 'u', 's', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 's', 'u', 's', '_', 'u', '_',
-+ 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+ '_', 's', 'u', 'b', 's', 'u', 'u', '_', 's', '_', 'b', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 's',
-+ 'u', 'u', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 's', 'u', 'u', '_', 's', '_',
-+ 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+ '_', 's', 'u', 'b', 's', 'u', 'u', '_', 's', '_', 'w', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'u', 'b',
-+ 'u', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 'i', 'p', 's', '_', 's', 'u', 'b', 'u', '_', 'q', 'b', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'u',
-+ 'b', 'u', '_', 's', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'u', 'b', 'u', '_', 's', '_',
-+ 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-+ 'p', 's', '_', 's', 'u', 'b', 'u', 'h', '_', 'q', 'b', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'u', 'b',
-+ 'u', 'h', '_', 'r', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 'v', '_', 'b', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u',
-+ 'b', 'v', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 's', 'u', 'b', 'v', '_', 'h', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 'v', '_',
-+ 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+ '_', 's', 'u', 'b', 'v', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 'v', 'i', '_', 'd',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+ 's', 'u', 'b', 'v', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 'v', 'i', '_', 'w', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'v',
-+ 's', 'h', 'f', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'm', 's', 'a', '_', 'v', 's', 'h', 'f', '_', 'd', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'v', 's', 'h', 'f',
-+ '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+ 'a', '_', 'v', 's', 'h', 'f', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'w', 'r', 'd', 's', 'p', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'x',
-+ 'o', 'r', '_', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'm', 's', 'a', '_', 'x', 'o', 'r', 'i', '_', 'b', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 'a', 'b', 's', '_', 'i', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 'a', 'b', 's', '_', 'l', 'l', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 'a', 'd', 'd', '_', 'r', 'm', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 'a', 'd', 'd', '_', 'r', 'm', '_', 'f', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 'a', 'd', 'd', '_', 'r', 'm', '_', 'f', 't', 'z', '_', 'f', '\000',
-+ '_', '_', 'n', 'v', 'v', 'm', '_', 'a', 'd', 'd', '_', 'r', 'n', '_', 'd',
-+ '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'a', 'd', 'd', '_', 'r', 'n', '_',
-+ 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'a', 'd', 'd', '_', 'r', 'n',
-+ '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'a',
-+ 'd', 'd', '_', 'r', 'p', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 'a', 'd', 'd', '_', 'r', 'p', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 'a', 'd', 'd', '_', 'r', 'p', '_', 'f', 't', 'z', '_', 'f', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 'a', 'd', 'd', '_', 'r', 'z', '_', 'd', '\000',
-+ '_', '_', 'n', 'v', 'v', 'm', '_', 'a', 'd', 'd', '_', 'r', 'z', '_', 'f',
-+ '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'a', 'd', 'd', '_', 'r', 'z', '_',
-+ 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'b', 'a',
-+ 'r', '_', 's', 'y', 'n', 'c', '\000', '_', '_', 's', 'y', 'n', 'c', 't', 'h',
-+ 'r', 'e', 'a', 'd', 's', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'b', 'a',
-+ 'r', '0', '_', 'a', 'n', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'b',
-+ 'a', 'r', '0', '_', 'o', 'r', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'b',
-+ 'a', 'r', '0', '_', 'p', 'o', 'p', 'c', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 'b', 'i', 't', 'c', 'a', 's', 't', '_', 'd', '2', 'l', 'l', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 'b', 'i', 't', 'c', 'a', 's', 't', '_', 'f',
-+ '2', 'i', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'b', 'i', 't', 'c', 'a',
-+ 's', 't', '_', 'i', '2', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'b',
-+ 'i', 't', 'c', 'a', 's', 't', '_', 'l', 'l', '2', 'd', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 'b', 'r', 'e', 'v', '3', '2', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 'b', 'r', 'e', 'v', '6', '4', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 'c', 'e', 'i', 'l', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 'c', 'e', 'i', 'l', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 'c', 'e', 'i', 'l', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 'c', 'l', 'z', '_', 'i', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 'c', 'l', 'z', '_', 'l', 'l', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 'c', 'o', 's', '_', 'a', 'p', 'p', 'r', 'o', 'x', '_', 'f', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 'c', 'o', 's', '_', 'a', 'p', 'p', 'r', 'o', 'x',
-+ '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd',
-+ '2', 'f', '_', 'r', 'm', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', '2',
-+ 'f', '_', 'r', 'm', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 'd', '2', 'f', '_', 'r', 'n', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 'd', '2', 'f', '_', 'r', 'n', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 'd', '2', 'f', '_', 'r', 'p', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 'd', '2', 'f', '_', 'r', 'p', '_', 'f', 't', 'z', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 'd', '2', 'f', '_', 'r', 'z', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 'd', '2', 'f', '_', 'r', 'z', '_', 'f', 't', 'z', '\000',
-+ '_', '_', 'n', 'v', 'v', 'm', '_', 'd', '2', 'i', '_', 'h', 'i', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 'd', '2', 'i', '_', 'l', 'o', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 'd', '2', 'i', '_', 'r', 'm', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 'd', '2', 'i', '_', 'r', 'n', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 'd', '2', 'i', '_', 'r', 'p', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 'd', '2', 'i', '_', 'r', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 'd', '2', 'l', 'l', '_', 'r', 'm', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 'd', '2', 'l', 'l', '_', 'r', 'n', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 'd', '2', 'l', 'l', '_', 'r', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 'd', '2', 'l', 'l', '_', 'r', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 'd', '2', 'u', 'i', '_', 'r', 'm', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 'd', '2', 'u', 'i', '_', 'r', 'n', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 'd', '2', 'u', 'i', '_', 'r', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 'd', '2', 'u', 'i', '_', 'r', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 'd', '2', 'u', 'l', 'l', '_', 'r', 'm', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 'd', '2', 'u', 'l', 'l', '_', 'r', 'n', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 'd', '2', 'u', 'l', 'l', '_', 'r', 'p', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 'd', '2', 'u', 'l', 'l', '_', 'r', 'z', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 'd', 'i', 'v', '_', 'a', 'p', 'p', 'r', 'o', 'x',
-+ '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', 'i', 'v', '_', 'a',
-+ 'p', 'p', 'r', 'o', 'x', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 'd', 'i', 'v', '_', 'r', 'm', '_', 'd', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 'd', 'i', 'v', '_', 'r', 'm', '_', 'f', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 'd', 'i', 'v', '_', 'r', 'm', '_', 'f', 't',
-+ 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', 'i', 'v', '_',
-+ 'r', 'n', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', 'i', 'v',
-+ '_', 'r', 'n', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', 'i',
-+ 'v', '_', 'r', 'n', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 'd', 'i', 'v', '_', 'r', 'p', '_', 'd', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 'd', 'i', 'v', '_', 'r', 'p', '_', 'f', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 'd', 'i', 'v', '_', 'r', 'p', '_', 'f', 't', 'z',
-+ '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', 'i', 'v', '_', 'r',
-+ 'z', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', 'i', 'v', '_',
-+ 'r', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', 'i', 'v',
-+ '_', 'r', 'z', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 'e', 'x', '2', '_', 'a', 'p', 'p', 'r', 'o', 'x', '_', 'd', '\000',
-+ '_', '_', 'n', 'v', 'v', 'm', '_', 'e', 'x', '2', '_', 'a', 'p', 'p', 'r',
-+ 'o', 'x', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'e', 'x', '2',
-+ '_', 'a', 'p', 'p', 'r', 'o', 'x', '_', 'f', 't', 'z', '_', 'f', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'h', '_', 'r', 'n', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 'f', '2', 'h', '_', 'r', 'n', '_', 'f', 't', 'z',
-+ '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'i', '_', 'r', 'm', '\000',
-+ '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'i', '_', 'r', 'm', '_', 'f',
-+ 't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'i', '_', 'r',
-+ 'n', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'i', '_', 'r', 'n',
-+ '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'i',
-+ '_', 'r', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'i', '_',
-+ 'r', 'p', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f',
-+ '2', 'i', '_', 'r', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2',
-+ 'i', '_', 'r', 'z', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 'f', '2', 'l', 'l', '_', 'r', 'm', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 'f', '2', 'l', 'l', '_', 'r', 'm', '_', 'f', 't', 'z', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 'f', '2', 'l', 'l', '_', 'r', 'n', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 'f', '2', 'l', 'l', '_', 'r', 'n', '_', 'f', 't',
-+ 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'l', 'l', '_', 'r',
-+ 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'l', 'l', '_', 'r',
-+ 'p', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2',
-+ 'l', 'l', '_', 'r', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2',
-+ 'l', 'l', '_', 'r', 'z', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 'f', '2', 'u', 'i', '_', 'r', 'm', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 'f', '2', 'u', 'i', '_', 'r', 'm', '_', 'f', 't', 'z', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'u', 'i', '_', 'r', 'n', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'u', 'i', '_', 'r', 'n', '_', 'f',
-+ 't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'u', 'i', '_',
-+ 'r', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'u', 'i', '_',
-+ 'r', 'p', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f',
-+ '2', 'u', 'i', '_', 'r', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f',
-+ '2', 'u', 'i', '_', 'r', 'z', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 'f', '2', 'u', 'l', 'l', '_', 'r', 'm', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 'f', '2', 'u', 'l', 'l', '_', 'r', 'm', '_', 'f', 't',
-+ 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'u', 'l', 'l', '_',
-+ 'r', 'n', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'u', 'l', 'l',
-+ '_', 'r', 'n', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 'f', '2', 'u', 'l', 'l', '_', 'r', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 'f', '2', 'u', 'l', 'l', '_', 'r', 'p', '_', 'f', 't', 'z', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'u', 'l', 'l', '_', 'r', 'z', '\000',
-+ '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'u', 'l', 'l', '_', 'r', 'z',
-+ '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'a', 'b',
-+ 's', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'a', 'b', 's',
-+ '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'a', 'b', 's', '_',
-+ 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'l',
-+ 'o', 'o', 'r', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'l',
-+ 'o', 'o', 'r', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'l',
-+ 'o', 'o', 'r', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 'f', 'm', 'a', '_', 'r', 'm', '_', 'd', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 'f', 'm', 'a', '_', 'r', 'm', '_', 'f', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 'f', 'm', 'a', '_', 'r', 'm', '_', 'f', 't', 'z', '_',
-+ 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'm', 'a', '_', 'r', 'n',
-+ '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'm', 'a', '_', 'r',
-+ 'n', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'm', 'a', '_',
-+ 'r', 'n', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 'f', 'm', 'a', '_', 'r', 'p', '_', 'd', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 'f', 'm', 'a', '_', 'r', 'p', '_', 'f', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 'f', 'm', 'a', '_', 'r', 'p', '_', 'f', 't', 'z', '_', 'f',
-+ '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'm', 'a', '_', 'r', 'z', '_',
-+ 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'm', 'a', '_', 'r', 'z',
-+ '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'm', 'a', '_', 'r',
-+ 'z', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 'f', 'm', 'a', 'x', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f',
-+ 'm', 'a', 'x', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'm',
-+ 'a', 'x', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 'f', 'm', 'i', 'n', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 'f', 'm', 'i', 'n', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f',
-+ 'm', 'i', 'n', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 'h', '2', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', '2',
-+ 'd', '_', 'r', 'm', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', '2', 'd',
-+ '_', 'r', 'n', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', '2', 'd', '_',
-+ 'r', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', '2', 'd', '_', 'r',
-+ 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', '2', 'f', '_', 'r', 'm',
-+ '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', '2', 'f', '_', 'r', 'n', '\000',
-+ '_', '_', 'n', 'v', 'v', 'm', '_', 'i', '2', 'f', '_', 'r', 'p', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 'i', '2', 'f', '_', 'r', 'z', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 'i', 's', 's', 'p', 'a', 'c', 'e', 'p', '_', 'c',
-+ 'o', 'n', 's', 't', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', 's', 's',
-+ 'p', 'a', 'c', 'e', 'p', '_', 'g', 'l', 'o', 'b', 'a', 'l', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 'i', 's', 's', 'p', 'a', 'c', 'e', 'p', '_', 'l',
-+ 'o', 'c', 'a', 'l', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', 's', 's',
-+ 'p', 'a', 'c', 'e', 'p', '_', 's', 'h', 'a', 'r', 'e', 'd', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 'i', 's', 't', 'y', 'p', 'e', 'p', '_', 's', 'a',
-+ 'm', 'p', 'l', 'e', 'r', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', 's',
-+ 't', 'y', 'p', 'e', 'p', '_', 's', 'u', 'r', 'f', 'a', 'c', 'e', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 'i', 's', 't', 'y', 'p', 'e', 'p', '_', 't',
-+ 'e', 'x', 't', 'u', 'r', 'e', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'l',
-+ 'g', '2', '_', 'a', 'p', 'p', 'r', 'o', 'x', '_', 'd', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 'l', 'g', '2', '_', 'a', 'p', 'p', 'r', 'o', 'x', '_',
-+ 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'l', 'g', '2', '_', 'a', 'p',
-+ 'p', 'r', 'o', 'x', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 'l', 'l', '2', 'd', '_', 'r', 'm', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 'l', 'l', '2', 'd', '_', 'r', 'n', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 'l', 'l', '2', 'd', '_', 'r', 'p', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 'l', 'l', '2', 'd', '_', 'r', 'z', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 'l', 'l', '2', 'f', '_', 'r', 'm', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 'l', 'l', '2', 'f', '_', 'r', 'n', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 'l', 'l', '2', 'f', '_', 'r', 'p', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 'l', 'l', '2', 'f', '_', 'r', 'z', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 'l', 'o', 'h', 'i', '_', 'i', '2', 'd', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 'm', 'a', 'x', '_', 'i', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 'm', 'a', 'x', '_', 'l', 'l', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 'm', 'a', 'x', '_', 'u', 'i', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 'm', 'a', 'x', '_', 'u', 'l', 'l', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 'm', 'e', 'm', 'b', 'a', 'r', '_', 'c', 't', 'a', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 'm', 'e', 'm', 'b', 'a', 'r', '_', 'g', 'l', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 'm', 'e', 'm', 'b', 'a', 'r', '_', 's', 'y', 's',
-+ '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'm', 'i', 'n', '_', 'i', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 'm', 'i', 'n', '_', 'l', 'l', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 'm', 'i', 'n', '_', 'u', 'i', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 'm', 'i', 'n', '_', 'u', 'l', 'l', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 'm', 'u', 'l', '_', 'r', 'm', '_', 'd', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', '_', 'r', 'm', '_', 'f', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', '_', 'r', 'm', '_', 'f', 't',
-+ 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', '_',
-+ 'r', 'n', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l',
-+ '_', 'r', 'n', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'm', 'u',
-+ 'l', '_', 'r', 'n', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 'm', 'u', 'l', '_', 'r', 'p', '_', 'd', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 'm', 'u', 'l', '_', 'r', 'p', '_', 'f', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', '_', 'r', 'p', '_', 'f', 't', 'z',
-+ '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', '_', 'r',
-+ 'z', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', '_',
-+ 'r', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l',
-+ '_', 'r', 'z', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 'm', 'u', 'l', '2', '4', '_', 'i', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 'm', 'u', 'l', '2', '4', '_', 'u', 'i', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 'm', 'u', 'l', 'h', 'i', '_', 'i', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 'm', 'u', 'l', 'h', 'i', '_', 'l', 'l', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 'm', 'u', 'l', 'h', 'i', '_', 'u', 'i', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', 'h', 'i', '_', 'u', 'l', 'l', '\000',
-+ '_', '_', 'n', 'v', 'v', 'm', '_', 'p', 'o', 'p', 'c', '_', 'i', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 'p', 'o', 'p', 'c', '_', 'l', 'l', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 'p', 'r', 'm', 't', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 'r', 'c', 'p', '_', 'a', 'p', 'p', 'r', 'o', 'x', '_', 'f',
-+ 't', 'z', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'c', 'p',
-+ '_', 'r', 'm', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'c',
-+ 'p', '_', 'r', 'm', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r',
-+ 'c', 'p', '_', 'r', 'm', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 'r', 'c', 'p', '_', 'r', 'n', '_', 'd', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 'r', 'c', 'p', '_', 'r', 'n', '_', 'f', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 'r', 'c', 'p', '_', 'r', 'n', '_', 'f', 't',
-+ 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'c', 'p', '_',
-+ 'r', 'p', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'c', 'p',
-+ '_', 'r', 'p', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'c',
-+ 'p', '_', 'r', 'p', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 'r', 'c', 'p', '_', 'r', 'z', '_', 'd', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 'r', 'c', 'p', '_', 'r', 'z', '_', 'f', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 'r', 'c', 'p', '_', 'r', 'z', '_', 'f', 't', 'z',
-+ '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_',
-+ 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'c', 'l', 'o', 'c', 'k', '\000',
-+ '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x',
-+ '_', 's', 'r', 'e', 'g', '_', 'c', 'l', 'o', 'c', 'k', '6', '4', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_',
-+ 's', 'r', 'e', 'g', '_', 'c', 't', 'a', 'i', 'd', '_', 'w', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's',
-+ 'r', 'e', 'g', '_', 'c', 't', 'a', 'i', 'd', '_', 'x', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r',
-+ 'e', 'g', '_', 'c', 't', 'a', 'i', 'd', '_', 'y', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e',
-+ 'g', '_', 'c', 't', 'a', 'i', 'd', '_', 'z', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g',
-+ '_', 'e', 'n', 'v', 'r', 'e', 'g', '0', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_',
-+ 'e', 'n', 'v', 'r', 'e', 'g', '1', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e',
-+ 'n', 'v', 'r', 'e', 'g', '1', '0', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e',
-+ 'n', 'v', 'r', 'e', 'g', '1', '1', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e',
-+ 'n', 'v', 'r', 'e', 'g', '1', '2', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e',
-+ 'n', 'v', 'r', 'e', 'g', '1', '3', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e',
-+ 'n', 'v', 'r', 'e', 'g', '1', '4', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e',
-+ 'n', 'v', 'r', 'e', 'g', '1', '5', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e',
-+ 'n', 'v', 'r', 'e', 'g', '1', '6', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e',
-+ 'n', 'v', 'r', 'e', 'g', '1', '7', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e',
-+ 'n', 'v', 'r', 'e', 'g', '1', '8', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e',
-+ 'n', 'v', 'r', 'e', 'g', '1', '9', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e',
-+ 'n', 'v', 'r', 'e', 'g', '2', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r',
-+ 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n',
-+ 'v', 'r', 'e', 'g', '2', '0', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r',
-+ 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n',
-+ 'v', 'r', 'e', 'g', '2', '1', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r',
-+ 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n',
-+ 'v', 'r', 'e', 'g', '2', '2', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r',
-+ 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n',
-+ 'v', 'r', 'e', 'g', '2', '3', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r',
-+ 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n',
-+ 'v', 'r', 'e', 'g', '2', '4', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r',
-+ 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n',
-+ 'v', 'r', 'e', 'g', '2', '5', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r',
-+ 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n',
-+ 'v', 'r', 'e', 'g', '2', '6', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r',
-+ 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n',
-+ 'v', 'r', 'e', 'g', '2', '7', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r',
-+ 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n',
-+ 'v', 'r', 'e', 'g', '2', '8', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r',
-+ 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n',
-+ 'v', 'r', 'e', 'g', '2', '9', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r',
-+ 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n',
-+ 'v', 'r', 'e', 'g', '3', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e',
-+ 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n', 'v',
-+ 'r', 'e', 'g', '3', '0', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e',
-+ 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n', 'v',
-+ 'r', 'e', 'g', '3', '1', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e',
-+ 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n', 'v',
-+ 'r', 'e', 'g', '4', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a',
-+ 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n', 'v', 'r',
-+ 'e', 'g', '5', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd',
-+ '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n', 'v', 'r', 'e',
-+ 'g', '6', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_',
-+ 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g',
-+ '7', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p',
-+ 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '8',
-+ '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't',
-+ 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '9', '\000',
-+ '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x',
-+ '_', 's', 'r', 'e', 'g', '_', 'g', 'r', 'i', 'd', 'i', 'd', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's',
-+ 'r', 'e', 'g', '_', 'l', 'a', 'n', 'e', 'i', 'd', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e',
-+ 'g', '_', 'l', 'a', 'n', 'e', 'm', 'a', 's', 'k', '_', 'e', 'q', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_',
-+ 's', 'r', 'e', 'g', '_', 'l', 'a', 'n', 'e', 'm', 'a', 's', 'k', '_', 'g',
-+ 'e', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p',
-+ 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'l', 'a', 'n', 'e', 'm', 'a', 's',
-+ 'k', '_', 'g', 't', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a',
-+ 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'l', 'a', 'n', 'e',
-+ 'm', 'a', 's', 'k', '_', 'l', 'e', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'l',
-+ 'a', 'n', 'e', 'm', 'a', 's', 'k', '_', 'l', 't', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e',
-+ 'g', '_', 'n', 'c', 't', 'a', 'i', 'd', '_', 'w', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e',
-+ 'g', '_', 'n', 'c', 't', 'a', 'i', 'd', '_', 'x', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e',
-+ 'g', '_', 'n', 'c', 't', 'a', 'i', 'd', '_', 'y', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e',
-+ 'g', '_', 'n', 'c', 't', 'a', 'i', 'd', '_', 'z', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e',
-+ 'g', '_', 'n', 's', 'm', 'i', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'n',
-+ 't', 'i', 'd', '_', 'w', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e',
-+ 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'n', 't', 'i',
-+ 'd', '_', 'x', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd',
-+ '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'n', 't', 'i', 'd', '_',
-+ 'y', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p',
-+ 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'n', 't', 'i', 'd', '_', 'z', '\000',
-+ '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x',
-+ '_', 's', 'r', 'e', 'g', '_', 'n', 'w', 'a', 'r', 'p', 'i', 'd', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_',
-+ 's', 'r', 'e', 'g', '_', 'p', 'm', '0', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_',
-+ 'p', 'm', '1', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd',
-+ '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'p', 'm', '2', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_',
-+ 's', 'r', 'e', 'g', '_', 'p', 'm', '3', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_',
-+ 's', 'm', 'i', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a',
-+ 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 't', 'i', 'd', '_',
-+ 'w', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p',
-+ 't', 'x', '_', 's', 'r', 'e', 'g', '_', 't', 'i', 'd', '_', 'x', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_',
-+ 's', 'r', 'e', 'g', '_', 't', 'i', 'd', '_', 'y', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e',
-+ 'g', '_', 't', 'i', 'd', '_', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'w',
-+ 'a', 'r', 'p', 'i', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e',
-+ 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'w', 'a', 'r',
-+ 'p', 's', 'i', 'z', 'e', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'o',
-+ 't', 'a', 't', 'e', '_', 'b', '3', '2', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 'r', 'o', 't', 'a', 't', 'e', '_', 'b', '6', '4', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 'r', 'o', 't', 'a', 't', 'e', '_', 'r', 'i', 'g', 'h',
-+ 't', '_', 'b', '6', '4', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'o',
-+ 'u', 'n', 'd', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'o',
-+ 'u', 'n', 'd', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'o',
-+ 'u', 'n', 'd', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 'r', 's', 'q', 'r', 't', '_', 'a', 'p', 'p', 'r', 'o', 'x', '_',
-+ 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 's', 'q', 'r', 't', '_',
-+ 'a', 'p', 'p', 'r', 'o', 'x', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 'r', 's', 'q', 'r', 't', '_', 'a', 'p', 'p', 'r', 'o', 'x', '_', 'f',
-+ 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'a', 'd',
-+ '_', 'i', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'a', 'd', '_', 'u',
-+ 'i', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'a', 't', 'u', 'r', 'a',
-+ 't', 'e', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'a', 't',
-+ 'u', 'r', 'a', 't', 'e', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 's', 'a', 't', 'u', 'r', 'a', 't', 'e', '_', 'f', 't', 'z', '_', 'f', '\000',
-+ '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'h', 'f', 'l', '_', 'b', 'f', 'l',
-+ 'y', '_', 'f', '3', '2', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'h',
-+ 'f', 'l', '_', 'b', 'f', 'l', 'y', '_', 'i', '3', '2', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 's', 'h', 'f', 'l', '_', 'd', 'o', 'w', 'n', '_', 'f',
-+ '3', '2', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'h', 'f', 'l', '_',
-+ 'd', 'o', 'w', 'n', '_', 'i', '3', '2', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 's', 'h', 'f', 'l', '_', 'i', 'd', 'x', '_', 'f', '3', '2', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 's', 'h', 'f', 'l', '_', 'i', 'd', 'x', '_',
-+ 'i', '3', '2', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'h', 'f', 'l',
-+ '_', 'u', 'p', '_', 'f', '3', '2', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 's', 'h', 'f', 'l', '_', 'u', 'p', '_', 'i', '3', '2', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 's', 'i', 'n', '_', 'a', 'p', 'p', 'r', 'o', 'x', '_',
-+ 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'i', 'n', '_', 'a', 'p',
-+ 'p', 'r', 'o', 'x', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 's', 'q', 'r', 't', '_', 'a', 'p', 'p', 'r', 'o', 'x', '_',
-+ 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'q', 'r', 't', '_', 'a',
-+ 'p', 'p', 'r', 'o', 'x', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 's', 'q', 'r', 't', '_', 'f', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 's', 'q', 'r', 't', '_', 'r', 'm', '_', 'd', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 's', 'q', 'r', 't', '_', 'r', 'm', '_', 'f', '\000',
-+ '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'q', 'r', 't', '_', 'r', 'm', '_',
-+ 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'q',
-+ 'r', 't', '_', 'r', 'n', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 's', 'q', 'r', 't', '_', 'r', 'n', '_', 'f', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 's', 'q', 'r', 't', '_', 'r', 'n', '_', 'f', 't', 'z', '_', 'f',
-+ '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'q', 'r', 't', '_', 'r', 'p',
-+ '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'q', 'r', 't', '_',
-+ 'r', 'p', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'q', 'r',
-+ 't', '_', 'r', 'p', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 's', 'q', 'r', 't', '_', 'r', 'z', '_', 'd', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 's', 'q', 'r', 't', '_', 'r', 'z', '_', 'f', '\000',
-+ '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'q', 'r', 't', '_', 'r', 'z', '_',
-+ 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-+ 'q', '_', 'a', 'r', 'r', 'a', 'y', '_', 's', 'i', 'z', 'e', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 's', 'u', 'q', '_', 'c', 'h', 'a', 'n', 'n', 'e',
-+ 'l', '_', 'd', 'a', 't', 'a', '_', 't', 'y', 'p', 'e', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 's', 'u', 'q', '_', 'c', 'h', 'a', 'n', 'n', 'e', 'l',
-+ '_', 'o', 'r', 'd', 'e', 'r', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-+ 'u', 'q', '_', 'd', 'e', 'p', 't', 'h', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 's', 'u', 'q', '_', 'h', 'e', 'i', 'g', 'h', 't', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 's', 'u', 'q', '_', 'w', 'i', 'd', 't', 'h', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd',
-+ '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '1', '6', '_', 'c', 'l', 'a', 'm',
-+ 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
-+ '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '1', '6', '_', 't',
-+ 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-+ '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '1', '6',
-+ '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-+ 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i',
-+ '3', '2', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a',
-+ 'y', '_', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r',
-+ 'r', 'a', 'y', '_', 'i', '3', '2', '_', 'z', 'e', 'r', 'o', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_',
-+ 'a', 'r', 'r', 'a', 'y', '_', 'i', '6', '4', '_', 'c', 'l', 'a', 'm', 'p',
-+ '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+ '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '6', '4', '_', 't', 'r',
-+ 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-+ 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '6', '4', '_',
-+ 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-+ 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '8',
-+ '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-+ 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_',
-+ 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y',
-+ '_', 'i', '8', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a',
-+ 'y', '_', 'v', '2', 'i', '1', '6', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd',
-+ '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '1', '6', '_', 't', 'r',
-+ 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-+ 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '1',
-+ '6', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-+ 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_',
-+ 'v', '2', 'i', '3', '2', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a',
-+ 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '3', '2', '_', 't', 'r', 'a', 'p',
-+ '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+ '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '3', '2', '_',
-+ 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-+ 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2',
-+ 'i', '6', '4', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r',
-+ 'a', 'y', '_', 'v', '2', 'i', '6', '4', '_', 't', 'r', 'a', 'p', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd',
-+ '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '6', '4', '_', 'z', 'e',
-+ 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-+ 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '8',
-+ '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-+ 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_',
-+ 'v', '2', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r',
-+ 'a', 'y', '_', 'v', '2', 'i', '8', '_', 'z', 'e', 'r', 'o', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_',
-+ 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '1', '6', '_', 'c', 'l', 'a',
-+ 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-+ 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '1',
-+ '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-+ 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_',
-+ 'v', '4', 'i', '1', '6', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r',
-+ 'r', 'a', 'y', '_', 'v', '4', 'i', '3', '2', '_', 'c', 'l', 'a', 'm', 'p',
-+ '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+ '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '3', '2', '_',
-+ 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-+ 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4',
-+ 'i', '3', '2', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a',
-+ 'y', '_', 'v', '4', 'i', '8', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_',
-+ 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '8', '_', 't', 'r', 'a', 'p',
-+ '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+ '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '8', '_', 'z',
-+ 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-+ '_', 'b', '_', '1', 'd', '_', 'i', '1', '6', '_', 'c', 'l', 'a', 'm', 'p',
-+ '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+ '1', 'd', '_', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'i',
-+ '1', '6', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'i', '3', '2', '_', 'c',
-+ 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-+ 't', '_', 'b', '_', '1', 'd', '_', 'i', '3', '2', '_', 't', 'r', 'a', 'p',
-+ '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+ '1', 'd', '_', 'i', '3', '2', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'i',
-+ '6', '4', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'i', '6', '4', '_',
-+ 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-+ 't', '_', 'b', '_', '1', 'd', '_', 'i', '6', '4', '_', 'z', 'e', 'r', 'o',
-+ '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+ '1', 'd', '_', 'i', '8', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'i',
-+ '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-+ 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'i', '8', '_', 'z', 'e', 'r',
-+ 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
-+ '_', '1', 'd', '_', 'v', '2', 'i', '1', '6', '_', 'c', 'l', 'a', 'm', 'p',
-+ '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+ '1', 'd', '_', 'v', '2', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd',
-+ '_', 'v', '2', 'i', '1', '6', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'v',
-+ '2', 'i', '3', '2', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'v', '2',
-+ 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'v', '2', 'i', '3',
-+ '2', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-+ 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'v', '2', 'i', '6', '4', '_',
-+ 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-+ 's', 't', '_', 'b', '_', '1', 'd', '_', 'v', '2', 'i', '6', '4', '_', 't',
-+ 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-+ '_', 'b', '_', '1', 'd', '_', 'v', '2', 'i', '6', '4', '_', 'z', 'e', 'r',
-+ 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
-+ '_', '1', 'd', '_', 'v', '2', 'i', '8', '_', 'c', 'l', 'a', 'm', 'p', '\000',
-+ '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1',
-+ 'd', '_', 'v', '2', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'v',
-+ '2', 'i', '8', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'v', '4', 'i', '1',
-+ '6', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'v', '4', 'i', '1', '6',
-+ '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-+ 's', 't', '_', 'b', '_', '1', 'd', '_', 'v', '4', 'i', '1', '6', '_', 'z',
-+ 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-+ '_', 'b', '_', '1', 'd', '_', 'v', '4', 'i', '3', '2', '_', 'c', 'l', 'a',
-+ 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-+ 'b', '_', '1', 'd', '_', 'v', '4', 'i', '3', '2', '_', 't', 'r', 'a', 'p',
-+ '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+ '1', 'd', '_', 'v', '4', 'i', '3', '2', '_', 'z', 'e', 'r', 'o', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd',
-+ '_', 'v', '4', 'i', '8', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'v',
-+ '4', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'v', '4', 'i', '8',
-+ '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-+ 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i',
-+ '1', '6', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a',
-+ 'y', '_', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r',
-+ 'r', 'a', 'y', '_', 'i', '1', '6', '_', 'z', 'e', 'r', 'o', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_',
-+ 'a', 'r', 'r', 'a', 'y', '_', 'i', '3', '2', '_', 'c', 'l', 'a', 'm', 'p',
-+ '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+ '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '3', '2', '_', 't', 'r',
-+ 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-+ 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '3', '2', '_',
-+ 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-+ 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '6',
-+ '4', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y',
-+ '_', 'i', '6', '4', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r',
-+ 'a', 'y', '_', 'i', '6', '4', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a',
-+ 'r', 'r', 'a', 'y', '_', 'i', '8', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd',
-+ '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '8', '_', 't', 'r', 'a', 'p', '\000',
-+ '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2',
-+ 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '8', '_', 'z', 'e', 'r', 'o',
-+ '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+ '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '1', '6', '_',
-+ 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-+ 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v',
-+ '2', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r',
-+ 'a', 'y', '_', 'v', '2', 'i', '1', '6', '_', 'z', 'e', 'r', 'o', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd',
-+ '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '3', '2', '_', 'c', 'l',
-+ 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-+ '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i',
-+ '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y',
-+ '_', 'v', '2', 'i', '3', '2', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a',
-+ 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '6', '4', '_', 'c', 'l', 'a', 'm',
-+ 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
-+ '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '6', '4',
-+ '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-+ 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v',
-+ '2', 'i', '6', '4', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r',
-+ 'a', 'y', '_', 'v', '2', 'i', '8', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd',
-+ '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '8', '_', 't', 'r', 'a',
-+ 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
-+ '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '8', '_',
-+ 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-+ 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4',
-+ 'i', '1', '6', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r',
-+ 'a', 'y', '_', 'v', '4', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd',
-+ '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '1', '6', '_', 'z', 'e',
-+ 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-+ 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '3',
-+ '2', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y',
-+ '_', 'v', '4', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a',
-+ 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '3', '2', '_', 'z', 'e', 'r', 'o',
-+ '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+ '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '8', '_', 'c',
-+ 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-+ 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4',
-+ 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y',
-+ '_', 'v', '4', 'i', '8', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'i', '1',
-+ '6', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'i', '1', '6', '_', 't',
-+ 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-+ '_', 'b', '_', '2', 'd', '_', 'i', '1', '6', '_', 'z', 'e', 'r', 'o', '\000',
-+ '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2',
-+ 'd', '_', 'i', '3', '2', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'i',
-+ '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'i', '3', '2', '_', 'z',
-+ 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-+ '_', 'b', '_', '2', 'd', '_', 'i', '6', '4', '_', 'c', 'l', 'a', 'm', 'p',
-+ '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+ '2', 'd', '_', 'i', '6', '4', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'i',
-+ '6', '4', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'i', '8', '_', 'c', 'l',
-+ 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-+ '_', 'b', '_', '2', 'd', '_', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd',
-+ '_', 'i', '8', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '2', 'i', '1',
-+ '6', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '2', 'i', '1', '6',
-+ '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-+ 's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '2', 'i', '1', '6', '_', 'z',
-+ 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-+ '_', 'b', '_', '2', 'd', '_', 'v', '2', 'i', '3', '2', '_', 'c', 'l', 'a',
-+ 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-+ 'b', '_', '2', 'd', '_', 'v', '2', 'i', '3', '2', '_', 't', 'r', 'a', 'p',
-+ '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+ '2', 'd', '_', 'v', '2', 'i', '3', '2', '_', 'z', 'e', 'r', 'o', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd',
-+ '_', 'v', '2', 'i', '6', '4', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_',
-+ 'v', '2', 'i', '6', '4', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '2',
-+ 'i', '6', '4', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '2', 'i', '8',
-+ '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-+ 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '2', 'i', '8', '_', 't',
-+ 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-+ '_', 'b', '_', '2', 'd', '_', 'v', '2', 'i', '8', '_', 'z', 'e', 'r', 'o',
-+ '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+ '2', 'd', '_', 'v', '4', 'i', '1', '6', '_', 'c', 'l', 'a', 'm', 'p', '\000',
-+ '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2',
-+ 'd', '_', 'v', '4', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_',
-+ 'v', '4', 'i', '1', '6', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '4',
-+ 'i', '3', '2', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '4', 'i',
-+ '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '4', 'i', '3', '2',
-+ '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-+ 's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '4', 'i', '8', '_', 'c', 'l',
-+ 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-+ '_', 'b', '_', '2', 'd', '_', 'v', '4', 'i', '8', '_', 't', 'r', 'a', 'p',
-+ '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+ '2', 'd', '_', 'v', '4', 'i', '8', '_', 'z', 'e', 'r', 'o', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_',
-+ 'i', '1', '6', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'i', '1', '6',
-+ '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-+ 's', 't', '_', 'b', '_', '3', 'd', '_', 'i', '1', '6', '_', 'z', 'e', 'r',
-+ 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
-+ '_', '3', 'd', '_', 'i', '3', '2', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd',
-+ '_', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'i', '3', '2',
-+ '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-+ 's', 't', '_', 'b', '_', '3', 'd', '_', 'i', '6', '4', '_', 'c', 'l', 'a',
-+ 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-+ 'b', '_', '3', 'd', '_', 'i', '6', '4', '_', 't', 'r', 'a', 'p', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd',
-+ '_', 'i', '6', '4', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'i', '8', '_',
-+ 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-+ 's', 't', '_', 'b', '_', '3', 'd', '_', 'i', '8', '_', 't', 'r', 'a', 'p',
-+ '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+ '3', 'd', '_', 'i', '8', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '2',
-+ 'i', '1', '6', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '2', 'i',
-+ '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '2', 'i', '1', '6',
-+ '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-+ 's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '2', 'i', '3', '2', '_', 'c',
-+ 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-+ 't', '_', 'b', '_', '3', 'd', '_', 'v', '2', 'i', '3', '2', '_', 't', 'r',
-+ 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-+ 'b', '_', '3', 'd', '_', 'v', '2', 'i', '3', '2', '_', 'z', 'e', 'r', 'o',
-+ '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+ '3', 'd', '_', 'v', '2', 'i', '6', '4', '_', 'c', 'l', 'a', 'm', 'p', '\000',
-+ '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3',
-+ 'd', '_', 'v', '2', 'i', '6', '4', '_', 't', 'r', 'a', 'p', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_',
-+ 'v', '2', 'i', '6', '4', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '2',
-+ 'i', '8', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '2', 'i', '8',
-+ '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-+ 's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '2', 'i', '8', '_', 'z', 'e',
-+ 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-+ 'b', '_', '3', 'd', '_', 'v', '4', 'i', '1', '6', '_', 'c', 'l', 'a', 'm',
-+ 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
-+ '_', '3', 'd', '_', 'v', '4', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000',
-+ '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3',
-+ 'd', '_', 'v', '4', 'i', '1', '6', '_', 'z', 'e', 'r', 'o', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_',
-+ 'v', '4', 'i', '3', '2', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'v',
-+ '4', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '4', 'i',
-+ '3', '2', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '4', 'i', '8', '_',
-+ 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-+ 's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '4', 'i', '8', '_', 't', 'r',
-+ 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-+ 'b', '_', '3', 'd', '_', 'v', '4', 'i', '8', '_', 'z', 'e', 'r', 'o', '\000',
-+ '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '1',
-+ 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '1', '6', '_', 't', 'r', 'a',
-+ 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p',
-+ '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '3', '2', '_', 't',
-+ 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-+ '_', 'p', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '8', '_',
-+ 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-+ 't', '_', 'p', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2',
-+ 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 's', 'u', 's', 't', '_', 'p', '_', '1', 'd', '_', 'a', 'r', 'r', 'a',
-+ 'y', '_', 'v', '2', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '1', 'd', '_',
-+ 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '8', '_', 't', 'r', 'a', 'p',
-+ '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_',
-+ '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '1', '6', '_',
-+ 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-+ 't', '_', 'p', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4',
-+ 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 's', 'u', 's', 't', '_', 'p', '_', '1', 'd', '_', 'a', 'r', 'r', 'a',
-+ 'y', '_', 'v', '4', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '1', 'd', '_', 'i',
-+ '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 's', 'u', 's', 't', '_', 'p', '_', '1', 'd', '_', 'i', '3', '2', '_', 't',
-+ 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-+ '_', 'p', '_', '1', 'd', '_', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '1', 'd',
-+ '_', 'v', '2', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '1', 'd', '_', 'v',
-+ '2', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '1', 'd', '_', 'v', '2', 'i',
-+ '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-+ 'u', 's', 't', '_', 'p', '_', '1', 'd', '_', 'v', '4', 'i', '1', '6', '_',
-+ 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-+ 't', '_', 'p', '_', '1', 'd', '_', 'v', '4', 'i', '3', '2', '_', 't', 'r',
-+ 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-+ 'p', '_', '1', 'd', '_', 'v', '4', 'i', '8', '_', 't', 'r', 'a', 'p', '\000',
-+ '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '2',
-+ 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '1', '6', '_', 't', 'r', 'a',
-+ 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p',
-+ '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '3', '2', '_', 't',
-+ 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-+ '_', 'p', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '8', '_',
-+ 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-+ 't', '_', 'p', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2',
-+ 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 's', 'u', 's', 't', '_', 'p', '_', '2', 'd', '_', 'a', 'r', 'r', 'a',
-+ 'y', '_', 'v', '2', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '2', 'd', '_',
-+ 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '8', '_', 't', 'r', 'a', 'p',
-+ '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_',
-+ '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '1', '6', '_',
-+ 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-+ 't', '_', 'p', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4',
-+ 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+ '_', 's', 'u', 's', 't', '_', 'p', '_', '2', 'd', '_', 'a', 'r', 'r', 'a',
-+ 'y', '_', 'v', '4', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '2', 'd', '_', 'i',
-+ '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 's', 'u', 's', 't', '_', 'p', '_', '2', 'd', '_', 'i', '3', '2', '_', 't',
-+ 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-+ '_', 'p', '_', '2', 'd', '_', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '2', 'd',
-+ '_', 'v', '2', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '2', 'd', '_', 'v',
-+ '2', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '2', 'd', '_', 'v', '2', 'i',
-+ '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-+ 'u', 's', 't', '_', 'p', '_', '2', 'd', '_', 'v', '4', 'i', '1', '6', '_',
-+ 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-+ 't', '_', 'p', '_', '2', 'd', '_', 'v', '4', 'i', '3', '2', '_', 't', 'r',
-+ 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-+ 'p', '_', '2', 'd', '_', 'v', '4', 'i', '8', '_', 't', 'r', 'a', 'p', '\000',
-+ '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '3',
-+ 'd', '_', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v',
-+ 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '3', 'd', '_', 'i', '3',
-+ '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-+ 'u', 's', 't', '_', 'p', '_', '3', 'd', '_', 'i', '8', '_', 't', 'r', 'a',
-+ 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p',
-+ '_', '3', 'd', '_', 'v', '2', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000',
-+ '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '3',
-+ 'd', '_', 'v', '2', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_',
-+ 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '3', 'd', '_',
-+ 'v', '2', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '3', 'd', '_', 'v', '4', 'i',
-+ '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+ 's', 'u', 's', 't', '_', 'p', '_', '3', 'd', '_', 'v', '4', 'i', '3', '2',
-+ '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-+ 's', 't', '_', 'p', '_', '3', 'd', '_', 'v', '4', 'i', '8', '_', 't', 'r',
-+ 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'w', 'a', 'p', '_',
-+ 'l', 'o', '_', 'h', 'i', '_', 'b', '6', '4', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 't', 'r', 'u', 'n', 'c', '_', 'd', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 't', 'r', 'u', 'n', 'c', '_', 'f', '\000', '_', '_', 'n', 'v', 'v',
-+ 'm', '_', 't', 'r', 'u', 'n', 'c', '_', 'f', 't', 'z', '_', 'f', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 't', 'x', 'q', '_', 'a', 'r', 'r', 'a', 'y',
-+ '_', 's', 'i', 'z', 'e', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 't', 'x',
-+ 'q', '_', 'c', 'h', 'a', 'n', 'n', 'e', 'l', '_', 'd', 'a', 't', 'a', '_',
-+ 't', 'y', 'p', 'e', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 't', 'x', 'q',
-+ '_', 'c', 'h', 'a', 'n', 'n', 'e', 'l', '_', 'o', 'r', 'd', 'e', 'r', '\000',
-+ '_', '_', 'n', 'v', 'v', 'm', '_', 't', 'x', 'q', '_', 'd', 'e', 'p', 't',
-+ 'h', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 't', 'x', 'q', '_', 'h', 'e',
-+ 'i', 'g', 'h', 't', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 't', 'x', 'q',
-+ '_', 'n', 'u', 'm', '_', 'm', 'i', 'p', 'm', 'a', 'p', '_', 'l', 'e', 'v',
-+ 'e', 'l', 's', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 't', 'x', 'q', '_',
-+ 'n', 'u', 'm', '_', 's', 'a', 'm', 'p', 'l', 'e', 's', '\000', '_', '_', 'n',
-+ 'v', 'v', 'm', '_', 't', 'x', 'q', '_', 'w', 'i', 'd', 't', 'h', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 'u', 'i', '2', 'd', '_', 'r', 'm', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 'u', 'i', '2', 'd', '_', 'r', 'n', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 'u', 'i', '2', 'd', '_', 'r', 'p', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 'u', 'i', '2', 'd', '_', 'r', 'z', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 'u', 'i', '2', 'f', '_', 'r', 'm', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 'u', 'i', '2', 'f', '_', 'r', 'n', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 'u', 'i', '2', 'f', '_', 'r', 'p', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 'u', 'i', '2', 'f', '_', 'r', 'z', '\000', '_',
-+ '_', 'n', 'v', 'v', 'm', '_', 'u', 'l', 'l', '2', 'd', '_', 'r', 'm', '\000',
-+ '_', '_', 'n', 'v', 'v', 'm', '_', 'u', 'l', 'l', '2', 'd', '_', 'r', 'n',
-+ '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'u', 'l', 'l', '2', 'd', '_', 'r',
-+ 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'u', 'l', 'l', '2', 'd', '_',
-+ 'r', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'u', 'l', 'l', '2', 'f',
-+ '_', 'r', 'm', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'u', 'l', 'l', '2',
-+ 'f', '_', 'r', 'n', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'u', 'l', 'l',
-+ '2', 'f', '_', 'r', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'u', 'l',
-+ 'l', '2', 'f', '_', 'r', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'c', 'r', 'y', 'p', 't',
-+ 'o', '_', 'v', 'c', 'i', 'p', 'h', 'e', 'r', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'c', 'r',
-+ 'y', 'p', 't', 'o', '_', 'v', 'c', 'i', 'p', 'h', 'e', 'r', 'l', 'a', 's',
-+ 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
-+ 'i', 'v', 'e', 'c', '_', 'c', 'r', 'y', 'p', 't', 'o', '_', 'v', 'n', 'c',
-+ 'i', 'p', 'h', 'e', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'c', 'r', 'y', 'p', 't', 'o',
-+ '_', 'v', 'n', 'c', 'i', 'p', 'h', 'e', 'r', 'l', 'a', 's', 't', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+ 'c', '_', 'c', 'r', 'y', 'p', 't', 'o', '_', 'v', 'p', 'e', 'r', 'm', 'x',
-+ 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
-+ 't', 'i', 'v', 'e', 'c', '_', 'c', 'r', 'y', 'p', 't', 'o', '_', 'v', 'p',
-+ 'm', 's', 'u', 'm', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'c', 'r', 'y', 'p', 't', 'o',
-+ '_', 'v', 'p', 'm', 's', 'u', 'm', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'c', 'r', 'y',
-+ 'p', 't', 'o', '_', 'v', 'p', 'm', 's', 'u', 'm', 'h', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-+ 'c', 'r', 'y', 'p', 't', 'o', '_', 'v', 'p', 'm', 's', 'u', 'm', 'w', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-+ 'e', 'c', '_', 'c', 'r', 'y', 'p', 't', 'o', '_', 'v', 's', 'b', 'o', 'x',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-+ 'v', 'e', 'c', '_', 'c', 'r', 'y', 'p', 't', 'o', '_', 'v', 's', 'h', 'a',
-+ 's', 'i', 'g', 'm', 'a', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'c', 'r', 'y', 'p', 't',
-+ 'o', '_', 'v', 's', 'h', 'a', 's', 'i', 'g', 'm', 'a', 'w', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-+ '_', 'd', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'd', 's', 's', 'a', 'l', 'l', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-+ 'e', 'c', '_', 'd', 's', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'd', 's', 't', 's', 't',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-+ 'v', 'e', 'c', '_', 'd', 's', 't', 's', 't', 't', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'd',
-+ 's', 't', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+ 'l', 't', 'i', 'v', 'e', 'c', '_', 'm', 'f', 'v', 's', 'c', 'r', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+ 'c', '_', 'm', 't', 'v', 's', 'c', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'b',
-+ 's', 'd', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'b', 's', 'd', 'u', 'h',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-+ 'v', 'e', 'c', '_', 'v', 'a', 'b', 's', 'd', 'u', 'w', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-+ 'v', 'a', 'd', 'd', 'c', 'u', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'd', 'd',
-+ 'c', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+ 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'd', 'd', 'e', 'c', 'u', 'q',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-+ 'v', 'e', 'c', '_', 'v', 'a', 'd', 'd', 'e', 'u', 'q', 'm', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-+ '_', 'v', 'a', 'd', 'd', 's', 'b', 's', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'd',
-+ 'd', 's', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'd', 'd', 's', 'w', 's',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-+ 'v', 'e', 'c', '_', 'v', 'a', 'd', 'd', 'u', 'b', 's', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-+ 'v', 'a', 'd', 'd', 'u', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'd', 'd',
-+ 'u', 'w', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+ 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'v', 'g', 's', 'b', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+ 'c', '_', 'v', 'a', 'v', 'g', 's', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'v',
-+ 'g', 's', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+ 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'v', 'g', 'u', 'b', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+ 'c', '_', 'v', 'a', 'v', 'g', 'u', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'v',
-+ 'g', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+ 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'b', 'p', 'e', 'r', 'm', 'q', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-+ 'e', 'c', '_', 'v', 'c', 'f', 's', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'f',
-+ 'u', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
-+ 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'l', 'z', 'l', 's', 'b', 'b', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-+ 'e', 'c', '_', 'v', 'c', 'm', 'p', 'b', 'f', 'p', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-+ 'c', 'm', 'p', 'b', 'f', 'p', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm',
-+ 'p', 'e', 'q', 'f', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'e', 'q',
-+ 'f', 'p', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'e', 'q', 'u',
-+ 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
-+ 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'e', 'q', 'u', 'b', '_', 'p',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-+ 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'e', 'q', 'u', 'd', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-+ '_', 'v', 'c', 'm', 'p', 'e', 'q', 'u', 'd', '_', 'p', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-+ 'v', 'c', 'm', 'p', 'e', 'q', 'u', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm',
-+ 'p', 'e', 'q', 'u', 'h', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p',
-+ 'e', 'q', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'e', 'q', 'u',
-+ 'w', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+ 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 'e', 'f', 'p',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-+ 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 'e', 'f', 'p', '_', 'p', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-+ 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 't', 'f', 'p', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-+ 'v', 'c', 'm', 'p', 'g', 't', 'f', 'p', '_', 'p', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-+ 'c', 'm', 'p', 'g', 't', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p',
-+ 'g', 't', 's', 'b', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g',
-+ 't', 's', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+ 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 't', 's', 'd',
-+ '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
-+ 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 't', 's', 'h', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-+ 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 't', 's', 'h', '_', 'p', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+ 'c', '_', 'v', 'c', 'm', 'p', 'g', 't', 's', 'w', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-+ 'c', 'm', 'p', 'g', 't', 's', 'w', '_', 'p', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c',
-+ 'm', 'p', 'g', 't', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g',
-+ 't', 'u', 'b', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 't',
-+ 'u', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
-+ 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 't', 'u', 'd', '_',
-+ 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
-+ 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 't', 'u', 'h', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+ 'c', '_', 'v', 'c', 'm', 'p', 'g', 't', 'u', 'h', '_', 'p', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-+ '_', 'v', 'c', 'm', 'p', 'g', 't', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c',
-+ 'm', 'p', 'g', 't', 'u', 'w', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm',
-+ 'p', 'n', 'e', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'n', 'e', 'b',
-+ '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
-+ 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'n', 'e', 'h', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+ 'c', '_', 'v', 'c', 'm', 'p', 'n', 'e', 'h', '_', 'p', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-+ 'v', 'c', 'm', 'p', 'n', 'e', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p',
-+ 'n', 'e', 'w', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'n', 'e',
-+ 'z', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
-+ 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'n', 'e', 'z', 'b', '_',
-+ 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
-+ 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'n', 'e', 'z', 'h', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+ 'c', '_', 'v', 'c', 'm', 'p', 'n', 'e', 'z', 'h', '_', 'p', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-+ '_', 'v', 'c', 'm', 'p', 'n', 'e', 'z', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c',
-+ 'm', 'p', 'n', 'e', 'z', 'w', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 't',
-+ 's', 'x', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+ 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 't', 'u', 'x', 's', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+ 'c', '_', 'v', 'c', 't', 'z', 'l', 's', 'b', 'b', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-+ 'e', 'x', 'p', 't', 'e', 'f', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'g', 'b', 'b',
-+ 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
-+ 'i', 'v', 'e', 'c', '_', 'v', 'l', 'o', 'g', 'e', 'f', 'p', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-+ '_', 'v', 'm', 'a', 'd', 'd', 'f', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'a',
-+ 'x', 'f', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+ 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'a', 'x', 's', 'b', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+ 'c', '_', 'v', 'm', 'a', 'x', 's', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'a',
-+ 'x', 's', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+ 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'a', 'x', 's', 'w', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+ 'c', '_', 'v', 'm', 'a', 'x', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'a',
-+ 'x', 'u', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+ 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'a', 'x', 'u', 'h', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+ 'c', '_', 'v', 'm', 'a', 'x', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'h',
-+ 'a', 'd', 'd', 's', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'h', 'r', 'a',
-+ 'd', 'd', 's', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'i', 'n', 'f', 'p',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-+ 'v', 'e', 'c', '_', 'v', 'm', 'i', 'n', 's', 'b', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-+ 'm', 'i', 'n', 's', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'i', 'n', 's', 'h',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-+ 'v', 'e', 'c', '_', 'v', 'm', 'i', 'n', 's', 'w', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-+ 'm', 'i', 'n', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'i', 'n', 'u', 'd',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-+ 'v', 'e', 'c', '_', 'v', 'm', 'i', 'n', 'u', 'h', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-+ 'm', 'i', 'n', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'l', 'a', 'd', 'd',
-+ 'u', 'h', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+ 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 's', 'u', 'm', 'm', 'b', 'm',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-+ 'v', 'e', 'c', '_', 'v', 'm', 's', 'u', 'm', 's', 'h', 'm', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-+ '_', 'v', 'm', 's', 'u', 'm', 's', 'h', 's', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm',
-+ 's', 'u', 'm', 'u', 'b', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 's', 'u', 'm',
-+ 'u', 'h', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+ 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 's', 'u', 'm', 'u', 'h', 's',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-+ 'v', 'e', 'c', '_', 'v', 'm', 'u', 'l', 'e', 's', 'b', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-+ 'v', 'm', 'u', 'l', 'e', 's', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'u', 'l',
-+ 'e', 's', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+ 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'u', 'l', 'e', 'u', 'b', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-+ 'e', 'c', '_', 'v', 'm', 'u', 'l', 'e', 'u', 'h', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-+ 'm', 'u', 'l', 'e', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'u', 'l', 'o',
-+ 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
-+ 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'u', 'l', 'o', 's', 'h', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+ 'c', '_', 'v', 'm', 'u', 'l', 'o', 's', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm',
-+ 'u', 'l', 'o', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'u', 'l', 'o', 'u',
-+ 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
-+ 'i', 'v', 'e', 'c', '_', 'v', 'm', 'u', 'l', 'o', 'u', 'w', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-+ '_', 'v', 'n', 'm', 's', 'u', 'b', 'f', 'p', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'p',
-+ 'e', 'r', 'm', '_', '4', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'p', 'k', 'p',
-+ 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
-+ 'i', 'v', 'e', 'c', '_', 'v', 'p', 'k', 's', 'd', 's', 's', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-+ '_', 'v', 'p', 'k', 's', 'd', 'u', 's', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'p', 'k',
-+ 's', 'h', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'p', 'k', 's', 'h', 'u', 's',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-+ 'v', 'e', 'c', '_', 'v', 'p', 'k', 's', 'w', 's', 's', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-+ 'v', 'p', 'k', 's', 'w', 'u', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'p', 'k', 'u',
-+ 'd', 'u', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+ 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'p', 'k', 'u', 'h', 'u', 's', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-+ 'e', 'c', '_', 'v', 'p', 'k', 'u', 'w', 'u', 's', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-+ 'p', 'r', 't', 'y', 'b', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'p', 'r', 't', 'y',
-+ 'b', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
-+ 't', 'i', 'v', 'e', 'c', '_', 'v', 'p', 'r', 't', 'y', 'b', 'w', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+ 'c', '_', 'v', 'r', 'e', 'f', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'r', 'f', 'i',
-+ 'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
-+ 'i', 'v', 'e', 'c', '_', 'v', 'r', 'f', 'i', 'n', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-+ 'r', 'f', 'i', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'r', 'f', 'i', 'z', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+ 'c', '_', 'v', 'r', 'l', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'r', 'l', 'd', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-+ 'e', 'c', '_', 'v', 'r', 'l', 'd', 'm', 'i', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'r',
-+ 'l', 'd', 'n', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'r', 'l', 'h', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-+ '_', 'v', 'r', 'l', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'r', 'l', 'w', 'm', 'i',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-+ 'v', 'e', 'c', '_', 'v', 'r', 'l', 'w', 'n', 'm', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-+ 'r', 's', 'q', 'r', 't', 'e', 'f', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'e',
-+ 'l', '_', '4', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'l', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-+ '_', 'v', 's', 'l', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'l', 'h', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+ 'c', '_', 'v', 's', 'l', 'o', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'l', 'v', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-+ 'e', 'c', '_', 'v', 's', 'l', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'r', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-+ 'e', 'c', '_', 'v', 's', 'r', 'a', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'r',
-+ 'a', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
-+ 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'r', 'a', 'w', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-+ 'v', 's', 'r', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'r', 'h', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-+ '_', 'v', 's', 'r', 'o', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'r', 'v', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+ 'c', '_', 'v', 's', 'r', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'u', 'b', 'c',
-+ 'u', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
-+ 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'u', 'b', 'c', 'u', 'w', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+ 'c', '_', 'v', 's', 'u', 'b', 'e', 'c', 'u', 'q', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-+ 's', 'u', 'b', 'e', 'u', 'q', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'u', 'b',
-+ 's', 'b', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+ 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'u', 'b', 's', 'h', 's', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-+ 'e', 'c', '_', 'v', 's', 'u', 'b', 's', 'w', 's', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-+ 's', 'u', 'b', 'u', 'b', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'u', 'b', 'u',
-+ 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
-+ 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'u', 'b', 'u', 'w', 's', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+ 'c', '_', 'v', 's', 'u', 'm', '2', 's', 'w', 's', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-+ 's', 'u', 'm', '4', 's', 'b', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'u', 'm',
-+ '4', 's', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'u', 'm', '4', 'u', 'b',
-+ 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
-+ 'i', 'v', 'e', 'c', '_', 'v', 's', 'u', 'm', 's', 'w', 's', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-+ '_', 'v', 'u', 'p', 'k', 'h', 'p', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'u', 'p',
-+ 'k', 'h', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'u', 'p', 'k', 'h', 's', 'h',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-+ 'v', 'e', 'c', '_', 'v', 'u', 'p', 'k', 'h', 's', 'w', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-+ 'v', 'u', 'p', 'k', 'l', 'p', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'u', 'p', 'k',
-+ 'l', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+ 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'u', 'p', 'k', 'l', 's', 'h', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-+ 'e', 'c', '_', 'v', 'u', 'p', 'k', 'l', 's', 'w', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'b', 'p', 'e', 'r', 'm', 'd', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'd', 'i', 'v', 'd', 'e', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'd', 'i', 'v', 'd', 'e', 'u',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'd', 'i', 'v', 'w',
-+ 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'd', 'i', 'v',
-+ 'w', 'e', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'g',
-+ 'e', 't', '_', 't', 'e', 'x', 'a', 's', 'r', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'g', 'e', 't', '_', 't', 'e', 'x', 'a', 's', 'r',
-+ 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'g', 'e', 't',
-+ '_', 't', 'f', 'h', 'a', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'g', 'e', 't', '_', 't', 'f', 'i', 'a', 'r', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'a',
-+ 'b', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p',
-+ 'x', '_', 'q', 'v', 'f', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'a', 'd', 'd', 's',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_',
-+ 'q', 'v', 'f', 'c', 'f', 'i', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'c', 'f', 'i', 'd', 's',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_',
-+ 'q', 'v', 'f', 'c', 'f', 'i', 'd', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'c', 'f', 'i', 'd',
-+ 'u', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p',
-+ 'x', '_', 'q', 'v', 'f', 'c', 'm', 'p', 'e', 'q', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'c', 'm',
-+ 'p', 'g', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q',
-+ 'p', 'x', '_', 'q', 'v', 'f', 'c', 'm', 'p', 'l', 't', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'c',
-+ 'p', 's', 'g', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'q', 'p', 'x', '_', 'q', 'v', 'f', 'c', 't', 'i', 'd', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'c',
-+ 't', 'i', 'd', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'q', 'p', 'x', '_', 'q', 'v', 'f', 'c', 't', 'i', 'd', 'u', 'z', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v',
-+ 'f', 'c', 't', 'i', 'd', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'c', 't', 'i', 'w', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v',
-+ 'f', 'c', 't', 'i', 'w', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'c', 't', 'i', 'w', 'u', 'z',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_',
-+ 'q', 'v', 'f', 'c', 't', 'i', 'w', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'l', 'o', 'g', 'i',
-+ 'c', 'a', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q',
-+ 'p', 'x', '_', 'q', 'v', 'f', 'm', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'm', 'a',
-+ 'd', 'd', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q',
-+ 'p', 'x', '_', 'q', 'v', 'f', 'm', 's', 'u', 'b', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'm', 's',
-+ 'u', 'b', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q',
-+ 'p', 'x', '_', 'q', 'v', 'f', 'm', 'u', 'l', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'm', 'u', 'l',
-+ 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x',
-+ '_', 'q', 'v', 'f', 'n', 'a', 'b', 's', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'n', 'e', 'g', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q',
-+ 'v', 'f', 'n', 'm', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'n', 'm', 'a', 'd', 'd',
-+ 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x',
-+ '_', 'q', 'v', 'f', 'n', 'm', 's', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'n', 'm', 's',
-+ 'u', 'b', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q',
-+ 'p', 'x', '_', 'q', 'v', 'f', 'p', 'e', 'r', 'm', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'r', 'e',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_',
-+ 'q', 'v', 'f', 'r', 'e', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'r', 'i', 'm', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f',
-+ 'r', 'i', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q',
-+ 'p', 'x', '_', 'q', 'v', 'f', 'r', 'i', 'p', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'r', 'i', 'z',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_',
-+ 'q', 'v', 'f', 'r', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'r', 's', 'q', 'r', 't', 'e',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_',
-+ 'q', 'v', 'f', 'r', 's', 'q', 'r', 't', 'e', 's', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 's', 'e',
-+ 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x',
-+ '_', 'q', 'v', 'f', 's', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 's', 'u', 'b', 's', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q',
-+ 'v', 'f', 't', 's', 't', 'n', 'a', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'x', 'm', 'a', 'd',
-+ 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x',
-+ '_', 'q', 'v', 'f', 'x', 'm', 'a', 'd', 'd', 's', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'x', 'm',
-+ 'u', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p',
-+ 'x', '_', 'q', 'v', 'f', 'x', 'm', 'u', 'l', 's', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'x', 'x',
-+ 'c', 'p', 'n', 'm', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'x', 'x', 'c', 'p', 'n',
-+ 'm', 'a', 'd', 'd', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'x', 'x', 'm', 'a', 'd', 'd', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q',
-+ 'v', 'f', 'x', 'x', 'm', 'a', 'd', 'd', 's', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'x', 'x', 'n',
-+ 'p', 'm', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'x', 'x', 'n', 'p', 'm', 'a', 'd',
-+ 'd', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p',
-+ 'x', '_', 'q', 'v', 'g', 'p', 'c', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'l', 'f', 'c', 'd', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q',
-+ 'v', 'l', 'f', 'c', 'd', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'l', 'f', 'c', 's', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'l',
-+ 'f', 'c', 's', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'q', 'p', 'x', '_', 'q', 'v', 'l', 'f', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'l', 'f', 'd', 'a',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_',
-+ 'q', 'v', 'l', 'f', 'i', 'w', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'l', 'f', 'i', 'w', 'a', 'a',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_',
-+ 'q', 'v', 'l', 'f', 'i', 'w', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'l', 'f', 'i', 'w', 'z', 'a',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_',
-+ 'q', 'v', 'l', 'f', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'q', 'p', 'x', '_', 'q', 'v', 'l', 'f', 's', 'a', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'l', 'p',
-+ 'c', 'l', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q',
-+ 'p', 'x', '_', 'q', 'v', 'l', 'p', 'c', 'l', 's', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'l', 'p', 'c',
-+ 'r', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p',
-+ 'x', '_', 'q', 'v', 'l', 'p', 'c', 'r', 's', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 's', 't', 'f', 'c',
-+ 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x',
-+ '_', 'q', 'v', 's', 't', 'f', 'c', 'd', 'a', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 's', 't', 'f', 'c',
-+ 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x',
-+ '_', 'q', 'v', 's', 't', 'f', 'c', 's', 'a', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 's', 't', 'f', 'd',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_',
-+ 'q', 'v', 's', 't', 'f', 'd', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 's', 't', 'f', 'i', 'w', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q',
-+ 'v', 's', 't', 'f', 'i', 'w', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 's', 't', 'f', 's', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v',
-+ 's', 't', 'f', 's', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 's', 'e', 't', '_', 't', 'e', 'x', 'a', 's', 'r', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 's', 'e', 't', '_', 't', 'e', 'x', 'a',
-+ 's', 'r', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-+ 'e', 't', '_', 't', 'f', 'h', 'a', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 's', 'e', 't', '_', 't', 'f', 'i', 'a', 'r', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't', 'a', 'b', 'o', 'r', 't',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't', 'a', 'b', 'o',
-+ 'r', 't', 'd', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 't', 'a', 'b', 'o', 'r', 't', 'd', 'c', 'i', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 't', 'a', 'b', 'o', 'r', 't', 'w', 'c', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't', 'a', 'b', 'o', 'r', 't',
-+ 'w', 'c', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't',
-+ 'b', 'e', 'g', 'i', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 't', 'c', 'h', 'e', 'c', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 't', 'e', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 't', 'e', 'n', 'd', 'a', 'l', 'l', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 't', 'r', 'e', 'c', 'h', 'k', 'p', 't', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't', 'r', 'e', 'c', 'l',
-+ 'a', 'i', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't',
-+ 'r', 'e', 's', 'u', 'm', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 't', 's', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 't', 's', 'u', 's', 'p', 'e', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 't', 't', 'e', 's', 't', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 's', 'm', 'a', 'x',
-+ 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's',
-+ 'x', '_', 'x', 's', 'm', 'i', 'n', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'm', 'p', 'e',
-+ 'q', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v',
-+ 's', 'x', '_', 'x', 'v', 'c', 'm', 'p', 'e', 'q', 'd', 'p', '_', 'p', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x',
-+ 'v', 'c', 'm', 'p', 'e', 'q', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'm', 'p', 'e', 'q',
-+ 's', 'p', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'v', 's', 'x', '_', 'x', 'v', 'c', 'm', 'p', 'g', 'e', 'd', 'p', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v',
-+ 'c', 'm', 'p', 'g', 'e', 'd', 'p', '_', 'p', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'm', 'p', 'g',
-+ 'e', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v',
-+ 's', 'x', '_', 'x', 'v', 'c', 'm', 'p', 'g', 'e', 's', 'p', '_', 'p', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x',
-+ 'v', 'c', 'm', 'p', 'g', 't', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'm', 'p', 'g', 't',
-+ 'd', 'p', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'v', 's', 'x', '_', 'x', 'v', 'c', 'm', 'p', 'g', 't', 's', 'p', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v',
-+ 'c', 'm', 'p', 'g', 't', 's', 'p', '_', 'p', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'v', 'd', 'p',
-+ 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's',
-+ 'x', '_', 'x', 'v', 'c', 'v', 'd', 'p', 's', 'x', 'w', 's', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c',
-+ 'v', 'd', 'p', 'u', 'x', 'w', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'v', 'h', 'p', 's', 'p',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_',
-+ 'x', 'v', 'c', 'v', 's', 'p', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'v', 's', 'p', 'h',
-+ 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x',
-+ '_', 'x', 'v', 'c', 'v', 's', 'x', 'd', 's', 'p', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'v', 's',
-+ 'x', 'w', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'v', 's', 'x', '_', 'x', 'v', 'c', 'v', 'u', 'x', 'd', 's', 'p', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v',
-+ 'c', 'v', 'u', 'x', 'w', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'd', 'i', 'v', 'd', 'p', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x',
-+ 'v', 'd', 'i', 'v', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'i', 'e', 'x', 'p', 'd', 'p', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x',
-+ 'v', 'i', 'e', 'x', 'p', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'm', 'a', 'x', 'd', 'p', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x',
-+ 'v', 'm', 'a', 'x', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'm', 'i', 'n', 'd', 'p', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v',
-+ 'm', 'i', 'n', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'v', 's', 'x', '_', 'x', 'v', 'r', 'e', 'd', 'p', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'r', 'e',
-+ 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's',
-+ 'x', '_', 'x', 'v', 'r', 's', 'q', 'r', 't', 'e', 'd', 'p', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'r',
-+ 's', 'q', 'r', 't', 'e', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 't', 's', 't', 'd', 'c', 'd',
-+ 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x',
-+ '_', 'x', 'v', 't', 's', 't', 'd', 'c', 's', 'p', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'x', 'e', 'x',
-+ 'p', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v',
-+ 's', 'x', '_', 'x', 'v', 'x', 'e', 'x', 'p', 's', 'p', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'x', 's',
-+ 'i', 'g', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'v', 's', 'x', '_', 'x', 'v', 'x', 's', 'i', 'g', 's', 'p', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'x', 'e',
-+ 'x', 't', 'r', 'a', 'c', 't', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'x', 'i', 'n', 's', 'e', 'r',
-+ 't', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's',
-+ 'x', '_', 'x', 'x', 'l', 'e', 'q', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'r', '6', '0', '0', '_', 'g', 'r', 'o', 'u', 'p', '_',
-+ 'b', 'a', 'r', 'r', 'i', 'e', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'r', '6', '0', '0', '_', 'i', 'm', 'p', 'l', 'i', 'c', 'i',
-+ 't', 'a', 'r', 'g', '_', 'p', 't', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'r', '6', '0', '0', '_', 'r', 'a', 't', '_', 's', 't',
-+ 'o', 'r', 'e', '_', 't', 'y', 'p', 'e', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'r', '6', '0', '0', '_', 'r', 'e', 'a', 'd', '_',
-+ 'g', 'l', 'o', 'b', 'a', 'l', '_', 's', 'i', 'z', 'e', '_', 'x', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'r', '6', '0', '0', '_', 'r',
-+ 'e', 'a', 'd', '_', 'g', 'l', 'o', 'b', 'a', 'l', '_', 's', 'i', 'z', 'e',
-+ '_', 'y', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'r', '6',
-+ '0', '0', '_', 'r', 'e', 'a', 'd', '_', 'g', 'l', 'o', 'b', 'a', 'l', '_',
-+ 's', 'i', 'z', 'e', '_', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'r', '6', '0', '0', '_', 'r', 'e', 'a', 'd', '_', 'n', 'g', 'r',
-+ 'o', 'u', 'p', 's', '_', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'r', '6', '0', '0', '_', 'r', 'e', 'a', 'd', '_', 'n', 'g', 'r',
-+ 'o', 'u', 'p', 's', '_', 'y', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'r', '6', '0', '0', '_', 'r', 'e', 'a', 'd', '_', 'n', 'g', 'r',
-+ 'o', 'u', 'p', 's', '_', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'r', '6', '0', '0', '_', 'r', 'e', 'a', 'd', '_', 't', 'g', 'i',
-+ 'd', '_', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'r',
-+ '6', '0', '0', '_', 'r', 'e', 'a', 'd', '_', 't', 'g', 'i', 'd', '_', 'y',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'r', '6', '0', '0',
-+ '_', 'r', 'e', 'a', 'd', '_', 't', 'g', 'i', 'd', '_', 'z', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'e', 'f',
-+ 'p', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't', 'x',
-+ '_', 'n', 'e', 's', 't', 'i', 'n', 'g', '_', 'd', 'e', 'p', 't', 'h', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
-+ 'l', 'c', 'b', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 't', 'x', '_', 'a', 's', 's', 'i', 's', 't', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 's', 'f', 'p', 'c', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
-+ 'v', 'a', 'c', 'c', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 's', '3', '9', '0', '_', 'v', 'a', 'c', 'c', 'c', 'q', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'a',
-+ 'c', 'c', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-+ '3', '9', '0', '_', 'v', 'a', 'c', 'c', 'g', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'a', 'c', 'c', 'h',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-+ '_', 'v', 'a', 'c', 'c', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 's', '3', '9', '0', '_', 'v', 'a', 'c', 'q', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'a', 'q',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-+ '_', 'v', 'a', 'v', 'g', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 's', '3', '9', '0', '_', 'v', 'a', 'v', 'g', 'f', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'a',
-+ 'v', 'g', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-+ '3', '9', '0', '_', 'v', 'a', 'v', 'g', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'a', 'v', 'g', 'l',
-+ 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9',
-+ '0', '_', 'v', 'a', 'v', 'g', 'l', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'a', 'v', 'g', 'l', 'g',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-+ '_', 'v', 'a', 'v', 'g', 'l', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'c', 'k', 's', 'm', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-+ 'e', 'r', 'i', 'm', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 's', '3', '9', '0', '_', 'v', 'e', 'r', 'i', 'm', 'f', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'e',
-+ 'r', 'i', 'm', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 's', '3', '9', '0', '_', 'v', 'e', 'r', 'i', 'm', 'h', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'e', 'r',
-+ 'l', 'l', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-+ '3', '9', '0', '_', 'v', 'e', 'r', 'l', 'l', 'f', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'e', 'r', 'l',
-+ 'l', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3',
-+ '9', '0', '_', 'v', 'e', 'r', 'l', 'l', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'e', 'r', 'l', 'l',
-+ 'v', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3',
-+ '9', '0', '_', 'v', 'e', 'r', 'l', 'l', 'v', 'f', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'e', 'r', 'l',
-+ 'l', 'v', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-+ '3', '9', '0', '_', 'v', 'e', 'r', 'l', 'l', 'v', 'h', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'f', 'a',
-+ 'e', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3',
-+ '9', '0', '_', 'v', 'f', 'a', 'e', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'f', 'a', 'e', 'h', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
-+ 'v', 'f', 'a', 'e', 'z', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 's', '3', '9', '0', '_', 'v', 'f', 'a', 'e', 'z', 'f', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-+ 'f', 'a', 'e', 'z', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 's', '3', '9', '0', '_', 'v', 'f', 'e', 'e', 'b', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'f', 'e',
-+ 'e', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3',
-+ '9', '0', '_', 'v', 'f', 'e', 'e', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'f', 'e', 'e', 'z', 'b',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-+ '_', 'v', 'f', 'e', 'e', 'z', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'f', 'e', 'e', 'z', 'h', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
-+ 'v', 'f', 'e', 'n', 'e', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 's', '3', '9', '0', '_', 'v', 'f', 'e', 'n', 'e', 'f', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-+ 'f', 'e', 'n', 'e', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 's', '3', '9', '0', '_', 'v', 'f', 'e', 'n', 'e', 'z', 'b', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-+ 'f', 'e', 'n', 'e', 'z', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 's', '3', '9', '0', '_', 'v', 'f', 'e', 'n', 'e', 'z', 'h', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
-+ 'v', 'g', 'f', 'm', 'a', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 's', '3', '9', '0', '_', 'v', 'g', 'f', 'm', 'a', 'f', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-+ 'g', 'f', 'm', 'a', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 's', '3', '9', '0', '_', 'v', 'g', 'f', 'm', 'a', 'h', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'g',
-+ 'f', 'm', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-+ '3', '9', '0', '_', 'v', 'g', 'f', 'm', 'f', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'g', 'f', 'm', 'g',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-+ '_', 'v', 'g', 'f', 'm', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 's', '3', '9', '0', '_', 'v', 'i', 's', 't', 'r', 'b', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-+ 'i', 's', 't', 'r', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 's', '3', '9', '0', '_', 'v', 'i', 's', 't', 'r', 'h', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'l',
-+ 'b', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3',
-+ '9', '0', '_', 'v', 'l', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'a', 'e', 'b', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm',
-+ 'a', 'e', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-+ '3', '9', '0', '_', 'v', 'm', 'a', 'e', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'a', 'h', 'b',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-+ '_', 'v', 'm', 'a', 'h', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'a', 'h', 'h', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm',
-+ 'a', 'l', 'e', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 's', '3', '9', '0', '_', 'v', 'm', 'a', 'l', 'e', 'f', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'a',
-+ 'l', 'e', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-+ '3', '9', '0', '_', 'v', 'm', 'a', 'l', 'h', 'b', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'a', 'l',
-+ 'h', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3',
-+ '9', '0', '_', 'v', 'm', 'a', 'l', 'h', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'a', 'l', 'o',
-+ 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9',
-+ '0', '_', 'v', 'm', 'a', 'l', 'o', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'a', 'l', 'o', 'h',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-+ '_', 'v', 'm', 'a', 'o', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'a', 'o', 'f', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm',
-+ 'a', 'o', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-+ '3', '9', '0', '_', 'v', 'm', 'e', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'e', 'f', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-+ 'm', 'e', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-+ '3', '9', '0', '_', 'v', 'm', 'h', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'h', 'f', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-+ 'm', 'h', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-+ '3', '9', '0', '_', 'v', 'm', 'l', 'e', 'b', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'l', 'e', 'f',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-+ '_', 'v', 'm', 'l', 'e', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'l', 'h', 'b', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm',
-+ 'l', 'h', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-+ '3', '9', '0', '_', 'v', 'm', 'l', 'h', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'l', 'o', 'b',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-+ '_', 'v', 'm', 'l', 'o', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'l', 'o', 'h', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm',
-+ 'o', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3',
-+ '9', '0', '_', 'v', 'm', 'o', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'o', 'h', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'p',
-+ 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3',
-+ '9', '0', '_', 'v', 'p', 'e', 'r', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'p', 'k', 'l', 's', 'f',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-+ '_', 'v', 'p', 'k', 'l', 's', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'p', 'k', 'l', 's', 'h', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
-+ 'v', 'p', 'k', 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 's', '3', '9', '0', '_', 'v', 'p', 'k', 's', 'g', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'p', 'k',
-+ 's', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3',
-+ '9', '0', '_', 'v', 's', 'b', 'c', 'b', 'i', 'q', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'b', 'i',
-+ 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9',
-+ '0', '_', 'v', 's', 'c', 'b', 'i', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'c', 'b', 'i', 'f',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-+ '_', 'v', 's', 'c', 'b', 'i', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'c', 'b', 'i', 'h', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
-+ 'v', 's', 'c', 'b', 'i', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'l', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'l', 'b',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-+ '_', 'v', 's', 'l', 'd', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'q', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'r', 'a',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-+ '_', 'v', 's', 'r', 'a', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'r', 'l', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'r',
-+ 'l', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3',
-+ '9', '0', '_', 'v', 's', 't', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 't', 'r', 'c', 'b', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
-+ 'v', 's', 't', 'r', 'c', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 't', 'r', 'c', 'h', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-+ 's', 't', 'r', 'c', 'z', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 't', 'r', 'c', 'z', 'f', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
-+ 'v', 's', 't', 'r', 'c', 'z', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'u', 'm', 'b', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-+ 's', 'u', 'm', 'g', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 's', '3', '9', '0', '_', 'v', 's', 'u', 'm', 'g', 'h', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's',
-+ 'u', 'm', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-+ '3', '9', '0', '_', 'v', 's', 'u', 'm', 'q', 'f', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'u', 'm',
-+ 'q', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3',
-+ '9', '0', '_', 'v', 't', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 's', '3', '9', '0', '_', 'v', 'u', 'p', 'h', 'b', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'u',
-+ 'p', 'h', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-+ '3', '9', '0', '_', 'v', 'u', 'p', 'h', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'u', 'p', 'l', 'b',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-+ '_', 'v', 'u', 'p', 'l', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 's', '3', '9', '0', '_', 'v', 'u', 'p', 'l', 'h', 'b', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-+ 'u', 'p', 'l', 'h', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 's', '3', '9', '0', '_', 'v', 'u', 'p', 'l', 'h', 'h', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'u',
-+ 'p', 'l', 'h', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 's', '3', '9', '0', '_', 'v', 'u', 'p', 'l', 'l', 'b', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'u', 'p',
-+ 'l', 'l', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-+ '3', '9', '0', '_', 'v', 'u', 'p', 'l', 'l', 'h', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'v', 'g',
-+ 'u', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'p', 'f', '2', 'i', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f', 'a', 'c', 'c',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'p', 'f', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f', 'c', 'm', 'p', 'e', 'q', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'p', 'f', 'c', 'm', 'p', 'g', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f', 'c', 'm', 'p', 'g', 't',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'p', 'f', 'm', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f', 'm', 'i', 'n', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f',
-+ 'm', 'u', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'p', 'f', 'r', 'c', 'p', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f', 'r', 'c', 'p',
-+ 'i', 't', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'p', 'f', 'r', 'c', 'p', 'i', 't', '2', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f',
-+ 'r', 's', 'q', 'i', 't', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f', 'r', 's', 'q', 'r', 't', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'p', 'f', 's', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'p', 'f', 's', 'u', 'b', 'r', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'i',
-+ '2', 'f', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'r', 'w', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f', '2',
-+ 'i', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'p', 'f', 'n', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f', 'p', 'n', 'a',
-+ 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'p', 'i', '2', 'f', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'd', 'd', 'c', 'a', 'r',
-+ 'r', 'y', '_', 'u', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'd', 'd', 'c', 'a', 'r', 'r', 'y',
-+ '_', 'u', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'a', 'd', 'd', 'c', 'a', 'r', 'r', 'y', 'x', '_',
-+ 'u', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'a', 'd', 'd', 'c', 'a', 'r', 'r', 'y', 'x', '_', 'u',
-+ '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'a', 'e', 's', 'd', 'e', 'c', '1', '2', '8', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'e',
-+ 's', 'd', 'e', 'c', 'l', 'a', 's', 't', '1', '2', '8', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'e', 's',
-+ 'e', 'n', 'c', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'e', 's', 'e', 'n', 'c', 'l', 'a',
-+ 's', 't', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'a', 'e', 's', 'i', 'm', 'c', '1', '2', '8',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'a', 'e', 's', 'k', 'e', 'y', 'g', 'e', 'n', 'a', 's', 's', 'i', 's',
-+ 't', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'a', 'd', 'd', 's', 'u', 'b', 'p', 'd', '2', '5',
-+ '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'a', 'd', 'd', 's', 'u', 'b', 'p', 's', '2', '5', '6', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b',
-+ 'l', 'e', 'n', 'd', 'v', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'l', 'e', 'n',
-+ 'd', 'v', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'p',
-+ 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'd', 'q', '2', '5',
-+ '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'c', 'v', 't', 'p', 's', '2', 'd', 'q', '2', '5', '6', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-+ 'v', 't', 'd', 'q', '2', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't',
-+ 'p', 'd', '2', 'd', 'q', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 's',
-+ '2', 'd', 'q', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'd', 'p', 'p', 's', '2', '5', '6', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'h', 'a', 'd', 'd', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'h', 'a', 'd', 'd', 'p',
-+ 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'h', 's', 'u', 'b', 'p', 'd', '2', '5', '6', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'h', 's', 'u', 'b', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'l', 'd', 'd', 'q', 'u',
-+ '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'm', 'a', 's', 'k', 'l', 'o', 'a', 'd', 'p', 'd', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'm', 'a', 's', 'k', 'l', 'o', 'a', 'd', 'p', 'd', '2', '5', '6', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm',
-+ 'a', 's', 'k', 'l', 'o', 'a', 'd', 'p', 's', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k', 'l',
-+ 'o', 'a', 'd', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k', 's', 't',
-+ 'o', 'r', 'e', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k', 's', 't', 'o', 'r', 'e',
-+ 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k', 's', 't', 'o', 'r', 'e',
-+ 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'm', 'a', 's', 'k', 's', 't', 'o', 'r', 'e', 'p', 's', '2',
-+ '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'm', 'a', 'x', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 'x',
-+ 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'm', 'i', 'n', 'p', 'd', '2', '5', '6', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'm', 'i', 'n', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'o', 'v', 'm', 's', 'k',
-+ 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'm', 'o', 'v', 'm', 's', 'k', 'p', 's', '2',
-+ '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'p', 't', 'e', 's', 't', 'c', '2', '5', '6', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't',
-+ 'e', 's', 't', 'n', 'z', 'c', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't',
-+ 'z', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'r', 'c', 'p', 'p', 's', '2', '5', '6', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r',
-+ 'o', 'u', 'n', 'd', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'o', 'u', 'n', 'd',
-+ 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'r', 's', 'q', 'r', 't', 'p', 's', '2', '5',
-+ '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 's', 'q', 'r', 't', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'q', 'r',
-+ 't', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', '2', 'f', '1',
-+ '2', '8', '_', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', '2',
-+ 'f', '1', '2', '8', '_', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r',
-+ 'm', '2', 'f', '1', '2', '8', '_', 's', 'i', '2', '5', '6', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
-+ 'e', 'r', 'm', 'i', 'l', 'v', 'a', 'r', 'p', 'd', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r',
-+ 'm', 'i', 'l', 'v', 'a', 'r', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e',
-+ 'r', 'm', 'i', 'l', 'v', 'a', 'r', 'p', 's', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm',
-+ 'i', 'l', 'v', 'a', 'r', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 't', 'e', 's',
-+ 't', 'c', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'v', 't', 'e', 's', 't', 'c', 'p', 'd', '2', '5',
-+ '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'v', 't', 'e', 's', 't', 'c', 'p', 's', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 't', 'e', 's',
-+ 't', 'c', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 't', 'e', 's', 't', 'n', 'z',
-+ 'c', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'v', 't', 'e', 's', 't', 'n', 'z', 'c', 'p', 'd', '2',
-+ '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'v', 't', 'e', 's', 't', 'n', 'z', 'c', 'p', 's', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-+ 't', 'e', 's', 't', 'n', 'z', 'c', 'p', 's', '2', '5', '6', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 't',
-+ 'e', 's', 't', 'z', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'v', 't', 'e', 's', 't', 'z', 'p', 'd',
-+ '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'v', 't', 'e', 's', 't', 'z', 'p', 's', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 't',
-+ 'e', 's', 't', 'z', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'z', 'e', 'r', 'o',
-+ 'a', 'l', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'v', 'z', 'e', 'r', 'o', 'u', 'p', 'p', 'e', 'r', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'g', 'a', 't', 'h', 'e', 'r', 'd', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e',
-+ 'r', 'd', '_', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'd',
-+ '_', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'd', '_', 'p', 'd', '2',
-+ '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'd', '_', 'p', 's', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g',
-+ 'a', 't', 'h', 'e', 'r', 'd', '_', 'p', 's', '2', '5', '6', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a',
-+ 't', 'h', 'e', 'r', 'd', '_', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'd',
-+ '_', 'q', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'q', '_', 'd',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'g', 'a', 't', 'h', 'e', 'r', 'q', '_', 'd', '2', '5', '6', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g',
-+ 'a', 't', 'h', 'e', 'r', 'q', '_', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e',
-+ 'r', 'q', '_', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r',
-+ 'q', '_', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'q', '_', 'p', 's',
-+ '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'q', '_', 'q', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g',
-+ 'a', 't', 'h', 'e', 'r', 'q', '_', 'q', '2', '5', '6', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's',
-+ 'k', 'l', 'o', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k', 'l', 'o', 'a', 'd',
-+ 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k', 'l', 'o', 'a', 'd', 'q', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'm', 'a', 's', 'k', 'l', 'o', 'a', 'd', 'q', '2', '5', '6', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a',
-+ 's', 'k', 's', 't', 'o', 'r', 'e', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k', 's', 't',
-+ 'o', 'r', 'e', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k', 's', 't', 'o',
-+ 'r', 'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'm', 'a', 's', 'k', 's', 't', 'o', 'r', 'e', 'q', '2',
-+ '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'm', 'o', 'v', 'n', 't', 'd', 'q', 'a', '2', '5', '6', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'm', 'p', 's', 'a', 'd', 'b', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b', 's',
-+ 'b', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 'a', 'b', 's', 'd', '2', '5', '6', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'a', 'b', 's', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 's', 's', 'd',
-+ 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 's', 's', 'w', 'b', '2', '5',
-+ '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'a', 'c', 'k', 'u', 's', 'd', 'w', '2', '5', '6', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'a', 'c', 'k', 'u', 's', 'w', 'b', '2', '5', '6', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd',
-+ 's', 'b', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd', 's', 'w', '2', '5', '6',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'p', 'a', 'd', 'd', 'u', 's', 'b', '2', '5', '6', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd',
-+ 'd', 'u', 's', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'v', 'g', 'b', '2', '5',
-+ '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'a', 'v', 'g', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'b', 'l', 'e',
-+ 'n', 'd', 'v', 'b', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'r', 'm', 'v', 'a', 'r',
-+ 's', 'i', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'r', 'm', 'v', 'a', 'r', 's', 'f',
-+ '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'p', 'h', 'a', 'd', 'd', 'd', '2', '5', '6', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'h', 'a', 'd', 'd', 's', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'h', 'a', 'd', 'd',
-+ 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 'h', 's', 'u', 'b', 'd', '2', '5', '6', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'p', 'h', 's', 'u', 'b', 's', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'h', 's', 'u',
-+ 'b', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'a', 'd', 'd', 'u', 'b', 's', 'w',
-+ '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'p', 'm', 'a', 'd', 'd', 'w', 'd', '2', '5', '6', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'p', 'm', 'o', 'v', 'm', 's', 'k', 'b', '2', '5', '6', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u',
-+ 'l', 'd', 'q', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'r', 's', 'w',
-+ '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'w', '2', '5', '6', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'm', 'u', 'l', 'h', 'u', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'u',
-+ 'd', 'q', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'p', 's', 'a', 'd', 'b', 'w', '2', '5', '6',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'p', 's', 'h', 'u', 'f', 'b', '2', '5', '6', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'i', 'g',
-+ 'n', 'b', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'p', 's', 'i', 'g', 'n', 'd', '2', '5', '6',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'p', 's', 'i', 'g', 'n', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l',
-+ 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'q', '2', '5', '6', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 's', 'l', 'l', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'd', 'i', '2',
-+ '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'p', 's', 'l', 'l', 'q', 'i', '2', '5', '6', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's',
-+ 'l', 'l', 'w', 'i', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'v', '4', 's',
-+ 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 's', 'l', 'l', 'v', '8', 's', 'i', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l',
-+ 'v', '2', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'v', '4', 'd', 'i', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 's', 'r', 'a', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'w', '2', '5',
-+ '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 's', 'r', 'a', 'd', 'i', '2', '5', '6', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r',
-+ 'a', 'w', 'i', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'v', '4', 's', 'i',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'p', 's', 'r', 'a', 'v', '8', 's', 'i', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'd',
-+ '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'q', '2', '5', '6', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's',
-+ 'r', 'l', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'd', 'i', '2', '5',
-+ '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 's', 'r', 'l', 'q', 'i', '2', '5', '6', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r',
-+ 'l', 'w', 'i', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'v', '4', 's', 'i',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'p', 's', 'r', 'l', 'v', '8', 's', 'i', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'v',
-+ '2', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'v', '4', 'd', 'i', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's',
-+ 'u', 'b', 's', 'b', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b', 's', 'w', '2',
-+ '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'p', 's', 'u', 'b', 'u', 's', 'b', '2', '5', '6', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 's', 'u', 'b', 'u', 's', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'r', 'm', 't',
-+ 'i', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'm',
-+ 'b', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'm',
-+ 'b', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'm',
-+ 'b', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'm',
-+ 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'm',
-+ 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'm',
-+ 'w', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'b', '2', 'm', 'a', 's', 'k', '1',
-+ '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'c', 'v', 't', 'b', '2', 'm', 'a', 's', 'k', '2', '5', '6',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'c', 'v', 't', 'b', '2', 'm', 'a', 's', 'k', '5', '1', '2', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-+ 'v', 't', 'd', '2', 'm', 'a', 's', 'k', '1', '2', '8', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't',
-+ 'd', '2', 'm', 'a', 's', 'k', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'd', '2',
-+ 'm', 'a', 's', 'k', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'm', 'a', 's', 'k',
-+ '2', 'b', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'm', 'a', 's', 'k', '2', 'b',
-+ '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'c', 'v', 't', 'm', 'a', 's', 'k', '2', 'b', '5', '1',
-+ '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'c', 'v', 't', 'm', 'a', 's', 'k', '2', 'd', '1', '2', '8', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'c', 'v', 't', 'm', 'a', 's', 'k', '2', 'd', '2', '5', '6', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v',
-+ 't', 'm', 'a', 's', 'k', '2', 'd', '5', '1', '2', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'm',
-+ 'a', 's', 'k', '2', 'q', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'm', 'a', 's',
-+ 'k', '2', 'q', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'm', 'a', 's', 'k', '2',
-+ 'q', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'm', 'a', 's', 'k', '2', 'w', '1',
-+ '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'c', 'v', 't', 'm', 'a', 's', 'k', '2', 'w', '2', '5', '6',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'c', 'v', 't', 'm', 'a', 's', 'k', '2', 'w', '5', '1', '2', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-+ 'v', 't', 'q', '2', 'm', 'a', 's', 'k', '1', '2', '8', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't',
-+ 'q', '2', 'm', 'a', 's', 'k', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'q', '2',
-+ 'm', 'a', 's', 'k', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 's', 'i', '2', 's',
-+ 'd', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'c', 'v', 't', 's', 'i', '2', 's', 's', '3', '2', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'c', 'v', 't', 's', 'i', '2', 's', 's', '6', '4', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't',
-+ 't', 's', 'd', '2', 's', 'i', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 't', 's',
-+ 'd', '2', 's', 'i', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 't', 's', 'd', '2',
-+ 'u', 's', 'i', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 't', 's', 'd', '2', 'u',
-+ 's', 'i', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 't', 's', 's', '2', 's', 'i',
-+ '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'v', 'c', 'v', 't', 't', 's', 's', '2', 's', 'i', '6', '4',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'v', 'c', 'v', 't', 't', 's', 's', '2', 'u', 's', 'i', '3', '2', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'v', 'c', 'v', 't', 't', 's', 's', '2', 'u', 's', 'i', '6', '4', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-+ 'v', 't', 'u', 's', 'i', '2', 's', 'd', '3', '2', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'u',
-+ 's', 'i', '2', 's', 's', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'u', 's', 'i', '2',
-+ 's', 'd', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'u', 's', 'i', '2', 's', 's', '6',
-+ '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'c', 'v', 't', 'w', '2', 'm', 'a', 's', 'k', '1', '2', '8', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'c', 'v', 't', 'w', '2', 'm', 'a', 's', 'k', '2', '5', '6', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v',
-+ 't', 'w', '2', 'm', 'a', 's', 'k', '5', '1', '2', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', '2',
-+ 'p', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', '2', 'p', 's', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 's', 'i', 'v', '8',
-+ 'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 's', 'i', 'v', '1', '6', 's',
-+ 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 's', 'i', 'v', '8', 'd', 'i', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'g', 'a', 't', 'h', 'e', 'r', 's', 'i', 'v', '1', '6', 's', 'f', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g',
-+ 'a', 't', 'h', 'e', 'r', 'd', 'i', 'v', '8', 'd', 'f', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't',
-+ 'h', 'e', 'r', 'd', 'i', 'v', '1', '6', 's', 'i', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h',
-+ 'e', 'r', 'd', 'i', 'v', '8', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r',
-+ 'd', 'i', 'v', '1', '6', 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', '3',
-+ 'd', 'i', 'v', '2', 'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', '3', 'd',
-+ 'i', 'v', '2', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', '3', 'd', 'i',
-+ 'v', '4', 'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', '3', 'd', 'i', 'v',
-+ '4', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', '3', 'd', 'i', 'v', '4',
-+ 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', '3', 'd', 'i', 'v', '4', 's',
-+ 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'g', 'a', 't', 'h', 'e', 'r', '3', 'd', 'i', 'v', '8', 's', 'f',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'g', 'a', 't', 'h', 'e', 'r', '3', 'd', 'i', 'v', '8', 's', 'i', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'g', 'a', 't', 'h', 'e', 'r', '3', 's', 'i', 'v', '2', 'd', 'f', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g',
-+ 'a', 't', 'h', 'e', 'r', '3', 's', 'i', 'v', '2', 'd', 'i', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a',
-+ 't', 'h', 'e', 'r', '3', 's', 'i', 'v', '4', 'd', 'f', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't',
-+ 'h', 'e', 'r', '3', 's', 'i', 'v', '4', 'd', 'i', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h',
-+ 'e', 'r', '3', 's', 'i', 'v', '4', 's', 'f', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e',
-+ 'r', '3', 's', 'i', 'v', '4', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r',
-+ '3', 's', 'i', 'v', '8', 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', '3',
-+ 's', 'i', 'v', '8', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'p', 'f',
-+ 'd', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'p', 'f', 'd', 'p', 's',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'g', 'a', 't', 'h', 'e', 'r', 'p', 'f', 'q', 'p', 'd', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a',
-+ 't', 'h', 'e', 'r', 'p', 'f', 'q', 'p', 's', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'k', 'a', 'n', 'd', 'h',
-+ 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'k', 'a', 'n', 'd', 'n', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'k', 'n', 'o', 't', 'h',
-+ 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'k', 'o', 'r', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'k', 'o', 'r', 't', 'e', 's', 't',
-+ 'c', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'k', 'o', 'r', 't', 'e', 's', 't', 'z', 'h', 'i', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'k', 'u', 'n', 'p', 'c', 'k', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'k', 'u', 'n', 'p', 'c', 'k',
-+ 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'k', 'u', 'n', 'p', 'c', 'k', 's', 'i', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'k', 'x', 'n',
-+ 'o', 'r', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'k', 'x', 'o', 'r', 'h', 'i', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'd', 'd',
-+ 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'd', 'd', 'p',
-+ 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'd', 'd', 's', 'd',
-+ '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'd', 'd',
-+ 's', 's', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b',
-+ 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'f', '3', '2', 'x', '2', '_', '2',
-+ '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a',
-+ 's', 't', 'f', '3', '2', 'x', '2', '_', '5', '1', '2', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'f', '3', '2', 'x',
-+ '4', '_', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a',
-+ 'd', 'c', 'a', 's', 't', 'f', '3', '2', 'x', '4', '_', '5', '1', '2', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'f', '3', '2', 'x', '8', '_',
-+ '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c',
-+ 'a', 's', 't', 'f', '6', '4', 'x', '2', '_', '2', '5', '6', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'f', '6', '4',
-+ 'x', '2', '_', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o',
-+ 'a', 'd', 'c', 'a', 's', 't', 'f', '6', '4', 'x', '4', '_', '5', '1', '2',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'i', '3', '2', 'x', '2',
-+ '_', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd',
-+ 'c', 'a', 's', 't', 'i', '3', '2', 'x', '2', '_', '2', '5', '6', '_', 'm',
-+ 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'i', '3',
-+ '2', 'x', '2', '_', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r',
-+ 'o', 'a', 'd', 'c', 'a', 's', 't', 'i', '3', '2', 'x', '4', '_', '2', '5',
-+ '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's',
-+ 't', 'i', '3', '2', 'x', '4', '_', '5', '1', '2', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a',
-+ 'd', 'c', 'a', 's', 't', 'i', '3', '2', 'x', '8', '_', '5', '1', '2', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'i',
-+ '6', '4', 'x', '2', '_', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b',
-+ 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'i', '6', '4', 'x', '2', '_', '5',
-+ '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a',
-+ 's', 't', 'i', '6', '4', 'x', '4', '_', '5', '1', '2', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'm', 'p',
-+ 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'm', 'p', 'p',
-+ 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'm', 'p', 'p', 'd',
-+ '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'm', 'p', 'p', 's', '1',
-+ '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'm', 'p', 'p', 's', '2', '5',
-+ '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'm', 'p', 'p', 's', '5', '1', '2',
-+ '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'c', 'm', 'p', 's', 'd', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'c', 'm', 'p', 's', 's', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o',
-+ 'm', 'p', 'r', 'e', 's', 's', 's', 'i', '1', '2', '8', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 's', 'i', '2', '5', '6',
-+ '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 's',
-+ 'i', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r',
-+ 'e', 's', 's', 'd', 'f', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-+ 'o', 'm', 'p', 'r', 'e', 's', 's', 'd', 'f', '2', '5', '6', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 'd', 'f', '5', '1',
-+ '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's',
-+ 's', 'f', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p',
-+ 'r', 'e', 's', 's', 's', 'f', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 's', 'f', '5', '1', '2', '_', 'm',
-+ 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 'd', 'i', '1',
-+ '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's',
-+ 's', 'd', 'i', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm',
-+ 'p', 'r', 'e', 's', 's', 'd', 'i', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 's', 't', 'o', 'r', 'e', 's',
-+ 'i', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r',
-+ 'e', 's', 's', 's', 't', 'o', 'r', 'e', 's', 'i', '2', '5', '6', '_', 'm',
-+ 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 's', 't', 'o',
-+ 'r', 'e', 's', 'i', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o',
-+ 'm', 'p', 'r', 'e', 's', 's', 's', 't', 'o', 'r', 'e', 'd', 'f', '1', '2',
-+ '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's',
-+ 's', 't', 'o', 'r', 'e', 'd', 'f', '2', '5', '6', '_', 'm', 'a', 's', 'k',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 's', 't', 'o', 'r', 'e', 'd',
-+ 'f', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r',
-+ 'e', 's', 's', 's', 't', 'o', 'r', 'e', 's', 'f', '1', '2', '8', '_', 'm',
-+ 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 's', 't', 'o',
-+ 'r', 'e', 's', 'f', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o',
-+ 'm', 'p', 'r', 'e', 's', 's', 's', 't', 'o', 'r', 'e', 's', 'f', '5', '1',
-+ '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's',
-+ 's', 't', 'o', 'r', 'e', 'd', 'i', '1', '2', '8', '_', 'm', 'a', 's', 'k',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 's', 't', 'o', 'r', 'e', 'd',
-+ 'i', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r',
-+ 'e', 's', 's', 's', 't', 'o', 'r', 'e', 'd', 'i', '5', '1', '2', '_', 'm',
-+ 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'v', 'p', 'c', 'o', 'n', 'f', 'l', 'i', 'c', 't', 's',
-+ 'i', '_', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'c', 'o',
-+ 'n', 'f', 'l', 'i', 'c', 't', 's', 'i', '_', '2', '5', '6', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'v', 'p', 'c', 'o', 'n', 'f', 'l', 'i', 'c', 't', 's', 'i',
-+ '_', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'c', 'o', 'n',
-+ 'f', 'l', 'i', 'c', 't', 'd', 'i', '_', '1', '2', '8', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'v', 'p', 'c', 'o', 'n', 'f', 'l', 'i', 'c', 't', 'd', 'i', '_',
-+ '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'c', 'o', 'n', 'f',
-+ 'l', 'i', 'c', 't', 'd', 'i', '_', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'c', 'v', 't', 'd', 'q', '2', 'p', 's', '1', '2', '8', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'c', 'v', 't', 'd', 'q', '2', 'p', 's', '2', '5', '6', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'd', 'q', '2', 'p', 's', '5', '1',
-+ '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'd', 'q',
-+ '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2',
-+ 'd', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p',
-+ 'd', '2', 'd', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v',
-+ 't', 'p', 'd', '2', 'p', 's', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't',
-+ 'p', 'd', '2', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-+ 'v', 't', 'p', 'd', '2', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'c', 'v', 't', 'p', 'd', '2', 'q', 'q', '1', '2', '8', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'q', 'q', '2', '5', '6', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'q', 'q', '5', '1',
-+ '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'u', 'd',
-+ 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd',
-+ '2', 'u', 'd', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v',
-+ 't', 'p', 'd', '2', 'u', 'd', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'c', 'v', 't', 'p', 'd', '2', 'u', 'q', 'q', '1', '2', '8', '_', 'm',
-+ 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'u', 'q', 'q', '2', '5',
-+ '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'u', 'q',
-+ 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 's',
-+ '2', 'd', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't',
-+ 'p', 's', '2', 'd', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-+ 'v', 't', 'p', 's', '2', 'd', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'c', 'v', 't', 'p', 's', '2', 'p', 'd', '1', '2', '8', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'c', 'v', 't', 'p', 's', '2', 'p', 'd', '2', '5', '6', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 's', '2', 'p', 'd', '5', '1',
-+ '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 's', '2', 'q', 'q',
-+ '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 's', '2',
-+ 'q', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p',
-+ 's', '2', 'q', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v',
-+ 't', 'p', 's', '2', 'u', 'd', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'c', 'v', 't', 'p', 's', '2', 'u', 'd', 'q', '2', '5', '6', '_', 'm',
-+ 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'c', 'v', 't', 'p', 's', '2', 'u', 'd', 'q', '5', '1',
-+ '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 's', '2', 'u', 'q',
-+ 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 's',
-+ '2', 'u', 'q', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v',
-+ 't', 'p', 's', '2', 'u', 'q', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'c', 'v', 't', 'q', 'q', '2', 'p', 'd', '1', '2', '8', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'c', 'v', 't', 'q', 'q', '2', 'p', 'd', '2', '5', '6', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'q', 'q', '2', 'p', 'd', '5', '1',
-+ '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'q', 'q', '2', 'p', 's',
-+ '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'q', 'q', '2',
-+ 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'q',
-+ 'q', '2', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v',
-+ 't', 's', 'd', '2', 's', 's', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'c', 'v', 't', 's', 's', '2', 's', 'd', '_', 'r', 'o', 'u',
-+ 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 'd', '2',
-+ 'd', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't',
-+ 'p', 'd', '2', 'd', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-+ 'v', 't', 't', 'p', 'd', '2', 'd', 'q', '5', '1', '2', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'c', 'v', 't', 't', 'p', 'd', '2', 'q', 'q', '1', '2', '8', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 'd', '2', 'q', 'q', '2',
-+ '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 'd', '2',
-+ 'q', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't',
-+ 'p', 'd', '2', 'u', 'd', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'c', 'v', 't', 't', 'p', 'd', '2', 'u', 'd', 'q', '2', '5', '6', '_', 'm',
-+ 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 'd', '2', 'u', 'd', 'q', '5',
-+ '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 'd', '2',
-+ 'u', 'q', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't',
-+ 't', 'p', 'd', '2', 'u', 'q', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'c', 'v', 't', 't', 'p', 'd', '2', 'u', 'q', 'q', '5', '1', '2', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 's', '2', 'd', 'q', '1',
-+ '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 's', '2',
-+ 'd', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't',
-+ 'p', 's', '2', 'd', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-+ 'v', 't', 't', 'p', 's', '2', 'q', 'q', '1', '2', '8', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'c', 'v', 't', 't', 'p', 's', '2', 'q', 'q', '2', '5', '6', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 's', '2', 'q', 'q', '5',
-+ '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 's', '2',
-+ 'u', 'd', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't',
-+ 't', 'p', 's', '2', 'u', 'd', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'c', 'v', 't', 't', 'p', 's', '2', 'u', 'd', 'q', '5', '1', '2', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 's', '2', 'u', 'q', 'q',
-+ '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 's',
-+ '2', 'u', 'q', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v',
-+ 't', 't', 'p', 's', '2', 'u', 'q', 'q', '5', '1', '2', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'c', 'v', 't', 'u', 'd', 'q', '2', 'p', 's', '1', '2', '8', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'u', 'd', 'q', '2', 'p', 's', '2',
-+ '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'u', 'd', 'q', '2',
-+ 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'u',
-+ 'q', 'q', '2', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-+ 'v', 't', 'u', 'q', 'q', '2', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'c', 'v', 't', 'u', 'q', 'q', '2', 'p', 'd', '5', '1', '2', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'u', 'q', 'q', '2', 'p', 's', '1',
-+ '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'u', 'q', 'q', '2',
-+ 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'u',
-+ 'q', 'q', '2', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'd',
-+ 'b', 'p', 's', 'a', 'd', 'b', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'd', 'b', 'p', 's', 'a', 'd', 'b', 'w', '2', '5', '6', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'd', 'b', 'p', 's', 'a', 'd', 'b', 'w', '5', '1', '2', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'd', 'i', 'v', 'p', 'd', '5', '1', '2', '_', 'm',
-+ 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'd', 'i', 'v', 'p', 's', '5', '1', '2', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'd', 'i', 'v', 's', 'd', '_', 'r', 'o', 'u', 'n', 'd', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'd', 'i', 'v', 's', 's', '_', 'r', 'o', 'u', 'n',
-+ 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 's', 'i',
-+ '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd',
-+ 's', 'i', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a',
-+ 'n', 'd', 's', 'i', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x',
-+ 'p', 'a', 'n', 'd', 'l', 'o', 'a', 'd', 's', 'i', '1', '2', '8', '_', 'm',
-+ 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 'l', 'o', 'a', 'd', 's',
-+ 'i', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n',
-+ 'd', 'l', 'o', 'a', 'd', 's', 'i', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'e', 'x', 'p', 'a', 'n', 'd', 'l', 'o', 'a', 'd', 'd', 'f', '1', '2',
-+ '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 'l', 'o',
-+ 'a', 'd', 'd', 'f', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x',
-+ 'p', 'a', 'n', 'd', 'l', 'o', 'a', 'd', 'd', 'f', '5', '1', '2', '_', 'm',
-+ 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 'l', 'o', 'a', 'd', 's',
-+ 'f', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n',
-+ 'd', 'l', 'o', 'a', 'd', 's', 'f', '2', '5', '6', '_', 'm', 'a', 's', 'k',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'e', 'x', 'p', 'a', 'n', 'd', 'l', 'o', 'a', 'd', 's', 'f', '5', '1',
-+ '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 'l', 'o',
-+ 'a', 'd', 'd', 'i', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x',
-+ 'p', 'a', 'n', 'd', 'l', 'o', 'a', 'd', 'd', 'i', '2', '5', '6', '_', 'm',
-+ 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 'l', 'o', 'a', 'd', 'd',
-+ 'i', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n',
-+ 'd', 'd', 'f', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p',
-+ 'a', 'n', 'd', 'd', 'f', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e',
-+ 'x', 'p', 'a', 'n', 'd', 'd', 'f', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'e', 'x', 'p', 'a', 'n', 'd', 's', 'f', '1', '2', '8', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 's', 'f', '2', '5', '6', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 's', 'f', '5', '1',
-+ '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 'd', 'i',
-+ '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd',
-+ 'd', 'i', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a',
-+ 'n', 'd', 'd', 'i', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'i',
-+ 'x', 'u', 'p', 'i', 'm', 'm', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm', 'p', 'd', '2', '5', '6',
-+ '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm', 'p',
-+ 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'i', 'x', 'u', 'p',
-+ 'i', 'm', 'm', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f',
-+ 'i', 'x', 'u', 'p', 'i', 'm', 'm', 'p', 's', '2', '5', '6', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm', 'p', 's', '5', '1',
-+ '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm',
-+ 's', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm',
-+ 'm', 's', 's', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'p', 'c', 'l', 'a', 's',
-+ 's', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'p', 'c',
-+ 'l', 'a', 's', 's', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'f', 'p', 'c', 'l', 'a', 's', 's', 'p', 'd', '5', '1', '2', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'f', 'p', 'c', 'l', 'a', 's', 's', 'p', 's', '1', '2', '8',
-+ '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'f', 'p', 'c', 'l', 'a', 's', 's', 'p', 's',
-+ '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'p', 'c', 'l', 'a', 's',
-+ 's', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'p', 'c',
-+ 'l', 'a', 's', 's', 's', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'p', 'c',
-+ 'l', 'a', 's', 's', 's', 's', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'e', 't',
-+ 'e', 'x', 'p', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g',
-+ 'e', 't', 'e', 'x', 'p', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'g', 'e', 't', 'e', 'x', 'p', 'p', 'd', '5', '1', '2', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'g', 'e', 't', 'e', 'x', 'p', 'p', 's', '1', '2', '8', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'g', 'e', 't', 'e', 'x', 'p', 'p', 's', '2', '5',
-+ '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'e', 't', 'e', 'x', 'p', 'p', 's',
-+ '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'e', 't', 'e', 'x', 'p',
-+ 's', 'd', '1', '2', '8', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'g', 'e', 't', 'e', 'x', 'p', 's', 's', '1', '2', '8', '_', 'r',
-+ 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'e', 't', 'm', 'a',
-+ 'n', 't', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'e',
-+ 't', 'm', 'a', 'n', 't', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'g', 'e', 't', 'm', 'a', 'n', 't', 'p', 'd', '5', '1', '2', '_', 'm',
-+ 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'g', 'e', 't', 'm', 'a', 'n', 't', 'p', 's', '1', '2',
-+ '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'e', 't', 'm', 'a', 'n', 't', 'p',
-+ 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'e', 't', 'm', 'a',
-+ 'n', 't', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'e',
-+ 't', 'm', 'a', 'n', 't', 's', 'd', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm',
-+ 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'g', 'e', 't', 'm', 'a', 'n', 't', 's', 's', '_', 'r',
-+ 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'i', 'n', 's', 'e', 'r',
-+ 't', 'f', '3', '2', 'x', '4', '_', '2', '5', '6', '_', 'm', 'a', 's', 'k',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'i', 'n', 's', 'e', 'r', 't', 'f', '3', '2', 'x', '4', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'i', 'n', 's', 'e', 'r', 't', 'f', '3', '2', 'x', '8', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'i', 'n', 's', 'e', 'r', 't', 'f', '6', '4', 'x',
-+ '2', '_', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'i', 'n', 's', 'e',
-+ 'r', 't', 'f', '6', '4', 'x', '2', '_', '5', '1', '2', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'i', 'n', 's', 'e', 'r', 't', 'f', '6', '4', 'x', '4', '_', 'm',
-+ 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'i', 'n', 's', 'e', 'r', 't', 'i', '3', '2', 'x', '4',
-+ '_', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'i', 'n', 's', 'e', 'r',
-+ 't', 'i', '3', '2', 'x', '4', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'i', 'n', 's',
-+ 'e', 'r', 't', 'i', '3', '2', 'x', '8', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'i',
-+ 'n', 's', 'e', 'r', 't', 'i', '6', '4', 'x', '2', '_', '2', '5', '6', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'i', 'n', 's', 'e', 'r', 't', 'i', '6', '4', 'x',
-+ '2', '_', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'i', 'n', 's', 'e',
-+ 'r', 't', 'i', '6', '4', 'x', '4', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a',
-+ 'x', 'p', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 'x', 'p', 'd', '2',
-+ '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 'x', 'p', 'd', '5', '1',
-+ '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 'x', 'p', 's', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'm', 'a', 'x', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'm', 'a', 'x', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'm', 'a', 'x', 's', 'd', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'm', 'a', 'x', 's', 's', '_', 'r', 'o', 'u', 'n', 'd', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'm', 'i', 'n', 'p', 'd', '_', 'm', 'a', 's', 'k',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'm', 'i', 'n', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'm', 'i', 'n', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm',
-+ 'i', 'n', 'p', 's', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'i', 'n', 'p', 's',
-+ '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'i', 'n', 'p', 's', '5',
-+ '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'i', 'n', 's', 'd', '_', 'r',
-+ 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'i', 'n', 's', 's',
-+ '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'u', 'l',
-+ 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'u', 'l', 'p',
-+ 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'u', 'l', 's', 'd',
-+ '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'u', 'l',
-+ 's', 's', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'a', 'b', 's', 'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a',
-+ 'b', 's', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b',
-+ 's', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b', 's',
-+ 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b', 's', 'd',
-+ '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b', 's', 'd', '5',
-+ '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b', 's', 'q', '1', '2',
-+ '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b', 's', 'q', '2', '5', '6',
-+ '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b', 's', 'q', '5', '1', '2', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 'a', 'b', 's', 'w', '1', '2', '8', '_', 'm',
-+ 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'p', 'a', 'b', 's', 'w', '2', '5', '6', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'p', 'a', 'b', 's', 'w', '5', '1', '2', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'a', 'c', 'k', 's', 's', 'd', 'w', '1', '2', '8', '_', 'm',
-+ 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 's', 's', 'd', 'w', '2', '5', '6',
-+ '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 's', 's', 'd', 'w', '5',
-+ '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 's', 's', 'w',
-+ 'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 's',
-+ 's', 'w', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c',
-+ 'k', 's', 's', 'w', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'a', 'c', 'k', 'u', 's', 'd', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'p', 'a', 'c', 'k', 'u', 's', 'd', 'w', '2', '5', '6', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'p', 'a', 'c', 'k', 'u', 's', 'd', 'w', '5', '1', '2', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 'u', 's', 'w', 'b', '1', '2',
-+ '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 'u', 's', 'w', 'b',
-+ '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 'u', 's',
-+ 'w', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd',
-+ 's', 'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd',
-+ 's', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd',
-+ 's', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd',
-+ 's', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd',
-+ 's', 'w', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd',
-+ 's', 'w', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd',
-+ 'u', 's', 'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd',
-+ 'd', 'u', 's', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a',
-+ 'd', 'd', 'u', 's', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'a', 'd', 'd', 'u', 's', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'p', 'a', 'd', 'd', 'u', 's', 'w', '2', '5', '6', '_', 'm', 'a', 's', 'k',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'p', 'a', 'd', 'd', 'u', 's', 'w', '5', '1', '2', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'a', 'v', 'g', 'b', '1', '2', '8', '_', 'm', 'a', 's', 'k',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'p', 'a', 'v', 'g', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'p', 'a', 'v', 'g', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'a', 'v', 'g', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a',
-+ 'v', 'g', 'w', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'v',
-+ 'g', 'w', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'b', 'r', 'o',
-+ 'a', 'd', 'c', 'a', 's', 't', 'b', '1', '2', '8', '_', 'g', 'p', 'r', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't',
-+ 'b', '2', '5', '6', '_', 'g', 'p', 'r', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'b', '5', '1', '2', '_', 'g',
-+ 'p', 'r', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'b', 'r', 'o', 'a', 'd', 'c',
-+ 'a', 's', 't', 'd', '1', '2', '8', '_', 'g', 'p', 'r', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'd', '2', '5',
-+ '6', '_', 'g', 'p', 'r', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'b', 'r', 'o',
-+ 'a', 'd', 'c', 'a', 's', 't', 'd', '5', '1', '2', '_', 'g', 'p', 'r', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't',
-+ 'q', '1', '2', '8', '_', 'g', 'p', 'r', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'q', '2', '5', '6', '_', 'g',
-+ 'p', 'r', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'b', 'r', 'o', 'a', 'd', 'c',
-+ 'a', 's', 't', 'q', '5', '1', '2', '_', 'g', 'p', 'r', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'q', '5', '1',
-+ '2', '_', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'b', 'r', 'o',
-+ 'a', 'd', 'c', 'a', 's', 't', 'w', '1', '2', '8', '_', 'g', 'p', 'r', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't',
-+ 'w', '2', '5', '6', '_', 'g', 'p', 'r', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'w', '5', '1', '2', '_', 'g',
-+ 'p', 'r', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'r', 'm', 'v', 'a', 'r',
-+ 'd', 'f', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'r', 'm',
-+ 'v', 'a', 'r', 'd', 'f', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'e', 'r', 'm', 'v', 'a', 'r', 'd', 'i', '2', '5', '6', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'e', 'r', 'm', 'v', 'a', 'r', 'd', 'i', '5', '1', '2', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 'e', 'r', 'm', 'v', 'a', 'r', 'h', 'i', '1',
-+ '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'r', 'm', 'v', 'a', 'r',
-+ 'h', 'i', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'r', 'm',
-+ 'v', 'a', 'r', 'h', 'i', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'e', 'r', 'm', 'v', 'a', 'r', 'q', 'i', '1', '2', '8', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'e', 'r', 'm', 'v', 'a', 'r', 'q', 'i', '2', '5', '6', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 'e', 'r', 'm', 'v', 'a', 'r', 'q', 'i', '5',
-+ '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'r', 'm', 'v', 'a', 'r',
-+ 's', 'f', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'r', 'm',
-+ 'v', 'a', 'r', 's', 'f', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'e', 'r', 'm', 'v', 'a', 'r', 's', 'i', '2', '5', '6', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'e', 'r', 'm', 'v', 'a', 'r', 's', 'i', '5', '1', '2', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 'm', 'a', 'd', 'd', 'u', 'b', 's', 'w', '1',
-+ '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'a', 'd', 'd', 'u', 'b',
-+ 's', 'w', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'a', 'd',
-+ 'd', 'u', 'b', 's', 'w', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'm', 'a', 'd', 'd', 'w', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'p', 'm', 'a', 'd', 'd', 'w', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'p', 'm', 'a', 'd', 'd', 'w', 'd', '5', '1', '2', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'm', 'o', 'v', 'd', 'b', '1', '2', '8', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'm', 'o', 'v', 'd', 'b', '2', '5', '6', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'm', 'o', 'v', 'd', 'b', '5', '1', '2', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'm', 'o', 'v', 'd', 'b', '1', '2', '8', 'm', 'e', 'm', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'd', 'b', '2', '5', '6', 'm',
-+ 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'd', 'b', '5',
-+ '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-+ 'd', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-+ 'd', 'w', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-+ 'd', 'w', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-+ 'd', 'w', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'm', 'o', 'v', 'd', 'w', '2', '5', '6', 'm', 'e', 'm', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'm', 'o', 'v', 'd', 'w', '5', '1', '2', 'm', 'e', 'm', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'b', '1', '2', '8', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'b', '2', '5', '6', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'b', '5', '1', '2', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'b', '1', '2', '8', 'm',
-+ 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'b', '2',
-+ '5', '6', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-+ 'q', 'b', '5', '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'm', 'o', 'v', 'q', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'm', 'o', 'v', 'q', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'm', 'o', 'v', 'q', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'm', 'o', 'v', 'q', 'd', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'm', 'o', 'v', 'q', 'd', '2', '5', '6', 'm', 'e', 'm', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'd', '5', '1', '2', 'm',
-+ 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'w', '1',
-+ '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'w', '2',
-+ '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'w', '5',
-+ '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'w', '1',
-+ '2', '8', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-+ 'q', 'w', '2', '5', '6', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'm', 'o', 'v', 'q', 'w', '5', '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'm', 'o', 'v', 'w', 'b', '1', '2', '8', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'm', 'o', 'v', 'w', 'b', '2', '5', '6', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'm', 'o', 'v', 'w', 'b', '5', '1', '2', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'm', 'o', 'v', 'w', 'b', '1', '2', '8', 'm', 'e', 'm', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'w', 'b', '2', '5', '6', 'm',
-+ 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'w', 'b', '5',
-+ '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-+ 's', 'd', 'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o',
-+ 'v', 's', 'd', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
-+ 'o', 'v', 's', 'd', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'm', 'o', 'v', 's', 'd', 'b', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'd', 'b', '2', '5', '6', 'm', 'e',
-+ 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'd', 'b', '5',
-+ '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-+ 's', 'd', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o',
-+ 'v', 's', 'd', 'w', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
-+ 'o', 'v', 's', 'd', 'w', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'm', 'o', 'v', 's', 'd', 'w', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'd', 'w', '2', '5', '6', 'm', 'e',
-+ 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'd', 'w', '5',
-+ '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-+ 's', 'q', 'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o',
-+ 'v', 's', 'q', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
-+ 'o', 'v', 's', 'q', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'm', 'o', 'v', 's', 'q', 'b', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'q', 'b', '2', '5', '6', 'm', 'e',
-+ 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'q', 'b', '5',
-+ '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-+ 's', 'q', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o',
-+ 'v', 's', 'q', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
-+ 'o', 'v', 's', 'q', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'm', 'o', 'v', 's', 'q', 'd', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'q', 'd', '2', '5', '6', 'm', 'e',
-+ 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'q', 'd', '5',
-+ '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-+ 's', 'q', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o',
-+ 'v', 's', 'q', 'w', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
-+ 'o', 'v', 's', 'q', 'w', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'm', 'o', 'v', 's', 'q', 'w', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'q', 'w', '2', '5', '6', 'm', 'e',
-+ 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'q', 'w', '5',
-+ '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-+ 's', 'w', 'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o',
-+ 'v', 's', 'w', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
-+ 'o', 'v', 's', 'w', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'm', 'o', 'v', 's', 'w', 'b', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'w', 'b', '2', '5', '6', 'm', 'e',
-+ 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'w', 'b', '5',
-+ '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-+ 'u', 's', 'd', 'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
-+ 'o', 'v', 'u', 's', 'd', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'p', 'm', 'o', 'v', 'u', 's', 'd', 'b', '5', '1', '2', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'd', 'b', '1', '2', '8', 'm', 'e',
-+ 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'd', 'b',
-+ '2', '5', '6', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o',
-+ 'v', 'u', 's', 'd', 'b', '5', '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'd', 'w', '1', '2', '8', '_', 'm',
-+ 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'd', 'w', '2', '5', '6',
-+ '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'd', 'w', '5',
-+ '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'd',
-+ 'w', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
-+ 'o', 'v', 'u', 's', 'd', 'w', '2', '5', '6', 'm', 'e', 'm', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'd', 'w', '5', '1', '2', 'm',
-+ 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'q',
-+ 'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u',
-+ 's', 'q', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o',
-+ 'v', 'u', 's', 'q', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'm', 'o', 'v', 'u', 's', 'q', 'b', '1', '2', '8', 'm', 'e', 'm', '_', 'm',
-+ 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'q', 'b', '2', '5', '6',
-+ 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's',
-+ 'q', 'b', '5', '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'm', 'o', 'v', 'u', 's', 'q', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'p', 'm', 'o', 'v', 'u', 's', 'q', 'd', '2', '5', '6', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'q', 'd', '5', '1', '2', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'q', 'd', '1', '2',
-+ '8', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u',
-+ 's', 'q', 'd', '2', '5', '6', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'p', 'm', 'o', 'v', 'u', 's', 'q', 'd', '5', '1', '2', 'm', 'e', 'm', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'q', 'w', '1', '2',
-+ '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'q', 'w',
-+ '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's',
-+ 'q', 'w', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-+ 'u', 's', 'q', 'w', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'p', 'm', 'o', 'v', 'u', 's', 'q', 'w', '2', '5', '6', 'm', 'e', 'm',
-+ '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'q', 'w', '5',
-+ '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-+ 'u', 's', 'w', 'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
-+ 'o', 'v', 'u', 's', 'w', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'p', 'm', 'o', 'v', 'u', 's', 'w', 'b', '5', '1', '2', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'w', 'b', '1', '2', '8', 'm', 'e',
-+ 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'w', 'b',
-+ '2', '5', '6', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o',
-+ 'v', 'u', 's', 'w', 'b', '5', '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'm', 'u', 'l', 'd', 'q', '1', '2', '8', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'm', 'u', 'l', 'd', 'q', '2', '5', '6', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'm', 'u', 'l', 'd', 'q', '5', '1', '2', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'm', 'u', 'l', 'h', 'r', 's', 'w', '1', '2', '8', '_', 'm',
-+ 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'r', 's', 'w', '2', '5', '6',
-+ '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'r', 's', 'w', '5',
-+ '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'w', '1',
-+ '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'w', '2',
-+ '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'w', '5',
-+ '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'u', 'w',
-+ '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'u',
-+ 'w', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h',
-+ 'u', 'w', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'u',
-+ 'l', 't', 'i', 's', 'h', 'i', 'f', 't', 'q', 'b', '1', '2', '8', '_', 'm',
-+ 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'v', 'p', 'm', 'u', 'l', 't', 'i', 's', 'h', 'i', 'f',
-+ 't', 'q', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm',
-+ 'u', 'l', 't', 'i', 's', 'h', 'i', 'f', 't', 'q', 'b', '5', '1', '2', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'u', 'd', 'q', '1', '2', '8',
-+ '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'u', 'd', 'q', '2', '5',
-+ '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'u', 'd', 'q', '5',
-+ '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'l', 'd', '1', '2',
-+ '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'l', 'd', '2', '5', '6',
-+ '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'l', 'd', '5', '1', '2', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'l', 'q', '1', '2', '8', '_', 'm',
-+ 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'p', 'r', 'o', 'l', 'q', '2', '5', '6', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'p', 'r', 'o', 'l', 'q', '5', '1', '2', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'r', 'o', 'l', 'v', 'd', '1', '2', '8', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'r', 'o', 'l', 'v', 'd', '2', '5', '6', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'r', 'o', 'l', 'v', 'd', '5', '1', '2', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'r', 'o', 'l', 'v', 'q', '1', '2', '8', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'r', 'o', 'l', 'v', 'q', '2', '5', '6', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'r', 'o', 'l', 'v', 'q', '5', '1', '2', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'r', 'o', 'r', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'p', 'r', 'o', 'r', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'p', 'r', 'o', 'r', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'r', 'o', 'r', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r',
-+ 'o', 'r', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o',
-+ 'r', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'r',
-+ 'v', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'r',
-+ 'v', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'r',
-+ 'v', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'r',
-+ 'v', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'r',
-+ 'v', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'r',
-+ 'v', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b',
-+ 's', 'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b',
-+ 's', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b',
-+ 's', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b',
-+ 's', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b',
-+ 's', 'w', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b',
-+ 's', 'w', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b',
-+ 'u', 's', 'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u',
-+ 'b', 'u', 's', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's',
-+ 'u', 'b', 'u', 's', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 's', 'u', 'b', 'u', 's', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'p', 's', 'u', 'b', 'u', 's', 'w', '2', '5', '6', '_', 'm', 'a', 's', 'k',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'p', 's', 'u', 'b', 'u', 's', 'w', '5', '1', '2', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 't', 'e', 'r', 'n', 'l', 'o', 'g', 'd', '1', '2', '8', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 't', 'e', 'r', 'n', 'l', 'o', 'g', 'd', '2',
-+ '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 'r', 'n', 'l', 'o',
-+ 'g', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 'r',
-+ 'n', 'l', 'o', 'g', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 't', 'e', 'r', 'n', 'l', 'o', 'g', 'q', '2', '5', '6', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 't', 'e', 'r', 'n', 'l', 'o', 'g', 'q', '5', '1', '2', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'r', 'a', 'n', 'g', 'e', 'p', 'd', '1', '2', '8',
-+ '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'r', 'a', 'n', 'g', 'e', 'p', 'd', '2', '5',
-+ '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'a', 'n', 'g', 'e', 'p', 'd', '5',
-+ '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'a', 'n', 'g', 'e', 'p', 's',
-+ '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'a', 'n', 'g', 'e', 'p',
-+ 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'a', 'n', 'g', 'e',
-+ 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'a', 'n', 'g',
-+ 'e', 's', 'd', '1', '2', '8', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'r', 'a', 'n', 'g', 'e', 's', 's', '1', '2', '8', '_', 'r',
-+ 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'e', 'd', 'u', 'c',
-+ 'e', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'e', 'd',
-+ 'u', 'c', 'e', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r',
-+ 'e', 'd', 'u', 'c', 'e', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'r', 'e', 'd', 'u', 'c', 'e', 'p', 's', '1', '2', '8', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'r', 'e', 'd', 'u', 'c', 'e', 'p', 's', '2', '5', '6', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'r', 'e', 'd', 'u', 'c', 'e', 'p', 's', '5', '1',
-+ '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'e', 'd', 'u', 'c', 'e', 's', 'd',
-+ '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'r', 'e', 'd', 'u', 'c', 'e', 's', 's', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'r', 'n', 'd', 's', 'c', 'a', 'l', 'e', 'p', 'd',
-+ '_', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'n', 'd', 's', 'c',
-+ 'a', 'l', 'e', 'p', 'd', '_', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'r', 'n', 'd', 's', 'c', 'a', 'l', 'e', 'p', 'd', '_', 'm', 'a', 's', 'k',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'r', 'n', 'd', 's', 'c', 'a', 'l', 'e', 'p', 's', '_', '1', '2', '8',
-+ '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'r', 'n', 'd', 's', 'c', 'a', 'l', 'e', 'p',
-+ 's', '_', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'n', 'd', 's',
-+ 'c', 'a', 'l', 'e', 'p', 's', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'n', 'd',
-+ 's', 'c', 'a', 'l', 'e', 's', 'd', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm',
-+ 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'r', 'n', 'd', 's', 'c', 'a', 'l', 'e', 's', 's', '_',
-+ 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 'l',
-+ 'e', 'f', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c',
-+ 'a', 'l', 'e', 'f', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 's', 'c', 'a', 'l', 'e', 'f', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 's', 'c', 'a', 'l', 'e', 'f', 'p', 's', '1', '2', '8', '_', 'm',
-+ 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 's', 'c', 'a', 'l', 'e', 'f', 'p', 's', '2', '5', '6',
-+ '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 'l', 'e', 'f', 'p', 's', '5',
-+ '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 'l', 'e', 'f', 's',
-+ 'd', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c',
-+ 'a', 'l', 'e', 'f', 's', 's', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 's', 'h', 'u', 'f', '_', 'f', '3', '2', 'x', '4', '_', 'm',
-+ 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 's', 'h', 'u', 'f', '_', 'f', '3', '2', 'x', '4', '_',
-+ '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'h', 'u', 'f', '_', 'f',
-+ '6', '4', 'x', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'h', 'u', 'f', '_',
-+ 'f', '6', '4', 'x', '2', '_', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 's', 'h', 'u', 'f', '_', 'i', '3', '2', 'x', '4', '_', 'm', 'a', 's', 'k',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 's', 'h', 'u', 'f', '_', 'i', '3', '2', 'x', '4', '_', '2', '5', '6',
-+ '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 's', 'h', 'u', 'f', '_', 'i', '6', '4', 'x',
-+ '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 's', 'h', 'u', 'f', '_', 'i', '6', '4',
-+ 'x', '2', '_', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'q', 'r',
-+ 't', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'q', 'r',
-+ 't', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'q', 'r',
-+ 't', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'q', 'r',
-+ 't', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'q', 'r',
-+ 't', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'q', 'r',
-+ 't', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'q', 'r',
-+ 't', 's', 'd', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 's', 'q', 'r', 't', 's', 's', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 's', 't', 'o', 'r', 'e', 's', 's', '_', 'm', 'a', 's', 'k',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 's', 'u', 'b', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 's', 'u', 'b', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's',
-+ 'u', 'b', 's', 'd', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 's', 'u', 'b', 's', 's', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'v', 'c', 'v', 't', 'p', 'h', '2', 'p', 's', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'v', 'c', 'v', 't', 'p', 'h', '2', 'p', 's', '2', '5', '6',
-+ '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 'p', 'h', '2', 'p', 's',
-+ '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 'p', 's',
-+ '2', 'p', 'h', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 'p', 's',
-+ '2', 'p', 'h', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v',
-+ 't', 'p', 's', '2', 'p', 'h', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'e', 'x', 't', 'r', 'a', 'c', 't', 'f', '3', '2', 'x', '4', '_', '2', '5',
-+ '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'f',
-+ '3', '2', 'x', '4', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 't', 'r', 'a',
-+ 'c', 't', 'f', '3', '2', 'x', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x',
-+ 't', 'r', 'a', 'c', 't', 'f', '6', '4', 'x', '2', '_', '2', '5', '6', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'f', '6', '4',
-+ 'x', '2', '_', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 't',
-+ 'r', 'a', 'c', 't', 'f', '6', '4', 'x', '4', '_', 'm', 'a', 's', 'k', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'e', 'x', 't', 'r', 'a', 'c', 't', 'i', '3', '2', 'x', '4', '_', '2', '5',
-+ '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'i',
-+ '3', '2', 'x', '4', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 't', 'r', 'a',
-+ 'c', 't', 'i', '3', '2', 'x', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x',
-+ 't', 'r', 'a', 'c', 't', 'i', '6', '4', 'x', '2', '_', '2', '5', '6', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'i', '6', '4',
-+ 'x', '2', '_', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 't',
-+ 'r', 'a', 'c', 't', 'i', '6', '4', 'x', '4', '_', 'm', 'a', 's', 'k', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'v', 'f', 'm', 'a', 'd', 'd', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p', 'd', '2', '5', '6', '_', 'm',
-+ 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p', 'd', '5', '1', '2',
-+ '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p', 's', '1',
-+ '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p',
-+ 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd',
-+ 'd', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm',
-+ 'a', 'd', 'd', 's', 'd', '3', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm',
-+ 'a', 'd', 'd', 's', 's', '3', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm',
-+ 'a', 'd', 'd', 's', 'u', 'b', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p', 'd', '2', '5',
-+ '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u',
-+ 'b', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm',
-+ 'a', 'd', 'd', 's', 'u', 'b', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p', 's', '2', '5',
-+ '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u',
-+ 'b', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n',
-+ 'm', 'a', 'd', 'd', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'v', 'f', 'n', 'm', 'a', 'd', 'd', 'p', 'd', '2', '5', '6', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'v', 'f', 'n', 'm', 'a', 'd', 'd', 'p', 'd', '5', '1', '2',
-+ '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 'a', 'd', 'd', 'p', 's',
-+ '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 'a', 'd',
-+ 'd', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n',
-+ 'm', 'a', 'd', 'd', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'v', 'f', 'n', 'm', 's', 'u', 'b', 'p', 'd', '1', '2', '8', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'v', 'f', 'n', 'm', 's', 'u', 'b', 'p', 'd', '2', '5', '6',
-+ '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 's', 'u', 'b', 'p', 'd',
-+ '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 's', 'u',
-+ 'b', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n',
-+ 'm', 's', 'u', 'b', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'v', 'f', 'n', 'm', 's', 'u', 'b', 'p', 's', '5', '1', '2', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'd', '1',
-+ '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', '2',
-+ 'v', 'a', 'r', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
-+ 'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'd', '5', '1', '2', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'h', 'i',
-+ '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i',
-+ '2', 'v', 'a', 'r', 'h', 'i', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'h', 'i', '5', '1', '2',
-+ '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v', 'a',
-+ 'r', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e',
-+ 'r', 'm', 'i', '2', 'v', 'a', 'r', 'p', 'd', '2', '5', '6', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'p', 'd',
-+ '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i',
-+ '2', 'v', 'a', 'r', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'p', 's', '2', '5', '6',
-+ '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v', 'a',
-+ 'r', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e',
-+ 'r', 'm', 'i', '2', 'v', 'a', 'r', 'q', '1', '2', '8', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'q', '2', '5',
-+ '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v',
-+ 'a', 'r', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e',
-+ 'r', 'm', 'i', '2', 'v', 'a', 'r', 'q', 'i', '1', '2', '8', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'q', 'i',
-+ '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i',
-+ '2', 'v', 'a', 'r', 'q', 'i', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'd', '1', '2', '8', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r',
-+ 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm',
-+ 't', '2', 'v', 'a', 'r', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'h', 'i', '1', '2', '8',
-+ '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a',
-+ 'r', 'h', 'i', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e',
-+ 'r', 'm', 't', '2', 'v', 'a', 'r', 'h', 'i', '5', '1', '2', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'p', 'd',
-+ '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't',
-+ '2', 'v', 'a', 'r', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'p', 'd', '5', '1', '2',
-+ '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a',
-+ 'r', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e',
-+ 'r', 'm', 't', '2', 'v', 'a', 'r', 'p', 's', '2', '5', '6', '_', 'm', 'a',
-+ 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'p', 's',
-+ '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't',
-+ '2', 'v', 'a', 'r', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-+ 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'q', '2', '5', '6', '_', 'm',
-+ 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'q',
-+ '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't',
-+ '2', 'v', 'a', 'r', 'q', 'i', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'q', 'i', '2', '5', '6',
-+ '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a',
-+ 'r', 'q', 'i', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm',
-+ 'a', 'd', 'd', '5', '2', 'h', 'u', 'q', '1', '2', '8', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'v', 'p', 'm', 'a', 'd', 'd', '5', '2', 'h', 'u', 'q', '2', '5',
-+ '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'd', 'd', '5', '2',
-+ 'h', 'u', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm',
-+ 'a', 'd', 'd', '5', '2', 'l', 'u', 'q', '1', '2', '8', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'v', 'p', 'm', 'a', 'd', 'd', '5', '2', 'l', 'u', 'q', '2', '5',
-+ '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'd', 'd', '5', '2',
-+ 'l', 'u', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm',
-+ 'a', 'd', 'd', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '3', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'v', 'f', 'm', 'a', 'd', 'd', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's',
-+ 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p', 'd', '5', '1', '2', '_',
-+ 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p', 's', '1',
-+ '2', '8', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd',
-+ 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm',
-+ 'a', 'd', 'd', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '3', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'v', 'f', 'm', 'a', 'd', 'd', 's', 'd', '3', '_', 'm', 'a', 's', 'k', '3',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 's', '3', '_', 'm', 'a', 's', 'k',
-+ '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p', 'd', '1', '2',
-+ '8', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's',
-+ 'u', 'b', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '3', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-+ 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p', 'd', '5', '1', '2', '_', 'm',
-+ 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p',
-+ 's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a',
-+ 'd', 'd', 's', 'u', 'b', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k',
-+ '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p', 's', '5', '1',
-+ '2', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 's', 'u', 'b', 'p',
-+ 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 's',
-+ 'u', 'b', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '3', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-+ 'f', 'm', 's', 'u', 'b', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-+ '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'v', 'f', 'm', 's', 'u', 'b', 'p', 's', '1', '2', '8', '_', 'm',
-+ 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 's', 'u', 'b', 'p', 's', '2', '5',
-+ '6', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 's', 'u', 'b', 'p',
-+ 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 's',
-+ 'u', 'b', 's', 'd', '3', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm',
-+ 's', 'u', 'b', 's', 's', '3', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f',
-+ 'm', 's', 'u', 'b', 'a', 'd', 'd', 'p', 'd', '1', '2', '8', '_', 'm', 'a',
-+ 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'v', 'f', 'm', 's', 'u', 'b', 'a', 'd', 'd', 'p', 'd',
-+ '2', '5', '6', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 's', 'u',
-+ 'b', 'a', 'd', 'd', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '3',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'v', 'f', 'm', 's', 'u', 'b', 'a', 'd', 'd', 'p', 's', '1', '2', '8',
-+ '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 's', 'u', 'b', 'a', 'd',
-+ 'd', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f',
-+ 'm', 's', 'u', 'b', 'a', 'd', 'd', 'p', 's', '5', '1', '2', '_', 'm', 'a',
-+ 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 's', 'u', 'b', 'p', 'd', '1', '2',
-+ '8', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 's', 'u', 'b',
-+ 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n',
-+ 'm', 's', 'u', 'b', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '3',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'v', 'f', 'n', 'm', 's', 'u', 'b', 'p', 's', '1', '2', '8', '_', 'm',
-+ 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 's', 'u', 'b', 'p', 's', '2',
-+ '5', '6', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 's', 'u',
-+ 'b', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f',
-+ 'n', 'm', 's', 'u', 'b', 's', 'd', '3', '_', 'm', 'a', 's', 'k', '3', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'v', 'f', 'n', 'm', 's', 'u', 'b', 's', 's', '3', '_', 'm', 'a', 's', 'k',
-+ '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm', 'p', 'd', '1', '2', '8',
-+ '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm',
-+ 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'i', 'x',
-+ 'u', 'p', 'i', 'm', 'm', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-+ 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm', 'p', 's', '1', '2', '8',
-+ '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm',
-+ 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'i', 'x',
-+ 'u', 'p', 'i', 'm', 'm', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-+ 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm', 's', 'd', '_', 'm', 'a',
-+ 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm', 's', 's', '_',
-+ 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 'r', 'n', 'l', 'o', 'g', 'd',
-+ '1', '2', '8', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 'r', 'n',
-+ 'l', 'o', 'g', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 't', 'e', 'r', 'n', 'l', 'o', 'g', 'd', '5', '1', '2', '_', 'm', 'a', 's',
-+ 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'p', 't', 'e', 'r', 'n', 'l', 'o', 'g', 'q', '1', '2', '8',
-+ '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 'r', 'n', 'l', 'o', 'g',
-+ 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 'r',
-+ 'n', 'l', 'o', 'g', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', 'z', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'v', 'f', 'm', 'a', 'd', 'd', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's',
-+ 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p', 'd', '2', '5', '6', '_',
-+ 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p', 'd', '5',
-+ '1', '2', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd',
-+ 'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm',
-+ 'a', 'd', 'd', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'v', 'f', 'm', 'a', 'd', 'd', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's',
-+ 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'd', '3', '_', 'm', 'a',
-+ 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 's', '3', '_', 'm',
-+ 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p',
-+ 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a',
-+ 'd', 'd', 's', 'u', 'b', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k',
-+ 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p', 'd', '5', '1',
-+ '2', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's',
-+ 'u', 'b', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k', 'z', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-+ 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p', 's', '2', '5', '6', '_', 'm',
-+ 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p',
-+ 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r',
-+ 'm', 't', '2', 'v', 'a', 'r', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k',
-+ 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'd', '2', '5',
-+ '6', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2',
-+ 'v', 'a', 'r', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', 'z', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-+ 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'h', 'i', '1', '2', '8', '_',
-+ 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a',
-+ 'r', 'h', 'i', '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
-+ 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'h', 'i', '5', '1', '2', '_', 'm',
-+ 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r',
-+ 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e',
-+ 'r', 'm', 't', '2', 'v', 'a', 'r', 'p', 'd', '2', '5', '6', '_', 'm', 'a',
-+ 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'p',
-+ 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r',
-+ 'm', 't', '2', 'v', 'a', 'r', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's',
-+ 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'p', 's',
-+ '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm',
-+ 't', '2', 'v', 'a', 'r', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-+ 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'q', '1', '2',
-+ '8', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2',
-+ 'v', 'a', 'r', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-+ 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'q', '5', '1', '2', '_', 'm',
-+ 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r',
-+ 'q', 'i', '1', '2', '8', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e',
-+ 'r', 'm', 't', '2', 'v', 'a', 'r', 'q', 'i', '2', '5', '6', '_', 'm', 'a',
-+ 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'q',
-+ 'i', '5', '1', '2', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a',
-+ 'd', 'd', '5', '2', 'h', 'u', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k',
-+ 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'v', 'p', 'm', 'a', 'd', 'd', '5', '2', 'h', 'u', 'q', '2', '5',
-+ '6', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'd', 'd', '5',
-+ '2', 'h', 'u', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', 'z', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-+ 'p', 'm', 'a', 'd', 'd', '5', '2', 'l', 'u', 'q', '1', '2', '8', '_', 'm',
-+ 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'd', 'd', '5', '2', 'l', 'u',
-+ 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a',
-+ 'd', 'd', '5', '2', 'l', 'u', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-+ 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'm', 'o', 'v', 'n', 't', 'd', 'q', 'a', '5', '1', '2', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 's', 'a', 'd', 'b', 'w', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'h', 'u', 'f', 'b',
-+ '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'd', '5', '1', '2', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's',
-+ 'l', 'l', 'q', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'w', '5', '1', '2',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'p', 's', 'l', 'l', 'd', 'i', '5', '1', '2', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l',
-+ 'q', 'i', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'w', 'i', '5', '1', '2',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'p', 's', 'l', 'l', 'v', '1', '6', 's', 'i', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l',
-+ 'v', '8', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'v', '8', 'h', 'i', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 's', 'l', 'l', 'v', '1', '6', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'v', '3',
-+ '2', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'd', '5', '1', '2', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's',
-+ 'r', 'a', 'q', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'q', '2', '5', '6',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'p', 's', 'r', 'a', 'q', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'w',
-+ '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'd', 'i', '5', '1', '2', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 's', 'r', 'a', 'q', 'i', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'q', 'i',
-+ '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'q', 'i', '5', '1', '2', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 's', 'r', 'a', 'w', 'i', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'v', '1',
-+ '6', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'v', 'q', '1', '2', '8', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 's', 'r', 'a', 'v', 'q', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'v', '8',
-+ 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'p', 's', 'r', 'a', 'v', '8', 'h', 'i', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r',
-+ 'a', 'v', '1', '6', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'v', '3', '2', 'h',
-+ 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 's', 'r', 'l', 'd', '5', '1', '2', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l',
-+ 'q', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'w', '5', '1', '2', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 's', 'r', 'l', 'd', 'i', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'q', 'i',
-+ '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'w', 'i', '5', '1', '2', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 's', 'r', 'l', 'v', '1', '6', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'v', '8',
-+ 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'p', 's', 'r', 'l', 'v', '8', 'h', 'i', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r',
-+ 'l', 'v', '1', '6', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'v', '3', '2', 'h',
-+ 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 't', 'e', 's', 't', 'm', 'b', '1', '2', '8', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't',
-+ 'e', 's', 't', 'm', 'b', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't', 'm',
-+ 'b', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't', 'm', 'd', '1', '2', '8',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'p', 't', 'e', 's', 't', 'm', 'd', '2', '5', '6', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e',
-+ 's', 't', 'm', 'd', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't', 'm', 'q',
-+ '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'p', 't', 'e', 's', 't', 'm', 'q', '2', '5', '6', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'p', 't', 'e', 's', 't', 'm', 'q', '5', '1', '2', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's',
-+ 't', 'm', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't', 'm', 'w', '2',
-+ '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'p', 't', 'e', 's', 't', 'm', 'w', '5', '1', '2', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 't', 'e', 's', 't', 'n', 'm', 'b', '1', '2', '8', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's',
-+ 't', 'n', 'm', 'b', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't', 'n', 'm',
-+ 'b', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't', 'n', 'm', 'd', '1', '2',
-+ '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 't', 'e', 's', 't', 'n', 'm', 'd', '2', '5', '6', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 't', 'e', 's', 't', 'n', 'm', 'd', '5', '1', '2', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's',
-+ 't', 'n', 'm', 'q', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't', 'n', 'm',
-+ 'q', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't', 'n', 'm', 'q', '5', '1',
-+ '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 't', 'e', 's', 't', 'n', 'm', 'w', '1', '2', '8', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 't', 'e', 's', 't', 'n', 'm', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's',
-+ 't', 'n', 'm', 'w', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'c', 'p', '1', '4', 'p', 'd',
-+ '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'c', 'p', '1', '4', 'p',
-+ 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'c', 'p', '1', '4',
-+ 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'c', 'p', '1',
-+ '4', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'c', 'p',
-+ '1', '4', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'c',
-+ 'p', '1', '4', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r',
-+ 'c', 'p', '1', '4', 's', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'c', 'p',
-+ '1', '4', 's', 's', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'c', 'p', '2', '8',
-+ 'p', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'c', 'p', '2', '8', 'p', 's',
-+ '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'r', 'c', 'p', '2', '8', 's', 'd', '_', 'r',
-+ 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'c', 'p', '2', '8',
-+ 's', 's', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r',
-+ 's', 'q', 'r', 't', '1', '4', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'r', 's', 'q', 'r', 't', '1', '4', 'p', 'd', '2', '5', '6', '_',
-+ 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'r', 's', 'q', 'r', 't', '1', '4', 'p', 'd', '5',
-+ '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 's', 'q', 'r', 't', '1', '4',
-+ 'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 's', 'q', 'r',
-+ 't', '1', '4', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r',
-+ 's', 'q', 'r', 't', '1', '4', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'r', 's', 'q', 'r', 't', '1', '4', 's', 'd', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'r', 's', 'q', 'r', 't', '1', '4', 's', 's', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'r', 's', 'q', 'r', 't', '2', '8', 'p', 'd', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'r', 's', 'q', 'r', 't', '2', '8', 'p', 's', '_', 'm', 'a', 's',
-+ 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'r', 's', 'q', 'r', 't', '2', '8', 's', 'd', '_', 'r', 'o', 'u',
-+ 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 's', 'q', 'r', 't', '2', '8',
-+ 's', 's', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's',
-+ 'c', 'a', 't', 't', 'e', 'r', 's', 'i', 'v', '8', 'd', 'f', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c',
-+ 'a', 't', 't', 'e', 'r', 's', 'i', 'v', '1', '6', 's', 'i', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c',
-+ 'a', 't', 't', 'e', 'r', 's', 'i', 'v', '8', 'd', 'i', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a',
-+ 't', 't', 'e', 'r', 's', 'i', 'v', '1', '6', 's', 'f', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a',
-+ 't', 't', 'e', 'r', 'd', 'i', 'v', '8', 'd', 'f', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't',
-+ 't', 'e', 'r', 'd', 'i', 'v', '1', '6', 's', 'i', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't',
-+ 't', 'e', 'r', 'd', 'i', 'v', '8', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't',
-+ 'e', 'r', 'd', 'i', 'v', '1', '6', 's', 'f', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't',
-+ 'e', 'r', 'd', 'i', 'v', '2', 'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e',
-+ 'r', 'd', 'i', 'v', '2', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r',
-+ 'd', 'i', 'v', '4', 'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 'd',
-+ 'i', 'v', '4', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 'd', 'i',
-+ 'v', '4', 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 'd', 'i', 'v',
-+ '4', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 'd', 'i', 'v', '8',
-+ 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 'd', 'i', 'v', '8', 's',
-+ 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 'p', 'f', 'd', 'p', 'd', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 's', 'c', 'a', 't', 't', 'e', 'r', 'p', 'f', 'd', 'p', 's', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c',
-+ 'a', 't', 't', 'e', 'r', 'p', 'f', 'q', 'p', 'd', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't',
-+ 't', 'e', 'r', 'p', 'f', 'q', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e',
-+ 'r', 's', 'i', 'v', '2', 'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r',
-+ 's', 'i', 'v', '2', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 's',
-+ 'i', 'v', '4', 'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 's', 'i',
-+ 'v', '4', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 's', 'i', 'v',
-+ '4', 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 's', 'i', 'v', '4',
-+ 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 's', 'i', 'v', '8', 's',
-+ 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 's', 'i', 'v', '8', 's', 'i',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'v', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 's', 'd', '5', '1',
-+ '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'v', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 's', 's', '5',
-+ '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'v', 'c', 'o', 'm', 'i', 's', 'd', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'o', 'm',
-+ 'i', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'v', 'c', 'v', 't', 's', 'd', '2', 's', 'i', '3', '2',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'v', 'c', 'v', 't', 's', 'd', '2', 's', 'i', '6', '4', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c',
-+ 'v', 't', 's', 'd', '2', 'u', 's', 'i', '3', '2', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't',
-+ 's', 'd', '2', 'u', 's', 'i', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 's', 's',
-+ '2', 's', 'i', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 's', 's', '2', 's', 'i',
-+ '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'v', 'c', 'v', 't', 's', 's', '2', 'u', 's', 'i', '3', '2',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'v', 'c', 'v', 't', 's', 's', '2', 'u', 's', 'i', '6', '4', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-+ 'p', 'e', 'r', 'm', 'i', 'l', 'v', 'a', 'r', 'p', 'd', '5', '1', '2', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'v', 'p', 'e', 'r', 'm', 'i', 'l', 'v', 'a', 'r', 'p', 's', '5', '1', '2',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'b', 'e', 'x', 't', 'r', '_', 'u', '3', '2', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'e', 'x', 't',
-+ 'r', '_', 'u', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'b', 'z', 'h', 'i', '_', 's', 'i', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b',
-+ 'z', 'h', 'i', '_', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'd', 'e', 'p', '_', 's', 'i', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'p', 'd', 'e', 'p', '_', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'x', 't', '_', 's', 'i',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'p', 'e', 'x', 't', '_', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'l', 'f', 'l', 'u', 's',
-+ 'h', 'o', 'p', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'r', 'e', 'a', 'd', 'e', 'f', 'l', 'a', 'g', 's',
-+ '_', 'u', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'r', 'e', 'a', 'd', 'e', 'f', 'l', 'a', 'g', 's',
-+ '_', 'u', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'w', 'r', 'i', 't', 'e', 'e', 'f', 'l', 'a', 'g',
-+ 's', '_', 'u', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'w', 'r', 'i', 't', 'e', 'e', 'f', 'l', 'a',
-+ 'g', 's', '_', 'u', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p', 'd',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p', 'd', '2', '5', '6', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f',
-+ 'm', 'a', 'd', 'd', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p', 's',
-+ '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'd', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f',
-+ 'm', 'a', 'd', 'd', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u',
-+ 'b', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p', 'd',
-+ '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p', 's',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p', 's', '2', '5', '6',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'v', 'f', 'm', 's', 'u', 'b', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 's', 'u',
-+ 'b', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 's', 'u', 'b', 'p', 's',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'v', 'f', 'm', 's', 'u', 'b', 'p', 's', '2', '5', '6', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f',
-+ 'm', 's', 'u', 'b', 's', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 's', 'u', 'b', 's', 's',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'v', 'f', 'm', 's', 'u', 'b', 'a', 'd', 'd', 'p', 'd', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f',
-+ 'm', 's', 'u', 'b', 'a', 'd', 'd', 'p', 'd', '2', '5', '6', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f',
-+ 'm', 's', 'u', 'b', 'a', 'd', 'd', 'p', 's', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 's', 'u',
-+ 'b', 'a', 'd', 'd', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 'a',
-+ 'd', 'd', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 'a', 'd', 'd', 'p', 'd', '2',
-+ '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'v', 'f', 'n', 'm', 'a', 'd', 'd', 'p', 's', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f',
-+ 'n', 'm', 'a', 'd', 'd', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm',
-+ 'a', 'd', 'd', 's', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 'a', 'd', 'd', 's', 's',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'v', 'f', 'n', 'm', 's', 'u', 'b', 'p', 'd', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm',
-+ 's', 'u', 'b', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 's', 'u',
-+ 'b', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 's', 'u', 'b', 'p', 's', '2', '5',
-+ '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'v', 'f', 'n', 'm', 's', 'u', 'b', 's', 'd', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n',
-+ 'm', 's', 'u', 'b', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'x', 'r', 's', 't', 'o', 'r', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'f', 'x', 'r', 's', 't', 'o', 'r', '6', '4', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'x', 's', 'a', 'v',
-+ 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'f', 'x', 's', 'a', 'v', 'e', '6', '4', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'm', 'm', 's',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'f', 'e', 'm', 'm', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k', 'm', 'o', 'v', 'q',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'm', 'o', 'v', 'n', 't', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 's', 's', 'd',
-+ 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'a', 'c', 'k', 's', 's', 'w', 'b', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k',
-+ 'u', 's', 'w', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd', 'b', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd',
-+ 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'a', 'd', 'd', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd', 'w', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'a', 'd', 'd', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd', 's', 'w', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a',
-+ 'd', 'd', 'u', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd', 'u', 's', 'w', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'a', 'l', 'i', 'g', 'n', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'n', 'd', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'n',
-+ 'd', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'p', 'a', 'v', 'g', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'v', 'g', 'w', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'p', 'c', 'm', 'p', 'e', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'e', 'q', 'd',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'p', 'c', 'm', 'p', 'e', 'q', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'g', 't',
-+ 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'c', 'm', 'p', 'g', 't', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'g',
-+ 't', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'v', 'e', 'c', '_', 'e', 'x', 't', '_', 'v', '4', 'h', 'i',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'v', 'e', 'c', '_', 's', 'e', 't', '_', 'v', '4', 'h', 'i', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'm', 'a', 'd', 'd', 'w', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'a', 'x', 's', 'w', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'm', 'a', 'x', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'i', 'n', 's', 'w', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
-+ 'i', 'n', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'm', 's', 'k', 'b', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'm', 'u', 'l', 'h', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'u', 'w', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'm', 'u', 'l', 'l', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'u', 'd', 'q', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'p', 's', 'a', 'd', 'b', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'd',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'p', 's', 'l', 'l', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'w', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's',
-+ 'l', 'l', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'q', 'i', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l',
-+ 'l', 'w', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'w',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'p', 's', 'r', 'a', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'w', 'i', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'p', 's', 'r', 'l', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'q', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r',
-+ 'l', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'p', 's', 'r', 'l', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'q',
-+ 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 's', 'r', 'l', 'w', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b', 'b', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'p', 's', 'u', 'b', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b', 'q', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u',
-+ 'b', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'p', 's', 'u', 'b', 's', 'b', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b', 's',
-+ 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 's', 'u', 'b', 'u', 's', 'b', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b', 'u',
-+ 's', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'p', 'u', 'n', 'p', 'c', 'k', 'h', 'b', 'w', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'u',
-+ 'n', 'p', 'c', 'k', 'h', 'd', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'u', 'n', 'p', 'c', 'k', 'h',
-+ 'w', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'p', 'u', 'n', 'p', 'c', 'k', 'l', 'b', 'w', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'u',
-+ 'n', 'p', 'c', 'k', 'l', 'd', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'u', 'n', 'p', 'c', 'k', 'l',
-+ 'w', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'p', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'o', 'n', 'i', 't', 'o', 'r',
-+ 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'm', 'w', 'a', 'i', 't', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'l', 'm', 'u', 'l',
-+ 'q', 'd', 'q', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'd', 'f', 's', 'b', 'a', 's', 'e',
-+ '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'r', 'd', 'f', 's', 'b', 'a', 's', 'e', '6', '4', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r',
-+ 'd', 'g', 's', 'b', 'a', 's', 'e', '3', '2', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'd', 'g', 's', 'b',
-+ 'a', 's', 'e', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'r', 'd', 'p', 'k', 'r', 'u', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'd',
-+ 'p', 'm', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'r', 'd', 't', 's', 'c', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'd', 't', 's', 'c',
-+ 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 's', 'h', 'a', '1', 'm', 's', 'g', '1', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'h', 'a', '1',
-+ 'm', 's', 'g', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 's', 'h', 'a', '1', 'n', 'e', 'x', 't', 'e', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 's', 'h', 'a', '1', 'r', 'n', 'd', 's', '4', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'h', 'a', '2', '5',
-+ '6', 'm', 's', 'g', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 's', 'h', 'a', '2', '5', '6', 'm', 's', 'g',
-+ '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 's', 'h', 'a', '2', '5', '6', 'r', 'n', 'd', 's', '2', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-+ 'm', 'p', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'i', 'e', 'q', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm',
-+ 'i', 'g', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'c', 'o', 'm', 'i', 'g', 't', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'i',
-+ 'l', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'c', 'o', 'm', 'i', 'l', 't', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'i', 'n',
-+ 'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'p', 'i', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't',
-+ 'p', 'i', '2', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'i', '2', 'p', 's', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'c', 'v', 't', 'p', 's', '2', 'p', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 's', 's', '2',
-+ 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'c', 'v', 't', 's', 's', '2', 's', 'i', '6', '4', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-+ 'v', 't', 't', 'p', 'd', '2', 'p', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 's',
-+ '2', 'p', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'c', 'v', 't', 't', 's', 's', '2', 's', 'i', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-+ 'v', 't', 't', 's', 's', '2', 's', 'i', '6', '4', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 'x', 'p',
-+ 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'm', 'a', 'x', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'i', 'n', 'p', 's', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm',
-+ 'i', 'n', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'm', 'o', 'v', 'm', 's', 'k', 'p', 's', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 's', 'h', 'u', 'f', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'r', 'c', 'p', 'p', 's', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'c', 'p',
-+ 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'r', 's', 'q', 'r', 't', 'p', 's', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 's', 'q', 'r',
-+ 't', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 's', 'f', 'e', 'n', 'c', 'e', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'q', 'r', 't',
-+ 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 's', 'q', 'r', 't', 's', 's', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'u', 'c', 'o', 'm', 'i',
-+ 'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'u', 'c', 'o', 'm', 'i', 'g', 'e', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'u', 'c', 'o', 'm',
-+ 'i', 'g', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'u', 'c', 'o', 'm', 'i', 'l', 'e', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'u', 'c', 'o',
-+ 'm', 'i', 'l', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'u', 'c', 'o', 'm', 'i', 'n', 'e', 'q', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-+ 'l', 'f', 'l', 'u', 's', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'm', 'p', 's', 'd', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o',
-+ 'm', 'i', 's', 'd', 'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'i', 's', 'd', 'g', 'e',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'c', 'o', 'm', 'i', 's', 'd', 'g', 't', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'i', 's',
-+ 'd', 'l', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'c', 'o', 'm', 'i', 's', 'd', 'l', 't', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o',
-+ 'm', 'i', 's', 'd', 'n', 'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'd', 'q', '2', 'p',
-+ 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'd', 'q', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p',
-+ 'd', '2', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 's', '2', 'd', 'q', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-+ 'v', 't', 's', 'd', '2', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 's', 'd', '2', 's',
-+ 'i', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'c', 'v', 't', 's', 'd', '2', 's', 's', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v',
-+ 't', 't', 'p', 'd', '2', 'd', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 's', '2',
-+ 'd', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'c', 'v', 't', 't', 's', 'd', '2', 's', 'i', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v',
-+ 't', 't', 's', 'd', '2', 's', 'i', '6', '4', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'l', 'f', 'e', 'n', 'c',
-+ 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'm', 'a', 's', 'k', 'm', 'o', 'v', 'd', 'q', 'u', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a',
-+ 'x', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'm', 'a', 'x', 's', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'f', 'e', 'n', 'c',
-+ 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'm', 'i', 'n', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'i', 'n', 's', 'd', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm',
-+ 'o', 'v', 'm', 's', 'k', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 's', 's', 'd',
-+ 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 's', 's', 'w', 'b', '1', '2',
-+ '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'a', 'c', 'k', 'u', 's', 'w', 'b', '1', '2', '8', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'a', 'd', 'd', 's', 'b', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd', 's', 'w',
-+ '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'p', 'a', 'd', 'd', 'u', 's', 'b', '1', '2', '8', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'p', 'a', 'd', 'd', 'u', 's', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'u', 's',
-+ 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'a', 'v', 'g', 'b', '1', '2', '8', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'v', 'g',
-+ 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 'm', 'a', 'd', 'd', 'w', 'd', '1', '2', '8',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'p', 'm', 'o', 'v', 'm', 's', 'k', 'b', '1', '2', '8', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
-+ 'u', 'l', 'h', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'u', 'w',
-+ '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'u', 'd', 'q', '1', '2', '8', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'p', 's', 'a', 'd', 'b', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'd',
-+ '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'q', '1', '2', '8', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's',
-+ 'l', 'l', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'd', 'i', '1', '2',
-+ '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 's', 'l', 'l', 'q', 'i', '1', '2', '8', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l',
-+ 'l', 'w', 'i', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'd', '1', '2', '8',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'p', 's', 'r', 'a', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'd',
-+ 'i', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'w', 'i', '1', '2', '8', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'p', 's', 'r', 'l', 'd', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'q', '1',
-+ '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'p', 's', 'r', 'l', 'w', '1', '2', '8', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r',
-+ 'l', 'd', 'i', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'q', 'i', '1', '2',
-+ '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 's', 'r', 'l', 'w', 'i', '1', '2', '8', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u',
-+ 'b', 's', 'b', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b', 's', 'w', '1', '2',
-+ '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 's', 'u', 'b', 'u', 's', 'b', '1', '2', '8', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's',
-+ 'u', 'b', 'u', 's', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'q', 'r', 't', 'p', 'd',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 's', 'q', 'r', 't', 's', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'u', 'c', 'o', 'm', 'i', 's', 'd',
-+ 'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'u', 'c', 'o', 'm', 'i', 's', 'd', 'g', 'e', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'u', 'c',
-+ 'o', 'm', 'i', 's', 'd', 'g', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'u', 'c', 'o', 'm', 'i', 's', 'd',
-+ 'l', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'u', 'c', 'o', 'm', 'i', 's', 'd', 'l', 't', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'u', 'c',
-+ 'o', 'm', 'i', 's', 'd', 'n', 'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'd', 'd', 's', 'u', 'b',
-+ 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'a', 'd', 'd', 's', 'u', 'b', 'p', 's', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'h', 'a', 'd',
-+ 'd', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'h', 'a', 'd', 'd', 'p', 's', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'h', 's', 'u', 'b',
-+ 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'h', 's', 'u', 'b', 'p', 's', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'l', 'd', 'd', 'q', 'u',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'm', 'o', 'n', 'i', 't', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'w', 'a', 'i', 't', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'b', 'l', 'e', 'n', 'd', 'v', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'l', 'e', 'n', 'd', 'v',
-+ 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'd', 'p', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'd', 'p', 'p', 's', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'i', 'n',
-+ 's', 'e', 'r', 't', 'p', 's', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'o', 'v', 'n', 't',
-+ 'd', 'q', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'm', 'p', 's', 'a', 'd', 'b', 'w', '1', '2', '8', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'p', 'a', 'c', 'k', 'u', 's', 'd', 'w', '1', '2', '8', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'b', 'l',
-+ 'e', 'n', 'd', 'v', 'b', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'h', 'm', 'i', 'n', 'p',
-+ 'o', 's', 'u', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'd', 'q', '1',
-+ '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'p', 't', 'e', 's', 't', 'c', '1', '2', '8', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't',
-+ 'e', 's', 't', 'n', 'z', 'c', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't',
-+ 'z', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'r', 'o', 'u', 'n', 'd', 'p', 'd', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'o',
-+ 'u', 'n', 'd', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'r', 'o', 'u', 'n', 'd', 's', 'd', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r',
-+ 'o', 'u', 'n', 'd', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'r', 'c', '3', '2', 'h', 'i', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'c', 'r', 'c', '3', '2', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'r', 'c', '3', '2', 'q', 'i',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'c', 'r', 'c', '3', '2', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'e', 's',
-+ 't', 'r', 'i', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'e', 's', 't', 'r',
-+ 'i', 'a', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'e', 's', 't', 'r', 'i',
-+ 'c', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'e', 's', 't', 'r', 'i', 'o',
-+ '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'e', 's', 't', 'r', 'i', 's', '1',
-+ '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'p', 'c', 'm', 'p', 'e', 's', 't', 'r', 'i', 'z', '1', '2',
-+ '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'c', 'm', 'p', 'e', 's', 't', 'r', 'm', '1', '2', '8', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'p', 'c', 'm', 'p', 'i', 's', 't', 'r', 'i', '1', '2', '8', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c',
-+ 'm', 'p', 'i', 's', 't', 'r', 'i', 'a', '1', '2', '8', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm',
-+ 'p', 'i', 's', 't', 'r', 'i', 'c', '1', '2', '8', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p',
-+ 'i', 's', 't', 'r', 'i', 'o', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'i',
-+ 's', 't', 'r', 'i', 's', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'i', 's',
-+ 't', 'r', 'i', 'z', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'i', 's', 't',
-+ 'r', 'm', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'e', 'x', 't', 'r', 'q', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 't',
-+ 'r', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'i', 'n', 's', 'e', 'r', 't', 'q', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'i', 'n', 's',
-+ 'e', 'r', 't', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b', 's', 'b', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b',
-+ 's', 'b', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b', 's', 'd', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b',
-+ 's', 'd', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b', 's', 'w', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b',
-+ 's', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'p', 'h', 'a', 'd', 'd', 'd', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'h',
-+ 'a', 'd', 'd', 'd', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'h', 'a', 'd', 'd', 's', 'w',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'p', 'h', 'a', 'd', 'd', 's', 'w', '1', '2', '8', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'h', 'a',
-+ 'd', 'd', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'p', 'h', 'a', 'd', 'd', 'w', '1', '2', '8', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+ 'h', 's', 'u', 'b', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'p', 'h', 's', 'u', 'b', 'd', '1', '2', '8',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'p', 'h', 's', 'u', 'b', 's', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'h', 's', 'u', 'b', 's',
-+ 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'p', 'h', 's', 'u', 'b', 'w', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'h', 's',
-+ 'u', 'b', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'a', 'd', 'd', 'u', 'b', 's',
-+ 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 'm', 'a', 'd', 'd', 'u', 'b', 's', 'w', '1', '2', '8', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'p', 'm', 'u', 'l', 'h', 'r', 's', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'r',
-+ 's', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'p', 's', 'h', 'u', 'f', 'b', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's',
-+ 'h', 'u', 'f', 'b', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'i', 'g', 'n', 'b', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'p', 's', 'i', 'g', 'n', 'b', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'i', 'g', 'n',
-+ 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'p', 's', 'i', 'g', 'n', 'd', '1', '2', '8', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'i',
-+ 'g', 'n', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'p', 's', 'i', 'g', 'n', 'w', '1', '2', '8', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's',
-+ 'u', 'b', 'b', 'o', 'r', 'r', 'o', 'w', '_', 'u', '3', '2', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'u',
-+ 'b', 'b', 'o', 'r', 'r', 'o', 'w', '_', 'u', '6', '4', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'e', 'x',
-+ 't', 'r', 'i', '_', 'u', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'e', 'x', 't', 'r', 'i', '_',
-+ 'u', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'v', 'c', 'v', 't', 'p', 'h', '2', 'p', 's', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-+ 'c', 'v', 't', 'p', 'h', '2', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v',
-+ 't', 'p', 's', '2', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 'p', 's', '2', 'p',
-+ 'h', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'w', 'r', 'f', 's', 'b', 'a', 's', 'e', '3', '2',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'w', 'r', 'f', 's', 'b', 'a', 's', 'e', '6', '4', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'w', 'r', 'g',
-+ 's', 'b', 'a', 's', 'e', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'w', 'r', 'g', 's', 'b', 'a', 's',
-+ 'e', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'w', 'r', 'p', 'k', 'r', 'u', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'x', 'a', 'b', 'o',
-+ 'r', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'x', 'b', 'e', 'g', 'i', 'n', '\000', '_', '_', 'b', 'u', 'i',
-+ 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'x', 'e', 'n', 'd', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'v', 'f', 'r', 'c', 'z', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'r', 'c', 'z', 'p', 'd',
-+ '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'v', 'f', 'r', 'c', 'z', 'p', 's', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'r',
-+ 'c', 'z', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'r', 'c', 'z', 's', 'd',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'v', 'f', 'r', 'c', 'z', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'c', 'm', 'o', 'v',
-+ '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+ '_', 'v', 'p', 'c', 'm', 'o', 'v', '_', '2', '5', '6', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'c',
-+ 'o', 'm', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'v', 'p', 'c', 'o', 'm', 'd', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'c', 'o',
-+ 'm', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'v', 'p', 'c', 'o', 'm', 'u', 'b', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'c', 'o',
-+ 'm', 'u', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'v', 'p', 'c', 'o', 'm', 'u', 'q', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'c',
-+ 'o', 'm', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'v', 'p', 'c', 'o', 'm', 'w', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e',
-+ 'r', 'm', 'i', 'l', '2', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', 'l',
-+ '2', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', 'l', '2',
-+ 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', 'l', '2', 'p', 's', '2', '5',
-+ '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'v', 'p', 'h', 'a', 'd', 'd', 'b', 'd', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'h', 'a',
-+ 'd', 'd', 'b', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'v', 'p', 'h', 'a', 'd', 'd', 'b', 'w', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-+ 'p', 'h', 'a', 'd', 'd', 'd', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'h', 'a', 'd', 'd', 'u',
-+ 'b', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'v', 'p', 'h', 'a', 'd', 'd', 'u', 'b', 'q', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
-+ 'h', 'a', 'd', 'd', 'u', 'b', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'h', 'a', 'd', 'd', 'u',
-+ 'd', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+ '3', '2', '_', 'v', 'p', 'h', 'a', 'd', 'd', 'u', 'w', 'd', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
-+ 'h', 'a', 'd', 'd', 'u', 'w', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'h', 'a', 'd', 'd', 'w',
-+ 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'v', 'p', 'h', 'a', 'd', 'd', 'w', 'q', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'h', 's',
-+ 'u', 'b', 'b', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'v', 'p', 'h', 's', 'u', 'b', 'd', 'q', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-+ 'p', 'h', 's', 'u', 'b', 'w', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'c', 's', 'd',
-+ 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'v', 'p', 'm', 'a', 'c', 's', 'd', 'q', 'h', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm',
-+ 'a', 'c', 's', 'd', 'q', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'c', 's', 's', 'd',
-+ 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'v', 'p', 'm', 'a', 'c', 's', 's', 'd', 'q', 'h', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
-+ 'm', 'a', 'c', 's', 's', 'd', 'q', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+ 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'c', 's',
-+ 's', 'w', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'c', 's', 's', 'w', 'w', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-+ 'p', 'm', 'a', 'c', 's', 'w', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'c', 's', 'w',
-+ 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+ '2', '_', 'v', 'p', 'm', 'a', 'd', 'c', 's', 's', 'w', 'd', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
-+ 'm', 'a', 'd', 'c', 's', 'w', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+ 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'p', 'e', 'r', 'm', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'v', 'p', 'r', 'o', 't', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'r', 'o', 't', 'b', 'i', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'v', 'p', 'r', 'o', 't', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'r', 'o', 't', 'd', 'i', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'v', 'p', 'r', 'o', 't', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'r', 'o', 't', 'q', 'i', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'v', 'p', 'r', 'o', 't', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'r', 'o', 't', 'w', 'i', '\000',
-+ '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+ 'v', 'p', 's', 'h', 'a', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+ 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'a', 'd', '\000', '_',
-+ '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-+ 'p', 's', 'h', 'a', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'a', 'w', '\000', '_', '_',
-+ 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
-+ 's', 'h', 'l', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'l', 'd', '\000', '_', '_', 'b',
-+ 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's',
-+ 'h', 'l', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+ 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'l', 'w', '\000', '_', '_', 'b', 'u',
-+ 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'x', 't', 'e', 's',
-+ 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'b', 'i', 't',
-+ 'r', 'e', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'g',
-+ 'e', 't', 'i', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+ 'g', 'e', 't', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+ '_', 's', 'e', 't', 'p', 's', '\000',
-+ };
-+
-+ struct BuiltinEntry {
-+ Intrinsic::ID IntrinID;
-+ unsigned StrTabOffset;
-+ const char *getName() const {
-+ return &BuiltinNames[StrTabOffset];
-+ }
-+ bool operator<(StringRef RHS) const {
-+ return strncmp(getName(), RHS.data(), RHS.size()) < 0;
-+ }
-+ };
-+ StringRef TargetPrefix(TargetPrefixStr);
-+
-+ /* Target Independent Builtins */ {
-+ static const BuiltinEntry Names[] = {
-+ {Intrinsic::adjust_trampoline, 0}, // __builtin_adjust_trampoline
-+ {Intrinsic::debugtrap, 28}, // __builtin_debugtrap
-+ {Intrinsic::flt_rounds, 70}, // __builtin_flt_rounds
-+ {Intrinsic::init_trampoline, 91}, // __builtin_init_trampoline
-+ {Intrinsic::objectsize, 117}, // __builtin_object_size
-+ {Intrinsic::stackrestore, 139}, // __builtin_stack_restore
-+ {Intrinsic::stacksave, 163}, // __builtin_stack_save
-+ {Intrinsic::thread_pointer, 184}, // __builtin_thread_pointer
-+ {Intrinsic::trap, 209}, // __builtin_trap
-+ {Intrinsic::eh_unwind_init, 48}, // __builtin_unwind_init
-+ };
-+ auto I = std::lower_bound(std::begin(Names),
-+ std::end(Names),
-+ BuiltinNameStr);
-+ if (I != std::end(Names) &&
-+ I->getName() == BuiltinNameStr)
-+ return I->IntrinID;
-+ }
-+ if (TargetPrefix == "aarch64") {
-+ static const BuiltinEntry aarch64Names[] = {
-+ {Intrinsic::aarch64_dmb, 224}, // __builtin_arm_dmb
-+ {Intrinsic::aarch64_dsb, 242}, // __builtin_arm_dsb
-+ {Intrinsic::aarch64_isb, 260}, // __builtin_arm_isb
-+ };
-+ auto I = std::lower_bound(std::begin(aarch64Names),
-+ std::end(aarch64Names),
-+ BuiltinNameStr);
-+ if (I != std::end(aarch64Names) &&
-+ I->getName() == BuiltinNameStr)
-+ return I->IntrinID;
-+ }
-+ if (TargetPrefix == "amdgcn") {
-+ static const BuiltinEntry amdgcnNames[] = {
-+ {Intrinsic::amdgcn_buffer_wbinvl1, 278}, // __builtin_amdgcn_buffer_wbinvl1
-+ {Intrinsic::amdgcn_buffer_wbinvl1_sc, 310}, // __builtin_amdgcn_buffer_wbinvl1_sc
-+ {Intrinsic::amdgcn_buffer_wbinvl1_vol, 345}, // __builtin_amdgcn_buffer_wbinvl1_vol
-+ {Intrinsic::amdgcn_cubeid, 381}, // __builtin_amdgcn_cubeid
-+ {Intrinsic::amdgcn_cubema, 405}, // __builtin_amdgcn_cubema
-+ {Intrinsic::amdgcn_cubesc, 429}, // __builtin_amdgcn_cubesc
-+ {Intrinsic::amdgcn_cubetc, 453}, // __builtin_amdgcn_cubetc
-+ {Intrinsic::amdgcn_cvt_pk_u8_f32, 477}, // __builtin_amdgcn_cvt_pk_u8_f32
-+ {Intrinsic::amdgcn_dispatch_id, 508}, // __builtin_amdgcn_dispatch_id
-+ {Intrinsic::amdgcn_dispatch_ptr, 537}, // __builtin_amdgcn_dispatch_ptr
-+ {Intrinsic::amdgcn_ds_swizzle, 567}, // __builtin_amdgcn_ds_swizzle
-+ {Intrinsic::amdgcn_fmul_legacy, 595}, // __builtin_amdgcn_fmul_legacy
-+ {Intrinsic::amdgcn_groupstaticsize, 624}, // __builtin_amdgcn_groupstaticsize
-+ {Intrinsic::amdgcn_implicitarg_ptr, 657}, // __builtin_amdgcn_implicitarg_ptr
-+ {Intrinsic::amdgcn_interp_mov, 690}, // __builtin_amdgcn_interp_mov
-+ {Intrinsic::amdgcn_interp_p1, 718}, // __builtin_amdgcn_interp_p1
-+ {Intrinsic::amdgcn_interp_p2, 745}, // __builtin_amdgcn_interp_p2
-+ {Intrinsic::amdgcn_kernarg_segment_ptr, 772}, // __builtin_amdgcn_kernarg_segment_ptr
-+ {Intrinsic::amdgcn_lerp, 809}, // __builtin_amdgcn_lerp
-+ {Intrinsic::amdgcn_mbcnt_hi, 831}, // __builtin_amdgcn_mbcnt_hi
-+ {Intrinsic::amdgcn_mbcnt_lo, 857}, // __builtin_amdgcn_mbcnt_lo
-+ {Intrinsic::amdgcn_mqsad_pk_u16_u8, 883}, // __builtin_amdgcn_mqsad_pk_u16_u8
-+ {Intrinsic::amdgcn_mqsad_u32_u8, 916}, // __builtin_amdgcn_mqsad_u32_u8
-+ {Intrinsic::amdgcn_msad_u8, 946}, // __builtin_amdgcn_msad_u8
-+ {Intrinsic::amdgcn_qsad_pk_u16_u8, 971}, // __builtin_amdgcn_qsad_pk_u16_u8
-+ {Intrinsic::amdgcn_queue_ptr, 1003}, // __builtin_amdgcn_queue_ptr
-+ {Intrinsic::amdgcn_rcp_legacy, 1030}, // __builtin_amdgcn_rcp_legacy
-+ {Intrinsic::amdgcn_readfirstlane, 1058}, // __builtin_amdgcn_readfirstlane
-+ {Intrinsic::amdgcn_readlane, 1089}, // __builtin_amdgcn_readlane
-+ {Intrinsic::amdgcn_rsq_legacy, 1115}, // __builtin_amdgcn_rsq_legacy
-+ {Intrinsic::amdgcn_s_barrier, 1143}, // __builtin_amdgcn_s_barrier
-+ {Intrinsic::amdgcn_s_dcache_inv, 1170}, // __builtin_amdgcn_s_dcache_inv
-+ {Intrinsic::amdgcn_s_dcache_inv_vol, 1200}, // __builtin_amdgcn_s_dcache_inv_vol
-+ {Intrinsic::amdgcn_s_dcache_wb, 1234}, // __builtin_amdgcn_s_dcache_wb
-+ {Intrinsic::amdgcn_s_dcache_wb_vol, 1263}, // __builtin_amdgcn_s_dcache_wb_vol
-+ {Intrinsic::amdgcn_s_decperflevel, 1296}, // __builtin_amdgcn_s_decperflevel
-+ {Intrinsic::amdgcn_s_getreg, 1328}, // __builtin_amdgcn_s_getreg
-+ {Intrinsic::amdgcn_s_incperflevel, 1354}, // __builtin_amdgcn_s_incperflevel
-+ {Intrinsic::amdgcn_s_memrealtime, 1386}, // __builtin_amdgcn_s_memrealtime
-+ {Intrinsic::amdgcn_s_memtime, 1417}, // __builtin_amdgcn_s_memtime
-+ {Intrinsic::amdgcn_s_sleep, 1444}, // __builtin_amdgcn_s_sleep
-+ {Intrinsic::amdgcn_sad_hi_u8, 1469}, // __builtin_amdgcn_sad_hi_u8
-+ {Intrinsic::amdgcn_sad_u16, 1496}, // __builtin_amdgcn_sad_u16
-+ {Intrinsic::amdgcn_sad_u8, 1521}, // __builtin_amdgcn_sad_u8
-+ {Intrinsic::amdgcn_wave_barrier, 1545}, // __builtin_amdgcn_wave_barrier
-+ {Intrinsic::amdgcn_workgroup_id_x, 1575}, // __builtin_amdgcn_workgroup_id_x
-+ {Intrinsic::amdgcn_workgroup_id_y, 1607}, // __builtin_amdgcn_workgroup_id_y
-+ {Intrinsic::amdgcn_workgroup_id_z, 1639}, // __builtin_amdgcn_workgroup_id_z
-+ };
-+ auto I = std::lower_bound(std::begin(amdgcnNames),
-+ std::end(amdgcnNames),
-+ BuiltinNameStr);
-+ if (I != std::end(amdgcnNames) &&
-+ I->getName() == BuiltinNameStr)
-+ return I->IntrinID;
-+ }
-+ if (TargetPrefix == "arm") {
-+ static const BuiltinEntry armNames[] = {
-+ {Intrinsic::arm_cdp, 1671}, // __builtin_arm_cdp
-+ {Intrinsic::arm_cdp2, 1689}, // __builtin_arm_cdp2
-+ {Intrinsic::arm_dmb, 224}, // __builtin_arm_dmb
-+ {Intrinsic::arm_dsb, 242}, // __builtin_arm_dsb
-+ {Intrinsic::arm_get_fpscr, 1708}, // __builtin_arm_get_fpscr
-+ {Intrinsic::arm_isb, 260}, // __builtin_arm_isb
-+ {Intrinsic::arm_ldc, 1732}, // __builtin_arm_ldc
-+ {Intrinsic::arm_ldc2, 1750}, // __builtin_arm_ldc2
-+ {Intrinsic::arm_ldc2l, 1769}, // __builtin_arm_ldc2l
-+ {Intrinsic::arm_ldcl, 1789}, // __builtin_arm_ldcl
-+ {Intrinsic::arm_mcr, 1808}, // __builtin_arm_mcr
-+ {Intrinsic::arm_mcr2, 1826}, // __builtin_arm_mcr2
-+ {Intrinsic::arm_mrc, 1845}, // __builtin_arm_mrc
-+ {Intrinsic::arm_mrc2, 1863}, // __builtin_arm_mrc2
-+ {Intrinsic::arm_qadd, 1882}, // __builtin_arm_qadd
-+ {Intrinsic::arm_qsub, 1901}, // __builtin_arm_qsub
-+ {Intrinsic::arm_set_fpscr, 1920}, // __builtin_arm_set_fpscr
-+ {Intrinsic::arm_ssat, 1944}, // __builtin_arm_ssat
-+ {Intrinsic::arm_stc, 1963}, // __builtin_arm_stc
-+ {Intrinsic::arm_stc2, 1981}, // __builtin_arm_stc2
-+ {Intrinsic::arm_stc2l, 2000}, // __builtin_arm_stc2l
-+ {Intrinsic::arm_stcl, 2020}, // __builtin_arm_stcl
-+ {Intrinsic::arm_usat, 2039}, // __builtin_arm_usat
-+ };
-+ auto I = std::lower_bound(std::begin(armNames),
-+ std::end(armNames),
-+ BuiltinNameStr);
-+ if (I != std::end(armNames) &&
-+ I->getName() == BuiltinNameStr)
-+ return I->IntrinID;
-+ }
-+ if (TargetPrefix == "bpf") {
-+ static const BuiltinEntry bpfNames[] = {
-+ {Intrinsic::bpf_load_byte, 2058}, // __builtin_bpf_load_byte
-+ {Intrinsic::bpf_load_half, 2082}, // __builtin_bpf_load_half
-+ {Intrinsic::bpf_load_word, 2106}, // __builtin_bpf_load_word
-+ {Intrinsic::bpf_pseudo, 2130}, // __builtin_bpf_pseudo
-+ };
-+ auto I = std::lower_bound(std::begin(bpfNames),
-+ std::end(bpfNames),
-+ BuiltinNameStr);
-+ if (I != std::end(bpfNames) &&
-+ I->getName() == BuiltinNameStr)
-+ return I->IntrinID;
-+ }
-+ if (TargetPrefix == "hexagon") {
-+ static const BuiltinEntry hexagonNames[] = {
-+ {Intrinsic::hexagon_A2_abs, 2151}, // __builtin_HEXAGON_A2_abs
-+ {Intrinsic::hexagon_A2_absp, 2176}, // __builtin_HEXAGON_A2_absp
-+ {Intrinsic::hexagon_A2_abssat, 2202}, // __builtin_HEXAGON_A2_abssat
-+ {Intrinsic::hexagon_A2_add, 2230}, // __builtin_HEXAGON_A2_add
-+ {Intrinsic::hexagon_A2_addh_h16_hh, 2255}, // __builtin_HEXAGON_A2_addh_h16_hh
-+ {Intrinsic::hexagon_A2_addh_h16_hl, 2288}, // __builtin_HEXAGON_A2_addh_h16_hl
-+ {Intrinsic::hexagon_A2_addh_h16_lh, 2321}, // __builtin_HEXAGON_A2_addh_h16_lh
-+ {Intrinsic::hexagon_A2_addh_h16_ll, 2354}, // __builtin_HEXAGON_A2_addh_h16_ll
-+ {Intrinsic::hexagon_A2_addh_h16_sat_hh, 2387}, // __builtin_HEXAGON_A2_addh_h16_sat_hh
-+ {Intrinsic::hexagon_A2_addh_h16_sat_hl, 2424}, // __builtin_HEXAGON_A2_addh_h16_sat_hl
-+ {Intrinsic::hexagon_A2_addh_h16_sat_lh, 2461}, // __builtin_HEXAGON_A2_addh_h16_sat_lh
-+ {Intrinsic::hexagon_A2_addh_h16_sat_ll, 2498}, // __builtin_HEXAGON_A2_addh_h16_sat_ll
-+ {Intrinsic::hexagon_A2_addh_l16_hl, 2535}, // __builtin_HEXAGON_A2_addh_l16_hl
-+ {Intrinsic::hexagon_A2_addh_l16_ll, 2568}, // __builtin_HEXAGON_A2_addh_l16_ll
-+ {Intrinsic::hexagon_A2_addh_l16_sat_hl, 2601}, // __builtin_HEXAGON_A2_addh_l16_sat_hl
-+ {Intrinsic::hexagon_A2_addh_l16_sat_ll, 2638}, // __builtin_HEXAGON_A2_addh_l16_sat_ll
-+ {Intrinsic::hexagon_A2_addi, 2675}, // __builtin_HEXAGON_A2_addi
-+ {Intrinsic::hexagon_A2_addp, 2701}, // __builtin_HEXAGON_A2_addp
-+ {Intrinsic::hexagon_A2_addpsat, 2727}, // __builtin_HEXAGON_A2_addpsat
-+ {Intrinsic::hexagon_A2_addsat, 2756}, // __builtin_HEXAGON_A2_addsat
-+ {Intrinsic::hexagon_A2_addsp, 2784}, // __builtin_HEXAGON_A2_addsp
-+ {Intrinsic::hexagon_A2_and, 2811}, // __builtin_HEXAGON_A2_and
-+ {Intrinsic::hexagon_A2_andir, 2836}, // __builtin_HEXAGON_A2_andir
-+ {Intrinsic::hexagon_A2_andp, 2863}, // __builtin_HEXAGON_A2_andp
-+ {Intrinsic::hexagon_A2_aslh, 2889}, // __builtin_HEXAGON_A2_aslh
-+ {Intrinsic::hexagon_A2_asrh, 2915}, // __builtin_HEXAGON_A2_asrh
-+ {Intrinsic::hexagon_A2_combine_hh, 2941}, // __builtin_HEXAGON_A2_combine_hh
-+ {Intrinsic::hexagon_A2_combine_hl, 2973}, // __builtin_HEXAGON_A2_combine_hl
-+ {Intrinsic::hexagon_A2_combine_lh, 3005}, // __builtin_HEXAGON_A2_combine_lh
-+ {Intrinsic::hexagon_A2_combine_ll, 3037}, // __builtin_HEXAGON_A2_combine_ll
-+ {Intrinsic::hexagon_A2_combineii, 3069}, // __builtin_HEXAGON_A2_combineii
-+ {Intrinsic::hexagon_A2_combinew, 3100}, // __builtin_HEXAGON_A2_combinew
-+ {Intrinsic::hexagon_A2_max, 3130}, // __builtin_HEXAGON_A2_max
-+ {Intrinsic::hexagon_A2_maxp, 3155}, // __builtin_HEXAGON_A2_maxp
-+ {Intrinsic::hexagon_A2_maxu, 3181}, // __builtin_HEXAGON_A2_maxu
-+ {Intrinsic::hexagon_A2_maxup, 3207}, // __builtin_HEXAGON_A2_maxup
-+ {Intrinsic::hexagon_A2_min, 3234}, // __builtin_HEXAGON_A2_min
-+ {Intrinsic::hexagon_A2_minp, 3259}, // __builtin_HEXAGON_A2_minp
-+ {Intrinsic::hexagon_A2_minu, 3285}, // __builtin_HEXAGON_A2_minu
-+ {Intrinsic::hexagon_A2_minup, 3311}, // __builtin_HEXAGON_A2_minup
-+ {Intrinsic::hexagon_A2_neg, 3338}, // __builtin_HEXAGON_A2_neg
-+ {Intrinsic::hexagon_A2_negp, 3363}, // __builtin_HEXAGON_A2_negp
-+ {Intrinsic::hexagon_A2_negsat, 3389}, // __builtin_HEXAGON_A2_negsat
-+ {Intrinsic::hexagon_A2_not, 3417}, // __builtin_HEXAGON_A2_not
-+ {Intrinsic::hexagon_A2_notp, 3442}, // __builtin_HEXAGON_A2_notp
-+ {Intrinsic::hexagon_A2_or, 3468}, // __builtin_HEXAGON_A2_or
-+ {Intrinsic::hexagon_A2_orir, 3492}, // __builtin_HEXAGON_A2_orir
-+ {Intrinsic::hexagon_A2_orp, 3518}, // __builtin_HEXAGON_A2_orp
-+ {Intrinsic::hexagon_A2_roundsat, 3543}, // __builtin_HEXAGON_A2_roundsat
-+ {Intrinsic::hexagon_A2_sat, 3573}, // __builtin_HEXAGON_A2_sat
-+ {Intrinsic::hexagon_A2_satb, 3598}, // __builtin_HEXAGON_A2_satb
-+ {Intrinsic::hexagon_A2_sath, 3624}, // __builtin_HEXAGON_A2_sath
-+ {Intrinsic::hexagon_A2_satub, 3650}, // __builtin_HEXAGON_A2_satub
-+ {Intrinsic::hexagon_A2_satuh, 3677}, // __builtin_HEXAGON_A2_satuh
-+ {Intrinsic::hexagon_A2_sub, 3704}, // __builtin_HEXAGON_A2_sub
-+ {Intrinsic::hexagon_A2_subh_h16_hh, 3729}, // __builtin_HEXAGON_A2_subh_h16_hh
-+ {Intrinsic::hexagon_A2_subh_h16_hl, 3762}, // __builtin_HEXAGON_A2_subh_h16_hl
-+ {Intrinsic::hexagon_A2_subh_h16_lh, 3795}, // __builtin_HEXAGON_A2_subh_h16_lh
-+ {Intrinsic::hexagon_A2_subh_h16_ll, 3828}, // __builtin_HEXAGON_A2_subh_h16_ll
-+ {Intrinsic::hexagon_A2_subh_h16_sat_hh, 3861}, // __builtin_HEXAGON_A2_subh_h16_sat_hh
-+ {Intrinsic::hexagon_A2_subh_h16_sat_hl, 3898}, // __builtin_HEXAGON_A2_subh_h16_sat_hl
-+ {Intrinsic::hexagon_A2_subh_h16_sat_lh, 3935}, // __builtin_HEXAGON_A2_subh_h16_sat_lh
-+ {Intrinsic::hexagon_A2_subh_h16_sat_ll, 3972}, // __builtin_HEXAGON_A2_subh_h16_sat_ll
-+ {Intrinsic::hexagon_A2_subh_l16_hl, 4009}, // __builtin_HEXAGON_A2_subh_l16_hl
-+ {Intrinsic::hexagon_A2_subh_l16_ll, 4042}, // __builtin_HEXAGON_A2_subh_l16_ll
-+ {Intrinsic::hexagon_A2_subh_l16_sat_hl, 4075}, // __builtin_HEXAGON_A2_subh_l16_sat_hl
-+ {Intrinsic::hexagon_A2_subh_l16_sat_ll, 4112}, // __builtin_HEXAGON_A2_subh_l16_sat_ll
-+ {Intrinsic::hexagon_A2_subp, 4149}, // __builtin_HEXAGON_A2_subp
-+ {Intrinsic::hexagon_A2_subri, 4175}, // __builtin_HEXAGON_A2_subri
-+ {Intrinsic::hexagon_A2_subsat, 4202}, // __builtin_HEXAGON_A2_subsat
-+ {Intrinsic::hexagon_A2_svaddh, 4230}, // __builtin_HEXAGON_A2_svaddh
-+ {Intrinsic::hexagon_A2_svaddhs, 4258}, // __builtin_HEXAGON_A2_svaddhs
-+ {Intrinsic::hexagon_A2_svadduhs, 4287}, // __builtin_HEXAGON_A2_svadduhs
-+ {Intrinsic::hexagon_A2_svavgh, 4317}, // __builtin_HEXAGON_A2_svavgh
-+ {Intrinsic::hexagon_A2_svavghs, 4345}, // __builtin_HEXAGON_A2_svavghs
-+ {Intrinsic::hexagon_A2_svnavgh, 4374}, // __builtin_HEXAGON_A2_svnavgh
-+ {Intrinsic::hexagon_A2_svsubh, 4403}, // __builtin_HEXAGON_A2_svsubh
-+ {Intrinsic::hexagon_A2_svsubhs, 4431}, // __builtin_HEXAGON_A2_svsubhs
-+ {Intrinsic::hexagon_A2_svsubuhs, 4460}, // __builtin_HEXAGON_A2_svsubuhs
-+ {Intrinsic::hexagon_A2_swiz, 4490}, // __builtin_HEXAGON_A2_swiz
-+ {Intrinsic::hexagon_A2_sxtb, 4516}, // __builtin_HEXAGON_A2_sxtb
-+ {Intrinsic::hexagon_A2_sxth, 4542}, // __builtin_HEXAGON_A2_sxth
-+ {Intrinsic::hexagon_A2_sxtw, 4568}, // __builtin_HEXAGON_A2_sxtw
-+ {Intrinsic::hexagon_A2_tfr, 4594}, // __builtin_HEXAGON_A2_tfr
-+ {Intrinsic::hexagon_A2_tfrih, 4619}, // __builtin_HEXAGON_A2_tfrih
-+ {Intrinsic::hexagon_A2_tfril, 4646}, // __builtin_HEXAGON_A2_tfril
-+ {Intrinsic::hexagon_A2_tfrp, 4673}, // __builtin_HEXAGON_A2_tfrp
-+ {Intrinsic::hexagon_A2_tfrpi, 4699}, // __builtin_HEXAGON_A2_tfrpi
-+ {Intrinsic::hexagon_A2_tfrsi, 4726}, // __builtin_HEXAGON_A2_tfrsi
-+ {Intrinsic::hexagon_A2_vabsh, 4753}, // __builtin_HEXAGON_A2_vabsh
-+ {Intrinsic::hexagon_A2_vabshsat, 4780}, // __builtin_HEXAGON_A2_vabshsat
-+ {Intrinsic::hexagon_A2_vabsw, 4810}, // __builtin_HEXAGON_A2_vabsw
-+ {Intrinsic::hexagon_A2_vabswsat, 4837}, // __builtin_HEXAGON_A2_vabswsat
-+ {Intrinsic::hexagon_A2_vaddb_map, 4867}, // __builtin_HEXAGON_A2_vaddb_map
-+ {Intrinsic::hexagon_A2_vaddh, 4898}, // __builtin_HEXAGON_A2_vaddh
-+ {Intrinsic::hexagon_A2_vaddhs, 4925}, // __builtin_HEXAGON_A2_vaddhs
-+ {Intrinsic::hexagon_A2_vaddub, 4953}, // __builtin_HEXAGON_A2_vaddub
-+ {Intrinsic::hexagon_A2_vaddubs, 4981}, // __builtin_HEXAGON_A2_vaddubs
-+ {Intrinsic::hexagon_A2_vadduhs, 5010}, // __builtin_HEXAGON_A2_vadduhs
-+ {Intrinsic::hexagon_A2_vaddw, 5039}, // __builtin_HEXAGON_A2_vaddw
-+ {Intrinsic::hexagon_A2_vaddws, 5066}, // __builtin_HEXAGON_A2_vaddws
-+ {Intrinsic::hexagon_A2_vavgh, 5094}, // __builtin_HEXAGON_A2_vavgh
-+ {Intrinsic::hexagon_A2_vavghcr, 5121}, // __builtin_HEXAGON_A2_vavghcr
-+ {Intrinsic::hexagon_A2_vavghr, 5150}, // __builtin_HEXAGON_A2_vavghr
-+ {Intrinsic::hexagon_A2_vavgub, 5178}, // __builtin_HEXAGON_A2_vavgub
-+ {Intrinsic::hexagon_A2_vavgubr, 5206}, // __builtin_HEXAGON_A2_vavgubr
-+ {Intrinsic::hexagon_A2_vavguh, 5235}, // __builtin_HEXAGON_A2_vavguh
-+ {Intrinsic::hexagon_A2_vavguhr, 5263}, // __builtin_HEXAGON_A2_vavguhr
-+ {Intrinsic::hexagon_A2_vavguw, 5292}, // __builtin_HEXAGON_A2_vavguw
-+ {Intrinsic::hexagon_A2_vavguwr, 5320}, // __builtin_HEXAGON_A2_vavguwr
-+ {Intrinsic::hexagon_A2_vavgw, 5349}, // __builtin_HEXAGON_A2_vavgw
-+ {Intrinsic::hexagon_A2_vavgwcr, 5376}, // __builtin_HEXAGON_A2_vavgwcr
-+ {Intrinsic::hexagon_A2_vavgwr, 5405}, // __builtin_HEXAGON_A2_vavgwr
-+ {Intrinsic::hexagon_A2_vcmpbeq, 5433}, // __builtin_HEXAGON_A2_vcmpbeq
-+ {Intrinsic::hexagon_A2_vcmpbgtu, 5462}, // __builtin_HEXAGON_A2_vcmpbgtu
-+ {Intrinsic::hexagon_A2_vcmpheq, 5492}, // __builtin_HEXAGON_A2_vcmpheq
-+ {Intrinsic::hexagon_A2_vcmphgt, 5521}, // __builtin_HEXAGON_A2_vcmphgt
-+ {Intrinsic::hexagon_A2_vcmphgtu, 5550}, // __builtin_HEXAGON_A2_vcmphgtu
-+ {Intrinsic::hexagon_A2_vcmpweq, 5580}, // __builtin_HEXAGON_A2_vcmpweq
-+ {Intrinsic::hexagon_A2_vcmpwgt, 5609}, // __builtin_HEXAGON_A2_vcmpwgt
-+ {Intrinsic::hexagon_A2_vcmpwgtu, 5638}, // __builtin_HEXAGON_A2_vcmpwgtu
-+ {Intrinsic::hexagon_A2_vconj, 5668}, // __builtin_HEXAGON_A2_vconj
-+ {Intrinsic::hexagon_A2_vmaxb, 5695}, // __builtin_HEXAGON_A2_vmaxb
-+ {Intrinsic::hexagon_A2_vmaxh, 5722}, // __builtin_HEXAGON_A2_vmaxh
-+ {Intrinsic::hexagon_A2_vmaxub, 5749}, // __builtin_HEXAGON_A2_vmaxub
-+ {Intrinsic::hexagon_A2_vmaxuh, 5777}, // __builtin_HEXAGON_A2_vmaxuh
-+ {Intrinsic::hexagon_A2_vmaxuw, 5805}, // __builtin_HEXAGON_A2_vmaxuw
-+ {Intrinsic::hexagon_A2_vmaxw, 5833}, // __builtin_HEXAGON_A2_vmaxw
-+ {Intrinsic::hexagon_A2_vminb, 5860}, // __builtin_HEXAGON_A2_vminb
-+ {Intrinsic::hexagon_A2_vminh, 5887}, // __builtin_HEXAGON_A2_vminh
-+ {Intrinsic::hexagon_A2_vminub, 5914}, // __builtin_HEXAGON_A2_vminub
-+ {Intrinsic::hexagon_A2_vminuh, 5942}, // __builtin_HEXAGON_A2_vminuh
-+ {Intrinsic::hexagon_A2_vminuw, 5970}, // __builtin_HEXAGON_A2_vminuw
-+ {Intrinsic::hexagon_A2_vminw, 5998}, // __builtin_HEXAGON_A2_vminw
-+ {Intrinsic::hexagon_A2_vnavgh, 6025}, // __builtin_HEXAGON_A2_vnavgh
-+ {Intrinsic::hexagon_A2_vnavghcr, 6053}, // __builtin_HEXAGON_A2_vnavghcr
-+ {Intrinsic::hexagon_A2_vnavghr, 6083}, // __builtin_HEXAGON_A2_vnavghr
-+ {Intrinsic::hexagon_A2_vnavgw, 6112}, // __builtin_HEXAGON_A2_vnavgw
-+ {Intrinsic::hexagon_A2_vnavgwcr, 6140}, // __builtin_HEXAGON_A2_vnavgwcr
-+ {Intrinsic::hexagon_A2_vnavgwr, 6170}, // __builtin_HEXAGON_A2_vnavgwr
-+ {Intrinsic::hexagon_A2_vraddub, 6199}, // __builtin_HEXAGON_A2_vraddub
-+ {Intrinsic::hexagon_A2_vraddub_acc, 6228}, // __builtin_HEXAGON_A2_vraddub_acc
-+ {Intrinsic::hexagon_A2_vrsadub, 6261}, // __builtin_HEXAGON_A2_vrsadub
-+ {Intrinsic::hexagon_A2_vrsadub_acc, 6290}, // __builtin_HEXAGON_A2_vrsadub_acc
-+ {Intrinsic::hexagon_A2_vsubb_map, 6323}, // __builtin_HEXAGON_A2_vsubb_map
-+ {Intrinsic::hexagon_A2_vsubh, 6354}, // __builtin_HEXAGON_A2_vsubh
-+ {Intrinsic::hexagon_A2_vsubhs, 6381}, // __builtin_HEXAGON_A2_vsubhs
-+ {Intrinsic::hexagon_A2_vsubub, 6409}, // __builtin_HEXAGON_A2_vsubub
-+ {Intrinsic::hexagon_A2_vsububs, 6437}, // __builtin_HEXAGON_A2_vsububs
-+ {Intrinsic::hexagon_A2_vsubuhs, 6466}, // __builtin_HEXAGON_A2_vsubuhs
-+ {Intrinsic::hexagon_A2_vsubw, 6495}, // __builtin_HEXAGON_A2_vsubw
-+ {Intrinsic::hexagon_A2_vsubws, 6522}, // __builtin_HEXAGON_A2_vsubws
-+ {Intrinsic::hexagon_A2_xor, 6550}, // __builtin_HEXAGON_A2_xor
-+ {Intrinsic::hexagon_A2_xorp, 6575}, // __builtin_HEXAGON_A2_xorp
-+ {Intrinsic::hexagon_A2_zxtb, 6601}, // __builtin_HEXAGON_A2_zxtb
-+ {Intrinsic::hexagon_A2_zxth, 6627}, // __builtin_HEXAGON_A2_zxth
-+ {Intrinsic::hexagon_A4_andn, 6653}, // __builtin_HEXAGON_A4_andn
-+ {Intrinsic::hexagon_A4_andnp, 6679}, // __builtin_HEXAGON_A4_andnp
-+ {Intrinsic::hexagon_A4_bitsplit, 6706}, // __builtin_HEXAGON_A4_bitsplit
-+ {Intrinsic::hexagon_A4_bitspliti, 6736}, // __builtin_HEXAGON_A4_bitspliti
-+ {Intrinsic::hexagon_A4_boundscheck, 6767}, // __builtin_HEXAGON_A4_boundscheck
-+ {Intrinsic::hexagon_A4_cmpbeq, 6800}, // __builtin_HEXAGON_A4_cmpbeq
-+ {Intrinsic::hexagon_A4_cmpbeqi, 6828}, // __builtin_HEXAGON_A4_cmpbeqi
-+ {Intrinsic::hexagon_A4_cmpbgt, 6857}, // __builtin_HEXAGON_A4_cmpbgt
-+ {Intrinsic::hexagon_A4_cmpbgti, 6885}, // __builtin_HEXAGON_A4_cmpbgti
-+ {Intrinsic::hexagon_A4_cmpbgtu, 6914}, // __builtin_HEXAGON_A4_cmpbgtu
-+ {Intrinsic::hexagon_A4_cmpbgtui, 6943}, // __builtin_HEXAGON_A4_cmpbgtui
-+ {Intrinsic::hexagon_A4_cmpheq, 6973}, // __builtin_HEXAGON_A4_cmpheq
-+ {Intrinsic::hexagon_A4_cmpheqi, 7001}, // __builtin_HEXAGON_A4_cmpheqi
-+ {Intrinsic::hexagon_A4_cmphgt, 7030}, // __builtin_HEXAGON_A4_cmphgt
-+ {Intrinsic::hexagon_A4_cmphgti, 7058}, // __builtin_HEXAGON_A4_cmphgti
-+ {Intrinsic::hexagon_A4_cmphgtu, 7087}, // __builtin_HEXAGON_A4_cmphgtu
-+ {Intrinsic::hexagon_A4_cmphgtui, 7116}, // __builtin_HEXAGON_A4_cmphgtui
-+ {Intrinsic::hexagon_A4_combineir, 7146}, // __builtin_HEXAGON_A4_combineir
-+ {Intrinsic::hexagon_A4_combineri, 7177}, // __builtin_HEXAGON_A4_combineri
-+ {Intrinsic::hexagon_A4_cround_ri, 7208}, // __builtin_HEXAGON_A4_cround_ri
-+ {Intrinsic::hexagon_A4_cround_rr, 7239}, // __builtin_HEXAGON_A4_cround_rr
-+ {Intrinsic::hexagon_A4_modwrapu, 7270}, // __builtin_HEXAGON_A4_modwrapu
-+ {Intrinsic::hexagon_A4_orn, 7300}, // __builtin_HEXAGON_A4_orn
-+ {Intrinsic::hexagon_A4_ornp, 7325}, // __builtin_HEXAGON_A4_ornp
-+ {Intrinsic::hexagon_A4_rcmpeq, 7351}, // __builtin_HEXAGON_A4_rcmpeq
-+ {Intrinsic::hexagon_A4_rcmpeqi, 7379}, // __builtin_HEXAGON_A4_rcmpeqi
-+ {Intrinsic::hexagon_A4_rcmpneq, 7408}, // __builtin_HEXAGON_A4_rcmpneq
-+ {Intrinsic::hexagon_A4_rcmpneqi, 7437}, // __builtin_HEXAGON_A4_rcmpneqi
-+ {Intrinsic::hexagon_A4_round_ri, 7467}, // __builtin_HEXAGON_A4_round_ri
-+ {Intrinsic::hexagon_A4_round_ri_sat, 7497}, // __builtin_HEXAGON_A4_round_ri_sat
-+ {Intrinsic::hexagon_A4_round_rr, 7531}, // __builtin_HEXAGON_A4_round_rr
-+ {Intrinsic::hexagon_A4_round_rr_sat, 7561}, // __builtin_HEXAGON_A4_round_rr_sat
-+ {Intrinsic::hexagon_A4_tlbmatch, 7595}, // __builtin_HEXAGON_A4_tlbmatch
-+ {Intrinsic::hexagon_A4_vcmpbeq_any, 7625}, // __builtin_HEXAGON_A4_vcmpbeq_any
-+ {Intrinsic::hexagon_A4_vcmpbeqi, 7658}, // __builtin_HEXAGON_A4_vcmpbeqi
-+ {Intrinsic::hexagon_A4_vcmpbgt, 7688}, // __builtin_HEXAGON_A4_vcmpbgt
-+ {Intrinsic::hexagon_A4_vcmpbgti, 7717}, // __builtin_HEXAGON_A4_vcmpbgti
-+ {Intrinsic::hexagon_A4_vcmpbgtui, 7747}, // __builtin_HEXAGON_A4_vcmpbgtui
-+ {Intrinsic::hexagon_A4_vcmpheqi, 7778}, // __builtin_HEXAGON_A4_vcmpheqi
-+ {Intrinsic::hexagon_A4_vcmphgti, 7808}, // __builtin_HEXAGON_A4_vcmphgti
-+ {Intrinsic::hexagon_A4_vcmphgtui, 7838}, // __builtin_HEXAGON_A4_vcmphgtui
-+ {Intrinsic::hexagon_A4_vcmpweqi, 7869}, // __builtin_HEXAGON_A4_vcmpweqi
-+ {Intrinsic::hexagon_A4_vcmpwgti, 7899}, // __builtin_HEXAGON_A4_vcmpwgti
-+ {Intrinsic::hexagon_A4_vcmpwgtui, 7929}, // __builtin_HEXAGON_A4_vcmpwgtui
-+ {Intrinsic::hexagon_A4_vrmaxh, 7960}, // __builtin_HEXAGON_A4_vrmaxh
-+ {Intrinsic::hexagon_A4_vrmaxuh, 7988}, // __builtin_HEXAGON_A4_vrmaxuh
-+ {Intrinsic::hexagon_A4_vrmaxuw, 8017}, // __builtin_HEXAGON_A4_vrmaxuw
-+ {Intrinsic::hexagon_A4_vrmaxw, 8046}, // __builtin_HEXAGON_A4_vrmaxw
-+ {Intrinsic::hexagon_A4_vrminh, 8074}, // __builtin_HEXAGON_A4_vrminh
-+ {Intrinsic::hexagon_A4_vrminuh, 8102}, // __builtin_HEXAGON_A4_vrminuh
-+ {Intrinsic::hexagon_A4_vrminuw, 8131}, // __builtin_HEXAGON_A4_vrminuw
-+ {Intrinsic::hexagon_A4_vrminw, 8160}, // __builtin_HEXAGON_A4_vrminw
-+ {Intrinsic::hexagon_A5_vaddhubs, 8188}, // __builtin_HEXAGON_A5_vaddhubs
-+ {Intrinsic::hexagon_C2_all8, 8218}, // __builtin_HEXAGON_C2_all8
-+ {Intrinsic::hexagon_C2_and, 8244}, // __builtin_HEXAGON_C2_and
-+ {Intrinsic::hexagon_C2_andn, 8269}, // __builtin_HEXAGON_C2_andn
-+ {Intrinsic::hexagon_C2_any8, 8295}, // __builtin_HEXAGON_C2_any8
-+ {Intrinsic::hexagon_C2_bitsclr, 8321}, // __builtin_HEXAGON_C2_bitsclr
-+ {Intrinsic::hexagon_C2_bitsclri, 8350}, // __builtin_HEXAGON_C2_bitsclri
-+ {Intrinsic::hexagon_C2_bitsset, 8380}, // __builtin_HEXAGON_C2_bitsset
-+ {Intrinsic::hexagon_C2_cmpeq, 8409}, // __builtin_HEXAGON_C2_cmpeq
-+ {Intrinsic::hexagon_C2_cmpeqi, 8436}, // __builtin_HEXAGON_C2_cmpeqi
-+ {Intrinsic::hexagon_C2_cmpeqp, 8464}, // __builtin_HEXAGON_C2_cmpeqp
-+ {Intrinsic::hexagon_C2_cmpgei, 8492}, // __builtin_HEXAGON_C2_cmpgei
-+ {Intrinsic::hexagon_C2_cmpgeui, 8520}, // __builtin_HEXAGON_C2_cmpgeui
-+ {Intrinsic::hexagon_C2_cmpgt, 8549}, // __builtin_HEXAGON_C2_cmpgt
-+ {Intrinsic::hexagon_C2_cmpgti, 8576}, // __builtin_HEXAGON_C2_cmpgti
-+ {Intrinsic::hexagon_C2_cmpgtp, 8604}, // __builtin_HEXAGON_C2_cmpgtp
-+ {Intrinsic::hexagon_C2_cmpgtu, 8632}, // __builtin_HEXAGON_C2_cmpgtu
-+ {Intrinsic::hexagon_C2_cmpgtui, 8660}, // __builtin_HEXAGON_C2_cmpgtui
-+ {Intrinsic::hexagon_C2_cmpgtup, 8689}, // __builtin_HEXAGON_C2_cmpgtup
-+ {Intrinsic::hexagon_C2_cmplt, 8718}, // __builtin_HEXAGON_C2_cmplt
-+ {Intrinsic::hexagon_C2_cmpltu, 8745}, // __builtin_HEXAGON_C2_cmpltu
-+ {Intrinsic::hexagon_C2_mask, 8773}, // __builtin_HEXAGON_C2_mask
-+ {Intrinsic::hexagon_C2_mux, 8799}, // __builtin_HEXAGON_C2_mux
-+ {Intrinsic::hexagon_C2_muxii, 8824}, // __builtin_HEXAGON_C2_muxii
-+ {Intrinsic::hexagon_C2_muxir, 8851}, // __builtin_HEXAGON_C2_muxir
-+ {Intrinsic::hexagon_C2_muxri, 8878}, // __builtin_HEXAGON_C2_muxri
-+ {Intrinsic::hexagon_C2_not, 8905}, // __builtin_HEXAGON_C2_not
-+ {Intrinsic::hexagon_C2_or, 8930}, // __builtin_HEXAGON_C2_or
-+ {Intrinsic::hexagon_C2_orn, 8954}, // __builtin_HEXAGON_C2_orn
-+ {Intrinsic::hexagon_C2_pxfer_map, 8979}, // __builtin_HEXAGON_C2_pxfer_map
-+ {Intrinsic::hexagon_C2_tfrpr, 9010}, // __builtin_HEXAGON_C2_tfrpr
-+ {Intrinsic::hexagon_C2_tfrrp, 9037}, // __builtin_HEXAGON_C2_tfrrp
-+ {Intrinsic::hexagon_C2_vitpack, 9064}, // __builtin_HEXAGON_C2_vitpack
-+ {Intrinsic::hexagon_C2_vmux, 9093}, // __builtin_HEXAGON_C2_vmux
-+ {Intrinsic::hexagon_C2_xor, 9119}, // __builtin_HEXAGON_C2_xor
-+ {Intrinsic::hexagon_C4_and_and, 9144}, // __builtin_HEXAGON_C4_and_and
-+ {Intrinsic::hexagon_C4_and_andn, 9173}, // __builtin_HEXAGON_C4_and_andn
-+ {Intrinsic::hexagon_C4_and_or, 9203}, // __builtin_HEXAGON_C4_and_or
-+ {Intrinsic::hexagon_C4_and_orn, 9231}, // __builtin_HEXAGON_C4_and_orn
-+ {Intrinsic::hexagon_C4_cmplte, 9260}, // __builtin_HEXAGON_C4_cmplte
-+ {Intrinsic::hexagon_C4_cmpltei, 9288}, // __builtin_HEXAGON_C4_cmpltei
-+ {Intrinsic::hexagon_C4_cmplteu, 9317}, // __builtin_HEXAGON_C4_cmplteu
-+ {Intrinsic::hexagon_C4_cmplteui, 9346}, // __builtin_HEXAGON_C4_cmplteui
-+ {Intrinsic::hexagon_C4_cmpneq, 9376}, // __builtin_HEXAGON_C4_cmpneq
-+ {Intrinsic::hexagon_C4_cmpneqi, 9404}, // __builtin_HEXAGON_C4_cmpneqi
-+ {Intrinsic::hexagon_C4_fastcorner9, 9433}, // __builtin_HEXAGON_C4_fastcorner9
-+ {Intrinsic::hexagon_C4_fastcorner9_not, 9466}, // __builtin_HEXAGON_C4_fastcorner9_not
-+ {Intrinsic::hexagon_C4_nbitsclr, 9503}, // __builtin_HEXAGON_C4_nbitsclr
-+ {Intrinsic::hexagon_C4_nbitsclri, 9533}, // __builtin_HEXAGON_C4_nbitsclri
-+ {Intrinsic::hexagon_C4_nbitsset, 9564}, // __builtin_HEXAGON_C4_nbitsset
-+ {Intrinsic::hexagon_C4_or_and, 9594}, // __builtin_HEXAGON_C4_or_and
-+ {Intrinsic::hexagon_C4_or_andn, 9622}, // __builtin_HEXAGON_C4_or_andn
-+ {Intrinsic::hexagon_C4_or_or, 9651}, // __builtin_HEXAGON_C4_or_or
-+ {Intrinsic::hexagon_C4_or_orn, 9678}, // __builtin_HEXAGON_C4_or_orn
-+ {Intrinsic::hexagon_F2_conv_d2df, 9706}, // __builtin_HEXAGON_F2_conv_d2df
-+ {Intrinsic::hexagon_F2_conv_d2sf, 9737}, // __builtin_HEXAGON_F2_conv_d2sf
-+ {Intrinsic::hexagon_F2_conv_df2d, 9768}, // __builtin_HEXAGON_F2_conv_df2d
-+ {Intrinsic::hexagon_F2_conv_df2d_chop, 9799}, // __builtin_HEXAGON_F2_conv_df2d_chop
-+ {Intrinsic::hexagon_F2_conv_df2sf, 9835}, // __builtin_HEXAGON_F2_conv_df2sf
-+ {Intrinsic::hexagon_F2_conv_df2ud, 9867}, // __builtin_HEXAGON_F2_conv_df2ud
-+ {Intrinsic::hexagon_F2_conv_df2ud_chop, 9899}, // __builtin_HEXAGON_F2_conv_df2ud_chop
-+ {Intrinsic::hexagon_F2_conv_df2uw, 9936}, // __builtin_HEXAGON_F2_conv_df2uw
-+ {Intrinsic::hexagon_F2_conv_df2uw_chop, 9968}, // __builtin_HEXAGON_F2_conv_df2uw_chop
-+ {Intrinsic::hexagon_F2_conv_df2w, 10005}, // __builtin_HEXAGON_F2_conv_df2w
-+ {Intrinsic::hexagon_F2_conv_df2w_chop, 10036}, // __builtin_HEXAGON_F2_conv_df2w_chop
-+ {Intrinsic::hexagon_F2_conv_sf2d, 10072}, // __builtin_HEXAGON_F2_conv_sf2d
-+ {Intrinsic::hexagon_F2_conv_sf2d_chop, 10103}, // __builtin_HEXAGON_F2_conv_sf2d_chop
-+ {Intrinsic::hexagon_F2_conv_sf2df, 10139}, // __builtin_HEXAGON_F2_conv_sf2df
-+ {Intrinsic::hexagon_F2_conv_sf2ud, 10171}, // __builtin_HEXAGON_F2_conv_sf2ud
-+ {Intrinsic::hexagon_F2_conv_sf2ud_chop, 10203}, // __builtin_HEXAGON_F2_conv_sf2ud_chop
-+ {Intrinsic::hexagon_F2_conv_sf2uw, 10240}, // __builtin_HEXAGON_F2_conv_sf2uw
-+ {Intrinsic::hexagon_F2_conv_sf2uw_chop, 10272}, // __builtin_HEXAGON_F2_conv_sf2uw_chop
-+ {Intrinsic::hexagon_F2_conv_sf2w, 10309}, // __builtin_HEXAGON_F2_conv_sf2w
-+ {Intrinsic::hexagon_F2_conv_sf2w_chop, 10340}, // __builtin_HEXAGON_F2_conv_sf2w_chop
-+ {Intrinsic::hexagon_F2_conv_ud2df, 10376}, // __builtin_HEXAGON_F2_conv_ud2df
-+ {Intrinsic::hexagon_F2_conv_ud2sf, 10408}, // __builtin_HEXAGON_F2_conv_ud2sf
-+ {Intrinsic::hexagon_F2_conv_uw2df, 10440}, // __builtin_HEXAGON_F2_conv_uw2df
-+ {Intrinsic::hexagon_F2_conv_uw2sf, 10472}, // __builtin_HEXAGON_F2_conv_uw2sf
-+ {Intrinsic::hexagon_F2_conv_w2df, 10504}, // __builtin_HEXAGON_F2_conv_w2df
-+ {Intrinsic::hexagon_F2_conv_w2sf, 10535}, // __builtin_HEXAGON_F2_conv_w2sf
-+ {Intrinsic::hexagon_F2_dfclass, 10566}, // __builtin_HEXAGON_F2_dfclass
-+ {Intrinsic::hexagon_F2_dfcmpeq, 10595}, // __builtin_HEXAGON_F2_dfcmpeq
-+ {Intrinsic::hexagon_F2_dfcmpge, 10624}, // __builtin_HEXAGON_F2_dfcmpge
-+ {Intrinsic::hexagon_F2_dfcmpgt, 10653}, // __builtin_HEXAGON_F2_dfcmpgt
-+ {Intrinsic::hexagon_F2_dfcmpuo, 10682}, // __builtin_HEXAGON_F2_dfcmpuo
-+ {Intrinsic::hexagon_F2_dfimm_n, 10711}, // __builtin_HEXAGON_F2_dfimm_n
-+ {Intrinsic::hexagon_F2_dfimm_p, 10740}, // __builtin_HEXAGON_F2_dfimm_p
-+ {Intrinsic::hexagon_F2_sfadd, 10769}, // __builtin_HEXAGON_F2_sfadd
-+ {Intrinsic::hexagon_F2_sfclass, 10796}, // __builtin_HEXAGON_F2_sfclass
-+ {Intrinsic::hexagon_F2_sfcmpeq, 10825}, // __builtin_HEXAGON_F2_sfcmpeq
-+ {Intrinsic::hexagon_F2_sfcmpge, 10854}, // __builtin_HEXAGON_F2_sfcmpge
-+ {Intrinsic::hexagon_F2_sfcmpgt, 10883}, // __builtin_HEXAGON_F2_sfcmpgt
-+ {Intrinsic::hexagon_F2_sfcmpuo, 10912}, // __builtin_HEXAGON_F2_sfcmpuo
-+ {Intrinsic::hexagon_F2_sffixupd, 10941}, // __builtin_HEXAGON_F2_sffixupd
-+ {Intrinsic::hexagon_F2_sffixupn, 10971}, // __builtin_HEXAGON_F2_sffixupn
-+ {Intrinsic::hexagon_F2_sffixupr, 11001}, // __builtin_HEXAGON_F2_sffixupr
-+ {Intrinsic::hexagon_F2_sffma, 11031}, // __builtin_HEXAGON_F2_sffma
-+ {Intrinsic::hexagon_F2_sffma_lib, 11058}, // __builtin_HEXAGON_F2_sffma_lib
-+ {Intrinsic::hexagon_F2_sffma_sc, 11089}, // __builtin_HEXAGON_F2_sffma_sc
-+ {Intrinsic::hexagon_F2_sffms, 11119}, // __builtin_HEXAGON_F2_sffms
-+ {Intrinsic::hexagon_F2_sffms_lib, 11146}, // __builtin_HEXAGON_F2_sffms_lib
-+ {Intrinsic::hexagon_F2_sfimm_n, 11177}, // __builtin_HEXAGON_F2_sfimm_n
-+ {Intrinsic::hexagon_F2_sfimm_p, 11206}, // __builtin_HEXAGON_F2_sfimm_p
-+ {Intrinsic::hexagon_F2_sfmax, 11235}, // __builtin_HEXAGON_F2_sfmax
-+ {Intrinsic::hexagon_F2_sfmin, 11262}, // __builtin_HEXAGON_F2_sfmin
-+ {Intrinsic::hexagon_F2_sfmpy, 11289}, // __builtin_HEXAGON_F2_sfmpy
-+ {Intrinsic::hexagon_F2_sfsub, 11316}, // __builtin_HEXAGON_F2_sfsub
-+ {Intrinsic::hexagon_L2_loadw_locked, 11343}, // __builtin_HEXAGON_L2_loadw_locked
-+ {Intrinsic::hexagon_L4_loadd_locked, 11377}, // __builtin_HEXAGON_L4_loadd_locked
-+ {Intrinsic::hexagon_M2_acci, 11411}, // __builtin_HEXAGON_M2_acci
-+ {Intrinsic::hexagon_M2_accii, 11437}, // __builtin_HEXAGON_M2_accii
-+ {Intrinsic::hexagon_M2_cmaci_s0, 11464}, // __builtin_HEXAGON_M2_cmaci_s0
-+ {Intrinsic::hexagon_M2_cmacr_s0, 11494}, // __builtin_HEXAGON_M2_cmacr_s0
-+ {Intrinsic::hexagon_M2_cmacs_s0, 11524}, // __builtin_HEXAGON_M2_cmacs_s0
-+ {Intrinsic::hexagon_M2_cmacs_s1, 11554}, // __builtin_HEXAGON_M2_cmacs_s1
-+ {Intrinsic::hexagon_M2_cmacsc_s0, 11584}, // __builtin_HEXAGON_M2_cmacsc_s0
-+ {Intrinsic::hexagon_M2_cmacsc_s1, 11615}, // __builtin_HEXAGON_M2_cmacsc_s1
-+ {Intrinsic::hexagon_M2_cmpyi_s0, 11646}, // __builtin_HEXAGON_M2_cmpyi_s0
-+ {Intrinsic::hexagon_M2_cmpyr_s0, 11676}, // __builtin_HEXAGON_M2_cmpyr_s0
-+ {Intrinsic::hexagon_M2_cmpyrs_s0, 11706}, // __builtin_HEXAGON_M2_cmpyrs_s0
-+ {Intrinsic::hexagon_M2_cmpyrs_s1, 11737}, // __builtin_HEXAGON_M2_cmpyrs_s1
-+ {Intrinsic::hexagon_M2_cmpyrsc_s0, 11768}, // __builtin_HEXAGON_M2_cmpyrsc_s0
-+ {Intrinsic::hexagon_M2_cmpyrsc_s1, 11800}, // __builtin_HEXAGON_M2_cmpyrsc_s1
-+ {Intrinsic::hexagon_M2_cmpys_s0, 11832}, // __builtin_HEXAGON_M2_cmpys_s0
-+ {Intrinsic::hexagon_M2_cmpys_s1, 11862}, // __builtin_HEXAGON_M2_cmpys_s1
-+ {Intrinsic::hexagon_M2_cmpysc_s0, 11892}, // __builtin_HEXAGON_M2_cmpysc_s0
-+ {Intrinsic::hexagon_M2_cmpysc_s1, 11923}, // __builtin_HEXAGON_M2_cmpysc_s1
-+ {Intrinsic::hexagon_M2_cnacs_s0, 11954}, // __builtin_HEXAGON_M2_cnacs_s0
-+ {Intrinsic::hexagon_M2_cnacs_s1, 11984}, // __builtin_HEXAGON_M2_cnacs_s1
-+ {Intrinsic::hexagon_M2_cnacsc_s0, 12014}, // __builtin_HEXAGON_M2_cnacsc_s0
-+ {Intrinsic::hexagon_M2_cnacsc_s1, 12045}, // __builtin_HEXAGON_M2_cnacsc_s1
-+ {Intrinsic::hexagon_M2_dpmpyss_acc_s0, 12076}, // __builtin_HEXAGON_M2_dpmpyss_acc_s0
-+ {Intrinsic::hexagon_M2_dpmpyss_nac_s0, 12112}, // __builtin_HEXAGON_M2_dpmpyss_nac_s0
-+ {Intrinsic::hexagon_M2_dpmpyss_rnd_s0, 12148}, // __builtin_HEXAGON_M2_dpmpyss_rnd_s0
-+ {Intrinsic::hexagon_M2_dpmpyss_s0, 12184}, // __builtin_HEXAGON_M2_dpmpyss_s0
-+ {Intrinsic::hexagon_M2_dpmpyuu_acc_s0, 12216}, // __builtin_HEXAGON_M2_dpmpyuu_acc_s0
-+ {Intrinsic::hexagon_M2_dpmpyuu_nac_s0, 12252}, // __builtin_HEXAGON_M2_dpmpyuu_nac_s0
-+ {Intrinsic::hexagon_M2_dpmpyuu_s0, 12288}, // __builtin_HEXAGON_M2_dpmpyuu_s0
-+ {Intrinsic::hexagon_M2_hmmpyh_rs1, 12320}, // __builtin_HEXAGON_M2_hmmpyh_rs1
-+ {Intrinsic::hexagon_M2_hmmpyh_s1, 12352}, // __builtin_HEXAGON_M2_hmmpyh_s1
-+ {Intrinsic::hexagon_M2_hmmpyl_rs1, 12383}, // __builtin_HEXAGON_M2_hmmpyl_rs1
-+ {Intrinsic::hexagon_M2_hmmpyl_s1, 12415}, // __builtin_HEXAGON_M2_hmmpyl_s1
-+ {Intrinsic::hexagon_M2_maci, 12446}, // __builtin_HEXAGON_M2_maci
-+ {Intrinsic::hexagon_M2_macsin, 12472}, // __builtin_HEXAGON_M2_macsin
-+ {Intrinsic::hexagon_M2_macsip, 12500}, // __builtin_HEXAGON_M2_macsip
-+ {Intrinsic::hexagon_M2_mmachs_rs0, 12528}, // __builtin_HEXAGON_M2_mmachs_rs0
-+ {Intrinsic::hexagon_M2_mmachs_rs1, 12560}, // __builtin_HEXAGON_M2_mmachs_rs1
-+ {Intrinsic::hexagon_M2_mmachs_s0, 12592}, // __builtin_HEXAGON_M2_mmachs_s0
-+ {Intrinsic::hexagon_M2_mmachs_s1, 12623}, // __builtin_HEXAGON_M2_mmachs_s1
-+ {Intrinsic::hexagon_M2_mmacls_rs0, 12654}, // __builtin_HEXAGON_M2_mmacls_rs0
-+ {Intrinsic::hexagon_M2_mmacls_rs1, 12686}, // __builtin_HEXAGON_M2_mmacls_rs1
-+ {Intrinsic::hexagon_M2_mmacls_s0, 12718}, // __builtin_HEXAGON_M2_mmacls_s0
-+ {Intrinsic::hexagon_M2_mmacls_s1, 12749}, // __builtin_HEXAGON_M2_mmacls_s1
-+ {Intrinsic::hexagon_M2_mmacuhs_rs0, 12780}, // __builtin_HEXAGON_M2_mmacuhs_rs0
-+ {Intrinsic::hexagon_M2_mmacuhs_rs1, 12813}, // __builtin_HEXAGON_M2_mmacuhs_rs1
-+ {Intrinsic::hexagon_M2_mmacuhs_s0, 12846}, // __builtin_HEXAGON_M2_mmacuhs_s0
-+ {Intrinsic::hexagon_M2_mmacuhs_s1, 12878}, // __builtin_HEXAGON_M2_mmacuhs_s1
-+ {Intrinsic::hexagon_M2_mmaculs_rs0, 12910}, // __builtin_HEXAGON_M2_mmaculs_rs0
-+ {Intrinsic::hexagon_M2_mmaculs_rs1, 12943}, // __builtin_HEXAGON_M2_mmaculs_rs1
-+ {Intrinsic::hexagon_M2_mmaculs_s0, 12976}, // __builtin_HEXAGON_M2_mmaculs_s0
-+ {Intrinsic::hexagon_M2_mmaculs_s1, 13008}, // __builtin_HEXAGON_M2_mmaculs_s1
-+ {Intrinsic::hexagon_M2_mmpyh_rs0, 13040}, // __builtin_HEXAGON_M2_mmpyh_rs0
-+ {Intrinsic::hexagon_M2_mmpyh_rs1, 13071}, // __builtin_HEXAGON_M2_mmpyh_rs1
-+ {Intrinsic::hexagon_M2_mmpyh_s0, 13102}, // __builtin_HEXAGON_M2_mmpyh_s0
-+ {Intrinsic::hexagon_M2_mmpyh_s1, 13132}, // __builtin_HEXAGON_M2_mmpyh_s1
-+ {Intrinsic::hexagon_M2_mmpyl_rs0, 13162}, // __builtin_HEXAGON_M2_mmpyl_rs0
-+ {Intrinsic::hexagon_M2_mmpyl_rs1, 13193}, // __builtin_HEXAGON_M2_mmpyl_rs1
-+ {Intrinsic::hexagon_M2_mmpyl_s0, 13224}, // __builtin_HEXAGON_M2_mmpyl_s0
-+ {Intrinsic::hexagon_M2_mmpyl_s1, 13254}, // __builtin_HEXAGON_M2_mmpyl_s1
-+ {Intrinsic::hexagon_M2_mmpyuh_rs0, 13284}, // __builtin_HEXAGON_M2_mmpyuh_rs0
-+ {Intrinsic::hexagon_M2_mmpyuh_rs1, 13316}, // __builtin_HEXAGON_M2_mmpyuh_rs1
-+ {Intrinsic::hexagon_M2_mmpyuh_s0, 13348}, // __builtin_HEXAGON_M2_mmpyuh_s0
-+ {Intrinsic::hexagon_M2_mmpyuh_s1, 13379}, // __builtin_HEXAGON_M2_mmpyuh_s1
-+ {Intrinsic::hexagon_M2_mmpyul_rs0, 13410}, // __builtin_HEXAGON_M2_mmpyul_rs0
-+ {Intrinsic::hexagon_M2_mmpyul_rs1, 13442}, // __builtin_HEXAGON_M2_mmpyul_rs1
-+ {Intrinsic::hexagon_M2_mmpyul_s0, 13474}, // __builtin_HEXAGON_M2_mmpyul_s0
-+ {Intrinsic::hexagon_M2_mmpyul_s1, 13505}, // __builtin_HEXAGON_M2_mmpyul_s1
-+ {Intrinsic::hexagon_M2_mpy_acc_hh_s0, 13536}, // __builtin_HEXAGON_M2_mpy_acc_hh_s0
-+ {Intrinsic::hexagon_M2_mpy_acc_hh_s1, 13571}, // __builtin_HEXAGON_M2_mpy_acc_hh_s1
-+ {Intrinsic::hexagon_M2_mpy_acc_hl_s0, 13606}, // __builtin_HEXAGON_M2_mpy_acc_hl_s0
-+ {Intrinsic::hexagon_M2_mpy_acc_hl_s1, 13641}, // __builtin_HEXAGON_M2_mpy_acc_hl_s1
-+ {Intrinsic::hexagon_M2_mpy_acc_lh_s0, 13676}, // __builtin_HEXAGON_M2_mpy_acc_lh_s0
-+ {Intrinsic::hexagon_M2_mpy_acc_lh_s1, 13711}, // __builtin_HEXAGON_M2_mpy_acc_lh_s1
-+ {Intrinsic::hexagon_M2_mpy_acc_ll_s0, 13746}, // __builtin_HEXAGON_M2_mpy_acc_ll_s0
-+ {Intrinsic::hexagon_M2_mpy_acc_ll_s1, 13781}, // __builtin_HEXAGON_M2_mpy_acc_ll_s1
-+ {Intrinsic::hexagon_M2_mpy_acc_sat_hh_s0, 13816}, // __builtin_HEXAGON_M2_mpy_acc_sat_hh_s0
-+ {Intrinsic::hexagon_M2_mpy_acc_sat_hh_s1, 13855}, // __builtin_HEXAGON_M2_mpy_acc_sat_hh_s1
-+ {Intrinsic::hexagon_M2_mpy_acc_sat_hl_s0, 13894}, // __builtin_HEXAGON_M2_mpy_acc_sat_hl_s0
-+ {Intrinsic::hexagon_M2_mpy_acc_sat_hl_s1, 13933}, // __builtin_HEXAGON_M2_mpy_acc_sat_hl_s1
-+ {Intrinsic::hexagon_M2_mpy_acc_sat_lh_s0, 13972}, // __builtin_HEXAGON_M2_mpy_acc_sat_lh_s0
-+ {Intrinsic::hexagon_M2_mpy_acc_sat_lh_s1, 14011}, // __builtin_HEXAGON_M2_mpy_acc_sat_lh_s1
-+ {Intrinsic::hexagon_M2_mpy_acc_sat_ll_s0, 14050}, // __builtin_HEXAGON_M2_mpy_acc_sat_ll_s0
-+ {Intrinsic::hexagon_M2_mpy_acc_sat_ll_s1, 14089}, // __builtin_HEXAGON_M2_mpy_acc_sat_ll_s1
-+ {Intrinsic::hexagon_M2_mpy_hh_s0, 14128}, // __builtin_HEXAGON_M2_mpy_hh_s0
-+ {Intrinsic::hexagon_M2_mpy_hh_s1, 14159}, // __builtin_HEXAGON_M2_mpy_hh_s1
-+ {Intrinsic::hexagon_M2_mpy_hl_s0, 14190}, // __builtin_HEXAGON_M2_mpy_hl_s0
-+ {Intrinsic::hexagon_M2_mpy_hl_s1, 14221}, // __builtin_HEXAGON_M2_mpy_hl_s1
-+ {Intrinsic::hexagon_M2_mpy_lh_s0, 14252}, // __builtin_HEXAGON_M2_mpy_lh_s0
-+ {Intrinsic::hexagon_M2_mpy_lh_s1, 14283}, // __builtin_HEXAGON_M2_mpy_lh_s1
-+ {Intrinsic::hexagon_M2_mpy_ll_s0, 14314}, // __builtin_HEXAGON_M2_mpy_ll_s0
-+ {Intrinsic::hexagon_M2_mpy_ll_s1, 14345}, // __builtin_HEXAGON_M2_mpy_ll_s1
-+ {Intrinsic::hexagon_M2_mpy_nac_hh_s0, 14376}, // __builtin_HEXAGON_M2_mpy_nac_hh_s0
-+ {Intrinsic::hexagon_M2_mpy_nac_hh_s1, 14411}, // __builtin_HEXAGON_M2_mpy_nac_hh_s1
-+ {Intrinsic::hexagon_M2_mpy_nac_hl_s0, 14446}, // __builtin_HEXAGON_M2_mpy_nac_hl_s0
-+ {Intrinsic::hexagon_M2_mpy_nac_hl_s1, 14481}, // __builtin_HEXAGON_M2_mpy_nac_hl_s1
-+ {Intrinsic::hexagon_M2_mpy_nac_lh_s0, 14516}, // __builtin_HEXAGON_M2_mpy_nac_lh_s0
-+ {Intrinsic::hexagon_M2_mpy_nac_lh_s1, 14551}, // __builtin_HEXAGON_M2_mpy_nac_lh_s1
-+ {Intrinsic::hexagon_M2_mpy_nac_ll_s0, 14586}, // __builtin_HEXAGON_M2_mpy_nac_ll_s0
-+ {Intrinsic::hexagon_M2_mpy_nac_ll_s1, 14621}, // __builtin_HEXAGON_M2_mpy_nac_ll_s1
-+ {Intrinsic::hexagon_M2_mpy_nac_sat_hh_s0, 14656}, // __builtin_HEXAGON_M2_mpy_nac_sat_hh_s0
-+ {Intrinsic::hexagon_M2_mpy_nac_sat_hh_s1, 14695}, // __builtin_HEXAGON_M2_mpy_nac_sat_hh_s1
-+ {Intrinsic::hexagon_M2_mpy_nac_sat_hl_s0, 14734}, // __builtin_HEXAGON_M2_mpy_nac_sat_hl_s0
-+ {Intrinsic::hexagon_M2_mpy_nac_sat_hl_s1, 14773}, // __builtin_HEXAGON_M2_mpy_nac_sat_hl_s1
-+ {Intrinsic::hexagon_M2_mpy_nac_sat_lh_s0, 14812}, // __builtin_HEXAGON_M2_mpy_nac_sat_lh_s0
-+ {Intrinsic::hexagon_M2_mpy_nac_sat_lh_s1, 14851}, // __builtin_HEXAGON_M2_mpy_nac_sat_lh_s1
-+ {Intrinsic::hexagon_M2_mpy_nac_sat_ll_s0, 14890}, // __builtin_HEXAGON_M2_mpy_nac_sat_ll_s0
-+ {Intrinsic::hexagon_M2_mpy_nac_sat_ll_s1, 14929}, // __builtin_HEXAGON_M2_mpy_nac_sat_ll_s1
-+ {Intrinsic::hexagon_M2_mpy_rnd_hh_s0, 14968}, // __builtin_HEXAGON_M2_mpy_rnd_hh_s0
-+ {Intrinsic::hexagon_M2_mpy_rnd_hh_s1, 15003}, // __builtin_HEXAGON_M2_mpy_rnd_hh_s1
-+ {Intrinsic::hexagon_M2_mpy_rnd_hl_s0, 15038}, // __builtin_HEXAGON_M2_mpy_rnd_hl_s0
-+ {Intrinsic::hexagon_M2_mpy_rnd_hl_s1, 15073}, // __builtin_HEXAGON_M2_mpy_rnd_hl_s1
-+ {Intrinsic::hexagon_M2_mpy_rnd_lh_s0, 15108}, // __builtin_HEXAGON_M2_mpy_rnd_lh_s0
-+ {Intrinsic::hexagon_M2_mpy_rnd_lh_s1, 15143}, // __builtin_HEXAGON_M2_mpy_rnd_lh_s1
-+ {Intrinsic::hexagon_M2_mpy_rnd_ll_s0, 15178}, // __builtin_HEXAGON_M2_mpy_rnd_ll_s0
-+ {Intrinsic::hexagon_M2_mpy_rnd_ll_s1, 15213}, // __builtin_HEXAGON_M2_mpy_rnd_ll_s1
-+ {Intrinsic::hexagon_M2_mpy_sat_hh_s0, 15248}, // __builtin_HEXAGON_M2_mpy_sat_hh_s0
-+ {Intrinsic::hexagon_M2_mpy_sat_hh_s1, 15283}, // __builtin_HEXAGON_M2_mpy_sat_hh_s1
-+ {Intrinsic::hexagon_M2_mpy_sat_hl_s0, 15318}, // __builtin_HEXAGON_M2_mpy_sat_hl_s0
-+ {Intrinsic::hexagon_M2_mpy_sat_hl_s1, 15353}, // __builtin_HEXAGON_M2_mpy_sat_hl_s1
-+ {Intrinsic::hexagon_M2_mpy_sat_lh_s0, 15388}, // __builtin_HEXAGON_M2_mpy_sat_lh_s0
-+ {Intrinsic::hexagon_M2_mpy_sat_lh_s1, 15423}, // __builtin_HEXAGON_M2_mpy_sat_lh_s1
-+ {Intrinsic::hexagon_M2_mpy_sat_ll_s0, 15458}, // __builtin_HEXAGON_M2_mpy_sat_ll_s0
-+ {Intrinsic::hexagon_M2_mpy_sat_ll_s1, 15493}, // __builtin_HEXAGON_M2_mpy_sat_ll_s1
-+ {Intrinsic::hexagon_M2_mpy_sat_rnd_hh_s0, 15528}, // __builtin_HEXAGON_M2_mpy_sat_rnd_hh_s0
-+ {Intrinsic::hexagon_M2_mpy_sat_rnd_hh_s1, 15567}, // __builtin_HEXAGON_M2_mpy_sat_rnd_hh_s1
-+ {Intrinsic::hexagon_M2_mpy_sat_rnd_hl_s0, 15606}, // __builtin_HEXAGON_M2_mpy_sat_rnd_hl_s0
-+ {Intrinsic::hexagon_M2_mpy_sat_rnd_hl_s1, 15645}, // __builtin_HEXAGON_M2_mpy_sat_rnd_hl_s1
-+ {Intrinsic::hexagon_M2_mpy_sat_rnd_lh_s0, 15684}, // __builtin_HEXAGON_M2_mpy_sat_rnd_lh_s0
-+ {Intrinsic::hexagon_M2_mpy_sat_rnd_lh_s1, 15723}, // __builtin_HEXAGON_M2_mpy_sat_rnd_lh_s1
-+ {Intrinsic::hexagon_M2_mpy_sat_rnd_ll_s0, 15762}, // __builtin_HEXAGON_M2_mpy_sat_rnd_ll_s0
-+ {Intrinsic::hexagon_M2_mpy_sat_rnd_ll_s1, 15801}, // __builtin_HEXAGON_M2_mpy_sat_rnd_ll_s1
-+ {Intrinsic::hexagon_M2_mpy_up, 15840}, // __builtin_HEXAGON_M2_mpy_up
-+ {Intrinsic::hexagon_M2_mpy_up_s1, 15868}, // __builtin_HEXAGON_M2_mpy_up_s1
-+ {Intrinsic::hexagon_M2_mpy_up_s1_sat, 15899}, // __builtin_HEXAGON_M2_mpy_up_s1_sat
-+ {Intrinsic::hexagon_M2_mpyd_acc_hh_s0, 15934}, // __builtin_HEXAGON_M2_mpyd_acc_hh_s0
-+ {Intrinsic::hexagon_M2_mpyd_acc_hh_s1, 15970}, // __builtin_HEXAGON_M2_mpyd_acc_hh_s1
-+ {Intrinsic::hexagon_M2_mpyd_acc_hl_s0, 16006}, // __builtin_HEXAGON_M2_mpyd_acc_hl_s0
-+ {Intrinsic::hexagon_M2_mpyd_acc_hl_s1, 16042}, // __builtin_HEXAGON_M2_mpyd_acc_hl_s1
-+ {Intrinsic::hexagon_M2_mpyd_acc_lh_s0, 16078}, // __builtin_HEXAGON_M2_mpyd_acc_lh_s0
-+ {Intrinsic::hexagon_M2_mpyd_acc_lh_s1, 16114}, // __builtin_HEXAGON_M2_mpyd_acc_lh_s1
-+ {Intrinsic::hexagon_M2_mpyd_acc_ll_s0, 16150}, // __builtin_HEXAGON_M2_mpyd_acc_ll_s0
-+ {Intrinsic::hexagon_M2_mpyd_acc_ll_s1, 16186}, // __builtin_HEXAGON_M2_mpyd_acc_ll_s1
-+ {Intrinsic::hexagon_M2_mpyd_hh_s0, 16222}, // __builtin_HEXAGON_M2_mpyd_hh_s0
-+ {Intrinsic::hexagon_M2_mpyd_hh_s1, 16254}, // __builtin_HEXAGON_M2_mpyd_hh_s1
-+ {Intrinsic::hexagon_M2_mpyd_hl_s0, 16286}, // __builtin_HEXAGON_M2_mpyd_hl_s0
-+ {Intrinsic::hexagon_M2_mpyd_hl_s1, 16318}, // __builtin_HEXAGON_M2_mpyd_hl_s1
-+ {Intrinsic::hexagon_M2_mpyd_lh_s0, 16350}, // __builtin_HEXAGON_M2_mpyd_lh_s0
-+ {Intrinsic::hexagon_M2_mpyd_lh_s1, 16382}, // __builtin_HEXAGON_M2_mpyd_lh_s1
-+ {Intrinsic::hexagon_M2_mpyd_ll_s0, 16414}, // __builtin_HEXAGON_M2_mpyd_ll_s0
-+ {Intrinsic::hexagon_M2_mpyd_ll_s1, 16446}, // __builtin_HEXAGON_M2_mpyd_ll_s1
-+ {Intrinsic::hexagon_M2_mpyd_nac_hh_s0, 16478}, // __builtin_HEXAGON_M2_mpyd_nac_hh_s0
-+ {Intrinsic::hexagon_M2_mpyd_nac_hh_s1, 16514}, // __builtin_HEXAGON_M2_mpyd_nac_hh_s1
-+ {Intrinsic::hexagon_M2_mpyd_nac_hl_s0, 16550}, // __builtin_HEXAGON_M2_mpyd_nac_hl_s0
-+ {Intrinsic::hexagon_M2_mpyd_nac_hl_s1, 16586}, // __builtin_HEXAGON_M2_mpyd_nac_hl_s1
-+ {Intrinsic::hexagon_M2_mpyd_nac_lh_s0, 16622}, // __builtin_HEXAGON_M2_mpyd_nac_lh_s0
-+ {Intrinsic::hexagon_M2_mpyd_nac_lh_s1, 16658}, // __builtin_HEXAGON_M2_mpyd_nac_lh_s1
-+ {Intrinsic::hexagon_M2_mpyd_nac_ll_s0, 16694}, // __builtin_HEXAGON_M2_mpyd_nac_ll_s0
-+ {Intrinsic::hexagon_M2_mpyd_nac_ll_s1, 16730}, // __builtin_HEXAGON_M2_mpyd_nac_ll_s1
-+ {Intrinsic::hexagon_M2_mpyd_rnd_hh_s0, 16766}, // __builtin_HEXAGON_M2_mpyd_rnd_hh_s0
-+ {Intrinsic::hexagon_M2_mpyd_rnd_hh_s1, 16802}, // __builtin_HEXAGON_M2_mpyd_rnd_hh_s1
-+ {Intrinsic::hexagon_M2_mpyd_rnd_hl_s0, 16838}, // __builtin_HEXAGON_M2_mpyd_rnd_hl_s0
-+ {Intrinsic::hexagon_M2_mpyd_rnd_hl_s1, 16874}, // __builtin_HEXAGON_M2_mpyd_rnd_hl_s1
-+ {Intrinsic::hexagon_M2_mpyd_rnd_lh_s0, 16910}, // __builtin_HEXAGON_M2_mpyd_rnd_lh_s0
-+ {Intrinsic::hexagon_M2_mpyd_rnd_lh_s1, 16946}, // __builtin_HEXAGON_M2_mpyd_rnd_lh_s1
-+ {Intrinsic::hexagon_M2_mpyd_rnd_ll_s0, 16982}, // __builtin_HEXAGON_M2_mpyd_rnd_ll_s0
-+ {Intrinsic::hexagon_M2_mpyd_rnd_ll_s1, 17018}, // __builtin_HEXAGON_M2_mpyd_rnd_ll_s1
-+ {Intrinsic::hexagon_M2_mpyi, 17054}, // __builtin_HEXAGON_M2_mpyi
-+ {Intrinsic::hexagon_M2_mpysmi, 17080}, // __builtin_HEXAGON_M2_mpysmi
-+ {Intrinsic::hexagon_M2_mpysu_up, 17108}, // __builtin_HEXAGON_M2_mpysu_up
-+ {Intrinsic::hexagon_M2_mpyu_acc_hh_s0, 17138}, // __builtin_HEXAGON_M2_mpyu_acc_hh_s0
-+ {Intrinsic::hexagon_M2_mpyu_acc_hh_s1, 17174}, // __builtin_HEXAGON_M2_mpyu_acc_hh_s1
-+ {Intrinsic::hexagon_M2_mpyu_acc_hl_s0, 17210}, // __builtin_HEXAGON_M2_mpyu_acc_hl_s0
-+ {Intrinsic::hexagon_M2_mpyu_acc_hl_s1, 17246}, // __builtin_HEXAGON_M2_mpyu_acc_hl_s1
-+ {Intrinsic::hexagon_M2_mpyu_acc_lh_s0, 17282}, // __builtin_HEXAGON_M2_mpyu_acc_lh_s0
-+ {Intrinsic::hexagon_M2_mpyu_acc_lh_s1, 17318}, // __builtin_HEXAGON_M2_mpyu_acc_lh_s1
-+ {Intrinsic::hexagon_M2_mpyu_acc_ll_s0, 17354}, // __builtin_HEXAGON_M2_mpyu_acc_ll_s0
-+ {Intrinsic::hexagon_M2_mpyu_acc_ll_s1, 17390}, // __builtin_HEXAGON_M2_mpyu_acc_ll_s1
-+ {Intrinsic::hexagon_M2_mpyu_hh_s0, 17426}, // __builtin_HEXAGON_M2_mpyu_hh_s0
-+ {Intrinsic::hexagon_M2_mpyu_hh_s1, 17458}, // __builtin_HEXAGON_M2_mpyu_hh_s1
-+ {Intrinsic::hexagon_M2_mpyu_hl_s0, 17490}, // __builtin_HEXAGON_M2_mpyu_hl_s0
-+ {Intrinsic::hexagon_M2_mpyu_hl_s1, 17522}, // __builtin_HEXAGON_M2_mpyu_hl_s1
-+ {Intrinsic::hexagon_M2_mpyu_lh_s0, 17554}, // __builtin_HEXAGON_M2_mpyu_lh_s0
-+ {Intrinsic::hexagon_M2_mpyu_lh_s1, 17586}, // __builtin_HEXAGON_M2_mpyu_lh_s1
-+ {Intrinsic::hexagon_M2_mpyu_ll_s0, 17618}, // __builtin_HEXAGON_M2_mpyu_ll_s0
-+ {Intrinsic::hexagon_M2_mpyu_ll_s1, 17650}, // __builtin_HEXAGON_M2_mpyu_ll_s1
-+ {Intrinsic::hexagon_M2_mpyu_nac_hh_s0, 17682}, // __builtin_HEXAGON_M2_mpyu_nac_hh_s0
-+ {Intrinsic::hexagon_M2_mpyu_nac_hh_s1, 17718}, // __builtin_HEXAGON_M2_mpyu_nac_hh_s1
-+ {Intrinsic::hexagon_M2_mpyu_nac_hl_s0, 17754}, // __builtin_HEXAGON_M2_mpyu_nac_hl_s0
-+ {Intrinsic::hexagon_M2_mpyu_nac_hl_s1, 17790}, // __builtin_HEXAGON_M2_mpyu_nac_hl_s1
-+ {Intrinsic::hexagon_M2_mpyu_nac_lh_s0, 17826}, // __builtin_HEXAGON_M2_mpyu_nac_lh_s0
-+ {Intrinsic::hexagon_M2_mpyu_nac_lh_s1, 17862}, // __builtin_HEXAGON_M2_mpyu_nac_lh_s1
-+ {Intrinsic::hexagon_M2_mpyu_nac_ll_s0, 17898}, // __builtin_HEXAGON_M2_mpyu_nac_ll_s0
-+ {Intrinsic::hexagon_M2_mpyu_nac_ll_s1, 17934}, // __builtin_HEXAGON_M2_mpyu_nac_ll_s1
-+ {Intrinsic::hexagon_M2_mpyu_up, 17970}, // __builtin_HEXAGON_M2_mpyu_up
-+ {Intrinsic::hexagon_M2_mpyud_acc_hh_s0, 17999}, // __builtin_HEXAGON_M2_mpyud_acc_hh_s0
-+ {Intrinsic::hexagon_M2_mpyud_acc_hh_s1, 18036}, // __builtin_HEXAGON_M2_mpyud_acc_hh_s1
-+ {Intrinsic::hexagon_M2_mpyud_acc_hl_s0, 18073}, // __builtin_HEXAGON_M2_mpyud_acc_hl_s0
-+ {Intrinsic::hexagon_M2_mpyud_acc_hl_s1, 18110}, // __builtin_HEXAGON_M2_mpyud_acc_hl_s1
-+ {Intrinsic::hexagon_M2_mpyud_acc_lh_s0, 18147}, // __builtin_HEXAGON_M2_mpyud_acc_lh_s0
-+ {Intrinsic::hexagon_M2_mpyud_acc_lh_s1, 18184}, // __builtin_HEXAGON_M2_mpyud_acc_lh_s1
-+ {Intrinsic::hexagon_M2_mpyud_acc_ll_s0, 18221}, // __builtin_HEXAGON_M2_mpyud_acc_ll_s0
-+ {Intrinsic::hexagon_M2_mpyud_acc_ll_s1, 18258}, // __builtin_HEXAGON_M2_mpyud_acc_ll_s1
-+ {Intrinsic::hexagon_M2_mpyud_hh_s0, 18295}, // __builtin_HEXAGON_M2_mpyud_hh_s0
-+ {Intrinsic::hexagon_M2_mpyud_hh_s1, 18328}, // __builtin_HEXAGON_M2_mpyud_hh_s1
-+ {Intrinsic::hexagon_M2_mpyud_hl_s0, 18361}, // __builtin_HEXAGON_M2_mpyud_hl_s0
-+ {Intrinsic::hexagon_M2_mpyud_hl_s1, 18394}, // __builtin_HEXAGON_M2_mpyud_hl_s1
-+ {Intrinsic::hexagon_M2_mpyud_lh_s0, 18427}, // __builtin_HEXAGON_M2_mpyud_lh_s0
-+ {Intrinsic::hexagon_M2_mpyud_lh_s1, 18460}, // __builtin_HEXAGON_M2_mpyud_lh_s1
-+ {Intrinsic::hexagon_M2_mpyud_ll_s0, 18493}, // __builtin_HEXAGON_M2_mpyud_ll_s0
-+ {Intrinsic::hexagon_M2_mpyud_ll_s1, 18526}, // __builtin_HEXAGON_M2_mpyud_ll_s1
-+ {Intrinsic::hexagon_M2_mpyud_nac_hh_s0, 18559}, // __builtin_HEXAGON_M2_mpyud_nac_hh_s0
-+ {Intrinsic::hexagon_M2_mpyud_nac_hh_s1, 18596}, // __builtin_HEXAGON_M2_mpyud_nac_hh_s1
-+ {Intrinsic::hexagon_M2_mpyud_nac_hl_s0, 18633}, // __builtin_HEXAGON_M2_mpyud_nac_hl_s0
-+ {Intrinsic::hexagon_M2_mpyud_nac_hl_s1, 18670}, // __builtin_HEXAGON_M2_mpyud_nac_hl_s1
-+ {Intrinsic::hexagon_M2_mpyud_nac_lh_s0, 18707}, // __builtin_HEXAGON_M2_mpyud_nac_lh_s0
-+ {Intrinsic::hexagon_M2_mpyud_nac_lh_s1, 18744}, // __builtin_HEXAGON_M2_mpyud_nac_lh_s1
-+ {Intrinsic::hexagon_M2_mpyud_nac_ll_s0, 18781}, // __builtin_HEXAGON_M2_mpyud_nac_ll_s0
-+ {Intrinsic::hexagon_M2_mpyud_nac_ll_s1, 18818}, // __builtin_HEXAGON_M2_mpyud_nac_ll_s1
-+ {Intrinsic::hexagon_M2_mpyui, 18855}, // __builtin_HEXAGON_M2_mpyui
-+ {Intrinsic::hexagon_M2_nacci, 18882}, // __builtin_HEXAGON_M2_nacci
-+ {Intrinsic::hexagon_M2_naccii, 18909}, // __builtin_HEXAGON_M2_naccii
-+ {Intrinsic::hexagon_M2_subacc, 18937}, // __builtin_HEXAGON_M2_subacc
-+ {Intrinsic::hexagon_M2_vabsdiffh, 18965}, // __builtin_HEXAGON_M2_vabsdiffh
-+ {Intrinsic::hexagon_M2_vabsdiffw, 18996}, // __builtin_HEXAGON_M2_vabsdiffw
-+ {Intrinsic::hexagon_M2_vcmac_s0_sat_i, 19027}, // __builtin_HEXAGON_M2_vcmac_s0_sat_i
-+ {Intrinsic::hexagon_M2_vcmac_s0_sat_r, 19063}, // __builtin_HEXAGON_M2_vcmac_s0_sat_r
-+ {Intrinsic::hexagon_M2_vcmpy_s0_sat_i, 19099}, // __builtin_HEXAGON_M2_vcmpy_s0_sat_i
-+ {Intrinsic::hexagon_M2_vcmpy_s0_sat_r, 19135}, // __builtin_HEXAGON_M2_vcmpy_s0_sat_r
-+ {Intrinsic::hexagon_M2_vcmpy_s1_sat_i, 19171}, // __builtin_HEXAGON_M2_vcmpy_s1_sat_i
-+ {Intrinsic::hexagon_M2_vcmpy_s1_sat_r, 19207}, // __builtin_HEXAGON_M2_vcmpy_s1_sat_r
-+ {Intrinsic::hexagon_M2_vdmacs_s0, 19243}, // __builtin_HEXAGON_M2_vdmacs_s0
-+ {Intrinsic::hexagon_M2_vdmacs_s1, 19274}, // __builtin_HEXAGON_M2_vdmacs_s1
-+ {Intrinsic::hexagon_M2_vdmpyrs_s0, 19305}, // __builtin_HEXAGON_M2_vdmpyrs_s0
-+ {Intrinsic::hexagon_M2_vdmpyrs_s1, 19337}, // __builtin_HEXAGON_M2_vdmpyrs_s1
-+ {Intrinsic::hexagon_M2_vdmpys_s0, 19369}, // __builtin_HEXAGON_M2_vdmpys_s0
-+ {Intrinsic::hexagon_M2_vdmpys_s1, 19400}, // __builtin_HEXAGON_M2_vdmpys_s1
-+ {Intrinsic::hexagon_M2_vmac2, 19431}, // __builtin_HEXAGON_M2_vmac2
-+ {Intrinsic::hexagon_M2_vmac2es, 19458}, // __builtin_HEXAGON_M2_vmac2es
-+ {Intrinsic::hexagon_M2_vmac2es_s0, 19487}, // __builtin_HEXAGON_M2_vmac2es_s0
-+ {Intrinsic::hexagon_M2_vmac2es_s1, 19519}, // __builtin_HEXAGON_M2_vmac2es_s1
-+ {Intrinsic::hexagon_M2_vmac2s_s0, 19551}, // __builtin_HEXAGON_M2_vmac2s_s0
-+ {Intrinsic::hexagon_M2_vmac2s_s1, 19582}, // __builtin_HEXAGON_M2_vmac2s_s1
-+ {Intrinsic::hexagon_M2_vmac2su_s0, 19613}, // __builtin_HEXAGON_M2_vmac2su_s0
-+ {Intrinsic::hexagon_M2_vmac2su_s1, 19645}, // __builtin_HEXAGON_M2_vmac2su_s1
-+ {Intrinsic::hexagon_M2_vmpy2es_s0, 19677}, // __builtin_HEXAGON_M2_vmpy2es_s0
-+ {Intrinsic::hexagon_M2_vmpy2es_s1, 19709}, // __builtin_HEXAGON_M2_vmpy2es_s1
-+ {Intrinsic::hexagon_M2_vmpy2s_s0, 19741}, // __builtin_HEXAGON_M2_vmpy2s_s0
-+ {Intrinsic::hexagon_M2_vmpy2s_s0pack, 19772}, // __builtin_HEXAGON_M2_vmpy2s_s0pack
-+ {Intrinsic::hexagon_M2_vmpy2s_s1, 19807}, // __builtin_HEXAGON_M2_vmpy2s_s1
-+ {Intrinsic::hexagon_M2_vmpy2s_s1pack, 19838}, // __builtin_HEXAGON_M2_vmpy2s_s1pack
-+ {Intrinsic::hexagon_M2_vmpy2su_s0, 19873}, // __builtin_HEXAGON_M2_vmpy2su_s0
-+ {Intrinsic::hexagon_M2_vmpy2su_s1, 19905}, // __builtin_HEXAGON_M2_vmpy2su_s1
-+ {Intrinsic::hexagon_M2_vraddh, 19937}, // __builtin_HEXAGON_M2_vraddh
-+ {Intrinsic::hexagon_M2_vradduh, 19965}, // __builtin_HEXAGON_M2_vradduh
-+ {Intrinsic::hexagon_M2_vrcmaci_s0, 19994}, // __builtin_HEXAGON_M2_vrcmaci_s0
-+ {Intrinsic::hexagon_M2_vrcmaci_s0c, 20026}, // __builtin_HEXAGON_M2_vrcmaci_s0c
-+ {Intrinsic::hexagon_M2_vrcmacr_s0, 20059}, // __builtin_HEXAGON_M2_vrcmacr_s0
-+ {Intrinsic::hexagon_M2_vrcmacr_s0c, 20091}, // __builtin_HEXAGON_M2_vrcmacr_s0c
-+ {Intrinsic::hexagon_M2_vrcmpyi_s0, 20124}, // __builtin_HEXAGON_M2_vrcmpyi_s0
-+ {Intrinsic::hexagon_M2_vrcmpyi_s0c, 20156}, // __builtin_HEXAGON_M2_vrcmpyi_s0c
-+ {Intrinsic::hexagon_M2_vrcmpyr_s0, 20189}, // __builtin_HEXAGON_M2_vrcmpyr_s0
-+ {Intrinsic::hexagon_M2_vrcmpyr_s0c, 20221}, // __builtin_HEXAGON_M2_vrcmpyr_s0c
-+ {Intrinsic::hexagon_M2_vrcmpys_acc_s1, 20254}, // __builtin_HEXAGON_M2_vrcmpys_acc_s1
-+ {Intrinsic::hexagon_M2_vrcmpys_s1, 20290}, // __builtin_HEXAGON_M2_vrcmpys_s1
-+ {Intrinsic::hexagon_M2_vrcmpys_s1rp, 20322}, // __builtin_HEXAGON_M2_vrcmpys_s1rp
-+ {Intrinsic::hexagon_M2_vrmac_s0, 20356}, // __builtin_HEXAGON_M2_vrmac_s0
-+ {Intrinsic::hexagon_M2_vrmpy_s0, 20386}, // __builtin_HEXAGON_M2_vrmpy_s0
-+ {Intrinsic::hexagon_M2_xor_xacc, 20416}, // __builtin_HEXAGON_M2_xor_xacc
-+ {Intrinsic::hexagon_M4_and_and, 20446}, // __builtin_HEXAGON_M4_and_and
-+ {Intrinsic::hexagon_M4_and_andn, 20475}, // __builtin_HEXAGON_M4_and_andn
-+ {Intrinsic::hexagon_M4_and_or, 20505}, // __builtin_HEXAGON_M4_and_or
-+ {Intrinsic::hexagon_M4_and_xor, 20533}, // __builtin_HEXAGON_M4_and_xor
-+ {Intrinsic::hexagon_M4_cmpyi_wh, 20562}, // __builtin_HEXAGON_M4_cmpyi_wh
-+ {Intrinsic::hexagon_M4_cmpyi_whc, 20592}, // __builtin_HEXAGON_M4_cmpyi_whc
-+ {Intrinsic::hexagon_M4_cmpyr_wh, 20623}, // __builtin_HEXAGON_M4_cmpyr_wh
-+ {Intrinsic::hexagon_M4_cmpyr_whc, 20653}, // __builtin_HEXAGON_M4_cmpyr_whc
-+ {Intrinsic::hexagon_M4_mac_up_s1_sat, 20684}, // __builtin_HEXAGON_M4_mac_up_s1_sat
-+ {Intrinsic::hexagon_M4_mpyri_addi, 20719}, // __builtin_HEXAGON_M4_mpyri_addi
-+ {Intrinsic::hexagon_M4_mpyri_addr, 20751}, // __builtin_HEXAGON_M4_mpyri_addr
-+ {Intrinsic::hexagon_M4_mpyri_addr_u2, 20783}, // __builtin_HEXAGON_M4_mpyri_addr_u2
-+ {Intrinsic::hexagon_M4_mpyrr_addi, 20818}, // __builtin_HEXAGON_M4_mpyrr_addi
-+ {Intrinsic::hexagon_M4_mpyrr_addr, 20850}, // __builtin_HEXAGON_M4_mpyrr_addr
-+ {Intrinsic::hexagon_M4_nac_up_s1_sat, 20882}, // __builtin_HEXAGON_M4_nac_up_s1_sat
-+ {Intrinsic::hexagon_M4_or_and, 20917}, // __builtin_HEXAGON_M4_or_and
-+ {Intrinsic::hexagon_M4_or_andn, 20945}, // __builtin_HEXAGON_M4_or_andn
-+ {Intrinsic::hexagon_M4_or_or, 20974}, // __builtin_HEXAGON_M4_or_or
-+ {Intrinsic::hexagon_M4_or_xor, 21001}, // __builtin_HEXAGON_M4_or_xor
-+ {Intrinsic::hexagon_M4_pmpyw, 21029}, // __builtin_HEXAGON_M4_pmpyw
-+ {Intrinsic::hexagon_M4_pmpyw_acc, 21056}, // __builtin_HEXAGON_M4_pmpyw_acc
-+ {Intrinsic::hexagon_M4_vpmpyh, 21087}, // __builtin_HEXAGON_M4_vpmpyh
-+ {Intrinsic::hexagon_M4_vpmpyh_acc, 21115}, // __builtin_HEXAGON_M4_vpmpyh_acc
-+ {Intrinsic::hexagon_M4_vrmpyeh_acc_s0, 21147}, // __builtin_HEXAGON_M4_vrmpyeh_acc_s0
-+ {Intrinsic::hexagon_M4_vrmpyeh_acc_s1, 21183}, // __builtin_HEXAGON_M4_vrmpyeh_acc_s1
-+ {Intrinsic::hexagon_M4_vrmpyeh_s0, 21219}, // __builtin_HEXAGON_M4_vrmpyeh_s0
-+ {Intrinsic::hexagon_M4_vrmpyeh_s1, 21251}, // __builtin_HEXAGON_M4_vrmpyeh_s1
-+ {Intrinsic::hexagon_M4_vrmpyoh_acc_s0, 21283}, // __builtin_HEXAGON_M4_vrmpyoh_acc_s0
-+ {Intrinsic::hexagon_M4_vrmpyoh_acc_s1, 21319}, // __builtin_HEXAGON_M4_vrmpyoh_acc_s1
-+ {Intrinsic::hexagon_M4_vrmpyoh_s0, 21355}, // __builtin_HEXAGON_M4_vrmpyoh_s0
-+ {Intrinsic::hexagon_M4_vrmpyoh_s1, 21387}, // __builtin_HEXAGON_M4_vrmpyoh_s1
-+ {Intrinsic::hexagon_M4_xor_and, 21419}, // __builtin_HEXAGON_M4_xor_and
-+ {Intrinsic::hexagon_M4_xor_andn, 21448}, // __builtin_HEXAGON_M4_xor_andn
-+ {Intrinsic::hexagon_M4_xor_or, 21478}, // __builtin_HEXAGON_M4_xor_or
-+ {Intrinsic::hexagon_M4_xor_xacc, 21506}, // __builtin_HEXAGON_M4_xor_xacc
-+ {Intrinsic::hexagon_M5_vdmacbsu, 21536}, // __builtin_HEXAGON_M5_vdmacbsu
-+ {Intrinsic::hexagon_M5_vdmpybsu, 21566}, // __builtin_HEXAGON_M5_vdmpybsu
-+ {Intrinsic::hexagon_M5_vmacbsu, 21596}, // __builtin_HEXAGON_M5_vmacbsu
-+ {Intrinsic::hexagon_M5_vmacbuu, 21625}, // __builtin_HEXAGON_M5_vmacbuu
-+ {Intrinsic::hexagon_M5_vmpybsu, 21654}, // __builtin_HEXAGON_M5_vmpybsu
-+ {Intrinsic::hexagon_M5_vmpybuu, 21683}, // __builtin_HEXAGON_M5_vmpybuu
-+ {Intrinsic::hexagon_M5_vrmacbsu, 21712}, // __builtin_HEXAGON_M5_vrmacbsu
-+ {Intrinsic::hexagon_M5_vrmacbuu, 21742}, // __builtin_HEXAGON_M5_vrmacbuu
-+ {Intrinsic::hexagon_M5_vrmpybsu, 21772}, // __builtin_HEXAGON_M5_vrmpybsu
-+ {Intrinsic::hexagon_M5_vrmpybuu, 21802}, // __builtin_HEXAGON_M5_vrmpybuu
-+ {Intrinsic::hexagon_M6_vabsdiffb, 21832}, // __builtin_HEXAGON_M6_vabsdiffb
-+ {Intrinsic::hexagon_M6_vabsdiffub, 21863}, // __builtin_HEXAGON_M6_vabsdiffub
-+ {Intrinsic::hexagon_S2_addasl_rrri, 21895}, // __builtin_HEXAGON_S2_addasl_rrri
-+ {Intrinsic::hexagon_S2_asl_i_p, 21928}, // __builtin_HEXAGON_S2_asl_i_p
-+ {Intrinsic::hexagon_S2_asl_i_p_acc, 21957}, // __builtin_HEXAGON_S2_asl_i_p_acc
-+ {Intrinsic::hexagon_S2_asl_i_p_and, 21990}, // __builtin_HEXAGON_S2_asl_i_p_and
-+ {Intrinsic::hexagon_S2_asl_i_p_nac, 22023}, // __builtin_HEXAGON_S2_asl_i_p_nac
-+ {Intrinsic::hexagon_S2_asl_i_p_or, 22056}, // __builtin_HEXAGON_S2_asl_i_p_or
-+ {Intrinsic::hexagon_S2_asl_i_p_xacc, 22088}, // __builtin_HEXAGON_S2_asl_i_p_xacc
-+ {Intrinsic::hexagon_S2_asl_i_r, 22122}, // __builtin_HEXAGON_S2_asl_i_r
-+ {Intrinsic::hexagon_S2_asl_i_r_acc, 22151}, // __builtin_HEXAGON_S2_asl_i_r_acc
-+ {Intrinsic::hexagon_S2_asl_i_r_and, 22184}, // __builtin_HEXAGON_S2_asl_i_r_and
-+ {Intrinsic::hexagon_S2_asl_i_r_nac, 22217}, // __builtin_HEXAGON_S2_asl_i_r_nac
-+ {Intrinsic::hexagon_S2_asl_i_r_or, 22250}, // __builtin_HEXAGON_S2_asl_i_r_or
-+ {Intrinsic::hexagon_S2_asl_i_r_sat, 22282}, // __builtin_HEXAGON_S2_asl_i_r_sat
-+ {Intrinsic::hexagon_S2_asl_i_r_xacc, 22315}, // __builtin_HEXAGON_S2_asl_i_r_xacc
-+ {Intrinsic::hexagon_S2_asl_i_vh, 22349}, // __builtin_HEXAGON_S2_asl_i_vh
-+ {Intrinsic::hexagon_S2_asl_i_vw, 22379}, // __builtin_HEXAGON_S2_asl_i_vw
-+ {Intrinsic::hexagon_S2_asl_r_p, 22409}, // __builtin_HEXAGON_S2_asl_r_p
-+ {Intrinsic::hexagon_S2_asl_r_p_acc, 22438}, // __builtin_HEXAGON_S2_asl_r_p_acc
-+ {Intrinsic::hexagon_S2_asl_r_p_and, 22471}, // __builtin_HEXAGON_S2_asl_r_p_and
-+ {Intrinsic::hexagon_S2_asl_r_p_nac, 22504}, // __builtin_HEXAGON_S2_asl_r_p_nac
-+ {Intrinsic::hexagon_S2_asl_r_p_or, 22537}, // __builtin_HEXAGON_S2_asl_r_p_or
-+ {Intrinsic::hexagon_S2_asl_r_p_xor, 22569}, // __builtin_HEXAGON_S2_asl_r_p_xor
-+ {Intrinsic::hexagon_S2_asl_r_r, 22602}, // __builtin_HEXAGON_S2_asl_r_r
-+ {Intrinsic::hexagon_S2_asl_r_r_acc, 22631}, // __builtin_HEXAGON_S2_asl_r_r_acc
-+ {Intrinsic::hexagon_S2_asl_r_r_and, 22664}, // __builtin_HEXAGON_S2_asl_r_r_and
-+ {Intrinsic::hexagon_S2_asl_r_r_nac, 22697}, // __builtin_HEXAGON_S2_asl_r_r_nac
-+ {Intrinsic::hexagon_S2_asl_r_r_or, 22730}, // __builtin_HEXAGON_S2_asl_r_r_or
-+ {Intrinsic::hexagon_S2_asl_r_r_sat, 22762}, // __builtin_HEXAGON_S2_asl_r_r_sat
-+ {Intrinsic::hexagon_S2_asl_r_vh, 22795}, // __builtin_HEXAGON_S2_asl_r_vh
-+ {Intrinsic::hexagon_S2_asl_r_vw, 22825}, // __builtin_HEXAGON_S2_asl_r_vw
-+ {Intrinsic::hexagon_S2_asr_i_p, 22855}, // __builtin_HEXAGON_S2_asr_i_p
-+ {Intrinsic::hexagon_S2_asr_i_p_acc, 22884}, // __builtin_HEXAGON_S2_asr_i_p_acc
-+ {Intrinsic::hexagon_S2_asr_i_p_and, 22917}, // __builtin_HEXAGON_S2_asr_i_p_and
-+ {Intrinsic::hexagon_S2_asr_i_p_nac, 22950}, // __builtin_HEXAGON_S2_asr_i_p_nac
-+ {Intrinsic::hexagon_S2_asr_i_p_or, 22983}, // __builtin_HEXAGON_S2_asr_i_p_or
-+ {Intrinsic::hexagon_S2_asr_i_p_rnd, 23015}, // __builtin_HEXAGON_S2_asr_i_p_rnd
-+ {Intrinsic::hexagon_S2_asr_i_p_rnd_goodsyntax, 23048}, // __builtin_HEXAGON_S2_asr_i_p_rnd_goodsyntax
-+ {Intrinsic::hexagon_S2_asr_i_r, 23092}, // __builtin_HEXAGON_S2_asr_i_r
-+ {Intrinsic::hexagon_S2_asr_i_r_acc, 23121}, // __builtin_HEXAGON_S2_asr_i_r_acc
-+ {Intrinsic::hexagon_S2_asr_i_r_and, 23154}, // __builtin_HEXAGON_S2_asr_i_r_and
-+ {Intrinsic::hexagon_S2_asr_i_r_nac, 23187}, // __builtin_HEXAGON_S2_asr_i_r_nac
-+ {Intrinsic::hexagon_S2_asr_i_r_or, 23220}, // __builtin_HEXAGON_S2_asr_i_r_or
-+ {Intrinsic::hexagon_S2_asr_i_r_rnd, 23252}, // __builtin_HEXAGON_S2_asr_i_r_rnd
-+ {Intrinsic::hexagon_S2_asr_i_r_rnd_goodsyntax, 23285}, // __builtin_HEXAGON_S2_asr_i_r_rnd_goodsyntax
-+ {Intrinsic::hexagon_S2_asr_i_svw_trun, 23329}, // __builtin_HEXAGON_S2_asr_i_svw_trun
-+ {Intrinsic::hexagon_S2_asr_i_vh, 23365}, // __builtin_HEXAGON_S2_asr_i_vh
-+ {Intrinsic::hexagon_S2_asr_i_vw, 23395}, // __builtin_HEXAGON_S2_asr_i_vw
-+ {Intrinsic::hexagon_S2_asr_r_p, 23425}, // __builtin_HEXAGON_S2_asr_r_p
-+ {Intrinsic::hexagon_S2_asr_r_p_acc, 23454}, // __builtin_HEXAGON_S2_asr_r_p_acc
-+ {Intrinsic::hexagon_S2_asr_r_p_and, 23487}, // __builtin_HEXAGON_S2_asr_r_p_and
-+ {Intrinsic::hexagon_S2_asr_r_p_nac, 23520}, // __builtin_HEXAGON_S2_asr_r_p_nac
-+ {Intrinsic::hexagon_S2_asr_r_p_or, 23553}, // __builtin_HEXAGON_S2_asr_r_p_or
-+ {Intrinsic::hexagon_S2_asr_r_p_xor, 23585}, // __builtin_HEXAGON_S2_asr_r_p_xor
-+ {Intrinsic::hexagon_S2_asr_r_r, 23618}, // __builtin_HEXAGON_S2_asr_r_r
-+ {Intrinsic::hexagon_S2_asr_r_r_acc, 23647}, // __builtin_HEXAGON_S2_asr_r_r_acc
-+ {Intrinsic::hexagon_S2_asr_r_r_and, 23680}, // __builtin_HEXAGON_S2_asr_r_r_and
-+ {Intrinsic::hexagon_S2_asr_r_r_nac, 23713}, // __builtin_HEXAGON_S2_asr_r_r_nac
-+ {Intrinsic::hexagon_S2_asr_r_r_or, 23746}, // __builtin_HEXAGON_S2_asr_r_r_or
-+ {Intrinsic::hexagon_S2_asr_r_r_sat, 23778}, // __builtin_HEXAGON_S2_asr_r_r_sat
-+ {Intrinsic::hexagon_S2_asr_r_svw_trun, 23811}, // __builtin_HEXAGON_S2_asr_r_svw_trun
-+ {Intrinsic::hexagon_S2_asr_r_vh, 23847}, // __builtin_HEXAGON_S2_asr_r_vh
-+ {Intrinsic::hexagon_S2_asr_r_vw, 23877}, // __builtin_HEXAGON_S2_asr_r_vw
-+ {Intrinsic::hexagon_S2_brev, 23907}, // __builtin_HEXAGON_S2_brev
-+ {Intrinsic::hexagon_S2_brevp, 23933}, // __builtin_HEXAGON_S2_brevp
-+ {Intrinsic::hexagon_S2_cabacencbin, 23960}, // __builtin_HEXAGON_S2_cabacencbin
-+ {Intrinsic::hexagon_S2_cl0, 23993}, // __builtin_HEXAGON_S2_cl0
-+ {Intrinsic::hexagon_S2_cl0p, 24018}, // __builtin_HEXAGON_S2_cl0p
-+ {Intrinsic::hexagon_S2_cl1, 24044}, // __builtin_HEXAGON_S2_cl1
-+ {Intrinsic::hexagon_S2_cl1p, 24069}, // __builtin_HEXAGON_S2_cl1p
-+ {Intrinsic::hexagon_S2_clb, 24095}, // __builtin_HEXAGON_S2_clb
-+ {Intrinsic::hexagon_S2_clbnorm, 24120}, // __builtin_HEXAGON_S2_clbnorm
-+ {Intrinsic::hexagon_S2_clbp, 24149}, // __builtin_HEXAGON_S2_clbp
-+ {Intrinsic::hexagon_S2_clrbit_i, 24175}, // __builtin_HEXAGON_S2_clrbit_i
-+ {Intrinsic::hexagon_S2_clrbit_r, 24205}, // __builtin_HEXAGON_S2_clrbit_r
-+ {Intrinsic::hexagon_S2_ct0, 24235}, // __builtin_HEXAGON_S2_ct0
-+ {Intrinsic::hexagon_S2_ct0p, 24260}, // __builtin_HEXAGON_S2_ct0p
-+ {Intrinsic::hexagon_S2_ct1, 24286}, // __builtin_HEXAGON_S2_ct1
-+ {Intrinsic::hexagon_S2_ct1p, 24311}, // __builtin_HEXAGON_S2_ct1p
-+ {Intrinsic::hexagon_S2_deinterleave, 24337}, // __builtin_HEXAGON_S2_deinterleave
-+ {Intrinsic::hexagon_S2_extractu, 24371}, // __builtin_HEXAGON_S2_extractu
-+ {Intrinsic::hexagon_S2_extractu_rp, 24401}, // __builtin_HEXAGON_S2_extractu_rp
-+ {Intrinsic::hexagon_S2_extractup, 24434}, // __builtin_HEXAGON_S2_extractup
-+ {Intrinsic::hexagon_S2_extractup_rp, 24465}, // __builtin_HEXAGON_S2_extractup_rp
-+ {Intrinsic::hexagon_S2_insert, 24499}, // __builtin_HEXAGON_S2_insert
-+ {Intrinsic::hexagon_S2_insert_rp, 24527}, // __builtin_HEXAGON_S2_insert_rp
-+ {Intrinsic::hexagon_S2_insertp, 24558}, // __builtin_HEXAGON_S2_insertp
-+ {Intrinsic::hexagon_S2_insertp_rp, 24587}, // __builtin_HEXAGON_S2_insertp_rp
-+ {Intrinsic::hexagon_S2_interleave, 24619}, // __builtin_HEXAGON_S2_interleave
-+ {Intrinsic::hexagon_S2_lfsp, 24651}, // __builtin_HEXAGON_S2_lfsp
-+ {Intrinsic::hexagon_S2_lsl_r_p, 24677}, // __builtin_HEXAGON_S2_lsl_r_p
-+ {Intrinsic::hexagon_S2_lsl_r_p_acc, 24706}, // __builtin_HEXAGON_S2_lsl_r_p_acc
-+ {Intrinsic::hexagon_S2_lsl_r_p_and, 24739}, // __builtin_HEXAGON_S2_lsl_r_p_and
-+ {Intrinsic::hexagon_S2_lsl_r_p_nac, 24772}, // __builtin_HEXAGON_S2_lsl_r_p_nac
-+ {Intrinsic::hexagon_S2_lsl_r_p_or, 24805}, // __builtin_HEXAGON_S2_lsl_r_p_or
-+ {Intrinsic::hexagon_S2_lsl_r_p_xor, 24837}, // __builtin_HEXAGON_S2_lsl_r_p_xor
-+ {Intrinsic::hexagon_S2_lsl_r_r, 24870}, // __builtin_HEXAGON_S2_lsl_r_r
-+ {Intrinsic::hexagon_S2_lsl_r_r_acc, 24899}, // __builtin_HEXAGON_S2_lsl_r_r_acc
-+ {Intrinsic::hexagon_S2_lsl_r_r_and, 24932}, // __builtin_HEXAGON_S2_lsl_r_r_and
-+ {Intrinsic::hexagon_S2_lsl_r_r_nac, 24965}, // __builtin_HEXAGON_S2_lsl_r_r_nac
-+ {Intrinsic::hexagon_S2_lsl_r_r_or, 24998}, // __builtin_HEXAGON_S2_lsl_r_r_or
-+ {Intrinsic::hexagon_S2_lsl_r_vh, 25030}, // __builtin_HEXAGON_S2_lsl_r_vh
-+ {Intrinsic::hexagon_S2_lsl_r_vw, 25060}, // __builtin_HEXAGON_S2_lsl_r_vw
-+ {Intrinsic::hexagon_S2_lsr_i_p, 25090}, // __builtin_HEXAGON_S2_lsr_i_p
-+ {Intrinsic::hexagon_S2_lsr_i_p_acc, 25119}, // __builtin_HEXAGON_S2_lsr_i_p_acc
-+ {Intrinsic::hexagon_S2_lsr_i_p_and, 25152}, // __builtin_HEXAGON_S2_lsr_i_p_and
-+ {Intrinsic::hexagon_S2_lsr_i_p_nac, 25185}, // __builtin_HEXAGON_S2_lsr_i_p_nac
-+ {Intrinsic::hexagon_S2_lsr_i_p_or, 25218}, // __builtin_HEXAGON_S2_lsr_i_p_or
-+ {Intrinsic::hexagon_S2_lsr_i_p_xacc, 25250}, // __builtin_HEXAGON_S2_lsr_i_p_xacc
-+ {Intrinsic::hexagon_S2_lsr_i_r, 25284}, // __builtin_HEXAGON_S2_lsr_i_r
-+ {Intrinsic::hexagon_S2_lsr_i_r_acc, 25313}, // __builtin_HEXAGON_S2_lsr_i_r_acc
-+ {Intrinsic::hexagon_S2_lsr_i_r_and, 25346}, // __builtin_HEXAGON_S2_lsr_i_r_and
-+ {Intrinsic::hexagon_S2_lsr_i_r_nac, 25379}, // __builtin_HEXAGON_S2_lsr_i_r_nac
-+ {Intrinsic::hexagon_S2_lsr_i_r_or, 25412}, // __builtin_HEXAGON_S2_lsr_i_r_or
-+ {Intrinsic::hexagon_S2_lsr_i_r_xacc, 25444}, // __builtin_HEXAGON_S2_lsr_i_r_xacc
-+ {Intrinsic::hexagon_S2_lsr_i_vh, 25478}, // __builtin_HEXAGON_S2_lsr_i_vh
-+ {Intrinsic::hexagon_S2_lsr_i_vw, 25508}, // __builtin_HEXAGON_S2_lsr_i_vw
-+ {Intrinsic::hexagon_S2_lsr_r_p, 25538}, // __builtin_HEXAGON_S2_lsr_r_p
-+ {Intrinsic::hexagon_S2_lsr_r_p_acc, 25567}, // __builtin_HEXAGON_S2_lsr_r_p_acc
-+ {Intrinsic::hexagon_S2_lsr_r_p_and, 25600}, // __builtin_HEXAGON_S2_lsr_r_p_and
-+ {Intrinsic::hexagon_S2_lsr_r_p_nac, 25633}, // __builtin_HEXAGON_S2_lsr_r_p_nac
-+ {Intrinsic::hexagon_S2_lsr_r_p_or, 25666}, // __builtin_HEXAGON_S2_lsr_r_p_or
-+ {Intrinsic::hexagon_S2_lsr_r_p_xor, 25698}, // __builtin_HEXAGON_S2_lsr_r_p_xor
-+ {Intrinsic::hexagon_S2_lsr_r_r, 25731}, // __builtin_HEXAGON_S2_lsr_r_r
-+ {Intrinsic::hexagon_S2_lsr_r_r_acc, 25760}, // __builtin_HEXAGON_S2_lsr_r_r_acc
-+ {Intrinsic::hexagon_S2_lsr_r_r_and, 25793}, // __builtin_HEXAGON_S2_lsr_r_r_and
-+ {Intrinsic::hexagon_S2_lsr_r_r_nac, 25826}, // __builtin_HEXAGON_S2_lsr_r_r_nac
-+ {Intrinsic::hexagon_S2_lsr_r_r_or, 25859}, // __builtin_HEXAGON_S2_lsr_r_r_or
-+ {Intrinsic::hexagon_S2_lsr_r_vh, 25891}, // __builtin_HEXAGON_S2_lsr_r_vh
-+ {Intrinsic::hexagon_S2_lsr_r_vw, 25921}, // __builtin_HEXAGON_S2_lsr_r_vw
-+ {Intrinsic::hexagon_S2_packhl, 25951}, // __builtin_HEXAGON_S2_packhl
-+ {Intrinsic::hexagon_S2_parityp, 25979}, // __builtin_HEXAGON_S2_parityp
-+ {Intrinsic::hexagon_S2_setbit_i, 26008}, // __builtin_HEXAGON_S2_setbit_i
-+ {Intrinsic::hexagon_S2_setbit_r, 26038}, // __builtin_HEXAGON_S2_setbit_r
-+ {Intrinsic::hexagon_S2_shuffeb, 26068}, // __builtin_HEXAGON_S2_shuffeb
-+ {Intrinsic::hexagon_S2_shuffeh, 26097}, // __builtin_HEXAGON_S2_shuffeh
-+ {Intrinsic::hexagon_S2_shuffob, 26126}, // __builtin_HEXAGON_S2_shuffob
-+ {Intrinsic::hexagon_S2_shuffoh, 26155}, // __builtin_HEXAGON_S2_shuffoh
-+ {Intrinsic::hexagon_S2_storew_locked, 26184}, // __builtin_HEXAGON_S2_storew_locked
-+ {Intrinsic::hexagon_S2_svsathb, 26219}, // __builtin_HEXAGON_S2_svsathb
-+ {Intrinsic::hexagon_S2_svsathub, 26248}, // __builtin_HEXAGON_S2_svsathub
-+ {Intrinsic::hexagon_S2_tableidxb_goodsyntax, 26278}, // __builtin_HEXAGON_S2_tableidxb_goodsyntax
-+ {Intrinsic::hexagon_S2_tableidxd_goodsyntax, 26320}, // __builtin_HEXAGON_S2_tableidxd_goodsyntax
-+ {Intrinsic::hexagon_S2_tableidxh_goodsyntax, 26362}, // __builtin_HEXAGON_S2_tableidxh_goodsyntax
-+ {Intrinsic::hexagon_S2_tableidxw_goodsyntax, 26404}, // __builtin_HEXAGON_S2_tableidxw_goodsyntax
-+ {Intrinsic::hexagon_S2_togglebit_i, 26446}, // __builtin_HEXAGON_S2_togglebit_i
-+ {Intrinsic::hexagon_S2_togglebit_r, 26479}, // __builtin_HEXAGON_S2_togglebit_r
-+ {Intrinsic::hexagon_S2_tstbit_i, 26512}, // __builtin_HEXAGON_S2_tstbit_i
-+ {Intrinsic::hexagon_S2_tstbit_r, 26542}, // __builtin_HEXAGON_S2_tstbit_r
-+ {Intrinsic::hexagon_S2_valignib, 26572}, // __builtin_HEXAGON_S2_valignib
-+ {Intrinsic::hexagon_S2_valignrb, 26602}, // __builtin_HEXAGON_S2_valignrb
-+ {Intrinsic::hexagon_S2_vcnegh, 26632}, // __builtin_HEXAGON_S2_vcnegh
-+ {Intrinsic::hexagon_S2_vcrotate, 26660}, // __builtin_HEXAGON_S2_vcrotate
-+ {Intrinsic::hexagon_S2_vrcnegh, 26690}, // __builtin_HEXAGON_S2_vrcnegh
-+ {Intrinsic::hexagon_S2_vrndpackwh, 26719}, // __builtin_HEXAGON_S2_vrndpackwh
-+ {Intrinsic::hexagon_S2_vrndpackwhs, 26751}, // __builtin_HEXAGON_S2_vrndpackwhs
-+ {Intrinsic::hexagon_S2_vsathb, 26784}, // __builtin_HEXAGON_S2_vsathb
-+ {Intrinsic::hexagon_S2_vsathb_nopack, 26812}, // __builtin_HEXAGON_S2_vsathb_nopack
-+ {Intrinsic::hexagon_S2_vsathub, 26847}, // __builtin_HEXAGON_S2_vsathub
-+ {Intrinsic::hexagon_S2_vsathub_nopack, 26876}, // __builtin_HEXAGON_S2_vsathub_nopack
-+ {Intrinsic::hexagon_S2_vsatwh, 26912}, // __builtin_HEXAGON_S2_vsatwh
-+ {Intrinsic::hexagon_S2_vsatwh_nopack, 26940}, // __builtin_HEXAGON_S2_vsatwh_nopack
-+ {Intrinsic::hexagon_S2_vsatwuh, 26975}, // __builtin_HEXAGON_S2_vsatwuh
-+ {Intrinsic::hexagon_S2_vsatwuh_nopack, 27004}, // __builtin_HEXAGON_S2_vsatwuh_nopack
-+ {Intrinsic::hexagon_S2_vsplatrb, 27040}, // __builtin_HEXAGON_S2_vsplatrb
-+ {Intrinsic::hexagon_S2_vsplatrh, 27070}, // __builtin_HEXAGON_S2_vsplatrh
-+ {Intrinsic::hexagon_S2_vspliceib, 27100}, // __builtin_HEXAGON_S2_vspliceib
-+ {Intrinsic::hexagon_S2_vsplicerb, 27131}, // __builtin_HEXAGON_S2_vsplicerb
-+ {Intrinsic::hexagon_S2_vsxtbh, 27162}, // __builtin_HEXAGON_S2_vsxtbh
-+ {Intrinsic::hexagon_S2_vsxthw, 27190}, // __builtin_HEXAGON_S2_vsxthw
-+ {Intrinsic::hexagon_S2_vtrunehb, 27218}, // __builtin_HEXAGON_S2_vtrunehb
-+ {Intrinsic::hexagon_S2_vtrunewh, 27248}, // __builtin_HEXAGON_S2_vtrunewh
-+ {Intrinsic::hexagon_S2_vtrunohb, 27278}, // __builtin_HEXAGON_S2_vtrunohb
-+ {Intrinsic::hexagon_S2_vtrunowh, 27308}, // __builtin_HEXAGON_S2_vtrunowh
-+ {Intrinsic::hexagon_S2_vzxtbh, 27338}, // __builtin_HEXAGON_S2_vzxtbh
-+ {Intrinsic::hexagon_S2_vzxthw, 27366}, // __builtin_HEXAGON_S2_vzxthw
-+ {Intrinsic::hexagon_S4_addaddi, 27394}, // __builtin_HEXAGON_S4_addaddi
-+ {Intrinsic::hexagon_S4_addi_asl_ri, 27423}, // __builtin_HEXAGON_S4_addi_asl_ri
-+ {Intrinsic::hexagon_S4_addi_lsr_ri, 27456}, // __builtin_HEXAGON_S4_addi_lsr_ri
-+ {Intrinsic::hexagon_S4_andi_asl_ri, 27489}, // __builtin_HEXAGON_S4_andi_asl_ri
-+ {Intrinsic::hexagon_S4_andi_lsr_ri, 27522}, // __builtin_HEXAGON_S4_andi_lsr_ri
-+ {Intrinsic::hexagon_S4_clbaddi, 27555}, // __builtin_HEXAGON_S4_clbaddi
-+ {Intrinsic::hexagon_S4_clbpaddi, 27584}, // __builtin_HEXAGON_S4_clbpaddi
-+ {Intrinsic::hexagon_S4_clbpnorm, 27614}, // __builtin_HEXAGON_S4_clbpnorm
-+ {Intrinsic::hexagon_S4_extract, 27644}, // __builtin_HEXAGON_S4_extract
-+ {Intrinsic::hexagon_S4_extract_rp, 27673}, // __builtin_HEXAGON_S4_extract_rp
-+ {Intrinsic::hexagon_S4_extractp, 27705}, // __builtin_HEXAGON_S4_extractp
-+ {Intrinsic::hexagon_S4_extractp_rp, 27735}, // __builtin_HEXAGON_S4_extractp_rp
-+ {Intrinsic::hexagon_S4_lsli, 27768}, // __builtin_HEXAGON_S4_lsli
-+ {Intrinsic::hexagon_S4_ntstbit_i, 27794}, // __builtin_HEXAGON_S4_ntstbit_i
-+ {Intrinsic::hexagon_S4_ntstbit_r, 27825}, // __builtin_HEXAGON_S4_ntstbit_r
-+ {Intrinsic::hexagon_S4_or_andi, 27856}, // __builtin_HEXAGON_S4_or_andi
-+ {Intrinsic::hexagon_S4_or_andix, 27885}, // __builtin_HEXAGON_S4_or_andix
-+ {Intrinsic::hexagon_S4_or_ori, 27915}, // __builtin_HEXAGON_S4_or_ori
-+ {Intrinsic::hexagon_S4_ori_asl_ri, 27943}, // __builtin_HEXAGON_S4_ori_asl_ri
-+ {Intrinsic::hexagon_S4_ori_lsr_ri, 27975}, // __builtin_HEXAGON_S4_ori_lsr_ri
-+ {Intrinsic::hexagon_S4_parity, 28007}, // __builtin_HEXAGON_S4_parity
-+ {Intrinsic::hexagon_S4_stored_locked, 28035}, // __builtin_HEXAGON_S4_stored_locked
-+ {Intrinsic::hexagon_S4_subaddi, 28070}, // __builtin_HEXAGON_S4_subaddi
-+ {Intrinsic::hexagon_S4_subi_asl_ri, 28099}, // __builtin_HEXAGON_S4_subi_asl_ri
-+ {Intrinsic::hexagon_S4_subi_lsr_ri, 28132}, // __builtin_HEXAGON_S4_subi_lsr_ri
-+ {Intrinsic::hexagon_S4_vrcrotate, 28165}, // __builtin_HEXAGON_S4_vrcrotate
-+ {Intrinsic::hexagon_S4_vrcrotate_acc, 28196}, // __builtin_HEXAGON_S4_vrcrotate_acc
-+ {Intrinsic::hexagon_S4_vxaddsubh, 28231}, // __builtin_HEXAGON_S4_vxaddsubh
-+ {Intrinsic::hexagon_S4_vxaddsubhr, 28262}, // __builtin_HEXAGON_S4_vxaddsubhr
-+ {Intrinsic::hexagon_S4_vxaddsubw, 28294}, // __builtin_HEXAGON_S4_vxaddsubw
-+ {Intrinsic::hexagon_S4_vxsubaddh, 28325}, // __builtin_HEXAGON_S4_vxsubaddh
-+ {Intrinsic::hexagon_S4_vxsubaddhr, 28356}, // __builtin_HEXAGON_S4_vxsubaddhr
-+ {Intrinsic::hexagon_S4_vxsubaddw, 28388}, // __builtin_HEXAGON_S4_vxsubaddw
-+ {Intrinsic::hexagon_S5_asrhub_rnd_sat_goodsyntax, 28419}, // __builtin_HEXAGON_S5_asrhub_rnd_sat_goodsyntax
-+ {Intrinsic::hexagon_S5_asrhub_sat, 28466}, // __builtin_HEXAGON_S5_asrhub_sat
-+ {Intrinsic::hexagon_S5_popcountp, 28498}, // __builtin_HEXAGON_S5_popcountp
-+ {Intrinsic::hexagon_S5_vasrhrnd_goodsyntax, 28529}, // __builtin_HEXAGON_S5_vasrhrnd_goodsyntax
-+ {Intrinsic::hexagon_S6_rol_i_p, 28570}, // __builtin_HEXAGON_S6_rol_i_p
-+ {Intrinsic::hexagon_S6_rol_i_p_acc, 28599}, // __builtin_HEXAGON_S6_rol_i_p_acc
-+ {Intrinsic::hexagon_S6_rol_i_p_and, 28632}, // __builtin_HEXAGON_S6_rol_i_p_and
-+ {Intrinsic::hexagon_S6_rol_i_p_nac, 28665}, // __builtin_HEXAGON_S6_rol_i_p_nac
-+ {Intrinsic::hexagon_S6_rol_i_p_or, 28698}, // __builtin_HEXAGON_S6_rol_i_p_or
-+ {Intrinsic::hexagon_S6_rol_i_p_xacc, 28730}, // __builtin_HEXAGON_S6_rol_i_p_xacc
-+ {Intrinsic::hexagon_S6_rol_i_r, 28764}, // __builtin_HEXAGON_S6_rol_i_r
-+ {Intrinsic::hexagon_S6_rol_i_r_acc, 28793}, // __builtin_HEXAGON_S6_rol_i_r_acc
-+ {Intrinsic::hexagon_S6_rol_i_r_and, 28826}, // __builtin_HEXAGON_S6_rol_i_r_and
-+ {Intrinsic::hexagon_S6_rol_i_r_nac, 28859}, // __builtin_HEXAGON_S6_rol_i_r_nac
-+ {Intrinsic::hexagon_S6_rol_i_r_or, 28892}, // __builtin_HEXAGON_S6_rol_i_r_or
-+ {Intrinsic::hexagon_S6_rol_i_r_xacc, 28924}, // __builtin_HEXAGON_S6_rol_i_r_xacc
-+ {Intrinsic::hexagon_S6_vsplatrbp, 28958}, // __builtin_HEXAGON_S6_vsplatrbp
-+ {Intrinsic::hexagon_S6_vtrunehb_ppp, 28989}, // __builtin_HEXAGON_S6_vtrunehb_ppp
-+ {Intrinsic::hexagon_S6_vtrunohb_ppp, 29023}, // __builtin_HEXAGON_S6_vtrunohb_ppp
-+ {Intrinsic::hexagon_V6_extractw, 29084}, // __builtin_HEXAGON_V6_extractw
-+ {Intrinsic::hexagon_V6_extractw_128B, 29114}, // __builtin_HEXAGON_V6_extractw_128B
-+ {Intrinsic::hexagon_V6_hi, 29149}, // __builtin_HEXAGON_V6_hi
-+ {Intrinsic::hexagon_V6_hi_128B, 29173}, // __builtin_HEXAGON_V6_hi_128B
-+ {Intrinsic::hexagon_V6_lo, 29202}, // __builtin_HEXAGON_V6_lo
-+ {Intrinsic::hexagon_V6_lo_128B, 29226}, // __builtin_HEXAGON_V6_lo_128B
-+ {Intrinsic::hexagon_V6_lvsplatw, 29255}, // __builtin_HEXAGON_V6_lvsplatw
-+ {Intrinsic::hexagon_V6_lvsplatw_128B, 29285}, // __builtin_HEXAGON_V6_lvsplatw_128B
-+ {Intrinsic::hexagon_V6_pred_and, 29320}, // __builtin_HEXAGON_V6_pred_and
-+ {Intrinsic::hexagon_V6_pred_and_128B, 29350}, // __builtin_HEXAGON_V6_pred_and_128B
-+ {Intrinsic::hexagon_V6_pred_and_n, 29385}, // __builtin_HEXAGON_V6_pred_and_n
-+ {Intrinsic::hexagon_V6_pred_and_n_128B, 29417}, // __builtin_HEXAGON_V6_pred_and_n_128B
-+ {Intrinsic::hexagon_V6_pred_not, 29454}, // __builtin_HEXAGON_V6_pred_not
-+ {Intrinsic::hexagon_V6_pred_not_128B, 29484}, // __builtin_HEXAGON_V6_pred_not_128B
-+ {Intrinsic::hexagon_V6_pred_or, 29519}, // __builtin_HEXAGON_V6_pred_or
-+ {Intrinsic::hexagon_V6_pred_or_128B, 29548}, // __builtin_HEXAGON_V6_pred_or_128B
-+ {Intrinsic::hexagon_V6_pred_or_n, 29582}, // __builtin_HEXAGON_V6_pred_or_n
-+ {Intrinsic::hexagon_V6_pred_or_n_128B, 29613}, // __builtin_HEXAGON_V6_pred_or_n_128B
-+ {Intrinsic::hexagon_V6_pred_scalar2, 29649}, // __builtin_HEXAGON_V6_pred_scalar2
-+ {Intrinsic::hexagon_V6_pred_scalar2_128B, 29683}, // __builtin_HEXAGON_V6_pred_scalar2_128B
-+ {Intrinsic::hexagon_V6_pred_xor, 29722}, // __builtin_HEXAGON_V6_pred_xor
-+ {Intrinsic::hexagon_V6_pred_xor_128B, 29752}, // __builtin_HEXAGON_V6_pred_xor_128B
-+ {Intrinsic::hexagon_V6_vabsdiffh, 29787}, // __builtin_HEXAGON_V6_vabsdiffh
-+ {Intrinsic::hexagon_V6_vabsdiffh_128B, 29818}, // __builtin_HEXAGON_V6_vabsdiffh_128B
-+ {Intrinsic::hexagon_V6_vabsdiffub, 29854}, // __builtin_HEXAGON_V6_vabsdiffub
-+ {Intrinsic::hexagon_V6_vabsdiffub_128B, 29886}, // __builtin_HEXAGON_V6_vabsdiffub_128B
-+ {Intrinsic::hexagon_V6_vabsdiffuh, 29923}, // __builtin_HEXAGON_V6_vabsdiffuh
-+ {Intrinsic::hexagon_V6_vabsdiffuh_128B, 29955}, // __builtin_HEXAGON_V6_vabsdiffuh_128B
-+ {Intrinsic::hexagon_V6_vabsdiffw, 29992}, // __builtin_HEXAGON_V6_vabsdiffw
-+ {Intrinsic::hexagon_V6_vabsdiffw_128B, 30023}, // __builtin_HEXAGON_V6_vabsdiffw_128B
-+ {Intrinsic::hexagon_V6_vabsh, 30059}, // __builtin_HEXAGON_V6_vabsh
-+ {Intrinsic::hexagon_V6_vabsh_128B, 30086}, // __builtin_HEXAGON_V6_vabsh_128B
-+ {Intrinsic::hexagon_V6_vabsh_sat, 30118}, // __builtin_HEXAGON_V6_vabsh_sat
-+ {Intrinsic::hexagon_V6_vabsh_sat_128B, 30149}, // __builtin_HEXAGON_V6_vabsh_sat_128B
-+ {Intrinsic::hexagon_V6_vabsw, 30185}, // __builtin_HEXAGON_V6_vabsw
-+ {Intrinsic::hexagon_V6_vabsw_128B, 30212}, // __builtin_HEXAGON_V6_vabsw_128B
-+ {Intrinsic::hexagon_V6_vabsw_sat, 30244}, // __builtin_HEXAGON_V6_vabsw_sat
-+ {Intrinsic::hexagon_V6_vabsw_sat_128B, 30275}, // __builtin_HEXAGON_V6_vabsw_sat_128B
-+ {Intrinsic::hexagon_V6_vaddb, 30311}, // __builtin_HEXAGON_V6_vaddb
-+ {Intrinsic::hexagon_V6_vaddb_128B, 30338}, // __builtin_HEXAGON_V6_vaddb_128B
-+ {Intrinsic::hexagon_V6_vaddb_dv, 30370}, // __builtin_HEXAGON_V6_vaddb_dv
-+ {Intrinsic::hexagon_V6_vaddb_dv_128B, 30400}, // __builtin_HEXAGON_V6_vaddb_dv_128B
-+ {Intrinsic::hexagon_V6_vaddbnq, 30435}, // __builtin_HEXAGON_V6_vaddbnq
-+ {Intrinsic::hexagon_V6_vaddbnq_128B, 30464}, // __builtin_HEXAGON_V6_vaddbnq_128B
-+ {Intrinsic::hexagon_V6_vaddbq, 30498}, // __builtin_HEXAGON_V6_vaddbq
-+ {Intrinsic::hexagon_V6_vaddbq_128B, 30526}, // __builtin_HEXAGON_V6_vaddbq_128B
-+ {Intrinsic::hexagon_V6_vaddh, 30559}, // __builtin_HEXAGON_V6_vaddh
-+ {Intrinsic::hexagon_V6_vaddh_128B, 30586}, // __builtin_HEXAGON_V6_vaddh_128B
-+ {Intrinsic::hexagon_V6_vaddh_dv, 30618}, // __builtin_HEXAGON_V6_vaddh_dv
-+ {Intrinsic::hexagon_V6_vaddh_dv_128B, 30648}, // __builtin_HEXAGON_V6_vaddh_dv_128B
-+ {Intrinsic::hexagon_V6_vaddhnq, 30683}, // __builtin_HEXAGON_V6_vaddhnq
-+ {Intrinsic::hexagon_V6_vaddhnq_128B, 30712}, // __builtin_HEXAGON_V6_vaddhnq_128B
-+ {Intrinsic::hexagon_V6_vaddhq, 30746}, // __builtin_HEXAGON_V6_vaddhq
-+ {Intrinsic::hexagon_V6_vaddhq_128B, 30774}, // __builtin_HEXAGON_V6_vaddhq_128B
-+ {Intrinsic::hexagon_V6_vaddhsat, 30807}, // __builtin_HEXAGON_V6_vaddhsat
-+ {Intrinsic::hexagon_V6_vaddhsat_128B, 30837}, // __builtin_HEXAGON_V6_vaddhsat_128B
-+ {Intrinsic::hexagon_V6_vaddhsat_dv, 30872}, // __builtin_HEXAGON_V6_vaddhsat_dv
-+ {Intrinsic::hexagon_V6_vaddhsat_dv_128B, 30905}, // __builtin_HEXAGON_V6_vaddhsat_dv_128B
-+ {Intrinsic::hexagon_V6_vaddhw, 30943}, // __builtin_HEXAGON_V6_vaddhw
-+ {Intrinsic::hexagon_V6_vaddhw_128B, 30971}, // __builtin_HEXAGON_V6_vaddhw_128B
-+ {Intrinsic::hexagon_V6_vaddubh, 31004}, // __builtin_HEXAGON_V6_vaddubh
-+ {Intrinsic::hexagon_V6_vaddubh_128B, 31033}, // __builtin_HEXAGON_V6_vaddubh_128B
-+ {Intrinsic::hexagon_V6_vaddubsat, 31067}, // __builtin_HEXAGON_V6_vaddubsat
-+ {Intrinsic::hexagon_V6_vaddubsat_128B, 31098}, // __builtin_HEXAGON_V6_vaddubsat_128B
-+ {Intrinsic::hexagon_V6_vaddubsat_dv, 31134}, // __builtin_HEXAGON_V6_vaddubsat_dv
-+ {Intrinsic::hexagon_V6_vaddubsat_dv_128B, 31168}, // __builtin_HEXAGON_V6_vaddubsat_dv_128B
-+ {Intrinsic::hexagon_V6_vadduhsat, 31207}, // __builtin_HEXAGON_V6_vadduhsat
-+ {Intrinsic::hexagon_V6_vadduhsat_128B, 31238}, // __builtin_HEXAGON_V6_vadduhsat_128B
-+ {Intrinsic::hexagon_V6_vadduhsat_dv, 31274}, // __builtin_HEXAGON_V6_vadduhsat_dv
-+ {Intrinsic::hexagon_V6_vadduhsat_dv_128B, 31308}, // __builtin_HEXAGON_V6_vadduhsat_dv_128B
-+ {Intrinsic::hexagon_V6_vadduhw, 31347}, // __builtin_HEXAGON_V6_vadduhw
-+ {Intrinsic::hexagon_V6_vadduhw_128B, 31376}, // __builtin_HEXAGON_V6_vadduhw_128B
-+ {Intrinsic::hexagon_V6_vaddw, 31410}, // __builtin_HEXAGON_V6_vaddw
-+ {Intrinsic::hexagon_V6_vaddw_128B, 31437}, // __builtin_HEXAGON_V6_vaddw_128B
-+ {Intrinsic::hexagon_V6_vaddw_dv, 31469}, // __builtin_HEXAGON_V6_vaddw_dv
-+ {Intrinsic::hexagon_V6_vaddw_dv_128B, 31499}, // __builtin_HEXAGON_V6_vaddw_dv_128B
-+ {Intrinsic::hexagon_V6_vaddwnq, 31534}, // __builtin_HEXAGON_V6_vaddwnq
-+ {Intrinsic::hexagon_V6_vaddwnq_128B, 31563}, // __builtin_HEXAGON_V6_vaddwnq_128B
-+ {Intrinsic::hexagon_V6_vaddwq, 31597}, // __builtin_HEXAGON_V6_vaddwq
-+ {Intrinsic::hexagon_V6_vaddwq_128B, 31625}, // __builtin_HEXAGON_V6_vaddwq_128B
-+ {Intrinsic::hexagon_V6_vaddwsat, 31658}, // __builtin_HEXAGON_V6_vaddwsat
-+ {Intrinsic::hexagon_V6_vaddwsat_128B, 31688}, // __builtin_HEXAGON_V6_vaddwsat_128B
-+ {Intrinsic::hexagon_V6_vaddwsat_dv, 31723}, // __builtin_HEXAGON_V6_vaddwsat_dv
-+ {Intrinsic::hexagon_V6_vaddwsat_dv_128B, 31756}, // __builtin_HEXAGON_V6_vaddwsat_dv_128B
-+ {Intrinsic::hexagon_V6_valignb, 31794}, // __builtin_HEXAGON_V6_valignb
-+ {Intrinsic::hexagon_V6_valignb_128B, 31823}, // __builtin_HEXAGON_V6_valignb_128B
-+ {Intrinsic::hexagon_V6_valignbi, 31857}, // __builtin_HEXAGON_V6_valignbi
-+ {Intrinsic::hexagon_V6_valignbi_128B, 31887}, // __builtin_HEXAGON_V6_valignbi_128B
-+ {Intrinsic::hexagon_V6_vand, 31922}, // __builtin_HEXAGON_V6_vand
-+ {Intrinsic::hexagon_V6_vand_128B, 31948}, // __builtin_HEXAGON_V6_vand_128B
-+ {Intrinsic::hexagon_V6_vandqrt, 31979}, // __builtin_HEXAGON_V6_vandqrt
-+ {Intrinsic::hexagon_V6_vandqrt_128B, 32008}, // __builtin_HEXAGON_V6_vandqrt_128B
-+ {Intrinsic::hexagon_V6_vandqrt_acc, 32042}, // __builtin_HEXAGON_V6_vandqrt_acc
-+ {Intrinsic::hexagon_V6_vandqrt_acc_128B, 32075}, // __builtin_HEXAGON_V6_vandqrt_acc_128B
-+ {Intrinsic::hexagon_V6_vandvrt, 32113}, // __builtin_HEXAGON_V6_vandvrt
-+ {Intrinsic::hexagon_V6_vandvrt_128B, 32142}, // __builtin_HEXAGON_V6_vandvrt_128B
-+ {Intrinsic::hexagon_V6_vandvrt_acc, 32176}, // __builtin_HEXAGON_V6_vandvrt_acc
-+ {Intrinsic::hexagon_V6_vandvrt_acc_128B, 32209}, // __builtin_HEXAGON_V6_vandvrt_acc_128B
-+ {Intrinsic::hexagon_V6_vaslh, 32247}, // __builtin_HEXAGON_V6_vaslh
-+ {Intrinsic::hexagon_V6_vaslh_128B, 32274}, // __builtin_HEXAGON_V6_vaslh_128B
-+ {Intrinsic::hexagon_V6_vaslhv, 32306}, // __builtin_HEXAGON_V6_vaslhv
-+ {Intrinsic::hexagon_V6_vaslhv_128B, 32334}, // __builtin_HEXAGON_V6_vaslhv_128B
-+ {Intrinsic::hexagon_V6_vaslw, 32367}, // __builtin_HEXAGON_V6_vaslw
-+ {Intrinsic::hexagon_V6_vaslw_128B, 32394}, // __builtin_HEXAGON_V6_vaslw_128B
-+ {Intrinsic::hexagon_V6_vaslw_acc, 32426}, // __builtin_HEXAGON_V6_vaslw_acc
-+ {Intrinsic::hexagon_V6_vaslw_acc_128B, 32457}, // __builtin_HEXAGON_V6_vaslw_acc_128B
-+ {Intrinsic::hexagon_V6_vaslwv, 32493}, // __builtin_HEXAGON_V6_vaslwv
-+ {Intrinsic::hexagon_V6_vaslwv_128B, 32521}, // __builtin_HEXAGON_V6_vaslwv_128B
-+ {Intrinsic::hexagon_V6_vasrh, 32554}, // __builtin_HEXAGON_V6_vasrh
-+ {Intrinsic::hexagon_V6_vasrh_128B, 32581}, // __builtin_HEXAGON_V6_vasrh_128B
-+ {Intrinsic::hexagon_V6_vasrhbrndsat, 32613}, // __builtin_HEXAGON_V6_vasrhbrndsat
-+ {Intrinsic::hexagon_V6_vasrhbrndsat_128B, 32647}, // __builtin_HEXAGON_V6_vasrhbrndsat_128B
-+ {Intrinsic::hexagon_V6_vasrhubrndsat, 32686}, // __builtin_HEXAGON_V6_vasrhubrndsat
-+ {Intrinsic::hexagon_V6_vasrhubrndsat_128B, 32721}, // __builtin_HEXAGON_V6_vasrhubrndsat_128B
-+ {Intrinsic::hexagon_V6_vasrhubsat, 32761}, // __builtin_HEXAGON_V6_vasrhubsat
-+ {Intrinsic::hexagon_V6_vasrhubsat_128B, 32793}, // __builtin_HEXAGON_V6_vasrhubsat_128B
-+ {Intrinsic::hexagon_V6_vasrhv, 32830}, // __builtin_HEXAGON_V6_vasrhv
-+ {Intrinsic::hexagon_V6_vasrhv_128B, 32858}, // __builtin_HEXAGON_V6_vasrhv_128B
-+ {Intrinsic::hexagon_V6_vasrw, 32891}, // __builtin_HEXAGON_V6_vasrw
-+ {Intrinsic::hexagon_V6_vasrw_128B, 32918}, // __builtin_HEXAGON_V6_vasrw_128B
-+ {Intrinsic::hexagon_V6_vasrw_acc, 32950}, // __builtin_HEXAGON_V6_vasrw_acc
-+ {Intrinsic::hexagon_V6_vasrw_acc_128B, 32981}, // __builtin_HEXAGON_V6_vasrw_acc_128B
-+ {Intrinsic::hexagon_V6_vasrwh, 33017}, // __builtin_HEXAGON_V6_vasrwh
-+ {Intrinsic::hexagon_V6_vasrwh_128B, 33045}, // __builtin_HEXAGON_V6_vasrwh_128B
-+ {Intrinsic::hexagon_V6_vasrwhrndsat, 33078}, // __builtin_HEXAGON_V6_vasrwhrndsat
-+ {Intrinsic::hexagon_V6_vasrwhrndsat_128B, 33112}, // __builtin_HEXAGON_V6_vasrwhrndsat_128B
-+ {Intrinsic::hexagon_V6_vasrwhsat, 33151}, // __builtin_HEXAGON_V6_vasrwhsat
-+ {Intrinsic::hexagon_V6_vasrwhsat_128B, 33182}, // __builtin_HEXAGON_V6_vasrwhsat_128B
-+ {Intrinsic::hexagon_V6_vasrwuhsat, 33218}, // __builtin_HEXAGON_V6_vasrwuhsat
-+ {Intrinsic::hexagon_V6_vasrwuhsat_128B, 33250}, // __builtin_HEXAGON_V6_vasrwuhsat_128B
-+ {Intrinsic::hexagon_V6_vasrwv, 33287}, // __builtin_HEXAGON_V6_vasrwv
-+ {Intrinsic::hexagon_V6_vasrwv_128B, 33315}, // __builtin_HEXAGON_V6_vasrwv_128B
-+ {Intrinsic::hexagon_V6_vassign, 33348}, // __builtin_HEXAGON_V6_vassign
-+ {Intrinsic::hexagon_V6_vassign_128B, 33377}, // __builtin_HEXAGON_V6_vassign_128B
-+ {Intrinsic::hexagon_V6_vassignp, 33411}, // __builtin_HEXAGON_V6_vassignp
-+ {Intrinsic::hexagon_V6_vassignp_128B, 33441}, // __builtin_HEXAGON_V6_vassignp_128B
-+ {Intrinsic::hexagon_V6_vavgh, 33476}, // __builtin_HEXAGON_V6_vavgh
-+ {Intrinsic::hexagon_V6_vavgh_128B, 33503}, // __builtin_HEXAGON_V6_vavgh_128B
-+ {Intrinsic::hexagon_V6_vavghrnd, 33535}, // __builtin_HEXAGON_V6_vavghrnd
-+ {Intrinsic::hexagon_V6_vavghrnd_128B, 33565}, // __builtin_HEXAGON_V6_vavghrnd_128B
-+ {Intrinsic::hexagon_V6_vavgub, 33600}, // __builtin_HEXAGON_V6_vavgub
-+ {Intrinsic::hexagon_V6_vavgub_128B, 33628}, // __builtin_HEXAGON_V6_vavgub_128B
-+ {Intrinsic::hexagon_V6_vavgubrnd, 33661}, // __builtin_HEXAGON_V6_vavgubrnd
-+ {Intrinsic::hexagon_V6_vavgubrnd_128B, 33692}, // __builtin_HEXAGON_V6_vavgubrnd_128B
-+ {Intrinsic::hexagon_V6_vavguh, 33728}, // __builtin_HEXAGON_V6_vavguh
-+ {Intrinsic::hexagon_V6_vavguh_128B, 33756}, // __builtin_HEXAGON_V6_vavguh_128B
-+ {Intrinsic::hexagon_V6_vavguhrnd, 33789}, // __builtin_HEXAGON_V6_vavguhrnd
-+ {Intrinsic::hexagon_V6_vavguhrnd_128B, 33820}, // __builtin_HEXAGON_V6_vavguhrnd_128B
-+ {Intrinsic::hexagon_V6_vavgw, 33856}, // __builtin_HEXAGON_V6_vavgw
-+ {Intrinsic::hexagon_V6_vavgw_128B, 33883}, // __builtin_HEXAGON_V6_vavgw_128B
-+ {Intrinsic::hexagon_V6_vavgwrnd, 33915}, // __builtin_HEXAGON_V6_vavgwrnd
-+ {Intrinsic::hexagon_V6_vavgwrnd_128B, 33945}, // __builtin_HEXAGON_V6_vavgwrnd_128B
-+ {Intrinsic::hexagon_V6_vcl0h, 33980}, // __builtin_HEXAGON_V6_vcl0h
-+ {Intrinsic::hexagon_V6_vcl0h_128B, 34007}, // __builtin_HEXAGON_V6_vcl0h_128B
-+ {Intrinsic::hexagon_V6_vcl0w, 34039}, // __builtin_HEXAGON_V6_vcl0w
-+ {Intrinsic::hexagon_V6_vcl0w_128B, 34066}, // __builtin_HEXAGON_V6_vcl0w_128B
-+ {Intrinsic::hexagon_V6_vcombine, 34098}, // __builtin_HEXAGON_V6_vcombine
-+ {Intrinsic::hexagon_V6_vcombine_128B, 34128}, // __builtin_HEXAGON_V6_vcombine_128B
-+ {Intrinsic::hexagon_V6_vd0, 34163}, // __builtin_HEXAGON_V6_vd0
-+ {Intrinsic::hexagon_V6_vd0_128B, 34188}, // __builtin_HEXAGON_V6_vd0_128B
-+ {Intrinsic::hexagon_V6_vdealb, 34218}, // __builtin_HEXAGON_V6_vdealb
-+ {Intrinsic::hexagon_V6_vdealb4w, 34279}, // __builtin_HEXAGON_V6_vdealb4w
-+ {Intrinsic::hexagon_V6_vdealb4w_128B, 34309}, // __builtin_HEXAGON_V6_vdealb4w_128B
-+ {Intrinsic::hexagon_V6_vdealb_128B, 34246}, // __builtin_HEXAGON_V6_vdealb_128B
-+ {Intrinsic::hexagon_V6_vdealh, 34344}, // __builtin_HEXAGON_V6_vdealh
-+ {Intrinsic::hexagon_V6_vdealh_128B, 34372}, // __builtin_HEXAGON_V6_vdealh_128B
-+ {Intrinsic::hexagon_V6_vdealvdd, 34405}, // __builtin_HEXAGON_V6_vdealvdd
-+ {Intrinsic::hexagon_V6_vdealvdd_128B, 34435}, // __builtin_HEXAGON_V6_vdealvdd_128B
-+ {Intrinsic::hexagon_V6_vdelta, 34470}, // __builtin_HEXAGON_V6_vdelta
-+ {Intrinsic::hexagon_V6_vdelta_128B, 34498}, // __builtin_HEXAGON_V6_vdelta_128B
-+ {Intrinsic::hexagon_V6_vdmpybus, 34531}, // __builtin_HEXAGON_V6_vdmpybus
-+ {Intrinsic::hexagon_V6_vdmpybus_128B, 34561}, // __builtin_HEXAGON_V6_vdmpybus_128B
-+ {Intrinsic::hexagon_V6_vdmpybus_acc, 34596}, // __builtin_HEXAGON_V6_vdmpybus_acc
-+ {Intrinsic::hexagon_V6_vdmpybus_acc_128B, 34630}, // __builtin_HEXAGON_V6_vdmpybus_acc_128B
-+ {Intrinsic::hexagon_V6_vdmpybus_dv, 34669}, // __builtin_HEXAGON_V6_vdmpybus_dv
-+ {Intrinsic::hexagon_V6_vdmpybus_dv_128B, 34702}, // __builtin_HEXAGON_V6_vdmpybus_dv_128B
-+ {Intrinsic::hexagon_V6_vdmpybus_dv_acc, 34740}, // __builtin_HEXAGON_V6_vdmpybus_dv_acc
-+ {Intrinsic::hexagon_V6_vdmpybus_dv_acc_128B, 34777}, // __builtin_HEXAGON_V6_vdmpybus_dv_acc_128B
-+ {Intrinsic::hexagon_V6_vdmpyhb, 34819}, // __builtin_HEXAGON_V6_vdmpyhb
-+ {Intrinsic::hexagon_V6_vdmpyhb_128B, 34848}, // __builtin_HEXAGON_V6_vdmpyhb_128B
-+ {Intrinsic::hexagon_V6_vdmpyhb_acc, 34882}, // __builtin_HEXAGON_V6_vdmpyhb_acc
-+ {Intrinsic::hexagon_V6_vdmpyhb_acc_128B, 34915}, // __builtin_HEXAGON_V6_vdmpyhb_acc_128B
-+ {Intrinsic::hexagon_V6_vdmpyhb_dv, 34953}, // __builtin_HEXAGON_V6_vdmpyhb_dv
-+ {Intrinsic::hexagon_V6_vdmpyhb_dv_128B, 34985}, // __builtin_HEXAGON_V6_vdmpyhb_dv_128B
-+ {Intrinsic::hexagon_V6_vdmpyhb_dv_acc, 35022}, // __builtin_HEXAGON_V6_vdmpyhb_dv_acc
-+ {Intrinsic::hexagon_V6_vdmpyhb_dv_acc_128B, 35058}, // __builtin_HEXAGON_V6_vdmpyhb_dv_acc_128B
-+ {Intrinsic::hexagon_V6_vdmpyhisat, 35099}, // __builtin_HEXAGON_V6_vdmpyhisat
-+ {Intrinsic::hexagon_V6_vdmpyhisat_128B, 35131}, // __builtin_HEXAGON_V6_vdmpyhisat_128B
-+ {Intrinsic::hexagon_V6_vdmpyhisat_acc, 35168}, // __builtin_HEXAGON_V6_vdmpyhisat_acc
-+ {Intrinsic::hexagon_V6_vdmpyhisat_acc_128B, 35204}, // __builtin_HEXAGON_V6_vdmpyhisat_acc_128B
-+ {Intrinsic::hexagon_V6_vdmpyhsat, 35245}, // __builtin_HEXAGON_V6_vdmpyhsat
-+ {Intrinsic::hexagon_V6_vdmpyhsat_128B, 35276}, // __builtin_HEXAGON_V6_vdmpyhsat_128B
-+ {Intrinsic::hexagon_V6_vdmpyhsat_acc, 35312}, // __builtin_HEXAGON_V6_vdmpyhsat_acc
-+ {Intrinsic::hexagon_V6_vdmpyhsat_acc_128B, 35347}, // __builtin_HEXAGON_V6_vdmpyhsat_acc_128B
-+ {Intrinsic::hexagon_V6_vdmpyhsuisat, 35387}, // __builtin_HEXAGON_V6_vdmpyhsuisat
-+ {Intrinsic::hexagon_V6_vdmpyhsuisat_128B, 35421}, // __builtin_HEXAGON_V6_vdmpyhsuisat_128B
-+ {Intrinsic::hexagon_V6_vdmpyhsuisat_acc, 35460}, // __builtin_HEXAGON_V6_vdmpyhsuisat_acc
-+ {Intrinsic::hexagon_V6_vdmpyhsuisat_acc_128B, 35498}, // __builtin_HEXAGON_V6_vdmpyhsuisat_acc_128B
-+ {Intrinsic::hexagon_V6_vdmpyhsusat, 35541}, // __builtin_HEXAGON_V6_vdmpyhsusat
-+ {Intrinsic::hexagon_V6_vdmpyhsusat_128B, 35574}, // __builtin_HEXAGON_V6_vdmpyhsusat_128B
-+ {Intrinsic::hexagon_V6_vdmpyhsusat_acc, 35612}, // __builtin_HEXAGON_V6_vdmpyhsusat_acc
-+ {Intrinsic::hexagon_V6_vdmpyhsusat_acc_128B, 35649}, // __builtin_HEXAGON_V6_vdmpyhsusat_acc_128B
-+ {Intrinsic::hexagon_V6_vdmpyhvsat, 35691}, // __builtin_HEXAGON_V6_vdmpyhvsat
-+ {Intrinsic::hexagon_V6_vdmpyhvsat_128B, 35723}, // __builtin_HEXAGON_V6_vdmpyhvsat_128B
-+ {Intrinsic::hexagon_V6_vdmpyhvsat_acc, 35760}, // __builtin_HEXAGON_V6_vdmpyhvsat_acc
-+ {Intrinsic::hexagon_V6_vdmpyhvsat_acc_128B, 35796}, // __builtin_HEXAGON_V6_vdmpyhvsat_acc_128B
-+ {Intrinsic::hexagon_V6_vdsaduh, 35837}, // __builtin_HEXAGON_V6_vdsaduh
-+ {Intrinsic::hexagon_V6_vdsaduh_128B, 35866}, // __builtin_HEXAGON_V6_vdsaduh_128B
-+ {Intrinsic::hexagon_V6_vdsaduh_acc, 35900}, // __builtin_HEXAGON_V6_vdsaduh_acc
-+ {Intrinsic::hexagon_V6_vdsaduh_acc_128B, 35933}, // __builtin_HEXAGON_V6_vdsaduh_acc_128B
-+ {Intrinsic::hexagon_V6_veqb, 35971}, // __builtin_HEXAGON_V6_veqb
-+ {Intrinsic::hexagon_V6_veqb_128B, 35997}, // __builtin_HEXAGON_V6_veqb_128B
-+ {Intrinsic::hexagon_V6_veqb_and, 36028}, // __builtin_HEXAGON_V6_veqb_and
-+ {Intrinsic::hexagon_V6_veqb_and_128B, 36058}, // __builtin_HEXAGON_V6_veqb_and_128B
-+ {Intrinsic::hexagon_V6_veqb_or, 36093}, // __builtin_HEXAGON_V6_veqb_or
-+ {Intrinsic::hexagon_V6_veqb_or_128B, 36122}, // __builtin_HEXAGON_V6_veqb_or_128B
-+ {Intrinsic::hexagon_V6_veqb_xor, 36156}, // __builtin_HEXAGON_V6_veqb_xor
-+ {Intrinsic::hexagon_V6_veqb_xor_128B, 36186}, // __builtin_HEXAGON_V6_veqb_xor_128B
-+ {Intrinsic::hexagon_V6_veqh, 36221}, // __builtin_HEXAGON_V6_veqh
-+ {Intrinsic::hexagon_V6_veqh_128B, 36247}, // __builtin_HEXAGON_V6_veqh_128B
-+ {Intrinsic::hexagon_V6_veqh_and, 36278}, // __builtin_HEXAGON_V6_veqh_and
-+ {Intrinsic::hexagon_V6_veqh_and_128B, 36308}, // __builtin_HEXAGON_V6_veqh_and_128B
-+ {Intrinsic::hexagon_V6_veqh_or, 36343}, // __builtin_HEXAGON_V6_veqh_or
-+ {Intrinsic::hexagon_V6_veqh_or_128B, 36372}, // __builtin_HEXAGON_V6_veqh_or_128B
-+ {Intrinsic::hexagon_V6_veqh_xor, 36406}, // __builtin_HEXAGON_V6_veqh_xor
-+ {Intrinsic::hexagon_V6_veqh_xor_128B, 36436}, // __builtin_HEXAGON_V6_veqh_xor_128B
-+ {Intrinsic::hexagon_V6_veqw, 36471}, // __builtin_HEXAGON_V6_veqw
-+ {Intrinsic::hexagon_V6_veqw_128B, 36497}, // __builtin_HEXAGON_V6_veqw_128B
-+ {Intrinsic::hexagon_V6_veqw_and, 36528}, // __builtin_HEXAGON_V6_veqw_and
-+ {Intrinsic::hexagon_V6_veqw_and_128B, 36558}, // __builtin_HEXAGON_V6_veqw_and_128B
-+ {Intrinsic::hexagon_V6_veqw_or, 36593}, // __builtin_HEXAGON_V6_veqw_or
-+ {Intrinsic::hexagon_V6_veqw_or_128B, 36622}, // __builtin_HEXAGON_V6_veqw_or_128B
-+ {Intrinsic::hexagon_V6_veqw_xor, 36656}, // __builtin_HEXAGON_V6_veqw_xor
-+ {Intrinsic::hexagon_V6_veqw_xor_128B, 36686}, // __builtin_HEXAGON_V6_veqw_xor_128B
-+ {Intrinsic::hexagon_V6_vgtb, 36721}, // __builtin_HEXAGON_V6_vgtb
-+ {Intrinsic::hexagon_V6_vgtb_128B, 36747}, // __builtin_HEXAGON_V6_vgtb_128B
-+ {Intrinsic::hexagon_V6_vgtb_and, 36778}, // __builtin_HEXAGON_V6_vgtb_and
-+ {Intrinsic::hexagon_V6_vgtb_and_128B, 36808}, // __builtin_HEXAGON_V6_vgtb_and_128B
-+ {Intrinsic::hexagon_V6_vgtb_or, 36843}, // __builtin_HEXAGON_V6_vgtb_or
-+ {Intrinsic::hexagon_V6_vgtb_or_128B, 36872}, // __builtin_HEXAGON_V6_vgtb_or_128B
-+ {Intrinsic::hexagon_V6_vgtb_xor, 36906}, // __builtin_HEXAGON_V6_vgtb_xor
-+ {Intrinsic::hexagon_V6_vgtb_xor_128B, 36936}, // __builtin_HEXAGON_V6_vgtb_xor_128B
-+ {Intrinsic::hexagon_V6_vgth, 36971}, // __builtin_HEXAGON_V6_vgth
-+ {Intrinsic::hexagon_V6_vgth_128B, 36997}, // __builtin_HEXAGON_V6_vgth_128B
-+ {Intrinsic::hexagon_V6_vgth_and, 37028}, // __builtin_HEXAGON_V6_vgth_and
-+ {Intrinsic::hexagon_V6_vgth_and_128B, 37058}, // __builtin_HEXAGON_V6_vgth_and_128B
-+ {Intrinsic::hexagon_V6_vgth_or, 37093}, // __builtin_HEXAGON_V6_vgth_or
-+ {Intrinsic::hexagon_V6_vgth_or_128B, 37122}, // __builtin_HEXAGON_V6_vgth_or_128B
-+ {Intrinsic::hexagon_V6_vgth_xor, 37156}, // __builtin_HEXAGON_V6_vgth_xor
-+ {Intrinsic::hexagon_V6_vgth_xor_128B, 37186}, // __builtin_HEXAGON_V6_vgth_xor_128B
-+ {Intrinsic::hexagon_V6_vgtub, 37221}, // __builtin_HEXAGON_V6_vgtub
-+ {Intrinsic::hexagon_V6_vgtub_128B, 37248}, // __builtin_HEXAGON_V6_vgtub_128B
-+ {Intrinsic::hexagon_V6_vgtub_and, 37280}, // __builtin_HEXAGON_V6_vgtub_and
-+ {Intrinsic::hexagon_V6_vgtub_and_128B, 37311}, // __builtin_HEXAGON_V6_vgtub_and_128B
-+ {Intrinsic::hexagon_V6_vgtub_or, 37347}, // __builtin_HEXAGON_V6_vgtub_or
-+ {Intrinsic::hexagon_V6_vgtub_or_128B, 37377}, // __builtin_HEXAGON_V6_vgtub_or_128B
-+ {Intrinsic::hexagon_V6_vgtub_xor, 37412}, // __builtin_HEXAGON_V6_vgtub_xor
-+ {Intrinsic::hexagon_V6_vgtub_xor_128B, 37443}, // __builtin_HEXAGON_V6_vgtub_xor_128B
-+ {Intrinsic::hexagon_V6_vgtuh, 37479}, // __builtin_HEXAGON_V6_vgtuh
-+ {Intrinsic::hexagon_V6_vgtuh_128B, 37506}, // __builtin_HEXAGON_V6_vgtuh_128B
-+ {Intrinsic::hexagon_V6_vgtuh_and, 37538}, // __builtin_HEXAGON_V6_vgtuh_and
-+ {Intrinsic::hexagon_V6_vgtuh_and_128B, 37569}, // __builtin_HEXAGON_V6_vgtuh_and_128B
-+ {Intrinsic::hexagon_V6_vgtuh_or, 37605}, // __builtin_HEXAGON_V6_vgtuh_or
-+ {Intrinsic::hexagon_V6_vgtuh_or_128B, 37635}, // __builtin_HEXAGON_V6_vgtuh_or_128B
-+ {Intrinsic::hexagon_V6_vgtuh_xor, 37670}, // __builtin_HEXAGON_V6_vgtuh_xor
-+ {Intrinsic::hexagon_V6_vgtuh_xor_128B, 37701}, // __builtin_HEXAGON_V6_vgtuh_xor_128B
-+ {Intrinsic::hexagon_V6_vgtuw, 37737}, // __builtin_HEXAGON_V6_vgtuw
-+ {Intrinsic::hexagon_V6_vgtuw_128B, 37764}, // __builtin_HEXAGON_V6_vgtuw_128B
-+ {Intrinsic::hexagon_V6_vgtuw_and, 37796}, // __builtin_HEXAGON_V6_vgtuw_and
-+ {Intrinsic::hexagon_V6_vgtuw_and_128B, 37827}, // __builtin_HEXAGON_V6_vgtuw_and_128B
-+ {Intrinsic::hexagon_V6_vgtuw_or, 37863}, // __builtin_HEXAGON_V6_vgtuw_or
-+ {Intrinsic::hexagon_V6_vgtuw_or_128B, 37893}, // __builtin_HEXAGON_V6_vgtuw_or_128B
-+ {Intrinsic::hexagon_V6_vgtuw_xor, 37928}, // __builtin_HEXAGON_V6_vgtuw_xor
-+ {Intrinsic::hexagon_V6_vgtuw_xor_128B, 37959}, // __builtin_HEXAGON_V6_vgtuw_xor_128B
-+ {Intrinsic::hexagon_V6_vgtw, 37995}, // __builtin_HEXAGON_V6_vgtw
-+ {Intrinsic::hexagon_V6_vgtw_128B, 38021}, // __builtin_HEXAGON_V6_vgtw_128B
-+ {Intrinsic::hexagon_V6_vgtw_and, 38052}, // __builtin_HEXAGON_V6_vgtw_and
-+ {Intrinsic::hexagon_V6_vgtw_and_128B, 38082}, // __builtin_HEXAGON_V6_vgtw_and_128B
-+ {Intrinsic::hexagon_V6_vgtw_or, 38117}, // __builtin_HEXAGON_V6_vgtw_or
-+ {Intrinsic::hexagon_V6_vgtw_or_128B, 38146}, // __builtin_HEXAGON_V6_vgtw_or_128B
-+ {Intrinsic::hexagon_V6_vgtw_xor, 38180}, // __builtin_HEXAGON_V6_vgtw_xor
-+ {Intrinsic::hexagon_V6_vgtw_xor_128B, 38210}, // __builtin_HEXAGON_V6_vgtw_xor_128B
-+ {Intrinsic::hexagon_V6_vinsertwr, 38245}, // __builtin_HEXAGON_V6_vinsertwr
-+ {Intrinsic::hexagon_V6_vinsertwr_128B, 38276}, // __builtin_HEXAGON_V6_vinsertwr_128B
-+ {Intrinsic::hexagon_V6_vlalignb, 38312}, // __builtin_HEXAGON_V6_vlalignb
-+ {Intrinsic::hexagon_V6_vlalignb_128B, 38342}, // __builtin_HEXAGON_V6_vlalignb_128B
-+ {Intrinsic::hexagon_V6_vlalignbi, 38377}, // __builtin_HEXAGON_V6_vlalignbi
-+ {Intrinsic::hexagon_V6_vlalignbi_128B, 38408}, // __builtin_HEXAGON_V6_vlalignbi_128B
-+ {Intrinsic::hexagon_V6_vlsrh, 38444}, // __builtin_HEXAGON_V6_vlsrh
-+ {Intrinsic::hexagon_V6_vlsrh_128B, 38471}, // __builtin_HEXAGON_V6_vlsrh_128B
-+ {Intrinsic::hexagon_V6_vlsrhv, 38503}, // __builtin_HEXAGON_V6_vlsrhv
-+ {Intrinsic::hexagon_V6_vlsrhv_128B, 38531}, // __builtin_HEXAGON_V6_vlsrhv_128B
-+ {Intrinsic::hexagon_V6_vlsrw, 38564}, // __builtin_HEXAGON_V6_vlsrw
-+ {Intrinsic::hexagon_V6_vlsrw_128B, 38591}, // __builtin_HEXAGON_V6_vlsrw_128B
-+ {Intrinsic::hexagon_V6_vlsrwv, 38623}, // __builtin_HEXAGON_V6_vlsrwv
-+ {Intrinsic::hexagon_V6_vlsrwv_128B, 38651}, // __builtin_HEXAGON_V6_vlsrwv_128B
-+ {Intrinsic::hexagon_V6_vlutb, 38684}, // __builtin_HEXAGON_V6_vlutb
-+ {Intrinsic::hexagon_V6_vlutb_128B, 38711}, // __builtin_HEXAGON_V6_vlutb_128B
-+ {Intrinsic::hexagon_V6_vlutb_acc, 38743}, // __builtin_HEXAGON_V6_vlutb_acc
-+ {Intrinsic::hexagon_V6_vlutb_acc_128B, 38774}, // __builtin_HEXAGON_V6_vlutb_acc_128B
-+ {Intrinsic::hexagon_V6_vlutb_dv, 38810}, // __builtin_HEXAGON_V6_vlutb_dv
-+ {Intrinsic::hexagon_V6_vlutb_dv_128B, 38840}, // __builtin_HEXAGON_V6_vlutb_dv_128B
-+ {Intrinsic::hexagon_V6_vlutb_dv_acc, 38875}, // __builtin_HEXAGON_V6_vlutb_dv_acc
-+ {Intrinsic::hexagon_V6_vlutb_dv_acc_128B, 38909}, // __builtin_HEXAGON_V6_vlutb_dv_acc_128B
-+ {Intrinsic::hexagon_V6_vlutvvb, 38948}, // __builtin_HEXAGON_V6_vlutvvb
-+ {Intrinsic::hexagon_V6_vlutvvb_128B, 38977}, // __builtin_HEXAGON_V6_vlutvvb_128B
-+ {Intrinsic::hexagon_V6_vlutvvb_oracc, 39011}, // __builtin_HEXAGON_V6_vlutvvb_oracc
-+ {Intrinsic::hexagon_V6_vlutvvb_oracc_128B, 39046}, // __builtin_HEXAGON_V6_vlutvvb_oracc_128B
-+ {Intrinsic::hexagon_V6_vlutvwh, 39086}, // __builtin_HEXAGON_V6_vlutvwh
-+ {Intrinsic::hexagon_V6_vlutvwh_128B, 39115}, // __builtin_HEXAGON_V6_vlutvwh_128B
-+ {Intrinsic::hexagon_V6_vlutvwh_oracc, 39149}, // __builtin_HEXAGON_V6_vlutvwh_oracc
-+ {Intrinsic::hexagon_V6_vlutvwh_oracc_128B, 39184}, // __builtin_HEXAGON_V6_vlutvwh_oracc_128B
-+ {Intrinsic::hexagon_V6_vmaxh, 39224}, // __builtin_HEXAGON_V6_vmaxh
-+ {Intrinsic::hexagon_V6_vmaxh_128B, 39251}, // __builtin_HEXAGON_V6_vmaxh_128B
-+ {Intrinsic::hexagon_V6_vmaxub, 39283}, // __builtin_HEXAGON_V6_vmaxub
-+ {Intrinsic::hexagon_V6_vmaxub_128B, 39311}, // __builtin_HEXAGON_V6_vmaxub_128B
-+ {Intrinsic::hexagon_V6_vmaxuh, 39344}, // __builtin_HEXAGON_V6_vmaxuh
-+ {Intrinsic::hexagon_V6_vmaxuh_128B, 39372}, // __builtin_HEXAGON_V6_vmaxuh_128B
-+ {Intrinsic::hexagon_V6_vmaxw, 39405}, // __builtin_HEXAGON_V6_vmaxw
-+ {Intrinsic::hexagon_V6_vmaxw_128B, 39432}, // __builtin_HEXAGON_V6_vmaxw_128B
-+ {Intrinsic::hexagon_V6_vminh, 39464}, // __builtin_HEXAGON_V6_vminh
-+ {Intrinsic::hexagon_V6_vminh_128B, 39491}, // __builtin_HEXAGON_V6_vminh_128B
-+ {Intrinsic::hexagon_V6_vminub, 39523}, // __builtin_HEXAGON_V6_vminub
-+ {Intrinsic::hexagon_V6_vminub_128B, 39551}, // __builtin_HEXAGON_V6_vminub_128B
-+ {Intrinsic::hexagon_V6_vminuh, 39584}, // __builtin_HEXAGON_V6_vminuh
-+ {Intrinsic::hexagon_V6_vminuh_128B, 39612}, // __builtin_HEXAGON_V6_vminuh_128B
-+ {Intrinsic::hexagon_V6_vminw, 39645}, // __builtin_HEXAGON_V6_vminw
-+ {Intrinsic::hexagon_V6_vminw_128B, 39672}, // __builtin_HEXAGON_V6_vminw_128B
-+ {Intrinsic::hexagon_V6_vmpabus, 39704}, // __builtin_HEXAGON_V6_vmpabus
-+ {Intrinsic::hexagon_V6_vmpabus_128B, 39733}, // __builtin_HEXAGON_V6_vmpabus_128B
-+ {Intrinsic::hexagon_V6_vmpabus_acc, 39767}, // __builtin_HEXAGON_V6_vmpabus_acc
-+ {Intrinsic::hexagon_V6_vmpabus_acc_128B, 39800}, // __builtin_HEXAGON_V6_vmpabus_acc_128B
-+ {Intrinsic::hexagon_V6_vmpabusv, 39838}, // __builtin_HEXAGON_V6_vmpabusv
-+ {Intrinsic::hexagon_V6_vmpabusv_128B, 39868}, // __builtin_HEXAGON_V6_vmpabusv_128B
-+ {Intrinsic::hexagon_V6_vmpabuuv, 39903}, // __builtin_HEXAGON_V6_vmpabuuv
-+ {Intrinsic::hexagon_V6_vmpabuuv_128B, 39933}, // __builtin_HEXAGON_V6_vmpabuuv_128B
-+ {Intrinsic::hexagon_V6_vmpahb, 39968}, // __builtin_HEXAGON_V6_vmpahb
-+ {Intrinsic::hexagon_V6_vmpahb_128B, 39996}, // __builtin_HEXAGON_V6_vmpahb_128B
-+ {Intrinsic::hexagon_V6_vmpahb_acc, 40029}, // __builtin_HEXAGON_V6_vmpahb_acc
-+ {Intrinsic::hexagon_V6_vmpahb_acc_128B, 40061}, // __builtin_HEXAGON_V6_vmpahb_acc_128B
-+ {Intrinsic::hexagon_V6_vmpybus, 40098}, // __builtin_HEXAGON_V6_vmpybus
-+ {Intrinsic::hexagon_V6_vmpybus_128B, 40127}, // __builtin_HEXAGON_V6_vmpybus_128B
-+ {Intrinsic::hexagon_V6_vmpybus_acc, 40161}, // __builtin_HEXAGON_V6_vmpybus_acc
-+ {Intrinsic::hexagon_V6_vmpybus_acc_128B, 40194}, // __builtin_HEXAGON_V6_vmpybus_acc_128B
-+ {Intrinsic::hexagon_V6_vmpybusv, 40232}, // __builtin_HEXAGON_V6_vmpybusv
-+ {Intrinsic::hexagon_V6_vmpybusv_128B, 40262}, // __builtin_HEXAGON_V6_vmpybusv_128B
-+ {Intrinsic::hexagon_V6_vmpybusv_acc, 40297}, // __builtin_HEXAGON_V6_vmpybusv_acc
-+ {Intrinsic::hexagon_V6_vmpybusv_acc_128B, 40331}, // __builtin_HEXAGON_V6_vmpybusv_acc_128B
-+ {Intrinsic::hexagon_V6_vmpybv, 40370}, // __builtin_HEXAGON_V6_vmpybv
-+ {Intrinsic::hexagon_V6_vmpybv_128B, 40398}, // __builtin_HEXAGON_V6_vmpybv_128B
-+ {Intrinsic::hexagon_V6_vmpybv_acc, 40431}, // __builtin_HEXAGON_V6_vmpybv_acc
-+ {Intrinsic::hexagon_V6_vmpybv_acc_128B, 40463}, // __builtin_HEXAGON_V6_vmpybv_acc_128B
-+ {Intrinsic::hexagon_V6_vmpyewuh, 40500}, // __builtin_HEXAGON_V6_vmpyewuh
-+ {Intrinsic::hexagon_V6_vmpyewuh_128B, 40530}, // __builtin_HEXAGON_V6_vmpyewuh_128B
-+ {Intrinsic::hexagon_V6_vmpyh, 40565}, // __builtin_HEXAGON_V6_vmpyh
-+ {Intrinsic::hexagon_V6_vmpyh_128B, 40592}, // __builtin_HEXAGON_V6_vmpyh_128B
-+ {Intrinsic::hexagon_V6_vmpyhsat_acc, 40624}, // __builtin_HEXAGON_V6_vmpyhsat_acc
-+ {Intrinsic::hexagon_V6_vmpyhsat_acc_128B, 40658}, // __builtin_HEXAGON_V6_vmpyhsat_acc_128B
-+ {Intrinsic::hexagon_V6_vmpyhsrs, 40697}, // __builtin_HEXAGON_V6_vmpyhsrs
-+ {Intrinsic::hexagon_V6_vmpyhsrs_128B, 40727}, // __builtin_HEXAGON_V6_vmpyhsrs_128B
-+ {Intrinsic::hexagon_V6_vmpyhss, 40762}, // __builtin_HEXAGON_V6_vmpyhss
-+ {Intrinsic::hexagon_V6_vmpyhss_128B, 40791}, // __builtin_HEXAGON_V6_vmpyhss_128B
-+ {Intrinsic::hexagon_V6_vmpyhus, 40825}, // __builtin_HEXAGON_V6_vmpyhus
-+ {Intrinsic::hexagon_V6_vmpyhus_128B, 40854}, // __builtin_HEXAGON_V6_vmpyhus_128B
-+ {Intrinsic::hexagon_V6_vmpyhus_acc, 40888}, // __builtin_HEXAGON_V6_vmpyhus_acc
-+ {Intrinsic::hexagon_V6_vmpyhus_acc_128B, 40921}, // __builtin_HEXAGON_V6_vmpyhus_acc_128B
-+ {Intrinsic::hexagon_V6_vmpyhv, 40959}, // __builtin_HEXAGON_V6_vmpyhv
-+ {Intrinsic::hexagon_V6_vmpyhv_128B, 40987}, // __builtin_HEXAGON_V6_vmpyhv_128B
-+ {Intrinsic::hexagon_V6_vmpyhv_acc, 41020}, // __builtin_HEXAGON_V6_vmpyhv_acc
-+ {Intrinsic::hexagon_V6_vmpyhv_acc_128B, 41052}, // __builtin_HEXAGON_V6_vmpyhv_acc_128B
-+ {Intrinsic::hexagon_V6_vmpyhvsrs, 41089}, // __builtin_HEXAGON_V6_vmpyhvsrs
-+ {Intrinsic::hexagon_V6_vmpyhvsrs_128B, 41120}, // __builtin_HEXAGON_V6_vmpyhvsrs_128B
-+ {Intrinsic::hexagon_V6_vmpyieoh, 41156}, // __builtin_HEXAGON_V6_vmpyieoh
-+ {Intrinsic::hexagon_V6_vmpyieoh_128B, 41186}, // __builtin_HEXAGON_V6_vmpyieoh_128B
-+ {Intrinsic::hexagon_V6_vmpyiewh_acc, 41221}, // __builtin_HEXAGON_V6_vmpyiewh_acc
-+ {Intrinsic::hexagon_V6_vmpyiewh_acc_128B, 41255}, // __builtin_HEXAGON_V6_vmpyiewh_acc_128B
-+ {Intrinsic::hexagon_V6_vmpyiewuh, 41294}, // __builtin_HEXAGON_V6_vmpyiewuh
-+ {Intrinsic::hexagon_V6_vmpyiewuh_128B, 41325}, // __builtin_HEXAGON_V6_vmpyiewuh_128B
-+ {Intrinsic::hexagon_V6_vmpyiewuh_acc, 41361}, // __builtin_HEXAGON_V6_vmpyiewuh_acc
-+ {Intrinsic::hexagon_V6_vmpyiewuh_acc_128B, 41396}, // __builtin_HEXAGON_V6_vmpyiewuh_acc_128B
-+ {Intrinsic::hexagon_V6_vmpyih, 41436}, // __builtin_HEXAGON_V6_vmpyih
-+ {Intrinsic::hexagon_V6_vmpyih_128B, 41464}, // __builtin_HEXAGON_V6_vmpyih_128B
-+ {Intrinsic::hexagon_V6_vmpyih_acc, 41497}, // __builtin_HEXAGON_V6_vmpyih_acc
-+ {Intrinsic::hexagon_V6_vmpyih_acc_128B, 41529}, // __builtin_HEXAGON_V6_vmpyih_acc_128B
-+ {Intrinsic::hexagon_V6_vmpyihb, 41566}, // __builtin_HEXAGON_V6_vmpyihb
-+ {Intrinsic::hexagon_V6_vmpyihb_128B, 41595}, // __builtin_HEXAGON_V6_vmpyihb_128B
-+ {Intrinsic::hexagon_V6_vmpyihb_acc, 41629}, // __builtin_HEXAGON_V6_vmpyihb_acc
-+ {Intrinsic::hexagon_V6_vmpyihb_acc_128B, 41662}, // __builtin_HEXAGON_V6_vmpyihb_acc_128B
-+ {Intrinsic::hexagon_V6_vmpyiowh, 41700}, // __builtin_HEXAGON_V6_vmpyiowh
-+ {Intrinsic::hexagon_V6_vmpyiowh_128B, 41730}, // __builtin_HEXAGON_V6_vmpyiowh_128B
-+ {Intrinsic::hexagon_V6_vmpyiwb, 41765}, // __builtin_HEXAGON_V6_vmpyiwb
-+ {Intrinsic::hexagon_V6_vmpyiwb_128B, 41794}, // __builtin_HEXAGON_V6_vmpyiwb_128B
-+ {Intrinsic::hexagon_V6_vmpyiwb_acc, 41828}, // __builtin_HEXAGON_V6_vmpyiwb_acc
-+ {Intrinsic::hexagon_V6_vmpyiwb_acc_128B, 41861}, // __builtin_HEXAGON_V6_vmpyiwb_acc_128B
-+ {Intrinsic::hexagon_V6_vmpyiwh, 41899}, // __builtin_HEXAGON_V6_vmpyiwh
-+ {Intrinsic::hexagon_V6_vmpyiwh_128B, 41928}, // __builtin_HEXAGON_V6_vmpyiwh_128B
-+ {Intrinsic::hexagon_V6_vmpyiwh_acc, 41962}, // __builtin_HEXAGON_V6_vmpyiwh_acc
-+ {Intrinsic::hexagon_V6_vmpyiwh_acc_128B, 41995}, // __builtin_HEXAGON_V6_vmpyiwh_acc_128B
-+ {Intrinsic::hexagon_V6_vmpyowh, 42033}, // __builtin_HEXAGON_V6_vmpyowh
-+ {Intrinsic::hexagon_V6_vmpyowh_128B, 42062}, // __builtin_HEXAGON_V6_vmpyowh_128B
-+ {Intrinsic::hexagon_V6_vmpyowh_rnd, 42096}, // __builtin_HEXAGON_V6_vmpyowh_rnd
-+ {Intrinsic::hexagon_V6_vmpyowh_rnd_128B, 42129}, // __builtin_HEXAGON_V6_vmpyowh_rnd_128B
-+ {Intrinsic::hexagon_V6_vmpyowh_rnd_sacc, 42167}, // __builtin_HEXAGON_V6_vmpyowh_rnd_sacc
-+ {Intrinsic::hexagon_V6_vmpyowh_rnd_sacc_128B, 42205}, // __builtin_HEXAGON_V6_vmpyowh_rnd_sacc_128B
-+ {Intrinsic::hexagon_V6_vmpyowh_sacc, 42248}, // __builtin_HEXAGON_V6_vmpyowh_sacc
-+ {Intrinsic::hexagon_V6_vmpyowh_sacc_128B, 42282}, // __builtin_HEXAGON_V6_vmpyowh_sacc_128B
-+ {Intrinsic::hexagon_V6_vmpyub, 42321}, // __builtin_HEXAGON_V6_vmpyub
-+ {Intrinsic::hexagon_V6_vmpyub_128B, 42349}, // __builtin_HEXAGON_V6_vmpyub_128B
-+ {Intrinsic::hexagon_V6_vmpyub_acc, 42382}, // __builtin_HEXAGON_V6_vmpyub_acc
-+ {Intrinsic::hexagon_V6_vmpyub_acc_128B, 42414}, // __builtin_HEXAGON_V6_vmpyub_acc_128B
-+ {Intrinsic::hexagon_V6_vmpyubv, 42451}, // __builtin_HEXAGON_V6_vmpyubv
-+ {Intrinsic::hexagon_V6_vmpyubv_128B, 42480}, // __builtin_HEXAGON_V6_vmpyubv_128B
-+ {Intrinsic::hexagon_V6_vmpyubv_acc, 42514}, // __builtin_HEXAGON_V6_vmpyubv_acc
-+ {Intrinsic::hexagon_V6_vmpyubv_acc_128B, 42547}, // __builtin_HEXAGON_V6_vmpyubv_acc_128B
-+ {Intrinsic::hexagon_V6_vmpyuh, 42585}, // __builtin_HEXAGON_V6_vmpyuh
-+ {Intrinsic::hexagon_V6_vmpyuh_128B, 42613}, // __builtin_HEXAGON_V6_vmpyuh_128B
-+ {Intrinsic::hexagon_V6_vmpyuh_acc, 42646}, // __builtin_HEXAGON_V6_vmpyuh_acc
-+ {Intrinsic::hexagon_V6_vmpyuh_acc_128B, 42678}, // __builtin_HEXAGON_V6_vmpyuh_acc_128B
-+ {Intrinsic::hexagon_V6_vmpyuhv, 42715}, // __builtin_HEXAGON_V6_vmpyuhv
-+ {Intrinsic::hexagon_V6_vmpyuhv_128B, 42744}, // __builtin_HEXAGON_V6_vmpyuhv_128B
-+ {Intrinsic::hexagon_V6_vmpyuhv_acc, 42778}, // __builtin_HEXAGON_V6_vmpyuhv_acc
-+ {Intrinsic::hexagon_V6_vmpyuhv_acc_128B, 42811}, // __builtin_HEXAGON_V6_vmpyuhv_acc_128B
-+ {Intrinsic::hexagon_V6_vmux, 42849}, // __builtin_HEXAGON_V6_vmux
-+ {Intrinsic::hexagon_V6_vmux_128B, 42875}, // __builtin_HEXAGON_V6_vmux_128B
-+ {Intrinsic::hexagon_V6_vnavgh, 42906}, // __builtin_HEXAGON_V6_vnavgh
-+ {Intrinsic::hexagon_V6_vnavgh_128B, 42934}, // __builtin_HEXAGON_V6_vnavgh_128B
-+ {Intrinsic::hexagon_V6_vnavgub, 42967}, // __builtin_HEXAGON_V6_vnavgub
-+ {Intrinsic::hexagon_V6_vnavgub_128B, 42996}, // __builtin_HEXAGON_V6_vnavgub_128B
-+ {Intrinsic::hexagon_V6_vnavgw, 43030}, // __builtin_HEXAGON_V6_vnavgw
-+ {Intrinsic::hexagon_V6_vnavgw_128B, 43058}, // __builtin_HEXAGON_V6_vnavgw_128B
-+ {Intrinsic::hexagon_V6_vnormamth, 43091}, // __builtin_HEXAGON_V6_vnormamth
-+ {Intrinsic::hexagon_V6_vnormamth_128B, 43122}, // __builtin_HEXAGON_V6_vnormamth_128B
-+ {Intrinsic::hexagon_V6_vnormamtw, 43158}, // __builtin_HEXAGON_V6_vnormamtw
-+ {Intrinsic::hexagon_V6_vnormamtw_128B, 43189}, // __builtin_HEXAGON_V6_vnormamtw_128B
-+ {Intrinsic::hexagon_V6_vnot, 43225}, // __builtin_HEXAGON_V6_vnot
-+ {Intrinsic::hexagon_V6_vnot_128B, 43251}, // __builtin_HEXAGON_V6_vnot_128B
-+ {Intrinsic::hexagon_V6_vor, 43282}, // __builtin_HEXAGON_V6_vor
-+ {Intrinsic::hexagon_V6_vor_128B, 43307}, // __builtin_HEXAGON_V6_vor_128B
-+ {Intrinsic::hexagon_V6_vpackeb, 43337}, // __builtin_HEXAGON_V6_vpackeb
-+ {Intrinsic::hexagon_V6_vpackeb_128B, 43366}, // __builtin_HEXAGON_V6_vpackeb_128B
-+ {Intrinsic::hexagon_V6_vpackeh, 43400}, // __builtin_HEXAGON_V6_vpackeh
-+ {Intrinsic::hexagon_V6_vpackeh_128B, 43429}, // __builtin_HEXAGON_V6_vpackeh_128B
-+ {Intrinsic::hexagon_V6_vpackhb_sat, 43463}, // __builtin_HEXAGON_V6_vpackhb_sat
-+ {Intrinsic::hexagon_V6_vpackhb_sat_128B, 43496}, // __builtin_HEXAGON_V6_vpackhb_sat_128B
-+ {Intrinsic::hexagon_V6_vpackhub_sat, 43534}, // __builtin_HEXAGON_V6_vpackhub_sat
-+ {Intrinsic::hexagon_V6_vpackhub_sat_128B, 43568}, // __builtin_HEXAGON_V6_vpackhub_sat_128B
-+ {Intrinsic::hexagon_V6_vpackob, 43607}, // __builtin_HEXAGON_V6_vpackob
-+ {Intrinsic::hexagon_V6_vpackob_128B, 43636}, // __builtin_HEXAGON_V6_vpackob_128B
-+ {Intrinsic::hexagon_V6_vpackoh, 43670}, // __builtin_HEXAGON_V6_vpackoh
-+ {Intrinsic::hexagon_V6_vpackoh_128B, 43699}, // __builtin_HEXAGON_V6_vpackoh_128B
-+ {Intrinsic::hexagon_V6_vpackwh_sat, 43733}, // __builtin_HEXAGON_V6_vpackwh_sat
-+ {Intrinsic::hexagon_V6_vpackwh_sat_128B, 43766}, // __builtin_HEXAGON_V6_vpackwh_sat_128B
-+ {Intrinsic::hexagon_V6_vpackwuh_sat, 43804}, // __builtin_HEXAGON_V6_vpackwuh_sat
-+ {Intrinsic::hexagon_V6_vpackwuh_sat_128B, 43838}, // __builtin_HEXAGON_V6_vpackwuh_sat_128B
-+ {Intrinsic::hexagon_V6_vpopcounth, 43877}, // __builtin_HEXAGON_V6_vpopcounth
-+ {Intrinsic::hexagon_V6_vpopcounth_128B, 43909}, // __builtin_HEXAGON_V6_vpopcounth_128B
-+ {Intrinsic::hexagon_V6_vrdelta, 43946}, // __builtin_HEXAGON_V6_vrdelta
-+ {Intrinsic::hexagon_V6_vrdelta_128B, 43975}, // __builtin_HEXAGON_V6_vrdelta_128B
-+ {Intrinsic::hexagon_V6_vrmpybus, 44009}, // __builtin_HEXAGON_V6_vrmpybus
-+ {Intrinsic::hexagon_V6_vrmpybus_128B, 44039}, // __builtin_HEXAGON_V6_vrmpybus_128B
-+ {Intrinsic::hexagon_V6_vrmpybus_acc, 44074}, // __builtin_HEXAGON_V6_vrmpybus_acc
-+ {Intrinsic::hexagon_V6_vrmpybus_acc_128B, 44108}, // __builtin_HEXAGON_V6_vrmpybus_acc_128B
-+ {Intrinsic::hexagon_V6_vrmpybusi, 44147}, // __builtin_HEXAGON_V6_vrmpybusi
-+ {Intrinsic::hexagon_V6_vrmpybusi_128B, 44178}, // __builtin_HEXAGON_V6_vrmpybusi_128B
-+ {Intrinsic::hexagon_V6_vrmpybusi_acc, 44214}, // __builtin_HEXAGON_V6_vrmpybusi_acc
-+ {Intrinsic::hexagon_V6_vrmpybusi_acc_128B, 44249}, // __builtin_HEXAGON_V6_vrmpybusi_acc_128B
-+ {Intrinsic::hexagon_V6_vrmpybusv, 44289}, // __builtin_HEXAGON_V6_vrmpybusv
-+ {Intrinsic::hexagon_V6_vrmpybusv_128B, 44320}, // __builtin_HEXAGON_V6_vrmpybusv_128B
-+ {Intrinsic::hexagon_V6_vrmpybusv_acc, 44356}, // __builtin_HEXAGON_V6_vrmpybusv_acc
-+ {Intrinsic::hexagon_V6_vrmpybusv_acc_128B, 44391}, // __builtin_HEXAGON_V6_vrmpybusv_acc_128B
-+ {Intrinsic::hexagon_V6_vrmpybv, 44431}, // __builtin_HEXAGON_V6_vrmpybv
-+ {Intrinsic::hexagon_V6_vrmpybv_128B, 44460}, // __builtin_HEXAGON_V6_vrmpybv_128B
-+ {Intrinsic::hexagon_V6_vrmpybv_acc, 44494}, // __builtin_HEXAGON_V6_vrmpybv_acc
-+ {Intrinsic::hexagon_V6_vrmpybv_acc_128B, 44527}, // __builtin_HEXAGON_V6_vrmpybv_acc_128B
-+ {Intrinsic::hexagon_V6_vrmpyub, 44565}, // __builtin_HEXAGON_V6_vrmpyub
-+ {Intrinsic::hexagon_V6_vrmpyub_128B, 44594}, // __builtin_HEXAGON_V6_vrmpyub_128B
-+ {Intrinsic::hexagon_V6_vrmpyub_acc, 44628}, // __builtin_HEXAGON_V6_vrmpyub_acc
-+ {Intrinsic::hexagon_V6_vrmpyub_acc_128B, 44661}, // __builtin_HEXAGON_V6_vrmpyub_acc_128B
-+ {Intrinsic::hexagon_V6_vrmpyubi, 44699}, // __builtin_HEXAGON_V6_vrmpyubi
-+ {Intrinsic::hexagon_V6_vrmpyubi_128B, 44729}, // __builtin_HEXAGON_V6_vrmpyubi_128B
-+ {Intrinsic::hexagon_V6_vrmpyubi_acc, 44764}, // __builtin_HEXAGON_V6_vrmpyubi_acc
-+ {Intrinsic::hexagon_V6_vrmpyubi_acc_128B, 44798}, // __builtin_HEXAGON_V6_vrmpyubi_acc_128B
-+ {Intrinsic::hexagon_V6_vrmpyubv, 44837}, // __builtin_HEXAGON_V6_vrmpyubv
-+ {Intrinsic::hexagon_V6_vrmpyubv_128B, 44867}, // __builtin_HEXAGON_V6_vrmpyubv_128B
-+ {Intrinsic::hexagon_V6_vrmpyubv_acc, 44902}, // __builtin_HEXAGON_V6_vrmpyubv_acc
-+ {Intrinsic::hexagon_V6_vrmpyubv_acc_128B, 44936}, // __builtin_HEXAGON_V6_vrmpyubv_acc_128B
-+ {Intrinsic::hexagon_V6_vror, 44975}, // __builtin_HEXAGON_V6_vror
-+ {Intrinsic::hexagon_V6_vror_128B, 45001}, // __builtin_HEXAGON_V6_vror_128B
-+ {Intrinsic::hexagon_V6_vroundhb, 45032}, // __builtin_HEXAGON_V6_vroundhb
-+ {Intrinsic::hexagon_V6_vroundhb_128B, 45062}, // __builtin_HEXAGON_V6_vroundhb_128B
-+ {Intrinsic::hexagon_V6_vroundhub, 45097}, // __builtin_HEXAGON_V6_vroundhub
-+ {Intrinsic::hexagon_V6_vroundhub_128B, 45128}, // __builtin_HEXAGON_V6_vroundhub_128B
-+ {Intrinsic::hexagon_V6_vroundwh, 45164}, // __builtin_HEXAGON_V6_vroundwh
-+ {Intrinsic::hexagon_V6_vroundwh_128B, 45194}, // __builtin_HEXAGON_V6_vroundwh_128B
-+ {Intrinsic::hexagon_V6_vroundwuh, 45229}, // __builtin_HEXAGON_V6_vroundwuh
-+ {Intrinsic::hexagon_V6_vroundwuh_128B, 45260}, // __builtin_HEXAGON_V6_vroundwuh_128B
-+ {Intrinsic::hexagon_V6_vrsadubi, 45296}, // __builtin_HEXAGON_V6_vrsadubi
-+ {Intrinsic::hexagon_V6_vrsadubi_128B, 45326}, // __builtin_HEXAGON_V6_vrsadubi_128B
-+ {Intrinsic::hexagon_V6_vrsadubi_acc, 45361}, // __builtin_HEXAGON_V6_vrsadubi_acc
-+ {Intrinsic::hexagon_V6_vrsadubi_acc_128B, 45395}, // __builtin_HEXAGON_V6_vrsadubi_acc_128B
-+ {Intrinsic::hexagon_V6_vsathub, 45434}, // __builtin_HEXAGON_V6_vsathub
-+ {Intrinsic::hexagon_V6_vsathub_128B, 45463}, // __builtin_HEXAGON_V6_vsathub_128B
-+ {Intrinsic::hexagon_V6_vsatwh, 45497}, // __builtin_HEXAGON_V6_vsatwh
-+ {Intrinsic::hexagon_V6_vsatwh_128B, 45525}, // __builtin_HEXAGON_V6_vsatwh_128B
-+ {Intrinsic::hexagon_V6_vsb, 45558}, // __builtin_HEXAGON_V6_vsb
-+ {Intrinsic::hexagon_V6_vsb_128B, 45583}, // __builtin_HEXAGON_V6_vsb_128B
-+ {Intrinsic::hexagon_V6_vsh, 45613}, // __builtin_HEXAGON_V6_vsh
-+ {Intrinsic::hexagon_V6_vsh_128B, 45638}, // __builtin_HEXAGON_V6_vsh_128B
-+ {Intrinsic::hexagon_V6_vshufeh, 45668}, // __builtin_HEXAGON_V6_vshufeh
-+ {Intrinsic::hexagon_V6_vshufeh_128B, 45697}, // __builtin_HEXAGON_V6_vshufeh_128B
-+ {Intrinsic::hexagon_V6_vshuffb, 45731}, // __builtin_HEXAGON_V6_vshuffb
-+ {Intrinsic::hexagon_V6_vshuffb_128B, 45760}, // __builtin_HEXAGON_V6_vshuffb_128B
-+ {Intrinsic::hexagon_V6_vshuffeb, 45794}, // __builtin_HEXAGON_V6_vshuffeb
-+ {Intrinsic::hexagon_V6_vshuffeb_128B, 45824}, // __builtin_HEXAGON_V6_vshuffeb_128B
-+ {Intrinsic::hexagon_V6_vshuffh, 45859}, // __builtin_HEXAGON_V6_vshuffh
-+ {Intrinsic::hexagon_V6_vshuffh_128B, 45888}, // __builtin_HEXAGON_V6_vshuffh_128B
-+ {Intrinsic::hexagon_V6_vshuffob, 45922}, // __builtin_HEXAGON_V6_vshuffob
-+ {Intrinsic::hexagon_V6_vshuffob_128B, 45952}, // __builtin_HEXAGON_V6_vshuffob_128B
-+ {Intrinsic::hexagon_V6_vshuffvdd, 45987}, // __builtin_HEXAGON_V6_vshuffvdd
-+ {Intrinsic::hexagon_V6_vshuffvdd_128B, 46018}, // __builtin_HEXAGON_V6_vshuffvdd_128B
-+ {Intrinsic::hexagon_V6_vshufoeb, 46054}, // __builtin_HEXAGON_V6_vshufoeb
-+ {Intrinsic::hexagon_V6_vshufoeb_128B, 46084}, // __builtin_HEXAGON_V6_vshufoeb_128B
-+ {Intrinsic::hexagon_V6_vshufoeh, 46119}, // __builtin_HEXAGON_V6_vshufoeh
-+ {Intrinsic::hexagon_V6_vshufoeh_128B, 46149}, // __builtin_HEXAGON_V6_vshufoeh_128B
-+ {Intrinsic::hexagon_V6_vshufoh, 46184}, // __builtin_HEXAGON_V6_vshufoh
-+ {Intrinsic::hexagon_V6_vshufoh_128B, 46213}, // __builtin_HEXAGON_V6_vshufoh_128B
-+ {Intrinsic::hexagon_V6_vsubb, 46247}, // __builtin_HEXAGON_V6_vsubb
-+ {Intrinsic::hexagon_V6_vsubb_128B, 46274}, // __builtin_HEXAGON_V6_vsubb_128B
-+ {Intrinsic::hexagon_V6_vsubb_dv, 46306}, // __builtin_HEXAGON_V6_vsubb_dv
-+ {Intrinsic::hexagon_V6_vsubb_dv_128B, 46336}, // __builtin_HEXAGON_V6_vsubb_dv_128B
-+ {Intrinsic::hexagon_V6_vsubbnq, 46371}, // __builtin_HEXAGON_V6_vsubbnq
-+ {Intrinsic::hexagon_V6_vsubbnq_128B, 46400}, // __builtin_HEXAGON_V6_vsubbnq_128B
-+ {Intrinsic::hexagon_V6_vsubbq, 46434}, // __builtin_HEXAGON_V6_vsubbq
-+ {Intrinsic::hexagon_V6_vsubbq_128B, 46462}, // __builtin_HEXAGON_V6_vsubbq_128B
-+ {Intrinsic::hexagon_V6_vsubh, 46495}, // __builtin_HEXAGON_V6_vsubh
-+ {Intrinsic::hexagon_V6_vsubh_128B, 46522}, // __builtin_HEXAGON_V6_vsubh_128B
-+ {Intrinsic::hexagon_V6_vsubh_dv, 46554}, // __builtin_HEXAGON_V6_vsubh_dv
-+ {Intrinsic::hexagon_V6_vsubh_dv_128B, 46584}, // __builtin_HEXAGON_V6_vsubh_dv_128B
-+ {Intrinsic::hexagon_V6_vsubhnq, 46619}, // __builtin_HEXAGON_V6_vsubhnq
-+ {Intrinsic::hexagon_V6_vsubhnq_128B, 46648}, // __builtin_HEXAGON_V6_vsubhnq_128B
-+ {Intrinsic::hexagon_V6_vsubhq, 46682}, // __builtin_HEXAGON_V6_vsubhq
-+ {Intrinsic::hexagon_V6_vsubhq_128B, 46710}, // __builtin_HEXAGON_V6_vsubhq_128B
-+ {Intrinsic::hexagon_V6_vsubhsat, 46743}, // __builtin_HEXAGON_V6_vsubhsat
-+ {Intrinsic::hexagon_V6_vsubhsat_128B, 46773}, // __builtin_HEXAGON_V6_vsubhsat_128B
-+ {Intrinsic::hexagon_V6_vsubhsat_dv, 46808}, // __builtin_HEXAGON_V6_vsubhsat_dv
-+ {Intrinsic::hexagon_V6_vsubhsat_dv_128B, 46841}, // __builtin_HEXAGON_V6_vsubhsat_dv_128B
-+ {Intrinsic::hexagon_V6_vsubhw, 46879}, // __builtin_HEXAGON_V6_vsubhw
-+ {Intrinsic::hexagon_V6_vsubhw_128B, 46907}, // __builtin_HEXAGON_V6_vsubhw_128B
-+ {Intrinsic::hexagon_V6_vsububh, 46940}, // __builtin_HEXAGON_V6_vsububh
-+ {Intrinsic::hexagon_V6_vsububh_128B, 46969}, // __builtin_HEXAGON_V6_vsububh_128B
-+ {Intrinsic::hexagon_V6_vsububsat, 47003}, // __builtin_HEXAGON_V6_vsububsat
-+ {Intrinsic::hexagon_V6_vsububsat_128B, 47034}, // __builtin_HEXAGON_V6_vsububsat_128B
-+ {Intrinsic::hexagon_V6_vsububsat_dv, 47070}, // __builtin_HEXAGON_V6_vsububsat_dv
-+ {Intrinsic::hexagon_V6_vsububsat_dv_128B, 47104}, // __builtin_HEXAGON_V6_vsububsat_dv_128B
-+ {Intrinsic::hexagon_V6_vsubuhsat, 47143}, // __builtin_HEXAGON_V6_vsubuhsat
-+ {Intrinsic::hexagon_V6_vsubuhsat_128B, 47174}, // __builtin_HEXAGON_V6_vsubuhsat_128B
-+ {Intrinsic::hexagon_V6_vsubuhsat_dv, 47210}, // __builtin_HEXAGON_V6_vsubuhsat_dv
-+ {Intrinsic::hexagon_V6_vsubuhsat_dv_128B, 47244}, // __builtin_HEXAGON_V6_vsubuhsat_dv_128B
-+ {Intrinsic::hexagon_V6_vsubuhw, 47283}, // __builtin_HEXAGON_V6_vsubuhw
-+ {Intrinsic::hexagon_V6_vsubuhw_128B, 47312}, // __builtin_HEXAGON_V6_vsubuhw_128B
-+ {Intrinsic::hexagon_V6_vsubw, 47346}, // __builtin_HEXAGON_V6_vsubw
-+ {Intrinsic::hexagon_V6_vsubw_128B, 47373}, // __builtin_HEXAGON_V6_vsubw_128B
-+ {Intrinsic::hexagon_V6_vsubw_dv, 47405}, // __builtin_HEXAGON_V6_vsubw_dv
-+ {Intrinsic::hexagon_V6_vsubw_dv_128B, 47435}, // __builtin_HEXAGON_V6_vsubw_dv_128B
-+ {Intrinsic::hexagon_V6_vsubwnq, 47470}, // __builtin_HEXAGON_V6_vsubwnq
-+ {Intrinsic::hexagon_V6_vsubwnq_128B, 47499}, // __builtin_HEXAGON_V6_vsubwnq_128B
-+ {Intrinsic::hexagon_V6_vsubwq, 47533}, // __builtin_HEXAGON_V6_vsubwq
-+ {Intrinsic::hexagon_V6_vsubwq_128B, 47561}, // __builtin_HEXAGON_V6_vsubwq_128B
-+ {Intrinsic::hexagon_V6_vsubwsat, 47594}, // __builtin_HEXAGON_V6_vsubwsat
-+ {Intrinsic::hexagon_V6_vsubwsat_128B, 47624}, // __builtin_HEXAGON_V6_vsubwsat_128B
-+ {Intrinsic::hexagon_V6_vsubwsat_dv, 47659}, // __builtin_HEXAGON_V6_vsubwsat_dv
-+ {Intrinsic::hexagon_V6_vsubwsat_dv_128B, 47692}, // __builtin_HEXAGON_V6_vsubwsat_dv_128B
-+ {Intrinsic::hexagon_V6_vswap, 47730}, // __builtin_HEXAGON_V6_vswap
-+ {Intrinsic::hexagon_V6_vswap_128B, 47757}, // __builtin_HEXAGON_V6_vswap_128B
-+ {Intrinsic::hexagon_V6_vtmpyb, 47789}, // __builtin_HEXAGON_V6_vtmpyb
-+ {Intrinsic::hexagon_V6_vtmpyb_128B, 47817}, // __builtin_HEXAGON_V6_vtmpyb_128B
-+ {Intrinsic::hexagon_V6_vtmpyb_acc, 47850}, // __builtin_HEXAGON_V6_vtmpyb_acc
-+ {Intrinsic::hexagon_V6_vtmpyb_acc_128B, 47882}, // __builtin_HEXAGON_V6_vtmpyb_acc_128B
-+ {Intrinsic::hexagon_V6_vtmpybus, 47919}, // __builtin_HEXAGON_V6_vtmpybus
-+ {Intrinsic::hexagon_V6_vtmpybus_128B, 47949}, // __builtin_HEXAGON_V6_vtmpybus_128B
-+ {Intrinsic::hexagon_V6_vtmpybus_acc, 47984}, // __builtin_HEXAGON_V6_vtmpybus_acc
-+ {Intrinsic::hexagon_V6_vtmpybus_acc_128B, 48018}, // __builtin_HEXAGON_V6_vtmpybus_acc_128B
-+ {Intrinsic::hexagon_V6_vtmpyhb, 48057}, // __builtin_HEXAGON_V6_vtmpyhb
-+ {Intrinsic::hexagon_V6_vtmpyhb_128B, 48086}, // __builtin_HEXAGON_V6_vtmpyhb_128B
-+ {Intrinsic::hexagon_V6_vtmpyhb_acc, 48120}, // __builtin_HEXAGON_V6_vtmpyhb_acc
-+ {Intrinsic::hexagon_V6_vtmpyhb_acc_128B, 48153}, // __builtin_HEXAGON_V6_vtmpyhb_acc_128B
-+ {Intrinsic::hexagon_V6_vunpackb, 48191}, // __builtin_HEXAGON_V6_vunpackb
-+ {Intrinsic::hexagon_V6_vunpackb_128B, 48221}, // __builtin_HEXAGON_V6_vunpackb_128B
-+ {Intrinsic::hexagon_V6_vunpackh, 48256}, // __builtin_HEXAGON_V6_vunpackh
-+ {Intrinsic::hexagon_V6_vunpackh_128B, 48286}, // __builtin_HEXAGON_V6_vunpackh_128B
-+ {Intrinsic::hexagon_V6_vunpackob, 48321}, // __builtin_HEXAGON_V6_vunpackob
-+ {Intrinsic::hexagon_V6_vunpackob_128B, 48352}, // __builtin_HEXAGON_V6_vunpackob_128B
-+ {Intrinsic::hexagon_V6_vunpackoh, 48388}, // __builtin_HEXAGON_V6_vunpackoh
-+ {Intrinsic::hexagon_V6_vunpackoh_128B, 48419}, // __builtin_HEXAGON_V6_vunpackoh_128B
-+ {Intrinsic::hexagon_V6_vunpackub, 48455}, // __builtin_HEXAGON_V6_vunpackub
-+ {Intrinsic::hexagon_V6_vunpackub_128B, 48486}, // __builtin_HEXAGON_V6_vunpackub_128B
-+ {Intrinsic::hexagon_V6_vunpackuh, 48522}, // __builtin_HEXAGON_V6_vunpackuh
-+ {Intrinsic::hexagon_V6_vunpackuh_128B, 48553}, // __builtin_HEXAGON_V6_vunpackuh_128B
-+ {Intrinsic::hexagon_V6_vxor, 48589}, // __builtin_HEXAGON_V6_vxor
-+ {Intrinsic::hexagon_V6_vxor_128B, 48615}, // __builtin_HEXAGON_V6_vxor_128B
-+ {Intrinsic::hexagon_V6_vzb, 48646}, // __builtin_HEXAGON_V6_vzb
-+ {Intrinsic::hexagon_V6_vzb_128B, 48671}, // __builtin_HEXAGON_V6_vzb_128B
-+ {Intrinsic::hexagon_V6_vzh, 48701}, // __builtin_HEXAGON_V6_vzh
-+ {Intrinsic::hexagon_V6_vzh_128B, 48726}, // __builtin_HEXAGON_V6_vzh_128B
-+ {Intrinsic::hexagon_prefetch, 49206}, // __builtin_HEXAGON_prefetch
-+ {Intrinsic::hexagon_SI_to_SXTHI_asrh, 29057}, // __builtin_SI_to_SXTHI_asrh
-+ {Intrinsic::hexagon_mm256i_vaddw, 49182}, // __builtin__mm256i_vaddw
-+ {Intrinsic::hexagon_brev_ldb, 48756}, // __builtin_brev_ldb
-+ {Intrinsic::hexagon_brev_ldd, 48775}, // __builtin_brev_ldd
-+ {Intrinsic::hexagon_brev_ldh, 48794}, // __builtin_brev_ldh
-+ {Intrinsic::hexagon_brev_ldub, 48813}, // __builtin_brev_ldub
-+ {Intrinsic::hexagon_brev_lduh, 48833}, // __builtin_brev_lduh
-+ {Intrinsic::hexagon_brev_ldw, 48853}, // __builtin_brev_ldw
-+ {Intrinsic::hexagon_brev_stb, 48872}, // __builtin_brev_stb
-+ {Intrinsic::hexagon_brev_std, 48891}, // __builtin_brev_std
-+ {Intrinsic::hexagon_brev_sth, 48910}, // __builtin_brev_sth
-+ {Intrinsic::hexagon_brev_sthhi, 48929}, // __builtin_brev_sthhi
-+ {Intrinsic::hexagon_brev_stw, 48950}, // __builtin_brev_stw
-+ {Intrinsic::hexagon_circ_ldb, 48969}, // __builtin_circ_ldb
-+ {Intrinsic::hexagon_circ_ldd, 48988}, // __builtin_circ_ldd
-+ {Intrinsic::hexagon_circ_ldh, 49007}, // __builtin_circ_ldh
-+ {Intrinsic::hexagon_circ_ldub, 49026}, // __builtin_circ_ldub
-+ {Intrinsic::hexagon_circ_lduh, 49046}, // __builtin_circ_lduh
-+ {Intrinsic::hexagon_circ_ldw, 49066}, // __builtin_circ_ldw
-+ {Intrinsic::hexagon_circ_stb, 49085}, // __builtin_circ_stb
-+ {Intrinsic::hexagon_circ_std, 49104}, // __builtin_circ_std
-+ {Intrinsic::hexagon_circ_sth, 49123}, // __builtin_circ_sth
-+ {Intrinsic::hexagon_circ_sthhi, 49142}, // __builtin_circ_sthhi
-+ {Intrinsic::hexagon_circ_stw, 49163}, // __builtin_circ_stw
-+ };
-+ auto I = std::lower_bound(std::begin(hexagonNames),
-+ std::end(hexagonNames),
-+ BuiltinNameStr);
-+ if (I != std::end(hexagonNames) &&
-+ I->getName() == BuiltinNameStr)
-+ return I->IntrinID;
-+ }
-+ if (TargetPrefix == "mips") {
-+ static const BuiltinEntry mipsNames[] = {
-+ {Intrinsic::mips_absq_s_ph, 49233}, // __builtin_mips_absq_s_ph
-+ {Intrinsic::mips_absq_s_qb, 49258}, // __builtin_mips_absq_s_qb
-+ {Intrinsic::mips_absq_s_w, 49283}, // __builtin_mips_absq_s_w
-+ {Intrinsic::mips_addq_ph, 49395}, // __builtin_mips_addq_ph
-+ {Intrinsic::mips_addq_s_ph, 49418}, // __builtin_mips_addq_s_ph
-+ {Intrinsic::mips_addq_s_w, 49443}, // __builtin_mips_addq_s_w
-+ {Intrinsic::mips_addqh_ph, 49467}, // __builtin_mips_addqh_ph
-+ {Intrinsic::mips_addqh_r_ph, 49491}, // __builtin_mips_addqh_r_ph
-+ {Intrinsic::mips_addqh_r_w, 49517}, // __builtin_mips_addqh_r_w
-+ {Intrinsic::mips_addqh_w, 49542}, // __builtin_mips_addqh_w
-+ {Intrinsic::mips_addsc, 49841}, // __builtin_mips_addsc
-+ {Intrinsic::mips_addu_ph, 49862}, // __builtin_mips_addu_ph
-+ {Intrinsic::mips_addu_qb, 49885}, // __builtin_mips_addu_qb
-+ {Intrinsic::mips_addu_s_ph, 49908}, // __builtin_mips_addu_s_ph
-+ {Intrinsic::mips_addu_s_qb, 49933}, // __builtin_mips_addu_s_qb
-+ {Intrinsic::mips_adduh_qb, 49958}, // __builtin_mips_adduh_qb
-+ {Intrinsic::mips_adduh_r_qb, 49982}, // __builtin_mips_adduh_r_qb
-+ {Intrinsic::mips_addwc, 50180}, // __builtin_mips_addwc
-+ {Intrinsic::mips_append, 50242}, // __builtin_mips_append
-+ {Intrinsic::mips_balign, 50808}, // __builtin_mips_balign
-+ {Intrinsic::mips_bitrev, 51362}, // __builtin_mips_bitrev
-+ {Intrinsic::mips_bposge32, 51740}, // __builtin_mips_bposge32
-+ {Intrinsic::mips_cmp_eq_ph, 52979}, // __builtin_mips_cmp_eq_ph
-+ {Intrinsic::mips_cmp_le_ph, 53004}, // __builtin_mips_cmp_le_ph
-+ {Intrinsic::mips_cmp_lt_ph, 53029}, // __builtin_mips_cmp_lt_ph
-+ {Intrinsic::mips_cmpgdu_eq_qb, 53054}, // __builtin_mips_cmpgdu_eq_qb
-+ {Intrinsic::mips_cmpgdu_le_qb, 53082}, // __builtin_mips_cmpgdu_le_qb
-+ {Intrinsic::mips_cmpgdu_lt_qb, 53110}, // __builtin_mips_cmpgdu_lt_qb
-+ {Intrinsic::mips_cmpgu_eq_qb, 53138}, // __builtin_mips_cmpgu_eq_qb
-+ {Intrinsic::mips_cmpgu_le_qb, 53165}, // __builtin_mips_cmpgu_le_qb
-+ {Intrinsic::mips_cmpgu_lt_qb, 53192}, // __builtin_mips_cmpgu_lt_qb
-+ {Intrinsic::mips_cmpu_eq_qb, 53219}, // __builtin_mips_cmpu_eq_qb
-+ {Intrinsic::mips_cmpu_le_qb, 53245}, // __builtin_mips_cmpu_le_qb
-+ {Intrinsic::mips_cmpu_lt_qb, 53271}, // __builtin_mips_cmpu_lt_qb
-+ {Intrinsic::mips_dlsa, 53678}, // __builtin_mips_dlsa
-+ {Intrinsic::mips_dpa_w_ph, 53836}, // __builtin_mips_dpa_w_ph
-+ {Intrinsic::mips_dpaq_s_w_ph, 54004}, // __builtin_mips_dpaq_s_w_ph
-+ {Intrinsic::mips_dpaq_sa_l_w, 54031}, // __builtin_mips_dpaq_sa_l_w
-+ {Intrinsic::mips_dpaqx_s_w_ph, 54058}, // __builtin_mips_dpaqx_s_w_ph
-+ {Intrinsic::mips_dpaqx_sa_w_ph, 54086}, // __builtin_mips_dpaqx_sa_w_ph
-+ {Intrinsic::mips_dpau_h_qbl, 54115}, // __builtin_mips_dpau_h_qbl
-+ {Intrinsic::mips_dpau_h_qbr, 54141}, // __builtin_mips_dpau_h_qbr
-+ {Intrinsic::mips_dpax_w_ph, 54167}, // __builtin_mips_dpax_w_ph
-+ {Intrinsic::mips_dps_w_ph, 54192}, // __builtin_mips_dps_w_ph
-+ {Intrinsic::mips_dpsq_s_w_ph, 54216}, // __builtin_mips_dpsq_s_w_ph
-+ {Intrinsic::mips_dpsq_sa_l_w, 54243}, // __builtin_mips_dpsq_sa_l_w
-+ {Intrinsic::mips_dpsqx_s_w_ph, 54270}, // __builtin_mips_dpsqx_s_w_ph
-+ {Intrinsic::mips_dpsqx_sa_w_ph, 54298}, // __builtin_mips_dpsqx_sa_w_ph
-+ {Intrinsic::mips_dpsu_h_qbl, 54327}, // __builtin_mips_dpsu_h_qbl
-+ {Intrinsic::mips_dpsu_h_qbr, 54353}, // __builtin_mips_dpsu_h_qbr
-+ {Intrinsic::mips_dpsx_w_ph, 54523}, // __builtin_mips_dpsx_w_ph
-+ {Intrinsic::mips_extp, 54548}, // __builtin_mips_extp
-+ {Intrinsic::mips_extpdp, 54568}, // __builtin_mips_extpdp
-+ {Intrinsic::mips_extr_r_w, 54590}, // __builtin_mips_extr_r_w
-+ {Intrinsic::mips_extr_rs_w, 54614}, // __builtin_mips_extr_rs_w
-+ {Intrinsic::mips_extr_s_h, 54639}, // __builtin_mips_extr_s_h
-+ {Intrinsic::mips_extr_w, 54663}, // __builtin_mips_extr_w
-+ {Intrinsic::mips_insv, 57715}, // __builtin_mips_insv
-+ {Intrinsic::mips_lbux, 57823}, // __builtin_mips_lbux
-+ {Intrinsic::mips_lhx, 57999}, // __builtin_mips_lhx
-+ {Intrinsic::mips_lsa, 58018}, // __builtin_mips_lsa
-+ {Intrinsic::mips_lwx, 58037}, // __builtin_mips_lwx
-+ {Intrinsic::mips_madd, 58056}, // __builtin_mips_madd
-+ {Intrinsic::mips_maddu, 58170}, // __builtin_mips_maddu
-+ {Intrinsic::mips_maq_s_w_phl, 58279}, // __builtin_mips_maq_s_w_phl
-+ {Intrinsic::mips_maq_s_w_phr, 58306}, // __builtin_mips_maq_s_w_phr
-+ {Intrinsic::mips_maq_sa_w_phl, 58333}, // __builtin_mips_maq_sa_w_phl
-+ {Intrinsic::mips_maq_sa_w_phr, 58361}, // __builtin_mips_maq_sa_w_phr
-+ {Intrinsic::mips_modsub, 59461}, // __builtin_mips_modsub
-+ {Intrinsic::mips_msub, 59504}, // __builtin_mips_msub
-+ {Intrinsic::mips_msubu, 59618}, // __builtin_mips_msubu
-+ {Intrinsic::mips_mthlip, 59727}, // __builtin_mips_mthlip
-+ {Intrinsic::mips_mul_ph, 59749}, // __builtin_mips_mul_ph
-+ {Intrinsic::mips_mul_s_ph, 59815}, // __builtin_mips_mul_s_ph
-+ {Intrinsic::mips_muleq_s_w_phl, 59839}, // __builtin_mips_muleq_s_w_phl
-+ {Intrinsic::mips_muleq_s_w_phr, 59868}, // __builtin_mips_muleq_s_w_phr
-+ {Intrinsic::mips_muleu_s_ph_qbl, 59897}, // __builtin_mips_muleu_s_ph_qbl
-+ {Intrinsic::mips_muleu_s_ph_qbr, 59927}, // __builtin_mips_muleu_s_ph_qbr
-+ {Intrinsic::mips_mulq_rs_ph, 59957}, // __builtin_mips_mulq_rs_ph
-+ {Intrinsic::mips_mulq_rs_w, 59983}, // __builtin_mips_mulq_rs_w
-+ {Intrinsic::mips_mulq_s_ph, 60008}, // __builtin_mips_mulq_s_ph
-+ {Intrinsic::mips_mulq_s_w, 60033}, // __builtin_mips_mulq_s_w
-+ {Intrinsic::mips_mulsa_w_ph, 60103}, // __builtin_mips_mulsa_w_ph
-+ {Intrinsic::mips_mulsaq_s_w_ph, 60129}, // __builtin_mips_mulsaq_s_w_ph
-+ {Intrinsic::mips_mult, 60158}, // __builtin_mips_mult
-+ {Intrinsic::mips_multu, 60178}, // __builtin_mips_multu
-+ {Intrinsic::mips_packrl_ph, 60531}, // __builtin_mips_packrl_ph
-+ {Intrinsic::mips_pick_ph, 60816}, // __builtin_mips_pick_ph
-+ {Intrinsic::mips_pick_qb, 60839}, // __builtin_mips_pick_qb
-+ {Intrinsic::mips_preceq_w_phl, 60862}, // __builtin_mips_preceq_w_phl
-+ {Intrinsic::mips_preceq_w_phr, 60890}, // __builtin_mips_preceq_w_phr
-+ {Intrinsic::mips_precequ_ph_qbl, 60918}, // __builtin_mips_precequ_ph_qbl
-+ {Intrinsic::mips_precequ_ph_qbla, 60948}, // __builtin_mips_precequ_ph_qbla
-+ {Intrinsic::mips_precequ_ph_qbr, 60979}, // __builtin_mips_precequ_ph_qbr
-+ {Intrinsic::mips_precequ_ph_qbra, 61009}, // __builtin_mips_precequ_ph_qbra
-+ {Intrinsic::mips_preceu_ph_qbl, 61040}, // __builtin_mips_preceu_ph_qbl
-+ {Intrinsic::mips_preceu_ph_qbla, 61069}, // __builtin_mips_preceu_ph_qbla
-+ {Intrinsic::mips_preceu_ph_qbr, 61099}, // __builtin_mips_preceu_ph_qbr
-+ {Intrinsic::mips_preceu_ph_qbra, 61128}, // __builtin_mips_preceu_ph_qbra
-+ {Intrinsic::mips_precr_qb_ph, 61158}, // __builtin_mips_precr_qb_ph
-+ {Intrinsic::mips_precr_sra_ph_w, 61185}, // __builtin_mips_precr_sra_ph_w
-+ {Intrinsic::mips_precr_sra_r_ph_w, 61215}, // __builtin_mips_precr_sra_r_ph_w
-+ {Intrinsic::mips_precrq_ph_w, 61247}, // __builtin_mips_precrq_ph_w
-+ {Intrinsic::mips_precrq_qb_ph, 61274}, // __builtin_mips_precrq_qb_ph
-+ {Intrinsic::mips_precrq_rs_ph_w, 61302}, // __builtin_mips_precrq_rs_ph_w
-+ {Intrinsic::mips_precrqu_s_qb_ph, 61332}, // __builtin_mips_precrqu_s_qb_ph
-+ {Intrinsic::mips_prepend, 61363}, // __builtin_mips_prepend
-+ {Intrinsic::mips_raddu_w_qb, 61386}, // __builtin_mips_raddu_w_qb
-+ {Intrinsic::mips_rddsp, 61412}, // __builtin_mips_rddsp
-+ {Intrinsic::mips_repl_ph, 61433}, // __builtin_mips_repl_ph
-+ {Intrinsic::mips_repl_qb, 61456}, // __builtin_mips_repl_qb
-+ {Intrinsic::mips_shilo, 61715}, // __builtin_mips_shilo
-+ {Intrinsic::mips_shll_ph, 61736}, // __builtin_mips_shll_ph
-+ {Intrinsic::mips_shll_qb, 61759}, // __builtin_mips_shll_qb
-+ {Intrinsic::mips_shll_s_ph, 61782}, // __builtin_mips_shll_s_ph
-+ {Intrinsic::mips_shll_s_w, 61807}, // __builtin_mips_shll_s_w
-+ {Intrinsic::mips_shra_ph, 61831}, // __builtin_mips_shra_ph
-+ {Intrinsic::mips_shra_qb, 61854}, // __builtin_mips_shra_qb
-+ {Intrinsic::mips_shra_r_ph, 61877}, // __builtin_mips_shra_r_ph
-+ {Intrinsic::mips_shra_r_qb, 61902}, // __builtin_mips_shra_r_qb
-+ {Intrinsic::mips_shra_r_w, 61927}, // __builtin_mips_shra_r_w
-+ {Intrinsic::mips_shrl_ph, 61951}, // __builtin_mips_shrl_ph
-+ {Intrinsic::mips_shrl_qb, 61974}, // __builtin_mips_shrl_qb
-+ {Intrinsic::mips_subq_ph, 63253}, // __builtin_mips_subq_ph
-+ {Intrinsic::mips_subq_s_ph, 63276}, // __builtin_mips_subq_s_ph
-+ {Intrinsic::mips_subq_s_w, 63301}, // __builtin_mips_subq_s_w
-+ {Intrinsic::mips_subqh_ph, 63325}, // __builtin_mips_subqh_ph
-+ {Intrinsic::mips_subqh_r_ph, 63349}, // __builtin_mips_subqh_r_ph
-+ {Intrinsic::mips_subqh_r_w, 63375}, // __builtin_mips_subqh_r_w
-+ {Intrinsic::mips_subqh_w, 63400}, // __builtin_mips_subqh_w
-+ {Intrinsic::mips_subu_ph, 63807}, // __builtin_mips_subu_ph
-+ {Intrinsic::mips_subu_qb, 63830}, // __builtin_mips_subu_qb
-+ {Intrinsic::mips_subu_s_ph, 63853}, // __builtin_mips_subu_s_ph
-+ {Intrinsic::mips_subu_s_qb, 63878}, // __builtin_mips_subu_s_qb
-+ {Intrinsic::mips_subuh_qb, 63903}, // __builtin_mips_subuh_qb
-+ {Intrinsic::mips_subuh_r_qb, 63927}, // __builtin_mips_subuh_r_qb
-+ {Intrinsic::mips_wrdsp, 64209}, // __builtin_mips_wrdsp
-+ {Intrinsic::mips_add_a_b, 49307}, // __builtin_msa_add_a_b
-+ {Intrinsic::mips_add_a_d, 49329}, // __builtin_msa_add_a_d
-+ {Intrinsic::mips_add_a_h, 49351}, // __builtin_msa_add_a_h
-+ {Intrinsic::mips_add_a_w, 49373}, // __builtin_msa_add_a_w
-+ {Intrinsic::mips_adds_a_b, 49565}, // __builtin_msa_adds_a_b
-+ {Intrinsic::mips_adds_a_d, 49588}, // __builtin_msa_adds_a_d
-+ {Intrinsic::mips_adds_a_h, 49611}, // __builtin_msa_adds_a_h
-+ {Intrinsic::mips_adds_a_w, 49634}, // __builtin_msa_adds_a_w
-+ {Intrinsic::mips_adds_s_b, 49657}, // __builtin_msa_adds_s_b
-+ {Intrinsic::mips_adds_s_d, 49680}, // __builtin_msa_adds_s_d
-+ {Intrinsic::mips_adds_s_h, 49703}, // __builtin_msa_adds_s_h
-+ {Intrinsic::mips_adds_s_w, 49726}, // __builtin_msa_adds_s_w
-+ {Intrinsic::mips_adds_u_b, 49749}, // __builtin_msa_adds_u_b
-+ {Intrinsic::mips_adds_u_d, 49772}, // __builtin_msa_adds_u_d
-+ {Intrinsic::mips_adds_u_h, 49795}, // __builtin_msa_adds_u_h
-+ {Intrinsic::mips_adds_u_w, 49818}, // __builtin_msa_adds_u_w
-+ {Intrinsic::mips_addv_b, 50008}, // __builtin_msa_addv_b
-+ {Intrinsic::mips_addv_d, 50029}, // __builtin_msa_addv_d
-+ {Intrinsic::mips_addv_h, 50050}, // __builtin_msa_addv_h
-+ {Intrinsic::mips_addv_w, 50071}, // __builtin_msa_addv_w
-+ {Intrinsic::mips_addvi_b, 50092}, // __builtin_msa_addvi_b
-+ {Intrinsic::mips_addvi_d, 50114}, // __builtin_msa_addvi_d
-+ {Intrinsic::mips_addvi_h, 50136}, // __builtin_msa_addvi_h
-+ {Intrinsic::mips_addvi_w, 50158}, // __builtin_msa_addvi_w
-+ {Intrinsic::mips_and_v, 50201}, // __builtin_msa_and_v
-+ {Intrinsic::mips_andi_b, 50221}, // __builtin_msa_andi_b
-+ {Intrinsic::mips_asub_s_b, 50264}, // __builtin_msa_asub_s_b
-+ {Intrinsic::mips_asub_s_d, 50287}, // __builtin_msa_asub_s_d
-+ {Intrinsic::mips_asub_s_h, 50310}, // __builtin_msa_asub_s_h
-+ {Intrinsic::mips_asub_s_w, 50333}, // __builtin_msa_asub_s_w
-+ {Intrinsic::mips_asub_u_b, 50356}, // __builtin_msa_asub_u_b
-+ {Intrinsic::mips_asub_u_d, 50379}, // __builtin_msa_asub_u_d
-+ {Intrinsic::mips_asub_u_h, 50402}, // __builtin_msa_asub_u_h
-+ {Intrinsic::mips_asub_u_w, 50425}, // __builtin_msa_asub_u_w
-+ {Intrinsic::mips_ave_s_b, 50448}, // __builtin_msa_ave_s_b
-+ {Intrinsic::mips_ave_s_d, 50470}, // __builtin_msa_ave_s_d
-+ {Intrinsic::mips_ave_s_h, 50492}, // __builtin_msa_ave_s_h
-+ {Intrinsic::mips_ave_s_w, 50514}, // __builtin_msa_ave_s_w
-+ {Intrinsic::mips_ave_u_b, 50536}, // __builtin_msa_ave_u_b
-+ {Intrinsic::mips_ave_u_d, 50558}, // __builtin_msa_ave_u_d
-+ {Intrinsic::mips_ave_u_h, 50580}, // __builtin_msa_ave_u_h
-+ {Intrinsic::mips_ave_u_w, 50602}, // __builtin_msa_ave_u_w
-+ {Intrinsic::mips_aver_s_b, 50624}, // __builtin_msa_aver_s_b
-+ {Intrinsic::mips_aver_s_d, 50647}, // __builtin_msa_aver_s_d
-+ {Intrinsic::mips_aver_s_h, 50670}, // __builtin_msa_aver_s_h
-+ {Intrinsic::mips_aver_s_w, 50693}, // __builtin_msa_aver_s_w
-+ {Intrinsic::mips_aver_u_b, 50716}, // __builtin_msa_aver_u_b
-+ {Intrinsic::mips_aver_u_d, 50739}, // __builtin_msa_aver_u_d
-+ {Intrinsic::mips_aver_u_h, 50762}, // __builtin_msa_aver_u_h
-+ {Intrinsic::mips_aver_u_w, 50785}, // __builtin_msa_aver_u_w
-+ {Intrinsic::mips_bclr_b, 50830}, // __builtin_msa_bclr_b
-+ {Intrinsic::mips_bclr_d, 50851}, // __builtin_msa_bclr_d
-+ {Intrinsic::mips_bclr_h, 50872}, // __builtin_msa_bclr_h
-+ {Intrinsic::mips_bclr_w, 50893}, // __builtin_msa_bclr_w
-+ {Intrinsic::mips_bclri_b, 50914}, // __builtin_msa_bclri_b
-+ {Intrinsic::mips_bclri_d, 50936}, // __builtin_msa_bclri_d
-+ {Intrinsic::mips_bclri_h, 50958}, // __builtin_msa_bclri_h
-+ {Intrinsic::mips_bclri_w, 50980}, // __builtin_msa_bclri_w
-+ {Intrinsic::mips_binsl_b, 51002}, // __builtin_msa_binsl_b
-+ {Intrinsic::mips_binsl_d, 51024}, // __builtin_msa_binsl_d
-+ {Intrinsic::mips_binsl_h, 51046}, // __builtin_msa_binsl_h
-+ {Intrinsic::mips_binsl_w, 51068}, // __builtin_msa_binsl_w
-+ {Intrinsic::mips_binsli_b, 51090}, // __builtin_msa_binsli_b
-+ {Intrinsic::mips_binsli_d, 51113}, // __builtin_msa_binsli_d
-+ {Intrinsic::mips_binsli_h, 51136}, // __builtin_msa_binsli_h
-+ {Intrinsic::mips_binsli_w, 51159}, // __builtin_msa_binsli_w
-+ {Intrinsic::mips_binsr_b, 51182}, // __builtin_msa_binsr_b
-+ {Intrinsic::mips_binsr_d, 51204}, // __builtin_msa_binsr_d
-+ {Intrinsic::mips_binsr_h, 51226}, // __builtin_msa_binsr_h
-+ {Intrinsic::mips_binsr_w, 51248}, // __builtin_msa_binsr_w
-+ {Intrinsic::mips_binsri_b, 51270}, // __builtin_msa_binsri_b
-+ {Intrinsic::mips_binsri_d, 51293}, // __builtin_msa_binsri_d
-+ {Intrinsic::mips_binsri_h, 51316}, // __builtin_msa_binsri_h
-+ {Intrinsic::mips_binsri_w, 51339}, // __builtin_msa_binsri_w
-+ {Intrinsic::mips_bmnz_v, 51384}, // __builtin_msa_bmnz_v
-+ {Intrinsic::mips_bmnzi_b, 51405}, // __builtin_msa_bmnzi_b
-+ {Intrinsic::mips_bmz_v, 51427}, // __builtin_msa_bmz_v
-+ {Intrinsic::mips_bmzi_b, 51447}, // __builtin_msa_bmzi_b
-+ {Intrinsic::mips_bneg_b, 51468}, // __builtin_msa_bneg_b
-+ {Intrinsic::mips_bneg_d, 51489}, // __builtin_msa_bneg_d
-+ {Intrinsic::mips_bneg_h, 51510}, // __builtin_msa_bneg_h
-+ {Intrinsic::mips_bneg_w, 51531}, // __builtin_msa_bneg_w
-+ {Intrinsic::mips_bnegi_b, 51552}, // __builtin_msa_bnegi_b
-+ {Intrinsic::mips_bnegi_d, 51574}, // __builtin_msa_bnegi_d
-+ {Intrinsic::mips_bnegi_h, 51596}, // __builtin_msa_bnegi_h
-+ {Intrinsic::mips_bnegi_w, 51618}, // __builtin_msa_bnegi_w
-+ {Intrinsic::mips_bnz_b, 51640}, // __builtin_msa_bnz_b
-+ {Intrinsic::mips_bnz_d, 51660}, // __builtin_msa_bnz_d
-+ {Intrinsic::mips_bnz_h, 51680}, // __builtin_msa_bnz_h
-+ {Intrinsic::mips_bnz_v, 51700}, // __builtin_msa_bnz_v
-+ {Intrinsic::mips_bnz_w, 51720}, // __builtin_msa_bnz_w
-+ {Intrinsic::mips_bsel_v, 51764}, // __builtin_msa_bsel_v
-+ {Intrinsic::mips_bseli_b, 51785}, // __builtin_msa_bseli_b
-+ {Intrinsic::mips_bset_b, 51807}, // __builtin_msa_bset_b
-+ {Intrinsic::mips_bset_d, 51828}, // __builtin_msa_bset_d
-+ {Intrinsic::mips_bset_h, 51849}, // __builtin_msa_bset_h
-+ {Intrinsic::mips_bset_w, 51870}, // __builtin_msa_bset_w
-+ {Intrinsic::mips_bseti_b, 51891}, // __builtin_msa_bseti_b
-+ {Intrinsic::mips_bseti_d, 51913}, // __builtin_msa_bseti_d
-+ {Intrinsic::mips_bseti_h, 51935}, // __builtin_msa_bseti_h
-+ {Intrinsic::mips_bseti_w, 51957}, // __builtin_msa_bseti_w
-+ {Intrinsic::mips_bz_b, 51979}, // __builtin_msa_bz_b
-+ {Intrinsic::mips_bz_d, 51998}, // __builtin_msa_bz_d
-+ {Intrinsic::mips_bz_h, 52017}, // __builtin_msa_bz_h
-+ {Intrinsic::mips_bz_v, 52036}, // __builtin_msa_bz_v
-+ {Intrinsic::mips_bz_w, 52055}, // __builtin_msa_bz_w
-+ {Intrinsic::mips_ceq_b, 52074}, // __builtin_msa_ceq_b
-+ {Intrinsic::mips_ceq_d, 52094}, // __builtin_msa_ceq_d
-+ {Intrinsic::mips_ceq_h, 52114}, // __builtin_msa_ceq_h
-+ {Intrinsic::mips_ceq_w, 52134}, // __builtin_msa_ceq_w
-+ {Intrinsic::mips_ceqi_b, 52154}, // __builtin_msa_ceqi_b
-+ {Intrinsic::mips_ceqi_d, 52175}, // __builtin_msa_ceqi_d
-+ {Intrinsic::mips_ceqi_h, 52196}, // __builtin_msa_ceqi_h
-+ {Intrinsic::mips_ceqi_w, 52217}, // __builtin_msa_ceqi_w
-+ {Intrinsic::mips_cfcmsa, 52238}, // __builtin_msa_cfcmsa
-+ {Intrinsic::mips_cle_s_b, 52259}, // __builtin_msa_cle_s_b
-+ {Intrinsic::mips_cle_s_d, 52281}, // __builtin_msa_cle_s_d
-+ {Intrinsic::mips_cle_s_h, 52303}, // __builtin_msa_cle_s_h
-+ {Intrinsic::mips_cle_s_w, 52325}, // __builtin_msa_cle_s_w
-+ {Intrinsic::mips_cle_u_b, 52347}, // __builtin_msa_cle_u_b
-+ {Intrinsic::mips_cle_u_d, 52369}, // __builtin_msa_cle_u_d
-+ {Intrinsic::mips_cle_u_h, 52391}, // __builtin_msa_cle_u_h
-+ {Intrinsic::mips_cle_u_w, 52413}, // __builtin_msa_cle_u_w
-+ {Intrinsic::mips_clei_s_b, 52435}, // __builtin_msa_clei_s_b
-+ {Intrinsic::mips_clei_s_d, 52458}, // __builtin_msa_clei_s_d
-+ {Intrinsic::mips_clei_s_h, 52481}, // __builtin_msa_clei_s_h
-+ {Intrinsic::mips_clei_s_w, 52504}, // __builtin_msa_clei_s_w
-+ {Intrinsic::mips_clei_u_b, 52527}, // __builtin_msa_clei_u_b
-+ {Intrinsic::mips_clei_u_d, 52550}, // __builtin_msa_clei_u_d
-+ {Intrinsic::mips_clei_u_h, 52573}, // __builtin_msa_clei_u_h
-+ {Intrinsic::mips_clei_u_w, 52596}, // __builtin_msa_clei_u_w
-+ {Intrinsic::mips_clt_s_b, 52619}, // __builtin_msa_clt_s_b
-+ {Intrinsic::mips_clt_s_d, 52641}, // __builtin_msa_clt_s_d
-+ {Intrinsic::mips_clt_s_h, 52663}, // __builtin_msa_clt_s_h
-+ {Intrinsic::mips_clt_s_w, 52685}, // __builtin_msa_clt_s_w
-+ {Intrinsic::mips_clt_u_b, 52707}, // __builtin_msa_clt_u_b
-+ {Intrinsic::mips_clt_u_d, 52729}, // __builtin_msa_clt_u_d
-+ {Intrinsic::mips_clt_u_h, 52751}, // __builtin_msa_clt_u_h
-+ {Intrinsic::mips_clt_u_w, 52773}, // __builtin_msa_clt_u_w
-+ {Intrinsic::mips_clti_s_b, 52795}, // __builtin_msa_clti_s_b
-+ {Intrinsic::mips_clti_s_d, 52818}, // __builtin_msa_clti_s_d
-+ {Intrinsic::mips_clti_s_h, 52841}, // __builtin_msa_clti_s_h
-+ {Intrinsic::mips_clti_s_w, 52864}, // __builtin_msa_clti_s_w
-+ {Intrinsic::mips_clti_u_b, 52887}, // __builtin_msa_clti_u_b
-+ {Intrinsic::mips_clti_u_d, 52910}, // __builtin_msa_clti_u_d
-+ {Intrinsic::mips_clti_u_h, 52933}, // __builtin_msa_clti_u_h
-+ {Intrinsic::mips_clti_u_w, 52956}, // __builtin_msa_clti_u_w
-+ {Intrinsic::mips_copy_s_b, 53297}, // __builtin_msa_copy_s_b
-+ {Intrinsic::mips_copy_s_d, 53320}, // __builtin_msa_copy_s_d
-+ {Intrinsic::mips_copy_s_h, 53343}, // __builtin_msa_copy_s_h
-+ {Intrinsic::mips_copy_s_w, 53366}, // __builtin_msa_copy_s_w
-+ {Intrinsic::mips_copy_u_b, 53389}, // __builtin_msa_copy_u_b
-+ {Intrinsic::mips_copy_u_d, 53412}, // __builtin_msa_copy_u_d
-+ {Intrinsic::mips_copy_u_h, 53435}, // __builtin_msa_copy_u_h
-+ {Intrinsic::mips_copy_u_w, 53458}, // __builtin_msa_copy_u_w
-+ {Intrinsic::mips_ctcmsa, 53481}, // __builtin_msa_ctcmsa
-+ {Intrinsic::mips_div_s_b, 53502}, // __builtin_msa_div_s_b
-+ {Intrinsic::mips_div_s_d, 53524}, // __builtin_msa_div_s_d
-+ {Intrinsic::mips_div_s_h, 53546}, // __builtin_msa_div_s_h
-+ {Intrinsic::mips_div_s_w, 53568}, // __builtin_msa_div_s_w
-+ {Intrinsic::mips_div_u_b, 53590}, // __builtin_msa_div_u_b
-+ {Intrinsic::mips_div_u_d, 53612}, // __builtin_msa_div_u_d
-+ {Intrinsic::mips_div_u_h, 53634}, // __builtin_msa_div_u_h
-+ {Intrinsic::mips_div_u_w, 53656}, // __builtin_msa_div_u_w
-+ {Intrinsic::mips_dotp_s_d, 53698}, // __builtin_msa_dotp_s_d
-+ {Intrinsic::mips_dotp_s_h, 53721}, // __builtin_msa_dotp_s_h
-+ {Intrinsic::mips_dotp_s_w, 53744}, // __builtin_msa_dotp_s_w
-+ {Intrinsic::mips_dotp_u_d, 53767}, // __builtin_msa_dotp_u_d
-+ {Intrinsic::mips_dotp_u_h, 53790}, // __builtin_msa_dotp_u_h
-+ {Intrinsic::mips_dotp_u_w, 53813}, // __builtin_msa_dotp_u_w
-+ {Intrinsic::mips_dpadd_s_d, 53860}, // __builtin_msa_dpadd_s_d
-+ {Intrinsic::mips_dpadd_s_h, 53884}, // __builtin_msa_dpadd_s_h
-+ {Intrinsic::mips_dpadd_s_w, 53908}, // __builtin_msa_dpadd_s_w
-+ {Intrinsic::mips_dpadd_u_d, 53932}, // __builtin_msa_dpadd_u_d
-+ {Intrinsic::mips_dpadd_u_h, 53956}, // __builtin_msa_dpadd_u_h
-+ {Intrinsic::mips_dpadd_u_w, 53980}, // __builtin_msa_dpadd_u_w
-+ {Intrinsic::mips_dpsub_s_d, 54379}, // __builtin_msa_dpsub_s_d
-+ {Intrinsic::mips_dpsub_s_h, 54403}, // __builtin_msa_dpsub_s_h
-+ {Intrinsic::mips_dpsub_s_w, 54427}, // __builtin_msa_dpsub_s_w
-+ {Intrinsic::mips_dpsub_u_d, 54451}, // __builtin_msa_dpsub_u_d
-+ {Intrinsic::mips_dpsub_u_h, 54475}, // __builtin_msa_dpsub_u_h
-+ {Intrinsic::mips_dpsub_u_w, 54499}, // __builtin_msa_dpsub_u_w
-+ {Intrinsic::mips_fadd_d, 54685}, // __builtin_msa_fadd_d
-+ {Intrinsic::mips_fadd_w, 54706}, // __builtin_msa_fadd_w
-+ {Intrinsic::mips_fcaf_d, 54727}, // __builtin_msa_fcaf_d
-+ {Intrinsic::mips_fcaf_w, 54748}, // __builtin_msa_fcaf_w
-+ {Intrinsic::mips_fceq_d, 54769}, // __builtin_msa_fceq_d
-+ {Intrinsic::mips_fceq_w, 54790}, // __builtin_msa_fceq_w
-+ {Intrinsic::mips_fclass_d, 54811}, // __builtin_msa_fclass_d
-+ {Intrinsic::mips_fclass_w, 54834}, // __builtin_msa_fclass_w
-+ {Intrinsic::mips_fcle_d, 54857}, // __builtin_msa_fcle_d
-+ {Intrinsic::mips_fcle_w, 54878}, // __builtin_msa_fcle_w
-+ {Intrinsic::mips_fclt_d, 54899}, // __builtin_msa_fclt_d
-+ {Intrinsic::mips_fclt_w, 54920}, // __builtin_msa_fclt_w
-+ {Intrinsic::mips_fcne_d, 54941}, // __builtin_msa_fcne_d
-+ {Intrinsic::mips_fcne_w, 54962}, // __builtin_msa_fcne_w
-+ {Intrinsic::mips_fcor_d, 54983}, // __builtin_msa_fcor_d
-+ {Intrinsic::mips_fcor_w, 55004}, // __builtin_msa_fcor_w
-+ {Intrinsic::mips_fcueq_d, 55025}, // __builtin_msa_fcueq_d
-+ {Intrinsic::mips_fcueq_w, 55047}, // __builtin_msa_fcueq_w
-+ {Intrinsic::mips_fcule_d, 55069}, // __builtin_msa_fcule_d
-+ {Intrinsic::mips_fcule_w, 55091}, // __builtin_msa_fcule_w
-+ {Intrinsic::mips_fcult_d, 55113}, // __builtin_msa_fcult_d
-+ {Intrinsic::mips_fcult_w, 55135}, // __builtin_msa_fcult_w
-+ {Intrinsic::mips_fcun_d, 55157}, // __builtin_msa_fcun_d
-+ {Intrinsic::mips_fcun_w, 55178}, // __builtin_msa_fcun_w
-+ {Intrinsic::mips_fcune_d, 55199}, // __builtin_msa_fcune_d
-+ {Intrinsic::mips_fcune_w, 55221}, // __builtin_msa_fcune_w
-+ {Intrinsic::mips_fdiv_d, 55243}, // __builtin_msa_fdiv_d
-+ {Intrinsic::mips_fdiv_w, 55264}, // __builtin_msa_fdiv_w
-+ {Intrinsic::mips_fexdo_h, 55285}, // __builtin_msa_fexdo_h
-+ {Intrinsic::mips_fexdo_w, 55307}, // __builtin_msa_fexdo_w
-+ {Intrinsic::mips_fexp2_d, 55329}, // __builtin_msa_fexp2_d
-+ {Intrinsic::mips_fexp2_w, 55351}, // __builtin_msa_fexp2_w
-+ {Intrinsic::mips_fexupl_d, 55373}, // __builtin_msa_fexupl_d
-+ {Intrinsic::mips_fexupl_w, 55396}, // __builtin_msa_fexupl_w
-+ {Intrinsic::mips_fexupr_d, 55419}, // __builtin_msa_fexupr_d
-+ {Intrinsic::mips_fexupr_w, 55442}, // __builtin_msa_fexupr_w
-+ {Intrinsic::mips_ffint_s_d, 55465}, // __builtin_msa_ffint_s_d
-+ {Intrinsic::mips_ffint_s_w, 55489}, // __builtin_msa_ffint_s_w
-+ {Intrinsic::mips_ffint_u_d, 55513}, // __builtin_msa_ffint_u_d
-+ {Intrinsic::mips_ffint_u_w, 55537}, // __builtin_msa_ffint_u_w
-+ {Intrinsic::mips_ffql_d, 55561}, // __builtin_msa_ffql_d
-+ {Intrinsic::mips_ffql_w, 55582}, // __builtin_msa_ffql_w
-+ {Intrinsic::mips_ffqr_d, 55603}, // __builtin_msa_ffqr_d
-+ {Intrinsic::mips_ffqr_w, 55624}, // __builtin_msa_ffqr_w
-+ {Intrinsic::mips_fill_b, 55645}, // __builtin_msa_fill_b
-+ {Intrinsic::mips_fill_d, 55666}, // __builtin_msa_fill_d
-+ {Intrinsic::mips_fill_h, 55687}, // __builtin_msa_fill_h
-+ {Intrinsic::mips_fill_w, 55708}, // __builtin_msa_fill_w
-+ {Intrinsic::mips_flog2_d, 55729}, // __builtin_msa_flog2_d
-+ {Intrinsic::mips_flog2_w, 55751}, // __builtin_msa_flog2_w
-+ {Intrinsic::mips_fmadd_d, 55773}, // __builtin_msa_fmadd_d
-+ {Intrinsic::mips_fmadd_w, 55795}, // __builtin_msa_fmadd_w
-+ {Intrinsic::mips_fmax_a_d, 55817}, // __builtin_msa_fmax_a_d
-+ {Intrinsic::mips_fmax_a_w, 55840}, // __builtin_msa_fmax_a_w
-+ {Intrinsic::mips_fmax_d, 55863}, // __builtin_msa_fmax_d
-+ {Intrinsic::mips_fmax_w, 55884}, // __builtin_msa_fmax_w
-+ {Intrinsic::mips_fmin_a_d, 55905}, // __builtin_msa_fmin_a_d
-+ {Intrinsic::mips_fmin_a_w, 55928}, // __builtin_msa_fmin_a_w
-+ {Intrinsic::mips_fmin_d, 55951}, // __builtin_msa_fmin_d
-+ {Intrinsic::mips_fmin_w, 55972}, // __builtin_msa_fmin_w
-+ {Intrinsic::mips_fmsub_d, 55993}, // __builtin_msa_fmsub_d
-+ {Intrinsic::mips_fmsub_w, 56015}, // __builtin_msa_fmsub_w
-+ {Intrinsic::mips_fmul_d, 56037}, // __builtin_msa_fmul_d
-+ {Intrinsic::mips_fmul_w, 56058}, // __builtin_msa_fmul_w
-+ {Intrinsic::mips_frcp_d, 56079}, // __builtin_msa_frcp_d
-+ {Intrinsic::mips_frcp_w, 56100}, // __builtin_msa_frcp_w
-+ {Intrinsic::mips_frint_d, 56121}, // __builtin_msa_frint_d
-+ {Intrinsic::mips_frint_w, 56143}, // __builtin_msa_frint_w
-+ {Intrinsic::mips_frsqrt_d, 56165}, // __builtin_msa_frsqrt_d
-+ {Intrinsic::mips_frsqrt_w, 56188}, // __builtin_msa_frsqrt_w
-+ {Intrinsic::mips_fsaf_d, 56211}, // __builtin_msa_fsaf_d
-+ {Intrinsic::mips_fsaf_w, 56232}, // __builtin_msa_fsaf_w
-+ {Intrinsic::mips_fseq_d, 56253}, // __builtin_msa_fseq_d
-+ {Intrinsic::mips_fseq_w, 56274}, // __builtin_msa_fseq_w
-+ {Intrinsic::mips_fsle_d, 56295}, // __builtin_msa_fsle_d
-+ {Intrinsic::mips_fsle_w, 56316}, // __builtin_msa_fsle_w
-+ {Intrinsic::mips_fslt_d, 56337}, // __builtin_msa_fslt_d
-+ {Intrinsic::mips_fslt_w, 56358}, // __builtin_msa_fslt_w
-+ {Intrinsic::mips_fsne_d, 56379}, // __builtin_msa_fsne_d
-+ {Intrinsic::mips_fsne_w, 56400}, // __builtin_msa_fsne_w
-+ {Intrinsic::mips_fsor_d, 56421}, // __builtin_msa_fsor_d
-+ {Intrinsic::mips_fsor_w, 56442}, // __builtin_msa_fsor_w
-+ {Intrinsic::mips_fsqrt_d, 56463}, // __builtin_msa_fsqrt_d
-+ {Intrinsic::mips_fsqrt_w, 56485}, // __builtin_msa_fsqrt_w
-+ {Intrinsic::mips_fsub_d, 56507}, // __builtin_msa_fsub_d
-+ {Intrinsic::mips_fsub_w, 56528}, // __builtin_msa_fsub_w
-+ {Intrinsic::mips_fsueq_d, 56549}, // __builtin_msa_fsueq_d
-+ {Intrinsic::mips_fsueq_w, 56571}, // __builtin_msa_fsueq_w
-+ {Intrinsic::mips_fsule_d, 56593}, // __builtin_msa_fsule_d
-+ {Intrinsic::mips_fsule_w, 56615}, // __builtin_msa_fsule_w
-+ {Intrinsic::mips_fsult_d, 56637}, // __builtin_msa_fsult_d
-+ {Intrinsic::mips_fsult_w, 56659}, // __builtin_msa_fsult_w
-+ {Intrinsic::mips_fsun_d, 56681}, // __builtin_msa_fsun_d
-+ {Intrinsic::mips_fsun_w, 56702}, // __builtin_msa_fsun_w
-+ {Intrinsic::mips_fsune_d, 56723}, // __builtin_msa_fsune_d
-+ {Intrinsic::mips_fsune_w, 56745}, // __builtin_msa_fsune_w
-+ {Intrinsic::mips_ftint_s_d, 56767}, // __builtin_msa_ftint_s_d
-+ {Intrinsic::mips_ftint_s_w, 56791}, // __builtin_msa_ftint_s_w
-+ {Intrinsic::mips_ftint_u_d, 56815}, // __builtin_msa_ftint_u_d
-+ {Intrinsic::mips_ftint_u_w, 56839}, // __builtin_msa_ftint_u_w
-+ {Intrinsic::mips_ftq_h, 56863}, // __builtin_msa_ftq_h
-+ {Intrinsic::mips_ftq_w, 56883}, // __builtin_msa_ftq_w
-+ {Intrinsic::mips_ftrunc_s_d, 56903}, // __builtin_msa_ftrunc_s_d
-+ {Intrinsic::mips_ftrunc_s_w, 56928}, // __builtin_msa_ftrunc_s_w
-+ {Intrinsic::mips_ftrunc_u_d, 56953}, // __builtin_msa_ftrunc_u_d
-+ {Intrinsic::mips_ftrunc_u_w, 56978}, // __builtin_msa_ftrunc_u_w
-+ {Intrinsic::mips_hadd_s_d, 57003}, // __builtin_msa_hadd_s_d
-+ {Intrinsic::mips_hadd_s_h, 57026}, // __builtin_msa_hadd_s_h
-+ {Intrinsic::mips_hadd_s_w, 57049}, // __builtin_msa_hadd_s_w
-+ {Intrinsic::mips_hadd_u_d, 57072}, // __builtin_msa_hadd_u_d
-+ {Intrinsic::mips_hadd_u_h, 57095}, // __builtin_msa_hadd_u_h
-+ {Intrinsic::mips_hadd_u_w, 57118}, // __builtin_msa_hadd_u_w
-+ {Intrinsic::mips_hsub_s_d, 57141}, // __builtin_msa_hsub_s_d
-+ {Intrinsic::mips_hsub_s_h, 57164}, // __builtin_msa_hsub_s_h
-+ {Intrinsic::mips_hsub_s_w, 57187}, // __builtin_msa_hsub_s_w
-+ {Intrinsic::mips_hsub_u_d, 57210}, // __builtin_msa_hsub_u_d
-+ {Intrinsic::mips_hsub_u_h, 57233}, // __builtin_msa_hsub_u_h
-+ {Intrinsic::mips_hsub_u_w, 57256}, // __builtin_msa_hsub_u_w
-+ {Intrinsic::mips_ilvev_b, 57279}, // __builtin_msa_ilvev_b
-+ {Intrinsic::mips_ilvev_d, 57301}, // __builtin_msa_ilvev_d
-+ {Intrinsic::mips_ilvev_h, 57323}, // __builtin_msa_ilvev_h
-+ {Intrinsic::mips_ilvev_w, 57345}, // __builtin_msa_ilvev_w
-+ {Intrinsic::mips_ilvl_b, 57367}, // __builtin_msa_ilvl_b
-+ {Intrinsic::mips_ilvl_d, 57388}, // __builtin_msa_ilvl_d
-+ {Intrinsic::mips_ilvl_h, 57409}, // __builtin_msa_ilvl_h
-+ {Intrinsic::mips_ilvl_w, 57430}, // __builtin_msa_ilvl_w
-+ {Intrinsic::mips_ilvod_b, 57451}, // __builtin_msa_ilvod_b
-+ {Intrinsic::mips_ilvod_d, 57473}, // __builtin_msa_ilvod_d
-+ {Intrinsic::mips_ilvod_h, 57495}, // __builtin_msa_ilvod_h
-+ {Intrinsic::mips_ilvod_w, 57517}, // __builtin_msa_ilvod_w
-+ {Intrinsic::mips_ilvr_b, 57539}, // __builtin_msa_ilvr_b
-+ {Intrinsic::mips_ilvr_d, 57560}, // __builtin_msa_ilvr_d
-+ {Intrinsic::mips_ilvr_h, 57581}, // __builtin_msa_ilvr_h
-+ {Intrinsic::mips_ilvr_w, 57602}, // __builtin_msa_ilvr_w
-+ {Intrinsic::mips_insert_b, 57623}, // __builtin_msa_insert_b
-+ {Intrinsic::mips_insert_d, 57646}, // __builtin_msa_insert_d
-+ {Intrinsic::mips_insert_h, 57669}, // __builtin_msa_insert_h
-+ {Intrinsic::mips_insert_w, 57692}, // __builtin_msa_insert_w
-+ {Intrinsic::mips_insve_b, 57735}, // __builtin_msa_insve_b
-+ {Intrinsic::mips_insve_d, 57757}, // __builtin_msa_insve_d
-+ {Intrinsic::mips_insve_h, 57779}, // __builtin_msa_insve_h
-+ {Intrinsic::mips_insve_w, 57801}, // __builtin_msa_insve_w
-+ {Intrinsic::mips_ld_b, 57843}, // __builtin_msa_ld_b
-+ {Intrinsic::mips_ld_d, 57862}, // __builtin_msa_ld_d
-+ {Intrinsic::mips_ld_h, 57881}, // __builtin_msa_ld_h
-+ {Intrinsic::mips_ld_w, 57900}, // __builtin_msa_ld_w
-+ {Intrinsic::mips_ldi_b, 57919}, // __builtin_msa_ldi_b
-+ {Intrinsic::mips_ldi_d, 57939}, // __builtin_msa_ldi_d
-+ {Intrinsic::mips_ldi_h, 57959}, // __builtin_msa_ldi_h
-+ {Intrinsic::mips_ldi_w, 57979}, // __builtin_msa_ldi_w
-+ {Intrinsic::mips_madd_q_h, 58076}, // __builtin_msa_madd_q_h
-+ {Intrinsic::mips_madd_q_w, 58099}, // __builtin_msa_madd_q_w
-+ {Intrinsic::mips_maddr_q_h, 58122}, // __builtin_msa_maddr_q_h
-+ {Intrinsic::mips_maddr_q_w, 58146}, // __builtin_msa_maddr_q_w
-+ {Intrinsic::mips_maddv_b, 58191}, // __builtin_msa_maddv_b
-+ {Intrinsic::mips_maddv_d, 58213}, // __builtin_msa_maddv_d
-+ {Intrinsic::mips_maddv_h, 58235}, // __builtin_msa_maddv_h
-+ {Intrinsic::mips_maddv_w, 58257}, // __builtin_msa_maddv_w
-+ {Intrinsic::mips_max_a_b, 58389}, // __builtin_msa_max_a_b
-+ {Intrinsic::mips_max_a_d, 58411}, // __builtin_msa_max_a_d
-+ {Intrinsic::mips_max_a_h, 58433}, // __builtin_msa_max_a_h
-+ {Intrinsic::mips_max_a_w, 58455}, // __builtin_msa_max_a_w
-+ {Intrinsic::mips_max_s_b, 58477}, // __builtin_msa_max_s_b
-+ {Intrinsic::mips_max_s_d, 58499}, // __builtin_msa_max_s_d
-+ {Intrinsic::mips_max_s_h, 58521}, // __builtin_msa_max_s_h
-+ {Intrinsic::mips_max_s_w, 58543}, // __builtin_msa_max_s_w
-+ {Intrinsic::mips_max_u_b, 58565}, // __builtin_msa_max_u_b
-+ {Intrinsic::mips_max_u_d, 58587}, // __builtin_msa_max_u_d
-+ {Intrinsic::mips_max_u_h, 58609}, // __builtin_msa_max_u_h
-+ {Intrinsic::mips_max_u_w, 58631}, // __builtin_msa_max_u_w
-+ {Intrinsic::mips_maxi_s_b, 58653}, // __builtin_msa_maxi_s_b
-+ {Intrinsic::mips_maxi_s_d, 58676}, // __builtin_msa_maxi_s_d
-+ {Intrinsic::mips_maxi_s_h, 58699}, // __builtin_msa_maxi_s_h
-+ {Intrinsic::mips_maxi_s_w, 58722}, // __builtin_msa_maxi_s_w
-+ {Intrinsic::mips_maxi_u_b, 58745}, // __builtin_msa_maxi_u_b
-+ {Intrinsic::mips_maxi_u_d, 58768}, // __builtin_msa_maxi_u_d
-+ {Intrinsic::mips_maxi_u_h, 58791}, // __builtin_msa_maxi_u_h
-+ {Intrinsic::mips_maxi_u_w, 58814}, // __builtin_msa_maxi_u_w
-+ {Intrinsic::mips_min_a_b, 58837}, // __builtin_msa_min_a_b
-+ {Intrinsic::mips_min_a_d, 58859}, // __builtin_msa_min_a_d
-+ {Intrinsic::mips_min_a_h, 58881}, // __builtin_msa_min_a_h
-+ {Intrinsic::mips_min_a_w, 58903}, // __builtin_msa_min_a_w
-+ {Intrinsic::mips_min_s_b, 58925}, // __builtin_msa_min_s_b
-+ {Intrinsic::mips_min_s_d, 58947}, // __builtin_msa_min_s_d
-+ {Intrinsic::mips_min_s_h, 58969}, // __builtin_msa_min_s_h
-+ {Intrinsic::mips_min_s_w, 58991}, // __builtin_msa_min_s_w
-+ {Intrinsic::mips_min_u_b, 59013}, // __builtin_msa_min_u_b
-+ {Intrinsic::mips_min_u_d, 59035}, // __builtin_msa_min_u_d
-+ {Intrinsic::mips_min_u_h, 59057}, // __builtin_msa_min_u_h
-+ {Intrinsic::mips_min_u_w, 59079}, // __builtin_msa_min_u_w
-+ {Intrinsic::mips_mini_s_b, 59101}, // __builtin_msa_mini_s_b
-+ {Intrinsic::mips_mini_s_d, 59124}, // __builtin_msa_mini_s_d
-+ {Intrinsic::mips_mini_s_h, 59147}, // __builtin_msa_mini_s_h
-+ {Intrinsic::mips_mini_s_w, 59170}, // __builtin_msa_mini_s_w
-+ {Intrinsic::mips_mini_u_b, 59193}, // __builtin_msa_mini_u_b
-+ {Intrinsic::mips_mini_u_d, 59216}, // __builtin_msa_mini_u_d
-+ {Intrinsic::mips_mini_u_h, 59239}, // __builtin_msa_mini_u_h
-+ {Intrinsic::mips_mini_u_w, 59262}, // __builtin_msa_mini_u_w
-+ {Intrinsic::mips_mod_s_b, 59285}, // __builtin_msa_mod_s_b
-+ {Intrinsic::mips_mod_s_d, 59307}, // __builtin_msa_mod_s_d
-+ {Intrinsic::mips_mod_s_h, 59329}, // __builtin_msa_mod_s_h
-+ {Intrinsic::mips_mod_s_w, 59351}, // __builtin_msa_mod_s_w
-+ {Intrinsic::mips_mod_u_b, 59373}, // __builtin_msa_mod_u_b
-+ {Intrinsic::mips_mod_u_d, 59395}, // __builtin_msa_mod_u_d
-+ {Intrinsic::mips_mod_u_h, 59417}, // __builtin_msa_mod_u_h
-+ {Intrinsic::mips_mod_u_w, 59439}, // __builtin_msa_mod_u_w
-+ {Intrinsic::mips_move_v, 59483}, // __builtin_msa_move_v
-+ {Intrinsic::mips_msub_q_h, 59524}, // __builtin_msa_msub_q_h
-+ {Intrinsic::mips_msub_q_w, 59547}, // __builtin_msa_msub_q_w
-+ {Intrinsic::mips_msubr_q_h, 59570}, // __builtin_msa_msubr_q_h
-+ {Intrinsic::mips_msubr_q_w, 59594}, // __builtin_msa_msubr_q_w
-+ {Intrinsic::mips_msubv_b, 59639}, // __builtin_msa_msubv_b
-+ {Intrinsic::mips_msubv_d, 59661}, // __builtin_msa_msubv_d
-+ {Intrinsic::mips_msubv_h, 59683}, // __builtin_msa_msubv_h
-+ {Intrinsic::mips_msubv_w, 59705}, // __builtin_msa_msubv_w
-+ {Intrinsic::mips_mul_q_h, 59771}, // __builtin_msa_mul_q_h
-+ {Intrinsic::mips_mul_q_w, 59793}, // __builtin_msa_mul_q_w
-+ {Intrinsic::mips_mulr_q_h, 60057}, // __builtin_msa_mulr_q_h
-+ {Intrinsic::mips_mulr_q_w, 60080}, // __builtin_msa_mulr_q_w
-+ {Intrinsic::mips_mulv_b, 60199}, // __builtin_msa_mulv_b
-+ {Intrinsic::mips_mulv_d, 60220}, // __builtin_msa_mulv_d
-+ {Intrinsic::mips_mulv_h, 60241}, // __builtin_msa_mulv_h
-+ {Intrinsic::mips_mulv_w, 60262}, // __builtin_msa_mulv_w
-+ {Intrinsic::mips_nloc_b, 60283}, // __builtin_msa_nloc_b
-+ {Intrinsic::mips_nloc_d, 60304}, // __builtin_msa_nloc_d
-+ {Intrinsic::mips_nloc_h, 60325}, // __builtin_msa_nloc_h
-+ {Intrinsic::mips_nloc_w, 60346}, // __builtin_msa_nloc_w
-+ {Intrinsic::mips_nlzc_b, 60367}, // __builtin_msa_nlzc_b
-+ {Intrinsic::mips_nlzc_d, 60388}, // __builtin_msa_nlzc_d
-+ {Intrinsic::mips_nlzc_h, 60409}, // __builtin_msa_nlzc_h
-+ {Intrinsic::mips_nlzc_w, 60430}, // __builtin_msa_nlzc_w
-+ {Intrinsic::mips_nor_v, 60451}, // __builtin_msa_nor_v
-+ {Intrinsic::mips_nori_b, 60471}, // __builtin_msa_nori_b
-+ {Intrinsic::mips_or_v, 60492}, // __builtin_msa_or_v
-+ {Intrinsic::mips_ori_b, 60511}, // __builtin_msa_ori_b
-+ {Intrinsic::mips_pckev_b, 60556}, // __builtin_msa_pckev_b
-+ {Intrinsic::mips_pckev_d, 60578}, // __builtin_msa_pckev_d
-+ {Intrinsic::mips_pckev_h, 60600}, // __builtin_msa_pckev_h
-+ {Intrinsic::mips_pckev_w, 60622}, // __builtin_msa_pckev_w
-+ {Intrinsic::mips_pckod_b, 60644}, // __builtin_msa_pckod_b
-+ {Intrinsic::mips_pckod_d, 60666}, // __builtin_msa_pckod_d
-+ {Intrinsic::mips_pckod_h, 60688}, // __builtin_msa_pckod_h
-+ {Intrinsic::mips_pckod_w, 60710}, // __builtin_msa_pckod_w
-+ {Intrinsic::mips_pcnt_b, 60732}, // __builtin_msa_pcnt_b
-+ {Intrinsic::mips_pcnt_d, 60753}, // __builtin_msa_pcnt_d
-+ {Intrinsic::mips_pcnt_h, 60774}, // __builtin_msa_pcnt_h
-+ {Intrinsic::mips_pcnt_w, 60795}, // __builtin_msa_pcnt_w
-+ {Intrinsic::mips_sat_s_b, 61479}, // __builtin_msa_sat_s_b
-+ {Intrinsic::mips_sat_s_d, 61501}, // __builtin_msa_sat_s_d
-+ {Intrinsic::mips_sat_s_h, 61523}, // __builtin_msa_sat_s_h
-+ {Intrinsic::mips_sat_s_w, 61545}, // __builtin_msa_sat_s_w
-+ {Intrinsic::mips_sat_u_b, 61567}, // __builtin_msa_sat_u_b
-+ {Intrinsic::mips_sat_u_d, 61589}, // __builtin_msa_sat_u_d
-+ {Intrinsic::mips_sat_u_h, 61611}, // __builtin_msa_sat_u_h
-+ {Intrinsic::mips_sat_u_w, 61633}, // __builtin_msa_sat_u_w
-+ {Intrinsic::mips_shf_b, 61655}, // __builtin_msa_shf_b
-+ {Intrinsic::mips_shf_h, 61675}, // __builtin_msa_shf_h
-+ {Intrinsic::mips_shf_w, 61695}, // __builtin_msa_shf_w
-+ {Intrinsic::mips_sld_b, 61997}, // __builtin_msa_sld_b
-+ {Intrinsic::mips_sld_d, 62017}, // __builtin_msa_sld_d
-+ {Intrinsic::mips_sld_h, 62037}, // __builtin_msa_sld_h
-+ {Intrinsic::mips_sld_w, 62057}, // __builtin_msa_sld_w
-+ {Intrinsic::mips_sldi_b, 62077}, // __builtin_msa_sldi_b
-+ {Intrinsic::mips_sldi_d, 62098}, // __builtin_msa_sldi_d
-+ {Intrinsic::mips_sldi_h, 62119}, // __builtin_msa_sldi_h
-+ {Intrinsic::mips_sldi_w, 62140}, // __builtin_msa_sldi_w
-+ {Intrinsic::mips_sll_b, 62161}, // __builtin_msa_sll_b
-+ {Intrinsic::mips_sll_d, 62181}, // __builtin_msa_sll_d
-+ {Intrinsic::mips_sll_h, 62201}, // __builtin_msa_sll_h
-+ {Intrinsic::mips_sll_w, 62221}, // __builtin_msa_sll_w
-+ {Intrinsic::mips_slli_b, 62241}, // __builtin_msa_slli_b
-+ {Intrinsic::mips_slli_d, 62262}, // __builtin_msa_slli_d
-+ {Intrinsic::mips_slli_h, 62283}, // __builtin_msa_slli_h
-+ {Intrinsic::mips_slli_w, 62304}, // __builtin_msa_slli_w
-+ {Intrinsic::mips_splat_b, 62325}, // __builtin_msa_splat_b
-+ {Intrinsic::mips_splat_d, 62347}, // __builtin_msa_splat_d
-+ {Intrinsic::mips_splat_h, 62369}, // __builtin_msa_splat_h
-+ {Intrinsic::mips_splat_w, 62391}, // __builtin_msa_splat_w
-+ {Intrinsic::mips_splati_b, 62413}, // __builtin_msa_splati_b
-+ {Intrinsic::mips_splati_d, 62436}, // __builtin_msa_splati_d
-+ {Intrinsic::mips_splati_h, 62459}, // __builtin_msa_splati_h
-+ {Intrinsic::mips_splati_w, 62482}, // __builtin_msa_splati_w
-+ {Intrinsic::mips_sra_b, 62505}, // __builtin_msa_sra_b
-+ {Intrinsic::mips_sra_d, 62525}, // __builtin_msa_sra_d
-+ {Intrinsic::mips_sra_h, 62545}, // __builtin_msa_sra_h
-+ {Intrinsic::mips_sra_w, 62565}, // __builtin_msa_sra_w
-+ {Intrinsic::mips_srai_b, 62585}, // __builtin_msa_srai_b
-+ {Intrinsic::mips_srai_d, 62606}, // __builtin_msa_srai_d
-+ {Intrinsic::mips_srai_h, 62627}, // __builtin_msa_srai_h
-+ {Intrinsic::mips_srai_w, 62648}, // __builtin_msa_srai_w
-+ {Intrinsic::mips_srar_b, 62669}, // __builtin_msa_srar_b
-+ {Intrinsic::mips_srar_d, 62690}, // __builtin_msa_srar_d
-+ {Intrinsic::mips_srar_h, 62711}, // __builtin_msa_srar_h
-+ {Intrinsic::mips_srar_w, 62732}, // __builtin_msa_srar_w
-+ {Intrinsic::mips_srari_b, 62753}, // __builtin_msa_srari_b
-+ {Intrinsic::mips_srari_d, 62775}, // __builtin_msa_srari_d
-+ {Intrinsic::mips_srari_h, 62797}, // __builtin_msa_srari_h
-+ {Intrinsic::mips_srari_w, 62819}, // __builtin_msa_srari_w
-+ {Intrinsic::mips_srl_b, 62841}, // __builtin_msa_srl_b
-+ {Intrinsic::mips_srl_d, 62861}, // __builtin_msa_srl_d
-+ {Intrinsic::mips_srl_h, 62881}, // __builtin_msa_srl_h
-+ {Intrinsic::mips_srl_w, 62901}, // __builtin_msa_srl_w
-+ {Intrinsic::mips_srli_b, 62921}, // __builtin_msa_srli_b
-+ {Intrinsic::mips_srli_d, 62942}, // __builtin_msa_srli_d
-+ {Intrinsic::mips_srli_h, 62963}, // __builtin_msa_srli_h
-+ {Intrinsic::mips_srli_w, 62984}, // __builtin_msa_srli_w
-+ {Intrinsic::mips_srlr_b, 63005}, // __builtin_msa_srlr_b
-+ {Intrinsic::mips_srlr_d, 63026}, // __builtin_msa_srlr_d
-+ {Intrinsic::mips_srlr_h, 63047}, // __builtin_msa_srlr_h
-+ {Intrinsic::mips_srlr_w, 63068}, // __builtin_msa_srlr_w
-+ {Intrinsic::mips_srlri_b, 63089}, // __builtin_msa_srlri_b
-+ {Intrinsic::mips_srlri_d, 63111}, // __builtin_msa_srlri_d
-+ {Intrinsic::mips_srlri_h, 63133}, // __builtin_msa_srlri_h
-+ {Intrinsic::mips_srlri_w, 63155}, // __builtin_msa_srlri_w
-+ {Intrinsic::mips_st_b, 63177}, // __builtin_msa_st_b
-+ {Intrinsic::mips_st_d, 63196}, // __builtin_msa_st_d
-+ {Intrinsic::mips_st_h, 63215}, // __builtin_msa_st_h
-+ {Intrinsic::mips_st_w, 63234}, // __builtin_msa_st_w
-+ {Intrinsic::mips_subs_s_b, 63423}, // __builtin_msa_subs_s_b
-+ {Intrinsic::mips_subs_s_d, 63446}, // __builtin_msa_subs_s_d
-+ {Intrinsic::mips_subs_s_h, 63469}, // __builtin_msa_subs_s_h
-+ {Intrinsic::mips_subs_s_w, 63492}, // __builtin_msa_subs_s_w
-+ {Intrinsic::mips_subs_u_b, 63515}, // __builtin_msa_subs_u_b
-+ {Intrinsic::mips_subs_u_d, 63538}, // __builtin_msa_subs_u_d
-+ {Intrinsic::mips_subs_u_h, 63561}, // __builtin_msa_subs_u_h
-+ {Intrinsic::mips_subs_u_w, 63584}, // __builtin_msa_subs_u_w
-+ {Intrinsic::mips_subsus_u_b, 63607}, // __builtin_msa_subsus_u_b
-+ {Intrinsic::mips_subsus_u_d, 63632}, // __builtin_msa_subsus_u_d
-+ {Intrinsic::mips_subsus_u_h, 63657}, // __builtin_msa_subsus_u_h
-+ {Intrinsic::mips_subsus_u_w, 63682}, // __builtin_msa_subsus_u_w
-+ {Intrinsic::mips_subsuu_s_b, 63707}, // __builtin_msa_subsuu_s_b
-+ {Intrinsic::mips_subsuu_s_d, 63732}, // __builtin_msa_subsuu_s_d
-+ {Intrinsic::mips_subsuu_s_h, 63757}, // __builtin_msa_subsuu_s_h
-+ {Intrinsic::mips_subsuu_s_w, 63782}, // __builtin_msa_subsuu_s_w
-+ {Intrinsic::mips_subv_b, 63953}, // __builtin_msa_subv_b
-+ {Intrinsic::mips_subv_d, 63974}, // __builtin_msa_subv_d
-+ {Intrinsic::mips_subv_h, 63995}, // __builtin_msa_subv_h
-+ {Intrinsic::mips_subv_w, 64016}, // __builtin_msa_subv_w
-+ {Intrinsic::mips_subvi_b, 64037}, // __builtin_msa_subvi_b
-+ {Intrinsic::mips_subvi_d, 64059}, // __builtin_msa_subvi_d
-+ {Intrinsic::mips_subvi_h, 64081}, // __builtin_msa_subvi_h
-+ {Intrinsic::mips_subvi_w, 64103}, // __builtin_msa_subvi_w
-+ {Intrinsic::mips_vshf_b, 64125}, // __builtin_msa_vshf_b
-+ {Intrinsic::mips_vshf_d, 64146}, // __builtin_msa_vshf_d
-+ {Intrinsic::mips_vshf_h, 64167}, // __builtin_msa_vshf_h
-+ {Intrinsic::mips_vshf_w, 64188}, // __builtin_msa_vshf_w
-+ {Intrinsic::mips_xor_v, 64230}, // __builtin_msa_xor_v
-+ {Intrinsic::mips_xori_b, 64250}, // __builtin_msa_xori_b
-+ };
-+ auto I = std::lower_bound(std::begin(mipsNames),
-+ std::end(mipsNames),
-+ BuiltinNameStr);
-+ if (I != std::end(mipsNames) &&
-+ I->getName() == BuiltinNameStr)
-+ return I->IntrinID;
-+ }
-+ if (TargetPrefix == "nvvm") {
-+ static const BuiltinEntry nvvmNames[] = {
-+ {Intrinsic::nvvm_abs_i, 64271}, // __nvvm_abs_i
-+ {Intrinsic::nvvm_abs_ll, 64284}, // __nvvm_abs_ll
-+ {Intrinsic::nvvm_add_rm_d, 64298}, // __nvvm_add_rm_d
-+ {Intrinsic::nvvm_add_rm_f, 64314}, // __nvvm_add_rm_f
-+ {Intrinsic::nvvm_add_rm_ftz_f, 64330}, // __nvvm_add_rm_ftz_f
-+ {Intrinsic::nvvm_add_rn_d, 64350}, // __nvvm_add_rn_d
-+ {Intrinsic::nvvm_add_rn_f, 64366}, // __nvvm_add_rn_f
-+ {Intrinsic::nvvm_add_rn_ftz_f, 64382}, // __nvvm_add_rn_ftz_f
-+ {Intrinsic::nvvm_add_rp_d, 64402}, // __nvvm_add_rp_d
-+ {Intrinsic::nvvm_add_rp_f, 64418}, // __nvvm_add_rp_f
-+ {Intrinsic::nvvm_add_rp_ftz_f, 64434}, // __nvvm_add_rp_ftz_f
-+ {Intrinsic::nvvm_add_rz_d, 64454}, // __nvvm_add_rz_d
-+ {Intrinsic::nvvm_add_rz_f, 64470}, // __nvvm_add_rz_f
-+ {Intrinsic::nvvm_add_rz_ftz_f, 64486}, // __nvvm_add_rz_ftz_f
-+ {Intrinsic::nvvm_barrier0_and, 64536}, // __nvvm_bar0_and
-+ {Intrinsic::nvvm_barrier0_or, 64552}, // __nvvm_bar0_or
-+ {Intrinsic::nvvm_barrier0_popc, 64567}, // __nvvm_bar0_popc
-+ {Intrinsic::nvvm_bar_sync, 64506}, // __nvvm_bar_sync
-+ {Intrinsic::nvvm_bitcast_d2ll, 64584}, // __nvvm_bitcast_d2ll
-+ {Intrinsic::nvvm_bitcast_f2i, 64604}, // __nvvm_bitcast_f2i
-+ {Intrinsic::nvvm_bitcast_i2f, 64623}, // __nvvm_bitcast_i2f
-+ {Intrinsic::nvvm_bitcast_ll2d, 64642}, // __nvvm_bitcast_ll2d
-+ {Intrinsic::nvvm_brev32, 64662}, // __nvvm_brev32
-+ {Intrinsic::nvvm_brev64, 64676}, // __nvvm_brev64
-+ {Intrinsic::nvvm_ceil_d, 64690}, // __nvvm_ceil_d
-+ {Intrinsic::nvvm_ceil_f, 64704}, // __nvvm_ceil_f
-+ {Intrinsic::nvvm_ceil_ftz_f, 64718}, // __nvvm_ceil_ftz_f
-+ {Intrinsic::nvvm_clz_i, 64736}, // __nvvm_clz_i
-+ {Intrinsic::nvvm_clz_ll, 64749}, // __nvvm_clz_ll
-+ {Intrinsic::nvvm_cos_approx_f, 64763}, // __nvvm_cos_approx_f
-+ {Intrinsic::nvvm_cos_approx_ftz_f, 64783}, // __nvvm_cos_approx_ftz_f
-+ {Intrinsic::nvvm_d2f_rm, 64807}, // __nvvm_d2f_rm
-+ {Intrinsic::nvvm_d2f_rm_ftz, 64821}, // __nvvm_d2f_rm_ftz
-+ {Intrinsic::nvvm_d2f_rn, 64839}, // __nvvm_d2f_rn
-+ {Intrinsic::nvvm_d2f_rn_ftz, 64853}, // __nvvm_d2f_rn_ftz
-+ {Intrinsic::nvvm_d2f_rp, 64871}, // __nvvm_d2f_rp
-+ {Intrinsic::nvvm_d2f_rp_ftz, 64885}, // __nvvm_d2f_rp_ftz
-+ {Intrinsic::nvvm_d2f_rz, 64903}, // __nvvm_d2f_rz
-+ {Intrinsic::nvvm_d2f_rz_ftz, 64917}, // __nvvm_d2f_rz_ftz
-+ {Intrinsic::nvvm_d2i_hi, 64935}, // __nvvm_d2i_hi
-+ {Intrinsic::nvvm_d2i_lo, 64949}, // __nvvm_d2i_lo
-+ {Intrinsic::nvvm_d2i_rm, 64963}, // __nvvm_d2i_rm
-+ {Intrinsic::nvvm_d2i_rn, 64977}, // __nvvm_d2i_rn
-+ {Intrinsic::nvvm_d2i_rp, 64991}, // __nvvm_d2i_rp
-+ {Intrinsic::nvvm_d2i_rz, 65005}, // __nvvm_d2i_rz
-+ {Intrinsic::nvvm_d2ll_rm, 65019}, // __nvvm_d2ll_rm
-+ {Intrinsic::nvvm_d2ll_rn, 65034}, // __nvvm_d2ll_rn
-+ {Intrinsic::nvvm_d2ll_rp, 65049}, // __nvvm_d2ll_rp
-+ {Intrinsic::nvvm_d2ll_rz, 65064}, // __nvvm_d2ll_rz
-+ {Intrinsic::nvvm_d2ui_rm, 65079}, // __nvvm_d2ui_rm
-+ {Intrinsic::nvvm_d2ui_rn, 65094}, // __nvvm_d2ui_rn
-+ {Intrinsic::nvvm_d2ui_rp, 65109}, // __nvvm_d2ui_rp
-+ {Intrinsic::nvvm_d2ui_rz, 65124}, // __nvvm_d2ui_rz
-+ {Intrinsic::nvvm_d2ull_rm, 65139}, // __nvvm_d2ull_rm
-+ {Intrinsic::nvvm_d2ull_rn, 65155}, // __nvvm_d2ull_rn
-+ {Intrinsic::nvvm_d2ull_rp, 65171}, // __nvvm_d2ull_rp
-+ {Intrinsic::nvvm_d2ull_rz, 65187}, // __nvvm_d2ull_rz
-+ {Intrinsic::nvvm_div_approx_f, 65203}, // __nvvm_div_approx_f
-+ {Intrinsic::nvvm_div_approx_ftz_f, 65223}, // __nvvm_div_approx_ftz_f
-+ {Intrinsic::nvvm_div_rm_d, 65247}, // __nvvm_div_rm_d
-+ {Intrinsic::nvvm_div_rm_f, 65263}, // __nvvm_div_rm_f
-+ {Intrinsic::nvvm_div_rm_ftz_f, 65279}, // __nvvm_div_rm_ftz_f
-+ {Intrinsic::nvvm_div_rn_d, 65299}, // __nvvm_div_rn_d
-+ {Intrinsic::nvvm_div_rn_f, 65315}, // __nvvm_div_rn_f
-+ {Intrinsic::nvvm_div_rn_ftz_f, 65331}, // __nvvm_div_rn_ftz_f
-+ {Intrinsic::nvvm_div_rp_d, 65351}, // __nvvm_div_rp_d
-+ {Intrinsic::nvvm_div_rp_f, 65367}, // __nvvm_div_rp_f
-+ {Intrinsic::nvvm_div_rp_ftz_f, 65383}, // __nvvm_div_rp_ftz_f
-+ {Intrinsic::nvvm_div_rz_d, 65403}, // __nvvm_div_rz_d
-+ {Intrinsic::nvvm_div_rz_f, 65419}, // __nvvm_div_rz_f
-+ {Intrinsic::nvvm_div_rz_ftz_f, 65435}, // __nvvm_div_rz_ftz_f
-+ {Intrinsic::nvvm_ex2_approx_d, 65455}, // __nvvm_ex2_approx_d
-+ {Intrinsic::nvvm_ex2_approx_f, 65475}, // __nvvm_ex2_approx_f
-+ {Intrinsic::nvvm_ex2_approx_ftz_f, 65495}, // __nvvm_ex2_approx_ftz_f
-+ {Intrinsic::nvvm_f2h_rn, 65519}, // __nvvm_f2h_rn
-+ {Intrinsic::nvvm_f2h_rn_ftz, 65533}, // __nvvm_f2h_rn_ftz
-+ {Intrinsic::nvvm_f2i_rm, 65551}, // __nvvm_f2i_rm
-+ {Intrinsic::nvvm_f2i_rm_ftz, 65565}, // __nvvm_f2i_rm_ftz
-+ {Intrinsic::nvvm_f2i_rn, 65583}, // __nvvm_f2i_rn
-+ {Intrinsic::nvvm_f2i_rn_ftz, 65597}, // __nvvm_f2i_rn_ftz
-+ {Intrinsic::nvvm_f2i_rp, 65615}, // __nvvm_f2i_rp
-+ {Intrinsic::nvvm_f2i_rp_ftz, 65629}, // __nvvm_f2i_rp_ftz
-+ {Intrinsic::nvvm_f2i_rz, 65647}, // __nvvm_f2i_rz
-+ {Intrinsic::nvvm_f2i_rz_ftz, 65661}, // __nvvm_f2i_rz_ftz
-+ {Intrinsic::nvvm_f2ll_rm, 65679}, // __nvvm_f2ll_rm
-+ {Intrinsic::nvvm_f2ll_rm_ftz, 65694}, // __nvvm_f2ll_rm_ftz
-+ {Intrinsic::nvvm_f2ll_rn, 65713}, // __nvvm_f2ll_rn
-+ {Intrinsic::nvvm_f2ll_rn_ftz, 65728}, // __nvvm_f2ll_rn_ftz
-+ {Intrinsic::nvvm_f2ll_rp, 65747}, // __nvvm_f2ll_rp
-+ {Intrinsic::nvvm_f2ll_rp_ftz, 65762}, // __nvvm_f2ll_rp_ftz
-+ {Intrinsic::nvvm_f2ll_rz, 65781}, // __nvvm_f2ll_rz
-+ {Intrinsic::nvvm_f2ll_rz_ftz, 65796}, // __nvvm_f2ll_rz_ftz
-+ {Intrinsic::nvvm_f2ui_rm, 65815}, // __nvvm_f2ui_rm
-+ {Intrinsic::nvvm_f2ui_rm_ftz, 65830}, // __nvvm_f2ui_rm_ftz
-+ {Intrinsic::nvvm_f2ui_rn, 65849}, // __nvvm_f2ui_rn
-+ {Intrinsic::nvvm_f2ui_rn_ftz, 65864}, // __nvvm_f2ui_rn_ftz
-+ {Intrinsic::nvvm_f2ui_rp, 65883}, // __nvvm_f2ui_rp
-+ {Intrinsic::nvvm_f2ui_rp_ftz, 65898}, // __nvvm_f2ui_rp_ftz
-+ {Intrinsic::nvvm_f2ui_rz, 65917}, // __nvvm_f2ui_rz
-+ {Intrinsic::nvvm_f2ui_rz_ftz, 65932}, // __nvvm_f2ui_rz_ftz
-+ {Intrinsic::nvvm_f2ull_rm, 65951}, // __nvvm_f2ull_rm
-+ {Intrinsic::nvvm_f2ull_rm_ftz, 65967}, // __nvvm_f2ull_rm_ftz
-+ {Intrinsic::nvvm_f2ull_rn, 65987}, // __nvvm_f2ull_rn
-+ {Intrinsic::nvvm_f2ull_rn_ftz, 66003}, // __nvvm_f2ull_rn_ftz
-+ {Intrinsic::nvvm_f2ull_rp, 66023}, // __nvvm_f2ull_rp
-+ {Intrinsic::nvvm_f2ull_rp_ftz, 66039}, // __nvvm_f2ull_rp_ftz
-+ {Intrinsic::nvvm_f2ull_rz, 66059}, // __nvvm_f2ull_rz
-+ {Intrinsic::nvvm_f2ull_rz_ftz, 66075}, // __nvvm_f2ull_rz_ftz
-+ {Intrinsic::nvvm_fabs_d, 66095}, // __nvvm_fabs_d
-+ {Intrinsic::nvvm_fabs_f, 66109}, // __nvvm_fabs_f
-+ {Intrinsic::nvvm_fabs_ftz_f, 66123}, // __nvvm_fabs_ftz_f
-+ {Intrinsic::nvvm_floor_d, 66141}, // __nvvm_floor_d
-+ {Intrinsic::nvvm_floor_f, 66156}, // __nvvm_floor_f
-+ {Intrinsic::nvvm_floor_ftz_f, 66171}, // __nvvm_floor_ftz_f
-+ {Intrinsic::nvvm_fma_rm_d, 66190}, // __nvvm_fma_rm_d
-+ {Intrinsic::nvvm_fma_rm_f, 66206}, // __nvvm_fma_rm_f
-+ {Intrinsic::nvvm_fma_rm_ftz_f, 66222}, // __nvvm_fma_rm_ftz_f
-+ {Intrinsic::nvvm_fma_rn_d, 66242}, // __nvvm_fma_rn_d
-+ {Intrinsic::nvvm_fma_rn_f, 66258}, // __nvvm_fma_rn_f
-+ {Intrinsic::nvvm_fma_rn_ftz_f, 66274}, // __nvvm_fma_rn_ftz_f
-+ {Intrinsic::nvvm_fma_rp_d, 66294}, // __nvvm_fma_rp_d
-+ {Intrinsic::nvvm_fma_rp_f, 66310}, // __nvvm_fma_rp_f
-+ {Intrinsic::nvvm_fma_rp_ftz_f, 66326}, // __nvvm_fma_rp_ftz_f
-+ {Intrinsic::nvvm_fma_rz_d, 66346}, // __nvvm_fma_rz_d
-+ {Intrinsic::nvvm_fma_rz_f, 66362}, // __nvvm_fma_rz_f
-+ {Intrinsic::nvvm_fma_rz_ftz_f, 66378}, // __nvvm_fma_rz_ftz_f
-+ {Intrinsic::nvvm_fmax_d, 66398}, // __nvvm_fmax_d
-+ {Intrinsic::nvvm_fmax_f, 66412}, // __nvvm_fmax_f
-+ {Intrinsic::nvvm_fmax_ftz_f, 66426}, // __nvvm_fmax_ftz_f
-+ {Intrinsic::nvvm_fmin_d, 66444}, // __nvvm_fmin_d
-+ {Intrinsic::nvvm_fmin_f, 66458}, // __nvvm_fmin_f
-+ {Intrinsic::nvvm_fmin_ftz_f, 66472}, // __nvvm_fmin_ftz_f
-+ {Intrinsic::nvvm_h2f, 66490}, // __nvvm_h2f
-+ {Intrinsic::nvvm_i2d_rm, 66501}, // __nvvm_i2d_rm
-+ {Intrinsic::nvvm_i2d_rn, 66515}, // __nvvm_i2d_rn
-+ {Intrinsic::nvvm_i2d_rp, 66529}, // __nvvm_i2d_rp
-+ {Intrinsic::nvvm_i2d_rz, 66543}, // __nvvm_i2d_rz
-+ {Intrinsic::nvvm_i2f_rm, 66557}, // __nvvm_i2f_rm
-+ {Intrinsic::nvvm_i2f_rn, 66571}, // __nvvm_i2f_rn
-+ {Intrinsic::nvvm_i2f_rp, 66585}, // __nvvm_i2f_rp
-+ {Intrinsic::nvvm_i2f_rz, 66599}, // __nvvm_i2f_rz
-+ {Intrinsic::nvvm_isspacep_const, 66613}, // __nvvm_isspacep_const
-+ {Intrinsic::nvvm_isspacep_global, 66635}, // __nvvm_isspacep_global
-+ {Intrinsic::nvvm_isspacep_local, 66658}, // __nvvm_isspacep_local
-+ {Intrinsic::nvvm_isspacep_shared, 66680}, // __nvvm_isspacep_shared
-+ {Intrinsic::nvvm_istypep_sampler, 66703}, // __nvvm_istypep_sampler
-+ {Intrinsic::nvvm_istypep_surface, 66726}, // __nvvm_istypep_surface
-+ {Intrinsic::nvvm_istypep_texture, 66749}, // __nvvm_istypep_texture
-+ {Intrinsic::nvvm_lg2_approx_d, 66772}, // __nvvm_lg2_approx_d
-+ {Intrinsic::nvvm_lg2_approx_f, 66792}, // __nvvm_lg2_approx_f
-+ {Intrinsic::nvvm_lg2_approx_ftz_f, 66812}, // __nvvm_lg2_approx_ftz_f
-+ {Intrinsic::nvvm_ll2d_rm, 66836}, // __nvvm_ll2d_rm
-+ {Intrinsic::nvvm_ll2d_rn, 66851}, // __nvvm_ll2d_rn
-+ {Intrinsic::nvvm_ll2d_rp, 66866}, // __nvvm_ll2d_rp
-+ {Intrinsic::nvvm_ll2d_rz, 66881}, // __nvvm_ll2d_rz
-+ {Intrinsic::nvvm_ll2f_rm, 66896}, // __nvvm_ll2f_rm
-+ {Intrinsic::nvvm_ll2f_rn, 66911}, // __nvvm_ll2f_rn
-+ {Intrinsic::nvvm_ll2f_rp, 66926}, // __nvvm_ll2f_rp
-+ {Intrinsic::nvvm_ll2f_rz, 66941}, // __nvvm_ll2f_rz
-+ {Intrinsic::nvvm_lohi_i2d, 66956}, // __nvvm_lohi_i2d
-+ {Intrinsic::nvvm_max_i, 66972}, // __nvvm_max_i
-+ {Intrinsic::nvvm_max_ll, 66985}, // __nvvm_max_ll
-+ {Intrinsic::nvvm_max_ui, 66999}, // __nvvm_max_ui
-+ {Intrinsic::nvvm_max_ull, 67013}, // __nvvm_max_ull
-+ {Intrinsic::nvvm_membar_cta, 67028}, // __nvvm_membar_cta
-+ {Intrinsic::nvvm_membar_gl, 67046}, // __nvvm_membar_gl
-+ {Intrinsic::nvvm_membar_sys, 67063}, // __nvvm_membar_sys
-+ {Intrinsic::nvvm_min_i, 67081}, // __nvvm_min_i
-+ {Intrinsic::nvvm_min_ll, 67094}, // __nvvm_min_ll
-+ {Intrinsic::nvvm_min_ui, 67108}, // __nvvm_min_ui
-+ {Intrinsic::nvvm_min_ull, 67122}, // __nvvm_min_ull
-+ {Intrinsic::nvvm_mul24_i, 67345}, // __nvvm_mul24_i
-+ {Intrinsic::nvvm_mul24_ui, 67360}, // __nvvm_mul24_ui
-+ {Intrinsic::nvvm_mul_rm_d, 67137}, // __nvvm_mul_rm_d
-+ {Intrinsic::nvvm_mul_rm_f, 67153}, // __nvvm_mul_rm_f
-+ {Intrinsic::nvvm_mul_rm_ftz_f, 67169}, // __nvvm_mul_rm_ftz_f
-+ {Intrinsic::nvvm_mul_rn_d, 67189}, // __nvvm_mul_rn_d
-+ {Intrinsic::nvvm_mul_rn_f, 67205}, // __nvvm_mul_rn_f
-+ {Intrinsic::nvvm_mul_rn_ftz_f, 67221}, // __nvvm_mul_rn_ftz_f
-+ {Intrinsic::nvvm_mul_rp_d, 67241}, // __nvvm_mul_rp_d
-+ {Intrinsic::nvvm_mul_rp_f, 67257}, // __nvvm_mul_rp_f
-+ {Intrinsic::nvvm_mul_rp_ftz_f, 67273}, // __nvvm_mul_rp_ftz_f
-+ {Intrinsic::nvvm_mul_rz_d, 67293}, // __nvvm_mul_rz_d
-+ {Intrinsic::nvvm_mul_rz_f, 67309}, // __nvvm_mul_rz_f
-+ {Intrinsic::nvvm_mul_rz_ftz_f, 67325}, // __nvvm_mul_rz_ftz_f
-+ {Intrinsic::nvvm_mulhi_i, 67376}, // __nvvm_mulhi_i
-+ {Intrinsic::nvvm_mulhi_ll, 67391}, // __nvvm_mulhi_ll
-+ {Intrinsic::nvvm_mulhi_ui, 67407}, // __nvvm_mulhi_ui
-+ {Intrinsic::nvvm_mulhi_ull, 67423}, // __nvvm_mulhi_ull
-+ {Intrinsic::nvvm_popc_i, 67440}, // __nvvm_popc_i
-+ {Intrinsic::nvvm_popc_ll, 67454}, // __nvvm_popc_ll
-+ {Intrinsic::nvvm_prmt, 67469}, // __nvvm_prmt
-+ {Intrinsic::nvvm_rcp_approx_ftz_d, 67481}, // __nvvm_rcp_approx_ftz_d
-+ {Intrinsic::nvvm_rcp_rm_d, 67505}, // __nvvm_rcp_rm_d
-+ {Intrinsic::nvvm_rcp_rm_f, 67521}, // __nvvm_rcp_rm_f
-+ {Intrinsic::nvvm_rcp_rm_ftz_f, 67537}, // __nvvm_rcp_rm_ftz_f
-+ {Intrinsic::nvvm_rcp_rn_d, 67557}, // __nvvm_rcp_rn_d
-+ {Intrinsic::nvvm_rcp_rn_f, 67573}, // __nvvm_rcp_rn_f
-+ {Intrinsic::nvvm_rcp_rn_ftz_f, 67589}, // __nvvm_rcp_rn_ftz_f
-+ {Intrinsic::nvvm_rcp_rp_d, 67609}, // __nvvm_rcp_rp_d
-+ {Intrinsic::nvvm_rcp_rp_f, 67625}, // __nvvm_rcp_rp_f
-+ {Intrinsic::nvvm_rcp_rp_ftz_f, 67641}, // __nvvm_rcp_rp_ftz_f
-+ {Intrinsic::nvvm_rcp_rz_d, 67661}, // __nvvm_rcp_rz_d
-+ {Intrinsic::nvvm_rcp_rz_f, 67677}, // __nvvm_rcp_rz_f
-+ {Intrinsic::nvvm_rcp_rz_ftz_f, 67693}, // __nvvm_rcp_rz_ftz_f
-+ {Intrinsic::nvvm_read_ptx_sreg_clock, 67713}, // __nvvm_read_ptx_sreg_clock
-+ {Intrinsic::nvvm_read_ptx_sreg_clock64, 67740}, // __nvvm_read_ptx_sreg_clock64
-+ {Intrinsic::nvvm_read_ptx_sreg_ctaid_w, 67769}, // __nvvm_read_ptx_sreg_ctaid_w
-+ {Intrinsic::nvvm_read_ptx_sreg_ctaid_x, 67798}, // __nvvm_read_ptx_sreg_ctaid_x
-+ {Intrinsic::nvvm_read_ptx_sreg_ctaid_y, 67827}, // __nvvm_read_ptx_sreg_ctaid_y
-+ {Intrinsic::nvvm_read_ptx_sreg_ctaid_z, 67856}, // __nvvm_read_ptx_sreg_ctaid_z
-+ {Intrinsic::nvvm_read_ptx_sreg_envreg0, 67885}, // __nvvm_read_ptx_sreg_envreg0
-+ {Intrinsic::nvvm_read_ptx_sreg_envreg1, 67914}, // __nvvm_read_ptx_sreg_envreg1
-+ {Intrinsic::nvvm_read_ptx_sreg_envreg10, 67943}, // __nvvm_read_ptx_sreg_envreg10
-+ {Intrinsic::nvvm_read_ptx_sreg_envreg11, 67973}, // __nvvm_read_ptx_sreg_envreg11
-+ {Intrinsic::nvvm_read_ptx_sreg_envreg12, 68003}, // __nvvm_read_ptx_sreg_envreg12
-+ {Intrinsic::nvvm_read_ptx_sreg_envreg13, 68033}, // __nvvm_read_ptx_sreg_envreg13
-+ {Intrinsic::nvvm_read_ptx_sreg_envreg14, 68063}, // __nvvm_read_ptx_sreg_envreg14
-+ {Intrinsic::nvvm_read_ptx_sreg_envreg15, 68093}, // __nvvm_read_ptx_sreg_envreg15
-+ {Intrinsic::nvvm_read_ptx_sreg_envreg16, 68123}, // __nvvm_read_ptx_sreg_envreg16
-+ {Intrinsic::nvvm_read_ptx_sreg_envreg17, 68153}, // __nvvm_read_ptx_sreg_envreg17
-+ {Intrinsic::nvvm_read_ptx_sreg_envreg18, 68183}, // __nvvm_read_ptx_sreg_envreg18
-+ {Intrinsic::nvvm_read_ptx_sreg_envreg19, 68213}, // __nvvm_read_ptx_sreg_envreg19
-+ {Intrinsic::nvvm_read_ptx_sreg_envreg2, 68243}, // __nvvm_read_ptx_sreg_envreg2
-+ {Intrinsic::nvvm_read_ptx_sreg_envreg20, 68272}, // __nvvm_read_ptx_sreg_envreg20
-+ {Intrinsic::nvvm_read_ptx_sreg_envreg21, 68302}, // __nvvm_read_ptx_sreg_envreg21
-+ {Intrinsic::nvvm_read_ptx_sreg_envreg22, 68332}, // __nvvm_read_ptx_sreg_envreg22
-+ {Intrinsic::nvvm_read_ptx_sreg_envreg23, 68362}, // __nvvm_read_ptx_sreg_envreg23
-+ {Intrinsic::nvvm_read_ptx_sreg_envreg24, 68392}, // __nvvm_read_ptx_sreg_envreg24
-+ {Intrinsic::nvvm_read_ptx_sreg_envreg25, 68422}, // __nvvm_read_ptx_sreg_envreg25
-+ {Intrinsic::nvvm_read_ptx_sreg_envreg26, 68452}, // __nvvm_read_ptx_sreg_envreg26
-+ {Intrinsic::nvvm_read_ptx_sreg_envreg27, 68482}, // __nvvm_read_ptx_sreg_envreg27
-+ {Intrinsic::nvvm_read_ptx_sreg_envreg28, 68512}, // __nvvm_read_ptx_sreg_envreg28
-+ {Intrinsic::nvvm_read_ptx_sreg_envreg29, 68542}, // __nvvm_read_ptx_sreg_envreg29
-+ {Intrinsic::nvvm_read_ptx_sreg_envreg3, 68572}, // __nvvm_read_ptx_sreg_envreg3
-+ {Intrinsic::nvvm_read_ptx_sreg_envreg30, 68601}, // __nvvm_read_ptx_sreg_envreg30
-+ {Intrinsic::nvvm_read_ptx_sreg_envreg31, 68631}, // __nvvm_read_ptx_sreg_envreg31
-+ {Intrinsic::nvvm_read_ptx_sreg_envreg4, 68661}, // __nvvm_read_ptx_sreg_envreg4
-+ {Intrinsic::nvvm_read_ptx_sreg_envreg5, 68690}, // __nvvm_read_ptx_sreg_envreg5
-+ {Intrinsic::nvvm_read_ptx_sreg_envreg6, 68719}, // __nvvm_read_ptx_sreg_envreg6
-+ {Intrinsic::nvvm_read_ptx_sreg_envreg7, 68748}, // __nvvm_read_ptx_sreg_envreg7
-+ {Intrinsic::nvvm_read_ptx_sreg_envreg8, 68777}, // __nvvm_read_ptx_sreg_envreg8
-+ {Intrinsic::nvvm_read_ptx_sreg_envreg9, 68806}, // __nvvm_read_ptx_sreg_envreg9
-+ {Intrinsic::nvvm_read_ptx_sreg_gridid, 68835}, // __nvvm_read_ptx_sreg_gridid
-+ {Intrinsic::nvvm_read_ptx_sreg_laneid, 68863}, // __nvvm_read_ptx_sreg_laneid
-+ {Intrinsic::nvvm_read_ptx_sreg_lanemask_eq, 68891}, // __nvvm_read_ptx_sreg_lanemask_eq
-+ {Intrinsic::nvvm_read_ptx_sreg_lanemask_ge, 68924}, // __nvvm_read_ptx_sreg_lanemask_ge
-+ {Intrinsic::nvvm_read_ptx_sreg_lanemask_gt, 68957}, // __nvvm_read_ptx_sreg_lanemask_gt
-+ {Intrinsic::nvvm_read_ptx_sreg_lanemask_le, 68990}, // __nvvm_read_ptx_sreg_lanemask_le
-+ {Intrinsic::nvvm_read_ptx_sreg_lanemask_lt, 69023}, // __nvvm_read_ptx_sreg_lanemask_lt
-+ {Intrinsic::nvvm_read_ptx_sreg_nctaid_w, 69056}, // __nvvm_read_ptx_sreg_nctaid_w
-+ {Intrinsic::nvvm_read_ptx_sreg_nctaid_x, 69086}, // __nvvm_read_ptx_sreg_nctaid_x
-+ {Intrinsic::nvvm_read_ptx_sreg_nctaid_y, 69116}, // __nvvm_read_ptx_sreg_nctaid_y
-+ {Intrinsic::nvvm_read_ptx_sreg_nctaid_z, 69146}, // __nvvm_read_ptx_sreg_nctaid_z
-+ {Intrinsic::nvvm_read_ptx_sreg_nsmid, 69176}, // __nvvm_read_ptx_sreg_nsmid
-+ {Intrinsic::nvvm_read_ptx_sreg_ntid_w, 69203}, // __nvvm_read_ptx_sreg_ntid_w
-+ {Intrinsic::nvvm_read_ptx_sreg_ntid_x, 69231}, // __nvvm_read_ptx_sreg_ntid_x
-+ {Intrinsic::nvvm_read_ptx_sreg_ntid_y, 69259}, // __nvvm_read_ptx_sreg_ntid_y
-+ {Intrinsic::nvvm_read_ptx_sreg_ntid_z, 69287}, // __nvvm_read_ptx_sreg_ntid_z
-+ {Intrinsic::nvvm_read_ptx_sreg_nwarpid, 69315}, // __nvvm_read_ptx_sreg_nwarpid
-+ {Intrinsic::nvvm_read_ptx_sreg_pm0, 69344}, // __nvvm_read_ptx_sreg_pm0
-+ {Intrinsic::nvvm_read_ptx_sreg_pm1, 69369}, // __nvvm_read_ptx_sreg_pm1
-+ {Intrinsic::nvvm_read_ptx_sreg_pm2, 69394}, // __nvvm_read_ptx_sreg_pm2
-+ {Intrinsic::nvvm_read_ptx_sreg_pm3, 69419}, // __nvvm_read_ptx_sreg_pm3
-+ {Intrinsic::nvvm_read_ptx_sreg_smid, 69444}, // __nvvm_read_ptx_sreg_smid
-+ {Intrinsic::nvvm_read_ptx_sreg_tid_w, 69470}, // __nvvm_read_ptx_sreg_tid_w
-+ {Intrinsic::nvvm_read_ptx_sreg_tid_x, 69497}, // __nvvm_read_ptx_sreg_tid_x
-+ {Intrinsic::nvvm_read_ptx_sreg_tid_y, 69524}, // __nvvm_read_ptx_sreg_tid_y
-+ {Intrinsic::nvvm_read_ptx_sreg_tid_z, 69551}, // __nvvm_read_ptx_sreg_tid_z
-+ {Intrinsic::nvvm_read_ptx_sreg_warpid, 69578}, // __nvvm_read_ptx_sreg_warpid
-+ {Intrinsic::nvvm_read_ptx_sreg_warpsize, 69606}, // __nvvm_read_ptx_sreg_warpsize
-+ {Intrinsic::nvvm_rotate_b32, 69636}, // __nvvm_rotate_b32
-+ {Intrinsic::nvvm_rotate_b64, 69654}, // __nvvm_rotate_b64
-+ {Intrinsic::nvvm_rotate_right_b64, 69672}, // __nvvm_rotate_right_b64
-+ {Intrinsic::nvvm_round_d, 69696}, // __nvvm_round_d
-+ {Intrinsic::nvvm_round_f, 69711}, // __nvvm_round_f
-+ {Intrinsic::nvvm_round_ftz_f, 69726}, // __nvvm_round_ftz_f
-+ {Intrinsic::nvvm_rsqrt_approx_d, 69745}, // __nvvm_rsqrt_approx_d
-+ {Intrinsic::nvvm_rsqrt_approx_f, 69767}, // __nvvm_rsqrt_approx_f
-+ {Intrinsic::nvvm_rsqrt_approx_ftz_f, 69789}, // __nvvm_rsqrt_approx_ftz_f
-+ {Intrinsic::nvvm_sad_i, 69815}, // __nvvm_sad_i
-+ {Intrinsic::nvvm_sad_ui, 69828}, // __nvvm_sad_ui
-+ {Intrinsic::nvvm_saturate_d, 69842}, // __nvvm_saturate_d
-+ {Intrinsic::nvvm_saturate_f, 69860}, // __nvvm_saturate_f
-+ {Intrinsic::nvvm_saturate_ftz_f, 69878}, // __nvvm_saturate_ftz_f
-+ {Intrinsic::nvvm_shfl_bfly_f32, 69900}, // __nvvm_shfl_bfly_f32
-+ {Intrinsic::nvvm_shfl_bfly_i32, 69921}, // __nvvm_shfl_bfly_i32
-+ {Intrinsic::nvvm_shfl_down_f32, 69942}, // __nvvm_shfl_down_f32
-+ {Intrinsic::nvvm_shfl_down_i32, 69963}, // __nvvm_shfl_down_i32
-+ {Intrinsic::nvvm_shfl_idx_f32, 69984}, // __nvvm_shfl_idx_f32
-+ {Intrinsic::nvvm_shfl_idx_i32, 70004}, // __nvvm_shfl_idx_i32
-+ {Intrinsic::nvvm_shfl_up_f32, 70024}, // __nvvm_shfl_up_f32
-+ {Intrinsic::nvvm_shfl_up_i32, 70043}, // __nvvm_shfl_up_i32
-+ {Intrinsic::nvvm_sin_approx_f, 70062}, // __nvvm_sin_approx_f
-+ {Intrinsic::nvvm_sin_approx_ftz_f, 70082}, // __nvvm_sin_approx_ftz_f
-+ {Intrinsic::nvvm_sqrt_approx_f, 70106}, // __nvvm_sqrt_approx_f
-+ {Intrinsic::nvvm_sqrt_approx_ftz_f, 70127}, // __nvvm_sqrt_approx_ftz_f
-+ {Intrinsic::nvvm_sqrt_f, 70152}, // __nvvm_sqrt_f
-+ {Intrinsic::nvvm_sqrt_rm_d, 70166}, // __nvvm_sqrt_rm_d
-+ {Intrinsic::nvvm_sqrt_rm_f, 70183}, // __nvvm_sqrt_rm_f
-+ {Intrinsic::nvvm_sqrt_rm_ftz_f, 70200}, // __nvvm_sqrt_rm_ftz_f
-+ {Intrinsic::nvvm_sqrt_rn_d, 70221}, // __nvvm_sqrt_rn_d
-+ {Intrinsic::nvvm_sqrt_rn_f, 70238}, // __nvvm_sqrt_rn_f
-+ {Intrinsic::nvvm_sqrt_rn_ftz_f, 70255}, // __nvvm_sqrt_rn_ftz_f
-+ {Intrinsic::nvvm_sqrt_rp_d, 70276}, // __nvvm_sqrt_rp_d
-+ {Intrinsic::nvvm_sqrt_rp_f, 70293}, // __nvvm_sqrt_rp_f
-+ {Intrinsic::nvvm_sqrt_rp_ftz_f, 70310}, // __nvvm_sqrt_rp_ftz_f
-+ {Intrinsic::nvvm_sqrt_rz_d, 70331}, // __nvvm_sqrt_rz_d
-+ {Intrinsic::nvvm_sqrt_rz_f, 70348}, // __nvvm_sqrt_rz_f
-+ {Intrinsic::nvvm_sqrt_rz_ftz_f, 70365}, // __nvvm_sqrt_rz_ftz_f
-+ {Intrinsic::nvvm_suq_array_size, 70386}, // __nvvm_suq_array_size
-+ {Intrinsic::nvvm_suq_channel_data_type, 70408}, // __nvvm_suq_channel_data_type
-+ {Intrinsic::nvvm_suq_channel_order, 70437}, // __nvvm_suq_channel_order
-+ {Intrinsic::nvvm_suq_depth, 70462}, // __nvvm_suq_depth
-+ {Intrinsic::nvvm_suq_height, 70479}, // __nvvm_suq_height
-+ {Intrinsic::nvvm_suq_width, 70497}, // __nvvm_suq_width
-+ {Intrinsic::nvvm_sust_b_1d_array_i16_clamp, 70514}, // __nvvm_sust_b_1d_array_i16_clamp
-+ {Intrinsic::nvvm_sust_b_1d_array_i16_trap, 70547}, // __nvvm_sust_b_1d_array_i16_trap
-+ {Intrinsic::nvvm_sust_b_1d_array_i16_zero, 70579}, // __nvvm_sust_b_1d_array_i16_zero
-+ {Intrinsic::nvvm_sust_b_1d_array_i32_clamp, 70611}, // __nvvm_sust_b_1d_array_i32_clamp
-+ {Intrinsic::nvvm_sust_b_1d_array_i32_trap, 70644}, // __nvvm_sust_b_1d_array_i32_trap
-+ {Intrinsic::nvvm_sust_b_1d_array_i32_zero, 70676}, // __nvvm_sust_b_1d_array_i32_zero
-+ {Intrinsic::nvvm_sust_b_1d_array_i64_clamp, 70708}, // __nvvm_sust_b_1d_array_i64_clamp
-+ {Intrinsic::nvvm_sust_b_1d_array_i64_trap, 70741}, // __nvvm_sust_b_1d_array_i64_trap
-+ {Intrinsic::nvvm_sust_b_1d_array_i64_zero, 70773}, // __nvvm_sust_b_1d_array_i64_zero
-+ {Intrinsic::nvvm_sust_b_1d_array_i8_clamp, 70805}, // __nvvm_sust_b_1d_array_i8_clamp
-+ {Intrinsic::nvvm_sust_b_1d_array_i8_trap, 70837}, // __nvvm_sust_b_1d_array_i8_trap
-+ {Intrinsic::nvvm_sust_b_1d_array_i8_zero, 70868}, // __nvvm_sust_b_1d_array_i8_zero
-+ {Intrinsic::nvvm_sust_b_1d_array_v2i16_clamp, 70899}, // __nvvm_sust_b_1d_array_v2i16_clamp
-+ {Intrinsic::nvvm_sust_b_1d_array_v2i16_trap, 70934}, // __nvvm_sust_b_1d_array_v2i16_trap
-+ {Intrinsic::nvvm_sust_b_1d_array_v2i16_zero, 70968}, // __nvvm_sust_b_1d_array_v2i16_zero
-+ {Intrinsic::nvvm_sust_b_1d_array_v2i32_clamp, 71002}, // __nvvm_sust_b_1d_array_v2i32_clamp
-+ {Intrinsic::nvvm_sust_b_1d_array_v2i32_trap, 71037}, // __nvvm_sust_b_1d_array_v2i32_trap
-+ {Intrinsic::nvvm_sust_b_1d_array_v2i32_zero, 71071}, // __nvvm_sust_b_1d_array_v2i32_zero
-+ {Intrinsic::nvvm_sust_b_1d_array_v2i64_clamp, 71105}, // __nvvm_sust_b_1d_array_v2i64_clamp
-+ {Intrinsic::nvvm_sust_b_1d_array_v2i64_trap, 71140}, // __nvvm_sust_b_1d_array_v2i64_trap
-+ {Intrinsic::nvvm_sust_b_1d_array_v2i64_zero, 71174}, // __nvvm_sust_b_1d_array_v2i64_zero
-+ {Intrinsic::nvvm_sust_b_1d_array_v2i8_clamp, 71208}, // __nvvm_sust_b_1d_array_v2i8_clamp
-+ {Intrinsic::nvvm_sust_b_1d_array_v2i8_trap, 71242}, // __nvvm_sust_b_1d_array_v2i8_trap
-+ {Intrinsic::nvvm_sust_b_1d_array_v2i8_zero, 71275}, // __nvvm_sust_b_1d_array_v2i8_zero
-+ {Intrinsic::nvvm_sust_b_1d_array_v4i16_clamp, 71308}, // __nvvm_sust_b_1d_array_v4i16_clamp
-+ {Intrinsic::nvvm_sust_b_1d_array_v4i16_trap, 71343}, // __nvvm_sust_b_1d_array_v4i16_trap
-+ {Intrinsic::nvvm_sust_b_1d_array_v4i16_zero, 71377}, // __nvvm_sust_b_1d_array_v4i16_zero
-+ {Intrinsic::nvvm_sust_b_1d_array_v4i32_clamp, 71411}, // __nvvm_sust_b_1d_array_v4i32_clamp
-+ {Intrinsic::nvvm_sust_b_1d_array_v4i32_trap, 71446}, // __nvvm_sust_b_1d_array_v4i32_trap
-+ {Intrinsic::nvvm_sust_b_1d_array_v4i32_zero, 71480}, // __nvvm_sust_b_1d_array_v4i32_zero
-+ {Intrinsic::nvvm_sust_b_1d_array_v4i8_clamp, 71514}, // __nvvm_sust_b_1d_array_v4i8_clamp
-+ {Intrinsic::nvvm_sust_b_1d_array_v4i8_trap, 71548}, // __nvvm_sust_b_1d_array_v4i8_trap
-+ {Intrinsic::nvvm_sust_b_1d_array_v4i8_zero, 71581}, // __nvvm_sust_b_1d_array_v4i8_zero
-+ {Intrinsic::nvvm_sust_b_1d_i16_clamp, 71614}, // __nvvm_sust_b_1d_i16_clamp
-+ {Intrinsic::nvvm_sust_b_1d_i16_trap, 71641}, // __nvvm_sust_b_1d_i16_trap
-+ {Intrinsic::nvvm_sust_b_1d_i16_zero, 71667}, // __nvvm_sust_b_1d_i16_zero
-+ {Intrinsic::nvvm_sust_b_1d_i32_clamp, 71693}, // __nvvm_sust_b_1d_i32_clamp
-+ {Intrinsic::nvvm_sust_b_1d_i32_trap, 71720}, // __nvvm_sust_b_1d_i32_trap
-+ {Intrinsic::nvvm_sust_b_1d_i32_zero, 71746}, // __nvvm_sust_b_1d_i32_zero
-+ {Intrinsic::nvvm_sust_b_1d_i64_clamp, 71772}, // __nvvm_sust_b_1d_i64_clamp
-+ {Intrinsic::nvvm_sust_b_1d_i64_trap, 71799}, // __nvvm_sust_b_1d_i64_trap
-+ {Intrinsic::nvvm_sust_b_1d_i64_zero, 71825}, // __nvvm_sust_b_1d_i64_zero
-+ {Intrinsic::nvvm_sust_b_1d_i8_clamp, 71851}, // __nvvm_sust_b_1d_i8_clamp
-+ {Intrinsic::nvvm_sust_b_1d_i8_trap, 71877}, // __nvvm_sust_b_1d_i8_trap
-+ {Intrinsic::nvvm_sust_b_1d_i8_zero, 71902}, // __nvvm_sust_b_1d_i8_zero
-+ {Intrinsic::nvvm_sust_b_1d_v2i16_clamp, 71927}, // __nvvm_sust_b_1d_v2i16_clamp
-+ {Intrinsic::nvvm_sust_b_1d_v2i16_trap, 71956}, // __nvvm_sust_b_1d_v2i16_trap
-+ {Intrinsic::nvvm_sust_b_1d_v2i16_zero, 71984}, // __nvvm_sust_b_1d_v2i16_zero
-+ {Intrinsic::nvvm_sust_b_1d_v2i32_clamp, 72012}, // __nvvm_sust_b_1d_v2i32_clamp
-+ {Intrinsic::nvvm_sust_b_1d_v2i32_trap, 72041}, // __nvvm_sust_b_1d_v2i32_trap
-+ {Intrinsic::nvvm_sust_b_1d_v2i32_zero, 72069}, // __nvvm_sust_b_1d_v2i32_zero
-+ {Intrinsic::nvvm_sust_b_1d_v2i64_clamp, 72097}, // __nvvm_sust_b_1d_v2i64_clamp
-+ {Intrinsic::nvvm_sust_b_1d_v2i64_trap, 72126}, // __nvvm_sust_b_1d_v2i64_trap
-+ {Intrinsic::nvvm_sust_b_1d_v2i64_zero, 72154}, // __nvvm_sust_b_1d_v2i64_zero
-+ {Intrinsic::nvvm_sust_b_1d_v2i8_clamp, 72182}, // __nvvm_sust_b_1d_v2i8_clamp
-+ {Intrinsic::nvvm_sust_b_1d_v2i8_trap, 72210}, // __nvvm_sust_b_1d_v2i8_trap
-+ {Intrinsic::nvvm_sust_b_1d_v2i8_zero, 72237}, // __nvvm_sust_b_1d_v2i8_zero
-+ {Intrinsic::nvvm_sust_b_1d_v4i16_clamp, 72264}, // __nvvm_sust_b_1d_v4i16_clamp
-+ {Intrinsic::nvvm_sust_b_1d_v4i16_trap, 72293}, // __nvvm_sust_b_1d_v4i16_trap
-+ {Intrinsic::nvvm_sust_b_1d_v4i16_zero, 72321}, // __nvvm_sust_b_1d_v4i16_zero
-+ {Intrinsic::nvvm_sust_b_1d_v4i32_clamp, 72349}, // __nvvm_sust_b_1d_v4i32_clamp
-+ {Intrinsic::nvvm_sust_b_1d_v4i32_trap, 72378}, // __nvvm_sust_b_1d_v4i32_trap
-+ {Intrinsic::nvvm_sust_b_1d_v4i32_zero, 72406}, // __nvvm_sust_b_1d_v4i32_zero
-+ {Intrinsic::nvvm_sust_b_1d_v4i8_clamp, 72434}, // __nvvm_sust_b_1d_v4i8_clamp
-+ {Intrinsic::nvvm_sust_b_1d_v4i8_trap, 72462}, // __nvvm_sust_b_1d_v4i8_trap
-+ {Intrinsic::nvvm_sust_b_1d_v4i8_zero, 72489}, // __nvvm_sust_b_1d_v4i8_zero
-+ {Intrinsic::nvvm_sust_b_2d_array_i16_clamp, 72516}, // __nvvm_sust_b_2d_array_i16_clamp
-+ {Intrinsic::nvvm_sust_b_2d_array_i16_trap, 72549}, // __nvvm_sust_b_2d_array_i16_trap
-+ {Intrinsic::nvvm_sust_b_2d_array_i16_zero, 72581}, // __nvvm_sust_b_2d_array_i16_zero
-+ {Intrinsic::nvvm_sust_b_2d_array_i32_clamp, 72613}, // __nvvm_sust_b_2d_array_i32_clamp
-+ {Intrinsic::nvvm_sust_b_2d_array_i32_trap, 72646}, // __nvvm_sust_b_2d_array_i32_trap
-+ {Intrinsic::nvvm_sust_b_2d_array_i32_zero, 72678}, // __nvvm_sust_b_2d_array_i32_zero
-+ {Intrinsic::nvvm_sust_b_2d_array_i64_clamp, 72710}, // __nvvm_sust_b_2d_array_i64_clamp
-+ {Intrinsic::nvvm_sust_b_2d_array_i64_trap, 72743}, // __nvvm_sust_b_2d_array_i64_trap
-+ {Intrinsic::nvvm_sust_b_2d_array_i64_zero, 72775}, // __nvvm_sust_b_2d_array_i64_zero
-+ {Intrinsic::nvvm_sust_b_2d_array_i8_clamp, 72807}, // __nvvm_sust_b_2d_array_i8_clamp
-+ {Intrinsic::nvvm_sust_b_2d_array_i8_trap, 72839}, // __nvvm_sust_b_2d_array_i8_trap
-+ {Intrinsic::nvvm_sust_b_2d_array_i8_zero, 72870}, // __nvvm_sust_b_2d_array_i8_zero
-+ {Intrinsic::nvvm_sust_b_2d_array_v2i16_clamp, 72901}, // __nvvm_sust_b_2d_array_v2i16_clamp
-+ {Intrinsic::nvvm_sust_b_2d_array_v2i16_trap, 72936}, // __nvvm_sust_b_2d_array_v2i16_trap
-+ {Intrinsic::nvvm_sust_b_2d_array_v2i16_zero, 72970}, // __nvvm_sust_b_2d_array_v2i16_zero
-+ {Intrinsic::nvvm_sust_b_2d_array_v2i32_clamp, 73004}, // __nvvm_sust_b_2d_array_v2i32_clamp
-+ {Intrinsic::nvvm_sust_b_2d_array_v2i32_trap, 73039}, // __nvvm_sust_b_2d_array_v2i32_trap
-+ {Intrinsic::nvvm_sust_b_2d_array_v2i32_zero, 73073}, // __nvvm_sust_b_2d_array_v2i32_zero
-+ {Intrinsic::nvvm_sust_b_2d_array_v2i64_clamp, 73107}, // __nvvm_sust_b_2d_array_v2i64_clamp
-+ {Intrinsic::nvvm_sust_b_2d_array_v2i64_trap, 73142}, // __nvvm_sust_b_2d_array_v2i64_trap
-+ {Intrinsic::nvvm_sust_b_2d_array_v2i64_zero, 73176}, // __nvvm_sust_b_2d_array_v2i64_zero
-+ {Intrinsic::nvvm_sust_b_2d_array_v2i8_clamp, 73210}, // __nvvm_sust_b_2d_array_v2i8_clamp
-+ {Intrinsic::nvvm_sust_b_2d_array_v2i8_trap, 73244}, // __nvvm_sust_b_2d_array_v2i8_trap
-+ {Intrinsic::nvvm_sust_b_2d_array_v2i8_zero, 73277}, // __nvvm_sust_b_2d_array_v2i8_zero
-+ {Intrinsic::nvvm_sust_b_2d_array_v4i16_clamp, 73310}, // __nvvm_sust_b_2d_array_v4i16_clamp
-+ {Intrinsic::nvvm_sust_b_2d_array_v4i16_trap, 73345}, // __nvvm_sust_b_2d_array_v4i16_trap
-+ {Intrinsic::nvvm_sust_b_2d_array_v4i16_zero, 73379}, // __nvvm_sust_b_2d_array_v4i16_zero
-+ {Intrinsic::nvvm_sust_b_2d_array_v4i32_clamp, 73413}, // __nvvm_sust_b_2d_array_v4i32_clamp
-+ {Intrinsic::nvvm_sust_b_2d_array_v4i32_trap, 73448}, // __nvvm_sust_b_2d_array_v4i32_trap
-+ {Intrinsic::nvvm_sust_b_2d_array_v4i32_zero, 73482}, // __nvvm_sust_b_2d_array_v4i32_zero
-+ {Intrinsic::nvvm_sust_b_2d_array_v4i8_clamp, 73516}, // __nvvm_sust_b_2d_array_v4i8_clamp
-+ {Intrinsic::nvvm_sust_b_2d_array_v4i8_trap, 73550}, // __nvvm_sust_b_2d_array_v4i8_trap
-+ {Intrinsic::nvvm_sust_b_2d_array_v4i8_zero, 73583}, // __nvvm_sust_b_2d_array_v4i8_zero
-+ {Intrinsic::nvvm_sust_b_2d_i16_clamp, 73616}, // __nvvm_sust_b_2d_i16_clamp
-+ {Intrinsic::nvvm_sust_b_2d_i16_trap, 73643}, // __nvvm_sust_b_2d_i16_trap
-+ {Intrinsic::nvvm_sust_b_2d_i16_zero, 73669}, // __nvvm_sust_b_2d_i16_zero
-+ {Intrinsic::nvvm_sust_b_2d_i32_clamp, 73695}, // __nvvm_sust_b_2d_i32_clamp
-+ {Intrinsic::nvvm_sust_b_2d_i32_trap, 73722}, // __nvvm_sust_b_2d_i32_trap
-+ {Intrinsic::nvvm_sust_b_2d_i32_zero, 73748}, // __nvvm_sust_b_2d_i32_zero
-+ {Intrinsic::nvvm_sust_b_2d_i64_clamp, 73774}, // __nvvm_sust_b_2d_i64_clamp
-+ {Intrinsic::nvvm_sust_b_2d_i64_trap, 73801}, // __nvvm_sust_b_2d_i64_trap
-+ {Intrinsic::nvvm_sust_b_2d_i64_zero, 73827}, // __nvvm_sust_b_2d_i64_zero
-+ {Intrinsic::nvvm_sust_b_2d_i8_clamp, 73853}, // __nvvm_sust_b_2d_i8_clamp
-+ {Intrinsic::nvvm_sust_b_2d_i8_trap, 73879}, // __nvvm_sust_b_2d_i8_trap
-+ {Intrinsic::nvvm_sust_b_2d_i8_zero, 73904}, // __nvvm_sust_b_2d_i8_zero
-+ {Intrinsic::nvvm_sust_b_2d_v2i16_clamp, 73929}, // __nvvm_sust_b_2d_v2i16_clamp
-+ {Intrinsic::nvvm_sust_b_2d_v2i16_trap, 73958}, // __nvvm_sust_b_2d_v2i16_trap
-+ {Intrinsic::nvvm_sust_b_2d_v2i16_zero, 73986}, // __nvvm_sust_b_2d_v2i16_zero
-+ {Intrinsic::nvvm_sust_b_2d_v2i32_clamp, 74014}, // __nvvm_sust_b_2d_v2i32_clamp
-+ {Intrinsic::nvvm_sust_b_2d_v2i32_trap, 74043}, // __nvvm_sust_b_2d_v2i32_trap
-+ {Intrinsic::nvvm_sust_b_2d_v2i32_zero, 74071}, // __nvvm_sust_b_2d_v2i32_zero
-+ {Intrinsic::nvvm_sust_b_2d_v2i64_clamp, 74099}, // __nvvm_sust_b_2d_v2i64_clamp
-+ {Intrinsic::nvvm_sust_b_2d_v2i64_trap, 74128}, // __nvvm_sust_b_2d_v2i64_trap
-+ {Intrinsic::nvvm_sust_b_2d_v2i64_zero, 74156}, // __nvvm_sust_b_2d_v2i64_zero
-+ {Intrinsic::nvvm_sust_b_2d_v2i8_clamp, 74184}, // __nvvm_sust_b_2d_v2i8_clamp
-+ {Intrinsic::nvvm_sust_b_2d_v2i8_trap, 74212}, // __nvvm_sust_b_2d_v2i8_trap
-+ {Intrinsic::nvvm_sust_b_2d_v2i8_zero, 74239}, // __nvvm_sust_b_2d_v2i8_zero
-+ {Intrinsic::nvvm_sust_b_2d_v4i16_clamp, 74266}, // __nvvm_sust_b_2d_v4i16_clamp
-+ {Intrinsic::nvvm_sust_b_2d_v4i16_trap, 74295}, // __nvvm_sust_b_2d_v4i16_trap
-+ {Intrinsic::nvvm_sust_b_2d_v4i16_zero, 74323}, // __nvvm_sust_b_2d_v4i16_zero
-+ {Intrinsic::nvvm_sust_b_2d_v4i32_clamp, 74351}, // __nvvm_sust_b_2d_v4i32_clamp
-+ {Intrinsic::nvvm_sust_b_2d_v4i32_trap, 74380}, // __nvvm_sust_b_2d_v4i32_trap
-+ {Intrinsic::nvvm_sust_b_2d_v4i32_zero, 74408}, // __nvvm_sust_b_2d_v4i32_zero
-+ {Intrinsic::nvvm_sust_b_2d_v4i8_clamp, 74436}, // __nvvm_sust_b_2d_v4i8_clamp
-+ {Intrinsic::nvvm_sust_b_2d_v4i8_trap, 74464}, // __nvvm_sust_b_2d_v4i8_trap
-+ {Intrinsic::nvvm_sust_b_2d_v4i8_zero, 74491}, // __nvvm_sust_b_2d_v4i8_zero
-+ {Intrinsic::nvvm_sust_b_3d_i16_clamp, 74518}, // __nvvm_sust_b_3d_i16_clamp
-+ {Intrinsic::nvvm_sust_b_3d_i16_trap, 74545}, // __nvvm_sust_b_3d_i16_trap
-+ {Intrinsic::nvvm_sust_b_3d_i16_zero, 74571}, // __nvvm_sust_b_3d_i16_zero
-+ {Intrinsic::nvvm_sust_b_3d_i32_clamp, 74597}, // __nvvm_sust_b_3d_i32_clamp
-+ {Intrinsic::nvvm_sust_b_3d_i32_trap, 74624}, // __nvvm_sust_b_3d_i32_trap
-+ {Intrinsic::nvvm_sust_b_3d_i32_zero, 74650}, // __nvvm_sust_b_3d_i32_zero
-+ {Intrinsic::nvvm_sust_b_3d_i64_clamp, 74676}, // __nvvm_sust_b_3d_i64_clamp
-+ {Intrinsic::nvvm_sust_b_3d_i64_trap, 74703}, // __nvvm_sust_b_3d_i64_trap
-+ {Intrinsic::nvvm_sust_b_3d_i64_zero, 74729}, // __nvvm_sust_b_3d_i64_zero
-+ {Intrinsic::nvvm_sust_b_3d_i8_clamp, 74755}, // __nvvm_sust_b_3d_i8_clamp
-+ {Intrinsic::nvvm_sust_b_3d_i8_trap, 74781}, // __nvvm_sust_b_3d_i8_trap
-+ {Intrinsic::nvvm_sust_b_3d_i8_zero, 74806}, // __nvvm_sust_b_3d_i8_zero
-+ {Intrinsic::nvvm_sust_b_3d_v2i16_clamp, 74831}, // __nvvm_sust_b_3d_v2i16_clamp
-+ {Intrinsic::nvvm_sust_b_3d_v2i16_trap, 74860}, // __nvvm_sust_b_3d_v2i16_trap
-+ {Intrinsic::nvvm_sust_b_3d_v2i16_zero, 74888}, // __nvvm_sust_b_3d_v2i16_zero
-+ {Intrinsic::nvvm_sust_b_3d_v2i32_clamp, 74916}, // __nvvm_sust_b_3d_v2i32_clamp
-+ {Intrinsic::nvvm_sust_b_3d_v2i32_trap, 74945}, // __nvvm_sust_b_3d_v2i32_trap
-+ {Intrinsic::nvvm_sust_b_3d_v2i32_zero, 74973}, // __nvvm_sust_b_3d_v2i32_zero
-+ {Intrinsic::nvvm_sust_b_3d_v2i64_clamp, 75001}, // __nvvm_sust_b_3d_v2i64_clamp
-+ {Intrinsic::nvvm_sust_b_3d_v2i64_trap, 75030}, // __nvvm_sust_b_3d_v2i64_trap
-+ {Intrinsic::nvvm_sust_b_3d_v2i64_zero, 75058}, // __nvvm_sust_b_3d_v2i64_zero
-+ {Intrinsic::nvvm_sust_b_3d_v2i8_clamp, 75086}, // __nvvm_sust_b_3d_v2i8_clamp
-+ {Intrinsic::nvvm_sust_b_3d_v2i8_trap, 75114}, // __nvvm_sust_b_3d_v2i8_trap
-+ {Intrinsic::nvvm_sust_b_3d_v2i8_zero, 75141}, // __nvvm_sust_b_3d_v2i8_zero
-+ {Intrinsic::nvvm_sust_b_3d_v4i16_clamp, 75168}, // __nvvm_sust_b_3d_v4i16_clamp
-+ {Intrinsic::nvvm_sust_b_3d_v4i16_trap, 75197}, // __nvvm_sust_b_3d_v4i16_trap
-+ {Intrinsic::nvvm_sust_b_3d_v4i16_zero, 75225}, // __nvvm_sust_b_3d_v4i16_zero
-+ {Intrinsic::nvvm_sust_b_3d_v4i32_clamp, 75253}, // __nvvm_sust_b_3d_v4i32_clamp
-+ {Intrinsic::nvvm_sust_b_3d_v4i32_trap, 75282}, // __nvvm_sust_b_3d_v4i32_trap
-+ {Intrinsic::nvvm_sust_b_3d_v4i32_zero, 75310}, // __nvvm_sust_b_3d_v4i32_zero
-+ {Intrinsic::nvvm_sust_b_3d_v4i8_clamp, 75338}, // __nvvm_sust_b_3d_v4i8_clamp
-+ {Intrinsic::nvvm_sust_b_3d_v4i8_trap, 75366}, // __nvvm_sust_b_3d_v4i8_trap
-+ {Intrinsic::nvvm_sust_b_3d_v4i8_zero, 75393}, // __nvvm_sust_b_3d_v4i8_zero
-+ {Intrinsic::nvvm_sust_p_1d_array_i16_trap, 75420}, // __nvvm_sust_p_1d_array_i16_trap
-+ {Intrinsic::nvvm_sust_p_1d_array_i32_trap, 75452}, // __nvvm_sust_p_1d_array_i32_trap
-+ {Intrinsic::nvvm_sust_p_1d_array_i8_trap, 75484}, // __nvvm_sust_p_1d_array_i8_trap
-+ {Intrinsic::nvvm_sust_p_1d_array_v2i16_trap, 75515}, // __nvvm_sust_p_1d_array_v2i16_trap
-+ {Intrinsic::nvvm_sust_p_1d_array_v2i32_trap, 75549}, // __nvvm_sust_p_1d_array_v2i32_trap
-+ {Intrinsic::nvvm_sust_p_1d_array_v2i8_trap, 75583}, // __nvvm_sust_p_1d_array_v2i8_trap
-+ {Intrinsic::nvvm_sust_p_1d_array_v4i16_trap, 75616}, // __nvvm_sust_p_1d_array_v4i16_trap
-+ {Intrinsic::nvvm_sust_p_1d_array_v4i32_trap, 75650}, // __nvvm_sust_p_1d_array_v4i32_trap
-+ {Intrinsic::nvvm_sust_p_1d_array_v4i8_trap, 75684}, // __nvvm_sust_p_1d_array_v4i8_trap
-+ {Intrinsic::nvvm_sust_p_1d_i16_trap, 75717}, // __nvvm_sust_p_1d_i16_trap
-+ {Intrinsic::nvvm_sust_p_1d_i32_trap, 75743}, // __nvvm_sust_p_1d_i32_trap
-+ {Intrinsic::nvvm_sust_p_1d_i8_trap, 75769}, // __nvvm_sust_p_1d_i8_trap
-+ {Intrinsic::nvvm_sust_p_1d_v2i16_trap, 75794}, // __nvvm_sust_p_1d_v2i16_trap
-+ {Intrinsic::nvvm_sust_p_1d_v2i32_trap, 75822}, // __nvvm_sust_p_1d_v2i32_trap
-+ {Intrinsic::nvvm_sust_p_1d_v2i8_trap, 75850}, // __nvvm_sust_p_1d_v2i8_trap
-+ {Intrinsic::nvvm_sust_p_1d_v4i16_trap, 75877}, // __nvvm_sust_p_1d_v4i16_trap
-+ {Intrinsic::nvvm_sust_p_1d_v4i32_trap, 75905}, // __nvvm_sust_p_1d_v4i32_trap
-+ {Intrinsic::nvvm_sust_p_1d_v4i8_trap, 75933}, // __nvvm_sust_p_1d_v4i8_trap
-+ {Intrinsic::nvvm_sust_p_2d_array_i16_trap, 75960}, // __nvvm_sust_p_2d_array_i16_trap
-+ {Intrinsic::nvvm_sust_p_2d_array_i32_trap, 75992}, // __nvvm_sust_p_2d_array_i32_trap
-+ {Intrinsic::nvvm_sust_p_2d_array_i8_trap, 76024}, // __nvvm_sust_p_2d_array_i8_trap
-+ {Intrinsic::nvvm_sust_p_2d_array_v2i16_trap, 76055}, // __nvvm_sust_p_2d_array_v2i16_trap
-+ {Intrinsic::nvvm_sust_p_2d_array_v2i32_trap, 76089}, // __nvvm_sust_p_2d_array_v2i32_trap
-+ {Intrinsic::nvvm_sust_p_2d_array_v2i8_trap, 76123}, // __nvvm_sust_p_2d_array_v2i8_trap
-+ {Intrinsic::nvvm_sust_p_2d_array_v4i16_trap, 76156}, // __nvvm_sust_p_2d_array_v4i16_trap
-+ {Intrinsic::nvvm_sust_p_2d_array_v4i32_trap, 76190}, // __nvvm_sust_p_2d_array_v4i32_trap
-+ {Intrinsic::nvvm_sust_p_2d_array_v4i8_trap, 76224}, // __nvvm_sust_p_2d_array_v4i8_trap
-+ {Intrinsic::nvvm_sust_p_2d_i16_trap, 76257}, // __nvvm_sust_p_2d_i16_trap
-+ {Intrinsic::nvvm_sust_p_2d_i32_trap, 76283}, // __nvvm_sust_p_2d_i32_trap
-+ {Intrinsic::nvvm_sust_p_2d_i8_trap, 76309}, // __nvvm_sust_p_2d_i8_trap
-+ {Intrinsic::nvvm_sust_p_2d_v2i16_trap, 76334}, // __nvvm_sust_p_2d_v2i16_trap
-+ {Intrinsic::nvvm_sust_p_2d_v2i32_trap, 76362}, // __nvvm_sust_p_2d_v2i32_trap
-+ {Intrinsic::nvvm_sust_p_2d_v2i8_trap, 76390}, // __nvvm_sust_p_2d_v2i8_trap
-+ {Intrinsic::nvvm_sust_p_2d_v4i16_trap, 76417}, // __nvvm_sust_p_2d_v4i16_trap
-+ {Intrinsic::nvvm_sust_p_2d_v4i32_trap, 76445}, // __nvvm_sust_p_2d_v4i32_trap
-+ {Intrinsic::nvvm_sust_p_2d_v4i8_trap, 76473}, // __nvvm_sust_p_2d_v4i8_trap
-+ {Intrinsic::nvvm_sust_p_3d_i16_trap, 76500}, // __nvvm_sust_p_3d_i16_trap
-+ {Intrinsic::nvvm_sust_p_3d_i32_trap, 76526}, // __nvvm_sust_p_3d_i32_trap
-+ {Intrinsic::nvvm_sust_p_3d_i8_trap, 76552}, // __nvvm_sust_p_3d_i8_trap
-+ {Intrinsic::nvvm_sust_p_3d_v2i16_trap, 76577}, // __nvvm_sust_p_3d_v2i16_trap
-+ {Intrinsic::nvvm_sust_p_3d_v2i32_trap, 76605}, // __nvvm_sust_p_3d_v2i32_trap
-+ {Intrinsic::nvvm_sust_p_3d_v2i8_trap, 76633}, // __nvvm_sust_p_3d_v2i8_trap
-+ {Intrinsic::nvvm_sust_p_3d_v4i16_trap, 76660}, // __nvvm_sust_p_3d_v4i16_trap
-+ {Intrinsic::nvvm_sust_p_3d_v4i32_trap, 76688}, // __nvvm_sust_p_3d_v4i32_trap
-+ {Intrinsic::nvvm_sust_p_3d_v4i8_trap, 76716}, // __nvvm_sust_p_3d_v4i8_trap
-+ {Intrinsic::nvvm_swap_lo_hi_b64, 76743}, // __nvvm_swap_lo_hi_b64
-+ {Intrinsic::nvvm_trunc_d, 76765}, // __nvvm_trunc_d
-+ {Intrinsic::nvvm_trunc_f, 76780}, // __nvvm_trunc_f
-+ {Intrinsic::nvvm_trunc_ftz_f, 76795}, // __nvvm_trunc_ftz_f
-+ {Intrinsic::nvvm_txq_array_size, 76814}, // __nvvm_txq_array_size
-+ {Intrinsic::nvvm_txq_channel_data_type, 76836}, // __nvvm_txq_channel_data_type
-+ {Intrinsic::nvvm_txq_channel_order, 76865}, // __nvvm_txq_channel_order
-+ {Intrinsic::nvvm_txq_depth, 76890}, // __nvvm_txq_depth
-+ {Intrinsic::nvvm_txq_height, 76907}, // __nvvm_txq_height
-+ {Intrinsic::nvvm_txq_num_mipmap_levels, 76925}, // __nvvm_txq_num_mipmap_levels
-+ {Intrinsic::nvvm_txq_num_samples, 76954}, // __nvvm_txq_num_samples
-+ {Intrinsic::nvvm_txq_width, 76977}, // __nvvm_txq_width
-+ {Intrinsic::nvvm_ui2d_rm, 76994}, // __nvvm_ui2d_rm
-+ {Intrinsic::nvvm_ui2d_rn, 77009}, // __nvvm_ui2d_rn
-+ {Intrinsic::nvvm_ui2d_rp, 77024}, // __nvvm_ui2d_rp
-+ {Intrinsic::nvvm_ui2d_rz, 77039}, // __nvvm_ui2d_rz
-+ {Intrinsic::nvvm_ui2f_rm, 77054}, // __nvvm_ui2f_rm
-+ {Intrinsic::nvvm_ui2f_rn, 77069}, // __nvvm_ui2f_rn
-+ {Intrinsic::nvvm_ui2f_rp, 77084}, // __nvvm_ui2f_rp
-+ {Intrinsic::nvvm_ui2f_rz, 77099}, // __nvvm_ui2f_rz
-+ {Intrinsic::nvvm_ull2d_rm, 77114}, // __nvvm_ull2d_rm
-+ {Intrinsic::nvvm_ull2d_rn, 77130}, // __nvvm_ull2d_rn
-+ {Intrinsic::nvvm_ull2d_rp, 77146}, // __nvvm_ull2d_rp
-+ {Intrinsic::nvvm_ull2d_rz, 77162}, // __nvvm_ull2d_rz
-+ {Intrinsic::nvvm_ull2f_rm, 77178}, // __nvvm_ull2f_rm
-+ {Intrinsic::nvvm_ull2f_rn, 77194}, // __nvvm_ull2f_rn
-+ {Intrinsic::nvvm_ull2f_rp, 77210}, // __nvvm_ull2f_rp
-+ {Intrinsic::nvvm_ull2f_rz, 77226}, // __nvvm_ull2f_rz
-+ {Intrinsic::nvvm_barrier0, 64522}, // __syncthreads
-+ };
-+ auto I = std::lower_bound(std::begin(nvvmNames),
-+ std::end(nvvmNames),
-+ BuiltinNameStr);
-+ if (I != std::end(nvvmNames) &&
-+ I->getName() == BuiltinNameStr)
-+ return I->IntrinID;
-+ }
-+ if (TargetPrefix == "ppc") {
-+ static const BuiltinEntry ppcNames[] = {
-+ {Intrinsic::ppc_altivec_crypto_vcipher, 77242}, // __builtin_altivec_crypto_vcipher
-+ {Intrinsic::ppc_altivec_crypto_vcipherlast, 77275}, // __builtin_altivec_crypto_vcipherlast
-+ {Intrinsic::ppc_altivec_crypto_vncipher, 77312}, // __builtin_altivec_crypto_vncipher
-+ {Intrinsic::ppc_altivec_crypto_vncipherlast, 77346}, // __builtin_altivec_crypto_vncipherlast
-+ {Intrinsic::ppc_altivec_crypto_vpermxor, 77384}, // __builtin_altivec_crypto_vpermxor
-+ {Intrinsic::ppc_altivec_crypto_vpmsumb, 77418}, // __builtin_altivec_crypto_vpmsumb
-+ {Intrinsic::ppc_altivec_crypto_vpmsumd, 77451}, // __builtin_altivec_crypto_vpmsumd
-+ {Intrinsic::ppc_altivec_crypto_vpmsumh, 77484}, // __builtin_altivec_crypto_vpmsumh
-+ {Intrinsic::ppc_altivec_crypto_vpmsumw, 77517}, // __builtin_altivec_crypto_vpmsumw
-+ {Intrinsic::ppc_altivec_crypto_vsbox, 77550}, // __builtin_altivec_crypto_vsbox
-+ {Intrinsic::ppc_altivec_crypto_vshasigmad, 77581}, // __builtin_altivec_crypto_vshasigmad
-+ {Intrinsic::ppc_altivec_crypto_vshasigmaw, 77617}, // __builtin_altivec_crypto_vshasigmaw
-+ {Intrinsic::ppc_altivec_dss, 77653}, // __builtin_altivec_dss
-+ {Intrinsic::ppc_altivec_dssall, 77675}, // __builtin_altivec_dssall
-+ {Intrinsic::ppc_altivec_dst, 77700}, // __builtin_altivec_dst
-+ {Intrinsic::ppc_altivec_dstst, 77722}, // __builtin_altivec_dstst
-+ {Intrinsic::ppc_altivec_dststt, 77746}, // __builtin_altivec_dststt
-+ {Intrinsic::ppc_altivec_dstt, 77771}, // __builtin_altivec_dstt
-+ {Intrinsic::ppc_altivec_mfvscr, 77794}, // __builtin_altivec_mfvscr
-+ {Intrinsic::ppc_altivec_mtvscr, 77819}, // __builtin_altivec_mtvscr
-+ {Intrinsic::ppc_altivec_vabsdub, 77844}, // __builtin_altivec_vabsdub
-+ {Intrinsic::ppc_altivec_vabsduh, 77870}, // __builtin_altivec_vabsduh
-+ {Intrinsic::ppc_altivec_vabsduw, 77896}, // __builtin_altivec_vabsduw
-+ {Intrinsic::ppc_altivec_vaddcuq, 77922}, // __builtin_altivec_vaddcuq
-+ {Intrinsic::ppc_altivec_vaddcuw, 77948}, // __builtin_altivec_vaddcuw
-+ {Intrinsic::ppc_altivec_vaddecuq, 77974}, // __builtin_altivec_vaddecuq
-+ {Intrinsic::ppc_altivec_vaddeuqm, 78001}, // __builtin_altivec_vaddeuqm
-+ {Intrinsic::ppc_altivec_vaddsbs, 78028}, // __builtin_altivec_vaddsbs
-+ {Intrinsic::ppc_altivec_vaddshs, 78054}, // __builtin_altivec_vaddshs
-+ {Intrinsic::ppc_altivec_vaddsws, 78080}, // __builtin_altivec_vaddsws
-+ {Intrinsic::ppc_altivec_vaddubs, 78106}, // __builtin_altivec_vaddubs
-+ {Intrinsic::ppc_altivec_vadduhs, 78132}, // __builtin_altivec_vadduhs
-+ {Intrinsic::ppc_altivec_vadduws, 78158}, // __builtin_altivec_vadduws
-+ {Intrinsic::ppc_altivec_vavgsb, 78184}, // __builtin_altivec_vavgsb
-+ {Intrinsic::ppc_altivec_vavgsh, 78209}, // __builtin_altivec_vavgsh
-+ {Intrinsic::ppc_altivec_vavgsw, 78234}, // __builtin_altivec_vavgsw
-+ {Intrinsic::ppc_altivec_vavgub, 78259}, // __builtin_altivec_vavgub
-+ {Intrinsic::ppc_altivec_vavguh, 78284}, // __builtin_altivec_vavguh
-+ {Intrinsic::ppc_altivec_vavguw, 78309}, // __builtin_altivec_vavguw
-+ {Intrinsic::ppc_altivec_vbpermq, 78334}, // __builtin_altivec_vbpermq
-+ {Intrinsic::ppc_altivec_vcfsx, 78360}, // __builtin_altivec_vcfsx
-+ {Intrinsic::ppc_altivec_vcfux, 78384}, // __builtin_altivec_vcfux
-+ {Intrinsic::ppc_altivec_vclzlsbb, 78408}, // __builtin_altivec_vclzlsbb
-+ {Intrinsic::ppc_altivec_vcmpbfp, 78435}, // __builtin_altivec_vcmpbfp
-+ {Intrinsic::ppc_altivec_vcmpbfp_p, 78461}, // __builtin_altivec_vcmpbfp_p
-+ {Intrinsic::ppc_altivec_vcmpeqfp, 78489}, // __builtin_altivec_vcmpeqfp
-+ {Intrinsic::ppc_altivec_vcmpeqfp_p, 78516}, // __builtin_altivec_vcmpeqfp_p
-+ {Intrinsic::ppc_altivec_vcmpequb, 78545}, // __builtin_altivec_vcmpequb
-+ {Intrinsic::ppc_altivec_vcmpequb_p, 78572}, // __builtin_altivec_vcmpequb_p
-+ {Intrinsic::ppc_altivec_vcmpequd, 78601}, // __builtin_altivec_vcmpequd
-+ {Intrinsic::ppc_altivec_vcmpequd_p, 78628}, // __builtin_altivec_vcmpequd_p
-+ {Intrinsic::ppc_altivec_vcmpequh, 78657}, // __builtin_altivec_vcmpequh
-+ {Intrinsic::ppc_altivec_vcmpequh_p, 78684}, // __builtin_altivec_vcmpequh_p
-+ {Intrinsic::ppc_altivec_vcmpequw, 78713}, // __builtin_altivec_vcmpequw
-+ {Intrinsic::ppc_altivec_vcmpequw_p, 78740}, // __builtin_altivec_vcmpequw_p
-+ {Intrinsic::ppc_altivec_vcmpgefp, 78769}, // __builtin_altivec_vcmpgefp
-+ {Intrinsic::ppc_altivec_vcmpgefp_p, 78796}, // __builtin_altivec_vcmpgefp_p
-+ {Intrinsic::ppc_altivec_vcmpgtfp, 78825}, // __builtin_altivec_vcmpgtfp
-+ {Intrinsic::ppc_altivec_vcmpgtfp_p, 78852}, // __builtin_altivec_vcmpgtfp_p
-+ {Intrinsic::ppc_altivec_vcmpgtsb, 78881}, // __builtin_altivec_vcmpgtsb
-+ {Intrinsic::ppc_altivec_vcmpgtsb_p, 78908}, // __builtin_altivec_vcmpgtsb_p
-+ {Intrinsic::ppc_altivec_vcmpgtsd, 78937}, // __builtin_altivec_vcmpgtsd
-+ {Intrinsic::ppc_altivec_vcmpgtsd_p, 78964}, // __builtin_altivec_vcmpgtsd_p
-+ {Intrinsic::ppc_altivec_vcmpgtsh, 78993}, // __builtin_altivec_vcmpgtsh
-+ {Intrinsic::ppc_altivec_vcmpgtsh_p, 79020}, // __builtin_altivec_vcmpgtsh_p
-+ {Intrinsic::ppc_altivec_vcmpgtsw, 79049}, // __builtin_altivec_vcmpgtsw
-+ {Intrinsic::ppc_altivec_vcmpgtsw_p, 79076}, // __builtin_altivec_vcmpgtsw_p
-+ {Intrinsic::ppc_altivec_vcmpgtub, 79105}, // __builtin_altivec_vcmpgtub
-+ {Intrinsic::ppc_altivec_vcmpgtub_p, 79132}, // __builtin_altivec_vcmpgtub_p
-+ {Intrinsic::ppc_altivec_vcmpgtud, 79161}, // __builtin_altivec_vcmpgtud
-+ {Intrinsic::ppc_altivec_vcmpgtud_p, 79188}, // __builtin_altivec_vcmpgtud_p
-+ {Intrinsic::ppc_altivec_vcmpgtuh, 79217}, // __builtin_altivec_vcmpgtuh
-+ {Intrinsic::ppc_altivec_vcmpgtuh_p, 79244}, // __builtin_altivec_vcmpgtuh_p
-+ {Intrinsic::ppc_altivec_vcmpgtuw, 79273}, // __builtin_altivec_vcmpgtuw
-+ {Intrinsic::ppc_altivec_vcmpgtuw_p, 79300}, // __builtin_altivec_vcmpgtuw_p
-+ {Intrinsic::ppc_altivec_vcmpneb, 79329}, // __builtin_altivec_vcmpneb
-+ {Intrinsic::ppc_altivec_vcmpneb_p, 79355}, // __builtin_altivec_vcmpneb_p
-+ {Intrinsic::ppc_altivec_vcmpneh, 79383}, // __builtin_altivec_vcmpneh
-+ {Intrinsic::ppc_altivec_vcmpneh_p, 79409}, // __builtin_altivec_vcmpneh_p
-+ {Intrinsic::ppc_altivec_vcmpnew, 79437}, // __builtin_altivec_vcmpnew
-+ {Intrinsic::ppc_altivec_vcmpnew_p, 79463}, // __builtin_altivec_vcmpnew_p
-+ {Intrinsic::ppc_altivec_vcmpnezb, 79491}, // __builtin_altivec_vcmpnezb
-+ {Intrinsic::ppc_altivec_vcmpnezb_p, 79518}, // __builtin_altivec_vcmpnezb_p
-+ {Intrinsic::ppc_altivec_vcmpnezh, 79547}, // __builtin_altivec_vcmpnezh
-+ {Intrinsic::ppc_altivec_vcmpnezh_p, 79574}, // __builtin_altivec_vcmpnezh_p
-+ {Intrinsic::ppc_altivec_vcmpnezw, 79603}, // __builtin_altivec_vcmpnezw
-+ {Intrinsic::ppc_altivec_vcmpnezw_p, 79630}, // __builtin_altivec_vcmpnezw_p
-+ {Intrinsic::ppc_altivec_vctsxs, 79659}, // __builtin_altivec_vctsxs
-+ {Intrinsic::ppc_altivec_vctuxs, 79684}, // __builtin_altivec_vctuxs
-+ {Intrinsic::ppc_altivec_vctzlsbb, 79709}, // __builtin_altivec_vctzlsbb
-+ {Intrinsic::ppc_altivec_vexptefp, 79736}, // __builtin_altivec_vexptefp
-+ {Intrinsic::ppc_altivec_vgbbd, 79763}, // __builtin_altivec_vgbbd
-+ {Intrinsic::ppc_altivec_vlogefp, 79787}, // __builtin_altivec_vlogefp
-+ {Intrinsic::ppc_altivec_vmaddfp, 79813}, // __builtin_altivec_vmaddfp
-+ {Intrinsic::ppc_altivec_vmaxfp, 79839}, // __builtin_altivec_vmaxfp
-+ {Intrinsic::ppc_altivec_vmaxsb, 79864}, // __builtin_altivec_vmaxsb
-+ {Intrinsic::ppc_altivec_vmaxsd, 79889}, // __builtin_altivec_vmaxsd
-+ {Intrinsic::ppc_altivec_vmaxsh, 79914}, // __builtin_altivec_vmaxsh
-+ {Intrinsic::ppc_altivec_vmaxsw, 79939}, // __builtin_altivec_vmaxsw
-+ {Intrinsic::ppc_altivec_vmaxub, 79964}, // __builtin_altivec_vmaxub
-+ {Intrinsic::ppc_altivec_vmaxud, 79989}, // __builtin_altivec_vmaxud
-+ {Intrinsic::ppc_altivec_vmaxuh, 80014}, // __builtin_altivec_vmaxuh
-+ {Intrinsic::ppc_altivec_vmaxuw, 80039}, // __builtin_altivec_vmaxuw
-+ {Intrinsic::ppc_altivec_vmhaddshs, 80064}, // __builtin_altivec_vmhaddshs
-+ {Intrinsic::ppc_altivec_vmhraddshs, 80092}, // __builtin_altivec_vmhraddshs
-+ {Intrinsic::ppc_altivec_vminfp, 80121}, // __builtin_altivec_vminfp
-+ {Intrinsic::ppc_altivec_vminsb, 80146}, // __builtin_altivec_vminsb
-+ {Intrinsic::ppc_altivec_vminsd, 80171}, // __builtin_altivec_vminsd
-+ {Intrinsic::ppc_altivec_vminsh, 80196}, // __builtin_altivec_vminsh
-+ {Intrinsic::ppc_altivec_vminsw, 80221}, // __builtin_altivec_vminsw
-+ {Intrinsic::ppc_altivec_vminub, 80246}, // __builtin_altivec_vminub
-+ {Intrinsic::ppc_altivec_vminud, 80271}, // __builtin_altivec_vminud
-+ {Intrinsic::ppc_altivec_vminuh, 80296}, // __builtin_altivec_vminuh
-+ {Intrinsic::ppc_altivec_vminuw, 80321}, // __builtin_altivec_vminuw
-+ {Intrinsic::ppc_altivec_vmladduhm, 80346}, // __builtin_altivec_vmladduhm
-+ {Intrinsic::ppc_altivec_vmsummbm, 80374}, // __builtin_altivec_vmsummbm
-+ {Intrinsic::ppc_altivec_vmsumshm, 80401}, // __builtin_altivec_vmsumshm
-+ {Intrinsic::ppc_altivec_vmsumshs, 80428}, // __builtin_altivec_vmsumshs
-+ {Intrinsic::ppc_altivec_vmsumubm, 80455}, // __builtin_altivec_vmsumubm
-+ {Intrinsic::ppc_altivec_vmsumuhm, 80482}, // __builtin_altivec_vmsumuhm
-+ {Intrinsic::ppc_altivec_vmsumuhs, 80509}, // __builtin_altivec_vmsumuhs
-+ {Intrinsic::ppc_altivec_vmulesb, 80536}, // __builtin_altivec_vmulesb
-+ {Intrinsic::ppc_altivec_vmulesh, 80562}, // __builtin_altivec_vmulesh
-+ {Intrinsic::ppc_altivec_vmulesw, 80588}, // __builtin_altivec_vmulesw
-+ {Intrinsic::ppc_altivec_vmuleub, 80614}, // __builtin_altivec_vmuleub
-+ {Intrinsic::ppc_altivec_vmuleuh, 80640}, // __builtin_altivec_vmuleuh
-+ {Intrinsic::ppc_altivec_vmuleuw, 80666}, // __builtin_altivec_vmuleuw
-+ {Intrinsic::ppc_altivec_vmulosb, 80692}, // __builtin_altivec_vmulosb
-+ {Intrinsic::ppc_altivec_vmulosh, 80718}, // __builtin_altivec_vmulosh
-+ {Intrinsic::ppc_altivec_vmulosw, 80744}, // __builtin_altivec_vmulosw
-+ {Intrinsic::ppc_altivec_vmuloub, 80770}, // __builtin_altivec_vmuloub
-+ {Intrinsic::ppc_altivec_vmulouh, 80796}, // __builtin_altivec_vmulouh
-+ {Intrinsic::ppc_altivec_vmulouw, 80822}, // __builtin_altivec_vmulouw
-+ {Intrinsic::ppc_altivec_vnmsubfp, 80848}, // __builtin_altivec_vnmsubfp
-+ {Intrinsic::ppc_altivec_vperm, 80875}, // __builtin_altivec_vperm_4si
-+ {Intrinsic::ppc_altivec_vpkpx, 80903}, // __builtin_altivec_vpkpx
-+ {Intrinsic::ppc_altivec_vpksdss, 80927}, // __builtin_altivec_vpksdss
-+ {Intrinsic::ppc_altivec_vpksdus, 80953}, // __builtin_altivec_vpksdus
-+ {Intrinsic::ppc_altivec_vpkshss, 80979}, // __builtin_altivec_vpkshss
-+ {Intrinsic::ppc_altivec_vpkshus, 81005}, // __builtin_altivec_vpkshus
-+ {Intrinsic::ppc_altivec_vpkswss, 81031}, // __builtin_altivec_vpkswss
-+ {Intrinsic::ppc_altivec_vpkswus, 81057}, // __builtin_altivec_vpkswus
-+ {Intrinsic::ppc_altivec_vpkudus, 81083}, // __builtin_altivec_vpkudus
-+ {Intrinsic::ppc_altivec_vpkuhus, 81109}, // __builtin_altivec_vpkuhus
-+ {Intrinsic::ppc_altivec_vpkuwus, 81135}, // __builtin_altivec_vpkuwus
-+ {Intrinsic::ppc_altivec_vprtybd, 81161}, // __builtin_altivec_vprtybd
-+ {Intrinsic::ppc_altivec_vprtybq, 81187}, // __builtin_altivec_vprtybq
-+ {Intrinsic::ppc_altivec_vprtybw, 81213}, // __builtin_altivec_vprtybw
-+ {Intrinsic::ppc_altivec_vrefp, 81239}, // __builtin_altivec_vrefp
-+ {Intrinsic::ppc_altivec_vrfim, 81263}, // __builtin_altivec_vrfim
-+ {Intrinsic::ppc_altivec_vrfin, 81287}, // __builtin_altivec_vrfin
-+ {Intrinsic::ppc_altivec_vrfip, 81311}, // __builtin_altivec_vrfip
-+ {Intrinsic::ppc_altivec_vrfiz, 81335}, // __builtin_altivec_vrfiz
-+ {Intrinsic::ppc_altivec_vrlb, 81359}, // __builtin_altivec_vrlb
-+ {Intrinsic::ppc_altivec_vrld, 81382}, // __builtin_altivec_vrld
-+ {Intrinsic::ppc_altivec_vrldmi, 81405}, // __builtin_altivec_vrldmi
-+ {Intrinsic::ppc_altivec_vrldnm, 81430}, // __builtin_altivec_vrldnm
-+ {Intrinsic::ppc_altivec_vrlh, 81455}, // __builtin_altivec_vrlh
-+ {Intrinsic::ppc_altivec_vrlw, 81478}, // __builtin_altivec_vrlw
-+ {Intrinsic::ppc_altivec_vrlwmi, 81501}, // __builtin_altivec_vrlwmi
-+ {Intrinsic::ppc_altivec_vrlwnm, 81526}, // __builtin_altivec_vrlwnm
-+ {Intrinsic::ppc_altivec_vrsqrtefp, 81551}, // __builtin_altivec_vrsqrtefp
-+ {Intrinsic::ppc_altivec_vsel, 81579}, // __builtin_altivec_vsel_4si
-+ {Intrinsic::ppc_altivec_vsl, 81606}, // __builtin_altivec_vsl
-+ {Intrinsic::ppc_altivec_vslb, 81628}, // __builtin_altivec_vslb
-+ {Intrinsic::ppc_altivec_vslh, 81651}, // __builtin_altivec_vslh
-+ {Intrinsic::ppc_altivec_vslo, 81674}, // __builtin_altivec_vslo
-+ {Intrinsic::ppc_altivec_vslv, 81697}, // __builtin_altivec_vslv
-+ {Intrinsic::ppc_altivec_vslw, 81720}, // __builtin_altivec_vslw
-+ {Intrinsic::ppc_altivec_vsr, 81743}, // __builtin_altivec_vsr
-+ {Intrinsic::ppc_altivec_vsrab, 81765}, // __builtin_altivec_vsrab
-+ {Intrinsic::ppc_altivec_vsrah, 81789}, // __builtin_altivec_vsrah
-+ {Intrinsic::ppc_altivec_vsraw, 81813}, // __builtin_altivec_vsraw
-+ {Intrinsic::ppc_altivec_vsrb, 81837}, // __builtin_altivec_vsrb
-+ {Intrinsic::ppc_altivec_vsrh, 81860}, // __builtin_altivec_vsrh
-+ {Intrinsic::ppc_altivec_vsro, 81883}, // __builtin_altivec_vsro
-+ {Intrinsic::ppc_altivec_vsrv, 81906}, // __builtin_altivec_vsrv
-+ {Intrinsic::ppc_altivec_vsrw, 81929}, // __builtin_altivec_vsrw
-+ {Intrinsic::ppc_altivec_vsubcuq, 81952}, // __builtin_altivec_vsubcuq
-+ {Intrinsic::ppc_altivec_vsubcuw, 81978}, // __builtin_altivec_vsubcuw
-+ {Intrinsic::ppc_altivec_vsubecuq, 82004}, // __builtin_altivec_vsubecuq
-+ {Intrinsic::ppc_altivec_vsubeuqm, 82031}, // __builtin_altivec_vsubeuqm
-+ {Intrinsic::ppc_altivec_vsubsbs, 82058}, // __builtin_altivec_vsubsbs
-+ {Intrinsic::ppc_altivec_vsubshs, 82084}, // __builtin_altivec_vsubshs
-+ {Intrinsic::ppc_altivec_vsubsws, 82110}, // __builtin_altivec_vsubsws
-+ {Intrinsic::ppc_altivec_vsububs, 82136}, // __builtin_altivec_vsububs
-+ {Intrinsic::ppc_altivec_vsubuhs, 82162}, // __builtin_altivec_vsubuhs
-+ {Intrinsic::ppc_altivec_vsubuws, 82188}, // __builtin_altivec_vsubuws
-+ {Intrinsic::ppc_altivec_vsum2sws, 82214}, // __builtin_altivec_vsum2sws
-+ {Intrinsic::ppc_altivec_vsum4sbs, 82241}, // __builtin_altivec_vsum4sbs
-+ {Intrinsic::ppc_altivec_vsum4shs, 82268}, // __builtin_altivec_vsum4shs
-+ {Intrinsic::ppc_altivec_vsum4ubs, 82295}, // __builtin_altivec_vsum4ubs
-+ {Intrinsic::ppc_altivec_vsumsws, 82322}, // __builtin_altivec_vsumsws
-+ {Intrinsic::ppc_altivec_vupkhpx, 82348}, // __builtin_altivec_vupkhpx
-+ {Intrinsic::ppc_altivec_vupkhsb, 82374}, // __builtin_altivec_vupkhsb
-+ {Intrinsic::ppc_altivec_vupkhsh, 82400}, // __builtin_altivec_vupkhsh
-+ {Intrinsic::ppc_altivec_vupkhsw, 82426}, // __builtin_altivec_vupkhsw
-+ {Intrinsic::ppc_altivec_vupklpx, 82452}, // __builtin_altivec_vupklpx
-+ {Intrinsic::ppc_altivec_vupklsb, 82478}, // __builtin_altivec_vupklsb
-+ {Intrinsic::ppc_altivec_vupklsh, 82504}, // __builtin_altivec_vupklsh
-+ {Intrinsic::ppc_altivec_vupklsw, 82530}, // __builtin_altivec_vupklsw
-+ {Intrinsic::ppc_bpermd, 82556}, // __builtin_bpermd
-+ {Intrinsic::ppc_divde, 82573}, // __builtin_divde
-+ {Intrinsic::ppc_divdeu, 82589}, // __builtin_divdeu
-+ {Intrinsic::ppc_divwe, 82606}, // __builtin_divwe
-+ {Intrinsic::ppc_divweu, 82622}, // __builtin_divweu
-+ {Intrinsic::ppc_get_texasr, 82639}, // __builtin_get_texasr
-+ {Intrinsic::ppc_get_texasru, 82660}, // __builtin_get_texasru
-+ {Intrinsic::ppc_get_tfhar, 82682}, // __builtin_get_tfhar
-+ {Intrinsic::ppc_get_tfiar, 82702}, // __builtin_get_tfiar
-+ {Intrinsic::ppc_qpx_qvfabs, 82722}, // __builtin_qpx_qvfabs
-+ {Intrinsic::ppc_qpx_qvfadd, 82743}, // __builtin_qpx_qvfadd
-+ {Intrinsic::ppc_qpx_qvfadds, 82764}, // __builtin_qpx_qvfadds
-+ {Intrinsic::ppc_qpx_qvfcfid, 82786}, // __builtin_qpx_qvfcfid
-+ {Intrinsic::ppc_qpx_qvfcfids, 82808}, // __builtin_qpx_qvfcfids
-+ {Intrinsic::ppc_qpx_qvfcfidu, 82831}, // __builtin_qpx_qvfcfidu
-+ {Intrinsic::ppc_qpx_qvfcfidus, 82854}, // __builtin_qpx_qvfcfidus
-+ {Intrinsic::ppc_qpx_qvfcmpeq, 82878}, // __builtin_qpx_qvfcmpeq
-+ {Intrinsic::ppc_qpx_qvfcmpgt, 82901}, // __builtin_qpx_qvfcmpgt
-+ {Intrinsic::ppc_qpx_qvfcmplt, 82924}, // __builtin_qpx_qvfcmplt
-+ {Intrinsic::ppc_qpx_qvfcpsgn, 82947}, // __builtin_qpx_qvfcpsgn
-+ {Intrinsic::ppc_qpx_qvfctid, 82970}, // __builtin_qpx_qvfctid
-+ {Intrinsic::ppc_qpx_qvfctidu, 82992}, // __builtin_qpx_qvfctidu
-+ {Intrinsic::ppc_qpx_qvfctiduz, 83015}, // __builtin_qpx_qvfctiduz
-+ {Intrinsic::ppc_qpx_qvfctidz, 83039}, // __builtin_qpx_qvfctidz
-+ {Intrinsic::ppc_qpx_qvfctiw, 83062}, // __builtin_qpx_qvfctiw
-+ {Intrinsic::ppc_qpx_qvfctiwu, 83084}, // __builtin_qpx_qvfctiwu
-+ {Intrinsic::ppc_qpx_qvfctiwuz, 83107}, // __builtin_qpx_qvfctiwuz
-+ {Intrinsic::ppc_qpx_qvfctiwz, 83131}, // __builtin_qpx_qvfctiwz
-+ {Intrinsic::ppc_qpx_qvflogical, 83154}, // __builtin_qpx_qvflogical
-+ {Intrinsic::ppc_qpx_qvfmadd, 83179}, // __builtin_qpx_qvfmadd
-+ {Intrinsic::ppc_qpx_qvfmadds, 83201}, // __builtin_qpx_qvfmadds
-+ {Intrinsic::ppc_qpx_qvfmsub, 83224}, // __builtin_qpx_qvfmsub
-+ {Intrinsic::ppc_qpx_qvfmsubs, 83246}, // __builtin_qpx_qvfmsubs
-+ {Intrinsic::ppc_qpx_qvfmul, 83269}, // __builtin_qpx_qvfmul
-+ {Intrinsic::ppc_qpx_qvfmuls, 83290}, // __builtin_qpx_qvfmuls
-+ {Intrinsic::ppc_qpx_qvfnabs, 83312}, // __builtin_qpx_qvfnabs
-+ {Intrinsic::ppc_qpx_qvfneg, 83334}, // __builtin_qpx_qvfneg
-+ {Intrinsic::ppc_qpx_qvfnmadd, 83355}, // __builtin_qpx_qvfnmadd
-+ {Intrinsic::ppc_qpx_qvfnmadds, 83378}, // __builtin_qpx_qvfnmadds
-+ {Intrinsic::ppc_qpx_qvfnmsub, 83402}, // __builtin_qpx_qvfnmsub
-+ {Intrinsic::ppc_qpx_qvfnmsubs, 83425}, // __builtin_qpx_qvfnmsubs
-+ {Intrinsic::ppc_qpx_qvfperm, 83449}, // __builtin_qpx_qvfperm
-+ {Intrinsic::ppc_qpx_qvfre, 83471}, // __builtin_qpx_qvfre
-+ {Intrinsic::ppc_qpx_qvfres, 83491}, // __builtin_qpx_qvfres
-+ {Intrinsic::ppc_qpx_qvfrim, 83512}, // __builtin_qpx_qvfrim
-+ {Intrinsic::ppc_qpx_qvfrin, 83533}, // __builtin_qpx_qvfrin
-+ {Intrinsic::ppc_qpx_qvfrip, 83554}, // __builtin_qpx_qvfrip
-+ {Intrinsic::ppc_qpx_qvfriz, 83575}, // __builtin_qpx_qvfriz
-+ {Intrinsic::ppc_qpx_qvfrsp, 83596}, // __builtin_qpx_qvfrsp
-+ {Intrinsic::ppc_qpx_qvfrsqrte, 83617}, // __builtin_qpx_qvfrsqrte
-+ {Intrinsic::ppc_qpx_qvfrsqrtes, 83641}, // __builtin_qpx_qvfrsqrtes
-+ {Intrinsic::ppc_qpx_qvfsel, 83666}, // __builtin_qpx_qvfsel
-+ {Intrinsic::ppc_qpx_qvfsub, 83687}, // __builtin_qpx_qvfsub
-+ {Intrinsic::ppc_qpx_qvfsubs, 83708}, // __builtin_qpx_qvfsubs
-+ {Intrinsic::ppc_qpx_qvftstnan, 83730}, // __builtin_qpx_qvftstnan
-+ {Intrinsic::ppc_qpx_qvfxmadd, 83754}, // __builtin_qpx_qvfxmadd
-+ {Intrinsic::ppc_qpx_qvfxmadds, 83777}, // __builtin_qpx_qvfxmadds
-+ {Intrinsic::ppc_qpx_qvfxmul, 83801}, // __builtin_qpx_qvfxmul
-+ {Intrinsic::ppc_qpx_qvfxmuls, 83823}, // __builtin_qpx_qvfxmuls
-+ {Intrinsic::ppc_qpx_qvfxxcpnmadd, 83846}, // __builtin_qpx_qvfxxcpnmadd
-+ {Intrinsic::ppc_qpx_qvfxxcpnmadds, 83873}, // __builtin_qpx_qvfxxcpnmadds
-+ {Intrinsic::ppc_qpx_qvfxxmadd, 83901}, // __builtin_qpx_qvfxxmadd
-+ {Intrinsic::ppc_qpx_qvfxxmadds, 83925}, // __builtin_qpx_qvfxxmadds
-+ {Intrinsic::ppc_qpx_qvfxxnpmadd, 83950}, // __builtin_qpx_qvfxxnpmadd
-+ {Intrinsic::ppc_qpx_qvfxxnpmadds, 83976}, // __builtin_qpx_qvfxxnpmadds
-+ {Intrinsic::ppc_qpx_qvgpci, 84003}, // __builtin_qpx_qvgpci
-+ {Intrinsic::ppc_qpx_qvlfcd, 84024}, // __builtin_qpx_qvlfcd
-+ {Intrinsic::ppc_qpx_qvlfcda, 84045}, // __builtin_qpx_qvlfcda
-+ {Intrinsic::ppc_qpx_qvlfcs, 84067}, // __builtin_qpx_qvlfcs
-+ {Intrinsic::ppc_qpx_qvlfcsa, 84088}, // __builtin_qpx_qvlfcsa
-+ {Intrinsic::ppc_qpx_qvlfd, 84110}, // __builtin_qpx_qvlfd
-+ {Intrinsic::ppc_qpx_qvlfda, 84130}, // __builtin_qpx_qvlfda
-+ {Intrinsic::ppc_qpx_qvlfiwa, 84151}, // __builtin_qpx_qvlfiwa
-+ {Intrinsic::ppc_qpx_qvlfiwaa, 84173}, // __builtin_qpx_qvlfiwaa
-+ {Intrinsic::ppc_qpx_qvlfiwz, 84196}, // __builtin_qpx_qvlfiwz
-+ {Intrinsic::ppc_qpx_qvlfiwza, 84218}, // __builtin_qpx_qvlfiwza
-+ {Intrinsic::ppc_qpx_qvlfs, 84241}, // __builtin_qpx_qvlfs
-+ {Intrinsic::ppc_qpx_qvlfsa, 84261}, // __builtin_qpx_qvlfsa
-+ {Intrinsic::ppc_qpx_qvlpcld, 84282}, // __builtin_qpx_qvlpcld
-+ {Intrinsic::ppc_qpx_qvlpcls, 84304}, // __builtin_qpx_qvlpcls
-+ {Intrinsic::ppc_qpx_qvlpcrd, 84326}, // __builtin_qpx_qvlpcrd
-+ {Intrinsic::ppc_qpx_qvlpcrs, 84348}, // __builtin_qpx_qvlpcrs
-+ {Intrinsic::ppc_qpx_qvstfcd, 84370}, // __builtin_qpx_qvstfcd
-+ {Intrinsic::ppc_qpx_qvstfcda, 84392}, // __builtin_qpx_qvstfcda
-+ {Intrinsic::ppc_qpx_qvstfcs, 84415}, // __builtin_qpx_qvstfcs
-+ {Intrinsic::ppc_qpx_qvstfcsa, 84437}, // __builtin_qpx_qvstfcsa
-+ {Intrinsic::ppc_qpx_qvstfd, 84460}, // __builtin_qpx_qvstfd
-+ {Intrinsic::ppc_qpx_qvstfda, 84481}, // __builtin_qpx_qvstfda
-+ {Intrinsic::ppc_qpx_qvstfiw, 84503}, // __builtin_qpx_qvstfiw
-+ {Intrinsic::ppc_qpx_qvstfiwa, 84525}, // __builtin_qpx_qvstfiwa
-+ {Intrinsic::ppc_qpx_qvstfs, 84548}, // __builtin_qpx_qvstfs
-+ {Intrinsic::ppc_qpx_qvstfsa, 84569}, // __builtin_qpx_qvstfsa
-+ {Intrinsic::ppc_set_texasr, 84591}, // __builtin_set_texasr
-+ {Intrinsic::ppc_set_texasru, 84612}, // __builtin_set_texasru
-+ {Intrinsic::ppc_set_tfhar, 84634}, // __builtin_set_tfhar
-+ {Intrinsic::ppc_set_tfiar, 84654}, // __builtin_set_tfiar
-+ {Intrinsic::ppc_tabort, 84674}, // __builtin_tabort
-+ {Intrinsic::ppc_tabortdc, 84691}, // __builtin_tabortdc
-+ {Intrinsic::ppc_tabortdci, 84710}, // __builtin_tabortdci
-+ {Intrinsic::ppc_tabortwc, 84730}, // __builtin_tabortwc
-+ {Intrinsic::ppc_tabortwci, 84749}, // __builtin_tabortwci
-+ {Intrinsic::ppc_tbegin, 84769}, // __builtin_tbegin
-+ {Intrinsic::ppc_tcheck, 84786}, // __builtin_tcheck
-+ {Intrinsic::ppc_tend, 84803}, // __builtin_tend
-+ {Intrinsic::ppc_tendall, 84818}, // __builtin_tendall
-+ {Intrinsic::ppc_trechkpt, 84836}, // __builtin_trechkpt
-+ {Intrinsic::ppc_treclaim, 84855}, // __builtin_treclaim
-+ {Intrinsic::ppc_tresume, 84874}, // __builtin_tresume
-+ {Intrinsic::ppc_tsr, 84892}, // __builtin_tsr
-+ {Intrinsic::ppc_tsuspend, 84906}, // __builtin_tsuspend
-+ {Intrinsic::ppc_ttest, 84925}, // __builtin_ttest
-+ {Intrinsic::ppc_vsx_xsmaxdp, 84941}, // __builtin_vsx_xsmaxdp
-+ {Intrinsic::ppc_vsx_xsmindp, 84963}, // __builtin_vsx_xsmindp
-+ {Intrinsic::ppc_vsx_xvcmpeqdp, 84985}, // __builtin_vsx_xvcmpeqdp
-+ {Intrinsic::ppc_vsx_xvcmpeqdp_p, 85009}, // __builtin_vsx_xvcmpeqdp_p
-+ {Intrinsic::ppc_vsx_xvcmpeqsp, 85035}, // __builtin_vsx_xvcmpeqsp
-+ {Intrinsic::ppc_vsx_xvcmpeqsp_p, 85059}, // __builtin_vsx_xvcmpeqsp_p
-+ {Intrinsic::ppc_vsx_xvcmpgedp, 85085}, // __builtin_vsx_xvcmpgedp
-+ {Intrinsic::ppc_vsx_xvcmpgedp_p, 85109}, // __builtin_vsx_xvcmpgedp_p
-+ {Intrinsic::ppc_vsx_xvcmpgesp, 85135}, // __builtin_vsx_xvcmpgesp
-+ {Intrinsic::ppc_vsx_xvcmpgesp_p, 85159}, // __builtin_vsx_xvcmpgesp_p
-+ {Intrinsic::ppc_vsx_xvcmpgtdp, 85185}, // __builtin_vsx_xvcmpgtdp
-+ {Intrinsic::ppc_vsx_xvcmpgtdp_p, 85209}, // __builtin_vsx_xvcmpgtdp_p
-+ {Intrinsic::ppc_vsx_xvcmpgtsp, 85235}, // __builtin_vsx_xvcmpgtsp
-+ {Intrinsic::ppc_vsx_xvcmpgtsp_p, 85259}, // __builtin_vsx_xvcmpgtsp_p
-+ {Intrinsic::ppc_vsx_xvcvdpsp, 85285}, // __builtin_vsx_xvcvdpsp
-+ {Intrinsic::ppc_vsx_xvcvdpsxws, 85308}, // __builtin_vsx_xvcvdpsxws
-+ {Intrinsic::ppc_vsx_xvcvdpuxws, 85333}, // __builtin_vsx_xvcvdpuxws
-+ {Intrinsic::ppc_vsx_xvcvhpsp, 85358}, // __builtin_vsx_xvcvhpsp
-+ {Intrinsic::ppc_vsx_xvcvspdp, 85381}, // __builtin_vsx_xvcvspdp
-+ {Intrinsic::ppc_vsx_xvcvsphp, 85404}, // __builtin_vsx_xvcvsphp
-+ {Intrinsic::ppc_vsx_xvcvsxdsp, 85427}, // __builtin_vsx_xvcvsxdsp
-+ {Intrinsic::ppc_vsx_xvcvsxwdp, 85451}, // __builtin_vsx_xvcvsxwdp
-+ {Intrinsic::ppc_vsx_xvcvuxdsp, 85475}, // __builtin_vsx_xvcvuxdsp
-+ {Intrinsic::ppc_vsx_xvcvuxwdp, 85499}, // __builtin_vsx_xvcvuxwdp
-+ {Intrinsic::ppc_vsx_xvdivdp, 85523}, // __builtin_vsx_xvdivdp
-+ {Intrinsic::ppc_vsx_xvdivsp, 85545}, // __builtin_vsx_xvdivsp
-+ {Intrinsic::ppc_vsx_xviexpdp, 85567}, // __builtin_vsx_xviexpdp
-+ {Intrinsic::ppc_vsx_xviexpsp, 85590}, // __builtin_vsx_xviexpsp
-+ {Intrinsic::ppc_vsx_xvmaxdp, 85613}, // __builtin_vsx_xvmaxdp
-+ {Intrinsic::ppc_vsx_xvmaxsp, 85635}, // __builtin_vsx_xvmaxsp
-+ {Intrinsic::ppc_vsx_xvmindp, 85657}, // __builtin_vsx_xvmindp
-+ {Intrinsic::ppc_vsx_xvminsp, 85679}, // __builtin_vsx_xvminsp
-+ {Intrinsic::ppc_vsx_xvredp, 85701}, // __builtin_vsx_xvredp
-+ {Intrinsic::ppc_vsx_xvresp, 85722}, // __builtin_vsx_xvresp
-+ {Intrinsic::ppc_vsx_xvrsqrtedp, 85743}, // __builtin_vsx_xvrsqrtedp
-+ {Intrinsic::ppc_vsx_xvrsqrtesp, 85768}, // __builtin_vsx_xvrsqrtesp
-+ {Intrinsic::ppc_vsx_xvtstdcdp, 85793}, // __builtin_vsx_xvtstdcdp
-+ {Intrinsic::ppc_vsx_xvtstdcsp, 85817}, // __builtin_vsx_xvtstdcsp
-+ {Intrinsic::ppc_vsx_xvxexpdp, 85841}, // __builtin_vsx_xvxexpdp
-+ {Intrinsic::ppc_vsx_xvxexpsp, 85864}, // __builtin_vsx_xvxexpsp
-+ {Intrinsic::ppc_vsx_xvxsigdp, 85887}, // __builtin_vsx_xvxsigdp
-+ {Intrinsic::ppc_vsx_xvxsigsp, 85910}, // __builtin_vsx_xvxsigsp
-+ {Intrinsic::ppc_vsx_xxextractuw, 85933}, // __builtin_vsx_xxextractuw
-+ {Intrinsic::ppc_vsx_xxinsertw, 85959}, // __builtin_vsx_xxinsertw
-+ {Intrinsic::ppc_vsx_xxleqv, 85983}, // __builtin_vsx_xxleqv
-+ };
-+ auto I = std::lower_bound(std::begin(ppcNames),
-+ std::end(ppcNames),
-+ BuiltinNameStr);
-+ if (I != std::end(ppcNames) &&
-+ I->getName() == BuiltinNameStr)
-+ return I->IntrinID;
-+ }
-+ if (TargetPrefix == "r600") {
-+ static const BuiltinEntry r600Names[] = {
-+ {Intrinsic::r600_group_barrier, 86004}, // __builtin_r600_group_barrier
-+ {Intrinsic::r600_implicitarg_ptr, 86033}, // __builtin_r600_implicitarg_ptr
-+ {Intrinsic::r600_rat_store_typed, 86064}, // __builtin_r600_rat_store_typed
-+ {Intrinsic::r600_read_global_size_x, 86095}, // __builtin_r600_read_global_size_x
-+ {Intrinsic::r600_read_global_size_y, 86129}, // __builtin_r600_read_global_size_y
-+ {Intrinsic::r600_read_global_size_z, 86163}, // __builtin_r600_read_global_size_z
-+ {Intrinsic::r600_read_ngroups_x, 86197}, // __builtin_r600_read_ngroups_x
-+ {Intrinsic::r600_read_ngroups_y, 86227}, // __builtin_r600_read_ngroups_y
-+ {Intrinsic::r600_read_ngroups_z, 86257}, // __builtin_r600_read_ngroups_z
-+ {Intrinsic::r600_read_tgid_x, 86287}, // __builtin_r600_read_tgid_x
-+ {Intrinsic::r600_read_tgid_y, 86314}, // __builtin_r600_read_tgid_y
-+ {Intrinsic::r600_read_tgid_z, 86341}, // __builtin_r600_read_tgid_z
-+ };
-+ auto I = std::lower_bound(std::begin(r600Names),
-+ std::end(r600Names),
-+ BuiltinNameStr);
-+ if (I != std::end(r600Names) &&
-+ I->getName() == BuiltinNameStr)
-+ return I->IntrinID;
-+ }
-+ if (TargetPrefix == "s390") {
-+ static const BuiltinEntry s390Names[] = {
-+ {Intrinsic::s390_efpc, 86368}, // __builtin_s390_efpc
-+ {Intrinsic::s390_lcbb, 86415}, // __builtin_s390_lcbb
-+ {Intrinsic::s390_sfpc, 86455}, // __builtin_s390_sfpc
-+ {Intrinsic::s390_vaccb, 86475}, // __builtin_s390_vaccb
-+ {Intrinsic::s390_vacccq, 86496}, // __builtin_s390_vacccq
-+ {Intrinsic::s390_vaccf, 86518}, // __builtin_s390_vaccf
-+ {Intrinsic::s390_vaccg, 86539}, // __builtin_s390_vaccg
-+ {Intrinsic::s390_vacch, 86560}, // __builtin_s390_vacch
-+ {Intrinsic::s390_vaccq, 86581}, // __builtin_s390_vaccq
-+ {Intrinsic::s390_vacq, 86602}, // __builtin_s390_vacq
-+ {Intrinsic::s390_vaq, 86622}, // __builtin_s390_vaq
-+ {Intrinsic::s390_vavgb, 86641}, // __builtin_s390_vavgb
-+ {Intrinsic::s390_vavgf, 86662}, // __builtin_s390_vavgf
-+ {Intrinsic::s390_vavgg, 86683}, // __builtin_s390_vavgg
-+ {Intrinsic::s390_vavgh, 86704}, // __builtin_s390_vavgh
-+ {Intrinsic::s390_vavglb, 86725}, // __builtin_s390_vavglb
-+ {Intrinsic::s390_vavglf, 86747}, // __builtin_s390_vavglf
-+ {Intrinsic::s390_vavglg, 86769}, // __builtin_s390_vavglg
-+ {Intrinsic::s390_vavglh, 86791}, // __builtin_s390_vavglh
-+ {Intrinsic::s390_vcksm, 86813}, // __builtin_s390_vcksm
-+ {Intrinsic::s390_verimb, 86834}, // __builtin_s390_verimb
-+ {Intrinsic::s390_verimf, 86856}, // __builtin_s390_verimf
-+ {Intrinsic::s390_verimg, 86878}, // __builtin_s390_verimg
-+ {Intrinsic::s390_verimh, 86900}, // __builtin_s390_verimh
-+ {Intrinsic::s390_verllb, 86922}, // __builtin_s390_verllb
-+ {Intrinsic::s390_verllf, 86944}, // __builtin_s390_verllf
-+ {Intrinsic::s390_verllg, 86966}, // __builtin_s390_verllg
-+ {Intrinsic::s390_verllh, 86988}, // __builtin_s390_verllh
-+ {Intrinsic::s390_verllvb, 87010}, // __builtin_s390_verllvb
-+ {Intrinsic::s390_verllvf, 87033}, // __builtin_s390_verllvf
-+ {Intrinsic::s390_verllvg, 87056}, // __builtin_s390_verllvg
-+ {Intrinsic::s390_verllvh, 87079}, // __builtin_s390_verllvh
-+ {Intrinsic::s390_vfaeb, 87102}, // __builtin_s390_vfaeb
-+ {Intrinsic::s390_vfaef, 87123}, // __builtin_s390_vfaef
-+ {Intrinsic::s390_vfaeh, 87144}, // __builtin_s390_vfaeh
-+ {Intrinsic::s390_vfaezb, 87165}, // __builtin_s390_vfaezb
-+ {Intrinsic::s390_vfaezf, 87187}, // __builtin_s390_vfaezf
-+ {Intrinsic::s390_vfaezh, 87209}, // __builtin_s390_vfaezh
-+ {Intrinsic::s390_vfeeb, 87231}, // __builtin_s390_vfeeb
-+ {Intrinsic::s390_vfeef, 87252}, // __builtin_s390_vfeef
-+ {Intrinsic::s390_vfeeh, 87273}, // __builtin_s390_vfeeh
-+ {Intrinsic::s390_vfeezb, 87294}, // __builtin_s390_vfeezb
-+ {Intrinsic::s390_vfeezf, 87316}, // __builtin_s390_vfeezf
-+ {Intrinsic::s390_vfeezh, 87338}, // __builtin_s390_vfeezh
-+ {Intrinsic::s390_vfeneb, 87360}, // __builtin_s390_vfeneb
-+ {Intrinsic::s390_vfenef, 87382}, // __builtin_s390_vfenef
-+ {Intrinsic::s390_vfeneh, 87404}, // __builtin_s390_vfeneh
-+ {Intrinsic::s390_vfenezb, 87426}, // __builtin_s390_vfenezb
-+ {Intrinsic::s390_vfenezf, 87449}, // __builtin_s390_vfenezf
-+ {Intrinsic::s390_vfenezh, 87472}, // __builtin_s390_vfenezh
-+ {Intrinsic::s390_vgfmab, 87495}, // __builtin_s390_vgfmab
-+ {Intrinsic::s390_vgfmaf, 87517}, // __builtin_s390_vgfmaf
-+ {Intrinsic::s390_vgfmag, 87539}, // __builtin_s390_vgfmag
-+ {Intrinsic::s390_vgfmah, 87561}, // __builtin_s390_vgfmah
-+ {Intrinsic::s390_vgfmb, 87583}, // __builtin_s390_vgfmb
-+ {Intrinsic::s390_vgfmf, 87604}, // __builtin_s390_vgfmf
-+ {Intrinsic::s390_vgfmg, 87625}, // __builtin_s390_vgfmg
-+ {Intrinsic::s390_vgfmh, 87646}, // __builtin_s390_vgfmh
-+ {Intrinsic::s390_vistrb, 87667}, // __builtin_s390_vistrb
-+ {Intrinsic::s390_vistrf, 87689}, // __builtin_s390_vistrf
-+ {Intrinsic::s390_vistrh, 87711}, // __builtin_s390_vistrh
-+ {Intrinsic::s390_vlbb, 87733}, // __builtin_s390_vlbb
-+ {Intrinsic::s390_vll, 87753}, // __builtin_s390_vll
-+ {Intrinsic::s390_vmaeb, 87772}, // __builtin_s390_vmaeb
-+ {Intrinsic::s390_vmaef, 87793}, // __builtin_s390_vmaef
-+ {Intrinsic::s390_vmaeh, 87814}, // __builtin_s390_vmaeh
-+ {Intrinsic::s390_vmahb, 87835}, // __builtin_s390_vmahb
-+ {Intrinsic::s390_vmahf, 87856}, // __builtin_s390_vmahf
-+ {Intrinsic::s390_vmahh, 87877}, // __builtin_s390_vmahh
-+ {Intrinsic::s390_vmaleb, 87898}, // __builtin_s390_vmaleb
-+ {Intrinsic::s390_vmalef, 87920}, // __builtin_s390_vmalef
-+ {Intrinsic::s390_vmaleh, 87942}, // __builtin_s390_vmaleh
-+ {Intrinsic::s390_vmalhb, 87964}, // __builtin_s390_vmalhb
-+ {Intrinsic::s390_vmalhf, 87986}, // __builtin_s390_vmalhf
-+ {Intrinsic::s390_vmalhh, 88008}, // __builtin_s390_vmalhh
-+ {Intrinsic::s390_vmalob, 88030}, // __builtin_s390_vmalob
-+ {Intrinsic::s390_vmalof, 88052}, // __builtin_s390_vmalof
-+ {Intrinsic::s390_vmaloh, 88074}, // __builtin_s390_vmaloh
-+ {Intrinsic::s390_vmaob, 88096}, // __builtin_s390_vmaob
-+ {Intrinsic::s390_vmaof, 88117}, // __builtin_s390_vmaof
-+ {Intrinsic::s390_vmaoh, 88138}, // __builtin_s390_vmaoh
-+ {Intrinsic::s390_vmeb, 88159}, // __builtin_s390_vmeb
-+ {Intrinsic::s390_vmef, 88179}, // __builtin_s390_vmef
-+ {Intrinsic::s390_vmeh, 88199}, // __builtin_s390_vmeh
-+ {Intrinsic::s390_vmhb, 88219}, // __builtin_s390_vmhb
-+ {Intrinsic::s390_vmhf, 88239}, // __builtin_s390_vmhf
-+ {Intrinsic::s390_vmhh, 88259}, // __builtin_s390_vmhh
-+ {Intrinsic::s390_vmleb, 88279}, // __builtin_s390_vmleb
-+ {Intrinsic::s390_vmlef, 88300}, // __builtin_s390_vmlef
-+ {Intrinsic::s390_vmleh, 88321}, // __builtin_s390_vmleh
-+ {Intrinsic::s390_vmlhb, 88342}, // __builtin_s390_vmlhb
-+ {Intrinsic::s390_vmlhf, 88363}, // __builtin_s390_vmlhf
-+ {Intrinsic::s390_vmlhh, 88384}, // __builtin_s390_vmlhh
-+ {Intrinsic::s390_vmlob, 88405}, // __builtin_s390_vmlob
-+ {Intrinsic::s390_vmlof, 88426}, // __builtin_s390_vmlof
-+ {Intrinsic::s390_vmloh, 88447}, // __builtin_s390_vmloh
-+ {Intrinsic::s390_vmob, 88468}, // __builtin_s390_vmob
-+ {Intrinsic::s390_vmof, 88488}, // __builtin_s390_vmof
-+ {Intrinsic::s390_vmoh, 88508}, // __builtin_s390_vmoh
-+ {Intrinsic::s390_vpdi, 88528}, // __builtin_s390_vpdi
-+ {Intrinsic::s390_vperm, 88548}, // __builtin_s390_vperm
-+ {Intrinsic::s390_vpklsf, 88569}, // __builtin_s390_vpklsf
-+ {Intrinsic::s390_vpklsg, 88591}, // __builtin_s390_vpklsg
-+ {Intrinsic::s390_vpklsh, 88613}, // __builtin_s390_vpklsh
-+ {Intrinsic::s390_vpksf, 88635}, // __builtin_s390_vpksf
-+ {Intrinsic::s390_vpksg, 88656}, // __builtin_s390_vpksg
-+ {Intrinsic::s390_vpksh, 88677}, // __builtin_s390_vpksh
-+ {Intrinsic::s390_vsbcbiq, 88698}, // __builtin_s390_vsbcbiq
-+ {Intrinsic::s390_vsbiq, 88721}, // __builtin_s390_vsbiq
-+ {Intrinsic::s390_vscbib, 88742}, // __builtin_s390_vscbib
-+ {Intrinsic::s390_vscbif, 88764}, // __builtin_s390_vscbif
-+ {Intrinsic::s390_vscbig, 88786}, // __builtin_s390_vscbig
-+ {Intrinsic::s390_vscbih, 88808}, // __builtin_s390_vscbih
-+ {Intrinsic::s390_vscbiq, 88830}, // __builtin_s390_vscbiq
-+ {Intrinsic::s390_vsl, 88852}, // __builtin_s390_vsl
-+ {Intrinsic::s390_vslb, 88871}, // __builtin_s390_vslb
-+ {Intrinsic::s390_vsldb, 88891}, // __builtin_s390_vsldb
-+ {Intrinsic::s390_vsq, 88912}, // __builtin_s390_vsq
-+ {Intrinsic::s390_vsra, 88931}, // __builtin_s390_vsra
-+ {Intrinsic::s390_vsrab, 88951}, // __builtin_s390_vsrab
-+ {Intrinsic::s390_vsrl, 88972}, // __builtin_s390_vsrl
-+ {Intrinsic::s390_vsrlb, 88992}, // __builtin_s390_vsrlb
-+ {Intrinsic::s390_vstl, 89013}, // __builtin_s390_vstl
-+ {Intrinsic::s390_vstrcb, 89033}, // __builtin_s390_vstrcb
-+ {Intrinsic::s390_vstrcf, 89055}, // __builtin_s390_vstrcf
-+ {Intrinsic::s390_vstrch, 89077}, // __builtin_s390_vstrch
-+ {Intrinsic::s390_vstrczb, 89099}, // __builtin_s390_vstrczb
-+ {Intrinsic::s390_vstrczf, 89122}, // __builtin_s390_vstrczf
-+ {Intrinsic::s390_vstrczh, 89145}, // __builtin_s390_vstrczh
-+ {Intrinsic::s390_vsumb, 89168}, // __builtin_s390_vsumb
-+ {Intrinsic::s390_vsumgf, 89189}, // __builtin_s390_vsumgf
-+ {Intrinsic::s390_vsumgh, 89211}, // __builtin_s390_vsumgh
-+ {Intrinsic::s390_vsumh, 89233}, // __builtin_s390_vsumh
-+ {Intrinsic::s390_vsumqf, 89254}, // __builtin_s390_vsumqf
-+ {Intrinsic::s390_vsumqg, 89276}, // __builtin_s390_vsumqg
-+ {Intrinsic::s390_vtm, 89298}, // __builtin_s390_vtm
-+ {Intrinsic::s390_vuphb, 89317}, // __builtin_s390_vuphb
-+ {Intrinsic::s390_vuphf, 89338}, // __builtin_s390_vuphf
-+ {Intrinsic::s390_vuphh, 89359}, // __builtin_s390_vuphh
-+ {Intrinsic::s390_vuplb, 89380}, // __builtin_s390_vuplb
-+ {Intrinsic::s390_vuplf, 89401}, // __builtin_s390_vuplf
-+ {Intrinsic::s390_vuplhb, 89422}, // __builtin_s390_vuplhb
-+ {Intrinsic::s390_vuplhf, 89444}, // __builtin_s390_vuplhf
-+ {Intrinsic::s390_vuplhh, 89466}, // __builtin_s390_vuplhh
-+ {Intrinsic::s390_vuplhw, 89488}, // __builtin_s390_vuplhw
-+ {Intrinsic::s390_vupllb, 89510}, // __builtin_s390_vupllb
-+ {Intrinsic::s390_vupllf, 89532}, // __builtin_s390_vupllf
-+ {Intrinsic::s390_vupllh, 89554}, // __builtin_s390_vupllh
-+ {Intrinsic::s390_tend, 84803}, // __builtin_tend
-+ {Intrinsic::s390_ppa_txassist, 86435}, // __builtin_tx_assist
-+ {Intrinsic::s390_etnd, 86388}, // __builtin_tx_nesting_depth
-+ };
-+ auto I = std::lower_bound(std::begin(s390Names),
-+ std::end(s390Names),
-+ BuiltinNameStr);
-+ if (I != std::end(s390Names) &&
-+ I->getName() == BuiltinNameStr)
-+ return I->IntrinID;
-+ }
-+ if (TargetPrefix == "x86") {
-+ static const BuiltinEntry x86Names[] = {
-+ {Intrinsic::x86_addcarry_u32, 90084}, // __builtin_ia32_addcarry_u32
-+ {Intrinsic::x86_addcarry_u64, 90112}, // __builtin_ia32_addcarry_u64
-+ {Intrinsic::x86_addcarryx_u32, 90140}, // __builtin_ia32_addcarryx_u32
-+ {Intrinsic::x86_addcarryx_u64, 90169}, // __builtin_ia32_addcarryx_u64
-+ {Intrinsic::x86_avx512_mask_add_pd_512, 96702}, // __builtin_ia32_addpd512_mask
-+ {Intrinsic::x86_avx512_mask_add_ps_512, 96731}, // __builtin_ia32_addps512_mask
-+ {Intrinsic::x86_avx512_mask_add_sd_round, 96760}, // __builtin_ia32_addsd_round_mask
-+ {Intrinsic::x86_avx512_mask_add_ss_round, 96792}, // __builtin_ia32_addss_round_mask
-+ {Intrinsic::x86_sse3_addsub_pd, 129309}, // __builtin_ia32_addsubpd
-+ {Intrinsic::x86_avx_addsub_pd_256, 90365}, // __builtin_ia32_addsubpd256
-+ {Intrinsic::x86_sse3_addsub_ps, 129333}, // __builtin_ia32_addsubps
-+ {Intrinsic::x86_avx_addsub_ps_256, 90392}, // __builtin_ia32_addsubps256
-+ {Intrinsic::x86_aesni_aesdec, 90198}, // __builtin_ia32_aesdec128
-+ {Intrinsic::x86_aesni_aesdeclast, 90223}, // __builtin_ia32_aesdeclast128
-+ {Intrinsic::x86_aesni_aesenc, 90252}, // __builtin_ia32_aesenc128
-+ {Intrinsic::x86_aesni_aesenclast, 90277}, // __builtin_ia32_aesenclast128
-+ {Intrinsic::x86_aesni_aesimc, 90306}, // __builtin_ia32_aesimc128
-+ {Intrinsic::x86_aesni_aeskeygenassist, 90331}, // __builtin_ia32_aeskeygenassist128
-+ {Intrinsic::x86_bmi_bextr_32, 123451}, // __builtin_ia32_bextr_u32
-+ {Intrinsic::x86_bmi_bextr_64, 123476}, // __builtin_ia32_bextr_u64
-+ {Intrinsic::x86_tbm_bextri_u32, 131307}, // __builtin_ia32_bextri_u32
-+ {Intrinsic::x86_tbm_bextri_u64, 131333}, // __builtin_ia32_bextri_u64
-+ {Intrinsic::x86_sse41_blendvpd, 129510}, // __builtin_ia32_blendvpd
-+ {Intrinsic::x86_avx_blendv_pd_256, 90419}, // __builtin_ia32_blendvpd256
-+ {Intrinsic::x86_sse41_blendvps, 129534}, // __builtin_ia32_blendvps
-+ {Intrinsic::x86_avx_blendv_ps_256, 90446}, // __builtin_ia32_blendvps256
-+ {Intrinsic::x86_avx512_mask_broadcastf32x2_256, 96824}, // __builtin_ia32_broadcastf32x2_256_mask
-+ {Intrinsic::x86_avx512_mask_broadcastf32x2_512, 96863}, // __builtin_ia32_broadcastf32x2_512_mask
-+ {Intrinsic::x86_avx512_mask_broadcastf32x4_256, 96902}, // __builtin_ia32_broadcastf32x4_256_mask
-+ {Intrinsic::x86_avx512_mask_broadcastf32x4_512, 96941}, // __builtin_ia32_broadcastf32x4_512
-+ {Intrinsic::x86_avx512_mask_broadcastf32x8_512, 96975}, // __builtin_ia32_broadcastf32x8_512_mask
-+ {Intrinsic::x86_avx512_mask_broadcastf64x2_256, 97014}, // __builtin_ia32_broadcastf64x2_256_mask
-+ {Intrinsic::x86_avx512_mask_broadcastf64x2_512, 97053}, // __builtin_ia32_broadcastf64x2_512_mask
-+ {Intrinsic::x86_avx512_mask_broadcastf64x4_512, 97092}, // __builtin_ia32_broadcastf64x4_512
-+ {Intrinsic::x86_avx512_mask_broadcasti32x2_128, 97126}, // __builtin_ia32_broadcasti32x2_128_mask
-+ {Intrinsic::x86_avx512_mask_broadcasti32x2_256, 97165}, // __builtin_ia32_broadcasti32x2_256_mask
-+ {Intrinsic::x86_avx512_mask_broadcasti32x2_512, 97204}, // __builtin_ia32_broadcasti32x2_512_mask
-+ {Intrinsic::x86_avx512_mask_broadcasti32x4_256, 97243}, // __builtin_ia32_broadcasti32x4_256_mask
-+ {Intrinsic::x86_avx512_mask_broadcasti32x4_512, 97282}, // __builtin_ia32_broadcasti32x4_512
-+ {Intrinsic::x86_avx512_mask_broadcasti32x8_512, 97316}, // __builtin_ia32_broadcasti32x8_512_mask
-+ {Intrinsic::x86_avx512_mask_broadcasti64x2_256, 97355}, // __builtin_ia32_broadcasti64x2_256_mask
-+ {Intrinsic::x86_avx512_mask_broadcasti64x2_512, 97394}, // __builtin_ia32_broadcasti64x2_512_mask
-+ {Intrinsic::x86_avx512_mask_broadcasti64x4_512, 97433}, // __builtin_ia32_broadcasti64x4_512
-+ {Intrinsic::x86_avx512_broadcastmb_128, 94325}, // __builtin_ia32_broadcastmb128
-+ {Intrinsic::x86_avx512_broadcastmb_256, 94355}, // __builtin_ia32_broadcastmb256
-+ {Intrinsic::x86_avx512_broadcastmb_512, 94385}, // __builtin_ia32_broadcastmb512
-+ {Intrinsic::x86_avx512_broadcastmw_128, 94415}, // __builtin_ia32_broadcastmw128
-+ {Intrinsic::x86_avx512_broadcastmw_256, 94445}, // __builtin_ia32_broadcastmw256
-+ {Intrinsic::x86_avx512_broadcastmw_512, 94475}, // __builtin_ia32_broadcastmw512
-+ {Intrinsic::x86_bmi_bzhi_64, 123524}, // __builtin_ia32_bzhi_di
-+ {Intrinsic::x86_bmi_bzhi_32, 123501}, // __builtin_ia32_bzhi_si
-+ {Intrinsic::x86_sse2_clflush, 127574}, // __builtin_ia32_clflush
-+ {Intrinsic::x86_clflushopt, 123639}, // __builtin_ia32_clflushopt
-+ {Intrinsic::x86_avx512_mask_cmp_pd_128, 97467}, // __builtin_ia32_cmppd128_mask
-+ {Intrinsic::x86_avx512_mask_cmp_pd_256, 97496}, // __builtin_ia32_cmppd256_mask
-+ {Intrinsic::x86_avx512_mask_cmp_pd_512, 97525}, // __builtin_ia32_cmppd512_mask
-+ {Intrinsic::x86_avx512_mask_cmp_ps_128, 97554}, // __builtin_ia32_cmpps128_mask
-+ {Intrinsic::x86_avx512_mask_cmp_ps_256, 97583}, // __builtin_ia32_cmpps256_mask
-+ {Intrinsic::x86_avx512_mask_cmp_ps_512, 97612}, // __builtin_ia32_cmpps512_mask
-+ {Intrinsic::x86_sse2_cmp_sd, 127597}, // __builtin_ia32_cmpsd
-+ {Intrinsic::x86_avx512_mask_cmp_sd, 97641}, // __builtin_ia32_cmpsd_mask
-+ {Intrinsic::x86_sse_cmp_ss, 126749}, // __builtin_ia32_cmpss
-+ {Intrinsic::x86_avx512_mask_cmp_ss, 97667}, // __builtin_ia32_cmpss_mask
-+ {Intrinsic::x86_sse_comieq_ss, 126770}, // __builtin_ia32_comieq
-+ {Intrinsic::x86_sse_comige_ss, 126792}, // __builtin_ia32_comige
-+ {Intrinsic::x86_sse_comigt_ss, 126814}, // __builtin_ia32_comigt
-+ {Intrinsic::x86_sse_comile_ss, 126836}, // __builtin_ia32_comile
-+ {Intrinsic::x86_sse_comilt_ss, 126858}, // __builtin_ia32_comilt
-+ {Intrinsic::x86_sse_comineq_ss, 126880}, // __builtin_ia32_comineq
-+ {Intrinsic::x86_sse2_comieq_sd, 127618}, // __builtin_ia32_comisdeq
-+ {Intrinsic::x86_sse2_comige_sd, 127642}, // __builtin_ia32_comisdge
-+ {Intrinsic::x86_sse2_comigt_sd, 127666}, // __builtin_ia32_comisdgt
-+ {Intrinsic::x86_sse2_comile_sd, 127690}, // __builtin_ia32_comisdle
-+ {Intrinsic::x86_sse2_comilt_sd, 127714}, // __builtin_ia32_comisdlt
-+ {Intrinsic::x86_sse2_comineq_sd, 127738}, // __builtin_ia32_comisdneq
-+ {Intrinsic::x86_avx512_mask_compress_pd_128, 97795}, // __builtin_ia32_compressdf128_mask
-+ {Intrinsic::x86_avx512_mask_compress_pd_256, 97829}, // __builtin_ia32_compressdf256_mask
-+ {Intrinsic::x86_avx512_mask_compress_pd_512, 97863}, // __builtin_ia32_compressdf512_mask
-+ {Intrinsic::x86_avx512_mask_compress_q_128, 97999}, // __builtin_ia32_compressdi128_mask
-+ {Intrinsic::x86_avx512_mask_compress_q_256, 98033}, // __builtin_ia32_compressdi256_mask
-+ {Intrinsic::x86_avx512_mask_compress_q_512, 98067}, // __builtin_ia32_compressdi512_mask
-+ {Intrinsic::x86_avx512_mask_compress_ps_128, 97897}, // __builtin_ia32_compresssf128_mask
-+ {Intrinsic::x86_avx512_mask_compress_ps_256, 97931}, // __builtin_ia32_compresssf256_mask
-+ {Intrinsic::x86_avx512_mask_compress_ps_512, 97965}, // __builtin_ia32_compresssf512_mask
-+ {Intrinsic::x86_avx512_mask_compress_d_128, 97693}, // __builtin_ia32_compresssi128_mask
-+ {Intrinsic::x86_avx512_mask_compress_d_256, 97727}, // __builtin_ia32_compresssi256_mask
-+ {Intrinsic::x86_avx512_mask_compress_d_512, 97761}, // __builtin_ia32_compresssi512_mask
-+ {Intrinsic::x86_avx512_mask_compress_store_pd_128, 98218}, // __builtin_ia32_compressstoredf128_mask
-+ {Intrinsic::x86_avx512_mask_compress_store_pd_256, 98257}, // __builtin_ia32_compressstoredf256_mask
-+ {Intrinsic::x86_avx512_mask_compress_store_pd_512, 98296}, // __builtin_ia32_compressstoredf512_mask
-+ {Intrinsic::x86_avx512_mask_compress_store_q_128, 98452}, // __builtin_ia32_compressstoredi128_mask
-+ {Intrinsic::x86_avx512_mask_compress_store_q_256, 98491}, // __builtin_ia32_compressstoredi256_mask
-+ {Intrinsic::x86_avx512_mask_compress_store_q_512, 98530}, // __builtin_ia32_compressstoredi512_mask
-+ {Intrinsic::x86_avx512_mask_compress_store_ps_128, 98335}, // __builtin_ia32_compressstoresf128_mask
-+ {Intrinsic::x86_avx512_mask_compress_store_ps_256, 98374}, // __builtin_ia32_compressstoresf256_mask
-+ {Intrinsic::x86_avx512_mask_compress_store_ps_512, 98413}, // __builtin_ia32_compressstoresf512_mask
-+ {Intrinsic::x86_avx512_mask_compress_store_d_128, 98101}, // __builtin_ia32_compressstoresi128_mask
-+ {Intrinsic::x86_avx512_mask_compress_store_d_256, 98140}, // __builtin_ia32_compressstoresi256_mask
-+ {Intrinsic::x86_avx512_mask_compress_store_d_512, 98179}, // __builtin_ia32_compressstoresi512_mask
-+ {Intrinsic::x86_sse42_crc32_64_64, 130021}, // __builtin_ia32_crc32di
-+ {Intrinsic::x86_sse42_crc32_32_16, 129952}, // __builtin_ia32_crc32hi
-+ {Intrinsic::x86_sse42_crc32_32_8, 129998}, // __builtin_ia32_crc32qi
-+ {Intrinsic::x86_sse42_crc32_32_32, 129975}, // __builtin_ia32_crc32si
-+ {Intrinsic::x86_avx512_cvtb2mask_128, 94505}, // __builtin_ia32_cvtb2mask128
-+ {Intrinsic::x86_avx512_cvtb2mask_256, 94533}, // __builtin_ia32_cvtb2mask256
-+ {Intrinsic::x86_avx512_cvtb2mask_512, 94561}, // __builtin_ia32_cvtb2mask512
-+ {Intrinsic::x86_avx512_cvtd2mask_128, 94589}, // __builtin_ia32_cvtd2mask128
-+ {Intrinsic::x86_avx512_cvtd2mask_256, 94617}, // __builtin_ia32_cvtd2mask256
-+ {Intrinsic::x86_avx512_cvtd2mask_512, 94645}, // __builtin_ia32_cvtd2mask512
-+ {Intrinsic::x86_sse2_cvtdq2ps, 127763}, // __builtin_ia32_cvtdq2ps
-+ {Intrinsic::x86_avx512_mask_cvtdq2ps_128, 98791}, // __builtin_ia32_cvtdq2ps128_mask
-+ {Intrinsic::x86_avx_cvtdq2_ps_256, 90554}, // __builtin_ia32_cvtdq2ps256
-+ {Intrinsic::x86_avx512_mask_cvtdq2ps_256, 98823}, // __builtin_ia32_cvtdq2ps256_mask
-+ {Intrinsic::x86_avx512_mask_cvtdq2ps_512, 98855}, // __builtin_ia32_cvtdq2ps512_mask
-+ {Intrinsic::x86_avx512_cvtmask2b_128, 94673}, // __builtin_ia32_cvtmask2b128
-+ {Intrinsic::x86_avx512_cvtmask2b_256, 94701}, // __builtin_ia32_cvtmask2b256
-+ {Intrinsic::x86_avx512_cvtmask2b_512, 94729}, // __builtin_ia32_cvtmask2b512
-+ {Intrinsic::x86_avx512_cvtmask2d_128, 94757}, // __builtin_ia32_cvtmask2d128
-+ {Intrinsic::x86_avx512_cvtmask2d_256, 94785}, // __builtin_ia32_cvtmask2d256
-+ {Intrinsic::x86_avx512_cvtmask2d_512, 94813}, // __builtin_ia32_cvtmask2d512
-+ {Intrinsic::x86_avx512_cvtmask2q_128, 94841}, // __builtin_ia32_cvtmask2q128
-+ {Intrinsic::x86_avx512_cvtmask2q_256, 94869}, // __builtin_ia32_cvtmask2q256
-+ {Intrinsic::x86_avx512_cvtmask2q_512, 94897}, // __builtin_ia32_cvtmask2q512
-+ {Intrinsic::x86_avx512_cvtmask2w_128, 94925}, // __builtin_ia32_cvtmask2w128
-+ {Intrinsic::x86_avx512_cvtmask2w_256, 94953}, // __builtin_ia32_cvtmask2w256
-+ {Intrinsic::x86_avx512_cvtmask2w_512, 94981}, // __builtin_ia32_cvtmask2w512
-+ {Intrinsic::x86_sse2_cvtpd2dq, 127787}, // __builtin_ia32_cvtpd2dq
-+ {Intrinsic::x86_avx512_mask_cvtpd2dq_128, 98887}, // __builtin_ia32_cvtpd2dq128_mask
-+ {Intrinsic::x86_avx_cvt_pd2dq_256, 90500}, // __builtin_ia32_cvtpd2dq256
-+ {Intrinsic::x86_avx512_mask_cvtpd2dq_256, 98919}, // __builtin_ia32_cvtpd2dq256_mask
-+ {Intrinsic::x86_avx512_mask_cvtpd2dq_512, 98951}, // __builtin_ia32_cvtpd2dq512_mask
-+ {Intrinsic::x86_sse_cvtpd2pi, 126903}, // __builtin_ia32_cvtpd2pi
-+ {Intrinsic::x86_sse2_cvtpd2ps, 127811}, // __builtin_ia32_cvtpd2ps
-+ {Intrinsic::x86_avx_cvt_pd2_ps_256, 90473}, // __builtin_ia32_cvtpd2ps256
-+ {Intrinsic::x86_avx512_mask_cvtpd2ps_256, 99012}, // __builtin_ia32_cvtpd2ps256_mask
-+ {Intrinsic::x86_avx512_mask_cvtpd2ps_512, 99044}, // __builtin_ia32_cvtpd2ps512_mask
-+ {Intrinsic::x86_avx512_mask_cvtpd2ps, 98983}, // __builtin_ia32_cvtpd2ps_mask
-+ {Intrinsic::x86_avx512_mask_cvtpd2qq_128, 99076}, // __builtin_ia32_cvtpd2qq128_mask
-+ {Intrinsic::x86_avx512_mask_cvtpd2qq_256, 99108}, // __builtin_ia32_cvtpd2qq256_mask
-+ {Intrinsic::x86_avx512_mask_cvtpd2qq_512, 99140}, // __builtin_ia32_cvtpd2qq512_mask
-+ {Intrinsic::x86_avx512_mask_cvtpd2udq_128, 99172}, // __builtin_ia32_cvtpd2udq128_mask
-+ {Intrinsic::x86_avx512_mask_cvtpd2udq_256, 99205}, // __builtin_ia32_cvtpd2udq256_mask
-+ {Intrinsic::x86_avx512_mask_cvtpd2udq_512, 99238}, // __builtin_ia32_cvtpd2udq512_mask
-+ {Intrinsic::x86_avx512_mask_cvtpd2uqq_128, 99271}, // __builtin_ia32_cvtpd2uqq128_mask
-+ {Intrinsic::x86_avx512_mask_cvtpd2uqq_256, 99304}, // __builtin_ia32_cvtpd2uqq256_mask
-+ {Intrinsic::x86_avx512_mask_cvtpd2uqq_512, 99337}, // __builtin_ia32_cvtpd2uqq512_mask
-+ {Intrinsic::x86_sse_cvtpi2pd, 126927}, // __builtin_ia32_cvtpi2pd
-+ {Intrinsic::x86_sse_cvtpi2ps, 126951}, // __builtin_ia32_cvtpi2ps
-+ {Intrinsic::x86_sse2_cvtps2dq, 127835}, // __builtin_ia32_cvtps2dq
-+ {Intrinsic::x86_avx512_mask_cvtps2dq_128, 99370}, // __builtin_ia32_cvtps2dq128_mask
-+ {Intrinsic::x86_avx_cvt_ps2dq_256, 90527}, // __builtin_ia32_cvtps2dq256
-+ {Intrinsic::x86_avx512_mask_cvtps2dq_256, 99402}, // __builtin_ia32_cvtps2dq256_mask
-+ {Intrinsic::x86_avx512_mask_cvtps2dq_512, 99434}, // __builtin_ia32_cvtps2dq512_mask
-+ {Intrinsic::x86_avx512_mask_cvtps2pd_128, 99466}, // __builtin_ia32_cvtps2pd128_mask
-+ {Intrinsic::x86_avx512_mask_cvtps2pd_256, 99498}, // __builtin_ia32_cvtps2pd256_mask
-+ {Intrinsic::x86_avx512_mask_cvtps2pd_512, 99530}, // __builtin_ia32_cvtps2pd512_mask
-+ {Intrinsic::x86_sse_cvtps2pi, 126975}, // __builtin_ia32_cvtps2pi
-+ {Intrinsic::x86_avx512_mask_cvtps2qq_128, 99562}, // __builtin_ia32_cvtps2qq128_mask
-+ {Intrinsic::x86_avx512_mask_cvtps2qq_256, 99594}, // __builtin_ia32_cvtps2qq256_mask
-+ {Intrinsic::x86_avx512_mask_cvtps2qq_512, 99626}, // __builtin_ia32_cvtps2qq512_mask
-+ {Intrinsic::x86_avx512_mask_cvtps2udq_128, 99658}, // __builtin_ia32_cvtps2udq128_mask
-+ {Intrinsic::x86_avx512_mask_cvtps2udq_256, 99691}, // __builtin_ia32_cvtps2udq256_mask
-+ {Intrinsic::x86_avx512_mask_cvtps2udq_512, 99724}, // __builtin_ia32_cvtps2udq512_mask
-+ {Intrinsic::x86_avx512_mask_cvtps2uqq_128, 99757}, // __builtin_ia32_cvtps2uqq128_mask
-+ {Intrinsic::x86_avx512_mask_cvtps2uqq_256, 99790}, // __builtin_ia32_cvtps2uqq256_mask
-+ {Intrinsic::x86_avx512_mask_cvtps2uqq_512, 99823}, // __builtin_ia32_cvtps2uqq512_mask
-+ {Intrinsic::x86_avx512_cvtq2mask_128, 95009}, // __builtin_ia32_cvtq2mask128
-+ {Intrinsic::x86_avx512_cvtq2mask_256, 95037}, // __builtin_ia32_cvtq2mask256
-+ {Intrinsic::x86_avx512_cvtq2mask_512, 95065}, // __builtin_ia32_cvtq2mask512
-+ {Intrinsic::x86_avx512_mask_cvtqq2pd_128, 99856}, // __builtin_ia32_cvtqq2pd128_mask
-+ {Intrinsic::x86_avx512_mask_cvtqq2pd_256, 99888}, // __builtin_ia32_cvtqq2pd256_mask
-+ {Intrinsic::x86_avx512_mask_cvtqq2pd_512, 99920}, // __builtin_ia32_cvtqq2pd512_mask
-+ {Intrinsic::x86_avx512_mask_cvtqq2ps_128, 99952}, // __builtin_ia32_cvtqq2ps128_mask
-+ {Intrinsic::x86_avx512_mask_cvtqq2ps_256, 99984}, // __builtin_ia32_cvtqq2ps256_mask
-+ {Intrinsic::x86_avx512_mask_cvtqq2ps_512, 100016}, // __builtin_ia32_cvtqq2ps512_mask
-+ {Intrinsic::x86_sse2_cvtsd2si, 127859}, // __builtin_ia32_cvtsd2si
-+ {Intrinsic::x86_sse2_cvtsd2si64, 127883}, // __builtin_ia32_cvtsd2si64
-+ {Intrinsic::x86_sse2_cvtsd2ss, 127909}, // __builtin_ia32_cvtsd2ss
-+ {Intrinsic::x86_avx512_mask_cvtsd2ss_round, 100048}, // __builtin_ia32_cvtsd2ss_round_mask
-+ {Intrinsic::x86_avx512_cvtsi2sd64, 95093}, // __builtin_ia32_cvtsi2sd64
-+ {Intrinsic::x86_avx512_cvtsi2ss32, 95119}, // __builtin_ia32_cvtsi2ss32
-+ {Intrinsic::x86_avx512_cvtsi2ss64, 95145}, // __builtin_ia32_cvtsi2ss64
-+ {Intrinsic::x86_avx512_mask_cvtss2sd_round, 100083}, // __builtin_ia32_cvtss2sd_round_mask
-+ {Intrinsic::x86_sse_cvtss2si, 126999}, // __builtin_ia32_cvtss2si
-+ {Intrinsic::x86_sse_cvtss2si64, 127023}, // __builtin_ia32_cvtss2si64
-+ {Intrinsic::x86_sse2_cvttpd2dq, 127933}, // __builtin_ia32_cvttpd2dq
-+ {Intrinsic::x86_avx512_mask_cvttpd2dq_128, 100118}, // __builtin_ia32_cvttpd2dq128_mask
-+ {Intrinsic::x86_avx_cvtt_pd2dq_256, 90581}, // __builtin_ia32_cvttpd2dq256
-+ {Intrinsic::x86_avx512_mask_cvttpd2dq_256, 100151}, // __builtin_ia32_cvttpd2dq256_mask
-+ {Intrinsic::x86_avx512_mask_cvttpd2dq_512, 100184}, // __builtin_ia32_cvttpd2dq512_mask
-+ {Intrinsic::x86_sse_cvttpd2pi, 127049}, // __builtin_ia32_cvttpd2pi
-+ {Intrinsic::x86_avx512_mask_cvttpd2qq_128, 100217}, // __builtin_ia32_cvttpd2qq128_mask
-+ {Intrinsic::x86_avx512_mask_cvttpd2qq_256, 100250}, // __builtin_ia32_cvttpd2qq256_mask
-+ {Intrinsic::x86_avx512_mask_cvttpd2qq_512, 100283}, // __builtin_ia32_cvttpd2qq512_mask
-+ {Intrinsic::x86_avx512_mask_cvttpd2udq_128, 100316}, // __builtin_ia32_cvttpd2udq128_mask
-+ {Intrinsic::x86_avx512_mask_cvttpd2udq_256, 100350}, // __builtin_ia32_cvttpd2udq256_mask
-+ {Intrinsic::x86_avx512_mask_cvttpd2udq_512, 100384}, // __builtin_ia32_cvttpd2udq512_mask
-+ {Intrinsic::x86_avx512_mask_cvttpd2uqq_128, 100418}, // __builtin_ia32_cvttpd2uqq128_mask
-+ {Intrinsic::x86_avx512_mask_cvttpd2uqq_256, 100452}, // __builtin_ia32_cvttpd2uqq256_mask
-+ {Intrinsic::x86_avx512_mask_cvttpd2uqq_512, 100486}, // __builtin_ia32_cvttpd2uqq512_mask
-+ {Intrinsic::x86_sse2_cvttps2dq, 127958}, // __builtin_ia32_cvttps2dq
-+ {Intrinsic::x86_avx512_mask_cvttps2dq_128, 100520}, // __builtin_ia32_cvttps2dq128_mask
-+ {Intrinsic::x86_avx_cvtt_ps2dq_256, 90609}, // __builtin_ia32_cvttps2dq256
-+ {Intrinsic::x86_avx512_mask_cvttps2dq_256, 100553}, // __builtin_ia32_cvttps2dq256_mask
-+ {Intrinsic::x86_avx512_mask_cvttps2dq_512, 100586}, // __builtin_ia32_cvttps2dq512_mask
-+ {Intrinsic::x86_sse_cvttps2pi, 127074}, // __builtin_ia32_cvttps2pi
-+ {Intrinsic::x86_avx512_mask_cvttps2qq_128, 100619}, // __builtin_ia32_cvttps2qq128_mask
-+ {Intrinsic::x86_avx512_mask_cvttps2qq_256, 100652}, // __builtin_ia32_cvttps2qq256_mask
-+ {Intrinsic::x86_avx512_mask_cvttps2qq_512, 100685}, // __builtin_ia32_cvttps2qq512_mask
-+ {Intrinsic::x86_avx512_mask_cvttps2udq_128, 100718}, // __builtin_ia32_cvttps2udq128_mask
-+ {Intrinsic::x86_avx512_mask_cvttps2udq_256, 100752}, // __builtin_ia32_cvttps2udq256_mask
-+ {Intrinsic::x86_avx512_mask_cvttps2udq_512, 100786}, // __builtin_ia32_cvttps2udq512_mask
-+ {Intrinsic::x86_avx512_mask_cvttps2uqq_128, 100820}, // __builtin_ia32_cvttps2uqq128_mask
-+ {Intrinsic::x86_avx512_mask_cvttps2uqq_256, 100854}, // __builtin_ia32_cvttps2uqq256_mask
-+ {Intrinsic::x86_avx512_mask_cvttps2uqq_512, 100888}, // __builtin_ia32_cvttps2uqq512_mask
-+ {Intrinsic::x86_sse2_cvttsd2si, 127983}, // __builtin_ia32_cvttsd2si
-+ {Intrinsic::x86_sse2_cvttsd2si64, 128008}, // __builtin_ia32_cvttsd2si64
-+ {Intrinsic::x86_sse_cvttss2si, 127099}, // __builtin_ia32_cvttss2si
-+ {Intrinsic::x86_sse_cvttss2si64, 127124}, // __builtin_ia32_cvttss2si64
-+ {Intrinsic::x86_avx512_mask_cvtudq2ps_128, 100922}, // __builtin_ia32_cvtudq2ps128_mask
-+ {Intrinsic::x86_avx512_mask_cvtudq2ps_256, 100955}, // __builtin_ia32_cvtudq2ps256_mask
-+ {Intrinsic::x86_avx512_mask_cvtudq2ps_512, 100988}, // __builtin_ia32_cvtudq2ps512_mask
-+ {Intrinsic::x86_avx512_mask_cvtuqq2pd_128, 101021}, // __builtin_ia32_cvtuqq2pd128_mask
-+ {Intrinsic::x86_avx512_mask_cvtuqq2pd_256, 101054}, // __builtin_ia32_cvtuqq2pd256_mask
-+ {Intrinsic::x86_avx512_mask_cvtuqq2pd_512, 101087}, // __builtin_ia32_cvtuqq2pd512_mask
-+ {Intrinsic::x86_avx512_mask_cvtuqq2ps_128, 101120}, // __builtin_ia32_cvtuqq2ps128_mask
-+ {Intrinsic::x86_avx512_mask_cvtuqq2ps_256, 101153}, // __builtin_ia32_cvtuqq2ps256_mask
-+ {Intrinsic::x86_avx512_mask_cvtuqq2ps_512, 101186}, // __builtin_ia32_cvtuqq2ps512_mask
-+ {Intrinsic::x86_avx512_cvtusi2sd, 95399}, // __builtin_ia32_cvtusi2sd32
-+ {Intrinsic::x86_avx512_cvtusi642sd, 95453}, // __builtin_ia32_cvtusi2sd64
-+ {Intrinsic::x86_avx512_cvtusi2ss, 95426}, // __builtin_ia32_cvtusi2ss32
-+ {Intrinsic::x86_avx512_cvtusi642ss, 95480}, // __builtin_ia32_cvtusi2ss64
-+ {Intrinsic::x86_avx512_cvtw2mask_128, 95507}, // __builtin_ia32_cvtw2mask128
-+ {Intrinsic::x86_avx512_cvtw2mask_256, 95535}, // __builtin_ia32_cvtw2mask256
-+ {Intrinsic::x86_avx512_cvtw2mask_512, 95563}, // __builtin_ia32_cvtw2mask512
-+ {Intrinsic::x86_avx512_mask_dbpsadbw_128, 101219}, // __builtin_ia32_dbpsadbw128_mask
-+ {Intrinsic::x86_avx512_mask_dbpsadbw_256, 101251}, // __builtin_ia32_dbpsadbw256_mask
-+ {Intrinsic::x86_avx512_mask_dbpsadbw_512, 101283}, // __builtin_ia32_dbpsadbw512_mask
-+ {Intrinsic::x86_avx512_mask_div_pd_512, 101315}, // __builtin_ia32_divpd512_mask
-+ {Intrinsic::x86_avx512_mask_div_ps_512, 101344}, // __builtin_ia32_divps512_mask
-+ {Intrinsic::x86_avx512_mask_div_sd_round, 101373}, // __builtin_ia32_divsd_round_mask
-+ {Intrinsic::x86_avx512_mask_div_ss_round, 101405}, // __builtin_ia32_divss_round_mask
-+ {Intrinsic::x86_sse41_dppd, 129558}, // __builtin_ia32_dppd
-+ {Intrinsic::x86_sse41_dpps, 129578}, // __builtin_ia32_dpps
-+ {Intrinsic::x86_avx_dp_ps_256, 90637}, // __builtin_ia32_dpps256
-+ {Intrinsic::x86_mmx_emms, 124721}, // __builtin_ia32_emms
-+ {Intrinsic::x86_avx512_exp2_pd, 95591}, // __builtin_ia32_exp2pd_mask
-+ {Intrinsic::x86_avx512_exp2_ps, 95618}, // __builtin_ia32_exp2ps_mask
-+ {Intrinsic::x86_avx512_mask_expand_pd_128, 101965}, // __builtin_ia32_expanddf128_mask
-+ {Intrinsic::x86_avx512_mask_expand_pd_256, 101997}, // __builtin_ia32_expanddf256_mask
-+ {Intrinsic::x86_avx512_mask_expand_pd_512, 102029}, // __builtin_ia32_expanddf512_mask
-+ {Intrinsic::x86_avx512_mask_expand_q_128, 102157}, // __builtin_ia32_expanddi128_mask
-+ {Intrinsic::x86_avx512_mask_expand_q_256, 102189}, // __builtin_ia32_expanddi256_mask
-+ {Intrinsic::x86_avx512_mask_expand_q_512, 102221}, // __builtin_ia32_expanddi512_mask
-+ {Intrinsic::x86_avx512_mask_expand_load_pd_128, 101641}, // __builtin_ia32_expandloaddf128_mask
-+ {Intrinsic::x86_avx512_mask_expand_load_pd_256, 101677}, // __builtin_ia32_expandloaddf256_mask
-+ {Intrinsic::x86_avx512_mask_expand_load_pd_512, 101713}, // __builtin_ia32_expandloaddf512_mask
-+ {Intrinsic::x86_avx512_mask_expand_load_q_128, 101857}, // __builtin_ia32_expandloaddi128_mask
-+ {Intrinsic::x86_avx512_mask_expand_load_q_256, 101893}, // __builtin_ia32_expandloaddi256_mask
-+ {Intrinsic::x86_avx512_mask_expand_load_q_512, 101929}, // __builtin_ia32_expandloaddi512_mask
-+ {Intrinsic::x86_avx512_mask_expand_load_ps_128, 101749}, // __builtin_ia32_expandloadsf128_mask
-+ {Intrinsic::x86_avx512_mask_expand_load_ps_256, 101785}, // __builtin_ia32_expandloadsf256_mask
-+ {Intrinsic::x86_avx512_mask_expand_load_ps_512, 101821}, // __builtin_ia32_expandloadsf512_mask
-+ {Intrinsic::x86_avx512_mask_expand_load_d_128, 101533}, // __builtin_ia32_expandloadsi128_mask
-+ {Intrinsic::x86_avx512_mask_expand_load_d_256, 101569}, // __builtin_ia32_expandloadsi256_mask
-+ {Intrinsic::x86_avx512_mask_expand_load_d_512, 101605}, // __builtin_ia32_expandloadsi512_mask
-+ {Intrinsic::x86_avx512_mask_expand_ps_128, 102061}, // __builtin_ia32_expandsf128_mask
-+ {Intrinsic::x86_avx512_mask_expand_ps_256, 102093}, // __builtin_ia32_expandsf256_mask
-+ {Intrinsic::x86_avx512_mask_expand_ps_512, 102125}, // __builtin_ia32_expandsf512_mask
-+ {Intrinsic::x86_avx512_mask_expand_d_128, 101437}, // __builtin_ia32_expandsi128_mask
-+ {Intrinsic::x86_avx512_mask_expand_d_256, 101469}, // __builtin_ia32_expandsi256_mask
-+ {Intrinsic::x86_avx512_mask_expand_d_512, 101501}, // __builtin_ia32_expandsi512_mask
-+ {Intrinsic::x86_avx512_mask_vextractf32x4_256, 114000}, // __builtin_ia32_extractf32x4_256_mask
-+ {Intrinsic::x86_avx512_mask_vextractf32x4_512, 114037}, // __builtin_ia32_extractf32x4_mask
-+ {Intrinsic::x86_avx512_mask_vextractf32x8_512, 114070}, // __builtin_ia32_extractf32x8_mask
-+ {Intrinsic::x86_avx512_mask_vextractf64x2_256, 114103}, // __builtin_ia32_extractf64x2_256_mask
-+ {Intrinsic::x86_avx512_mask_vextractf64x2_512, 114140}, // __builtin_ia32_extractf64x2_512_mask
-+ {Intrinsic::x86_avx512_mask_vextractf64x4_512, 114177}, // __builtin_ia32_extractf64x4_mask
-+ {Intrinsic::x86_avx512_mask_vextracti32x4_256, 114210}, // __builtin_ia32_extracti32x4_256_mask
-+ {Intrinsic::x86_avx512_mask_vextracti32x4_512, 114247}, // __builtin_ia32_extracti32x4_mask
-+ {Intrinsic::x86_avx512_mask_vextracti32x8_512, 114280}, // __builtin_ia32_extracti32x8_mask
-+ {Intrinsic::x86_avx512_mask_vextracti64x2_256, 114313}, // __builtin_ia32_extracti64x2_256_mask
-+ {Intrinsic::x86_avx512_mask_vextracti64x2_512, 114350}, // __builtin_ia32_extracti64x2_512_mask
-+ {Intrinsic::x86_avx512_mask_vextracti64x4_512, 114387}, // __builtin_ia32_extracti64x4_mask
-+ {Intrinsic::x86_sse4a_extrq, 130446}, // __builtin_ia32_extrq
-+ {Intrinsic::x86_sse4a_extrqi, 130467}, // __builtin_ia32_extrqi
-+ {Intrinsic::x86_mmx_femms, 124741}, // __builtin_ia32_femms
-+ {Intrinsic::x86_avx512_mask_fixupimm_pd_128, 102253}, // __builtin_ia32_fixupimmpd128_mask
-+ {Intrinsic::x86_avx512_maskz_fixupimm_pd_128, 117992}, // __builtin_ia32_fixupimmpd128_maskz
-+ {Intrinsic::x86_avx512_mask_fixupimm_pd_256, 102287}, // __builtin_ia32_fixupimmpd256_mask
-+ {Intrinsic::x86_avx512_maskz_fixupimm_pd_256, 118027}, // __builtin_ia32_fixupimmpd256_maskz
-+ {Intrinsic::x86_avx512_mask_fixupimm_pd_512, 102321}, // __builtin_ia32_fixupimmpd512_mask
-+ {Intrinsic::x86_avx512_maskz_fixupimm_pd_512, 118062}, // __builtin_ia32_fixupimmpd512_maskz
-+ {Intrinsic::x86_avx512_mask_fixupimm_ps_128, 102355}, // __builtin_ia32_fixupimmps128_mask
-+ {Intrinsic::x86_avx512_maskz_fixupimm_ps_128, 118097}, // __builtin_ia32_fixupimmps128_maskz
-+ {Intrinsic::x86_avx512_mask_fixupimm_ps_256, 102389}, // __builtin_ia32_fixupimmps256_mask
-+ {Intrinsic::x86_avx512_maskz_fixupimm_ps_256, 118132}, // __builtin_ia32_fixupimmps256_maskz
-+ {Intrinsic::x86_avx512_mask_fixupimm_ps_512, 102423}, // __builtin_ia32_fixupimmps512_mask
-+ {Intrinsic::x86_avx512_maskz_fixupimm_ps_512, 118167}, // __builtin_ia32_fixupimmps512_maskz
-+ {Intrinsic::x86_avx512_mask_fixupimm_sd, 102457}, // __builtin_ia32_fixupimmsd_mask
-+ {Intrinsic::x86_avx512_maskz_fixupimm_sd, 118202}, // __builtin_ia32_fixupimmsd_maskz
-+ {Intrinsic::x86_avx512_mask_fixupimm_ss, 102488}, // __builtin_ia32_fixupimmss_mask
-+ {Intrinsic::x86_avx512_maskz_fixupimm_ss, 118234}, // __builtin_ia32_fixupimmss_maskz
-+ {Intrinsic::x86_avx512_mask_fpclass_pd_128, 102519}, // __builtin_ia32_fpclasspd128_mask
-+ {Intrinsic::x86_avx512_mask_fpclass_pd_256, 102552}, // __builtin_ia32_fpclasspd256_mask
-+ {Intrinsic::x86_avx512_mask_fpclass_pd_512, 102585}, // __builtin_ia32_fpclasspd512_mask
-+ {Intrinsic::x86_avx512_mask_fpclass_ps_128, 102618}, // __builtin_ia32_fpclassps128_mask
-+ {Intrinsic::x86_avx512_mask_fpclass_ps_256, 102651}, // __builtin_ia32_fpclassps256_mask
-+ {Intrinsic::x86_avx512_mask_fpclass_ps_512, 102684}, // __builtin_ia32_fpclassps512_mask
-+ {Intrinsic::x86_avx512_mask_fpclass_sd, 102717}, // __builtin_ia32_fpclasssd_mask
-+ {Intrinsic::x86_avx512_mask_fpclass_ss, 102747}, // __builtin_ia32_fpclassss_mask
-+ {Intrinsic::x86_fxrstor, 124627}, // __builtin_ia32_fxrstor
-+ {Intrinsic::x86_fxrstor64, 124650}, // __builtin_ia32_fxrstor64
-+ {Intrinsic::x86_fxsave, 124675}, // __builtin_ia32_fxsave
-+ {Intrinsic::x86_fxsave64, 124697}, // __builtin_ia32_fxsave64
-+ {Intrinsic::x86_avx512_gather3div2_df, 95873}, // __builtin_ia32_gather3div2df
-+ {Intrinsic::x86_avx512_gather3div2_di, 95902}, // __builtin_ia32_gather3div2di
-+ {Intrinsic::x86_avx512_gather3div4_df, 95931}, // __builtin_ia32_gather3div4df
-+ {Intrinsic::x86_avx512_gather3div4_di, 95960}, // __builtin_ia32_gather3div4di
-+ {Intrinsic::x86_avx512_gather3div4_sf, 95989}, // __builtin_ia32_gather3div4sf
-+ {Intrinsic::x86_avx512_gather3div4_si, 96018}, // __builtin_ia32_gather3div4si
-+ {Intrinsic::x86_avx512_gather3div8_sf, 96047}, // __builtin_ia32_gather3div8sf
-+ {Intrinsic::x86_avx512_gather3div8_si, 96076}, // __builtin_ia32_gather3div8si
-+ {Intrinsic::x86_avx512_gather3siv2_df, 96105}, // __builtin_ia32_gather3siv2df
-+ {Intrinsic::x86_avx512_gather3siv2_di, 96134}, // __builtin_ia32_gather3siv2di
-+ {Intrinsic::x86_avx512_gather3siv4_df, 96163}, // __builtin_ia32_gather3siv4df
-+ {Intrinsic::x86_avx512_gather3siv4_di, 96192}, // __builtin_ia32_gather3siv4di
-+ {Intrinsic::x86_avx512_gather3siv4_sf, 96221}, // __builtin_ia32_gather3siv4sf
-+ {Intrinsic::x86_avx512_gather3siv4_si, 96250}, // __builtin_ia32_gather3siv4si
-+ {Intrinsic::x86_avx512_gather3siv8_sf, 96279}, // __builtin_ia32_gather3siv8sf
-+ {Intrinsic::x86_avx512_gather3siv8_si, 96308}, // __builtin_ia32_gather3siv8si
-+ {Intrinsic::x86_avx2_gather_d_d, 91965}, // __builtin_ia32_gatherd_d
-+ {Intrinsic::x86_avx2_gather_d_d_256, 91990}, // __builtin_ia32_gatherd_d256
-+ {Intrinsic::x86_avx2_gather_d_pd, 92018}, // __builtin_ia32_gatherd_pd
-+ {Intrinsic::x86_avx2_gather_d_pd_256, 92044}, // __builtin_ia32_gatherd_pd256
-+ {Intrinsic::x86_avx2_gather_d_ps, 92073}, // __builtin_ia32_gatherd_ps
-+ {Intrinsic::x86_avx2_gather_d_ps_256, 92099}, // __builtin_ia32_gatherd_ps256
-+ {Intrinsic::x86_avx2_gather_d_q, 92128}, // __builtin_ia32_gatherd_q
-+ {Intrinsic::x86_avx2_gather_d_q_256, 92153}, // __builtin_ia32_gatherd_q256
-+ {Intrinsic::x86_avx512_gather_qps_512, 95844}, // __builtin_ia32_gatherdiv16sf
-+ {Intrinsic::x86_avx512_gather_qpi_512, 95787}, // __builtin_ia32_gatherdiv16si
-+ {Intrinsic::x86_avx512_gather_qpd_512, 95759}, // __builtin_ia32_gatherdiv8df
-+ {Intrinsic::x86_avx512_gather_qpq_512, 95816}, // __builtin_ia32_gatherdiv8di
-+ {Intrinsic::x86_avx512_gatherpf_dpd_512, 96337}, // __builtin_ia32_gatherpfdpd
-+ {Intrinsic::x86_avx512_gatherpf_dps_512, 96364}, // __builtin_ia32_gatherpfdps
-+ {Intrinsic::x86_avx512_gatherpf_qpd_512, 96391}, // __builtin_ia32_gatherpfqpd
-+ {Intrinsic::x86_avx512_gatherpf_qps_512, 96418}, // __builtin_ia32_gatherpfqps
-+ {Intrinsic::x86_avx2_gather_q_d, 92181}, // __builtin_ia32_gatherq_d
-+ {Intrinsic::x86_avx2_gather_q_d_256, 92206}, // __builtin_ia32_gatherq_d256
-+ {Intrinsic::x86_avx2_gather_q_pd, 92234}, // __builtin_ia32_gatherq_pd
-+ {Intrinsic::x86_avx2_gather_q_pd_256, 92260}, // __builtin_ia32_gatherq_pd256
-+ {Intrinsic::x86_avx2_gather_q_ps, 92289}, // __builtin_ia32_gatherq_ps
-+ {Intrinsic::x86_avx2_gather_q_ps_256, 92315}, // __builtin_ia32_gatherq_ps256
-+ {Intrinsic::x86_avx2_gather_q_q, 92344}, // __builtin_ia32_gatherq_q
-+ {Intrinsic::x86_avx2_gather_q_q_256, 92369}, // __builtin_ia32_gatherq_q256
-+ {Intrinsic::x86_avx512_gather_dps_512, 95730}, // __builtin_ia32_gathersiv16sf
-+ {Intrinsic::x86_avx512_gather_dpi_512, 95673}, // __builtin_ia32_gathersiv16si
-+ {Intrinsic::x86_avx512_gather_dpd_512, 95645}, // __builtin_ia32_gathersiv8df
-+ {Intrinsic::x86_avx512_gather_dpq_512, 95702}, // __builtin_ia32_gathersiv8di
-+ {Intrinsic::x86_avx512_mask_getexp_pd_128, 102777}, // __builtin_ia32_getexppd128_mask
-+ {Intrinsic::x86_avx512_mask_getexp_pd_256, 102809}, // __builtin_ia32_getexppd256_mask
-+ {Intrinsic::x86_avx512_mask_getexp_pd_512, 102841}, // __builtin_ia32_getexppd512_mask
-+ {Intrinsic::x86_avx512_mask_getexp_ps_128, 102873}, // __builtin_ia32_getexpps128_mask
-+ {Intrinsic::x86_avx512_mask_getexp_ps_256, 102905}, // __builtin_ia32_getexpps256_mask
-+ {Intrinsic::x86_avx512_mask_getexp_ps_512, 102937}, // __builtin_ia32_getexpps512_mask
-+ {Intrinsic::x86_avx512_mask_getexp_sd, 102969}, // __builtin_ia32_getexpsd128_round_mask
-+ {Intrinsic::x86_avx512_mask_getexp_ss, 103007}, // __builtin_ia32_getexpss128_round_mask
-+ {Intrinsic::x86_avx512_mask_getmant_pd_128, 103045}, // __builtin_ia32_getmantpd128_mask
-+ {Intrinsic::x86_avx512_mask_getmant_pd_256, 103078}, // __builtin_ia32_getmantpd256_mask
-+ {Intrinsic::x86_avx512_mask_getmant_pd_512, 103111}, // __builtin_ia32_getmantpd512_mask
-+ {Intrinsic::x86_avx512_mask_getmant_ps_128, 103144}, // __builtin_ia32_getmantps128_mask
-+ {Intrinsic::x86_avx512_mask_getmant_ps_256, 103177}, // __builtin_ia32_getmantps256_mask
-+ {Intrinsic::x86_avx512_mask_getmant_ps_512, 103210}, // __builtin_ia32_getmantps512_mask
-+ {Intrinsic::x86_avx512_mask_getmant_sd, 103243}, // __builtin_ia32_getmantsd_round_mask
-+ {Intrinsic::x86_avx512_mask_getmant_ss, 103279}, // __builtin_ia32_getmantss_round_mask
-+ {Intrinsic::x86_sse3_hadd_pd, 129357}, // __builtin_ia32_haddpd
-+ {Intrinsic::x86_avx_hadd_pd_256, 90660}, // __builtin_ia32_haddpd256
-+ {Intrinsic::x86_sse3_hadd_ps, 129379}, // __builtin_ia32_haddps
-+ {Intrinsic::x86_avx_hadd_ps_256, 90685}, // __builtin_ia32_haddps256
-+ {Intrinsic::x86_sse3_hsub_pd, 129401}, // __builtin_ia32_hsubpd
-+ {Intrinsic::x86_avx_hsub_pd_256, 90710}, // __builtin_ia32_hsubpd256
-+ {Intrinsic::x86_sse3_hsub_ps, 129423}, // __builtin_ia32_hsubps
-+ {Intrinsic::x86_avx_hsub_ps_256, 90735}, // __builtin_ia32_hsubps256
-+ {Intrinsic::x86_avx512_mask_insertf32x4_256, 103315}, // __builtin_ia32_insertf32x4_256_mask
-+ {Intrinsic::x86_avx512_mask_insertf32x4_512, 103351}, // __builtin_ia32_insertf32x4_mask
-+ {Intrinsic::x86_avx512_mask_insertf32x8_512, 103383}, // __builtin_ia32_insertf32x8_mask
-+ {Intrinsic::x86_avx512_mask_insertf64x2_256, 103415}, // __builtin_ia32_insertf64x2_256_mask
-+ {Intrinsic::x86_avx512_mask_insertf64x2_512, 103451}, // __builtin_ia32_insertf64x2_512_mask
-+ {Intrinsic::x86_avx512_mask_insertf64x4_512, 103487}, // __builtin_ia32_insertf64x4_mask
-+ {Intrinsic::x86_avx512_mask_inserti32x4_256, 103519}, // __builtin_ia32_inserti32x4_256_mask
-+ {Intrinsic::x86_avx512_mask_inserti32x4_512, 103555}, // __builtin_ia32_inserti32x4_mask
-+ {Intrinsic::x86_avx512_mask_inserti32x8_512, 103587}, // __builtin_ia32_inserti32x8_mask
-+ {Intrinsic::x86_avx512_mask_inserti64x2_256, 103619}, // __builtin_ia32_inserti64x2_256_mask
-+ {Intrinsic::x86_avx512_mask_inserti64x2_512, 103655}, // __builtin_ia32_inserti64x2_512_mask
-+ {Intrinsic::x86_avx512_mask_inserti64x4_512, 103691}, // __builtin_ia32_inserti64x4_mask
-+ {Intrinsic::x86_sse41_insertps, 129598}, // __builtin_ia32_insertps128
-+ {Intrinsic::x86_sse4a_insertq, 130489}, // __builtin_ia32_insertq
-+ {Intrinsic::x86_sse4a_insertqi, 130512}, // __builtin_ia32_insertqi
-+ {Intrinsic::x86_avx512_kand_w, 96445}, // __builtin_ia32_kandhi
-+ {Intrinsic::x86_avx512_kandn_w, 96467}, // __builtin_ia32_kandnhi
-+ {Intrinsic::x86_avx512_knot_w, 96490}, // __builtin_ia32_knothi
-+ {Intrinsic::x86_avx512_kor_w, 96512}, // __builtin_ia32_korhi
-+ {Intrinsic::x86_avx512_kortestc_w, 96533}, // __builtin_ia32_kortestchi
-+ {Intrinsic::x86_avx512_kortestz_w, 96559}, // __builtin_ia32_kortestzhi
-+ {Intrinsic::x86_avx512_kunpck_dq, 96609}, // __builtin_ia32_kunpckdi
-+ {Intrinsic::x86_avx512_kunpck_bw, 96585}, // __builtin_ia32_kunpckhi
-+ {Intrinsic::x86_avx512_kunpck_wd, 96633}, // __builtin_ia32_kunpcksi
-+ {Intrinsic::x86_avx512_kxnor_w, 96657}, // __builtin_ia32_kxnorhi
-+ {Intrinsic::x86_avx512_kxor_w, 96680}, // __builtin_ia32_kxorhi
-+ {Intrinsic::x86_sse3_ldu_dq, 129445}, // __builtin_ia32_lddqu
-+ {Intrinsic::x86_avx_ldu_dq_256, 90760}, // __builtin_ia32_lddqu256
-+ {Intrinsic::x86_sse2_lfence, 128035}, // __builtin_ia32_lfence
-+ {Intrinsic::x86_avx2_maskload_d, 92397}, // __builtin_ia32_maskloadd
-+ {Intrinsic::x86_avx2_maskload_d_256, 92422}, // __builtin_ia32_maskloadd256
-+ {Intrinsic::x86_avx_maskload_pd, 90784}, // __builtin_ia32_maskloadpd
-+ {Intrinsic::x86_avx_maskload_pd_256, 90810}, // __builtin_ia32_maskloadpd256
-+ {Intrinsic::x86_avx_maskload_ps, 90839}, // __builtin_ia32_maskloadps
-+ {Intrinsic::x86_avx_maskload_ps_256, 90865}, // __builtin_ia32_maskloadps256
-+ {Intrinsic::x86_avx2_maskload_q, 92450}, // __builtin_ia32_maskloadq
-+ {Intrinsic::x86_avx2_maskload_q_256, 92475}, // __builtin_ia32_maskloadq256
-+ {Intrinsic::x86_sse2_maskmov_dqu, 128057}, // __builtin_ia32_maskmovdqu
-+ {Intrinsic::x86_mmx_maskmovq, 124762}, // __builtin_ia32_maskmovq
-+ {Intrinsic::x86_avx2_maskstore_d, 92503}, // __builtin_ia32_maskstored
-+ {Intrinsic::x86_avx2_maskstore_d_256, 92529}, // __builtin_ia32_maskstored256
-+ {Intrinsic::x86_avx_maskstore_pd, 90894}, // __builtin_ia32_maskstorepd
-+ {Intrinsic::x86_avx_maskstore_pd_256, 90921}, // __builtin_ia32_maskstorepd256
-+ {Intrinsic::x86_avx_maskstore_ps, 90951}, // __builtin_ia32_maskstoreps
-+ {Intrinsic::x86_avx_maskstore_ps_256, 90978}, // __builtin_ia32_maskstoreps256
-+ {Intrinsic::x86_avx2_maskstore_q, 92558}, // __builtin_ia32_maskstoreq
-+ {Intrinsic::x86_avx2_maskstore_q_256, 92584}, // __builtin_ia32_maskstoreq256
-+ {Intrinsic::x86_sse2_max_pd, 128083}, // __builtin_ia32_maxpd
-+ {Intrinsic::x86_avx_max_pd_256, 91008}, // __builtin_ia32_maxpd256
-+ {Intrinsic::x86_avx512_mask_max_pd_256, 103749}, // __builtin_ia32_maxpd256_mask
-+ {Intrinsic::x86_avx512_mask_max_pd_512, 103778}, // __builtin_ia32_maxpd512_mask
-+ {Intrinsic::x86_avx512_mask_max_pd_128, 103723}, // __builtin_ia32_maxpd_mask
-+ {Intrinsic::x86_sse_max_ps, 127151}, // __builtin_ia32_maxps
-+ {Intrinsic::x86_avx_max_ps_256, 91032}, // __builtin_ia32_maxps256
-+ {Intrinsic::x86_avx512_mask_max_ps_256, 103833}, // __builtin_ia32_maxps256_mask
-+ {Intrinsic::x86_avx512_mask_max_ps_512, 103862}, // __builtin_ia32_maxps512_mask
-+ {Intrinsic::x86_avx512_mask_max_ps_128, 103807}, // __builtin_ia32_maxps_mask
-+ {Intrinsic::x86_sse2_max_sd, 128104}, // __builtin_ia32_maxsd
-+ {Intrinsic::x86_avx512_mask_max_sd_round, 103891}, // __builtin_ia32_maxsd_round_mask
-+ {Intrinsic::x86_sse_max_ss, 127172}, // __builtin_ia32_maxss
-+ {Intrinsic::x86_avx512_mask_max_ss_round, 103923}, // __builtin_ia32_maxss_round_mask
-+ {Intrinsic::x86_sse2_mfence, 128125}, // __builtin_ia32_mfence
-+ {Intrinsic::x86_sse2_min_pd, 128147}, // __builtin_ia32_minpd
-+ {Intrinsic::x86_avx_min_pd_256, 91056}, // __builtin_ia32_minpd256
-+ {Intrinsic::x86_avx512_mask_min_pd_256, 103981}, // __builtin_ia32_minpd256_mask
-+ {Intrinsic::x86_avx512_mask_min_pd_512, 104010}, // __builtin_ia32_minpd512_mask
-+ {Intrinsic::x86_avx512_mask_min_pd_128, 103955}, // __builtin_ia32_minpd_mask
-+ {Intrinsic::x86_sse_min_ps, 127193}, // __builtin_ia32_minps
-+ {Intrinsic::x86_avx_min_ps_256, 91080}, // __builtin_ia32_minps256
-+ {Intrinsic::x86_avx512_mask_min_ps_256, 104065}, // __builtin_ia32_minps256_mask
-+ {Intrinsic::x86_avx512_mask_min_ps_512, 104094}, // __builtin_ia32_minps512_mask
-+ {Intrinsic::x86_avx512_mask_min_ps_128, 104039}, // __builtin_ia32_minps_mask
-+ {Intrinsic::x86_sse2_min_sd, 128168}, // __builtin_ia32_minsd
-+ {Intrinsic::x86_avx512_mask_min_sd_round, 104123}, // __builtin_ia32_minsd_round_mask
-+ {Intrinsic::x86_sse_min_ss, 127214}, // __builtin_ia32_minss
-+ {Intrinsic::x86_avx512_mask_min_ss_round, 104155}, // __builtin_ia32_minss_round_mask
-+ {Intrinsic::x86_sse3_monitor, 129466}, // __builtin_ia32_monitor
-+ {Intrinsic::x86_monitorx, 126308}, // __builtin_ia32_monitorx
-+ {Intrinsic::x86_sse2_movmsk_pd, 128189}, // __builtin_ia32_movmskpd
-+ {Intrinsic::x86_avx_movmsk_pd_256, 91104}, // __builtin_ia32_movmskpd256
-+ {Intrinsic::x86_sse_movmsk_ps, 127235}, // __builtin_ia32_movmskps
-+ {Intrinsic::x86_avx_movmsk_ps_256, 91131}, // __builtin_ia32_movmskps256
-+ {Intrinsic::x86_sse41_movntdqa, 129625}, // __builtin_ia32_movntdqa
-+ {Intrinsic::x86_avx2_movntdqa, 92613}, // __builtin_ia32_movntdqa256
-+ {Intrinsic::x86_avx512_movntdqa, 119822}, // __builtin_ia32_movntdqa512
-+ {Intrinsic::x86_mmx_movnt_dq, 124786}, // __builtin_ia32_movntq
-+ {Intrinsic::x86_sse41_mpsadbw, 129649}, // __builtin_ia32_mpsadbw128
-+ {Intrinsic::x86_avx2_mpsadbw, 92640}, // __builtin_ia32_mpsadbw256
-+ {Intrinsic::x86_avx512_mask_mul_pd_512, 104187}, // __builtin_ia32_mulpd512_mask
-+ {Intrinsic::x86_avx512_mask_mul_ps_512, 104216}, // __builtin_ia32_mulps512_mask
-+ {Intrinsic::x86_avx512_mask_mul_sd_round, 104245}, // __builtin_ia32_mulsd_round_mask
-+ {Intrinsic::x86_avx512_mask_mul_ss_round, 104277}, // __builtin_ia32_mulss_round_mask
-+ {Intrinsic::x86_sse3_mwait, 129489}, // __builtin_ia32_mwait
-+ {Intrinsic::x86_mwaitx, 126332}, // __builtin_ia32_mwaitx
-+ {Intrinsic::x86_ssse3_pabs_b, 130536}, // __builtin_ia32_pabsb
-+ {Intrinsic::x86_ssse3_pabs_b_128, 130557}, // __builtin_ia32_pabsb128
-+ {Intrinsic::x86_avx512_mask_pabs_b_128, 104309}, // __builtin_ia32_pabsb128_mask
-+ {Intrinsic::x86_avx2_pabs_b, 92666}, // __builtin_ia32_pabsb256
-+ {Intrinsic::x86_avx512_mask_pabs_b_256, 104338}, // __builtin_ia32_pabsb256_mask
-+ {Intrinsic::x86_avx512_mask_pabs_b_512, 104367}, // __builtin_ia32_pabsb512_mask
-+ {Intrinsic::x86_ssse3_pabs_d, 130581}, // __builtin_ia32_pabsd
-+ {Intrinsic::x86_ssse3_pabs_d_128, 130602}, // __builtin_ia32_pabsd128
-+ {Intrinsic::x86_avx512_mask_pabs_d_128, 104396}, // __builtin_ia32_pabsd128_mask
-+ {Intrinsic::x86_avx2_pabs_d, 92690}, // __builtin_ia32_pabsd256
-+ {Intrinsic::x86_avx512_mask_pabs_d_256, 104425}, // __builtin_ia32_pabsd256_mask
-+ {Intrinsic::x86_avx512_mask_pabs_d_512, 104454}, // __builtin_ia32_pabsd512_mask
-+ {Intrinsic::x86_avx512_mask_pabs_q_128, 104483}, // __builtin_ia32_pabsq128_mask
-+ {Intrinsic::x86_avx512_mask_pabs_q_256, 104512}, // __builtin_ia32_pabsq256_mask
-+ {Intrinsic::x86_avx512_mask_pabs_q_512, 104541}, // __builtin_ia32_pabsq512_mask
-+ {Intrinsic::x86_ssse3_pabs_w, 130626}, // __builtin_ia32_pabsw
-+ {Intrinsic::x86_ssse3_pabs_w_128, 130647}, // __builtin_ia32_pabsw128
-+ {Intrinsic::x86_avx512_mask_pabs_w_128, 104570}, // __builtin_ia32_pabsw128_mask
-+ {Intrinsic::x86_avx2_pabs_w, 92714}, // __builtin_ia32_pabsw256
-+ {Intrinsic::x86_avx512_mask_pabs_w_256, 104599}, // __builtin_ia32_pabsw256_mask
-+ {Intrinsic::x86_avx512_mask_pabs_w_512, 104628}, // __builtin_ia32_pabsw512_mask
-+ {Intrinsic::x86_mmx_packssdw, 124808}, // __builtin_ia32_packssdw
-+ {Intrinsic::x86_sse2_packssdw_128, 128213}, // __builtin_ia32_packssdw128
-+ {Intrinsic::x86_avx512_mask_packssdw_128, 104657}, // __builtin_ia32_packssdw128_mask
-+ {Intrinsic::x86_avx2_packssdw, 92738}, // __builtin_ia32_packssdw256
-+ {Intrinsic::x86_avx512_mask_packssdw_256, 104689}, // __builtin_ia32_packssdw256_mask
-+ {Intrinsic::x86_avx512_mask_packssdw_512, 104721}, // __builtin_ia32_packssdw512_mask
-+ {Intrinsic::x86_mmx_packsswb, 124832}, // __builtin_ia32_packsswb
-+ {Intrinsic::x86_sse2_packsswb_128, 128240}, // __builtin_ia32_packsswb128
-+ {Intrinsic::x86_avx512_mask_packsswb_128, 104753}, // __builtin_ia32_packsswb128_mask
-+ {Intrinsic::x86_avx2_packsswb, 92765}, // __builtin_ia32_packsswb256
-+ {Intrinsic::x86_avx512_mask_packsswb_256, 104785}, // __builtin_ia32_packsswb256_mask
-+ {Intrinsic::x86_avx512_mask_packsswb_512, 104817}, // __builtin_ia32_packsswb512_mask
-+ {Intrinsic::x86_sse41_packusdw, 129675}, // __builtin_ia32_packusdw128
-+ {Intrinsic::x86_avx512_mask_packusdw_128, 104849}, // __builtin_ia32_packusdw128_mask
-+ {Intrinsic::x86_avx2_packusdw, 92792}, // __builtin_ia32_packusdw256
-+ {Intrinsic::x86_avx512_mask_packusdw_256, 104881}, // __builtin_ia32_packusdw256_mask
-+ {Intrinsic::x86_avx512_mask_packusdw_512, 104913}, // __builtin_ia32_packusdw512_mask
-+ {Intrinsic::x86_mmx_packuswb, 124856}, // __builtin_ia32_packuswb
-+ {Intrinsic::x86_sse2_packuswb_128, 128267}, // __builtin_ia32_packuswb128
-+ {Intrinsic::x86_avx512_mask_packuswb_128, 104945}, // __builtin_ia32_packuswb128_mask
-+ {Intrinsic::x86_avx2_packuswb, 92819}, // __builtin_ia32_packuswb256
-+ {Intrinsic::x86_avx512_mask_packuswb_256, 104977}, // __builtin_ia32_packuswb256_mask
-+ {Intrinsic::x86_avx512_mask_packuswb_512, 105009}, // __builtin_ia32_packuswb512_mask
-+ {Intrinsic::x86_mmx_padd_b, 124880}, // __builtin_ia32_paddb
-+ {Intrinsic::x86_mmx_padd_d, 124901}, // __builtin_ia32_paddd
-+ {Intrinsic::x86_mmx_padd_q, 124922}, // __builtin_ia32_paddq
-+ {Intrinsic::x86_mmx_padds_b, 124964}, // __builtin_ia32_paddsb
-+ {Intrinsic::x86_sse2_padds_b, 128294}, // __builtin_ia32_paddsb128
-+ {Intrinsic::x86_avx512_mask_padds_b_128, 105041}, // __builtin_ia32_paddsb128_mask
-+ {Intrinsic::x86_avx2_padds_b, 92846}, // __builtin_ia32_paddsb256
-+ {Intrinsic::x86_avx512_mask_padds_b_256, 105071}, // __builtin_ia32_paddsb256_mask
-+ {Intrinsic::x86_avx512_mask_padds_b_512, 105101}, // __builtin_ia32_paddsb512_mask
-+ {Intrinsic::x86_mmx_padds_w, 124986}, // __builtin_ia32_paddsw
-+ {Intrinsic::x86_sse2_padds_w, 128319}, // __builtin_ia32_paddsw128
-+ {Intrinsic::x86_avx512_mask_padds_w_128, 105131}, // __builtin_ia32_paddsw128_mask
-+ {Intrinsic::x86_avx2_padds_w, 92871}, // __builtin_ia32_paddsw256
-+ {Intrinsic::x86_avx512_mask_padds_w_256, 105161}, // __builtin_ia32_paddsw256_mask
-+ {Intrinsic::x86_avx512_mask_padds_w_512, 105191}, // __builtin_ia32_paddsw512_mask
-+ {Intrinsic::x86_mmx_paddus_b, 125008}, // __builtin_ia32_paddusb
-+ {Intrinsic::x86_sse2_paddus_b, 128344}, // __builtin_ia32_paddusb128
-+ {Intrinsic::x86_avx512_mask_paddus_b_128, 105221}, // __builtin_ia32_paddusb128_mask
-+ {Intrinsic::x86_avx2_paddus_b, 92896}, // __builtin_ia32_paddusb256
-+ {Intrinsic::x86_avx512_mask_paddus_b_256, 105252}, // __builtin_ia32_paddusb256_mask
-+ {Intrinsic::x86_avx512_mask_paddus_b_512, 105283}, // __builtin_ia32_paddusb512_mask
-+ {Intrinsic::x86_mmx_paddus_w, 125031}, // __builtin_ia32_paddusw
-+ {Intrinsic::x86_sse2_paddus_w, 128370}, // __builtin_ia32_paddusw128
-+ {Intrinsic::x86_avx512_mask_paddus_w_128, 105314}, // __builtin_ia32_paddusw128_mask
-+ {Intrinsic::x86_avx2_paddus_w, 92922}, // __builtin_ia32_paddusw256
-+ {Intrinsic::x86_avx512_mask_paddus_w_256, 105345}, // __builtin_ia32_paddusw256_mask
-+ {Intrinsic::x86_avx512_mask_paddus_w_512, 105376}, // __builtin_ia32_paddusw512_mask
-+ {Intrinsic::x86_mmx_padd_w, 124943}, // __builtin_ia32_paddw
-+ {Intrinsic::x86_mmx_palignr_b, 125054}, // __builtin_ia32_palignr
-+ {Intrinsic::x86_mmx_pand, 125077}, // __builtin_ia32_pand
-+ {Intrinsic::x86_mmx_pandn, 125097}, // __builtin_ia32_pandn
-+ {Intrinsic::x86_sse2_pause, 128396}, // __builtin_ia32_pause
-+ {Intrinsic::x86_mmx_pavg_b, 125118}, // __builtin_ia32_pavgb
-+ {Intrinsic::x86_sse2_pavg_b, 128417}, // __builtin_ia32_pavgb128
-+ {Intrinsic::x86_avx512_mask_pavg_b_128, 105407}, // __builtin_ia32_pavgb128_mask
-+ {Intrinsic::x86_avx2_pavg_b, 92948}, // __builtin_ia32_pavgb256
-+ {Intrinsic::x86_avx512_mask_pavg_b_256, 105436}, // __builtin_ia32_pavgb256_mask
-+ {Intrinsic::x86_avx512_mask_pavg_b_512, 105465}, // __builtin_ia32_pavgb512_mask
-+ {Intrinsic::x86_3dnow_pavgusb, 89576}, // __builtin_ia32_pavgusb
-+ {Intrinsic::x86_mmx_pavg_w, 125139}, // __builtin_ia32_pavgw
-+ {Intrinsic::x86_sse2_pavg_w, 128441}, // __builtin_ia32_pavgw128
-+ {Intrinsic::x86_avx512_mask_pavg_w_128, 105494}, // __builtin_ia32_pavgw128_mask
-+ {Intrinsic::x86_avx2_pavg_w, 92972}, // __builtin_ia32_pavgw256
-+ {Intrinsic::x86_avx512_mask_pavg_w_256, 105523}, // __builtin_ia32_pavgw256_mask
-+ {Intrinsic::x86_avx512_mask_pavg_w_512, 105552}, // __builtin_ia32_pavgw512_mask
-+ {Intrinsic::x86_sse41_pblendvb, 129702}, // __builtin_ia32_pblendvb128
-+ {Intrinsic::x86_avx2_pblendvb, 92996}, // __builtin_ia32_pblendvb256
-+ {Intrinsic::x86_avx512_mask_pbroadcast_b_gpr_128, 105581}, // __builtin_ia32_pbroadcastb128_gpr_mask
-+ {Intrinsic::x86_avx512_mask_pbroadcast_b_gpr_256, 105620}, // __builtin_ia32_pbroadcastb256_gpr_mask
-+ {Intrinsic::x86_avx512_mask_pbroadcast_b_gpr_512, 105659}, // __builtin_ia32_pbroadcastb512_gpr_mask
-+ {Intrinsic::x86_avx512_mask_pbroadcast_d_gpr_128, 105698}, // __builtin_ia32_pbroadcastd128_gpr_mask
-+ {Intrinsic::x86_avx512_mask_pbroadcast_d_gpr_256, 105737}, // __builtin_ia32_pbroadcastd256_gpr_mask
-+ {Intrinsic::x86_avx512_mask_pbroadcast_d_gpr_512, 105776}, // __builtin_ia32_pbroadcastd512_gpr_mask
-+ {Intrinsic::x86_avx512_mask_pbroadcast_q_gpr_128, 105815}, // __builtin_ia32_pbroadcastq128_gpr_mask
-+ {Intrinsic::x86_avx512_mask_pbroadcast_q_gpr_256, 105854}, // __builtin_ia32_pbroadcastq256_gpr_mask
-+ {Intrinsic::x86_avx512_mask_pbroadcast_q_gpr_512, 105893}, // __builtin_ia32_pbroadcastq512_gpr_mask
-+ {Intrinsic::x86_avx512_mask_pbroadcast_q_mem_512, 105932}, // __builtin_ia32_pbroadcastq512_mem_mask
-+ {Intrinsic::x86_avx512_mask_pbroadcast_w_gpr_128, 105971}, // __builtin_ia32_pbroadcastw128_gpr_mask
-+ {Intrinsic::x86_avx512_mask_pbroadcast_w_gpr_256, 106010}, // __builtin_ia32_pbroadcastw256_gpr_mask
-+ {Intrinsic::x86_avx512_mask_pbroadcast_w_gpr_512, 106049}, // __builtin_ia32_pbroadcastw512_gpr_mask
-+ {Intrinsic::x86_pclmulqdq, 126354}, // __builtin_ia32_pclmulqdq128
-+ {Intrinsic::x86_mmx_pcmpeq_b, 125160}, // __builtin_ia32_pcmpeqb
-+ {Intrinsic::x86_mmx_pcmpeq_d, 125183}, // __builtin_ia32_pcmpeqd
-+ {Intrinsic::x86_mmx_pcmpeq_w, 125206}, // __builtin_ia32_pcmpeqw
-+ {Intrinsic::x86_sse42_pcmpestri128, 130044}, // __builtin_ia32_pcmpestri128
-+ {Intrinsic::x86_sse42_pcmpestria128, 130072}, // __builtin_ia32_pcmpestria128
-+ {Intrinsic::x86_sse42_pcmpestric128, 130101}, // __builtin_ia32_pcmpestric128
-+ {Intrinsic::x86_sse42_pcmpestrio128, 130130}, // __builtin_ia32_pcmpestrio128
-+ {Intrinsic::x86_sse42_pcmpestris128, 130159}, // __builtin_ia32_pcmpestris128
-+ {Intrinsic::x86_sse42_pcmpestriz128, 130188}, // __builtin_ia32_pcmpestriz128
-+ {Intrinsic::x86_sse42_pcmpestrm128, 130217}, // __builtin_ia32_pcmpestrm128
-+ {Intrinsic::x86_mmx_pcmpgt_b, 125229}, // __builtin_ia32_pcmpgtb
-+ {Intrinsic::x86_mmx_pcmpgt_d, 125252}, // __builtin_ia32_pcmpgtd
-+ {Intrinsic::x86_mmx_pcmpgt_w, 125275}, // __builtin_ia32_pcmpgtw
-+ {Intrinsic::x86_sse42_pcmpistri128, 130245}, // __builtin_ia32_pcmpistri128
-+ {Intrinsic::x86_sse42_pcmpistria128, 130273}, // __builtin_ia32_pcmpistria128
-+ {Intrinsic::x86_sse42_pcmpistric128, 130302}, // __builtin_ia32_pcmpistric128
-+ {Intrinsic::x86_sse42_pcmpistrio128, 130331}, // __builtin_ia32_pcmpistrio128
-+ {Intrinsic::x86_sse42_pcmpistris128, 130360}, // __builtin_ia32_pcmpistris128
-+ {Intrinsic::x86_sse42_pcmpistriz128, 130389}, // __builtin_ia32_pcmpistriz128
-+ {Intrinsic::x86_sse42_pcmpistrm128, 130418}, // __builtin_ia32_pcmpistrm128
-+ {Intrinsic::x86_bmi_pdep_64, 123570}, // __builtin_ia32_pdep_di
-+ {Intrinsic::x86_bmi_pdep_32, 123547}, // __builtin_ia32_pdep_si
-+ {Intrinsic::x86_avx2_vperm2i128, 94300}, // __builtin_ia32_permti256
-+ {Intrinsic::x86_avx512_mask_permvar_df_256, 106088}, // __builtin_ia32_permvardf256_mask
-+ {Intrinsic::x86_avx512_mask_permvar_df_512, 106121}, // __builtin_ia32_permvardf512_mask
-+ {Intrinsic::x86_avx512_mask_permvar_di_256, 106154}, // __builtin_ia32_permvardi256_mask
-+ {Intrinsic::x86_avx512_mask_permvar_di_512, 106187}, // __builtin_ia32_permvardi512_mask
-+ {Intrinsic::x86_avx512_mask_permvar_hi_128, 106220}, // __builtin_ia32_permvarhi128_mask
-+ {Intrinsic::x86_avx512_mask_permvar_hi_256, 106253}, // __builtin_ia32_permvarhi256_mask
-+ {Intrinsic::x86_avx512_mask_permvar_hi_512, 106286}, // __builtin_ia32_permvarhi512_mask
-+ {Intrinsic::x86_avx512_mask_permvar_qi_128, 106319}, // __builtin_ia32_permvarqi128_mask
-+ {Intrinsic::x86_avx512_mask_permvar_qi_256, 106352}, // __builtin_ia32_permvarqi256_mask
-+ {Intrinsic::x86_avx512_mask_permvar_qi_512, 106385}, // __builtin_ia32_permvarqi512_mask
-+ {Intrinsic::x86_avx2_permps, 93051}, // __builtin_ia32_permvarsf256
-+ {Intrinsic::x86_avx512_mask_permvar_sf_256, 106418}, // __builtin_ia32_permvarsf256_mask
-+ {Intrinsic::x86_avx512_mask_permvar_sf_512, 106451}, // __builtin_ia32_permvarsf512_mask
-+ {Intrinsic::x86_avx2_permd, 93023}, // __builtin_ia32_permvarsi256
-+ {Intrinsic::x86_avx512_mask_permvar_si_256, 106484}, // __builtin_ia32_permvarsi256_mask
-+ {Intrinsic::x86_avx512_mask_permvar_si_512, 106517}, // __builtin_ia32_permvarsi512_mask
-+ {Intrinsic::x86_bmi_pext_64, 123616}, // __builtin_ia32_pext_di
-+ {Intrinsic::x86_bmi_pext_32, 123593}, // __builtin_ia32_pext_si
-+ {Intrinsic::x86_3dnow_pf2id, 89599}, // __builtin_ia32_pf2id
-+ {Intrinsic::x86_3dnowa_pf2iw, 89997}, // __builtin_ia32_pf2iw
-+ {Intrinsic::x86_3dnow_pfacc, 89620}, // __builtin_ia32_pfacc
-+ {Intrinsic::x86_3dnow_pfadd, 89641}, // __builtin_ia32_pfadd
-+ {Intrinsic::x86_3dnow_pfcmpeq, 89662}, // __builtin_ia32_pfcmpeq
-+ {Intrinsic::x86_3dnow_pfcmpge, 89685}, // __builtin_ia32_pfcmpge
-+ {Intrinsic::x86_3dnow_pfcmpgt, 89708}, // __builtin_ia32_pfcmpgt
-+ {Intrinsic::x86_3dnow_pfmax, 89731}, // __builtin_ia32_pfmax
-+ {Intrinsic::x86_3dnow_pfmin, 89752}, // __builtin_ia32_pfmin
-+ {Intrinsic::x86_3dnow_pfmul, 89773}, // __builtin_ia32_pfmul
-+ {Intrinsic::x86_3dnowa_pfnacc, 90018}, // __builtin_ia32_pfnacc
-+ {Intrinsic::x86_3dnowa_pfpnacc, 90040}, // __builtin_ia32_pfpnacc
-+ {Intrinsic::x86_3dnow_pfrcp, 89794}, // __builtin_ia32_pfrcp
-+ {Intrinsic::x86_3dnow_pfrcpit1, 89815}, // __builtin_ia32_pfrcpit1
-+ {Intrinsic::x86_3dnow_pfrcpit2, 89839}, // __builtin_ia32_pfrcpit2
-+ {Intrinsic::x86_3dnow_pfrsqit1, 89863}, // __builtin_ia32_pfrsqit1
-+ {Intrinsic::x86_3dnow_pfrsqrt, 89887}, // __builtin_ia32_pfrsqrt
-+ {Intrinsic::x86_3dnow_pfsub, 89910}, // __builtin_ia32_pfsub
-+ {Intrinsic::x86_3dnow_pfsubr, 89931}, // __builtin_ia32_pfsubr
-+ {Intrinsic::x86_ssse3_phadd_d, 130671}, // __builtin_ia32_phaddd
-+ {Intrinsic::x86_ssse3_phadd_d_128, 130693}, // __builtin_ia32_phaddd128
-+ {Intrinsic::x86_avx2_phadd_d, 93079}, // __builtin_ia32_phaddd256
-+ {Intrinsic::x86_ssse3_phadd_sw, 130718}, // __builtin_ia32_phaddsw
-+ {Intrinsic::x86_ssse3_phadd_sw_128, 130741}, // __builtin_ia32_phaddsw128
-+ {Intrinsic::x86_avx2_phadd_sw, 93104}, // __builtin_ia32_phaddsw256
-+ {Intrinsic::x86_ssse3_phadd_w, 130767}, // __builtin_ia32_phaddw
-+ {Intrinsic::x86_ssse3_phadd_w_128, 130789}, // __builtin_ia32_phaddw128
-+ {Intrinsic::x86_avx2_phadd_w, 93130}, // __builtin_ia32_phaddw256
-+ {Intrinsic::x86_sse41_phminposuw, 129729}, // __builtin_ia32_phminposuw128
-+ {Intrinsic::x86_ssse3_phsub_d, 130814}, // __builtin_ia32_phsubd
-+ {Intrinsic::x86_ssse3_phsub_d_128, 130836}, // __builtin_ia32_phsubd128
-+ {Intrinsic::x86_avx2_phsub_d, 93155}, // __builtin_ia32_phsubd256
-+ {Intrinsic::x86_ssse3_phsub_sw, 130861}, // __builtin_ia32_phsubsw
-+ {Intrinsic::x86_ssse3_phsub_sw_128, 130884}, // __builtin_ia32_phsubsw128
-+ {Intrinsic::x86_avx2_phsub_sw, 93180}, // __builtin_ia32_phsubsw256
-+ {Intrinsic::x86_ssse3_phsub_w, 130910}, // __builtin_ia32_phsubw
-+ {Intrinsic::x86_ssse3_phsub_w_128, 130932}, // __builtin_ia32_phsubw128
-+ {Intrinsic::x86_avx2_phsub_w, 93206}, // __builtin_ia32_phsubw256
-+ {Intrinsic::x86_3dnow_pi2fd, 89953}, // __builtin_ia32_pi2fd
-+ {Intrinsic::x86_3dnowa_pi2fw, 90063}, // __builtin_ia32_pi2fw
-+ {Intrinsic::x86_ssse3_pmadd_ub_sw, 130957}, // __builtin_ia32_pmaddubsw
-+ {Intrinsic::x86_ssse3_pmadd_ub_sw_128, 130982}, // __builtin_ia32_pmaddubsw128
-+ {Intrinsic::x86_avx512_mask_pmaddubs_w_128, 106550}, // __builtin_ia32_pmaddubsw128_mask
-+ {Intrinsic::x86_avx2_pmadd_ub_sw, 93231}, // __builtin_ia32_pmaddubsw256
-+ {Intrinsic::x86_avx512_mask_pmaddubs_w_256, 106583}, // __builtin_ia32_pmaddubsw256_mask
-+ {Intrinsic::x86_avx512_mask_pmaddubs_w_512, 106616}, // __builtin_ia32_pmaddubsw512_mask
-+ {Intrinsic::x86_mmx_pmadd_wd, 125354}, // __builtin_ia32_pmaddwd
-+ {Intrinsic::x86_sse2_pmadd_wd, 128465}, // __builtin_ia32_pmaddwd128
-+ {Intrinsic::x86_avx512_mask_pmaddw_d_128, 106649}, // __builtin_ia32_pmaddwd128_mask
-+ {Intrinsic::x86_avx2_pmadd_wd, 93259}, // __builtin_ia32_pmaddwd256
-+ {Intrinsic::x86_avx512_mask_pmaddw_d_256, 106680}, // __builtin_ia32_pmaddwd256_mask
-+ {Intrinsic::x86_avx512_mask_pmaddw_d_512, 106711}, // __builtin_ia32_pmaddwd512_mask
-+ {Intrinsic::x86_mmx_pmaxs_w, 125377}, // __builtin_ia32_pmaxsw
-+ {Intrinsic::x86_mmx_pmaxu_b, 125399}, // __builtin_ia32_pmaxub
-+ {Intrinsic::x86_mmx_pmins_w, 125421}, // __builtin_ia32_pminsw
-+ {Intrinsic::x86_mmx_pminu_b, 125443}, // __builtin_ia32_pminub
-+ {Intrinsic::x86_avx512_mask_pmov_db_128, 106742}, // __builtin_ia32_pmovdb128_mask
-+ {Intrinsic::x86_avx512_mask_pmov_db_mem_128, 106832}, // __builtin_ia32_pmovdb128mem_mask
-+ {Intrinsic::x86_avx512_mask_pmov_db_256, 106772}, // __builtin_ia32_pmovdb256_mask
-+ {Intrinsic::x86_avx512_mask_pmov_db_mem_256, 106865}, // __builtin_ia32_pmovdb256mem_mask
-+ {Intrinsic::x86_avx512_mask_pmov_db_512, 106802}, // __builtin_ia32_pmovdb512_mask
-+ {Intrinsic::x86_avx512_mask_pmov_db_mem_512, 106898}, // __builtin_ia32_pmovdb512mem_mask
-+ {Intrinsic::x86_avx512_mask_pmov_dw_128, 106931}, // __builtin_ia32_pmovdw128_mask
-+ {Intrinsic::x86_avx512_mask_pmov_dw_mem_128, 107021}, // __builtin_ia32_pmovdw128mem_mask
-+ {Intrinsic::x86_avx512_mask_pmov_dw_256, 106961}, // __builtin_ia32_pmovdw256_mask
-+ {Intrinsic::x86_avx512_mask_pmov_dw_mem_256, 107054}, // __builtin_ia32_pmovdw256mem_mask
-+ {Intrinsic::x86_avx512_mask_pmov_dw_512, 106991}, // __builtin_ia32_pmovdw512_mask
-+ {Intrinsic::x86_avx512_mask_pmov_dw_mem_512, 107087}, // __builtin_ia32_pmovdw512mem_mask
-+ {Intrinsic::x86_mmx_pmovmskb, 125465}, // __builtin_ia32_pmovmskb
-+ {Intrinsic::x86_sse2_pmovmskb_128, 128491}, // __builtin_ia32_pmovmskb128
-+ {Intrinsic::x86_avx2_pmovmskb, 93285}, // __builtin_ia32_pmovmskb256
-+ {Intrinsic::x86_avx512_mask_pmov_qb_128, 107120}, // __builtin_ia32_pmovqb128_mask
-+ {Intrinsic::x86_avx512_mask_pmov_qb_mem_128, 107210}, // __builtin_ia32_pmovqb128mem_mask
-+ {Intrinsic::x86_avx512_mask_pmov_qb_256, 107150}, // __builtin_ia32_pmovqb256_mask
-+ {Intrinsic::x86_avx512_mask_pmov_qb_mem_256, 107243}, // __builtin_ia32_pmovqb256mem_mask
-+ {Intrinsic::x86_avx512_mask_pmov_qb_512, 107180}, // __builtin_ia32_pmovqb512_mask
-+ {Intrinsic::x86_avx512_mask_pmov_qb_mem_512, 107276}, // __builtin_ia32_pmovqb512mem_mask
-+ {Intrinsic::x86_avx512_mask_pmov_qd_128, 107309}, // __builtin_ia32_pmovqd128_mask
-+ {Intrinsic::x86_avx512_mask_pmov_qd_mem_128, 107399}, // __builtin_ia32_pmovqd128mem_mask
-+ {Intrinsic::x86_avx512_mask_pmov_qd_256, 107339}, // __builtin_ia32_pmovqd256_mask
-+ {Intrinsic::x86_avx512_mask_pmov_qd_mem_256, 107432}, // __builtin_ia32_pmovqd256mem_mask
-+ {Intrinsic::x86_avx512_mask_pmov_qd_512, 107369}, // __builtin_ia32_pmovqd512_mask
-+ {Intrinsic::x86_avx512_mask_pmov_qd_mem_512, 107465}, // __builtin_ia32_pmovqd512mem_mask
-+ {Intrinsic::x86_avx512_mask_pmov_qw_128, 107498}, // __builtin_ia32_pmovqw128_mask
-+ {Intrinsic::x86_avx512_mask_pmov_qw_mem_128, 107588}, // __builtin_ia32_pmovqw128mem_mask
-+ {Intrinsic::x86_avx512_mask_pmov_qw_256, 107528}, // __builtin_ia32_pmovqw256_mask
-+ {Intrinsic::x86_avx512_mask_pmov_qw_mem_256, 107621}, // __builtin_ia32_pmovqw256mem_mask
-+ {Intrinsic::x86_avx512_mask_pmov_qw_512, 107558}, // __builtin_ia32_pmovqw512_mask
-+ {Intrinsic::x86_avx512_mask_pmov_qw_mem_512, 107654}, // __builtin_ia32_pmovqw512mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_db_128, 107876}, // __builtin_ia32_pmovsdb128_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_db_mem_128, 107969}, // __builtin_ia32_pmovsdb128mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_db_256, 107907}, // __builtin_ia32_pmovsdb256_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_db_mem_256, 108003}, // __builtin_ia32_pmovsdb256mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_db_512, 107938}, // __builtin_ia32_pmovsdb512_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_db_mem_512, 108037}, // __builtin_ia32_pmovsdb512mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_dw_128, 108071}, // __builtin_ia32_pmovsdw128_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_dw_mem_128, 108164}, // __builtin_ia32_pmovsdw128mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_dw_256, 108102}, // __builtin_ia32_pmovsdw256_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_dw_mem_256, 108198}, // __builtin_ia32_pmovsdw256mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_dw_512, 108133}, // __builtin_ia32_pmovsdw512_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_dw_mem_512, 108232}, // __builtin_ia32_pmovsdw512mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_qb_128, 108266}, // __builtin_ia32_pmovsqb128_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_qb_mem_128, 108359}, // __builtin_ia32_pmovsqb128mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_qb_256, 108297}, // __builtin_ia32_pmovsqb256_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_qb_mem_256, 108393}, // __builtin_ia32_pmovsqb256mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_qb_512, 108328}, // __builtin_ia32_pmovsqb512_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_qb_mem_512, 108427}, // __builtin_ia32_pmovsqb512mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_qd_128, 108461}, // __builtin_ia32_pmovsqd128_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_qd_mem_128, 108554}, // __builtin_ia32_pmovsqd128mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_qd_256, 108492}, // __builtin_ia32_pmovsqd256_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_qd_mem_256, 108588}, // __builtin_ia32_pmovsqd256mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_qd_512, 108523}, // __builtin_ia32_pmovsqd512_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_qd_mem_512, 108622}, // __builtin_ia32_pmovsqd512mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_qw_128, 108656}, // __builtin_ia32_pmovsqw128_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_qw_mem_128, 108749}, // __builtin_ia32_pmovsqw128mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_qw_256, 108687}, // __builtin_ia32_pmovsqw256_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_qw_mem_256, 108783}, // __builtin_ia32_pmovsqw256mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_qw_512, 108718}, // __builtin_ia32_pmovsqw512_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_qw_mem_512, 108817}, // __builtin_ia32_pmovsqw512mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_wb_128, 108851}, // __builtin_ia32_pmovswb128_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_wb_mem_128, 108944}, // __builtin_ia32_pmovswb128mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_wb_256, 108882}, // __builtin_ia32_pmovswb256_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_wb_mem_256, 108978}, // __builtin_ia32_pmovswb256mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_wb_512, 108913}, // __builtin_ia32_pmovswb512_mask
-+ {Intrinsic::x86_avx512_mask_pmovs_wb_mem_512, 109012}, // __builtin_ia32_pmovswb512mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_db_128, 109046}, // __builtin_ia32_pmovusdb128_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_db_mem_128, 109142}, // __builtin_ia32_pmovusdb128mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_db_256, 109078}, // __builtin_ia32_pmovusdb256_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_db_mem_256, 109177}, // __builtin_ia32_pmovusdb256mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_db_512, 109110}, // __builtin_ia32_pmovusdb512_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_db_mem_512, 109212}, // __builtin_ia32_pmovusdb512mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_dw_128, 109247}, // __builtin_ia32_pmovusdw128_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_dw_mem_128, 109343}, // __builtin_ia32_pmovusdw128mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_dw_256, 109279}, // __builtin_ia32_pmovusdw256_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_dw_mem_256, 109378}, // __builtin_ia32_pmovusdw256mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_dw_512, 109311}, // __builtin_ia32_pmovusdw512_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_dw_mem_512, 109413}, // __builtin_ia32_pmovusdw512mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_qb_128, 109448}, // __builtin_ia32_pmovusqb128_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_qb_mem_128, 109544}, // __builtin_ia32_pmovusqb128mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_qb_256, 109480}, // __builtin_ia32_pmovusqb256_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_qb_mem_256, 109579}, // __builtin_ia32_pmovusqb256mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_qb_512, 109512}, // __builtin_ia32_pmovusqb512_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_qb_mem_512, 109614}, // __builtin_ia32_pmovusqb512mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_qd_128, 109649}, // __builtin_ia32_pmovusqd128_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_qd_mem_128, 109745}, // __builtin_ia32_pmovusqd128mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_qd_256, 109681}, // __builtin_ia32_pmovusqd256_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_qd_mem_256, 109780}, // __builtin_ia32_pmovusqd256mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_qd_512, 109713}, // __builtin_ia32_pmovusqd512_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_qd_mem_512, 109815}, // __builtin_ia32_pmovusqd512mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_qw_128, 109850}, // __builtin_ia32_pmovusqw128_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_qw_mem_128, 109946}, // __builtin_ia32_pmovusqw128mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_qw_256, 109882}, // __builtin_ia32_pmovusqw256_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_qw_mem_256, 109981}, // __builtin_ia32_pmovusqw256mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_qw_512, 109914}, // __builtin_ia32_pmovusqw512_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_qw_mem_512, 110016}, // __builtin_ia32_pmovusqw512mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_wb_128, 110051}, // __builtin_ia32_pmovuswb128_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_wb_mem_128, 110147}, // __builtin_ia32_pmovuswb128mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_wb_256, 110083}, // __builtin_ia32_pmovuswb256_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_wb_mem_256, 110182}, // __builtin_ia32_pmovuswb256mem_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_wb_512, 110115}, // __builtin_ia32_pmovuswb512_mask
-+ {Intrinsic::x86_avx512_mask_pmovus_wb_mem_512, 110217}, // __builtin_ia32_pmovuswb512mem_mask
-+ {Intrinsic::x86_avx512_mask_pmov_wb_128, 107687}, // __builtin_ia32_pmovwb128_mask
-+ {Intrinsic::x86_avx512_mask_pmov_wb_mem_128, 107777}, // __builtin_ia32_pmovwb128mem_mask
-+ {Intrinsic::x86_avx512_mask_pmov_wb_256, 107717}, // __builtin_ia32_pmovwb256_mask
-+ {Intrinsic::x86_avx512_mask_pmov_wb_mem_256, 107810}, // __builtin_ia32_pmovwb256mem_mask
-+ {Intrinsic::x86_avx512_mask_pmov_wb_512, 107747}, // __builtin_ia32_pmovwb512_mask
-+ {Intrinsic::x86_avx512_mask_pmov_wb_mem_512, 107843}, // __builtin_ia32_pmovwb512mem_mask
-+ {Intrinsic::x86_sse41_pmuldq, 129758}, // __builtin_ia32_pmuldq128
-+ {Intrinsic::x86_avx512_mask_pmul_dq_128, 110252}, // __builtin_ia32_pmuldq128_mask
-+ {Intrinsic::x86_avx2_pmul_dq, 93312}, // __builtin_ia32_pmuldq256
-+ {Intrinsic::x86_avx512_mask_pmul_dq_256, 110282}, // __builtin_ia32_pmuldq256_mask
-+ {Intrinsic::x86_avx512_mask_pmul_dq_512, 110312}, // __builtin_ia32_pmuldq512_mask
-+ {Intrinsic::x86_ssse3_pmul_hr_sw, 131010}, // __builtin_ia32_pmulhrsw
-+ {Intrinsic::x86_ssse3_pmul_hr_sw_128, 131034}, // __builtin_ia32_pmulhrsw128
-+ {Intrinsic::x86_avx512_mask_pmul_hr_sw_128, 110342}, // __builtin_ia32_pmulhrsw128_mask
-+ {Intrinsic::x86_avx2_pmul_hr_sw, 93337}, // __builtin_ia32_pmulhrsw256
-+ {Intrinsic::x86_avx512_mask_pmul_hr_sw_256, 110374}, // __builtin_ia32_pmulhrsw256_mask
-+ {Intrinsic::x86_avx512_mask_pmul_hr_sw_512, 110406}, // __builtin_ia32_pmulhrsw512_mask
-+ {Intrinsic::x86_3dnow_pmulhrw, 89974}, // __builtin_ia32_pmulhrw
-+ {Intrinsic::x86_mmx_pmulhu_w, 125511}, // __builtin_ia32_pmulhuw
-+ {Intrinsic::x86_sse2_pmulhu_w, 128543}, // __builtin_ia32_pmulhuw128
-+ {Intrinsic::x86_avx512_mask_pmulhu_w_128, 110528}, // __builtin_ia32_pmulhuw128_mask
-+ {Intrinsic::x86_avx2_pmulhu_w, 93389}, // __builtin_ia32_pmulhuw256
-+ {Intrinsic::x86_avx512_mask_pmulhu_w_256, 110559}, // __builtin_ia32_pmulhuw256_mask
-+ {Intrinsic::x86_avx512_mask_pmulhu_w_512, 110590}, // __builtin_ia32_pmulhuw512_mask
-+ {Intrinsic::x86_mmx_pmulh_w, 125489}, // __builtin_ia32_pmulhw
-+ {Intrinsic::x86_sse2_pmulh_w, 128518}, // __builtin_ia32_pmulhw128
-+ {Intrinsic::x86_avx512_mask_pmulh_w_128, 110438}, // __builtin_ia32_pmulhw128_mask
-+ {Intrinsic::x86_avx2_pmulh_w, 93364}, // __builtin_ia32_pmulhw256
-+ {Intrinsic::x86_avx512_mask_pmulh_w_256, 110468}, // __builtin_ia32_pmulhw256_mask
-+ {Intrinsic::x86_avx512_mask_pmulh_w_512, 110498}, // __builtin_ia32_pmulhw512_mask
-+ {Intrinsic::x86_mmx_pmull_w, 125534}, // __builtin_ia32_pmullw
-+ {Intrinsic::x86_mmx_pmulu_dq, 125556}, // __builtin_ia32_pmuludq
-+ {Intrinsic::x86_sse2_pmulu_dq, 128569}, // __builtin_ia32_pmuludq128
-+ {Intrinsic::x86_avx512_mask_pmulu_dq_128, 110735}, // __builtin_ia32_pmuludq128_mask
-+ {Intrinsic::x86_avx2_pmulu_dq, 93415}, // __builtin_ia32_pmuludq256
-+ {Intrinsic::x86_avx512_mask_pmulu_dq_256, 110766}, // __builtin_ia32_pmuludq256_mask
-+ {Intrinsic::x86_avx512_mask_pmulu_dq_512, 110797}, // __builtin_ia32_pmuludq512_mask
-+ {Intrinsic::x86_mmx_por, 125579}, // __builtin_ia32_por
-+ {Intrinsic::x86_avx512_mask_prol_d_128, 110828}, // __builtin_ia32_prold128_mask
-+ {Intrinsic::x86_avx512_mask_prol_d_256, 110857}, // __builtin_ia32_prold256_mask
-+ {Intrinsic::x86_avx512_mask_prol_d_512, 110886}, // __builtin_ia32_prold512_mask
-+ {Intrinsic::x86_avx512_mask_prol_q_128, 110915}, // __builtin_ia32_prolq128_mask
-+ {Intrinsic::x86_avx512_mask_prol_q_256, 110944}, // __builtin_ia32_prolq256_mask
-+ {Intrinsic::x86_avx512_mask_prol_q_512, 110973}, // __builtin_ia32_prolq512_mask
-+ {Intrinsic::x86_avx512_mask_prolv_d_128, 111002}, // __builtin_ia32_prolvd128_mask
-+ {Intrinsic::x86_avx512_mask_prolv_d_256, 111032}, // __builtin_ia32_prolvd256_mask
-+ {Intrinsic::x86_avx512_mask_prolv_d_512, 111062}, // __builtin_ia32_prolvd512_mask
-+ {Intrinsic::x86_avx512_mask_prolv_q_128, 111092}, // __builtin_ia32_prolvq128_mask
-+ {Intrinsic::x86_avx512_mask_prolv_q_256, 111122}, // __builtin_ia32_prolvq256_mask
-+ {Intrinsic::x86_avx512_mask_prolv_q_512, 111152}, // __builtin_ia32_prolvq512_mask
-+ {Intrinsic::x86_avx512_mask_pror_d_128, 111182}, // __builtin_ia32_prord128_mask
-+ {Intrinsic::x86_avx512_mask_pror_d_256, 111211}, // __builtin_ia32_prord256_mask
-+ {Intrinsic::x86_avx512_mask_pror_d_512, 111240}, // __builtin_ia32_prord512_mask
-+ {Intrinsic::x86_avx512_mask_pror_q_128, 111269}, // __builtin_ia32_prorq128_mask
-+ {Intrinsic::x86_avx512_mask_pror_q_256, 111298}, // __builtin_ia32_prorq256_mask
-+ {Intrinsic::x86_avx512_mask_pror_q_512, 111327}, // __builtin_ia32_prorq512_mask
-+ {Intrinsic::x86_avx512_mask_prorv_d_128, 111356}, // __builtin_ia32_prorvd128_mask
-+ {Intrinsic::x86_avx512_mask_prorv_d_256, 111386}, // __builtin_ia32_prorvd256_mask
-+ {Intrinsic::x86_avx512_mask_prorv_d_512, 111416}, // __builtin_ia32_prorvd512_mask
-+ {Intrinsic::x86_avx512_mask_prorv_q_128, 111446}, // __builtin_ia32_prorvq128_mask
-+ {Intrinsic::x86_avx512_mask_prorv_q_256, 111476}, // __builtin_ia32_prorvq256_mask
-+ {Intrinsic::x86_avx512_mask_prorv_q_512, 111506}, // __builtin_ia32_prorvq512_mask
-+ {Intrinsic::x86_mmx_psad_bw, 125598}, // __builtin_ia32_psadbw
-+ {Intrinsic::x86_sse2_psad_bw, 128595}, // __builtin_ia32_psadbw128
-+ {Intrinsic::x86_avx2_psad_bw, 93441}, // __builtin_ia32_psadbw256
-+ {Intrinsic::x86_avx512_psad_bw_512, 119849}, // __builtin_ia32_psadbw512
-+ {Intrinsic::x86_ssse3_pshuf_b, 131061}, // __builtin_ia32_pshufb
-+ {Intrinsic::x86_ssse3_pshuf_b_128, 131083}, // __builtin_ia32_pshufb128
-+ {Intrinsic::x86_avx2_pshuf_b, 93466}, // __builtin_ia32_pshufb256
-+ {Intrinsic::x86_avx512_pshuf_b_512, 119874}, // __builtin_ia32_pshufb512
-+ {Intrinsic::x86_sse_pshuf_w, 127259}, // __builtin_ia32_pshufw
-+ {Intrinsic::x86_ssse3_psign_b, 131108}, // __builtin_ia32_psignb
-+ {Intrinsic::x86_ssse3_psign_b_128, 131130}, // __builtin_ia32_psignb128
-+ {Intrinsic::x86_avx2_psign_b, 93491}, // __builtin_ia32_psignb256
-+ {Intrinsic::x86_ssse3_psign_d, 131155}, // __builtin_ia32_psignd
-+ {Intrinsic::x86_ssse3_psign_d_128, 131177}, // __builtin_ia32_psignd128
-+ {Intrinsic::x86_avx2_psign_d, 93516}, // __builtin_ia32_psignd256
-+ {Intrinsic::x86_ssse3_psign_w, 131202}, // __builtin_ia32_psignw
-+ {Intrinsic::x86_ssse3_psign_w_128, 131224}, // __builtin_ia32_psignw128
-+ {Intrinsic::x86_avx2_psign_w, 93541}, // __builtin_ia32_psignw256
-+ {Intrinsic::x86_mmx_psll_d, 125620}, // __builtin_ia32_pslld
-+ {Intrinsic::x86_sse2_psll_d, 128620}, // __builtin_ia32_pslld128
-+ {Intrinsic::x86_avx2_psll_d, 93566}, // __builtin_ia32_pslld256
-+ {Intrinsic::x86_avx512_psll_d_512, 119899}, // __builtin_ia32_pslld512
-+ {Intrinsic::x86_mmx_pslli_d, 125683}, // __builtin_ia32_pslldi
-+ {Intrinsic::x86_sse2_pslli_d, 128692}, // __builtin_ia32_pslldi128
-+ {Intrinsic::x86_avx2_pslli_d, 93638}, // __builtin_ia32_pslldi256
-+ {Intrinsic::x86_avx512_pslli_d_512, 119971}, // __builtin_ia32_pslldi512
-+ {Intrinsic::x86_mmx_psll_q, 125641}, // __builtin_ia32_psllq
-+ {Intrinsic::x86_sse2_psll_q, 128644}, // __builtin_ia32_psllq128
-+ {Intrinsic::x86_avx2_psll_q, 93590}, // __builtin_ia32_psllq256
-+ {Intrinsic::x86_avx512_psll_q_512, 119923}, // __builtin_ia32_psllq512
-+ {Intrinsic::x86_mmx_pslli_q, 125705}, // __builtin_ia32_psllqi
-+ {Intrinsic::x86_sse2_pslli_q, 128717}, // __builtin_ia32_psllqi128
-+ {Intrinsic::x86_avx2_pslli_q, 93663}, // __builtin_ia32_psllqi256
-+ {Intrinsic::x86_avx512_pslli_q_512, 119996}, // __builtin_ia32_psllqi512
-+ {Intrinsic::x86_avx512_psllv_w_256, 120119}, // __builtin_ia32_psllv16hi
-+ {Intrinsic::x86_avx512_psllv_d_512, 120046}, // __builtin_ia32_psllv16si
-+ {Intrinsic::x86_avx2_psllv_q, 93761}, // __builtin_ia32_psllv2di
-+ {Intrinsic::x86_avx512_psllv_w_512, 120144}, // __builtin_ia32_psllv32hi
-+ {Intrinsic::x86_avx2_psllv_q_256, 93785}, // __builtin_ia32_psllv4di
-+ {Intrinsic::x86_avx2_psllv_d, 93713}, // __builtin_ia32_psllv4si
-+ {Intrinsic::x86_avx512_psllv_q_512, 120071}, // __builtin_ia32_psllv8di
-+ {Intrinsic::x86_avx512_psllv_w_128, 120095}, // __builtin_ia32_psllv8hi
-+ {Intrinsic::x86_avx2_psllv_d_256, 93737}, // __builtin_ia32_psllv8si
-+ {Intrinsic::x86_mmx_psll_w, 125662}, // __builtin_ia32_psllw
-+ {Intrinsic::x86_sse2_psll_w, 128668}, // __builtin_ia32_psllw128
-+ {Intrinsic::x86_avx2_psll_w, 93614}, // __builtin_ia32_psllw256
-+ {Intrinsic::x86_avx512_psll_w_512, 119947}, // __builtin_ia32_psllw512
-+ {Intrinsic::x86_mmx_pslli_w, 125727}, // __builtin_ia32_psllwi
-+ {Intrinsic::x86_sse2_pslli_w, 128742}, // __builtin_ia32_psllwi128
-+ {Intrinsic::x86_avx2_pslli_w, 93688}, // __builtin_ia32_psllwi256
-+ {Intrinsic::x86_avx512_pslli_w_512, 120021}, // __builtin_ia32_psllwi512
-+ {Intrinsic::x86_mmx_psra_d, 125749}, // __builtin_ia32_psrad
-+ {Intrinsic::x86_sse2_psra_d, 128767}, // __builtin_ia32_psrad128
-+ {Intrinsic::x86_avx2_psra_d, 93809}, // __builtin_ia32_psrad256
-+ {Intrinsic::x86_avx512_psra_d_512, 120169}, // __builtin_ia32_psrad512
-+ {Intrinsic::x86_mmx_psrai_d, 125791}, // __builtin_ia32_psradi
-+ {Intrinsic::x86_sse2_psrai_d, 128815}, // __builtin_ia32_psradi128
-+ {Intrinsic::x86_avx2_psrai_d, 93857}, // __builtin_ia32_psradi256
-+ {Intrinsic::x86_avx512_psrai_d_512, 120289}, // __builtin_ia32_psradi512
-+ {Intrinsic::x86_avx512_psra_q_128, 120193}, // __builtin_ia32_psraq128
-+ {Intrinsic::x86_avx512_psra_q_256, 120217}, // __builtin_ia32_psraq256
-+ {Intrinsic::x86_avx512_psra_q_512, 120241}, // __builtin_ia32_psraq512
-+ {Intrinsic::x86_avx512_psrai_q_128, 120314}, // __builtin_ia32_psraqi128
-+ {Intrinsic::x86_avx512_psrai_q_256, 120339}, // __builtin_ia32_psraqi256
-+ {Intrinsic::x86_avx512_psrai_q_512, 120364}, // __builtin_ia32_psraqi512
-+ {Intrinsic::x86_avx512_psrav_w_256, 120537}, // __builtin_ia32_psrav16hi
-+ {Intrinsic::x86_avx512_psrav_d_512, 120414}, // __builtin_ia32_psrav16si
-+ {Intrinsic::x86_avx512_psrav_w_512, 120562}, // __builtin_ia32_psrav32hi
-+ {Intrinsic::x86_avx2_psrav_d, 93907}, // __builtin_ia32_psrav4si
-+ {Intrinsic::x86_avx512_psrav_q_512, 120489}, // __builtin_ia32_psrav8di
-+ {Intrinsic::x86_avx512_psrav_w_128, 120513}, // __builtin_ia32_psrav8hi
-+ {Intrinsic::x86_avx2_psrav_d_256, 93931}, // __builtin_ia32_psrav8si
-+ {Intrinsic::x86_avx512_psrav_q_128, 120439}, // __builtin_ia32_psravq128
-+ {Intrinsic::x86_avx512_psrav_q_256, 120464}, // __builtin_ia32_psravq256
-+ {Intrinsic::x86_mmx_psra_w, 125770}, // __builtin_ia32_psraw
-+ {Intrinsic::x86_sse2_psra_w, 128791}, // __builtin_ia32_psraw128
-+ {Intrinsic::x86_avx2_psra_w, 93833}, // __builtin_ia32_psraw256
-+ {Intrinsic::x86_avx512_psra_w_512, 120265}, // __builtin_ia32_psraw512
-+ {Intrinsic::x86_mmx_psrai_w, 125813}, // __builtin_ia32_psrawi
-+ {Intrinsic::x86_sse2_psrai_w, 128840}, // __builtin_ia32_psrawi128
-+ {Intrinsic::x86_avx2_psrai_w, 93882}, // __builtin_ia32_psrawi256
-+ {Intrinsic::x86_avx512_psrai_w_512, 120389}, // __builtin_ia32_psrawi512
-+ {Intrinsic::x86_mmx_psrl_d, 125835}, // __builtin_ia32_psrld
-+ {Intrinsic::x86_sse2_psrl_d, 128865}, // __builtin_ia32_psrld128
-+ {Intrinsic::x86_avx2_psrl_d, 93955}, // __builtin_ia32_psrld256
-+ {Intrinsic::x86_avx512_psrl_d_512, 120587}, // __builtin_ia32_psrld512
-+ {Intrinsic::x86_mmx_psrli_d, 125898}, // __builtin_ia32_psrldi
-+ {Intrinsic::x86_sse2_psrli_d, 128937}, // __builtin_ia32_psrldi128
-+ {Intrinsic::x86_avx2_psrli_d, 94027}, // __builtin_ia32_psrldi256
-+ {Intrinsic::x86_avx512_psrli_d_512, 120659}, // __builtin_ia32_psrldi512
-+ {Intrinsic::x86_mmx_psrl_q, 125856}, // __builtin_ia32_psrlq
-+ {Intrinsic::x86_sse2_psrl_q, 128889}, // __builtin_ia32_psrlq128
-+ {Intrinsic::x86_avx2_psrl_q, 93979}, // __builtin_ia32_psrlq256
-+ {Intrinsic::x86_avx512_psrl_q_512, 120611}, // __builtin_ia32_psrlq512
-+ {Intrinsic::x86_mmx_psrli_q, 125920}, // __builtin_ia32_psrlqi
-+ {Intrinsic::x86_sse2_psrli_q, 128962}, // __builtin_ia32_psrlqi128
-+ {Intrinsic::x86_avx2_psrli_q, 94052}, // __builtin_ia32_psrlqi256
-+ {Intrinsic::x86_avx512_psrli_q_512, 120684}, // __builtin_ia32_psrlqi512
-+ {Intrinsic::x86_avx512_psrlv_w_256, 120807}, // __builtin_ia32_psrlv16hi
-+ {Intrinsic::x86_avx512_psrlv_d_512, 120734}, // __builtin_ia32_psrlv16si
-+ {Intrinsic::x86_avx2_psrlv_q, 94150}, // __builtin_ia32_psrlv2di
-+ {Intrinsic::x86_avx512_psrlv_w_512, 120832}, // __builtin_ia32_psrlv32hi
-+ {Intrinsic::x86_avx2_psrlv_q_256, 94174}, // __builtin_ia32_psrlv4di
-+ {Intrinsic::x86_avx2_psrlv_d, 94102}, // __builtin_ia32_psrlv4si
-+ {Intrinsic::x86_avx512_psrlv_q_512, 120759}, // __builtin_ia32_psrlv8di
-+ {Intrinsic::x86_avx512_psrlv_w_128, 120783}, // __builtin_ia32_psrlv8hi
-+ {Intrinsic::x86_avx2_psrlv_d_256, 94126}, // __builtin_ia32_psrlv8si
-+ {Intrinsic::x86_mmx_psrl_w, 125877}, // __builtin_ia32_psrlw
-+ {Intrinsic::x86_sse2_psrl_w, 128913}, // __builtin_ia32_psrlw128
-+ {Intrinsic::x86_avx2_psrl_w, 94003}, // __builtin_ia32_psrlw256
-+ {Intrinsic::x86_avx512_psrl_w_512, 120635}, // __builtin_ia32_psrlw512
-+ {Intrinsic::x86_mmx_psrli_w, 125942}, // __builtin_ia32_psrlwi
-+ {Intrinsic::x86_sse2_psrli_w, 128987}, // __builtin_ia32_psrlwi128
-+ {Intrinsic::x86_avx2_psrli_w, 94077}, // __builtin_ia32_psrlwi256
-+ {Intrinsic::x86_avx512_psrli_w_512, 120709}, // __builtin_ia32_psrlwi512
-+ {Intrinsic::x86_mmx_psub_b, 125964}, // __builtin_ia32_psubb
-+ {Intrinsic::x86_mmx_psub_d, 125985}, // __builtin_ia32_psubd
-+ {Intrinsic::x86_mmx_psub_q, 126006}, // __builtin_ia32_psubq
-+ {Intrinsic::x86_mmx_psubs_b, 126048}, // __builtin_ia32_psubsb
-+ {Intrinsic::x86_sse2_psubs_b, 129012}, // __builtin_ia32_psubsb128
-+ {Intrinsic::x86_avx512_mask_psubs_b_128, 111536}, // __builtin_ia32_psubsb128_mask
-+ {Intrinsic::x86_avx2_psubs_b, 94198}, // __builtin_ia32_psubsb256
-+ {Intrinsic::x86_avx512_mask_psubs_b_256, 111566}, // __builtin_ia32_psubsb256_mask
-+ {Intrinsic::x86_avx512_mask_psubs_b_512, 111596}, // __builtin_ia32_psubsb512_mask
-+ {Intrinsic::x86_mmx_psubs_w, 126070}, // __builtin_ia32_psubsw
-+ {Intrinsic::x86_sse2_psubs_w, 129037}, // __builtin_ia32_psubsw128
-+ {Intrinsic::x86_avx512_mask_psubs_w_128, 111626}, // __builtin_ia32_psubsw128_mask
-+ {Intrinsic::x86_avx2_psubs_w, 94223}, // __builtin_ia32_psubsw256
-+ {Intrinsic::x86_avx512_mask_psubs_w_256, 111656}, // __builtin_ia32_psubsw256_mask
-+ {Intrinsic::x86_avx512_mask_psubs_w_512, 111686}, // __builtin_ia32_psubsw512_mask
-+ {Intrinsic::x86_mmx_psubus_b, 126092}, // __builtin_ia32_psubusb
-+ {Intrinsic::x86_sse2_psubus_b, 129062}, // __builtin_ia32_psubusb128
-+ {Intrinsic::x86_avx512_mask_psubus_b_128, 111716}, // __builtin_ia32_psubusb128_mask
-+ {Intrinsic::x86_avx2_psubus_b, 94248}, // __builtin_ia32_psubusb256
-+ {Intrinsic::x86_avx512_mask_psubus_b_256, 111747}, // __builtin_ia32_psubusb256_mask
-+ {Intrinsic::x86_avx512_mask_psubus_b_512, 111778}, // __builtin_ia32_psubusb512_mask
-+ {Intrinsic::x86_mmx_psubus_w, 126115}, // __builtin_ia32_psubusw
-+ {Intrinsic::x86_sse2_psubus_w, 129088}, // __builtin_ia32_psubusw128
-+ {Intrinsic::x86_avx512_mask_psubus_w_128, 111809}, // __builtin_ia32_psubusw128_mask
-+ {Intrinsic::x86_avx2_psubus_w, 94274}, // __builtin_ia32_psubusw256
-+ {Intrinsic::x86_avx512_mask_psubus_w_256, 111840}, // __builtin_ia32_psubusw256_mask
-+ {Intrinsic::x86_avx512_mask_psubus_w_512, 111871}, // __builtin_ia32_psubusw512_mask
-+ {Intrinsic::x86_mmx_psub_w, 126027}, // __builtin_ia32_psubw
-+ {Intrinsic::x86_avx512_mask_pternlog_d_128, 111902}, // __builtin_ia32_pternlogd128_mask
-+ {Intrinsic::x86_avx512_maskz_pternlog_d_128, 118266}, // __builtin_ia32_pternlogd128_maskz
-+ {Intrinsic::x86_avx512_mask_pternlog_d_256, 111935}, // __builtin_ia32_pternlogd256_mask
-+ {Intrinsic::x86_avx512_maskz_pternlog_d_256, 118300}, // __builtin_ia32_pternlogd256_maskz
-+ {Intrinsic::x86_avx512_mask_pternlog_d_512, 111968}, // __builtin_ia32_pternlogd512_mask
-+ {Intrinsic::x86_avx512_maskz_pternlog_d_512, 118334}, // __builtin_ia32_pternlogd512_maskz
-+ {Intrinsic::x86_avx512_mask_pternlog_q_128, 112001}, // __builtin_ia32_pternlogq128_mask
-+ {Intrinsic::x86_avx512_maskz_pternlog_q_128, 118368}, // __builtin_ia32_pternlogq128_maskz
-+ {Intrinsic::x86_avx512_mask_pternlog_q_256, 112034}, // __builtin_ia32_pternlogq256_mask
-+ {Intrinsic::x86_avx512_maskz_pternlog_q_256, 118402}, // __builtin_ia32_pternlogq256_maskz
-+ {Intrinsic::x86_avx512_mask_pternlog_q_512, 112067}, // __builtin_ia32_pternlogq512_mask
-+ {Intrinsic::x86_avx512_maskz_pternlog_q_512, 118436}, // __builtin_ia32_pternlogq512_maskz
-+ {Intrinsic::x86_sse41_ptestc, 129783}, // __builtin_ia32_ptestc128
-+ {Intrinsic::x86_avx_ptestc_256, 91158}, // __builtin_ia32_ptestc256
-+ {Intrinsic::x86_avx512_ptestm_b_128, 120857}, // __builtin_ia32_ptestmb128
-+ {Intrinsic::x86_avx512_ptestm_b_256, 120883}, // __builtin_ia32_ptestmb256
-+ {Intrinsic::x86_avx512_ptestm_b_512, 120909}, // __builtin_ia32_ptestmb512
-+ {Intrinsic::x86_avx512_ptestm_d_128, 120935}, // __builtin_ia32_ptestmd128
-+ {Intrinsic::x86_avx512_ptestm_d_256, 120961}, // __builtin_ia32_ptestmd256
-+ {Intrinsic::x86_avx512_ptestm_d_512, 120987}, // __builtin_ia32_ptestmd512
-+ {Intrinsic::x86_avx512_ptestm_q_128, 121013}, // __builtin_ia32_ptestmq128
-+ {Intrinsic::x86_avx512_ptestm_q_256, 121039}, // __builtin_ia32_ptestmq256
-+ {Intrinsic::x86_avx512_ptestm_q_512, 121065}, // __builtin_ia32_ptestmq512
-+ {Intrinsic::x86_avx512_ptestm_w_128, 121091}, // __builtin_ia32_ptestmw128
-+ {Intrinsic::x86_avx512_ptestm_w_256, 121117}, // __builtin_ia32_ptestmw256
-+ {Intrinsic::x86_avx512_ptestm_w_512, 121143}, // __builtin_ia32_ptestmw512
-+ {Intrinsic::x86_avx512_ptestnm_b_128, 121169}, // __builtin_ia32_ptestnmb128
-+ {Intrinsic::x86_avx512_ptestnm_b_256, 121196}, // __builtin_ia32_ptestnmb256
-+ {Intrinsic::x86_avx512_ptestnm_b_512, 121223}, // __builtin_ia32_ptestnmb512
-+ {Intrinsic::x86_avx512_ptestnm_d_128, 121250}, // __builtin_ia32_ptestnmd128
-+ {Intrinsic::x86_avx512_ptestnm_d_256, 121277}, // __builtin_ia32_ptestnmd256
-+ {Intrinsic::x86_avx512_ptestnm_d_512, 121304}, // __builtin_ia32_ptestnmd512
-+ {Intrinsic::x86_avx512_ptestnm_q_128, 121331}, // __builtin_ia32_ptestnmq128
-+ {Intrinsic::x86_avx512_ptestnm_q_256, 121358}, // __builtin_ia32_ptestnmq256
-+ {Intrinsic::x86_avx512_ptestnm_q_512, 121385}, // __builtin_ia32_ptestnmq512
-+ {Intrinsic::x86_avx512_ptestnm_w_128, 121412}, // __builtin_ia32_ptestnmw128
-+ {Intrinsic::x86_avx512_ptestnm_w_256, 121439}, // __builtin_ia32_ptestnmw256
-+ {Intrinsic::x86_avx512_ptestnm_w_512, 121466}, // __builtin_ia32_ptestnmw512
-+ {Intrinsic::x86_sse41_ptestnzc, 129808}, // __builtin_ia32_ptestnzc128
-+ {Intrinsic::x86_avx_ptestnzc_256, 91183}, // __builtin_ia32_ptestnzc256
-+ {Intrinsic::x86_sse41_ptestz, 129835}, // __builtin_ia32_ptestz128
-+ {Intrinsic::x86_avx_ptestz_256, 91210}, // __builtin_ia32_ptestz256
-+ {Intrinsic::x86_mmx_punpckhbw, 126138}, // __builtin_ia32_punpckhbw
-+ {Intrinsic::x86_mmx_punpckhdq, 126163}, // __builtin_ia32_punpckhdq
-+ {Intrinsic::x86_mmx_punpckhwd, 126188}, // __builtin_ia32_punpckhwd
-+ {Intrinsic::x86_mmx_punpcklbw, 126213}, // __builtin_ia32_punpcklbw
-+ {Intrinsic::x86_mmx_punpckldq, 126238}, // __builtin_ia32_punpckldq
-+ {Intrinsic::x86_mmx_punpcklwd, 126263}, // __builtin_ia32_punpcklwd
-+ {Intrinsic::x86_mmx_pxor, 126288}, // __builtin_ia32_pxor
-+ {Intrinsic::x86_avx512_mask_range_pd_128, 112100}, // __builtin_ia32_rangepd128_mask
-+ {Intrinsic::x86_avx512_mask_range_pd_256, 112131}, // __builtin_ia32_rangepd256_mask
-+ {Intrinsic::x86_avx512_mask_range_pd_512, 112162}, // __builtin_ia32_rangepd512_mask
-+ {Intrinsic::x86_avx512_mask_range_ps_128, 112193}, // __builtin_ia32_rangeps128_mask
-+ {Intrinsic::x86_avx512_mask_range_ps_256, 112224}, // __builtin_ia32_rangeps256_mask
-+ {Intrinsic::x86_avx512_mask_range_ps_512, 112255}, // __builtin_ia32_rangeps512_mask
-+ {Intrinsic::x86_avx512_mask_range_sd, 112286}, // __builtin_ia32_rangesd128_round_mask
-+ {Intrinsic::x86_avx512_mask_range_ss, 112323}, // __builtin_ia32_rangess128_round_mask
-+ {Intrinsic::x86_avx512_rcp14_pd_128, 121493}, // __builtin_ia32_rcp14pd128_mask
-+ {Intrinsic::x86_avx512_rcp14_pd_256, 121524}, // __builtin_ia32_rcp14pd256_mask
-+ {Intrinsic::x86_avx512_rcp14_pd_512, 121555}, // __builtin_ia32_rcp14pd512_mask
-+ {Intrinsic::x86_avx512_rcp14_ps_128, 121586}, // __builtin_ia32_rcp14ps128_mask
-+ {Intrinsic::x86_avx512_rcp14_ps_256, 121617}, // __builtin_ia32_rcp14ps256_mask
-+ {Intrinsic::x86_avx512_rcp14_ps_512, 121648}, // __builtin_ia32_rcp14ps512_mask
-+ {Intrinsic::x86_avx512_rcp14_sd, 121679}, // __builtin_ia32_rcp14sd_mask
-+ {Intrinsic::x86_avx512_rcp14_ss, 121707}, // __builtin_ia32_rcp14ss_mask
-+ {Intrinsic::x86_avx512_rcp28_pd, 121735}, // __builtin_ia32_rcp28pd_mask
-+ {Intrinsic::x86_avx512_rcp28_ps, 121763}, // __builtin_ia32_rcp28ps_mask
-+ {Intrinsic::x86_avx512_rcp28_sd, 121791}, // __builtin_ia32_rcp28sd_round_mask
-+ {Intrinsic::x86_avx512_rcp28_ss, 121825}, // __builtin_ia32_rcp28ss_round_mask
-+ {Intrinsic::x86_sse_rcp_ps, 127281}, // __builtin_ia32_rcpps
-+ {Intrinsic::x86_avx_rcp_ps_256, 91235}, // __builtin_ia32_rcpps256
-+ {Intrinsic::x86_sse_rcp_ss, 127302}, // __builtin_ia32_rcpss
-+ {Intrinsic::x86_rdfsbase_32, 126382}, // __builtin_ia32_rdfsbase32
-+ {Intrinsic::x86_rdfsbase_64, 126408}, // __builtin_ia32_rdfsbase64
-+ {Intrinsic::x86_rdgsbase_32, 126434}, // __builtin_ia32_rdgsbase32
-+ {Intrinsic::x86_rdgsbase_64, 126460}, // __builtin_ia32_rdgsbase64
-+ {Intrinsic::x86_rdpkru, 126486}, // __builtin_ia32_rdpkru
-+ {Intrinsic::x86_rdpmc, 126508}, // __builtin_ia32_rdpmc
-+ {Intrinsic::x86_rdtsc, 126529}, // __builtin_ia32_rdtsc
-+ {Intrinsic::x86_rdtscp, 126550}, // __builtin_ia32_rdtscp
-+ {Intrinsic::x86_flags_read_u32, 123665}, // __builtin_ia32_readeflags_u32
-+ {Intrinsic::x86_flags_read_u64, 123695}, // __builtin_ia32_readeflags_u64
-+ {Intrinsic::x86_avx512_mask_reduce_pd_128, 112360}, // __builtin_ia32_reducepd128_mask
-+ {Intrinsic::x86_avx512_mask_reduce_pd_256, 112392}, // __builtin_ia32_reducepd256_mask
-+ {Intrinsic::x86_avx512_mask_reduce_pd_512, 112424}, // __builtin_ia32_reducepd512_mask
-+ {Intrinsic::x86_avx512_mask_reduce_ps_128, 112456}, // __builtin_ia32_reduceps128_mask
-+ {Intrinsic::x86_avx512_mask_reduce_ps_256, 112488}, // __builtin_ia32_reduceps256_mask
-+ {Intrinsic::x86_avx512_mask_reduce_ps_512, 112520}, // __builtin_ia32_reduceps512_mask
-+ {Intrinsic::x86_avx512_mask_reduce_sd, 112552}, // __builtin_ia32_reducesd_mask
-+ {Intrinsic::x86_avx512_mask_reduce_ss, 112581}, // __builtin_ia32_reducess_mask
-+ {Intrinsic::x86_avx512_mask_rndscale_pd_128, 112610}, // __builtin_ia32_rndscalepd_128_mask
-+ {Intrinsic::x86_avx512_mask_rndscale_pd_256, 112645}, // __builtin_ia32_rndscalepd_256_mask
-+ {Intrinsic::x86_avx512_mask_rndscale_pd_512, 112680}, // __builtin_ia32_rndscalepd_mask
-+ {Intrinsic::x86_avx512_mask_rndscale_ps_128, 112711}, // __builtin_ia32_rndscaleps_128_mask
-+ {Intrinsic::x86_avx512_mask_rndscale_ps_256, 112746}, // __builtin_ia32_rndscaleps_256_mask
-+ {Intrinsic::x86_avx512_mask_rndscale_ps_512, 112781}, // __builtin_ia32_rndscaleps_mask
-+ {Intrinsic::x86_avx512_mask_rndscale_sd, 112812}, // __builtin_ia32_rndscalesd_round_mask
-+ {Intrinsic::x86_avx512_mask_rndscale_ss, 112849}, // __builtin_ia32_rndscaless_round_mask
-+ {Intrinsic::x86_sse41_round_pd, 129860}, // __builtin_ia32_roundpd
-+ {Intrinsic::x86_avx_round_pd_256, 91259}, // __builtin_ia32_roundpd256
-+ {Intrinsic::x86_sse41_round_ps, 129883}, // __builtin_ia32_roundps
-+ {Intrinsic::x86_avx_round_ps_256, 91285}, // __builtin_ia32_roundps256
-+ {Intrinsic::x86_sse41_round_sd, 129906}, // __builtin_ia32_roundsd
-+ {Intrinsic::x86_sse41_round_ss, 129929}, // __builtin_ia32_roundss
-+ {Intrinsic::x86_avx512_rsqrt14_pd_128, 121859}, // __builtin_ia32_rsqrt14pd128_mask
-+ {Intrinsic::x86_avx512_rsqrt14_pd_256, 121892}, // __builtin_ia32_rsqrt14pd256_mask
-+ {Intrinsic::x86_avx512_rsqrt14_pd_512, 121925}, // __builtin_ia32_rsqrt14pd512_mask
-+ {Intrinsic::x86_avx512_rsqrt14_ps_128, 121958}, // __builtin_ia32_rsqrt14ps128_mask
-+ {Intrinsic::x86_avx512_rsqrt14_ps_256, 121991}, // __builtin_ia32_rsqrt14ps256_mask
-+ {Intrinsic::x86_avx512_rsqrt14_ps_512, 122024}, // __builtin_ia32_rsqrt14ps512_mask
-+ {Intrinsic::x86_avx512_rsqrt14_sd, 122057}, // __builtin_ia32_rsqrt14sd_mask
-+ {Intrinsic::x86_avx512_rsqrt14_ss, 122087}, // __builtin_ia32_rsqrt14ss_mask
-+ {Intrinsic::x86_avx512_rsqrt28_pd, 122117}, // __builtin_ia32_rsqrt28pd_mask
-+ {Intrinsic::x86_avx512_rsqrt28_ps, 122147}, // __builtin_ia32_rsqrt28ps_mask
-+ {Intrinsic::x86_avx512_rsqrt28_sd, 122177}, // __builtin_ia32_rsqrt28sd_round_mask
-+ {Intrinsic::x86_avx512_rsqrt28_ss, 122213}, // __builtin_ia32_rsqrt28ss_round_mask
-+ {Intrinsic::x86_sse_rsqrt_ps, 127323}, // __builtin_ia32_rsqrtps
-+ {Intrinsic::x86_avx_rsqrt_ps_256, 91311}, // __builtin_ia32_rsqrtps256
-+ {Intrinsic::x86_sse_rsqrt_ss, 127346}, // __builtin_ia32_rsqrtss
-+ {Intrinsic::x86_avx512_mask_scalef_pd_128, 112886}, // __builtin_ia32_scalefpd128_mask
-+ {Intrinsic::x86_avx512_mask_scalef_pd_256, 112918}, // __builtin_ia32_scalefpd256_mask
-+ {Intrinsic::x86_avx512_mask_scalef_pd_512, 112950}, // __builtin_ia32_scalefpd512_mask
-+ {Intrinsic::x86_avx512_mask_scalef_ps_128, 112982}, // __builtin_ia32_scalefps128_mask
-+ {Intrinsic::x86_avx512_mask_scalef_ps_256, 113014}, // __builtin_ia32_scalefps256_mask
-+ {Intrinsic::x86_avx512_mask_scalef_ps_512, 113046}, // __builtin_ia32_scalefps512_mask
-+ {Intrinsic::x86_avx512_mask_scalef_sd, 113078}, // __builtin_ia32_scalefsd_round_mask
-+ {Intrinsic::x86_avx512_mask_scalef_ss, 113113}, // __builtin_ia32_scalefss_round_mask
-+ {Intrinsic::x86_avx512_scatter_qps_512, 122455}, // __builtin_ia32_scatterdiv16sf
-+ {Intrinsic::x86_avx512_scatter_qpi_512, 122396}, // __builtin_ia32_scatterdiv16si
-+ {Intrinsic::x86_avx512_scatterdiv2_df, 122485}, // __builtin_ia32_scatterdiv2df
-+ {Intrinsic::x86_avx512_scatterdiv2_di, 122514}, // __builtin_ia32_scatterdiv2di
-+ {Intrinsic::x86_avx512_scatterdiv4_df, 122543}, // __builtin_ia32_scatterdiv4df
-+ {Intrinsic::x86_avx512_scatterdiv4_di, 122572}, // __builtin_ia32_scatterdiv4di
-+ {Intrinsic::x86_avx512_scatterdiv4_sf, 122601}, // __builtin_ia32_scatterdiv4sf
-+ {Intrinsic::x86_avx512_scatterdiv4_si, 122630}, // __builtin_ia32_scatterdiv4si
-+ {Intrinsic::x86_avx512_scatter_qpd_512, 122367}, // __builtin_ia32_scatterdiv8df
-+ {Intrinsic::x86_avx512_scatter_qpq_512, 122426}, // __builtin_ia32_scatterdiv8di
-+ {Intrinsic::x86_avx512_scatterdiv8_sf, 122659}, // __builtin_ia32_scatterdiv8sf
-+ {Intrinsic::x86_avx512_scatterdiv8_si, 122688}, // __builtin_ia32_scatterdiv8si
-+ {Intrinsic::x86_avx512_scatterpf_dpd_512, 122717}, // __builtin_ia32_scatterpfdpd
-+ {Intrinsic::x86_avx512_scatterpf_dps_512, 122745}, // __builtin_ia32_scatterpfdps
-+ {Intrinsic::x86_avx512_scatterpf_qpd_512, 122773}, // __builtin_ia32_scatterpfqpd
-+ {Intrinsic::x86_avx512_scatterpf_qps_512, 122801}, // __builtin_ia32_scatterpfqps
-+ {Intrinsic::x86_avx512_scatter_dps_512, 122337}, // __builtin_ia32_scattersiv16sf
-+ {Intrinsic::x86_avx512_scatter_dpi_512, 122278}, // __builtin_ia32_scattersiv16si
-+ {Intrinsic::x86_avx512_scattersiv2_df, 122829}, // __builtin_ia32_scattersiv2df
-+ {Intrinsic::x86_avx512_scattersiv2_di, 122858}, // __builtin_ia32_scattersiv2di
-+ {Intrinsic::x86_avx512_scattersiv4_df, 122887}, // __builtin_ia32_scattersiv4df
-+ {Intrinsic::x86_avx512_scattersiv4_di, 122916}, // __builtin_ia32_scattersiv4di
-+ {Intrinsic::x86_avx512_scattersiv4_sf, 122945}, // __builtin_ia32_scattersiv4sf
-+ {Intrinsic::x86_avx512_scattersiv4_si, 122974}, // __builtin_ia32_scattersiv4si
-+ {Intrinsic::x86_avx512_scatter_dpd_512, 122249}, // __builtin_ia32_scattersiv8df
-+ {Intrinsic::x86_avx512_scatter_dpq_512, 122308}, // __builtin_ia32_scattersiv8di
-+ {Intrinsic::x86_avx512_scattersiv8_sf, 123003}, // __builtin_ia32_scattersiv8sf
-+ {Intrinsic::x86_avx512_scattersiv8_si, 123032}, // __builtin_ia32_scattersiv8si
-+ {Intrinsic::x86_sse_sfence, 127369}, // __builtin_ia32_sfence
-+ {Intrinsic::x86_sha1msg1, 126572}, // __builtin_ia32_sha1msg1
-+ {Intrinsic::x86_sha1msg2, 126596}, // __builtin_ia32_sha1msg2
-+ {Intrinsic::x86_sha1nexte, 126620}, // __builtin_ia32_sha1nexte
-+ {Intrinsic::x86_sha1rnds4, 126645}, // __builtin_ia32_sha1rnds4
-+ {Intrinsic::x86_sha256msg1, 126670}, // __builtin_ia32_sha256msg1
-+ {Intrinsic::x86_sha256msg2, 126696}, // __builtin_ia32_sha256msg2
-+ {Intrinsic::x86_sha256rnds2, 126722}, // __builtin_ia32_sha256rnds2
-+ {Intrinsic::x86_avx512_mask_shuf_f32x4_256, 113179}, // __builtin_ia32_shuf_f32x4_256_mask
-+ {Intrinsic::x86_avx512_mask_shuf_f32x4, 113148}, // __builtin_ia32_shuf_f32x4_mask
-+ {Intrinsic::x86_avx512_mask_shuf_f64x2_256, 113245}, // __builtin_ia32_shuf_f64x2_256_mask
-+ {Intrinsic::x86_avx512_mask_shuf_f64x2, 113214}, // __builtin_ia32_shuf_f64x2_mask
-+ {Intrinsic::x86_avx512_mask_shuf_i32x4_256, 113311}, // __builtin_ia32_shuf_i32x4_256_mask
-+ {Intrinsic::x86_avx512_mask_shuf_i32x4, 113280}, // __builtin_ia32_shuf_i32x4_mask
-+ {Intrinsic::x86_avx512_mask_shuf_i64x2_256, 113377}, // __builtin_ia32_shuf_i64x2_256_mask
-+ {Intrinsic::x86_avx512_mask_shuf_i64x2, 113346}, // __builtin_ia32_shuf_i64x2_mask
-+ {Intrinsic::x86_sse2_sqrt_pd, 129114}, // __builtin_ia32_sqrtpd
-+ {Intrinsic::x86_avx512_mask_sqrt_pd_128, 113412}, // __builtin_ia32_sqrtpd128_mask
-+ {Intrinsic::x86_avx_sqrt_pd_256, 91337}, // __builtin_ia32_sqrtpd256
-+ {Intrinsic::x86_avx512_mask_sqrt_pd_256, 113442}, // __builtin_ia32_sqrtpd256_mask
-+ {Intrinsic::x86_avx512_mask_sqrt_pd_512, 113472}, // __builtin_ia32_sqrtpd512_mask
-+ {Intrinsic::x86_sse_sqrt_ps, 127391}, // __builtin_ia32_sqrtps
-+ {Intrinsic::x86_avx512_mask_sqrt_ps_128, 113502}, // __builtin_ia32_sqrtps128_mask
-+ {Intrinsic::x86_avx_sqrt_ps_256, 91362}, // __builtin_ia32_sqrtps256
-+ {Intrinsic::x86_avx512_mask_sqrt_ps_256, 113532}, // __builtin_ia32_sqrtps256_mask
-+ {Intrinsic::x86_avx512_mask_sqrt_ps_512, 113562}, // __builtin_ia32_sqrtps512_mask
-+ {Intrinsic::x86_sse2_sqrt_sd, 129136}, // __builtin_ia32_sqrtsd
-+ {Intrinsic::x86_avx512_mask_sqrt_sd, 113592}, // __builtin_ia32_sqrtsd_round_mask
-+ {Intrinsic::x86_sse_sqrt_ss, 127413}, // __builtin_ia32_sqrtss
-+ {Intrinsic::x86_avx512_mask_sqrt_ss, 113625}, // __builtin_ia32_sqrtss_round_mask
-+ {Intrinsic::x86_avx512_mask_store_ss, 113658}, // __builtin_ia32_storess_mask
-+ {Intrinsic::x86_subborrow_u32, 131249}, // __builtin_ia32_subborrow_u32
-+ {Intrinsic::x86_subborrow_u64, 131278}, // __builtin_ia32_subborrow_u64
-+ {Intrinsic::x86_avx512_mask_sub_pd_512, 113686}, // __builtin_ia32_subpd512_mask
-+ {Intrinsic::x86_avx512_mask_sub_ps_512, 113715}, // __builtin_ia32_subps512_mask
-+ {Intrinsic::x86_avx512_mask_sub_sd_round, 113744}, // __builtin_ia32_subsd_round_mask
-+ {Intrinsic::x86_avx512_mask_sub_ss_round, 113776}, // __builtin_ia32_subss_round_mask
-+ {Intrinsic::x86_sse_ucomieq_ss, 127435}, // __builtin_ia32_ucomieq
-+ {Intrinsic::x86_sse_ucomige_ss, 127458}, // __builtin_ia32_ucomige
-+ {Intrinsic::x86_sse_ucomigt_ss, 127481}, // __builtin_ia32_ucomigt
-+ {Intrinsic::x86_sse_ucomile_ss, 127504}, // __builtin_ia32_ucomile
-+ {Intrinsic::x86_sse_ucomilt_ss, 127527}, // __builtin_ia32_ucomilt
-+ {Intrinsic::x86_sse_ucomineq_ss, 127550}, // __builtin_ia32_ucomineq
-+ {Intrinsic::x86_sse2_ucomieq_sd, 129158}, // __builtin_ia32_ucomisdeq
-+ {Intrinsic::x86_sse2_ucomige_sd, 129183}, // __builtin_ia32_ucomisdge
-+ {Intrinsic::x86_sse2_ucomigt_sd, 129208}, // __builtin_ia32_ucomisdgt
-+ {Intrinsic::x86_sse2_ucomile_sd, 129233}, // __builtin_ia32_ucomisdle
-+ {Intrinsic::x86_sse2_ucomilt_sd, 129258}, // __builtin_ia32_ucomisdlt
-+ {Intrinsic::x86_sse2_ucomineq_sd, 129283}, // __builtin_ia32_ucomisdneq
-+ {Intrinsic::x86_avx512_vbroadcast_sd_512, 123061}, // __builtin_ia32_vbroadcastsd512
-+ {Intrinsic::x86_avx512_vbroadcast_ss_512, 123092}, // __builtin_ia32_vbroadcastss512
-+ {Intrinsic::x86_avx512_vcomi_sd, 123123}, // __builtin_ia32_vcomisd
-+ {Intrinsic::x86_avx512_vcomi_ss, 123146}, // __builtin_ia32_vcomiss
-+ {Intrinsic::x86_vcvtph2ps_128, 131359}, // __builtin_ia32_vcvtph2ps
-+ {Intrinsic::x86_vcvtph2ps_256, 131384}, // __builtin_ia32_vcvtph2ps256
-+ {Intrinsic::x86_avx512_mask_vcvtph2ps_256, 113838}, // __builtin_ia32_vcvtph2ps256_mask
-+ {Intrinsic::x86_avx512_mask_vcvtph2ps_512, 113871}, // __builtin_ia32_vcvtph2ps512_mask
-+ {Intrinsic::x86_avx512_mask_vcvtph2ps_128, 113808}, // __builtin_ia32_vcvtph2ps_mask
-+ {Intrinsic::x86_vcvtps2ph_128, 131412}, // __builtin_ia32_vcvtps2ph
-+ {Intrinsic::x86_vcvtps2ph_256, 131437}, // __builtin_ia32_vcvtps2ph256
-+ {Intrinsic::x86_avx512_mask_vcvtps2ph_256, 113934}, // __builtin_ia32_vcvtps2ph256_mask
-+ {Intrinsic::x86_avx512_mask_vcvtps2ph_512, 113967}, // __builtin_ia32_vcvtps2ph512_mask
-+ {Intrinsic::x86_avx512_mask_vcvtps2ph_128, 113904}, // __builtin_ia32_vcvtps2ph_mask
-+ {Intrinsic::x86_avx512_vcvtsd2si32, 123169}, // __builtin_ia32_vcvtsd2si32
-+ {Intrinsic::x86_avx512_vcvtsd2si64, 123196}, // __builtin_ia32_vcvtsd2si64
-+ {Intrinsic::x86_avx512_vcvtsd2usi32, 123223}, // __builtin_ia32_vcvtsd2usi32
-+ {Intrinsic::x86_avx512_vcvtsd2usi64, 123251}, // __builtin_ia32_vcvtsd2usi64
-+ {Intrinsic::x86_avx512_vcvtss2si32, 123279}, // __builtin_ia32_vcvtss2si32
-+ {Intrinsic::x86_avx512_vcvtss2si64, 123306}, // __builtin_ia32_vcvtss2si64
-+ {Intrinsic::x86_avx512_vcvtss2usi32, 123333}, // __builtin_ia32_vcvtss2usi32
-+ {Intrinsic::x86_avx512_vcvtss2usi64, 123361}, // __builtin_ia32_vcvtss2usi64
-+ {Intrinsic::x86_avx512_cvttsd2si, 95171}, // __builtin_ia32_vcvttsd2si32
-+ {Intrinsic::x86_avx512_cvttsd2si64, 95199}, // __builtin_ia32_vcvttsd2si64
-+ {Intrinsic::x86_avx512_cvttsd2usi, 95227}, // __builtin_ia32_vcvttsd2usi32
-+ {Intrinsic::x86_avx512_cvttsd2usi64, 95256}, // __builtin_ia32_vcvttsd2usi64
-+ {Intrinsic::x86_avx512_cvttss2si, 95285}, // __builtin_ia32_vcvttss2si32
-+ {Intrinsic::x86_avx512_cvttss2si64, 95313}, // __builtin_ia32_vcvttss2si64
-+ {Intrinsic::x86_avx512_cvttss2usi, 95341}, // __builtin_ia32_vcvttss2usi32
-+ {Intrinsic::x86_avx512_cvttss2usi64, 95370}, // __builtin_ia32_vcvttss2usi64
-+ {Intrinsic::x86_mmx_pextr_w, 125298}, // __builtin_ia32_vec_ext_v4hi
-+ {Intrinsic::x86_mmx_pinsr_w, 125326}, // __builtin_ia32_vec_set_v4hi
-+ {Intrinsic::x86_fma_vfmadd_pd, 123787}, // __builtin_ia32_vfmaddpd
-+ {Intrinsic::x86_avx512_mask_vfmadd_pd_128, 114420}, // __builtin_ia32_vfmaddpd128_mask
-+ {Intrinsic::x86_avx512_mask3_vfmadd_pd_128, 116772}, // __builtin_ia32_vfmaddpd128_mask3
-+ {Intrinsic::x86_avx512_maskz_vfmadd_pd_128, 118470}, // __builtin_ia32_vfmaddpd128_maskz
-+ {Intrinsic::x86_fma_vfmadd_pd_256, 123811}, // __builtin_ia32_vfmaddpd256
-+ {Intrinsic::x86_avx512_mask_vfmadd_pd_256, 114452}, // __builtin_ia32_vfmaddpd256_mask
-+ {Intrinsic::x86_avx512_mask3_vfmadd_pd_256, 116805}, // __builtin_ia32_vfmaddpd256_mask3
-+ {Intrinsic::x86_avx512_maskz_vfmadd_pd_256, 118503}, // __builtin_ia32_vfmaddpd256_maskz
-+ {Intrinsic::x86_avx512_mask_vfmadd_pd_512, 114484}, // __builtin_ia32_vfmaddpd512_mask
-+ {Intrinsic::x86_avx512_mask3_vfmadd_pd_512, 116838}, // __builtin_ia32_vfmaddpd512_mask3
-+ {Intrinsic::x86_avx512_maskz_vfmadd_pd_512, 118536}, // __builtin_ia32_vfmaddpd512_maskz
-+ {Intrinsic::x86_fma_vfmadd_ps, 123838}, // __builtin_ia32_vfmaddps
-+ {Intrinsic::x86_avx512_mask_vfmadd_ps_128, 114516}, // __builtin_ia32_vfmaddps128_mask
-+ {Intrinsic::x86_avx512_mask3_vfmadd_ps_128, 116871}, // __builtin_ia32_vfmaddps128_mask3
-+ {Intrinsic::x86_avx512_maskz_vfmadd_ps_128, 118569}, // __builtin_ia32_vfmaddps128_maskz
-+ {Intrinsic::x86_fma_vfmadd_ps_256, 123862}, // __builtin_ia32_vfmaddps256
-+ {Intrinsic::x86_avx512_mask_vfmadd_ps_256, 114548}, // __builtin_ia32_vfmaddps256_mask
-+ {Intrinsic::x86_avx512_mask3_vfmadd_ps_256, 116904}, // __builtin_ia32_vfmaddps256_mask3
-+ {Intrinsic::x86_avx512_maskz_vfmadd_ps_256, 118602}, // __builtin_ia32_vfmaddps256_maskz
-+ {Intrinsic::x86_avx512_mask_vfmadd_ps_512, 114580}, // __builtin_ia32_vfmaddps512_mask
-+ {Intrinsic::x86_avx512_mask3_vfmadd_ps_512, 116937}, // __builtin_ia32_vfmaddps512_mask3
-+ {Intrinsic::x86_avx512_maskz_vfmadd_ps_512, 118635}, // __builtin_ia32_vfmaddps512_maskz
-+ {Intrinsic::x86_fma_vfmadd_sd, 123889}, // __builtin_ia32_vfmaddsd
-+ {Intrinsic::x86_avx512_mask_vfmadd_sd, 114612}, // __builtin_ia32_vfmaddsd3_mask
-+ {Intrinsic::x86_avx512_mask3_vfmadd_sd, 116970}, // __builtin_ia32_vfmaddsd3_mask3
-+ {Intrinsic::x86_avx512_maskz_vfmadd_sd, 118668}, // __builtin_ia32_vfmaddsd3_maskz
-+ {Intrinsic::x86_fma_vfmadd_ss, 123913}, // __builtin_ia32_vfmaddss
-+ {Intrinsic::x86_avx512_mask_vfmadd_ss, 114642}, // __builtin_ia32_vfmaddss3_mask
-+ {Intrinsic::x86_avx512_mask3_vfmadd_ss, 117001}, // __builtin_ia32_vfmaddss3_mask3
-+ {Intrinsic::x86_avx512_maskz_vfmadd_ss, 118699}, // __builtin_ia32_vfmaddss3_maskz
-+ {Intrinsic::x86_fma_vfmaddsub_pd, 123937}, // __builtin_ia32_vfmaddsubpd
-+ {Intrinsic::x86_avx512_mask_vfmaddsub_pd_128, 114672}, // __builtin_ia32_vfmaddsubpd128_mask
-+ {Intrinsic::x86_avx512_mask3_vfmaddsub_pd_128, 117032}, // __builtin_ia32_vfmaddsubpd128_mask3
-+ {Intrinsic::x86_avx512_maskz_vfmaddsub_pd_128, 118730}, // __builtin_ia32_vfmaddsubpd128_maskz
-+ {Intrinsic::x86_fma_vfmaddsub_pd_256, 123964}, // __builtin_ia32_vfmaddsubpd256
-+ {Intrinsic::x86_avx512_mask_vfmaddsub_pd_256, 114707}, // __builtin_ia32_vfmaddsubpd256_mask
-+ {Intrinsic::x86_avx512_mask3_vfmaddsub_pd_256, 117068}, // __builtin_ia32_vfmaddsubpd256_mask3
-+ {Intrinsic::x86_avx512_maskz_vfmaddsub_pd_256, 118766}, // __builtin_ia32_vfmaddsubpd256_maskz
-+ {Intrinsic::x86_avx512_mask_vfmaddsub_pd_512, 114742}, // __builtin_ia32_vfmaddsubpd512_mask
-+ {Intrinsic::x86_avx512_mask3_vfmaddsub_pd_512, 117104}, // __builtin_ia32_vfmaddsubpd512_mask3
-+ {Intrinsic::x86_avx512_maskz_vfmaddsub_pd_512, 118802}, // __builtin_ia32_vfmaddsubpd512_maskz
-+ {Intrinsic::x86_fma_vfmaddsub_ps, 123994}, // __builtin_ia32_vfmaddsubps
-+ {Intrinsic::x86_avx512_mask_vfmaddsub_ps_128, 114777}, // __builtin_ia32_vfmaddsubps128_mask
-+ {Intrinsic::x86_avx512_mask3_vfmaddsub_ps_128, 117140}, // __builtin_ia32_vfmaddsubps128_mask3
-+ {Intrinsic::x86_avx512_maskz_vfmaddsub_ps_128, 118838}, // __builtin_ia32_vfmaddsubps128_maskz
-+ {Intrinsic::x86_fma_vfmaddsub_ps_256, 124021}, // __builtin_ia32_vfmaddsubps256
-+ {Intrinsic::x86_avx512_mask_vfmaddsub_ps_256, 114812}, // __builtin_ia32_vfmaddsubps256_mask
-+ {Intrinsic::x86_avx512_mask3_vfmaddsub_ps_256, 117176}, // __builtin_ia32_vfmaddsubps256_mask3
-+ {Intrinsic::x86_avx512_maskz_vfmaddsub_ps_256, 118874}, // __builtin_ia32_vfmaddsubps256_maskz
-+ {Intrinsic::x86_avx512_mask_vfmaddsub_ps_512, 114847}, // __builtin_ia32_vfmaddsubps512_mask
-+ {Intrinsic::x86_avx512_mask3_vfmaddsub_ps_512, 117212}, // __builtin_ia32_vfmaddsubps512_mask3
-+ {Intrinsic::x86_avx512_maskz_vfmaddsub_ps_512, 118910}, // __builtin_ia32_vfmaddsubps512_maskz
-+ {Intrinsic::x86_fma_vfmsubadd_pd, 124201}, // __builtin_ia32_vfmsubaddpd
-+ {Intrinsic::x86_avx512_mask3_vfmsubadd_pd_128, 117508}, // __builtin_ia32_vfmsubaddpd128_mask3
-+ {Intrinsic::x86_fma_vfmsubadd_pd_256, 124228}, // __builtin_ia32_vfmsubaddpd256
-+ {Intrinsic::x86_avx512_mask3_vfmsubadd_pd_256, 117544}, // __builtin_ia32_vfmsubaddpd256_mask3
-+ {Intrinsic::x86_avx512_mask3_vfmsubadd_pd_512, 117580}, // __builtin_ia32_vfmsubaddpd512_mask3
-+ {Intrinsic::x86_fma_vfmsubadd_ps, 124258}, // __builtin_ia32_vfmsubaddps
-+ {Intrinsic::x86_avx512_mask3_vfmsubadd_ps_128, 117616}, // __builtin_ia32_vfmsubaddps128_mask3
-+ {Intrinsic::x86_fma_vfmsubadd_ps_256, 124285}, // __builtin_ia32_vfmsubaddps256
-+ {Intrinsic::x86_avx512_mask3_vfmsubadd_ps_256, 117652}, // __builtin_ia32_vfmsubaddps256_mask3
-+ {Intrinsic::x86_avx512_mask3_vfmsubadd_ps_512, 117688}, // __builtin_ia32_vfmsubaddps512_mask3
-+ {Intrinsic::x86_fma_vfmsub_pd, 124051}, // __builtin_ia32_vfmsubpd
-+ {Intrinsic::x86_avx512_mask3_vfmsub_pd_128, 117248}, // __builtin_ia32_vfmsubpd128_mask3
-+ {Intrinsic::x86_fma_vfmsub_pd_256, 124075}, // __builtin_ia32_vfmsubpd256
-+ {Intrinsic::x86_avx512_mask3_vfmsub_pd_256, 117281}, // __builtin_ia32_vfmsubpd256_mask3
-+ {Intrinsic::x86_avx512_mask3_vfmsub_pd_512, 117314}, // __builtin_ia32_vfmsubpd512_mask3
-+ {Intrinsic::x86_fma_vfmsub_ps, 124102}, // __builtin_ia32_vfmsubps
-+ {Intrinsic::x86_avx512_mask3_vfmsub_ps_128, 117347}, // __builtin_ia32_vfmsubps128_mask3
-+ {Intrinsic::x86_fma_vfmsub_ps_256, 124126}, // __builtin_ia32_vfmsubps256
-+ {Intrinsic::x86_avx512_mask3_vfmsub_ps_256, 117380}, // __builtin_ia32_vfmsubps256_mask3
-+ {Intrinsic::x86_avx512_mask3_vfmsub_ps_512, 117413}, // __builtin_ia32_vfmsubps512_mask3
-+ {Intrinsic::x86_fma_vfmsub_sd, 124153}, // __builtin_ia32_vfmsubsd
-+ {Intrinsic::x86_avx512_mask3_vfmsub_sd, 117446}, // __builtin_ia32_vfmsubsd3_mask3
-+ {Intrinsic::x86_fma_vfmsub_ss, 124177}, // __builtin_ia32_vfmsubss
-+ {Intrinsic::x86_avx512_mask3_vfmsub_ss, 117477}, // __builtin_ia32_vfmsubss3_mask3
-+ {Intrinsic::x86_fma_vfnmadd_pd, 124315}, // __builtin_ia32_vfnmaddpd
-+ {Intrinsic::x86_avx512_mask_vfnmadd_pd_128, 114882}, // __builtin_ia32_vfnmaddpd128_mask
-+ {Intrinsic::x86_fma_vfnmadd_pd_256, 124340}, // __builtin_ia32_vfnmaddpd256
-+ {Intrinsic::x86_avx512_mask_vfnmadd_pd_256, 114915}, // __builtin_ia32_vfnmaddpd256_mask
-+ {Intrinsic::x86_avx512_mask_vfnmadd_pd_512, 114948}, // __builtin_ia32_vfnmaddpd512_mask
-+ {Intrinsic::x86_fma_vfnmadd_ps, 124368}, // __builtin_ia32_vfnmaddps
-+ {Intrinsic::x86_avx512_mask_vfnmadd_ps_128, 114981}, // __builtin_ia32_vfnmaddps128_mask
-+ {Intrinsic::x86_fma_vfnmadd_ps_256, 124393}, // __builtin_ia32_vfnmaddps256
-+ {Intrinsic::x86_avx512_mask_vfnmadd_ps_256, 115014}, // __builtin_ia32_vfnmaddps256_mask
-+ {Intrinsic::x86_avx512_mask_vfnmadd_ps_512, 115047}, // __builtin_ia32_vfnmaddps512_mask
-+ {Intrinsic::x86_fma_vfnmadd_sd, 124421}, // __builtin_ia32_vfnmaddsd
-+ {Intrinsic::x86_fma_vfnmadd_ss, 124446}, // __builtin_ia32_vfnmaddss
-+ {Intrinsic::x86_fma_vfnmsub_pd, 124471}, // __builtin_ia32_vfnmsubpd
-+ {Intrinsic::x86_avx512_mask_vfnmsub_pd_128, 115080}, // __builtin_ia32_vfnmsubpd128_mask
-+ {Intrinsic::x86_avx512_mask3_vfnmsub_pd_128, 117724}, // __builtin_ia32_vfnmsubpd128_mask3
-+ {Intrinsic::x86_fma_vfnmsub_pd_256, 124496}, // __builtin_ia32_vfnmsubpd256
-+ {Intrinsic::x86_avx512_mask_vfnmsub_pd_256, 115113}, // __builtin_ia32_vfnmsubpd256_mask
-+ {Intrinsic::x86_avx512_mask3_vfnmsub_pd_256, 117758}, // __builtin_ia32_vfnmsubpd256_mask3
-+ {Intrinsic::x86_avx512_mask_vfnmsub_pd_512, 115146}, // __builtin_ia32_vfnmsubpd512_mask
-+ {Intrinsic::x86_avx512_mask3_vfnmsub_pd_512, 117792}, // __builtin_ia32_vfnmsubpd512_mask3
-+ {Intrinsic::x86_fma_vfnmsub_ps, 124524}, // __builtin_ia32_vfnmsubps
-+ {Intrinsic::x86_avx512_mask_vfnmsub_ps_128, 115179}, // __builtin_ia32_vfnmsubps128_mask
-+ {Intrinsic::x86_avx512_mask3_vfnmsub_ps_128, 117826}, // __builtin_ia32_vfnmsubps128_mask3
-+ {Intrinsic::x86_fma_vfnmsub_ps_256, 124549}, // __builtin_ia32_vfnmsubps256
-+ {Intrinsic::x86_avx512_mask_vfnmsub_ps_256, 115212}, // __builtin_ia32_vfnmsubps256_mask
-+ {Intrinsic::x86_avx512_mask3_vfnmsub_ps_256, 117860}, // __builtin_ia32_vfnmsubps256_mask3
-+ {Intrinsic::x86_avx512_mask_vfnmsub_ps_512, 115245}, // __builtin_ia32_vfnmsubps512_mask
-+ {Intrinsic::x86_avx512_mask3_vfnmsub_ps_512, 117894}, // __builtin_ia32_vfnmsubps512_mask3
-+ {Intrinsic::x86_fma_vfnmsub_sd, 124577}, // __builtin_ia32_vfnmsubsd
-+ {Intrinsic::x86_avx512_mask3_vfnmsub_sd, 117928}, // __builtin_ia32_vfnmsubsd3_mask3
-+ {Intrinsic::x86_fma_vfnmsub_ss, 124602}, // __builtin_ia32_vfnmsubss
-+ {Intrinsic::x86_avx512_mask3_vfnmsub_ss, 117960}, // __builtin_ia32_vfnmsubss3_mask3
-+ {Intrinsic::x86_xop_vfrcz_pd, 131655}, // __builtin_ia32_vfrczpd
-+ {Intrinsic::x86_xop_vfrcz_pd_256, 131678}, // __builtin_ia32_vfrczpd256
-+ {Intrinsic::x86_xop_vfrcz_ps, 131704}, // __builtin_ia32_vfrczps
-+ {Intrinsic::x86_xop_vfrcz_ps_256, 131727}, // __builtin_ia32_vfrczps256
-+ {Intrinsic::x86_xop_vfrcz_sd, 131753}, // __builtin_ia32_vfrczsd
-+ {Intrinsic::x86_xop_vfrcz_ss, 131776}, // __builtin_ia32_vfrczss
-+ {Intrinsic::x86_xop_vpcmov, 131799}, // __builtin_ia32_vpcmov
-+ {Intrinsic::x86_xop_vpcmov_256, 131821}, // __builtin_ia32_vpcmov_256
-+ {Intrinsic::x86_xop_vpcomb, 131847}, // __builtin_ia32_vpcomb
-+ {Intrinsic::x86_xop_vpcomd, 131869}, // __builtin_ia32_vpcomd
-+ {Intrinsic::x86_xop_vpcomq, 131891}, // __builtin_ia32_vpcomq
-+ {Intrinsic::x86_xop_vpcomub, 131913}, // __builtin_ia32_vpcomub
-+ {Intrinsic::x86_xop_vpcomud, 131936}, // __builtin_ia32_vpcomud
-+ {Intrinsic::x86_xop_vpcomuq, 131959}, // __builtin_ia32_vpcomuq
-+ {Intrinsic::x86_xop_vpcomuw, 131982}, // __builtin_ia32_vpcomuw
-+ {Intrinsic::x86_xop_vpcomw, 132005}, // __builtin_ia32_vpcomw
-+ {Intrinsic::x86_avx512_mask_conflict_q_128, 98680}, // __builtin_ia32_vpconflictdi_128_mask
-+ {Intrinsic::x86_avx512_mask_conflict_q_256, 98717}, // __builtin_ia32_vpconflictdi_256_mask
-+ {Intrinsic::x86_avx512_mask_conflict_q_512, 98754}, // __builtin_ia32_vpconflictdi_512_mask
-+ {Intrinsic::x86_avx512_mask_conflict_d_128, 98569}, // __builtin_ia32_vpconflictsi_128_mask
-+ {Intrinsic::x86_avx512_mask_conflict_d_256, 98606}, // __builtin_ia32_vpconflictsi_256_mask
-+ {Intrinsic::x86_avx512_mask_conflict_d_512, 98643}, // __builtin_ia32_vpconflictsi_512_mask
-+ {Intrinsic::x86_avx_vperm2f128_pd_256, 91387}, // __builtin_ia32_vperm2f128_pd256
-+ {Intrinsic::x86_avx_vperm2f128_ps_256, 91419}, // __builtin_ia32_vperm2f128_ps256
-+ {Intrinsic::x86_avx_vperm2f128_si_256, 91451}, // __builtin_ia32_vperm2f128_si256
-+ {Intrinsic::x86_avx512_mask_vpermi2var_d_128, 115278}, // __builtin_ia32_vpermi2vard128_mask
-+ {Intrinsic::x86_avx512_mask_vpermi2var_d_256, 115313}, // __builtin_ia32_vpermi2vard256_mask
-+ {Intrinsic::x86_avx512_mask_vpermi2var_d_512, 115348}, // __builtin_ia32_vpermi2vard512_mask
-+ {Intrinsic::x86_avx512_mask_vpermi2var_hi_128, 115383}, // __builtin_ia32_vpermi2varhi128_mask
-+ {Intrinsic::x86_avx512_mask_vpermi2var_hi_256, 115419}, // __builtin_ia32_vpermi2varhi256_mask
-+ {Intrinsic::x86_avx512_mask_vpermi2var_hi_512, 115455}, // __builtin_ia32_vpermi2varhi512_mask
-+ {Intrinsic::x86_avx512_mask_vpermi2var_pd_128, 115491}, // __builtin_ia32_vpermi2varpd128_mask
-+ {Intrinsic::x86_avx512_mask_vpermi2var_pd_256, 115527}, // __builtin_ia32_vpermi2varpd256_mask
-+ {Intrinsic::x86_avx512_mask_vpermi2var_pd_512, 115563}, // __builtin_ia32_vpermi2varpd512_mask
-+ {Intrinsic::x86_avx512_mask_vpermi2var_ps_128, 115599}, // __builtin_ia32_vpermi2varps128_mask
-+ {Intrinsic::x86_avx512_mask_vpermi2var_ps_256, 115635}, // __builtin_ia32_vpermi2varps256_mask
-+ {Intrinsic::x86_avx512_mask_vpermi2var_ps_512, 115671}, // __builtin_ia32_vpermi2varps512_mask
-+ {Intrinsic::x86_avx512_mask_vpermi2var_q_128, 115707}, // __builtin_ia32_vpermi2varq128_mask
-+ {Intrinsic::x86_avx512_mask_vpermi2var_q_256, 115742}, // __builtin_ia32_vpermi2varq256_mask
-+ {Intrinsic::x86_avx512_mask_vpermi2var_q_512, 115777}, // __builtin_ia32_vpermi2varq512_mask
-+ {Intrinsic::x86_avx512_mask_vpermi2var_qi_128, 115812}, // __builtin_ia32_vpermi2varqi128_mask
-+ {Intrinsic::x86_avx512_mask_vpermi2var_qi_256, 115848}, // __builtin_ia32_vpermi2varqi256_mask
-+ {Intrinsic::x86_avx512_mask_vpermi2var_qi_512, 115884}, // __builtin_ia32_vpermi2varqi512_mask
-+ {Intrinsic::x86_xop_vpermil2pd, 132027}, // __builtin_ia32_vpermil2pd
-+ {Intrinsic::x86_xop_vpermil2pd_256, 132053}, // __builtin_ia32_vpermil2pd256
-+ {Intrinsic::x86_xop_vpermil2ps, 132082}, // __builtin_ia32_vpermil2ps
-+ {Intrinsic::x86_xop_vpermil2ps_256, 132108}, // __builtin_ia32_vpermil2ps256
-+ {Intrinsic::x86_avx_vpermilvar_pd, 91483}, // __builtin_ia32_vpermilvarpd
-+ {Intrinsic::x86_avx_vpermilvar_pd_256, 91511}, // __builtin_ia32_vpermilvarpd256
-+ {Intrinsic::x86_avx512_vpermilvar_pd_512, 123389}, // __builtin_ia32_vpermilvarpd512
-+ {Intrinsic::x86_avx_vpermilvar_ps, 91542}, // __builtin_ia32_vpermilvarps
-+ {Intrinsic::x86_avx_vpermilvar_ps_256, 91570}, // __builtin_ia32_vpermilvarps256
-+ {Intrinsic::x86_avx512_vpermilvar_ps_512, 123420}, // __builtin_ia32_vpermilvarps512
-+ {Intrinsic::x86_avx512_mask_vpermt2var_d_128, 115920}, // __builtin_ia32_vpermt2vard128_mask
-+ {Intrinsic::x86_avx512_maskz_vpermt2var_d_128, 118946}, // __builtin_ia32_vpermt2vard128_maskz
-+ {Intrinsic::x86_avx512_mask_vpermt2var_d_256, 115955}, // __builtin_ia32_vpermt2vard256_mask
-+ {Intrinsic::x86_avx512_maskz_vpermt2var_d_256, 118982}, // __builtin_ia32_vpermt2vard256_maskz
-+ {Intrinsic::x86_avx512_mask_vpermt2var_d_512, 115990}, // __builtin_ia32_vpermt2vard512_mask
-+ {Intrinsic::x86_avx512_maskz_vpermt2var_d_512, 119018}, // __builtin_ia32_vpermt2vard512_maskz
-+ {Intrinsic::x86_avx512_mask_vpermt2var_hi_128, 116025}, // __builtin_ia32_vpermt2varhi128_mask
-+ {Intrinsic::x86_avx512_maskz_vpermt2var_hi_128, 119054}, // __builtin_ia32_vpermt2varhi128_maskz
-+ {Intrinsic::x86_avx512_mask_vpermt2var_hi_256, 116061}, // __builtin_ia32_vpermt2varhi256_mask
-+ {Intrinsic::x86_avx512_maskz_vpermt2var_hi_256, 119091}, // __builtin_ia32_vpermt2varhi256_maskz
-+ {Intrinsic::x86_avx512_mask_vpermt2var_hi_512, 116097}, // __builtin_ia32_vpermt2varhi512_mask
-+ {Intrinsic::x86_avx512_maskz_vpermt2var_hi_512, 119128}, // __builtin_ia32_vpermt2varhi512_maskz
-+ {Intrinsic::x86_avx512_mask_vpermt2var_pd_128, 116133}, // __builtin_ia32_vpermt2varpd128_mask
-+ {Intrinsic::x86_avx512_maskz_vpermt2var_pd_128, 119165}, // __builtin_ia32_vpermt2varpd128_maskz
-+ {Intrinsic::x86_avx512_mask_vpermt2var_pd_256, 116169}, // __builtin_ia32_vpermt2varpd256_mask
-+ {Intrinsic::x86_avx512_maskz_vpermt2var_pd_256, 119202}, // __builtin_ia32_vpermt2varpd256_maskz
-+ {Intrinsic::x86_avx512_mask_vpermt2var_pd_512, 116205}, // __builtin_ia32_vpermt2varpd512_mask
-+ {Intrinsic::x86_avx512_maskz_vpermt2var_pd_512, 119239}, // __builtin_ia32_vpermt2varpd512_maskz
-+ {Intrinsic::x86_avx512_mask_vpermt2var_ps_128, 116241}, // __builtin_ia32_vpermt2varps128_mask
-+ {Intrinsic::x86_avx512_maskz_vpermt2var_ps_128, 119276}, // __builtin_ia32_vpermt2varps128_maskz
-+ {Intrinsic::x86_avx512_mask_vpermt2var_ps_256, 116277}, // __builtin_ia32_vpermt2varps256_mask
-+ {Intrinsic::x86_avx512_maskz_vpermt2var_ps_256, 119313}, // __builtin_ia32_vpermt2varps256_maskz
-+ {Intrinsic::x86_avx512_mask_vpermt2var_ps_512, 116313}, // __builtin_ia32_vpermt2varps512_mask
-+ {Intrinsic::x86_avx512_maskz_vpermt2var_ps_512, 119350}, // __builtin_ia32_vpermt2varps512_maskz
-+ {Intrinsic::x86_avx512_mask_vpermt2var_q_128, 116349}, // __builtin_ia32_vpermt2varq128_mask
-+ {Intrinsic::x86_avx512_maskz_vpermt2var_q_128, 119387}, // __builtin_ia32_vpermt2varq128_maskz
-+ {Intrinsic::x86_avx512_mask_vpermt2var_q_256, 116384}, // __builtin_ia32_vpermt2varq256_mask
-+ {Intrinsic::x86_avx512_maskz_vpermt2var_q_256, 119423}, // __builtin_ia32_vpermt2varq256_maskz
-+ {Intrinsic::x86_avx512_mask_vpermt2var_q_512, 116419}, // __builtin_ia32_vpermt2varq512_mask
-+ {Intrinsic::x86_avx512_maskz_vpermt2var_q_512, 119459}, // __builtin_ia32_vpermt2varq512_maskz
-+ {Intrinsic::x86_avx512_mask_vpermt2var_qi_128, 116454}, // __builtin_ia32_vpermt2varqi128_mask
-+ {Intrinsic::x86_avx512_maskz_vpermt2var_qi_128, 119495}, // __builtin_ia32_vpermt2varqi128_maskz
-+ {Intrinsic::x86_avx512_mask_vpermt2var_qi_256, 116490}, // __builtin_ia32_vpermt2varqi256_mask
-+ {Intrinsic::x86_avx512_maskz_vpermt2var_qi_256, 119532}, // __builtin_ia32_vpermt2varqi256_maskz
-+ {Intrinsic::x86_avx512_mask_vpermt2var_qi_512, 116526}, // __builtin_ia32_vpermt2varqi512_mask
-+ {Intrinsic::x86_avx512_maskz_vpermt2var_qi_512, 119569}, // __builtin_ia32_vpermt2varqi512_maskz
-+ {Intrinsic::x86_xop_vphaddbd, 132137}, // __builtin_ia32_vphaddbd
-+ {Intrinsic::x86_xop_vphaddbq, 132161}, // __builtin_ia32_vphaddbq
-+ {Intrinsic::x86_xop_vphaddbw, 132185}, // __builtin_ia32_vphaddbw
-+ {Intrinsic::x86_xop_vphadddq, 132209}, // __builtin_ia32_vphadddq
-+ {Intrinsic::x86_xop_vphaddubd, 132233}, // __builtin_ia32_vphaddubd
-+ {Intrinsic::x86_xop_vphaddubq, 132258}, // __builtin_ia32_vphaddubq
-+ {Intrinsic::x86_xop_vphaddubw, 132283}, // __builtin_ia32_vphaddubw
-+ {Intrinsic::x86_xop_vphaddudq, 132308}, // __builtin_ia32_vphaddudq
-+ {Intrinsic::x86_xop_vphadduwd, 132333}, // __builtin_ia32_vphadduwd
-+ {Intrinsic::x86_xop_vphadduwq, 132358}, // __builtin_ia32_vphadduwq
-+ {Intrinsic::x86_xop_vphaddwd, 132383}, // __builtin_ia32_vphaddwd
-+ {Intrinsic::x86_xop_vphaddwq, 132407}, // __builtin_ia32_vphaddwq
-+ {Intrinsic::x86_xop_vphsubbw, 132431}, // __builtin_ia32_vphsubbw
-+ {Intrinsic::x86_xop_vphsubdq, 132455}, // __builtin_ia32_vphsubdq
-+ {Intrinsic::x86_xop_vphsubwd, 132479}, // __builtin_ia32_vphsubwd
-+ {Intrinsic::x86_xop_vpmacsdd, 132503}, // __builtin_ia32_vpmacsdd
-+ {Intrinsic::x86_xop_vpmacsdqh, 132527}, // __builtin_ia32_vpmacsdqh
-+ {Intrinsic::x86_xop_vpmacsdql, 132552}, // __builtin_ia32_vpmacsdql
-+ {Intrinsic::x86_xop_vpmacssdd, 132577}, // __builtin_ia32_vpmacssdd
-+ {Intrinsic::x86_xop_vpmacssdqh, 132602}, // __builtin_ia32_vpmacssdqh
-+ {Intrinsic::x86_xop_vpmacssdql, 132628}, // __builtin_ia32_vpmacssdql
-+ {Intrinsic::x86_xop_vpmacsswd, 132654}, // __builtin_ia32_vpmacsswd
-+ {Intrinsic::x86_xop_vpmacssww, 132679}, // __builtin_ia32_vpmacssww
-+ {Intrinsic::x86_xop_vpmacswd, 132704}, // __builtin_ia32_vpmacswd
-+ {Intrinsic::x86_xop_vpmacsww, 132728}, // __builtin_ia32_vpmacsww
-+ {Intrinsic::x86_xop_vpmadcsswd, 132752}, // __builtin_ia32_vpmadcsswd
-+ {Intrinsic::x86_xop_vpmadcswd, 132778}, // __builtin_ia32_vpmadcswd
-+ {Intrinsic::x86_avx512_mask_vpmadd52h_uq_128, 116562}, // __builtin_ia32_vpmadd52huq128_mask
-+ {Intrinsic::x86_avx512_maskz_vpmadd52h_uq_128, 119606}, // __builtin_ia32_vpmadd52huq128_maskz
-+ {Intrinsic::x86_avx512_mask_vpmadd52h_uq_256, 116597}, // __builtin_ia32_vpmadd52huq256_mask
-+ {Intrinsic::x86_avx512_maskz_vpmadd52h_uq_256, 119642}, // __builtin_ia32_vpmadd52huq256_maskz
-+ {Intrinsic::x86_avx512_mask_vpmadd52h_uq_512, 116632}, // __builtin_ia32_vpmadd52huq512_mask
-+ {Intrinsic::x86_avx512_maskz_vpmadd52h_uq_512, 119678}, // __builtin_ia32_vpmadd52huq512_maskz
-+ {Intrinsic::x86_avx512_mask_vpmadd52l_uq_128, 116667}, // __builtin_ia32_vpmadd52luq128_mask
-+ {Intrinsic::x86_avx512_maskz_vpmadd52l_uq_128, 119714}, // __builtin_ia32_vpmadd52luq128_maskz
-+ {Intrinsic::x86_avx512_mask_vpmadd52l_uq_256, 116702}, // __builtin_ia32_vpmadd52luq256_mask
-+ {Intrinsic::x86_avx512_maskz_vpmadd52l_uq_256, 119750}, // __builtin_ia32_vpmadd52luq256_maskz
-+ {Intrinsic::x86_avx512_mask_vpmadd52l_uq_512, 116737}, // __builtin_ia32_vpmadd52luq512_mask
-+ {Intrinsic::x86_avx512_maskz_vpmadd52l_uq_512, 119786}, // __builtin_ia32_vpmadd52luq512_maskz
-+ {Intrinsic::x86_avx512_mask_pmultishift_qb_128, 110621}, // __builtin_ia32_vpmultishiftqb128_mask
-+ {Intrinsic::x86_avx512_mask_pmultishift_qb_256, 110659}, // __builtin_ia32_vpmultishiftqb256_mask
-+ {Intrinsic::x86_avx512_mask_pmultishift_qb_512, 110697}, // __builtin_ia32_vpmultishiftqb512_mask
-+ {Intrinsic::x86_xop_vpperm, 132803}, // __builtin_ia32_vpperm
-+ {Intrinsic::x86_xop_vprotb, 132825}, // __builtin_ia32_vprotb
-+ {Intrinsic::x86_xop_vprotbi, 132847}, // __builtin_ia32_vprotbi
-+ {Intrinsic::x86_xop_vprotd, 132870}, // __builtin_ia32_vprotd
-+ {Intrinsic::x86_xop_vprotdi, 132892}, // __builtin_ia32_vprotdi
-+ {Intrinsic::x86_xop_vprotq, 132915}, // __builtin_ia32_vprotq
-+ {Intrinsic::x86_xop_vprotqi, 132937}, // __builtin_ia32_vprotqi
-+ {Intrinsic::x86_xop_vprotw, 132960}, // __builtin_ia32_vprotw
-+ {Intrinsic::x86_xop_vprotwi, 132982}, // __builtin_ia32_vprotwi
-+ {Intrinsic::x86_xop_vpshab, 133005}, // __builtin_ia32_vpshab
-+ {Intrinsic::x86_xop_vpshad, 133027}, // __builtin_ia32_vpshad
-+ {Intrinsic::x86_xop_vpshaq, 133049}, // __builtin_ia32_vpshaq
-+ {Intrinsic::x86_xop_vpshaw, 133071}, // __builtin_ia32_vpshaw
-+ {Intrinsic::x86_xop_vpshlb, 133093}, // __builtin_ia32_vpshlb
-+ {Intrinsic::x86_xop_vpshld, 133115}, // __builtin_ia32_vpshld
-+ {Intrinsic::x86_xop_vpshlq, 133137}, // __builtin_ia32_vpshlq
-+ {Intrinsic::x86_xop_vpshlw, 133159}, // __builtin_ia32_vpshlw
-+ {Intrinsic::x86_avx_vtestc_pd, 91601}, // __builtin_ia32_vtestcpd
-+ {Intrinsic::x86_avx_vtestc_pd_256, 91625}, // __builtin_ia32_vtestcpd256
-+ {Intrinsic::x86_avx_vtestc_ps, 91652}, // __builtin_ia32_vtestcps
-+ {Intrinsic::x86_avx_vtestc_ps_256, 91676}, // __builtin_ia32_vtestcps256
-+ {Intrinsic::x86_avx_vtestnzc_pd, 91703}, // __builtin_ia32_vtestnzcpd
-+ {Intrinsic::x86_avx_vtestnzc_pd_256, 91729}, // __builtin_ia32_vtestnzcpd256
-+ {Intrinsic::x86_avx_vtestnzc_ps, 91758}, // __builtin_ia32_vtestnzcps
-+ {Intrinsic::x86_avx_vtestnzc_ps_256, 91784}, // __builtin_ia32_vtestnzcps256
-+ {Intrinsic::x86_avx_vtestz_pd, 91813}, // __builtin_ia32_vtestzpd
-+ {Intrinsic::x86_avx_vtestz_pd_256, 91837}, // __builtin_ia32_vtestzpd256
-+ {Intrinsic::x86_avx_vtestz_ps, 91864}, // __builtin_ia32_vtestzps
-+ {Intrinsic::x86_avx_vtestz_ps_256, 91888}, // __builtin_ia32_vtestzps256
-+ {Intrinsic::x86_avx_vzeroall, 91915}, // __builtin_ia32_vzeroall
-+ {Intrinsic::x86_avx_vzeroupper, 91939}, // __builtin_ia32_vzeroupper
-+ {Intrinsic::x86_wrfsbase_32, 131465}, // __builtin_ia32_wrfsbase32
-+ {Intrinsic::x86_wrfsbase_64, 131491}, // __builtin_ia32_wrfsbase64
-+ {Intrinsic::x86_wrgsbase_32, 131517}, // __builtin_ia32_wrgsbase32
-+ {Intrinsic::x86_wrgsbase_64, 131543}, // __builtin_ia32_wrgsbase64
-+ {Intrinsic::x86_flags_write_u32, 123725}, // __builtin_ia32_writeeflags_u32
-+ {Intrinsic::x86_flags_write_u64, 123756}, // __builtin_ia32_writeeflags_u64
-+ {Intrinsic::x86_wrpkru, 131569}, // __builtin_ia32_wrpkru
-+ {Intrinsic::x86_xabort, 131591}, // __builtin_ia32_xabort
-+ {Intrinsic::x86_xbegin, 131613}, // __builtin_ia32_xbegin
-+ {Intrinsic::x86_xend, 131635}, // __builtin_ia32_xend
-+ {Intrinsic::x86_xtest, 133181}, // __builtin_ia32_xtest
-+ };
-+ auto I = std::lower_bound(std::begin(x86Names),
-+ std::end(x86Names),
-+ BuiltinNameStr);
-+ if (I != std::end(x86Names) &&
-+ I->getName() == BuiltinNameStr)
-+ return I->IntrinID;
-+ }
-+ if (TargetPrefix == "xcore") {
-+ static const BuiltinEntry xcoreNames[] = {
-+ {Intrinsic::xcore_bitrev, 133202}, // __builtin_bitrev
-+ {Intrinsic::xcore_getid, 133219}, // __builtin_getid
-+ {Intrinsic::xcore_getps, 133235}, // __builtin_getps
-+ {Intrinsic::xcore_setps, 133251}, // __builtin_setps
-+ };
-+ auto I = std::lower_bound(std::begin(xcoreNames),
-+ std::end(xcoreNames),
-+ BuiltinNameStr);
-+ if (I != std::end(xcoreNames) &&
-+ I->getName() == BuiltinNameStr)
-+ return I->IntrinID;
-+ }
-+ return Intrinsic::not_intrinsic;
-+}
-+#endif
-+
-+// Get the LLVM intrinsic that corresponds to a builtin.
-+// This is used by the C front-end. The builtin name is passed
-+// in as BuiltinName, and a target prefix (e.g. 'ppc') is passed
-+// in as TargetPrefix. The result is assigned to 'IntrinsicID'.
-+#ifdef GET_LLVM_INTRINSIC_FOR_MS_BUILTIN
-+Intrinsic::ID Intrinsic::getIntrinsicForMSBuiltin(const char *TargetPrefixStr, StringRef BuiltinNameStr) {
-+ static const char BuiltinNames[] = {
-+ '_', '_', 'd', 'm', 'b', '\000', '_', '_', 'd', 's', 'b', '\000', '_', '_', 'i',
-+ 's', 'b', '\000', '_', 'M', 'o', 'v', 'e', 'F', 'r', 'o', 'm', 'C', 'o', 'p',
-+ 'r', 'o', 'c', 'e', 's', 's', 'o', 'r', '\000', '_', 'M', 'o', 'v', 'e', 'F',
-+ 'r', 'o', 'm', 'C', 'o', 'p', 'r', 'o', 'c', 'e', 's', 's', 'o', 'r', '2',
-+ '\000',
-+ };
-+
-+ struct BuiltinEntry {
-+ Intrinsic::ID IntrinID;
-+ unsigned StrTabOffset;
-+ const char *getName() const {
-+ return &BuiltinNames[StrTabOffset];
-+ }
-+ bool operator<(StringRef RHS) const {
-+ return strncmp(getName(), RHS.data(), RHS.size()) < 0;
-+ }
-+ };
-+ StringRef TargetPrefix(TargetPrefixStr);
-+
-+ if (TargetPrefix == "arm") {
-+ static const BuiltinEntry armNames[] = {
-+ {Intrinsic::arm_mrc, 18}, // _MoveFromCoprocessor
-+ {Intrinsic::arm_mrc2, 39}, // _MoveFromCoprocessor2
-+ {Intrinsic::arm_dmb, 0}, // __dmb
-+ {Intrinsic::arm_dsb, 6}, // __dsb
-+ {Intrinsic::arm_isb, 12}, // __isb
-+ };
-+ auto I = std::lower_bound(std::begin(armNames),
-+ std::end(armNames),
-+ BuiltinNameStr);
-+ if (I != std::end(armNames) &&
-+ I->getName() == BuiltinNameStr)
-+ return I->IntrinID;
-+ }
-+ return Intrinsic::not_intrinsic;
-+}
-+#endif
-+
-+#if defined(_MSC_VER) && defined(setjmp_undefined_for_msvc)
-+// let's return it to _setjmp state
-+# pragma pop_macro("setjmp")
-+# undef setjmp_undefined_for_msvc
-+#endif
-+
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_Makefile b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_Makefile
deleted file mode 100644
index 5e4f4d3263..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_Makefile
+++ /dev/null
@@ -1,249 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/Makefile.orig 2020-07-23 08:46:21.614204461 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/Makefile
-@@ -0,0 +1,244 @@
-+# CMAKE generated file: DO NOT EDIT!
-+# Generated by "Unix Makefiles" Generator, CMake Version 3.17
-+
-+# Default target executed when no arguments are given to make.
-+default_target: all
-+
-+.PHONY : default_target
-+
-+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
-+.NOTPARALLEL:
-+
-+
-+#=============================================================================
-+# Special targets provided by cmake.
-+
-+# Disable implicit rules so canonical targets will work.
-+.SUFFIXES:
-+
-+
-+# Disable VCS-based implicit rules.
-+% : %,v
-+
-+
-+# Disable VCS-based implicit rules.
-+% : RCS/%
-+
-+
-+# Disable VCS-based implicit rules.
-+% : RCS/%,v
-+
-+
-+# Disable VCS-based implicit rules.
-+% : SCCS/s.%
-+
-+
-+# Disable VCS-based implicit rules.
-+% : s.%
-+
-+
-+.SUFFIXES: .hpux_make_needs_suffix_list
-+
-+
-+# Command-line flag to silence nested $(MAKE).
-+$(VERBOSE)MAKESILENT = -s
-+
-+# Suppress display of executed commands.
-+$(VERBOSE).SILENT:
-+
-+
-+# A target that is always out of date.
-+cmake_force:
-+
-+.PHONY : cmake_force
-+
-+#=============================================================================
-+# Set environment variables for the build.
-+
-+# The shell in which to execute make rules.
-+SHELL = /bin/sh
-+
-+# The CMake executable.
-+CMAKE_COMMAND = /usr/pkg/bin/cmake
-+
-+# The command to remove a file.
-+RM = /usr/pkg/bin/cmake -E rm -f
-+
-+# Escaping for special characters.
-+EQUALS = =
-+
-+# The top-level source directory on which CMake was run.
-+CMAKE_SOURCE_DIR = /home/ryoon/tmp4/llvm-7.0.1.src
-+
-+# The top-level build directory on which CMake was run.
-+CMAKE_BINARY_DIR = /home/ryoon/tmp4/build
-+
-+#=============================================================================
-+# Targets provided globally by CMake.
-+
-+# Special rule for the target install/strip
-+install/strip: preinstall
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
-+ /usr/pkg/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
-+.PHONY : install/strip
-+
-+# Special rule for the target install/strip
-+install/strip/fast: preinstall/fast
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
-+ /usr/pkg/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
-+.PHONY : install/strip/fast
-+
-+# Special rule for the target install/local
-+install/local: preinstall
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
-+ /usr/pkg/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
-+.PHONY : install/local
-+
-+# Special rule for the target install/local
-+install/local/fast: preinstall/fast
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
-+ /usr/pkg/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
-+.PHONY : install/local/fast
-+
-+# Special rule for the target install
-+install: preinstall
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
-+ /usr/pkg/bin/cmake -P cmake_install.cmake
-+.PHONY : install
-+
-+# Special rule for the target install
-+install/fast: preinstall/fast
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
-+ /usr/pkg/bin/cmake -P cmake_install.cmake
-+.PHONY : install/fast
-+
-+# Special rule for the target package
-+package: preinstall
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool..."
-+ cd /home/ryoon/tmp4/build && /usr/pkg/bin/cpack --config ./CPackConfig.cmake
-+.PHONY : package
-+
-+# Special rule for the target package
-+package/fast: package
-+
-+.PHONY : package/fast
-+
-+# Special rule for the target package_source
-+package_source:
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool for source..."
-+ cd /home/ryoon/tmp4/build && /usr/pkg/bin/cpack --config ./CPackSourceConfig.cmake /home/ryoon/tmp4/build/CPackSourceConfig.cmake
-+.PHONY : package_source
-+
-+# Special rule for the target package_source
-+package_source/fast: package_source
-+
-+.PHONY : package_source/fast
-+
-+# Special rule for the target edit_cache
-+edit_cache:
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
-+ /usr/pkg/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
-+.PHONY : edit_cache
-+
-+# Special rule for the target edit_cache
-+edit_cache/fast: edit_cache
-+
-+.PHONY : edit_cache/fast
-+
-+# Special rule for the target rebuild_cache
-+rebuild_cache:
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
-+ /usr/pkg/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
-+.PHONY : rebuild_cache
-+
-+# Special rule for the target rebuild_cache
-+rebuild_cache/fast: rebuild_cache
-+
-+.PHONY : rebuild_cache/fast
-+
-+# Special rule for the target list_install_components
-+list_install_components:
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"LLVMAArch64AsmParser\" \"LLVMAArch64AsmPrinter\" \"LLVMAArch64CodeGen\" \"LLVMAArch64Desc\" \"LLVMAArch64Disassembler\" \"LLVMAArch64Info\" \"LLVMAArch64Utils\" \"LLVMAMDGPUAsmParser\" \"LLVMAMDGPUAsmPrinter\" \"LLVMAMDGPUCodeGen\" \"LLVMAMDGPUDesc\" \"LLVMAMDGPUDisassembler\" \"LLVMAMDGPUInfo\" \"LLVMAMDGPUUtils\" \"LLVMARMAsmParser\" \"LLVMARMAsmPrinter\" \"LLVMARMCodeGen\" \"LLVMARMDesc\" \"LLVMARMDisassembler\" \"LLVMARMInfo\" \"LLVMARMUtils\" \"LLVMAggressiveInstCombine\" \"LLVMAnalysis\" \"LLVMAsmParser\" \"LLVMAsmPrinter\" \"LLVMBPFAsmParser\" \"LLVMBPFAsmPrinter\" \"LLVMBPFCodeGen\" \"LLVMBPFDesc\" \"LLVMBPFDisassembler\" \"LLVMBPFInfo\" \"LLVMBinaryFormat\" \"LLVMBitReader\" \"LLVMBitWriter\" \"LLVMCodeGen\" \"LLVMCore\" \"LLVMCoroutines\" \"LLVMCoverage\" \"LLVMDebugInfoCodeView\" \"LLVMDebugInfoDWARF\" \"LLVMDebugInfoMSF\" \"LLVMDebugInfoPDB\" \"LLVMDemangle\" \"L
LVMDlltoolDriver\" \"LLVMExecutionEngine\" \"LLVMFuzzMutate\" \"LLVMGlobalISel\" \"LLVMHexagonAsmParser\" \"LLVMHexagonCodeGen\" \"LLVMHexagonDesc\" \"LLVMHexagonDisassembler\" \"LLVMHexagonInfo\" \"LLVMIRReader\" \"LLVMInstCombine\" \"LLVMInstrumentation\" \"LLVMInterpreter\" \"LLVMLTO\" \"LLVMLanaiAsmParser\" \"LLVMLanaiAsmPrinter\" \"LLVMLanaiCodeGen\" \"LLVMLanaiDesc\" \"LLVMLanaiDisassembler\" \"LLVMLanaiInfo\" \"LLVMLibDriver\" \"LLVMLineEditor\" \"LLVMLinker\" \"LLVMMC\" \"LLVMMCDisassembler\" \"LLVMMCJIT\" \"LLVMMCParser\" \"LLVMMIRParser\" \"LLVMMSP430AsmPrinter\" \"LLVMMSP430CodeGen\" \"LLVMMSP430Desc\" \"LLVMMSP430Info\" \"LLVMMipsAsmParser\" \"LLVMMipsAsmPrinter\" \"LLVMMipsCodeGen\" \"LLVMMipsDesc\" \"LLVMMipsDisassembler\" \"LLVMMipsInfo\" \"LLVMNVPTXAsmPrinter\" \"LLVMNVPTXCodeGen\" \"LLVMNVPTXDesc\" \"LLVMNVPTXInfo\" \"LLVMObjCARCOpts\" \"LLVMObject\" \"LLVMObjectYAML\" \"LLVMOption\" \"LLVMOrcJIT\" \"LLVMPasses\" \"LLVMPowerPCAsmParser\" \"LLVMPowerPCAsmPrinter\" \"L
LVMPowerPCCodeGen\" \"LLVMPowerPCDesc\" \"LLVMPowerPCDisassembler\" \"LLVMPowerPCInfo\" \"LLVMProfileData\" \"LLVMRuntimeDyld\" \"LLVMScalarOpts\" \"LLVMSelectionDAG\" \"LLVMSparcAsmParser\" \"LLVMSparcAsmPrinter\" \"LLVMSparcCodeGen\" \"LLVMSparcDesc\" \"LLVMSparcDisassembler\" \"LLVMSparcInfo\" \"LLVMSupport\" \"LLVMSymbolize\" \"LLVMSystemZAsmParser\" \"LLVMSystemZAsmPrinter\" \"LLVMSystemZCodeGen\" \"LLVMSystemZDesc\" \"LLVMSystemZDisassembler\" \"LLVMSystemZInfo\" \"LLVMTableGen\" \"LLVMTarget\" \"LLVMTransformUtils\" \"LLVMVectorize\" \"LLVMWindowsManifest\" \"LLVMX86AsmParser\" \"LLVMX86AsmPrinter\" \"LLVMX86CodeGen\" \"LLVMX86Desc\" \"LLVMX86Disassembler\" \"LLVMX86Info\" \"LLVMX86Utils\" \"LLVMXCoreAsmPrinter\" \"LLVMXCoreCodeGen\" \"LLVMXCoreDesc\" \"LLVMXCoreDisassembler\" \"LLVMXCoreInfo\" \"LLVMXRay\" \"LLVMipo\" \"LTO\" \"Unspecified\" \"bugpoint\" \"cmake-exports\" \"dsymutil\" \"llc\" \"lli\" \"llvm-ar\" \"llvm-as\" \"llvm-bcanalyzer\" \"llvm-c-test\" \"llvm-cat\" \"
llvm-cfi-verify\" \"llvm-config\" \"llvm-cov\" \"llvm-cvtres\" \"llvm-cxxdump\" \"llvm-cxxfilt\" \"llvm-diff\" \"llvm-dis\" \"llvm-dlltool\" \"llvm-dwarfdump\" \"llvm-dwp\" \"llvm-exegesis\" \"llvm-extract\" \"llvm-headers\" \"llvm-lib\" \"llvm-link\" \"llvm-lto\" \"llvm-lto2\" \"llvm-mc\" \"llvm-mca\" \"llvm-modextract\" \"llvm-mt\" \"llvm-nm\" \"llvm-objcopy\" \"llvm-objdump\" \"llvm-opt-report\" \"llvm-pdbutil\" \"llvm-profdata\" \"llvm-ranlib\" \"llvm-rc\" \"llvm-readelf\" \"llvm-readobj\" \"llvm-rtdyld\" \"llvm-size\" \"llvm-split\" \"llvm-stress\" \"llvm-strings\" \"llvm-strip\" \"llvm-symbolizer\" \"llvm-undname\" \"llvm-xray\" \"obj2yaml\" \"opt\" \"opt-viewer\" \"sancov\" \"sanstats\" \"verify-uselistorder\" \"yaml2obj\""
-+.PHONY : list_install_components
-+
-+# Special rule for the target list_install_components
-+list_install_components/fast: list_install_components
-+
-+.PHONY : list_install_components/fast
-+
-+# The main all target
-+all: cmake_check_build_system
-+ cd /home/ryoon/tmp4/build && $(CMAKE_COMMAND) -E cmake_progress_start /home/ryoon/tmp4/build/CMakeFiles /home/ryoon/tmp4/build/include/llvm/IR/CMakeFiles/progress.marks
-+ cd /home/ryoon/tmp4/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 include/llvm/IR/all
-+ $(CMAKE_COMMAND) -E cmake_progress_start /home/ryoon/tmp4/build/CMakeFiles 0
-+.PHONY : all
-+
-+# The main clean target
-+clean:
-+ cd /home/ryoon/tmp4/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 include/llvm/IR/clean
-+.PHONY : clean
-+
-+# The main clean target
-+clean/fast: clean
-+
-+.PHONY : clean/fast
-+
-+# Prepare targets for installation.
-+preinstall: all
-+ cd /home/ryoon/tmp4/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 include/llvm/IR/preinstall
-+.PHONY : preinstall
-+
-+# Prepare targets for installation.
-+preinstall/fast:
-+ cd /home/ryoon/tmp4/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 include/llvm/IR/preinstall
-+.PHONY : preinstall/fast
-+
-+# clear depends
-+depend:
-+ cd /home/ryoon/tmp4/build && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
-+.PHONY : depend
-+
-+# Convenience name for target.
-+include/llvm/IR/CMakeFiles/intrinsics_gen.dir/rule:
-+ cd /home/ryoon/tmp4/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 include/llvm/IR/CMakeFiles/intrinsics_gen.dir/rule
-+.PHONY : include/llvm/IR/CMakeFiles/intrinsics_gen.dir/rule
-+
-+# Convenience name for target.
-+intrinsics_gen: include/llvm/IR/CMakeFiles/intrinsics_gen.dir/rule
-+
-+.PHONY : intrinsics_gen
-+
-+# fast build rule for target.
-+intrinsics_gen/fast:
-+ cd /home/ryoon/tmp4/build && $(MAKE) $(MAKESILENT) -f include/llvm/IR/CMakeFiles/intrinsics_gen.dir/build.make include/llvm/IR/CMakeFiles/intrinsics_gen.dir/build
-+.PHONY : intrinsics_gen/fast
-+
-+# Help Target
-+help:
-+ @echo "The following are some of the valid targets for this Makefile:"
-+ @echo "... all (the default if no target is provided)"
-+ @echo "... clean"
-+ @echo "... depend"
-+ @echo "... edit_cache"
-+ @echo "... install"
-+ @echo "... install/local"
-+ @echo "... install/strip"
-+ @echo "... list_install_components"
-+ @echo "... package"
-+ @echo "... package_source"
-+ @echo "... rebuild_cache"
-+ @echo "... intrinsics_gen"
-+.PHONY : help
-+
-+
-+
-+#=============================================================================
-+# Special targets to cleanup operation of make.
-+
-+# Special rule to run CMake to check the build system integrity.
-+# No rule that depends on this can have commands that come from listfiles
-+# because they might be regenerated.
-+cmake_check_build_system:
-+ cd /home/ryoon/tmp4/build && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
-+.PHONY : cmake_check_build_system
-+
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_cmake__install.cmake b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_cmake__install.cmake
deleted file mode 100644
index 91c6672bc9..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_cmake__install.cmake
+++ /dev/null
@@ -1,39 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/cmake_install.cmake.orig 2020-07-23 08:46:21.618402824 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/cmake_install.cmake
-@@ -0,0 +1,34 @@
-+# Install script for directory: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR
-+
-+# Set the install prefix
-+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
-+ set(CMAKE_INSTALL_PREFIX "/usr/local")
-+endif()
-+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
-+
-+# Set the install configuration name.
-+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
-+ if(BUILD_TYPE)
-+ string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
-+ CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
-+ else()
-+ set(CMAKE_INSTALL_CONFIG_NAME "Debug")
-+ endif()
-+ message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
-+endif()
-+
-+# Set the component getting installed.
-+if(NOT CMAKE_INSTALL_COMPONENT)
-+ if(COMPONENT)
-+ message(STATUS "Install component: \"${COMPONENT}\"")
-+ set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
-+ else()
-+ set(CMAKE_INSTALL_COMPONENT)
-+ endif()
-+endif()
-+
-+# Is this installation the result of a crosscompile?
-+if(NOT DEFINED CMAKE_CROSSCOMPILING)
-+ set(CMAKE_CROSSCOMPILING "FALSE")
-+endif()
-+
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Makefile b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Makefile
deleted file mode 100644
index 1ab0763cdd..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Makefile
+++ /dev/null
@@ -1,233 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Makefile.orig 2020-07-23 08:46:21.680270007 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Makefile
-@@ -0,0 +1,228 @@
-+# CMAKE generated file: DO NOT EDIT!
-+# Generated by "Unix Makefiles" Generator, CMake Version 3.17
-+
-+# Default target executed when no arguments are given to make.
-+default_target: all
-+
-+.PHONY : default_target
-+
-+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
-+.NOTPARALLEL:
-+
-+
-+#=============================================================================
-+# Special targets provided by cmake.
-+
-+# Disable implicit rules so canonical targets will work.
-+.SUFFIXES:
-+
-+
-+# Disable VCS-based implicit rules.
-+% : %,v
-+
-+
-+# Disable VCS-based implicit rules.
-+% : RCS/%
-+
-+
-+# Disable VCS-based implicit rules.
-+% : RCS/%,v
-+
-+
-+# Disable VCS-based implicit rules.
-+% : SCCS/s.%
-+
-+
-+# Disable VCS-based implicit rules.
-+% : s.%
-+
-+
-+.SUFFIXES: .hpux_make_needs_suffix_list
-+
-+
-+# Command-line flag to silence nested $(MAKE).
-+$(VERBOSE)MAKESILENT = -s
-+
-+# Suppress display of executed commands.
-+$(VERBOSE).SILENT:
-+
-+
-+# A target that is always out of date.
-+cmake_force:
-+
-+.PHONY : cmake_force
-+
-+#=============================================================================
-+# Set environment variables for the build.
-+
-+# The shell in which to execute make rules.
-+SHELL = /bin/sh
-+
-+# The CMake executable.
-+CMAKE_COMMAND = /usr/pkg/bin/cmake
-+
-+# The command to remove a file.
-+RM = /usr/pkg/bin/cmake -E rm -f
-+
-+# Escaping for special characters.
-+EQUALS = =
-+
-+# The top-level source directory on which CMake was run.
-+CMAKE_SOURCE_DIR = /home/ryoon/tmp4/llvm-7.0.1.src
-+
-+# The top-level build directory on which CMake was run.
-+CMAKE_BINARY_DIR = /home/ryoon/tmp4/build
-+
-+#=============================================================================
-+# Targets provided globally by CMake.
-+
-+# Special rule for the target install/strip
-+install/strip: preinstall
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
-+ /usr/pkg/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
-+.PHONY : install/strip
-+
-+# Special rule for the target install/strip
-+install/strip/fast: preinstall/fast
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
-+ /usr/pkg/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
-+.PHONY : install/strip/fast
-+
-+# Special rule for the target install/local
-+install/local: preinstall
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
-+ /usr/pkg/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
-+.PHONY : install/local
-+
-+# Special rule for the target install/local
-+install/local/fast: preinstall/fast
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
-+ /usr/pkg/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
-+.PHONY : install/local/fast
-+
-+# Special rule for the target package_source
-+package_source:
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool for source..."
-+ cd /home/ryoon/tmp4/build && /usr/pkg/bin/cpack --config ./CPackSourceConfig.cmake /home/ryoon/tmp4/build/CPackSourceConfig.cmake
-+.PHONY : package_source
-+
-+# Special rule for the target package_source
-+package_source/fast: package_source
-+
-+.PHONY : package_source/fast
-+
-+# Special rule for the target package
-+package: preinstall
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool..."
-+ cd /home/ryoon/tmp4/build && /usr/pkg/bin/cpack --config ./CPackConfig.cmake
-+.PHONY : package
-+
-+# Special rule for the target package
-+package/fast: package
-+
-+.PHONY : package/fast
-+
-+# Special rule for the target install
-+install: preinstall
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
-+ /usr/pkg/bin/cmake -P cmake_install.cmake
-+.PHONY : install
-+
-+# Special rule for the target install
-+install/fast: preinstall/fast
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
-+ /usr/pkg/bin/cmake -P cmake_install.cmake
-+.PHONY : install/fast
-+
-+# Special rule for the target edit_cache
-+edit_cache:
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
-+ /usr/pkg/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
-+.PHONY : edit_cache
-+
-+# Special rule for the target edit_cache
-+edit_cache/fast: edit_cache
-+
-+.PHONY : edit_cache/fast
-+
-+# Special rule for the target rebuild_cache
-+rebuild_cache:
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
-+ /usr/pkg/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
-+.PHONY : rebuild_cache
-+
-+# Special rule for the target rebuild_cache
-+rebuild_cache/fast: rebuild_cache
-+
-+.PHONY : rebuild_cache/fast
-+
-+# Special rule for the target list_install_components
-+list_install_components:
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"LLVMAArch64AsmParser\" \"LLVMAArch64AsmPrinter\" \"LLVMAArch64CodeGen\" \"LLVMAArch64Desc\" \"LLVMAArch64Disassembler\" \"LLVMAArch64Info\" \"LLVMAArch64Utils\" \"LLVMAMDGPUAsmParser\" \"LLVMAMDGPUAsmPrinter\" \"LLVMAMDGPUCodeGen\" \"LLVMAMDGPUDesc\" \"LLVMAMDGPUDisassembler\" \"LLVMAMDGPUInfo\" \"LLVMAMDGPUUtils\" \"LLVMARMAsmParser\" \"LLVMARMAsmPrinter\" \"LLVMARMCodeGen\" \"LLVMARMDesc\" \"LLVMARMDisassembler\" \"LLVMARMInfo\" \"LLVMARMUtils\" \"LLVMAggressiveInstCombine\" \"LLVMAnalysis\" \"LLVMAsmParser\" \"LLVMAsmPrinter\" \"LLVMBPFAsmParser\" \"LLVMBPFAsmPrinter\" \"LLVMBPFCodeGen\" \"LLVMBPFDesc\" \"LLVMBPFDisassembler\" \"LLVMBPFInfo\" \"LLVMBinaryFormat\" \"LLVMBitReader\" \"LLVMBitWriter\" \"LLVMCodeGen\" \"LLVMCore\" \"LLVMCoroutines\" \"LLVMCoverage\" \"LLVMDebugInfoCodeView\" \"LLVMDebugInfoDWARF\" \"LLVMDebugInfoMSF\" \"LLVMDebugInfoPDB\" \"LLVMDemangle\" \"L
LVMDlltoolDriver\" \"LLVMExecutionEngine\" \"LLVMFuzzMutate\" \"LLVMGlobalISel\" \"LLVMHexagonAsmParser\" \"LLVMHexagonCodeGen\" \"LLVMHexagonDesc\" \"LLVMHexagonDisassembler\" \"LLVMHexagonInfo\" \"LLVMIRReader\" \"LLVMInstCombine\" \"LLVMInstrumentation\" \"LLVMInterpreter\" \"LLVMLTO\" \"LLVMLanaiAsmParser\" \"LLVMLanaiAsmPrinter\" \"LLVMLanaiCodeGen\" \"LLVMLanaiDesc\" \"LLVMLanaiDisassembler\" \"LLVMLanaiInfo\" \"LLVMLibDriver\" \"LLVMLineEditor\" \"LLVMLinker\" \"LLVMMC\" \"LLVMMCDisassembler\" \"LLVMMCJIT\" \"LLVMMCParser\" \"LLVMMIRParser\" \"LLVMMSP430AsmPrinter\" \"LLVMMSP430CodeGen\" \"LLVMMSP430Desc\" \"LLVMMSP430Info\" \"LLVMMipsAsmParser\" \"LLVMMipsAsmPrinter\" \"LLVMMipsCodeGen\" \"LLVMMipsDesc\" \"LLVMMipsDisassembler\" \"LLVMMipsInfo\" \"LLVMNVPTXAsmPrinter\" \"LLVMNVPTXCodeGen\" \"LLVMNVPTXDesc\" \"LLVMNVPTXInfo\" \"LLVMObjCARCOpts\" \"LLVMObject\" \"LLVMObjectYAML\" \"LLVMOption\" \"LLVMOrcJIT\" \"LLVMPasses\" \"LLVMPowerPCAsmParser\" \"LLVMPowerPCAsmPrinter\" \"L
LVMPowerPCCodeGen\" \"LLVMPowerPCDesc\" \"LLVMPowerPCDisassembler\" \"LLVMPowerPCInfo\" \"LLVMProfileData\" \"LLVMRuntimeDyld\" \"LLVMScalarOpts\" \"LLVMSelectionDAG\" \"LLVMSparcAsmParser\" \"LLVMSparcAsmPrinter\" \"LLVMSparcCodeGen\" \"LLVMSparcDesc\" \"LLVMSparcDisassembler\" \"LLVMSparcInfo\" \"LLVMSupport\" \"LLVMSymbolize\" \"LLVMSystemZAsmParser\" \"LLVMSystemZAsmPrinter\" \"LLVMSystemZCodeGen\" \"LLVMSystemZDesc\" \"LLVMSystemZDisassembler\" \"LLVMSystemZInfo\" \"LLVMTableGen\" \"LLVMTarget\" \"LLVMTransformUtils\" \"LLVMVectorize\" \"LLVMWindowsManifest\" \"LLVMX86AsmParser\" \"LLVMX86AsmPrinter\" \"LLVMX86CodeGen\" \"LLVMX86Desc\" \"LLVMX86Disassembler\" \"LLVMX86Info\" \"LLVMX86Utils\" \"LLVMXCoreAsmPrinter\" \"LLVMXCoreCodeGen\" \"LLVMXCoreDesc\" \"LLVMXCoreDisassembler\" \"LLVMXCoreInfo\" \"LLVMXRay\" \"LLVMipo\" \"LTO\" \"Unspecified\" \"bugpoint\" \"cmake-exports\" \"dsymutil\" \"llc\" \"lli\" \"llvm-ar\" \"llvm-as\" \"llvm-bcanalyzer\" \"llvm-c-test\" \"llvm-cat\" \"
llvm-cfi-verify\" \"llvm-config\" \"llvm-cov\" \"llvm-cvtres\" \"llvm-cxxdump\" \"llvm-cxxfilt\" \"llvm-diff\" \"llvm-dis\" \"llvm-dlltool\" \"llvm-dwarfdump\" \"llvm-dwp\" \"llvm-exegesis\" \"llvm-extract\" \"llvm-headers\" \"llvm-lib\" \"llvm-link\" \"llvm-lto\" \"llvm-lto2\" \"llvm-mc\" \"llvm-mca\" \"llvm-modextract\" \"llvm-mt\" \"llvm-nm\" \"llvm-objcopy\" \"llvm-objdump\" \"llvm-opt-report\" \"llvm-pdbutil\" \"llvm-profdata\" \"llvm-ranlib\" \"llvm-rc\" \"llvm-readelf\" \"llvm-readobj\" \"llvm-rtdyld\" \"llvm-size\" \"llvm-split\" \"llvm-stress\" \"llvm-strings\" \"llvm-strip\" \"llvm-symbolizer\" \"llvm-undname\" \"llvm-xray\" \"obj2yaml\" \"opt\" \"opt-viewer\" \"sancov\" \"sanstats\" \"verify-uselistorder\" \"yaml2obj\""
-+.PHONY : list_install_components
-+
-+# Special rule for the target list_install_components
-+list_install_components/fast: list_install_components
-+
-+.PHONY : list_install_components/fast
-+
-+# The main all target
-+all: cmake_check_build_system
-+ cd /home/ryoon/tmp4/build && $(CMAKE_COMMAND) -E cmake_progress_start /home/ryoon/tmp4/build/CMakeFiles /home/ryoon/tmp4/build/include/llvm/CMakeFiles/progress.marks
-+ cd /home/ryoon/tmp4/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 include/llvm/all
-+ $(CMAKE_COMMAND) -E cmake_progress_start /home/ryoon/tmp4/build/CMakeFiles 0
-+.PHONY : all
-+
-+# The main clean target
-+clean:
-+ cd /home/ryoon/tmp4/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 include/llvm/clean
-+.PHONY : clean
-+
-+# The main clean target
-+clean/fast: clean
-+
-+.PHONY : clean/fast
-+
-+# Prepare targets for installation.
-+preinstall: all
-+ cd /home/ryoon/tmp4/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 include/llvm/preinstall
-+.PHONY : preinstall
-+
-+# Prepare targets for installation.
-+preinstall/fast:
-+ cd /home/ryoon/tmp4/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 include/llvm/preinstall
-+.PHONY : preinstall/fast
-+
-+# clear depends
-+depend:
-+ cd /home/ryoon/tmp4/build && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
-+.PHONY : depend
-+
-+# Help Target
-+help:
-+ @echo "The following are some of the valid targets for this Makefile:"
-+ @echo "... all (the default if no target is provided)"
-+ @echo "... clean"
-+ @echo "... depend"
-+ @echo "... edit_cache"
-+ @echo "... install"
-+ @echo "... install/local"
-+ @echo "... install/strip"
-+ @echo "... list_install_components"
-+ @echo "... package"
-+ @echo "... package_source"
-+ @echo "... rebuild_cache"
-+.PHONY : help
-+
-+
-+
-+#=============================================================================
-+# Special targets to cleanup operation of make.
-+
-+# Special rule to run CMake to check the build system integrity.
-+# No rule that depends on this can have commands that come from listfiles
-+# because they might be regenerated.
-+cmake_check_build_system:
-+ cd /home/ryoon/tmp4/build && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
-+.PHONY : cmake_check_build_system
-+
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_CMakeDirectoryInformation.cmake b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_CMakeDirectoryInformation.cmake
deleted file mode 100644
index f15d120aa9..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_CMakeDirectoryInformation.cmake
+++ /dev/null
@@ -1,21 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/CMakeFiles/CMakeDirectoryInformation.cmake.orig 2020-07-23 08:46:21.656229238 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/CMakeFiles/CMakeDirectoryInformation.cmake
-@@ -0,0 +1,16 @@
-+# CMAKE generated file: DO NOT EDIT!
-+# Generated by "Unix Makefiles" Generator, CMake Version 3.17
-+
-+# Relative path conversion top directories.
-+set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/ryoon/tmp4/llvm-7.0.1.src")
-+set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/ryoon/tmp4/build")
-+
-+# Force unix paths in dependencies.
-+set(CMAKE_FORCE_UNIX_PATHS 1)
-+
-+
-+# The C and CXX include file regular expressions for this directory.
-+set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
-+set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
-+set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
-+set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_DependInfo.cmake b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_DependInfo.cmake
deleted file mode 100644
index ab901f02e2..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_DependInfo.cmake
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/DependInfo.cmake.orig 2020-07-23 08:46:21.652278771 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/DependInfo.cmake
-@@ -0,0 +1,11 @@
-+# The set of languages for which implicit dependencies are needed:
-+set(CMAKE_DEPENDS_LANGUAGES
-+ )
-+# The set of files for implicit dependencies of each language:
-+
-+# Targets to which this target links.
-+set(CMAKE_TARGET_LINKED_INFO_FILES
-+ )
-+
-+# Fortran module output directory.
-+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_build.make b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_build.make
deleted file mode 100644
index e40266d418..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_build.make
+++ /dev/null
@@ -1,101 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/build.make.orig 2020-07-23 08:46:21.648283690 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/build.make
-@@ -0,0 +1,96 @@
-+# CMAKE generated file: DO NOT EDIT!
-+# Generated by "Unix Makefiles" Generator, CMake Version 3.17
-+
-+# Delete rule output on recipe failure.
-+.DELETE_ON_ERROR:
-+
-+
-+#=============================================================================
-+# Special targets provided by cmake.
-+
-+# Disable implicit rules so canonical targets will work.
-+.SUFFIXES:
-+
-+
-+# Disable VCS-based implicit rules.
-+% : %,v
-+
-+
-+# Disable VCS-based implicit rules.
-+% : RCS/%
-+
-+
-+# Disable VCS-based implicit rules.
-+% : RCS/%,v
-+
-+
-+# Disable VCS-based implicit rules.
-+% : SCCS/s.%
-+
-+
-+# Disable VCS-based implicit rules.
-+% : s.%
-+
-+
-+.SUFFIXES: .hpux_make_needs_suffix_list
-+
-+
-+# Command-line flag to silence nested $(MAKE).
-+$(VERBOSE)MAKESILENT = -s
-+
-+# Suppress display of executed commands.
-+$(VERBOSE).SILENT:
-+
-+
-+# A target that is always out of date.
-+cmake_force:
-+
-+.PHONY : cmake_force
-+
-+#=============================================================================
-+# Set environment variables for the build.
-+
-+# The shell in which to execute make rules.
-+SHELL = /bin/sh
-+
-+# The CMake executable.
-+CMAKE_COMMAND = /usr/pkg/bin/cmake
-+
-+# The command to remove a file.
-+RM = /usr/pkg/bin/cmake -E rm -f
-+
-+# Escaping for special characters.
-+EQUALS = =
-+
-+# The top-level source directory on which CMake was run.
-+CMAKE_SOURCE_DIR = /home/ryoon/tmp4/llvm-7.0.1.src
-+
-+# The top-level build directory on which CMake was run.
-+CMAKE_BINARY_DIR = /home/ryoon/tmp4/build
-+
-+# Utility rule file for llvm_vcsrevision_h.
-+
-+# Include the progress variables for this target.
-+include include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/progress.make
-+
-+include/llvm/Support/CMakeFiles/llvm_vcsrevision_h: include/llvm/Support/VCSRevision.h
-+
-+
-+llvm_vcsrevision_h: include/llvm/Support/CMakeFiles/llvm_vcsrevision_h
-+llvm_vcsrevision_h: include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/build.make
-+
-+.PHONY : llvm_vcsrevision_h
-+
-+# Rule to build all files generated by this target.
-+include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/build: llvm_vcsrevision_h
-+
-+.PHONY : include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/build
-+
-+include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/clean:
-+ cd /home/ryoon/tmp4/build/include/llvm/Support && $(CMAKE_COMMAND) -P CMakeFiles/llvm_vcsrevision_h.dir/cmake_clean.cmake
-+.PHONY : include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/clean
-+
-+include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/depend:
-+ cd /home/ryoon/tmp4/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ryoon/tmp4/llvm-7.0.1.src /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Support /home/ryoon/tmp4/build /home/ryoon/tmp4/build/include/llvm/Support /home/ryoon/tmp4/build/include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/DependInfo.cmake --color=$(COLOR)
-+.PHONY : include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/depend
-+
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_cmake__clean.cmake b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_cmake__clean.cmake
deleted file mode 100644
index fc42a9cd83..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_cmake__clean.cmake
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/cmake_clean.cmake.orig 2020-07-23 08:46:21.644309495 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/cmake_clean.cmake
-@@ -0,0 +1,8 @@
-+file(REMOVE_RECURSE
-+ "CMakeFiles/llvm_vcsrevision_h"
-+)
-+
-+# Per-language clean rules from dependency scanning.
-+foreach(lang )
-+ include(CMakeFiles/llvm_vcsrevision_h.dir/cmake_clean_${lang}.cmake OPTIONAL)
-+endforeach()
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_progress.make b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_progress.make
deleted file mode 100644
index 4eaf0bc670..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_progress.make
+++ /dev/null
@@ -1,6 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/progress.make.orig 2020-07-23 08:46:21.640106101 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/progress.make
-@@ -0,0 +1 @@
-+
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_progress.marks b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_progress.marks
deleted file mode 100644
index bbf210eecc..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_progress.marks
+++ /dev/null
@@ -1,6 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/CMakeFiles/progress.marks.orig 2020-07-23 08:46:21.660209050 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/CMakeFiles/progress.marks
-@@ -0,0 +1 @@
-+0
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_Makefile b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_Makefile
deleted file mode 100644
index ca30d8b64d..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_Makefile
+++ /dev/null
@@ -1,249 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/Makefile.orig 2020-07-23 08:46:21.672351207 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/Makefile
-@@ -0,0 +1,244 @@
-+# CMAKE generated file: DO NOT EDIT!
-+# Generated by "Unix Makefiles" Generator, CMake Version 3.17
-+
-+# Default target executed when no arguments are given to make.
-+default_target: all
-+
-+.PHONY : default_target
-+
-+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
-+.NOTPARALLEL:
-+
-+
-+#=============================================================================
-+# Special targets provided by cmake.
-+
-+# Disable implicit rules so canonical targets will work.
-+.SUFFIXES:
-+
-+
-+# Disable VCS-based implicit rules.
-+% : %,v
-+
-+
-+# Disable VCS-based implicit rules.
-+% : RCS/%
-+
-+
-+# Disable VCS-based implicit rules.
-+% : RCS/%,v
-+
-+
-+# Disable VCS-based implicit rules.
-+% : SCCS/s.%
-+
-+
-+# Disable VCS-based implicit rules.
-+% : s.%
-+
-+
-+.SUFFIXES: .hpux_make_needs_suffix_list
-+
-+
-+# Command-line flag to silence nested $(MAKE).
-+$(VERBOSE)MAKESILENT = -s
-+
-+# Suppress display of executed commands.
-+$(VERBOSE).SILENT:
-+
-+
-+# A target that is always out of date.
-+cmake_force:
-+
-+.PHONY : cmake_force
-+
-+#=============================================================================
-+# Set environment variables for the build.
-+
-+# The shell in which to execute make rules.
-+SHELL = /bin/sh
-+
-+# The CMake executable.
-+CMAKE_COMMAND = /usr/pkg/bin/cmake
-+
-+# The command to remove a file.
-+RM = /usr/pkg/bin/cmake -E rm -f
-+
-+# Escaping for special characters.
-+EQUALS = =
-+
-+# The top-level source directory on which CMake was run.
-+CMAKE_SOURCE_DIR = /home/ryoon/tmp4/llvm-7.0.1.src
-+
-+# The top-level build directory on which CMake was run.
-+CMAKE_BINARY_DIR = /home/ryoon/tmp4/build
-+
-+#=============================================================================
-+# Targets provided globally by CMake.
-+
-+# Special rule for the target install/strip
-+install/strip: preinstall
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
-+ /usr/pkg/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
-+.PHONY : install/strip
-+
-+# Special rule for the target install/strip
-+install/strip/fast: preinstall/fast
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
-+ /usr/pkg/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
-+.PHONY : install/strip/fast
-+
-+# Special rule for the target install/local
-+install/local: preinstall
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
-+ /usr/pkg/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
-+.PHONY : install/local
-+
-+# Special rule for the target install/local
-+install/local/fast: preinstall/fast
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
-+ /usr/pkg/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
-+.PHONY : install/local/fast
-+
-+# Special rule for the target install
-+install: preinstall
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
-+ /usr/pkg/bin/cmake -P cmake_install.cmake
-+.PHONY : install
-+
-+# Special rule for the target install
-+install/fast: preinstall/fast
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
-+ /usr/pkg/bin/cmake -P cmake_install.cmake
-+.PHONY : install/fast
-+
-+# Special rule for the target package
-+package: preinstall
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool..."
-+ cd /home/ryoon/tmp4/build && /usr/pkg/bin/cpack --config ./CPackConfig.cmake
-+.PHONY : package
-+
-+# Special rule for the target package
-+package/fast: package
-+
-+.PHONY : package/fast
-+
-+# Special rule for the target package_source
-+package_source:
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool for source..."
-+ cd /home/ryoon/tmp4/build && /usr/pkg/bin/cpack --config ./CPackSourceConfig.cmake /home/ryoon/tmp4/build/CPackSourceConfig.cmake
-+.PHONY : package_source
-+
-+# Special rule for the target package_source
-+package_source/fast: package_source
-+
-+.PHONY : package_source/fast
-+
-+# Special rule for the target edit_cache
-+edit_cache:
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
-+ /usr/pkg/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
-+.PHONY : edit_cache
-+
-+# Special rule for the target edit_cache
-+edit_cache/fast: edit_cache
-+
-+.PHONY : edit_cache/fast
-+
-+# Special rule for the target rebuild_cache
-+rebuild_cache:
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
-+ /usr/pkg/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
-+.PHONY : rebuild_cache
-+
-+# Special rule for the target rebuild_cache
-+rebuild_cache/fast: rebuild_cache
-+
-+.PHONY : rebuild_cache/fast
-+
-+# Special rule for the target list_install_components
-+list_install_components:
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"LLVMAArch64AsmParser\" \"LLVMAArch64AsmPrinter\" \"LLVMAArch64CodeGen\" \"LLVMAArch64Desc\" \"LLVMAArch64Disassembler\" \"LLVMAArch64Info\" \"LLVMAArch64Utils\" \"LLVMAMDGPUAsmParser\" \"LLVMAMDGPUAsmPrinter\" \"LLVMAMDGPUCodeGen\" \"LLVMAMDGPUDesc\" \"LLVMAMDGPUDisassembler\" \"LLVMAMDGPUInfo\" \"LLVMAMDGPUUtils\" \"LLVMARMAsmParser\" \"LLVMARMAsmPrinter\" \"LLVMARMCodeGen\" \"LLVMARMDesc\" \"LLVMARMDisassembler\" \"LLVMARMInfo\" \"LLVMARMUtils\" \"LLVMAggressiveInstCombine\" \"LLVMAnalysis\" \"LLVMAsmParser\" \"LLVMAsmPrinter\" \"LLVMBPFAsmParser\" \"LLVMBPFAsmPrinter\" \"LLVMBPFCodeGen\" \"LLVMBPFDesc\" \"LLVMBPFDisassembler\" \"LLVMBPFInfo\" \"LLVMBinaryFormat\" \"LLVMBitReader\" \"LLVMBitWriter\" \"LLVMCodeGen\" \"LLVMCore\" \"LLVMCoroutines\" \"LLVMCoverage\" \"LLVMDebugInfoCodeView\" \"LLVMDebugInfoDWARF\" \"LLVMDebugInfoMSF\" \"LLVMDebugInfoPDB\" \"LLVMDemangle\" \"L
LVMDlltoolDriver\" \"LLVMExecutionEngine\" \"LLVMFuzzMutate\" \"LLVMGlobalISel\" \"LLVMHexagonAsmParser\" \"LLVMHexagonCodeGen\" \"LLVMHexagonDesc\" \"LLVMHexagonDisassembler\" \"LLVMHexagonInfo\" \"LLVMIRReader\" \"LLVMInstCombine\" \"LLVMInstrumentation\" \"LLVMInterpreter\" \"LLVMLTO\" \"LLVMLanaiAsmParser\" \"LLVMLanaiAsmPrinter\" \"LLVMLanaiCodeGen\" \"LLVMLanaiDesc\" \"LLVMLanaiDisassembler\" \"LLVMLanaiInfo\" \"LLVMLibDriver\" \"LLVMLineEditor\" \"LLVMLinker\" \"LLVMMC\" \"LLVMMCDisassembler\" \"LLVMMCJIT\" \"LLVMMCParser\" \"LLVMMIRParser\" \"LLVMMSP430AsmPrinter\" \"LLVMMSP430CodeGen\" \"LLVMMSP430Desc\" \"LLVMMSP430Info\" \"LLVMMipsAsmParser\" \"LLVMMipsAsmPrinter\" \"LLVMMipsCodeGen\" \"LLVMMipsDesc\" \"LLVMMipsDisassembler\" \"LLVMMipsInfo\" \"LLVMNVPTXAsmPrinter\" \"LLVMNVPTXCodeGen\" \"LLVMNVPTXDesc\" \"LLVMNVPTXInfo\" \"LLVMObjCARCOpts\" \"LLVMObject\" \"LLVMObjectYAML\" \"LLVMOption\" \"LLVMOrcJIT\" \"LLVMPasses\" \"LLVMPowerPCAsmParser\" \"LLVMPowerPCAsmPrinter\" \"L
LVMPowerPCCodeGen\" \"LLVMPowerPCDesc\" \"LLVMPowerPCDisassembler\" \"LLVMPowerPCInfo\" \"LLVMProfileData\" \"LLVMRuntimeDyld\" \"LLVMScalarOpts\" \"LLVMSelectionDAG\" \"LLVMSparcAsmParser\" \"LLVMSparcAsmPrinter\" \"LLVMSparcCodeGen\" \"LLVMSparcDesc\" \"LLVMSparcDisassembler\" \"LLVMSparcInfo\" \"LLVMSupport\" \"LLVMSymbolize\" \"LLVMSystemZAsmParser\" \"LLVMSystemZAsmPrinter\" \"LLVMSystemZCodeGen\" \"LLVMSystemZDesc\" \"LLVMSystemZDisassembler\" \"LLVMSystemZInfo\" \"LLVMTableGen\" \"LLVMTarget\" \"LLVMTransformUtils\" \"LLVMVectorize\" \"LLVMWindowsManifest\" \"LLVMX86AsmParser\" \"LLVMX86AsmPrinter\" \"LLVMX86CodeGen\" \"LLVMX86Desc\" \"LLVMX86Disassembler\" \"LLVMX86Info\" \"LLVMX86Utils\" \"LLVMXCoreAsmPrinter\" \"LLVMXCoreCodeGen\" \"LLVMXCoreDesc\" \"LLVMXCoreDisassembler\" \"LLVMXCoreInfo\" \"LLVMXRay\" \"LLVMipo\" \"LTO\" \"Unspecified\" \"bugpoint\" \"cmake-exports\" \"dsymutil\" \"llc\" \"lli\" \"llvm-ar\" \"llvm-as\" \"llvm-bcanalyzer\" \"llvm-c-test\" \"llvm-cat\" \"
llvm-cfi-verify\" \"llvm-config\" \"llvm-cov\" \"llvm-cvtres\" \"llvm-cxxdump\" \"llvm-cxxfilt\" \"llvm-diff\" \"llvm-dis\" \"llvm-dlltool\" \"llvm-dwarfdump\" \"llvm-dwp\" \"llvm-exegesis\" \"llvm-extract\" \"llvm-headers\" \"llvm-lib\" \"llvm-link\" \"llvm-lto\" \"llvm-lto2\" \"llvm-mc\" \"llvm-mca\" \"llvm-modextract\" \"llvm-mt\" \"llvm-nm\" \"llvm-objcopy\" \"llvm-objdump\" \"llvm-opt-report\" \"llvm-pdbutil\" \"llvm-profdata\" \"llvm-ranlib\" \"llvm-rc\" \"llvm-readelf\" \"llvm-readobj\" \"llvm-rtdyld\" \"llvm-size\" \"llvm-split\" \"llvm-stress\" \"llvm-strings\" \"llvm-strip\" \"llvm-symbolizer\" \"llvm-undname\" \"llvm-xray\" \"obj2yaml\" \"opt\" \"opt-viewer\" \"sancov\" \"sanstats\" \"verify-uselistorder\" \"yaml2obj\""
-+.PHONY : list_install_components
-+
-+# Special rule for the target list_install_components
-+list_install_components/fast: list_install_components
-+
-+.PHONY : list_install_components/fast
-+
-+# The main all target
-+all: cmake_check_build_system
-+ cd /home/ryoon/tmp4/build && $(CMAKE_COMMAND) -E cmake_progress_start /home/ryoon/tmp4/build/CMakeFiles /home/ryoon/tmp4/build/include/llvm/Support/CMakeFiles/progress.marks
-+ cd /home/ryoon/tmp4/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 include/llvm/Support/all
-+ $(CMAKE_COMMAND) -E cmake_progress_start /home/ryoon/tmp4/build/CMakeFiles 0
-+.PHONY : all
-+
-+# The main clean target
-+clean:
-+ cd /home/ryoon/tmp4/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 include/llvm/Support/clean
-+.PHONY : clean
-+
-+# The main clean target
-+clean/fast: clean
-+
-+.PHONY : clean/fast
-+
-+# Prepare targets for installation.
-+preinstall: all
-+ cd /home/ryoon/tmp4/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 include/llvm/Support/preinstall
-+.PHONY : preinstall
-+
-+# Prepare targets for installation.
-+preinstall/fast:
-+ cd /home/ryoon/tmp4/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 include/llvm/Support/preinstall
-+.PHONY : preinstall/fast
-+
-+# clear depends
-+depend:
-+ cd /home/ryoon/tmp4/build && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
-+.PHONY : depend
-+
-+# Convenience name for target.
-+include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/rule:
-+ cd /home/ryoon/tmp4/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/rule
-+.PHONY : include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/rule
-+
-+# Convenience name for target.
-+llvm_vcsrevision_h: include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/rule
-+
-+.PHONY : llvm_vcsrevision_h
-+
-+# fast build rule for target.
-+llvm_vcsrevision_h/fast:
-+ cd /home/ryoon/tmp4/build && $(MAKE) $(MAKESILENT) -f include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/build.make include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/build
-+.PHONY : llvm_vcsrevision_h/fast
-+
-+# Help Target
-+help:
-+ @echo "The following are some of the valid targets for this Makefile:"
-+ @echo "... all (the default if no target is provided)"
-+ @echo "... clean"
-+ @echo "... depend"
-+ @echo "... edit_cache"
-+ @echo "... install"
-+ @echo "... install/local"
-+ @echo "... install/strip"
-+ @echo "... list_install_components"
-+ @echo "... package"
-+ @echo "... package_source"
-+ @echo "... rebuild_cache"
-+ @echo "... llvm_vcsrevision_h"
-+.PHONY : help
-+
-+
-+
-+#=============================================================================
-+# Special targets to cleanup operation of make.
-+
-+# Special rule to run CMake to check the build system integrity.
-+# No rule that depends on this can have commands that come from listfiles
-+# because they might be regenerated.
-+cmake_check_build_system:
-+ cd /home/ryoon/tmp4/build && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
-+.PHONY : cmake_check_build_system
-+
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_VCSRevision.h b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_VCSRevision.h
deleted file mode 100644
index c9293a35b3..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_VCSRevision.h
+++ /dev/null
@@ -1,6 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/VCSRevision.h.orig 2020-07-23 08:46:21.668378518 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/VCSRevision.h
-@@ -0,0 +1 @@
-+#undef LLVM_REVISION
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_cmake__install.cmake b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_cmake__install.cmake
deleted file mode 100644
index 7ad563a89d..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_cmake__install.cmake
+++ /dev/null
@@ -1,39 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/cmake_install.cmake.orig 2020-07-23 08:46:21.664385560 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/cmake_install.cmake
-@@ -0,0 +1,34 @@
-+# Install script for directory: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Support
-+
-+# Set the install prefix
-+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
-+ set(CMAKE_INSTALL_PREFIX "/usr/local")
-+endif()
-+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
-+
-+# Set the install configuration name.
-+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
-+ if(BUILD_TYPE)
-+ string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
-+ CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
-+ else()
-+ set(CMAKE_INSTALL_CONFIG_NAME "Debug")
-+ endif()
-+ message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
-+endif()
-+
-+# Set the component getting installed.
-+if(NOT CMAKE_INSTALL_COMPONENT)
-+ if(COMPONENT)
-+ message(STATUS "Install component: \"${COMPONENT}\"")
-+ set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
-+ else()
-+ set(CMAKE_INSTALL_COMPONENT)
-+ endif()
-+endif()
-+
-+# Is this installation the result of a crosscompile?
-+if(NOT DEFINED CMAKE_CROSSCOMPILING)
-+ set(CMAKE_CROSSCOMPILING "FALSE")
-+endif()
-+
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_cmake__install.cmake b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_cmake__install.cmake
deleted file mode 100644
index fd41826f98..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_cmake__install.cmake
+++ /dev/null
@@ -1,46 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/cmake_install.cmake.orig 2020-07-23 08:46:21.684214528 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/cmake_install.cmake
-@@ -0,0 +1,41 @@
-+# Install script for directory: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm
-+
-+# Set the install prefix
-+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
-+ set(CMAKE_INSTALL_PREFIX "/usr/local")
-+endif()
-+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
-+
-+# Set the install configuration name.
-+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
-+ if(BUILD_TYPE)
-+ string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
-+ CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
-+ else()
-+ set(CMAKE_INSTALL_CONFIG_NAME "Debug")
-+ endif()
-+ message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
-+endif()
-+
-+# Set the component getting installed.
-+if(NOT CMAKE_INSTALL_COMPONENT)
-+ if(COMPONENT)
-+ message(STATUS "Install component: \"${COMPONENT}\"")
-+ set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
-+ else()
-+ set(CMAKE_INSTALL_COMPONENT)
-+ endif()
-+endif()
-+
-+# Is this installation the result of a crosscompile?
-+if(NOT DEFINED CMAKE_CROSSCOMPILING)
-+ set(CMAKE_CROSSCOMPILING "FALSE")
-+endif()
-+
-+if(NOT CMAKE_INSTALL_LOCAL_ONLY)
-+ # Include the install script for each subdirectory.
-+ include("/home/ryoon/tmp4/build/include/llvm/IR/cmake_install.cmake")
-+ include("/home/ryoon/tmp4/build/include/llvm/Support/cmake_install.cmake")
-+
-+endif()
-+
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_module.modulemap b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_module.modulemap
deleted file mode 100644
index c31e26f7a9..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_module.modulemap
+++ /dev/null
@@ -1,18 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/module.modulemap.orig 2020-07-23 08:46:21.676308616 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/module.modulemap
-@@ -0,0 +1,13 @@
-+// This is copied into the build area for a $src != $build compilation.
-+module LLVM_Support_DataTypes {
-+ header "Support/DataTypes.h"
-+ export *
-+}
-+module LLVM_Config_ABI_Breaking {
-+ header "Config/abi-breaking.h"
-+ export *
-+}
-+module LLVM_Config_Config {
-+ header "Config/llvm-config.h"
-+ export *
-+}
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_marl_src_memory.cpp b/chromium/patches/patch-third__party_swiftshader_third__party_marl_src_memory.cpp
index b1e8e8babe..8278a1e4a5 100644
--- a/chromium/patches/patch-third__party_swiftshader_third__party_marl_src_memory.cpp
+++ b/chromium/patches/patch-third__party_swiftshader_third__party_marl_src_memory.cpp
@@ -1,13 +1,18 @@
$NetBSD$
---- third_party/swiftshader/third_party/marl/src/memory.cpp.orig 2020-07-15 19:01:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/swiftshader/third_party/marl/src/memory.cpp.orig 2024-07-24 02:45:44.719376000 +0000
+++ third_party/swiftshader/third_party/marl/src/memory.cpp
-@@ -19,7 +19,7 @@
+@@ -19,7 +19,8 @@
#include <cstring>
--#if defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__)
-+#if defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__NetBSD__)
+-#if defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__) || defined(__EMSCRIPTEN__)
++#if defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__) || defined(__EMSCRIPTEN__) || defined(__OpenBSD__) || \
++ defined(__NetBSD__)
#include <sys/mman.h>
#include <unistd.h>
namespace {
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_marl_src_thread.cpp b/chromium/patches/patch-third__party_swiftshader_third__party_marl_src_thread.cpp
index 4437c5353d..3b22af28a4 100644
--- a/chromium/patches/patch-third__party_swiftshader_third__party_marl_src_thread.cpp
+++ b/chromium/patches/patch-third__party_swiftshader_third__party_marl_src_thread.cpp
@@ -1,13 +1,29 @@
$NetBSD$
---- third_party/swiftshader/third_party/marl/src/thread.cpp.orig 2020-07-15 19:01:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/swiftshader/third_party/marl/src/thread.cpp.orig 2024-07-24 02:45:44.719376000 +0000
+++ third_party/swiftshader/third_party/marl/src/thread.cpp
-@@ -420,6 +420,8 @@ void Thread::setName(const char* fmt, ..
+@@ -46,6 +46,9 @@
+ #include <unistd.h>
+ #include <thread>
+ #endif
++#if defined(__NetBSD__)
++#include <stdarg.h>
++#endif
+
+ namespace {
+
+@@ -444,7 +447,9 @@ void Thread::setName(const char* fmt, ..
pthread_setname_np(name);
#elif defined(__FreeBSD__)
pthread_set_name_np(pthread_self(), name);
+-#elif !defined(__Fuchsia__) && !defined(__EMSCRIPTEN__)
+#elif defined(__NetBSD__)
-+ pthread_setname_np(pthread_self(), "%s", name);
- #elif !defined(__Fuchsia__)
++ pthread_setname_np(pthread_self(), "%s", (void *)name);
++#elif !defined(__Fuchsia__) && !defined(__EMSCRIPTEN__) && !defined(__OpenBSD__) && !defined(__FreeBSD__)
pthread_setname_np(pthread_self(), name);
#endif
+
diff --git a/chromium/patches/patch-third__party_test__fonts_fontconfig_BUILD.gn b/chromium/patches/patch-third__party_test__fonts_fontconfig_BUILD.gn
new file mode 100644
index 0000000000..dbe2656071
--- /dev/null
+++ b/chromium/patches/patch-third__party_test__fonts_fontconfig_BUILD.gn
@@ -0,0 +1,21 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/test_fonts/fontconfig/BUILD.gn.orig 2024-07-24 02:45:07.771797200 +0000
++++ third_party/test_fonts/fontconfig/BUILD.gn
+@@ -26,7 +26,11 @@ if (is_linux || is_chromeos) {
+
+ copy("fonts_conf") {
+ sources = [ "fonts.conf" ]
+- outputs = [ "$root_out_dir/etc/fonts/{{source_file_part}}" ]
++ if (is_freebsd) {
++ outputs = [ "$root_out_dir/usr/local/etc/fonts/{{source_file_part}}" ]
++ } else {
++ outputs = [ "$root_out_dir/etc/fonts/{{source_file_part}}" ]
++ }
+ }
+
+ if (current_toolchain == host_toolchain) {
diff --git a/chromium/patches/patch-third__party_test__fonts_fontconfig_fontconfig__util__linux.cc b/chromium/patches/patch-third__party_test__fonts_fontconfig_fontconfig__util__linux.cc
new file mode 100644
index 0000000000..abadb1813a
--- /dev/null
+++ b/chromium/patches/patch-third__party_test__fonts_fontconfig_fontconfig__util__linux.cc
@@ -0,0 +1,33 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/test_fonts/fontconfig/fontconfig_util_linux.cc.orig 2024-07-24 02:45:07.771797200 +0000
++++ third_party/test_fonts/fontconfig/fontconfig_util_linux.cc
+@@ -2,6 +2,8 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
++#include "build/build_config.h"
++
+ #include "third_party/test_fonts/fontconfig/fontconfig_util_linux.h"
+
+ #include <fontconfig/fontconfig.h>
+@@ -16,11 +18,15 @@
+ namespace test_fonts {
+
+ std::string GetSysrootDir() {
++#if BUILDFLAG(IS_BSD)
++ return std::string(".");
++#else
+ char buf[PATH_MAX + 1];
+ auto count = readlink("/proc/self/exe", buf, PATH_MAX);
+ assert(count > 0);
+ buf[count] = '\0';
+ return dirname(buf);
++#endif
+ }
+
+ void SetUpFontconfig() {
diff --git a/chromium/patches/patch-third__party_test__fonts_fontconfig_generate__fontconfig__caches.cc b/chromium/patches/patch-third__party_test__fonts_fontconfig_generate__fontconfig__caches.cc
new file mode 100644
index 0000000000..d823b39449
--- /dev/null
+++ b/chromium/patches/patch-third__party_test__fonts_fontconfig_generate__fontconfig__caches.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/test_fonts/fontconfig/generate_fontconfig_caches.cc.orig 2024-07-24 02:45:07.771797200 +0000
++++ third_party/test_fonts/fontconfig/generate_fontconfig_caches.cc
+@@ -28,7 +28,7 @@ int main() {
+ // fontconfig cache.
+ // $ echo -n /test_fonts | md5sum
+ // fb5c91b2895aa445d23aebf7f9e2189c -
+- static const char kCacheKey[] = "fb5c91b2895aa445d23aebf7f9e2189c";
++ static const char kCacheKey[] = "cd4b5bc7-6cfc-41dc-8982-f2db624179ba";
+
+ // fontconfig writes the mtime of the test_fonts directory into the cache. It
+ // presumably checks this later to ensure that the cache is still up to date.
+@@ -56,7 +56,7 @@ int main() {
+ FcFini();
+
+ // Check existence of intended fontconfig cache file.
+- auto cache = fontconfig_caches + "/" + kCacheKey + "-le64.cache-9";
++ auto cache = fontconfig_caches + "/" + kCacheKey + "-x86_64.cache-" + FC_CACHE_VERSION;
+ bool cache_exists = access(cache.c_str(), F_OK) == 0;
+ return !cache_exists;
+ }
diff --git a/chromium/patches/patch-third__party_tflite_features.gni b/chromium/patches/patch-third__party_tflite_features.gni
new file mode 100644
index 0000000000..6e185038ec
--- /dev/null
+++ b/chromium/patches/patch-third__party_tflite_features.gni
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/tflite/features.gni.orig 2024-07-24 02:45:07.775797600 +0000
++++ third_party/tflite/features.gni
+@@ -9,8 +9,8 @@ declare_args() {
+ # This enables building TFLite with XNNPACK. Currently only available for
+ # Linux, macOS and Windows arm64/x64/x86 targets and ChromeOS non-ARM targets.
+ build_tflite_with_xnnpack =
+- (is_win || is_mac || is_linux || (is_chromeos && overlay_include_cbx)) &&
+- (current_cpu == "arm64" || current_cpu == "x64" || current_cpu == "x86")
++ ((is_win || is_mac || is_linux || (is_chromeos && overlay_include_cbx)) &&
++ (current_cpu == "arm64" || current_cpu == "x64" || current_cpu == "x86")) && !is_bsd
+
+ # Turns on TFLITE_WITH_RUY, using ruy as the gemm backend instead of gemmlowp.
+ build_tflite_with_ruy = true
diff --git a/chromium/patches/patch-third__party_unrar_src_crypt.cpp b/chromium/patches/patch-third__party_unrar_src_crypt.cpp
new file mode 100644
index 0000000000..df9a74b568
--- /dev/null
+++ b/chromium/patches/patch-third__party_unrar_src_crypt.cpp
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/unrar/src/crypt.cpp.orig 2024-07-24 02:45:08.511869000 +0000
++++ third_party/unrar/src/crypt.cpp
+@@ -116,6 +116,8 @@ void GetRnd(byte *RndBuf,size_t BufSize)
+ Success=CryptGenRandom(hProvider, (DWORD)BufSize, RndBuf) != FALSE;
+ CryptReleaseContext(hProvider, 0);
+ }
++#elif defined(__OpenBSD__)
++ arc4random_buf(RndBuf, BufSize);
+ #elif defined(_UNIX)
+ FILE *rndf = fopen("/dev/urandom", "r");
+ if (rndf!=NULL)
diff --git a/chromium/patches/patch-third__party_usrsctp_BUILD.gn b/chromium/patches/patch-third__party_usrsctp_BUILD.gn
deleted file mode 100644
index b7c6b01a61..0000000000
--- a/chromium/patches/patch-third__party_usrsctp_BUILD.gn
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
---- third_party/usrsctp/BUILD.gn.orig 2020-06-25 09:32:13.000000000 +0000
-+++ third_party/usrsctp/BUILD.gn
-@@ -126,6 +126,10 @@ static_library("usrsctp") {
- "__Userspace_os_Linux",
- "_GNU_SOURCE",
- ]
-+ } else if (is_netbsd) {
-+ defines += [
-+ "__Userspace_os_NetBSD",
-+ ]
- } else if (is_mac || is_ios) {
- defines += [
- "HAVE_SA_LEN",
diff --git a/chromium/patches/patch-third__party_vulkan-validation-layers_src_layers_external_vma_vk__mem__alloc.h b/chromium/patches/patch-third__party_vulkan-validation-layers_src_layers_external_vma_vk__mem__alloc.h
new file mode 100644
index 0000000000..4c6ada9673
--- /dev/null
+++ b/chromium/patches/patch-third__party_vulkan-validation-layers_src_layers_external_vma_vk__mem__alloc.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h.orig 2024-07-24 02:45:48.759767300 +0000
++++ third_party/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h
+@@ -2740,7 +2740,7 @@ static void* vma_aligned_alloc(size_t al
+
+ return memalign(alignment, size);
+ }
+-#elif defined(__APPLE__) || defined(__ANDROID__) || (defined(__linux__) && defined(__GLIBCXX__) && !defined(_GLIBCXX_HAVE_ALIGNED_ALLOC))
++#elif defined(__APPLE__) || defined(__ANDROID__) || (defined(__linux__) && defined(__GLIBCXX__) && !defined(_GLIBCXX_HAVE_ALIGNED_ALLOC)) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ #include <cstdlib>
+
+ #if defined(__APPLE__)
diff --git a/chromium/patches/patch-third__party_vulkan-validation-layers_src_layers_vulkan_generated_vk__function__pointers.cpp b/chromium/patches/patch-third__party_vulkan-validation-layers_src_layers_vulkan_generated_vk__function__pointers.cpp
new file mode 100644
index 0000000000..94630a8328
--- /dev/null
+++ b/chromium/patches/patch-third__party_vulkan-validation-layers_src_layers_vulkan_generated_vk__function__pointers.cpp
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/vulkan-validation-layers/src/layers/vulkan/generated/vk_function_pointers.cpp.orig 2024-07-24 02:45:48.887779700 +0000
++++ third_party/vulkan-validation-layers/src/layers/vulkan/generated/vk_function_pointers.cpp
+@@ -53,7 +53,8 @@ static void *get_proc_address(dl_handle
+ assert(name);
+ return (void *)GetProcAddress(library, name);
+ }
+-#elif defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__QNX__)
++#elif defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__QNX__) || \
++ defined(__NetBSD__)
+
+ #include <dlfcn.h>
+
diff --git a/chromium/patches/patch-third__party_vulkan__memory__allocator_include_vk__mem__alloc.h b/chromium/patches/patch-third__party_vulkan__memory__allocator_include_vk__mem__alloc.h
new file mode 100644
index 0000000000..60ec4e8580
--- /dev/null
+++ b/chromium/patches/patch-third__party_vulkan__memory__allocator_include_vk__mem__alloc.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/vulkan_memory_allocator/include/vk_mem_alloc.h.orig 2024-07-24 02:45:40.578975000 +0000
++++ third_party/vulkan_memory_allocator/include/vk_mem_alloc.h
+@@ -2760,7 +2760,7 @@ void* vma_aligned_alloc(size_t alignment
+
+ return memalign(alignment, size);
+ }
+-#elif defined(__APPLE__) || defined(__ANDROID__) || (defined(__linux__) && defined(__GLIBCXX__) && !defined(_GLIBCXX_HAVE_ALIGNED_ALLOC))
++#elif defined(__APPLE__) || defined(__ANDROID__) || (defined(__linux__) && defined(__GLIBCXX__) && !defined(_GLIBCXX_HAVE_ALIGNED_ALLOC)) || defined(__OpenBSD__) || defined(__FreeBSD__)
+ #include <cstdlib>
+
+ #if defined(__APPLE__)
diff --git a/chromium/patches/patch-third__party_wayland_BUILD.gn b/chromium/patches/patch-third__party_wayland_BUILD.gn
new file mode 100644
index 0000000000..666311436a
--- /dev/null
+++ b/chromium/patches/patch-third__party_wayland_BUILD.gn
@@ -0,0 +1,20 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/wayland/BUILD.gn.orig 2024-07-24 02:45:08.547872300 +0000
++++ third_party/wayland/BUILD.gn
+@@ -22,6 +22,11 @@ config("wayland_config") {
+ "src/src",
+ ]
+
++ if (is_bsd) {
++ include_dirs += [ "/usr/local/include/libepoll-shim" ]
++ libs = [ "epoll-shim" ]
++ }
++
+ # Client/Server headers are automatically generated. Though, we still need
+ # to pass the path where these headers are located.
+ include_dirs += [ "$root_gen_dir/third_party/wayland/src/protocol" ]
diff --git a/chromium/patches/patch-third__party_wayland_include_config.h b/chromium/patches/patch-third__party_wayland_include_config.h
new file mode 100644
index 0000000000..b911a93144
--- /dev/null
+++ b/chromium/patches/patch-third__party_wayland_include_config.h
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/wayland/include/config.h.orig 2024-07-24 02:45:08.547872300 +0000
++++ third_party/wayland/include/config.h
+@@ -9,7 +9,14 @@
+
+ #define HAVE_BROKEN_MSG_CMSG_CLOEXEC 0
+
++#if defined(__FreeBSD__)
++#include <osreldate.h>
++#if defined(__FreeBSD_version) && __FreeBSD_version < 1300048
++#undef HAVE_MEMFD_CREATE
++#else
+ #define HAVE_MEMFD_CREATE
++#endif
++#endif
+
+ #define HAVE_MKOSTEMP
+
+@@ -25,7 +32,11 @@
+
+ #undef HAVE_SYS_PROCCTL_H
+
++#if defined(__FreeBSD__)
++#define HAVE_SYS_UCRED_H
++#else
+ #undef HAVE_SYS_UCRED_H
++#endif
+
+ #define HAVE_XUCRED_CR_PID 0
+
diff --git a/chromium/patches/patch-third__party_webrtc_BUILD.gn b/chromium/patches/patch-third__party_webrtc_BUILD.gn
index 627e536a5c..6ae435b155 100644
--- a/chromium/patches/patch-third__party_webrtc_BUILD.gn
+++ b/chromium/patches/patch-third__party_webrtc_BUILD.gn
@@ -1,9 +1,13 @@
$NetBSD$
---- third_party/webrtc/BUILD.gn.orig 2020-06-25 09:34:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/webrtc/BUILD.gn.orig 2024-07-24 02:47:04.823135100 +0000
+++ third_party/webrtc/BUILD.gn
-@@ -172,6 +172,9 @@ config("common_inherited_config") {
- if (is_linux) {
+@@ -219,6 +219,9 @@ config("common_inherited_config") {
+ if (is_linux || is_chromeos) {
defines += [ "WEBRTC_LINUX" ]
}
+ if (is_bsd) {
diff --git a/chromium/patches/patch-third__party_webrtc_audio_BUILD.gn b/chromium/patches/patch-third__party_webrtc_audio_BUILD.gn
deleted file mode 100644
index a543df1f82..0000000000
--- a/chromium/patches/patch-third__party_webrtc_audio_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/webrtc/audio/BUILD.gn.orig 2020-07-15 19:01:40.000000000 +0000
-+++ third_party/webrtc/audio/BUILD.gn
-@@ -252,7 +252,7 @@ if (rtc_include_tests) {
- data += [ "${root_out_dir}/low_bandwidth_audio_test" ]
- }
-
-- if (is_linux || is_android) {
-+ if (is_linux || is_android || is_bsd) {
- data += [
- "../tools_webrtc/audio_quality/linux/PolqaOem64",
- "../tools_webrtc/audio_quality/linux/pesq",
diff --git a/chromium/patches/patch-third__party_webrtc_examples_BUILD.gn b/chromium/patches/patch-third__party_webrtc_examples_BUILD.gn
deleted file mode 100644
index feea47678d..0000000000
--- a/chromium/patches/patch-third__party_webrtc_examples_BUILD.gn
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- third_party/webrtc/examples/BUILD.gn.orig 2020-07-15 19:01:41.000000000 +0000
-+++ third_party/webrtc/examples/BUILD.gn
-@@ -44,7 +44,7 @@ group("examples") {
- deps += [ ":AppRTCMobile" ]
- }
-
-- if (is_linux || is_win) {
-+ if (is_linux || is_win || is_bsd) {
- deps += [
- ":peerconnection_server",
- ":stunserver",
-@@ -642,7 +642,7 @@ if (is_ios || (is_mac && target_cpu != "
- }
- }
-
--if (is_linux || is_win) {
-+if (is_linux || is_win || is_bsd) {
- rtc_executable("peerconnection_client") {
- testonly = true
- sources = [
-@@ -686,7 +686,7 @@ if (is_linux || is_win) {
- configs += [ "//build/config/win:windowed" ]
- deps += [ "../media:rtc_media_base" ]
- }
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "peerconnection/client/linux/main.cc",
- "peerconnection/client/linux/main_wnd.cc",
diff --git a/chromium/patches/patch-third__party_webrtc_modules_audio__coding_BUILD.gn b/chromium/patches/patch-third__party_webrtc_modules_audio__coding_BUILD.gn
deleted file mode 100644
index 63f88bf2e8..0000000000
--- a/chromium/patches/patch-third__party_webrtc_modules_audio__coding_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/webrtc/modules/audio_coding/BUILD.gn.orig 2020-07-15 19:01:41.000000000 +0000
-+++ third_party/webrtc/modules/audio_coding/BUILD.gn
-@@ -482,7 +482,7 @@ rtc_library("isac_c") {
- "codecs/isac/main/source/transform.c",
- ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- libs = [ "m" ]
- }
-
diff --git a/chromium/patches/patch-third__party_webrtc_modules_audio__device_BUILD.gn b/chromium/patches/patch-third__party_webrtc_modules_audio__device_BUILD.gn
index f2564f9dca..827a467454 100644
--- a/chromium/patches/patch-third__party_webrtc_modules_audio__device_BUILD.gn
+++ b/chromium/patches/patch-third__party_webrtc_modules_audio__device_BUILD.gn
@@ -1,22 +1,17 @@
$NetBSD$
---- third_party/webrtc/modules/audio_device/BUILD.gn.orig 2020-07-15 19:01:41.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/webrtc/modules/audio_device/BUILD.gn.orig 2024-07-24 02:47:05.463197000 +0000
+++ third_party/webrtc/modules/audio_device/BUILD.gn
-@@ -259,7 +259,7 @@ rtc_library("audio_device_impl") {
+@@ -333,7 +333,7 @@ rtc_library("audio_device_impl") {
if (rtc_use_dummy_audio_file_devices) {
defines += [ "WEBRTC_DUMMY_FILE_DEVICES" ]
} else {
-- if (is_linux) {
-+ if (is_linux || is_bsd || is_bsd) {
+- if (is_linux || is_chromeos) {
++ if ((is_linux || is_chromeos) && !is_bsd) {
sources += [
"linux/alsasymboltable_linux.cc",
"linux/alsasymboltable_linux.h",
-@@ -387,7 +387,7 @@ if (rtc_include_tests) {
- "../utility",
- ]
- absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
-- if (is_linux || is_mac || is_win) {
-+ if (is_linux || is_mac || is_win || is_bsd) {
- sources += [ "audio_device_unittest.cc" ]
- }
- if (is_win) {
diff --git a/chromium/patches/patch-third__party_webrtc_modules_desktop__capture_BUILD.gn b/chromium/patches/patch-third__party_webrtc_modules_desktop__capture_BUILD.gn
deleted file mode 100644
index 637ca6a0d5..0000000000
--- a/chromium/patches/patch-third__party_webrtc_modules_desktop__capture_BUILD.gn
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- third_party/webrtc/modules/desktop_capture/BUILD.gn.orig 2020-07-15 19:01:41.000000000 +0000
-+++ third_party/webrtc/modules/desktop_capture/BUILD.gn
-@@ -140,7 +140,7 @@ if (rtc_include_tests) {
- "screen_drawer.h",
- ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [ "screen_drawer_linux.cc" ]
- }
-
-@@ -186,7 +186,7 @@ if (rtc_include_tests) {
- }
- }
-
--if (is_linux) {
-+if (is_linux || is_bsd) {
- if (rtc_use_pipewire) {
- pkg_config("gio") {
- packages = [
-@@ -357,7 +357,7 @@ rtc_library("desktop_capture_generic") {
- "window_capturer_linux.cc",
- ]
-
-- if (build_with_mozilla && is_linux) {
-+ if (build_with_mozilla && (is_linux || is_bsd)) {
- sources += [
- "app_capturer_linux.cc",
- "linux/app_capturer_x11.cc",
diff --git a/chromium/patches/patch-third__party_webrtc_modules_desktop__capture_linux_wayland_egl__dmabuf.cc b/chromium/patches/patch-third__party_webrtc_modules_desktop__capture_linux_wayland_egl__dmabuf.cc
new file mode 100644
index 0000000000..b5de97a23d
--- /dev/null
+++ b/chromium/patches/patch-third__party_webrtc_modules_desktop__capture_linux_wayland_egl__dmabuf.cc
@@ -0,0 +1,24 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/webrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc.orig 2024-07-24 02:47:05.547205200 +0000
++++ third_party/webrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc
+@@ -10,11 +10,15 @@
+
+ #include "modules/desktop_capture/linux/wayland/egl_dmabuf.h"
+
++#if !defined(WEBRTC_BSD)
+ #include <asm/ioctl.h>
++#endif
+ #include <dlfcn.h>
+ #include <fcntl.h>
+ #include <libdrm/drm_fourcc.h>
++#if !defined(WEBRTC_BSD)
+ #include <linux/types.h>
++#endif
+ #include <spa/param/video/format-utils.h>
+ #include <unistd.h>
+ #include <xf86drm.h>
diff --git a/chromium/patches/patch-third__party_webrtc_modules_desktop__capture_linux_x11_x__server__pixel__buffer.cc b/chromium/patches/patch-third__party_webrtc_modules_desktop__capture_linux_x11_x__server__pixel__buffer.cc
new file mode 100644
index 0000000000..3bcdbb9093
--- /dev/null
+++ b/chromium/patches/patch-third__party_webrtc_modules_desktop__capture_linux_x11_x__server__pixel__buffer.cc
@@ -0,0 +1,21 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/webrtc/modules/desktop_capture/linux/x11/x_server_pixel_buffer.cc.orig 2024-07-24 02:47:05.551205600 +0000
++++ third_party/webrtc/modules/desktop_capture/linux/x11/x_server_pixel_buffer.cc
+@@ -203,6 +203,12 @@ bool XServerPixelBuffer::Init(XAtomCache
+ void XServerPixelBuffer::InitShm(const XWindowAttributes& attributes) {
+ Visual* default_visual = attributes.visual;
+ int default_depth = attributes.depth;
++#if defined(__OpenBSD__)
++// pledge(2)
++ RTC_LOG(LS_WARNING) << "Unable to use shmget(2) while using pledge(2). "
++ "Performance may be degraded.";
++ return;
++#endif
+
+ int major, minor;
+ Bool have_pixmaps;
diff --git a/chromium/patches/patch-third__party_webrtc_modules_rtp__rtcp_source_forward__error__correction.cc b/chromium/patches/patch-third__party_webrtc_modules_rtp__rtcp_source_forward__error__correction.cc
deleted file mode 100644
index a88a654265..0000000000
--- a/chromium/patches/patch-third__party_webrtc_modules_rtp__rtcp_source_forward__error__correction.cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$NetBSD$
-
---- third_party/webrtc/modules/rtp_rtcp/source/forward_error_correction.cc.orig 2020-07-15 19:01:41.000000000 +0000
-+++ third_party/webrtc/modules/rtp_rtcp/source/forward_error_correction.cc
-@@ -13,6 +13,7 @@
- #include <string.h>
-
- #include <algorithm>
-+#include <cstdlib>
- #include <utility>
-
- #include "absl/algorithm/container.h"
diff --git a/chromium/patches/patch-third__party_webrtc_modules_video__capture_BUILD.gn b/chromium/patches/patch-third__party_webrtc_modules_video__capture_BUILD.gn
deleted file mode 100644
index 0795c53b9d..0000000000
--- a/chromium/patches/patch-third__party_webrtc_modules_video__capture_BUILD.gn
+++ /dev/null
@@ -1,29 +0,0 @@
-$NetBSD$
-
---- third_party/webrtc/modules/video_capture/BUILD.gn.orig 2020-07-15 19:01:41.000000000 +0000
-+++ third_party/webrtc/modules/video_capture/BUILD.gn
-@@ -54,7 +54,7 @@ if (!build_with_chromium) {
- "../../system_wrappers",
- ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources = [
- "linux/device_info_linux.cc",
- "linux/device_info_linux.h",
-@@ -106,13 +106,13 @@ if (!build_with_chromium) {
- rtc_test("video_capture_tests") {
- sources = [ "test/video_capture_unittest.cc" ]
- ldflags = []
-- if (is_linux || is_mac) {
-+ if (is_linux || is_mac || is_bsd) {
- ldflags += [
- "-lpthread",
- "-lm",
- ]
- }
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- ldflags += [
- "-lrt",
- "-lXext",
diff --git a/chromium/patches/patch-third__party_webrtc_rtc__base_BUILD.gn b/chromium/patches/patch-third__party_webrtc_rtc__base_BUILD.gn
deleted file mode 100644
index 895d86902d..0000000000
--- a/chromium/patches/patch-third__party_webrtc_rtc__base_BUILD.gn
+++ /dev/null
@@ -1,17 +0,0 @@
-$NetBSD$
-
---- third_party/webrtc/rtc_base/BUILD.gn.orig 2020-07-15 19:01:42.000000000 +0000
-+++ third_party/webrtc/rtc_base/BUILD.gn
-@@ -961,6 +961,12 @@ rtc_library("rtc_base") {
- ]
- }
-
-+ if (is_bsd) {
-+ libs += [
-+ "rt",
-+ ]
-+ }
-+
- if (is_ios) {
- libs += [
- "CFNetwork.framework",
diff --git a/chromium/patches/patch-third__party_webrtc_rtc__base_byte__order.h b/chromium/patches/patch-third__party_webrtc_rtc__base_byte__order.h
new file mode 100644
index 0000000000..5c2547a0ac
--- /dev/null
+++ b/chromium/patches/patch-third__party_webrtc_rtc__base_byte__order.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/webrtc/rtc_base/byte_order.h.orig 2024-07-24 02:47:05.739223700 +0000
++++ third_party/webrtc/rtc_base/byte_order.h
+@@ -90,6 +90,8 @@
+ #error WEBRTC_ARCH_BIG_ENDIAN or WEBRTC_ARCH_LITTLE_ENDIAN must be defined.
+ #endif // defined(WEBRTC_ARCH_LITTLE_ENDIAN)
+
++#elif defined(WEBRTC_BSD)
++#include <sys/endian.h>
+ #elif defined(WEBRTC_POSIX)
+ #include <endian.h>
+ #else
diff --git a/chromium/patches/patch-third__party_webrtc_rtc__base_ifaddrs__converter.h b/chromium/patches/patch-third__party_webrtc_rtc__base_ifaddrs__converter.h
deleted file mode 100644
index 3f5db0c976..0000000000
--- a/chromium/patches/patch-third__party_webrtc_rtc__base_ifaddrs__converter.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/webrtc/rtc_base/ifaddrs_converter.h.orig 2020-07-15 19:01:42.000000000 +0000
-+++ third_party/webrtc/rtc_base/ifaddrs_converter.h
-@@ -14,6 +14,8 @@
- #if defined(WEBRTC_ANDROID)
- #include "rtc_base/ifaddrs_android.h"
- #else
-+#include <sys/types.h>
-+#include <sys/socket.h>
- #include <ifaddrs.h>
- #endif // WEBRTC_ANDROID
-
diff --git a/chromium/patches/patch-third__party_webrtc_rtc__base_ip__address.cc b/chromium/patches/patch-third__party_webrtc_rtc__base_ip__address.cc
index 524efab987..f343ec246f 100644
--- a/chromium/patches/patch-third__party_webrtc_rtc__base_ip__address.cc
+++ b/chromium/patches/patch-third__party_webrtc_rtc__base_ip__address.cc
@@ -1,14 +1,18 @@
$NetBSD$
---- third_party/webrtc/rtc_base/ip_address.cc.orig 2020-07-15 19:01:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/webrtc/rtc_base/ip_address.cc.orig 2024-07-24 02:47:05.751225000 +0000
+++ third_party/webrtc/rtc_base/ip_address.cc
-@@ -11,6 +11,9 @@
- #if defined(WEBRTC_POSIX)
- #include <netinet/in.h>
+@@ -13,7 +13,8 @@
#include <sys/socket.h>
+
+ #include "absl/strings/string_view.h"
+-#ifdef OPENBSD
+#if defined(WEBRTC_BSD)
+#include <sys/types.h>
-+#endif
- #ifdef OPENBSD
#include <netinet/in_systm.h>
#endif
+ #ifndef __native_client__
diff --git a/chromium/patches/patch-third__party_webrtc_rtc__base_ip__address.h b/chromium/patches/patch-third__party_webrtc_rtc__base_ip__address.h
deleted file mode 100644
index 1fa274c9d0..0000000000
--- a/chromium/patches/patch-third__party_webrtc_rtc__base_ip__address.h
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
---- third_party/webrtc/rtc_base/ip_address.h.orig 2020-07-15 19:01:42.000000000 +0000
-+++ third_party/webrtc/rtc_base/ip_address.h
-@@ -17,6 +17,10 @@
- #include <netinet/in.h>
- #include <sys/socket.h>
- #endif
-+#if defined(WEBRTC_BSD)
-+#include <sys/types.h>
-+#include <sys/socket.h>
-+#endif
- #if defined(WEBRTC_WIN)
- #include <winsock2.h>
- #include <ws2tcpip.h>
diff --git a/chromium/patches/patch-third__party_webrtc_rtc__base_net__test__helpers.cc b/chromium/patches/patch-third__party_webrtc_rtc__base_net__test__helpers.cc
new file mode 100644
index 0000000000..910e2c6aac
--- /dev/null
+++ b/chromium/patches/patch-third__party_webrtc_rtc__base_net__test__helpers.cc
@@ -0,0 +1,16 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/webrtc/rtc_base/net_test_helpers.cc.orig 2024-07-24 02:47:05.755225400 +0000
++++ third_party/webrtc/rtc_base/net_test_helpers.cc
+@@ -21,6 +21,7 @@
+ #endif
+ #if defined(WEBRTC_POSIX) && !defined(__native_client__)
+ #include <arpa/inet.h>
++#include <sys/socket.h>
+ #if defined(WEBRTC_ANDROID)
+ #include "rtc_base/ifaddrs_android.h"
+ #else
diff --git a/chromium/patches/patch-third__party_webrtc_rtc__base_network.cc b/chromium/patches/patch-third__party_webrtc_rtc__base_network.cc
index b6f5db8914..cbe8985ae2 100644
--- a/chromium/patches/patch-third__party_webrtc_rtc__base_network.cc
+++ b/chromium/patches/patch-third__party_webrtc_rtc__base_network.cc
@@ -1,8 +1,12 @@
$NetBSD$
---- third_party/webrtc/rtc_base/network.cc.orig 2020-07-15 19:01:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/webrtc/rtc_base/network.cc.orig 2024-07-24 02:47:05.755225400 +0000
+++ third_party/webrtc/rtc_base/network.cc
-@@ -244,7 +244,12 @@ AdapterType GetAdapterTypeFromName(const
+@@ -290,7 +290,12 @@ AdapterType GetAdapterTypeFromName(absl:
}
#endif
@@ -14,4 +18,4 @@ $NetBSD$
+#endif
}
- NetworkManager::NetworkManager() {}
+ NetworkManager::EnumerationPermission NetworkManager::enumeration_permission()
diff --git a/chromium/patches/patch-third__party_webrtc_rtc__base_network.h b/chromium/patches/patch-third__party_webrtc_rtc__base_network.h
deleted file mode 100644
index b38ac13fbe..0000000000
--- a/chromium/patches/patch-third__party_webrtc_rtc__base_network.h
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
---- third_party/webrtc/rtc_base/network.h.orig 2020-07-15 19:01:42.000000000 +0000
-+++ third_party/webrtc/rtc_base/network.h
-@@ -27,6 +27,10 @@
- #include "rtc_base/third_party/sigslot/sigslot.h"
-
- #if defined(WEBRTC_POSIX)
-+#include <sys/types.h>
-+#endif
-+
-+#if defined(WEBRTC_POSIX)
- struct ifaddrs;
- #endif // defined(WEBRTC_POSIX)
-
diff --git a/chromium/patches/patch-third__party_webrtc_rtc__base_physical__socket__server.cc b/chromium/patches/patch-third__party_webrtc_rtc__base_physical__socket__server.cc
index f8e7e4a91f..86761e1cef 100644
--- a/chromium/patches/patch-third__party_webrtc_rtc__base_physical__socket__server.cc
+++ b/chromium/patches/patch-third__party_webrtc_rtc__base_physical__socket__server.cc
@@ -1,8 +1,21 @@
$NetBSD$
---- third_party/webrtc/rtc_base/physical_socket_server.cc.orig 2020-07-15 19:01:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/webrtc/rtc_base/physical_socket_server.cc.orig 2024-07-24 02:47:05.763226000 +0000
+++ third_party/webrtc/rtc_base/physical_socket_server.cc
-@@ -69,7 +69,7 @@ typedef void* SockOptArg;
+@@ -54,7 +54,7 @@
+ #include "rtc_base/time_utils.h"
+ #include "system_wrappers/include/field_trial.h"
+
+-#if defined(WEBRTC_LINUX)
++#if defined(WEBRTC_LINUX) && !defined(WEBRTC_BSD)
+ #include <linux/sockios.h>
+ #endif
+
+@@ -74,7 +74,7 @@ typedef void* SockOptArg;
#endif // WEBRTC_POSIX
@@ -11,7 +24,7 @@ $NetBSD$
int64_t GetSocketRecvTimestamp(int socket) {
struct timeval tv_ioctl;
-@@ -291,7 +291,7 @@ int PhysicalSocket::GetOption(Option opt
+@@ -329,7 +329,7 @@ int PhysicalSocket::GetOption(Option opt
return -1;
}
if (opt == OPT_DONTFRAGMENT) {
@@ -20,7 +33,7 @@ $NetBSD$
*value = (*value != IP_PMTUDISC_DONT) ? 1 : 0;
#endif
} else if (opt == OPT_DSCP) {
-@@ -309,7 +309,7 @@ int PhysicalSocket::SetOption(Option opt
+@@ -358,7 +358,7 @@ int PhysicalSocket::SetOption(Option opt
if (TranslateOption(opt, &slevel, &sopt) == -1)
return -1;
if (opt == OPT_DONTFRAGMENT) {
@@ -29,16 +42,79 @@ $NetBSD$
value = (value) ? IP_PMTUDISC_DO : IP_PMTUDISC_DONT;
#endif
} else if (opt == OPT_DSCP) {
-@@ -550,10 +550,10 @@ int PhysicalSocket::TranslateOption(Opti
+@@ -389,7 +389,7 @@ int PhysicalSocket::SetOption(Option opt
+ int PhysicalSocket::Send(const void* pv, size_t cb) {
+ int sent = DoSend(
+ s_, reinterpret_cast<const char*>(pv), static_cast<int>(cb),
+-#if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID)
++#if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) && !defined(WEBRTC_BSD)
+ // Suppress SIGPIPE. Without this, attempting to send on a socket whose
+ // other end is closed will result in a SIGPIPE signal being raised to
+ // our process, which by default will terminate the process, which we
+@@ -418,7 +418,7 @@ int PhysicalSocket::SendTo(const void* b
+ size_t len = addr.ToSockAddrStorage(&saddr);
+ int sent =
+ DoSendTo(s_, static_cast<const char*>(buffer), static_cast<int>(length),
+-#if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID)
++#if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) && !defined(WEBRTC_BSD)
+ // Suppress SIGPIPE. See above for explanation.
+ MSG_NOSIGNAL,
+ #else
+@@ -697,7 +697,7 @@ int PhysicalSocket::TranslateOption(Opti
*slevel = IPPROTO_IP;
*sopt = IP_DONTFRAGMENT;
break;
-#elif defined(WEBRTC_MAC) || defined(BSD) || defined(__native_client__)
-+#elif defined(WEBRTC_MAC) || defined(WEBRTC_BSD) || defined(__native_client__) && !defined(WEBRTC_BSD)
++#elif defined(WEBRTC_MAC) || defined(WEBRTC_BSD) || defined(__native_client__)
RTC_LOG(LS_WARNING) << "Socket::OPT_DONTFRAGMENT not supported.";
return -1;
--#elif defined(WEBRTC_POSIX)
-+#elif defined(WEBRTC_POSIX) ||
- *slevel = IPPROTO_IP;
- *sopt = IP_MTU_DISCOVER;
+ #elif defined(WEBRTC_POSIX)
+@@ -746,7 +746,7 @@ int PhysicalSocket::TranslateOption(Opti
+ return -1;
+ #endif
+ case OPT_RECV_ECN:
+-#if defined(WEBRTC_POSIX)
++#if defined(WEBRTC_POSIX) && defined(IP_RECVTOS)
+ if (family_ == AF_INET6) {
+ *slevel = IPPROTO_IPV6;
+ *sopt = IPV6_RECVTCLASS;
+@@ -766,10 +766,19 @@ int PhysicalSocket::TranslateOption(Opti
+ *sopt = SO_KEEPALIVE;
+ break;
+ case OPT_TCP_KEEPCNT:
++#if !defined(TCP_KEEPCNT)
++ RTC_LOG(LS_WARNING) << "Socket::OPT_TCP_KEEPCNT not supported.";
++ return -1;
++#else
+ *slevel = IPPROTO_TCP;
+ *sopt = TCP_KEEPCNT;
+ break;
++#endif
+ case OPT_TCP_KEEPIDLE:
++#if !defined(TCP_KEEPALIVE)
++ RTC_LOG(LS_WARNING) << "Socket::OPT_TCP_KEEPALIVE not supported.";
++ return -1;
++#else
+ *slevel = IPPROTO_TCP;
+ #if !defined(WEBRTC_MAC)
+ *sopt = TCP_KEEPIDLE;
+@@ -777,12 +786,18 @@ int PhysicalSocket::TranslateOption(Opti
+ *sopt = TCP_KEEPALIVE;
+ #endif
+ break;
++#endif
+ case OPT_TCP_KEEPINTVL:
++#if !defined(TCP_KEEPALIVE)
++ RTC_LOG(LS_WARNING) << "Socket::OPT_TCP_KEEPINTVL not supported.";
++ return -1;
++#else
+ *slevel = IPPROTO_TCP;
+ *sopt = TCP_KEEPINTVL;
+ break;
++#endif
+ case OPT_TCP_USER_TIMEOUT:
+-#if defined(WEBRTC_LINUX) || defined(WEBRTC_ANDROID)
++#if (defined(WEBRTC_LINUX) || defined(WEBRTC_ANDROID)) && defined(TCP_USER_TIMEOUT)
+ *slevel = IPPROTO_TCP;
+ *sopt = TCP_USER_TIMEOUT;
break;
diff --git a/chromium/patches/patch-third__party_webrtc_rtc__base_physical__socket__server.h b/chromium/patches/patch-third__party_webrtc_rtc__base_physical__socket__server.h
index d4cd1d3683..0810ee09ee 100644
--- a/chromium/patches/patch-third__party_webrtc_rtc__base_physical__socket__server.h
+++ b/chromium/patches/patch-third__party_webrtc_rtc__base_physical__socket__server.h
@@ -1,13 +1,17 @@
$NetBSD$
---- third_party/webrtc/rtc_base/physical_socket_server.h.orig 2020-07-15 19:01:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/webrtc/rtc_base/physical_socket_server.h.orig 2024-07-24 02:47:05.763226000 +0000
+++ third_party/webrtc/rtc_base/physical_socket_server.h
-@@ -11,7 +11,7 @@
- #ifndef RTC_BASE_PHYSICAL_SOCKET_SERVER_H_
- #define RTC_BASE_PHYSICAL_SOCKET_SERVER_H_
+@@ -18,7 +18,7 @@
+ #include "rtc_base/third_party/sigslot/sigslot.h"
--#if defined(WEBRTC_POSIX) && defined(WEBRTC_LINUX)
-+#if defined(WEBRTC_POSIX) && defined(WEBRTC_LINUX) && !defined(WEBRTC_BSD)
+ #if defined(WEBRTC_POSIX)
+-#if defined(WEBRTC_LINUX)
++#if defined(WEBRTC_LINUX) && !defined(WEBRTC_BSD)
+ // On Linux, use epoll.
#include <sys/epoll.h>
- #define WEBRTC_USE_EPOLL 1
- #endif
+
diff --git a/chromium/patches/patch-third__party_webrtc_rtc__base_platform__thread__types.cc b/chromium/patches/patch-third__party_webrtc_rtc__base_platform__thread__types.cc
index 31957248ed..6a0851121d 100644
--- a/chromium/patches/patch-third__party_webrtc_rtc__base_platform__thread__types.cc
+++ b/chromium/patches/patch-third__party_webrtc_rtc__base_platform__thread__types.cc
@@ -1,33 +1,43 @@
$NetBSD$
---- third_party/webrtc/rtc_base/platform_thread_types.cc.orig 2020-07-15 19:01:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/webrtc/rtc_base/platform_thread_types.cc.orig 2024-07-24 02:47:05.763226000 +0000
+++ third_party/webrtc/rtc_base/platform_thread_types.cc
-@@ -14,6 +14,10 @@
+@@ -11,7 +11,9 @@
+ #include "rtc_base/platform_thread_types.h"
+
+ #if defined(WEBRTC_LINUX)
++#if !defined(WEBRTC_BSD)
#include <sys/prctl.h>
++#endif
#include <sys/syscall.h>
#endif
-+#if defined(WEBRTC_BSD)
-+#include <lwp.h>
-+#include <pthread.h>
-+#endif
- #if defined(WEBRTC_WIN)
- #include "rtc_base/arraysize.h"
-@@ -41,6 +45,8 @@ PlatformThreadId CurrentThreadId() {
+@@ -44,6 +46,8 @@ PlatformThreadId CurrentThreadId() {
+ return gettid();
+ #elif defined(WEBRTC_FUCHSIA)
+ return zx_thread_self();
++#elif defined(WEBRTC_BSD)
++ return reinterpret_cast<uint64_t>(pthread_self());
+ #elif defined(WEBRTC_LINUX)
return syscall(__NR_gettid);
#elif defined(__EMSCRIPTEN__)
- return static_cast<PlatformThreadId>(pthread_self());
-+#elif defined(WEBRTC_BSD)
-+ return static_cast<PlatformThreadId>(_lwp_self());
- #else
- // Default implementation for nacl and solaris.
- return reinterpret_cast<PlatformThreadId>(pthread_self());
-@@ -109,6 +115,8 @@ void SetCurrentThreadName(const char* na
- prctl(PR_SET_NAME, reinterpret_cast<unsigned long>(name)); // NOLINT
- #elif defined(WEBRTC_MAC) || defined(WEBRTC_IOS)
- pthread_setname_np(name);
-+#elif defined(__NetBSD__)
-+ pthread_setname_np(pthread_self(), "%s", (void *)name);
+@@ -74,6 +78,7 @@ bool IsThreadRefEqual(const PlatformThre
+ }
+
+ void SetCurrentThreadName(const char* name) {
++#if !defined(WEBRTC_BSD)
+ #if defined(WEBRTC_WIN)
+ // The SetThreadDescription API works even if no debugger is attached.
+ // The names set with this API also show up in ETW traces. Very handy.
+@@ -121,6 +126,7 @@ void SetCurrentThreadName(const char* na
+ name, strlen(name));
+ RTC_DCHECK_EQ(status, ZX_OK);
#endif
++#endif
}
+ } // namespace rtc
diff --git a/chromium/patches/patch-third__party_webrtc_rtc__base_third__party_sigslot_sigslot.h b/chromium/patches/patch-third__party_webrtc_rtc__base_third__party_sigslot_sigslot.h
new file mode 100644
index 0000000000..951b0fbd12
--- /dev/null
+++ b/chromium/patches/patch-third__party_webrtc_rtc__base_third__party_sigslot_sigslot.h
@@ -0,0 +1,29 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/webrtc/rtc_base/third_party/sigslot/sigslot.h.orig 2024-07-24 02:47:05.779227700 +0000
++++ third_party/webrtc/rtc_base/third_party/sigslot/sigslot.h
+@@ -178,6 +178,10 @@ class multi_threaded_local {
+ #endif // _SIGSLOT_HAS_WIN32_THREADS
+
+ #ifdef _SIGSLOT_HAS_POSIX_THREADS
++#if defined(OS_FREEBSD)
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wthread-safety-analysis"
++#endif
+ // The multi threading policies only get compiled in if they are enabled.
+ class multi_threaded_global {
+ public:
+@@ -201,6 +205,9 @@ class multi_threaded_local {
+ private:
+ pthread_mutex_t m_mutex;
+ };
++#if defined(OS_FREEBSD)
++#pragma GCC diagnostic pop
++#endif
+ #endif // _SIGSLOT_HAS_POSIX_THREADS
+
+ template <class mt_policy>
diff --git a/chromium/patches/patch-third__party_webrtc_system__wrappers_BUILD.gn b/chromium/patches/patch-third__party_webrtc_system__wrappers_BUILD.gn
index 32fe793d88..ae593a806c 100644
--- a/chromium/patches/patch-third__party_webrtc_system__wrappers_BUILD.gn
+++ b/chromium/patches/patch-third__party_webrtc_system__wrappers_BUILD.gn
@@ -1,22 +1,17 @@
$NetBSD$
---- third_party/webrtc/system_wrappers/BUILD.gn.orig 2020-07-15 19:01:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/webrtc/system_wrappers/BUILD.gn.orig 2024-07-24 02:47:05.959245200 +0000
+++ third_party/webrtc/system_wrappers/BUILD.gn
-@@ -55,7 +55,7 @@ rtc_library("system_wrappers") {
- libs += [ "log" ]
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
+@@ -63,8 +63,6 @@ rtc_library("system_wrappers") {
if (!build_with_chromium) {
- deps += [ ":cpu_features_linux" ]
+ sources += [ "source/cpu_features_linux.cc" ]
}
-@@ -117,7 +117,7 @@ if (is_android && !build_with_mozilla) {
+-
+- libs += [ "rt" ]
}
- }
--if (is_linux) {
-+if (is_linux || is_bsd) {
- rtc_library("cpu_features_linux") {
- sources = [ "source/cpu_features_linux.c" ]
- deps = [
+ if (is_win) {
diff --git a/chromium/patches/patch-third__party_webrtc_test_BUILD.gn b/chromium/patches/patch-third__party_webrtc_test_BUILD.gn
deleted file mode 100644
index df63896de4..0000000000
--- a/chromium/patches/patch-third__party_webrtc_test_BUILD.gn
+++ /dev/null
@@ -1,25 +0,0 @@
-$NetBSD$
-
---- third_party/webrtc/test/BUILD.gn.orig 2020-07-15 19:01:42.000000000 +0000
-+++ third_party/webrtc/test/BUILD.gn
-@@ -956,17 +956,17 @@ rtc_library("test_renderer_generic") {
- ]
- deps += [ "../api:scoped_refptr" ]
- }
-- if (!(is_linux && rtc_use_x11) && !is_mac && !is_win) {
-+ if (!((is_linux || is_bsd) && rtc_use_x11) && !is_mac && !is_win) {
- sources += [ "null_platform_renderer.cc" ]
- }
-- if ((is_linux && rtc_use_x11) || is_mac) {
-+ if (((is_linux || is_bsd) && rtc_use_x11) || is_mac) {
- sources += [
- "gl/gl_renderer.cc",
- "gl/gl_renderer.h",
- ]
- }
-
-- if (is_linux && rtc_use_x11) {
-+ if ((is_linux || is_bsd) && rtc_use_x11) {
- sources += [
- "linux/glx_renderer.cc",
- "linux/glx_renderer.h",
diff --git a/chromium/patches/patch-third__party_webrtc_webrtc.gni b/chromium/patches/patch-third__party_webrtc_webrtc.gni
deleted file mode 100644
index bf9d207b35..0000000000
--- a/chromium/patches/patch-third__party_webrtc_webrtc.gni
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/webrtc/webrtc.gni.orig 2020-07-15 19:01:42.000000000 +0000
-+++ third_party/webrtc/webrtc.gni
-@@ -275,7 +275,7 @@ rtc_opus_dir = "//third_party/opus"
- # Desktop capturer is supported only on Windows, OSX and Linux.
- rtc_desktop_capture_supported =
- (is_win && current_os != "winuwp") || is_mac ||
-- (is_linux && (rtc_use_x11_extensions || rtc_use_pipewire))
-+ ((is_linux || is_bsd) && (rtc_use_x11_extensions || rtc_use_pipewire))
-
- ###############################################################################
- # Templates
diff --git a/chromium/patches/patch-third__party_widevine_cdm_widevine.gni b/chromium/patches/patch-third__party_widevine_cdm_widevine.gni
new file mode 100644
index 0000000000..a700bd318d
--- /dev/null
+++ b/chromium/patches/patch-third__party_widevine_cdm_widevine.gni
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/widevine/cdm/widevine.gni.orig 2024-07-24 02:45:08.647882000 +0000
++++ third_party/widevine/cdm/widevine.gni
+@@ -28,6 +28,8 @@ library_widevine_cdm_available =
+ (is_chromeos &&
+ (target_cpu == "x64" || target_cpu == "arm" || target_cpu == "arm64")) ||
+ (target_os == "linux" && target_cpu == "x64") ||
++ (target_os == "openbsd" && target_cpu == "x64") ||
++ (target_os == "freebsd" && target_cpu == "x64") ||
+ (target_os == "mac" && (target_cpu == "x64" || target_cpu == "arm64")) ||
+ (target_os == "win" &&
+ (target_cpu == "x86" || target_cpu == "x64" || target_cpu == "arm64"))
diff --git a/chromium/patches/patch-third__party_zlib_BUILD.gn b/chromium/patches/patch-third__party_zlib_BUILD.gn
index 10f9751336..cd87d84e6d 100644
--- a/chromium/patches/patch-third__party_zlib_BUILD.gn
+++ b/chromium/patches/patch-third__party_zlib_BUILD.gn
@@ -1,13 +1,37 @@
$NetBSD$
---- third_party/zlib/BUILD.gn.orig 2020-06-25 09:32:39.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/zlib/BUILD.gn.orig 2024-07-24 02:45:08.787895700 +0000
+++ third_party/zlib/BUILD.gn
-@@ -356,7 +356,7 @@ static_library("minizip") {
+@@ -128,7 +128,7 @@ if (use_arm_neon_optimizations) {
+ defines = [ "CRC32_ARMV8_CRC32" ]
+ if (is_android) {
+ defines += [ "ARMV8_OS_ANDROID" ]
+- } else if (is_linux || is_chromeos) {
++ } else if ((is_linux || is_chromeos) && !is_bsd) {
+ defines += [ "ARMV8_OS_LINUX" ]
+ } else if (is_mac) {
+ defines += [ "ARMV8_OS_MACOS" ]
+@@ -138,6 +138,10 @@ if (use_arm_neon_optimizations) {
+ defines += [ "ARMV8_OS_FUCHSIA" ]
+ } else if (is_win) {
+ defines += [ "ARMV8_OS_WINDOWS" ]
++ } else if (is_openbsd) {
++ defines += [ "ARMV8_OS_OPENBSD" ]
++ } else if (is_freebsd) {
++ defines += [ "ARMV8_OS_FREEBSD" ]
+ } else {
+ assert(false, "Unsupported ARM OS")
+ }
+@@ -413,7 +417,7 @@ static_library("minizip") {
]
}
-- if (is_mac || is_ios || is_android || is_nacl) {
-+ if (is_mac || is_ios || is_android || is_nacl || is_bsd) {
+- if (is_apple || is_android || is_nacl) {
++ if (is_apple || is_android || is_nacl || is_bsd) {
# Mac, Android and the BSDs don't have fopen64, ftello64, or fseeko64. We
# use fopen, ftell, and fseek instead on these systems.
defines = [ "USE_FILE32API" ]
diff --git a/chromium/patches/patch-third__party_zlib_cpu__features.c b/chromium/patches/patch-third__party_zlib_cpu__features.c
index 29a2ee6972..6bfab843e5 100644
--- a/chromium/patches/patch-third__party_zlib_cpu__features.c
+++ b/chromium/patches/patch-third__party_zlib_cpu__features.c
@@ -1,13 +1,57 @@
$NetBSD$
---- third_party/zlib/cpu_features.c.orig 2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- third_party/zlib/cpu_features.c.orig 2024-07-24 02:45:08.791896000 +0000
+++ third_party/zlib/cpu_features.c
-@@ -25,7 +25,7 @@ int ZLIB_INTERNAL x86_cpu_enable_simd =
-
+@@ -39,7 +39,8 @@ int ZLIB_INTERNAL riscv_cpu_enable_vclmu
#ifndef CPU_NO_SIMD
--#if defined(ARMV8_OS_ANDROID) || defined(ARMV8_OS_LINUX) || defined(ARMV8_OS_FUCHSIA)
-+#if defined(ARMV8_OS_ANDROID) || defined(ARMV8_OS_LINUX) || defined(ARMV8_OS_FUCHSIA) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+ #if defined(ARMV8_OS_ANDROID) || defined(ARMV8_OS_LINUX) || \
+- defined(ARMV8_OS_FUCHSIA) || defined(ARMV8_OS_IOS)
++ defined(ARMV8_OS_FUCHSIA) || defined(ARMV8_OS_IOS) || \
++ defined(ARMV8_OS_OPENBSD) || defined(ARMV8_OS_FREEBSD)
#include <pthread.h>
#endif
+@@ -56,6 +57,10 @@ int ZLIB_INTERNAL riscv_cpu_enable_vclmu
+ #include <windows.h>
+ #elif defined(ARMV8_OS_IOS)
+ #include <sys/sysctl.h>
++#elif defined(ARMV8_OS_OPENBSD)
++#include <sys/sysctl.h>
++#include <machine/cpu.h>
++#include <machine/armreg.h>
+ #elif !defined(_MSC_VER)
+ #include <pthread.h>
+ #else
+@@ -69,7 +74,8 @@ static void _cpu_check_features(void);
+ #if defined(ARMV8_OS_ANDROID) || defined(ARMV8_OS_LINUX) || \
+ defined(ARMV8_OS_MACOS) || defined(ARMV8_OS_FUCHSIA) || \
+ defined(X86_NOT_WINDOWS) || defined(ARMV8_OS_IOS) || \
+- defined(RISCV_RVV)
++ defined(RISCV_RVV) || defined(ARMV8_OS_OPENBSD) || \
++ defined(ARMV8_OS_FREEBSD)
+ #if !defined(ARMV8_OS_MACOS)
+ // _cpu_check_features() doesn't need to do anything on mac/arm since all
+ // features are known at build time, so don't call it.
+@@ -122,6 +128,17 @@ static void _cpu_check_features(void)
+ unsigned long features = getauxval(AT_HWCAP2);
+ arm_cpu_enable_crc32 = !!(features & HWCAP2_CRC32);
+ arm_cpu_enable_pmull = !!(features & HWCAP2_PMULL);
++#elif defined(ARMV8_OS_OPENBSD)
++ int isar0_mib[] = { CTL_MACHDEP, CPU_ID_AA64ISAR0 };
++ uint64_t cpu_id = 0;
++ size_t len = sizeof(cpu_id);
++ if (sysctl(isar0_mib, 2, &cpu_id, &len, NULL, 0) < 0)
++ return;
++ if (ID_AA64ISAR0_AES(cpu_id) >= ID_AA64ISAR0_AES_PMULL)
++ arm_cpu_enable_pmull = 1;
++
++ if (ID_AA64ISAR0_CRC32(cpu_id) >= ID_AA64ISAR0_CRC32_BASE)
++ arm_cpu_enable_crc32 = 1;
+ #elif defined(ARMV8_OS_FUCHSIA)
+ uint32_t features;
+ zx_status_t rc = zx_system_get_features(ZX_FEATURE_KIND_CPU, &features);
diff --git a/chromium/patches/patch-tools_binary__size_BUILD.gn b/chromium/patches/patch-tools_binary__size_BUILD.gn
deleted file mode 100644
index 7f6b64827a..0000000000
--- a/chromium/patches/patch-tools_binary__size_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- tools/binary_size/BUILD.gn.orig 2020-07-15 18:56:32.000000000 +0000
-+++ tools/binary_size/BUILD.gn
-@@ -21,7 +21,7 @@ python_library("sizes_py") {
- data_deps = [ "//third_party/catapult/tracing:convert_chart_json" ]
- }
-
--if (is_linux) {
-+if (is_linux || is_bsd) {
- group("caspian") {
- deps = [ "//tools/binary_size/libsupersize/caspian:cli($host_toolchain)" ]
- }
diff --git a/chromium/patches/patch-tools_binary__size_libsupersize_caspian_BUILD.gn b/chromium/patches/patch-tools_binary__size_libsupersize_caspian_BUILD.gn
deleted file mode 100644
index c5f39dace0..0000000000
--- a/chromium/patches/patch-tools_binary__size_libsupersize_caspian_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- tools/binary_size/libsupersize/caspian/BUILD.gn.orig 2020-07-15 18:56:32.000000000 +0000
-+++ tools/binary_size/libsupersize/caspian/BUILD.gn
-@@ -9,7 +9,7 @@ if (!defined(is_wasm)) {
- is_wasm = current_os == "wasm"
- }
-
--assert(is_linux || is_wasm)
-+assert(is_linux || is_wasm || is_bsd)
-
- source_set("caspian-lib") {
- sources = [
diff --git a/chromium/patches/patch-tools_generate__shim__headers_generate__shim__headers.py b/chromium/patches/patch-tools_generate__shim__headers_generate__shim__headers.py
new file mode 100644
index 0000000000..0194778de0
--- /dev/null
+++ b/chromium/patches/patch-tools_generate__shim__headers_generate__shim__headers.py
@@ -0,0 +1,27 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- tools/generate_shim_headers/generate_shim_headers.py.orig 2024-07-24 02:45:09.243939900 +0000
++++ tools/generate_shim_headers/generate_shim_headers.py
+@@ -18,7 +18,7 @@ import sys
+
+
+ SHIM_TEMPLATE = """
+-#if defined(OFFICIAL_BUILD)
++#if defined(GOOGLE_CHROME_BUILD)
+ #error shim headers must not be used in official builds!
+ #endif
+ """
+@@ -65,6 +65,9 @@ def GeneratorMain(argv):
+ if options.outputs:
+ yield os.path.join(target_directory, header_filename)
+ if options.generate:
++ source_file = os.path.join(root, header_filename)
++ if os.path.exists(source_file):
++ os.unlink(source_file)
+ header_path = os.path.join(target_directory, header_filename)
+ header_dir = os.path.dirname(header_path)
+ if not os.path.exists(header_dir):
diff --git a/chromium/patches/patch-tools_generate__stubs_rules.gni b/chromium/patches/patch-tools_generate__stubs_rules.gni
new file mode 100644
index 0000000000..69dc4a535a
--- /dev/null
+++ b/chromium/patches/patch-tools_generate__stubs_rules.gni
@@ -0,0 +1,16 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- tools/generate_stubs/rules.gni.orig 2024-07-24 02:45:09.243939900 +0000
++++ tools/generate_stubs/rules.gni
+@@ -110,7 +110,6 @@ template("generate_stubs") {
+ "${target_gen_dir}/${invoker.output_name}.cc",
+ "${target_gen_dir}/${invoker.output_name}.h",
+ ]
+- libs = [ "dl" ]
+ include_dirs = [ target_gen_dir ]
+ if (defined(invoker.configs)) {
+ configs += invoker.configs
diff --git a/chromium/patches/patch-tools_gn_build_build__linux.ninja.template b/chromium/patches/patch-tools_gn_build_build__linux.ninja.template
new file mode 100644
index 0000000000..7e8b543e26
--- /dev/null
+++ b/chromium/patches/patch-tools_gn_build_build__linux.ninja.template
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- tools/gn/build/build_linux.ninja.template.orig 2024-07-24 02:59:26.306955600 +0000
++++ tools/gn/build/build_linux.ninja.template
+@@ -5,7 +5,7 @@ rule cxx
+ deps = gcc
+
+ rule alink_thin
+- command = $ar rcsT $out $in
++ command = $ar rcs $out $in
+ description = AR $out
+
+ rule link
diff --git a/chromium/patches/patch-tools_gn_build_gen.py b/chromium/patches/patch-tools_gn_build_gen.py
index 1603f9fee3..9e2698c842 100644
--- a/chromium/patches/patch-tools_gn_build_gen.py
+++ b/chromium/patches/patch-tools_gn_build_gen.py
@@ -1,54 +1,40 @@
$NetBSD$
-https://gn-review.googlesource.com/c/gn/+/9700
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
---- tools/gn/build/gen.py.orig 2020-06-25 09:40:29.000000000 +0000
+--- tools/gn/build/gen.py.orig 2024-07-24 02:59:26.306955600 +0000
+++ tools/gn/build/gen.py
-@@ -45,6 +45,8 @@ class Platform(object):
- self._platform = 'fuchsia'
- elif self._platform.startswith('freebsd'):
- self._platform = 'freebsd'
-+ elif self._platform.startswith('netbsd'):
-+ self._platform = 'netbsd'
- elif self._platform.startswith('openbsd'):
- self._platform = 'openbsd'
- elif self._platform.startswith('haiku'):
-@@ -52,7 +54,7 @@ class Platform(object):
+@@ -94,6 +94,12 @@ class Platform(object):
+ def is_solaris(self):
+ return self._platform == 'solaris'
- @staticmethod
- def known_platforms():
-- return ['linux', 'darwin', 'mingw', 'msvc', 'aix', 'fuchsia', 'freebsd', 'openbsd', 'haiku']
-+ return ['linux', 'darwin', 'mingw', 'msvc', 'aix', 'fuchsia', 'freebsd', 'netbsd', 'openbsd', 'haiku']
-
- def platform(self):
- return self._platform
-@@ -78,8 +80,20 @@ class Platform(object):
- def is_haiku(self):
- return self._platform == 'haiku'
-
-+ def is_freebsd(self):
-+ return self._platform == 'freebsd'
-+
-+ def is_netbsd(self):
-+ return self._platform == 'netbsd'
-+
+ def is_openbsd(self):
+ return self._platform == 'openbsd'
+
-+ def is_bsd(self):
-+ return self._platform in ['freebsd', 'openbsd', 'netbsd']
++ def is_freebsd(self):
++ return self._platform == 'freebsd'
+
def is_posix(self):
-- return self._platform in ['linux', 'freebsd', 'darwin', 'aix', 'openbsd', 'haiku']
-+ return self._platform in ['linux', 'freebsd', 'darwin', 'aix', 'openbsd', 'haiku', 'netbsd']
+ return self._platform in ['linux', 'freebsd', 'darwin', 'aix', 'openbsd', 'haiku', 'solaris', 'msys', 'netbsd', 'serenity']
-
- def main(argv):
-@@ -203,6 +217,7 @@ def WriteGenericNinja(path, static_libra
+@@ -304,7 +310,7 @@ def WriteGenericNinja(path, static_libra
+ 'linux': 'build_linux.ninja.template',
+ 'freebsd': 'build_linux.ninja.template',
'aix': 'build_aix.ninja.template',
- 'openbsd': 'build_openbsd.ninja.template',
+- 'openbsd': 'build_openbsd.ninja.template',
++ 'openbsd': 'build_linux.ninja.template',
'haiku': 'build_haiku.ninja.template',
-+ 'netbsd': 'build_linux.ninja.template',
- }[platform.platform()])
+ 'solaris': 'build_linux.ninja.template',
+ 'netbsd': 'build_linux.ninja.template',
+@@ -540,6 +546,9 @@ def WriteGNNinja(path, platform, host, o
+ if platform.is_posix() and not platform.is_haiku():
+ ldflags.append('-pthread')
- with open(template_filename) as f:
++ if platform.is_openbsd():
++ libs.append('-lkvm')
++
+ if platform.is_mingw() or platform.is_msys():
+ cflags.extend(['-DUNICODE',
+ '-DNOMINMAX',
diff --git a/chromium/patches/patch-tools_gn_src_base_files_file__posix.cc b/chromium/patches/patch-tools_gn_src_base_files_file__posix.cc
new file mode 100644
index 0000000000..e2d42a2346
--- /dev/null
+++ b/chromium/patches/patch-tools_gn_src_base_files_file__posix.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- tools/gn/src/base/files/file_posix.cc.orig 2024-07-24 02:59:26.322957000 +0000
++++ tools/gn/src/base/files/file_posix.cc
+@@ -371,7 +371,7 @@ void File::DoInitialize(const FilePath&
+ bool File::Flush() {
+ DCHECK(IsValid());
+
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_BSD)
+ return !HANDLE_EINTR(fdatasync(file_.get()));
+ #else
+ return !HANDLE_EINTR(fsync(file_.get()));
diff --git a/chromium/patches/patch-tools_gn_src_base_files_file__util.h b/chromium/patches/patch-tools_gn_src_base_files_file__util.h
deleted file mode 100644
index 804738f393..0000000000
--- a/chromium/patches/patch-tools_gn_src_base_files_file__util.h
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
-https://gn-review.googlesource.com/c/gn/+/9700
-
---- tools/gn/src/base/files/file_util.h.orig 2020-07-15 19:07:32.000000000 +0000
-+++ tools/gn/src/base/files/file_util.h
-@@ -325,7 +325,7 @@ bool VerifyPathControlledByAdmin(const b
- // the directory |path|, in the number of FilePath::CharType, or -1 on failure.
- int GetMaximumPathComponentLength(const base::FilePath& path);
-
--#if defined(OS_LINUX) || defined(OS_AIX)
-+#if defined(OS_LINUX) || defined(OS_AIX) || defined(OS_BSD)
- // Broad categories of file systems as returned by statfs() on Linux.
- enum FileSystemType {
- FILE_SYSTEM_UNKNOWN, // statfs failed.
diff --git a/chromium/patches/patch-tools_gn_src_base_files_file__util__posix.cc b/chromium/patches/patch-tools_gn_src_base_files_file__util__posix.cc
deleted file mode 100644
index a2e9859d45..0000000000
--- a/chromium/patches/patch-tools_gn_src_base_files_file__util__posix.cc
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
-https://gn-review.googlesource.com/c/gn/+/9700
-
---- tools/gn/src/base/files/file_util_posix.cc.orig 2020-07-15 19:07:32.000000000 +0000
-+++ tools/gn/src/base/files/file_util_posix.cc
-@@ -210,7 +210,7 @@ bool ReplaceFile(const FilePath& from_pa
- }
-
- bool CreateLocalNonBlockingPipe(int fds[2]) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- return pipe2(fds, O_CLOEXEC | O_NONBLOCK) == 0;
- #else
- int raw_fds[2];
diff --git a/chromium/patches/patch-tools_gn_src_base_files_scoped__file.cc b/chromium/patches/patch-tools_gn_src_base_files_scoped__file.cc
deleted file mode 100644
index 47d8199426..0000000000
--- a/chromium/patches/patch-tools_gn_src_base_files_scoped__file.cc
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
-https://gn-review.googlesource.com/c/gn/+/9700
-
---- tools/gn/src/base/files/scoped_file.cc.orig 2020-07-15 19:07:32.000000000 +0000
-+++ tools/gn/src/base/files/scoped_file.cc
-@@ -31,7 +31,7 @@ void ScopedFDCloseTraits::Free(int fd) {
- int ret = IGNORE_EINTR(close(fd));
-
- #if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_FUCHSIA) || \
-- defined(OS_ANDROID)
-+ defined(OS_ANDROID) || defined(OS_BSD)
- // NB: Some file descriptors can return errors from close() e.g. network
- // filesystems such as NFS and Linux input devices. On Linux, macOS, and
- // Fuchsia's POSIX layer, errors from close other than EBADF do not indicate
diff --git a/chromium/patches/patch-tools_gn_src_gn_args.cc b/chromium/patches/patch-tools_gn_src_gn_args.cc
deleted file mode 100644
index 72aecc0a6d..0000000000
--- a/chromium/patches/patch-tools_gn_src_gn_args.cc
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
-https://gn-review.googlesource.com/c/gn/+/9700
-
---- tools/gn/src/gn/args.cc.orig 2020-06-25 09:40:29.000000000 +0000
-+++ tools/gn/src/gn/args.cc
-@@ -316,6 +316,8 @@ void Args::SetSystemVarsLocked(Scope* de
- os = "openbsd";
- #elif defined(OS_HAIKU)
- os = "haiku";
-+#elif defined(OS_NETBSD)
-+ os = "netbsd";
- #else
- #error Unknown OS type.
- #endif
diff --git a/chromium/patches/patch-tools_gn_src_gn_version.h b/chromium/patches/patch-tools_gn_src_gn_version.h
index 9aabe0149e..1ad704fcb9 100644
--- a/chromium/patches/patch-tools_gn_src_gn_version.h
+++ b/chromium/patches/patch-tools_gn_src_gn_version.h
@@ -1,19 +1,21 @@
$NetBSD$
---- tools/gn/src/gn/version.h.orig 2020-06-25 09:40:29.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- tools/gn/src/gn/version.h.orig 2024-07-24 02:59:26.378962500 +0000
+++ tools/gn/src/gn/version.h
-@@ -8,6 +8,14 @@
- #include <optional>
- #include <string>
+@@ -22,9 +22,9 @@ class Version {
+
+ static std::optional<Version> FromString(std::string s);
+
+- int major() const { return major_; }
+- int minor() const { return minor_; }
+- int patch() const { return patch_; }
++ int gmajor() const { return major_; }
++ int gminor() const { return minor_; }
++ int gpatch() const { return patch_; }
-+#if defined(major)
-+#undef major
-+#endif
-+
-+#if defined(minor)
-+#undef minor
-+#endif
-+
- // Represents a semantic version.
- class Version {
- public:
+ bool operator==(const Version& other) const;
+ bool operator<(const Version& other) const;
diff --git a/chromium/patches/patch-tools_gn_src_util_exe__path.cc b/chromium/patches/patch-tools_gn_src_util_exe__path.cc
index fd66a89e97..8ed603d3f1 100644
--- a/chromium/patches/patch-tools_gn_src_util_exe__path.cc
+++ b/chromium/patches/patch-tools_gn_src_util_exe__path.cc
@@ -1,34 +1,96 @@
$NetBSD$
-https://gn-review.googlesource.com/c/gn/+/9700
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
---- tools/gn/src/util/exe_path.cc.orig 2020-06-25 09:40:29.000000000 +0000
+--- tools/gn/src/util/exe_path.cc.orig 2024-07-24 02:59:26.382963000 +0000
+++ tools/gn/src/util/exe_path.cc
@@ -15,7 +15,7 @@
#include <windows.h>
#include "base/win/win_util.h"
--#elif defined(OS_FREEBSD)
-+#elif defined(OS_FREEBSD) || defined(OS_NETBSD)
+-#elif defined(OS_FREEBSD) || defined(OS_NETBSD)
++#elif defined(OS_FREEBSD) || defined(OS_NETBSD) || defined(OS_OPENBSD)
#include <limits.h>
#include <sys/sysctl.h>
#include <sys/types.h>
-@@ -67,6 +67,18 @@ base::FilePath GetExePath() {
- return base::FilePath(buf);
+@@ -26,6 +26,10 @@
+ #include <stdlib.h>
+ #endif
+
++#if defined(OS_OPENBSD)
++#include <kvm.h>
++#endif
++
+ #if defined(OS_MACOSX)
+
+ base::FilePath GetExePath() {
+@@ -104,6 +108,67 @@ base::FilePath GetExePath() {
+ return base::FilePath(raw);
}
-+#elif defined(OS_NETBSD)
++#elif defined(OS_OPENBSD)
+
+base::FilePath GetExePath() {
-+ int mib[] = {CTL_KERN, KERN_PROC_ARGS, getpid(), KERN_PROC_PATHNAME};
-+ char buf[PATH_MAX];
-+ size_t buf_size = PATH_MAX;
-+ if (sysctl(mib, 4, buf, &buf_size, nullptr, 0) == -1) {
-+ return base::FilePath();
++ struct kinfo_file *files;
++ kvm_t *kd = NULL;
++ char errbuf[_POSIX2_LINE_MAX];
++ char **retvalargs;
++#define MAXTOKENS 2
++ char *tokens[MAXTOKENS];
++ static char retval[PATH_MAX];
++ int cnt;
++ size_t len;
++ struct stat sb;
++ pid_t cpid = getpid();
++
++ int mib[] = { CTL_KERN, KERN_PROC_ARGS, cpid, KERN_PROC_ARGV };
++
++ if (sysctl(mib, 4, NULL, &len, NULL, 0) != -1) {
++ retvalargs = static_cast<char**>(malloc(len));
++ if (!retvalargs)
++ goto out;
++
++ if (sysctl(mib, 4, retvalargs, &len, NULL, 0) < 0)
++ goto out;
++
++ char *cr = strdup(retvalargs[0]);
++ free(retvalargs);
++
++ *tokens = strtok(cr, ":");
++ if (tokens[0] == NULL)
++ goto out;
++
++ if (realpath(tokens[0], retval) == NULL)
++ goto out;
++
++ if (stat(retval, &sb) < 0)
++ goto out;
++
++ if ((kd = kvm_openfiles(NULL, NULL, NULL, KVM_NO_FILES, errbuf)) == NULL)
++ goto out;
++
++ if ((files = kvm_getfiles(kd, KERN_FILE_BYPID, cpid,
++ sizeof(struct kinfo_file), &cnt)) == NULL) {
++ kvm_close(kd);
++ goto out;
++ }
++
++ for (int i = 0; i < cnt; i++) {
++ if (files[i].fd_fd == KERN_FILE_TEXT &&
++ files[i].va_fsid == static_cast<uint32_t>(sb.st_dev) &&
++ files[i].va_fileid == sb.st_ino) {
++ kvm_close(kd);
++ return base::FilePath(retval);
++ }
++ }
+ }
-+ return base::FilePath(buf);
++
++out:
++ return base::FilePath();
+}
+
- #elif defined(OS_HAIKU)
+ #elif defined(OS_ZOS)
base::FilePath GetExePath() {
diff --git a/chromium/patches/patch-tools_grit_grit__rule.gni b/chromium/patches/patch-tools_grit_grit__rule.gni
deleted file mode 100644
index 6908df17db..0000000000
--- a/chromium/patches/patch-tools_grit_grit__rule.gni
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- tools/grit/grit_rule.gni.orig 2020-07-15 18:56:33.000000000 +0000
-+++ tools/grit/grit_rule.gni
-@@ -104,7 +104,7 @@ if (enable_resource_whitelist_generation
-
- grit_defines = []
-
--if (is_mac || is_win || is_linux || is_ios) {
-+if (is_mac || is_win || is_linux || is_ios || is_bsd) {
- grit_defines += [
- "-D",
- "scale_factors=2x",
-@@ -199,7 +199,7 @@ if (current_toolchain != host_toolchain)
- "ios",
- ]
- }
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- grit_defines += [
- "-t",
- "linux2",
diff --git a/chromium/patches/patch-tools_grit_grit_node_base.py b/chromium/patches/patch-tools_grit_grit_node_base.py
new file mode 100644
index 0000000000..ce8fc1ccd7
--- /dev/null
+++ b/chromium/patches/patch-tools_grit_grit_node_base.py
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- tools/grit/grit/node/base.py.orig 2024-07-24 02:45:09.255941000 +0000
++++ tools/grit/grit/node/base.py
+@@ -498,7 +498,8 @@ class Node:
+ value = defs
+
+ elif name == 'is_linux':
+- value = target_platform == 'linux'
++ value = (target_platform == 'linux'
++ or 'bsd' in target_platform)
+ elif name == 'is_chromeos':
+ value = target_platform == 'chromeos'
+ elif name == 'is_macosx':
diff --git a/chromium/patches/patch-tools_ipc__fuzzer_ipc__fuzzer.gni b/chromium/patches/patch-tools_ipc__fuzzer_ipc__fuzzer.gni
deleted file mode 100644
index 7751482bc4..0000000000
--- a/chromium/patches/patch-tools_ipc__fuzzer_ipc__fuzzer.gni
+++ /dev/null
@@ -1,11 +0,0 @@
-$NetBSD$
-
---- tools/ipc_fuzzer/ipc_fuzzer.gni.orig 2020-07-15 18:56:33.000000000 +0000
-+++ tools/ipc_fuzzer/ipc_fuzzer.gni
-@@ -13,5 +13,5 @@ declare_args() {
- # (especially MSan).
- enable_ipc_fuzzer =
- is_clang && !is_component_build && !is_official_build && !is_chromecast &&
-- !using_sanitizer && (is_linux || is_mac || is_win) && !use_ozone
-+ !using_sanitizer && (is_linux || is_mac || is_win || is_bsd) && !use_ozone
- }
diff --git a/chromium/patches/patch-tools_json__schema__compiler_cpp__bundle__generator.py b/chromium/patches/patch-tools_json__schema__compiler_cpp__bundle__generator.py
new file mode 100644
index 0000000000..1b633f0f4c
--- /dev/null
+++ b/chromium/patches/patch-tools_json__schema__compiler_cpp__bundle__generator.py
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- tools/json_schema_compiler/cpp_bundle_generator.py.orig 2024-07-24 02:45:09.291944500 +0000
++++ tools/json_schema_compiler/cpp_bundle_generator.py
+@@ -149,7 +149,7 @@ class CppBundleGenerator(object):
+ # BUILDFLAG(IS_CHROMEOS) && BUILDFLAG(IS_CHROMEOS_LACROS).
+ ifdefs.append('BUILDFLAG(IS_CHROMEOS_LACROS)')
+ elif platform == Platforms.LINUX:
+- ifdefs.append('BUILDFLAG(IS_LINUX)')
++ ifdefs.append('BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)')
+ elif platform == Platforms.MAC:
+ ifdefs.append('BUILDFLAG(IS_MAC)')
+ elif platform == Platforms.WIN:
diff --git a/chromium/patches/patch-tools_json__schema__compiler_feature__compiler.py b/chromium/patches/patch-tools_json__schema__compiler_feature__compiler.py
index e1807cd091..283f65e356 100644
--- a/chromium/patches/patch-tools_json__schema__compiler_feature__compiler.py
+++ b/chromium/patches/patch-tools_json__schema__compiler_feature__compiler.py
@@ -1,12 +1,17 @@
$NetBSD$
---- tools/json_schema_compiler/feature_compiler.py.orig 2020-07-15 18:56:33.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- tools/json_schema_compiler/feature_compiler.py.orig 2024-07-24 02:45:09.295945000 +0000
+++ tools/json_schema_compiler/feature_compiler.py
-@@ -238,6 +238,8 @@ FEATURE_GRAMMAR = ({
+@@ -277,6 +277,9 @@ FEATURE_GRAMMAR = ({
'linux': 'Feature::LINUX_PLATFORM',
'mac': 'Feature::MACOSX_PLATFORM',
'win': 'Feature::WIN_PLATFORM',
-+ 'bsd': 'Feature::LINUX_PLATFORM',
++ 'openbsd': 'Feature::LINUX_PLATFORM',
++ 'freebsd': 'Feature::LINUX_PLATFORM',
+ 'netbsd': 'Feature::LINUX_PLATFORM',
}
}
diff --git a/chromium/patches/patch-tools_json__schema__compiler_model.py b/chromium/patches/patch-tools_json__schema__compiler_model.py
deleted file mode 100644
index 656c1bcca8..0000000000
--- a/chromium/patches/patch-tools_json__schema__compiler_model.py
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- tools/json_schema_compiler/model.py.orig 2020-07-15 18:56:33.000000000 +0000
-+++ tools/json_schema_compiler/model.py
-@@ -605,7 +605,7 @@ class Platforms(object):
- """
- CHROMEOS = _PlatformInfo("chromeos")
- CHROMEOS_TOUCH = _PlatformInfo("chromeos_touch")
-- LINUX = _PlatformInfo("linux")
-+ LINUX = _PlatformInfo("linux") or _PlatformInfo("bsd")
- MAC = _PlatformInfo("mac")
- WIN = _PlatformInfo("win")
-
diff --git a/chromium/patches/patch-tools_memory_partition__allocator_inspect__utils.h b/chromium/patches/patch-tools_memory_partition__allocator_inspect__utils.h
new file mode 100644
index 0000000000..bbf882891e
--- /dev/null
+++ b/chromium/patches/patch-tools_memory_partition__allocator_inspect__utils.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- tools/memory/partition_allocator/inspect_utils.h.orig 2024-07-24 02:45:09.323947700 +0000
++++ tools/memory/partition_allocator/inspect_utils.h
+@@ -61,7 +61,7 @@ class RemoteProcessMemoryReader {
+ const pid_t pid_;
+ bool is_valid_;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ base::ScopedFD mem_fd_;
+ #elif BUILDFLAG(IS_MAC)
+ task_t task_;
diff --git a/chromium/patches/patch-tools_perf_chrome__telemetry__build_BUILD.gn b/chromium/patches/patch-tools_perf_chrome__telemetry__build_BUILD.gn
index 9b1f0634f0..f12735128a 100644
--- a/chromium/patches/patch-tools_perf_chrome__telemetry__build_BUILD.gn
+++ b/chromium/patches/patch-tools_perf_chrome__telemetry__build_BUILD.gn
@@ -1,13 +1,26 @@
$NetBSD$
---- tools/perf/chrome_telemetry_build/BUILD.gn.orig 2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- tools/perf/chrome_telemetry_build/BUILD.gn.orig 2024-07-24 02:45:09.487963400 +0000
+++ tools/perf/chrome_telemetry_build/BUILD.gn
@@ -47,7 +47,7 @@ group("telemetry_chrome_test") {
data_deps += [ "//chrome:reorder_imports" ]
}
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
+- if (is_linux || is_chromeos) {
++ if ((is_linux || is_chromeos) && !is_bsd) {
data_deps += [ "//third_party/breakpad:dump_syms($host_toolchain)" ]
# CrOS currently has issues with the locally compiled version of
+@@ -178,7 +178,7 @@ group("telemetry_chrome_test_without_chr
+ ]
+
+ # Cr-Fuchsia doesn't support breakpad.
+- if (!is_win && !is_fuchsia) {
++ if (!is_win && !is_fuchsia && !is_bsd) {
+ data_deps += [
+ # This is defined for Windows, but is unused by Telemetry on
+ # Windows, and including it can have issues when cross-compiling
diff --git a/chromium/patches/patch-tools_protoc__wrapper_protoc__wrapper.py b/chromium/patches/patch-tools_protoc__wrapper_protoc__wrapper.py
new file mode 100644
index 0000000000..c9f636e218
--- /dev/null
+++ b/chromium/patches/patch-tools_protoc__wrapper_protoc__wrapper.py
@@ -0,0 +1,30 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- tools/protoc_wrapper/protoc_wrapper.py.orig 2024-07-24 02:45:09.767990600 +0000
++++ tools/protoc_wrapper/protoc_wrapper.py
+@@ -183,15 +183,19 @@ def main(argv):
+ if not options.exclude_imports:
+ protoc_cmd += ["--include_imports"]
+
++ nenv = os.environ.copy()
++ nenv["PATH"] = "${WRKOBJDIR}/bin:" + nenv["PATH"]
++ nenv["LD_LIBRARY_PATH"] = "${WRKSRC}/out/Release"
++
+ dependency_file_data = None
+ if options.descriptor_set_out and options.descriptor_set_dependency_file:
+ protoc_cmd += ['--dependency_out', options.descriptor_set_dependency_file]
+- ret = subprocess.call(protoc_cmd)
++ ret = subprocess.call(protoc_cmd, env=nenv)
+
+ with open(options.descriptor_set_dependency_file, 'rb') as f:
+ dependency_file_data = f.read().decode('utf-8')
+
+- ret = subprocess.call(protoc_cmd)
++ ret = subprocess.call(protoc_cmd, env=nenv)
+ if ret != 0:
+ if ret <= -100:
+ # Windows error codes such as 0xC0000005 and 0xC0000409 are much easier to
diff --git a/chromium/patches/patch-tools_v8__context__snapshot_BUILD.gn b/chromium/patches/patch-tools_v8__context__snapshot_BUILD.gn
new file mode 100644
index 0000000000..6779cea3e6
--- /dev/null
+++ b/chromium/patches/patch-tools_v8__context__snapshot_BUILD.gn
@@ -0,0 +1,46 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- tools/v8_context_snapshot/BUILD.gn.orig 2024-07-24 02:45:09.815995200 +0000
++++ tools/v8_context_snapshot/BUILD.gn
+@@ -36,6 +36,24 @@ buildflag_header("buildflags") {
+ ]
+ }
+
++action("run_paxctl_v8_context_snapshot_generator") {
++ deps = [ ":v8_context_snapshot_generator($v8_snapshot_toolchain)" ]
++
++ script = "//v8/tools/run-paxctl.py"
++ stamp = "$target_gen_dir/paxctl_stamp"
++ outputs = [ stamp ]
++
++ sources = []
++ data = []
++
++ args = [
++ rebase_path(stamp, root_build_dir),
++ "/usr/sbin/paxctl", "+m",
++ "./" + rebase_path(get_label_info(":v8_context_snapshot_generator", "root_out_dir") + "/v8_context_snapshot_generator",
++ root_build_dir),
++ ]
++}
++
+ if (use_v8_context_snapshot) {
+ if (v8_snapshot_toolchain == current_toolchain) {
+ action("generate_v8_context_snapshot") {
+@@ -52,7 +70,11 @@ if (use_v8_context_snapshot) {
+ "--output_file=$output_path",
+ ]
+
+- deps = [ ":v8_context_snapshot_generator" ]
++ if (target_os == "netbsd") {
++ deps = [ ":v8_context_snapshot_generator", ":run_paxctl_v8_context_snapshot_generator" ]
++ } else {
++ deps = [ ":v8_context_snapshot_generator" ]
++ }
+
+ # TODO(sky): figure out why this doesn't work on android cross compile.
+ # In the case of compiling for the snapshot `shlib_extension` is ".so"
diff --git a/chromium/patches/patch-tools_variations_fieldtrial__to__struct.py b/chromium/patches/patch-tools_variations_fieldtrial__to__struct.py
index 11f768a62f..6b0151f06c 100644
--- a/chromium/patches/patch-tools_variations_fieldtrial__to__struct.py
+++ b/chromium/patches/patch-tools_variations_fieldtrial__to__struct.py
@@ -1,13 +1,17 @@
$NetBSD$
---- tools/variations/fieldtrial_to_struct.py.orig 2020-07-15 18:56:33.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- tools/variations/fieldtrial_to_struct.py.orig 2024-07-24 02:45:09.815995200 +0000
+++ tools/variations/fieldtrial_to_struct.py
-@@ -40,6 +40,9 @@ _platforms = [
+@@ -41,6 +41,9 @@ _platforms = [
'linux',
'mac',
'windows',
-+ 'freebsd',
+ 'openbsd',
++ 'freebsd',
+ 'netbsd',
]
diff --git a/chromium/patches/patch-ui_aura_BUILD.gn b/chromium/patches/patch-ui_aura_BUILD.gn
deleted file mode 100644
index 6d04bf4562..0000000000
--- a/chromium/patches/patch-ui_aura_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/aura/BUILD.gn.orig 2020-07-15 18:56:33.000000000 +0000
-+++ ui/aura/BUILD.gn
-@@ -267,7 +267,7 @@ jumbo_static_library("test_support") {
- sources += [ "test/ui_controls_factory_ozone.cc" ]
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- deps += [ "//ui/platform_window/common" ]
- }
- }
diff --git a/chromium/patches/patch-ui_aura_client_drag__drop__client.h b/chromium/patches/patch-ui_aura_client_drag__drop__client.h
new file mode 100644
index 0000000000..84e421d86f
--- /dev/null
+++ b/chromium/patches/patch-ui_aura_client_drag__drop__client.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/aura/client/drag_drop_client.h.orig 2024-07-24 02:45:10.212033500 +0000
++++ ui/aura/client/drag_drop_client.h
+@@ -44,7 +44,7 @@ class AURA_EXPORT DragDropClient {
+ int allowed_operations,
+ ui::mojom::DragEventSource source) = 0;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Updates the drag image. An empty |image| may be used to hide a previously
+ // set non-empty drag image, and a non-empty |image| shows the drag image
+ // again if it was previously hidden.
diff --git a/chromium/patches/patch-ui_aura_screen__ozone.cc b/chromium/patches/patch-ui_aura_screen__ozone.cc
new file mode 100644
index 0000000000..53adf36725
--- /dev/null
+++ b/chromium/patches/patch-ui_aura_screen__ozone.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/aura/screen_ozone.cc.orig 2024-07-24 02:45:10.216034000 +0000
++++ ui/aura/screen_ozone.cc
+@@ -107,7 +107,7 @@ display::Display ScreenOzone::GetPrimary
+ return platform_screen_->GetPrimaryDisplay();
+ }
+
+-#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ ScreenOzone::ScreenSaverSuspenderOzone::ScreenSaverSuspenderOzone(
+ std::unique_ptr<ui::PlatformScreen::PlatformScreenSaverSuspender> suspender)
+ : suspender_(std::move(suspender)) {}
diff --git a/chromium/patches/patch-ui_aura_screen__ozone.h b/chromium/patches/patch-ui_aura_screen__ozone.h
new file mode 100644
index 0000000000..0bd02db8cf
--- /dev/null
+++ b/chromium/patches/patch-ui_aura_screen__ozone.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/aura/screen_ozone.h.orig 2024-07-24 02:45:10.216034000 +0000
++++ ui/aura/screen_ozone.h
+@@ -45,7 +45,7 @@ class AURA_EXPORT ScreenOzone : public d
+ display::Display GetDisplayMatching(
+ const gfx::Rect& match_rect) const override;
+ display::Display GetPrimaryDisplay() const override;
+-#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ std::unique_ptr<display::Screen::ScreenSaverSuspender> SuspendScreenSaver()
+ override;
+ #endif // BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
+@@ -74,7 +74,7 @@ class AURA_EXPORT ScreenOzone : public d
+ ui::PlatformScreen* platform_screen() { return platform_screen_.get(); }
+
+ private:
+-#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ class ScreenSaverSuspenderOzone
+ : public display::Screen::ScreenSaverSuspender {
+ public:
diff --git a/chromium/patches/patch-ui_base_BUILD.gn b/chromium/patches/patch-ui_base_BUILD.gn
deleted file mode 100644
index 7aca3f06d9..0000000000
--- a/chromium/patches/patch-ui_base_BUILD.gn
+++ /dev/null
@@ -1,108 +0,0 @@
-$NetBSD$
-
---- ui/base/BUILD.gn.orig 2020-06-25 09:32:19.000000000 +0000
-+++ ui/base/BUILD.gn
-@@ -354,7 +354,7 @@ jumbo_component("base") {
- "user_activity/user_activity_observer.h",
- ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "accelerators/menu_label_accelerator_util_linux.cc",
- "accelerators/menu_label_accelerator_util_linux.h",
-@@ -404,7 +404,7 @@ jumbo_component("base") {
- sources += [ "pointer/pointer_device_android.cc" ]
- } else if (is_ios) {
- sources += [ "pointer/pointer_device_ios.cc" ]
-- } else if (is_linux) {
-+ } else if (is_linux || is_bsd) {
- sources += [ "pointer/pointer_device_linux.cc" ]
- } else {
- # Empty implementation for all other cases.
-@@ -515,11 +515,11 @@ jumbo_component("base") {
- }
- }
-
-- if (use_aura && is_linux) {
-+ if (use_aura && (is_linux || is_bsd)) {
- sources += [ "resource/resource_bundle_auralinux.cc" ]
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- deps += [ "//third_party/fontconfig" ]
- }
-
-@@ -532,7 +532,7 @@ jumbo_component("base") {
- ]
- }
-
-- if (is_chromeos || (use_aura && is_linux && !use_x11)) {
-+ if (is_chromeos || (use_aura && (is_linux || is_bsd) && !use_x11)) {
- sources += [
- "dragdrop/os_exchange_data_provider_non_backed.cc",
- "dragdrop/os_exchange_data_provider_non_backed.h",
-@@ -635,7 +635,7 @@ component("features") {
- }
-
- # TODO(crbug.com/1091985): Support CrOS.
--if (is_win || is_mac || (is_linux && !is_chromeos)) {
-+if (is_win || is_mac || ((is_linux || is_bsd) && !is_chromeos)) {
- jumbo_static_library("pixel_diff_test_support") {
- testonly = true
- sources = [
-@@ -955,7 +955,7 @@ test("ui_base_unittests") {
- ]
- deps += [ "//components/system_media_controls:test_support" ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources +=
- [ "accelerators/menu_label_accelerator_util_linux_unittest.cc" ]
- }
-@@ -977,7 +977,7 @@ test("ui_base_unittests") {
- }
-
- # TODO(crbug.com/1091985): Support CrOS.
-- if (is_win || is_mac || (is_linux && !is_chromeos)) {
-+ if (is_win || is_mac || ((is_linux || is_bsd) && !is_chromeos)) {
- sources += [
- "test/skia_gold_matching_algorithm_unittest.cc",
- "test/skia_gold_pixel_diff_unittest.cc",
-@@ -1011,7 +1011,7 @@ test("ui_base_unittests") {
- ]
- deps += [ "//ui/base/ime/chromeos" ]
- }
-- if (is_linux && use_aura && !is_chromeos) {
-+ if ((is_linux || is_bsd) && use_aura && !is_chromeos) {
- if (use_x11 || use_ozone) {
- sources += [ "ime/linux/input_method_auralinux_unittest.cc" ]
- deps += [
-@@ -1113,7 +1113,7 @@ test("ui_base_unittests") {
- deps += [ "//ui/events:dom_keycode_converter" ]
- }
-
-- if (is_android || is_linux || is_mac || is_win || is_fuchsia) {
-+ if (is_android || is_linux || is_mac || is_win || is_fuchsia || is_bsd) {
- # TODO(brettw): We should be able to depend on //ui/resources:ui_test_pak
- # instead of depending directly on the non-test .pak files, but depending
- # on ui_test_pak seems to have no effect.
-@@ -1126,7 +1126,7 @@ test("ui_base_unittests") {
- "//ui/resources:ui_test_pak", # TODO(brettw): this does nothing.
- ]
- }
-- if (is_linux || is_win || is_fuchsia) {
-+ if (is_linux || is_win || is_fuchsia || is_bsd) {
- data += [
- # TODO(brettw): Remove these two lines.
- "$root_out_dir/ui/en-US.pak",
-@@ -1162,7 +1162,7 @@ if (is_win) {
- }
- }
-
--if (is_linux) {
-+if (is_linux || is_bsd) {
- # This source set defines linux wm role names and must not have any external
- # dependencies and be kept as minimal as possible.
- source_set("wm_role_names") {
diff --git a/chromium/patches/patch-ui_base_clipboard_clipboard__constants.cc b/chromium/patches/patch-ui_base_clipboard_clipboard__constants.cc
new file mode 100644
index 0000000000..3303382cc3
--- /dev/null
+++ b/chromium/patches/patch-ui_base_clipboard_clipboard__constants.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/clipboard/clipboard_constants.cc.orig 2024-07-24 02:45:10.232035600 +0000
++++ ui/base/clipboard/clipboard_constants.cc
+@@ -25,7 +25,7 @@ const char kMimeTypeOctetStream[] = "app
+ // Used for window dragging on some platforms.
+ const char kMimeTypeWindowDrag[] = "chromium/x-window-drag";
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ const char kMimeTypeLinuxUtf8String[] = "UTF8_STRING";
+ const char kMimeTypeLinuxString[] = "STRING";
+ const char kMimeTypeLinuxText[] = "TEXT";
diff --git a/chromium/patches/patch-ui_base_clipboard_clipboard__constants.h b/chromium/patches/patch-ui_base_clipboard_clipboard__constants.h
new file mode 100644
index 0000000000..aad105a9b6
--- /dev/null
+++ b/chromium/patches/patch-ui_base_clipboard_clipboard__constants.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/clipboard/clipboard_constants.h.orig 2024-07-24 02:45:10.232035600 +0000
++++ ui/base/clipboard/clipboard_constants.h
+@@ -48,7 +48,7 @@ extern const char kMimeTypeDataTransferE
+
+ // ----- LINUX & CHROMEOS & FUCHSIA MIME TYPES -----
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(UI_BASE_CLIPBOARD_TYPES)
+ extern const char kMimeTypeLinuxUtf8String[];
+ COMPONENT_EXPORT(UI_BASE_CLIPBOARD_TYPES)
diff --git a/chromium/patches/patch-ui_base_clipboard_clipboard__non__backed.cc b/chromium/patches/patch-ui_base_clipboard_clipboard__non__backed.cc
new file mode 100644
index 0000000000..140e9b6453
--- /dev/null
+++ b/chromium/patches/patch-ui_base_clipboard_clipboard__non__backed.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/clipboard/clipboard_non_backed.cc.orig 2024-07-24 02:45:10.232035600 +0000
++++ ui/base/clipboard/clipboard_non_backed.cc
+@@ -461,7 +461,7 @@ ClipboardNonBacked::ClipboardNonBacked()
+ // so create internal clipboards for platform supported clipboard buffers.
+ constexpr ClipboardBuffer kClipboardBuffers[] = {
+ ClipboardBuffer::kCopyPaste,
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ ClipboardBuffer::kSelection,
+ #endif
+ #if BUILDFLAG(IS_MAC)
diff --git a/chromium/patches/patch-ui_base_cursor_cursor__factory.cc b/chromium/patches/patch-ui_base_cursor_cursor__factory.cc
new file mode 100644
index 0000000000..2bdbb973c5
--- /dev/null
+++ b/chromium/patches/patch-ui_base_cursor_cursor__factory.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/cursor/cursor_factory.cc.orig 2024-07-24 02:45:10.240036200 +0000
++++ ui/base/cursor/cursor_factory.cc
+@@ -97,7 +97,7 @@ void CursorFactory::ObserveThemeChanges(
+ NOTIMPLEMENTED();
+ }
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+
+ // Returns a cursor name compatible with either X11 or the FreeDesktop.org
+ // cursor spec ([1] and [2]), followed by fallbacks that can work as
diff --git a/chromium/patches/patch-ui_base_cursor_cursor__factory.h b/chromium/patches/patch-ui_base_cursor_cursor__factory.h
new file mode 100644
index 0000000000..adf3ae6179
--- /dev/null
+++ b/chromium/patches/patch-ui_base_cursor_cursor__factory.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/cursor/cursor_factory.h.orig 2024-07-24 02:45:10.240036200 +0000
++++ ui/base/cursor/cursor_factory.h
+@@ -93,7 +93,7 @@ class COMPONENT_EXPORT(UI_BASE_CURSOR) C
+ base::ObserverList<CursorFactoryObserver>::Unchecked observers_;
+ };
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(UI_BASE_CURSOR)
+ std::vector<std::string> CursorNamesFromType(mojom::CursorType type);
+ #endif
diff --git a/chromium/patches/patch-ui_base_dragdrop_os__exchange__data__provider__factory.cc b/chromium/patches/patch-ui_base_dragdrop_os__exchange__data__provider__factory.cc
index e383056980..40eda0a8cd 100644
--- a/chromium/patches/patch-ui_base_dragdrop_os__exchange__data__provider__factory.cc
+++ b/chromium/patches/patch-ui_base_dragdrop_os__exchange__data__provider__factory.cc
@@ -1,22 +1,26 @@
$NetBSD$
---- ui/base/dragdrop/os_exchange_data_provider_factory.cc.orig 2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/dragdrop/os_exchange_data_provider_factory.cc.orig 2024-07-24 02:45:10.244036700 +0000
+++ ui/base/dragdrop/os_exchange_data_provider_factory.cc
-@@ -9,7 +9,7 @@
+@@ -7,7 +7,7 @@
+ #include "base/notreached.h"
+ #include "build/build_config.h"
- #if defined(USE_X11)
- #include "ui/base/dragdrop/os_exchange_data_provider_x11.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- #if defined(USE_OZONE)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
#include "ui/base/dragdrop/os_exchange_data_provider_factory_ozone.h"
- #endif
-@@ -27,7 +27,7 @@ std::unique_ptr<OSExchangeDataProvider>
+ #include "ui/base/dragdrop/os_exchange_data_provider_non_backed.h"
+ #elif BUILDFLAG(IS_APPLE)
+@@ -21,7 +21,7 @@ namespace ui {
+ // static
+ std::unique_ptr<OSExchangeDataProvider>
OSExchangeDataProviderFactory::CreateProvider() {
- #if defined(USE_X11)
- return std::make_unique<OSExchangeDataProviderX11>();
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- #if defined(USE_OZONE)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// The instance can be nullptr in tests that do not instantiate the platform,
// or on platforms that do not implement specific drag'n'drop. For them,
+ // falling back to the Aura provider should be fine.
diff --git a/chromium/patches/patch-ui_base_dragdrop_os__exchange__data__provider__non__backed.cc b/chromium/patches/patch-ui_base_dragdrop_os__exchange__data__provider__non__backed.cc
new file mode 100644
index 0000000000..dd4b702220
--- /dev/null
+++ b/chromium/patches/patch-ui_base_dragdrop_os__exchange__data__provider__non__backed.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/dragdrop/os_exchange_data_provider_non_backed.cc.orig 2024-07-24 02:45:10.244036700 +0000
++++ ui/base/dragdrop/os_exchange_data_provider_non_backed.cc
+@@ -99,7 +99,7 @@ void OSExchangeDataProviderNonBacked::Se
+
+ std::optional<std::u16string> OSExchangeDataProviderNonBacked::GetString()
+ const {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ if (HasFile()) {
+ // Various Linux file managers both pass a list of file:// URIs and set the
+ // string representation to the URI. We explicitly don't want to return use
diff --git a/chromium/patches/patch-ui_base_idle_BUILD.gn b/chromium/patches/patch-ui_base_idle_BUILD.gn
deleted file mode 100644
index 8dd6cd2dc1..0000000000
--- a/chromium/patches/patch-ui_base_idle_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/base/idle/BUILD.gn.orig 2020-07-15 18:56:49.000000000 +0000
-+++ ui/base/idle/BUILD.gn
-@@ -56,7 +56,7 @@ component("idle") {
- sources += [ "idle_fuchsia.cc" ]
- }
-
-- if (is_linux && !is_chromeos) {
-+ if ((is_linux || is_bsd) && !is_chromeos) {
- sources += [ "idle_linux.cc" ]
- }
-
diff --git a/chromium/patches/patch-ui_base_ime_dummy__text__input__client.cc b/chromium/patches/patch-ui_base_ime_dummy__text__input__client.cc
new file mode 100644
index 0000000000..d80826251c
--- /dev/null
+++ b/chromium/patches/patch-ui_base_ime_dummy__text__input__client.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/ime/dummy_text_input_client.cc.orig 2024-07-24 02:45:10.260038100 +0000
++++ ui/base/ime/dummy_text_input_client.cc
+@@ -159,7 +159,7 @@ bool DummyTextInputClient::ShouldDoLearn
+ return false;
+ }
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ bool DummyTextInputClient::SetCompositionFromExistingText(
+ const gfx::Range& range,
+ const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) {
diff --git a/chromium/patches/patch-ui_base_ime_dummy__text__input__client.h b/chromium/patches/patch-ui_base_ime_dummy__text__input__client.h
new file mode 100644
index 0000000000..fe69c4e92b
--- /dev/null
+++ b/chromium/patches/patch-ui_base_ime_dummy__text__input__client.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/ime/dummy_text_input_client.h.orig 2024-07-24 02:45:10.260038100 +0000
++++ ui/base/ime/dummy_text_input_client.h
+@@ -65,7 +65,7 @@ class DummyTextInputClient : public Text
+ ukm::SourceId GetClientSourceForMetrics() const override;
+ bool ShouldDoLearning() override;
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ bool SetCompositionFromExistingText(
+ const gfx::Range& range,
+ const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) override;
diff --git a/chromium/patches/patch-ui_base_ime_fake__text__input__client.cc b/chromium/patches/patch-ui_base_ime_fake__text__input__client.cc
new file mode 100644
index 0000000000..c5a03d7de8
--- /dev/null
+++ b/chromium/patches/patch-ui_base_ime_fake__text__input__client.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/ime/fake_text_input_client.cc.orig 2024-07-24 02:45:10.260038100 +0000
++++ ui/base/ime/fake_text_input_client.cc
+@@ -210,7 +210,7 @@ bool FakeTextInputClient::ShouldDoLearni
+ return false;
+ }
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ bool FakeTextInputClient::SetCompositionFromExistingText(
+ const gfx::Range& range,
+ const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) {
diff --git a/chromium/patches/patch-ui_base_ime_fake__text__input__client.h b/chromium/patches/patch-ui_base_ime_fake__text__input__client.h
new file mode 100644
index 0000000000..508c4dc891
--- /dev/null
+++ b/chromium/patches/patch-ui_base_ime_fake__text__input__client.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/ime/fake_text_input_client.h.orig 2024-07-24 02:45:10.260038100 +0000
++++ ui/base/ime/fake_text_input_client.h
+@@ -98,7 +98,7 @@ class FakeTextInputClient : public TextI
+ void SetTextEditCommandForNextKeyEvent(TextEditCommand command) override;
+ ukm::SourceId GetClientSourceForMetrics() const override;
+ bool ShouldDoLearning() override;
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ bool SetCompositionFromExistingText(
+ const gfx::Range& range,
+ const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) override;
diff --git a/chromium/patches/patch-ui_base_ime_init_input__method__initializer.cc b/chromium/patches/patch-ui_base_ime_init_input__method__initializer.cc
index a9ff0249ff..173e298ef5 100644
--- a/chromium/patches/patch-ui_base_ime_init_input__method__initializer.cc
+++ b/chromium/patches/patch-ui_base_ime_init_input__method__initializer.cc
@@ -1,40 +1,35 @@
$NetBSD$
---- ui/base/ime/init/input_method_initializer.cc.orig 2020-07-15 18:56:33.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/ime/init/input_method_initializer.cc.orig 2024-07-24 02:45:10.264038600 +0000
+++ ui/base/ime/init/input_method_initializer.cc
@@ -10,7 +10,7 @@
+ #include "build/chromeos_buildflags.h"
- #if defined(OS_CHROMEOS)
- #include "ui/base/ime/chromeos/ime_bridge.h"
--#elif defined(USE_AURA) && defined(OS_LINUX)
-+#elif defined(USE_AURA) && (defined(OS_LINUX) || defined(OS_BSD))
- #include "base/check.h"
- // TODO(crbug.com/1085700): Remove nogncheck when we can build both Ozone
- // Wayland and X11 on Linux codesearch-gen bots.
-@@ -22,7 +22,7 @@
-
- namespace {
+ #if !BUILDFLAG(IS_CHROMEOS_ASH) && defined(USE_AURA) && \
+- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
+ #include "ui/base/ime/linux/fake_input_method_context.h"
+ #include "ui/base/ime/linux/linux_input_method_context_factory.h"
+ #elif BUILDFLAG(IS_WIN)
+@@ -33,7 +33,7 @@ void ShutdownInputMethod() {
+ }
--#if !defined(OS_CHROMEOS) && defined(USE_AURA) && defined(OS_LINUX)
-+#if !defined(OS_CHROMEOS) && defined(USE_AURA) && (defined(OS_LINUX) || defined(OS_BSD))
- const ui::LinuxInputMethodContextFactory*
- g_linux_input_method_context_factory_for_testing;
- #endif
-@@ -50,7 +50,7 @@ void ShutdownInputMethod() {
void InitializeInputMethodForTesting() {
- #if defined(OS_CHROMEOS)
- IMEBridge::Initialize();
--#elif defined(USE_AURA) && defined(OS_LINUX)
-+#elif defined(USE_AURA) && (defined(OS_LINUX) || defined(OS_BSD))
- if (!g_linux_input_method_context_factory_for_testing)
- g_linux_input_method_context_factory_for_testing =
- new FakeInputMethodContextFactory();
-@@ -69,7 +69,7 @@ void InitializeInputMethodForTesting() {
+-#if defined(USE_AURA) && BUILDFLAG(IS_LINUX)
++#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD))
+ GetInputMethodContextFactoryForTest() =
+ base::BindRepeating([](LinuxInputMethodContextDelegate* delegate)
+ -> std::unique_ptr<LinuxInputMethodContext> {
+@@ -46,7 +46,7 @@ void InitializeInputMethodForTesting() {
+
void ShutdownInputMethodForTesting() {
- #if defined(OS_CHROMEOS)
- IMEBridge::Shutdown();
--#elif defined(USE_AURA) && defined(OS_LINUX)
-+#elif defined(USE_AURA) && (defined(OS_LINUX) || defined(OS_BSD))
- const LinuxInputMethodContextFactory* factory =
- LinuxInputMethodContextFactory::instance();
- CHECK(!factory || factory == g_linux_input_method_context_factory_for_testing)
+ #if !BUILDFLAG(IS_CHROMEOS_ASH) && defined(USE_AURA) && \
+- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
+ // The function owns the factory (as a static variable that's returned by
+ // reference), so setting this to an empty factory will free the old one.
+ GetInputMethodContextFactoryForTest() = LinuxInputMethodContextFactory();
diff --git a/chromium/patches/patch-ui_base_ime_linux_BUILD.gn b/chromium/patches/patch-ui_base_ime_linux_BUILD.gn
deleted file mode 100644
index 3aae0fcadc..0000000000
--- a/chromium/patches/patch-ui_base_ime_linux_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/base/ime/linux/BUILD.gn.orig 2020-06-25 09:32:19.000000000 +0000
-+++ ui/base/ime/linux/BUILD.gn
-@@ -12,7 +12,7 @@ import("//build/config/linux/pangocairo/
- # both ozone and x11 on Linux yet, but when we can we should remove this.
- # TODO(crbug.com/1085700): Remove || enable_kythe_annotations here.
- import("//build/toolchain/kythe.gni")
--assert((is_linux && !is_chromeos) || enable_kythe_annotations)
-+assert((is_linux && !is_chromeos) || is_bsd || enable_kythe_annotations)
-
- jumbo_component("linux") {
- output_name = "ui_base_ime_linux"
diff --git a/chromium/patches/patch-ui_base_ime_linux_linux__input__method__context__factory.cc b/chromium/patches/patch-ui_base_ime_linux_linux__input__method__context__factory.cc
new file mode 100644
index 0000000000..de189277aa
--- /dev/null
+++ b/chromium/patches/patch-ui_base_ime_linux_linux__input__method__context__factory.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/ime/linux/linux_input_method_context_factory.cc.orig 2024-07-24 02:45:10.264038600 +0000
++++ ui/base/ime/linux/linux_input_method_context_factory.cc
+@@ -9,7 +9,7 @@
+ #include "build/build_config.h"
+ #include "ui/base/ime/linux/fake_input_method_context.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/linux/linux_ui.h"
+ #include "ui/linux/linux_ui_delegate.h"
+ #endif
+@@ -32,7 +32,7 @@ std::unique_ptr<LinuxInputMethodContext>
+ if (auto factory = GetInputMethodContextFactoryForTest())
+ return factory.Run(delegate);
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Give the toolkit a chance to create the context.
+ if (auto* linux_ui = LinuxUi::instance()) {
+ if (auto context = linux_ui->CreateInputMethodContext(delegate))
diff --git a/chromium/patches/patch-ui_base_ime_text__input__client.h b/chromium/patches/patch-ui_base_ime_text__input__client.h
new file mode 100644
index 0000000000..1cf389de5d
--- /dev/null
+++ b/chromium/patches/patch-ui_base_ime_text__input__client.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/ime/text_input_client.h.orig 2024-07-24 02:45:10.268039000 +0000
++++ ui/base/ime/text_input_client.h
+@@ -266,7 +266,7 @@ class COMPONENT_EXPORT(UI_BASE_IME) Text
+ // fields that are considered 'private' (e.g. in incognito tabs).
+ virtual bool ShouldDoLearning() = 0;
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Start composition over a given UTF-16 code range from existing text. This
+ // should only be used for composition scenario when IME wants to start
+ // composition on existing text. Returns whether the operation was successful.
diff --git a/chromium/patches/patch-ui_base_resource_resource__bundle.cc b/chromium/patches/patch-ui_base_resource_resource__bundle.cc
index 4133ab24ef..a5ab0a98ed 100644
--- a/chromium/patches/patch-ui_base_resource_resource__bundle.cc
+++ b/chromium/patches/patch-ui_base_resource_resource__bundle.cc
@@ -1,22 +1,17 @@
$NetBSD$
---- ui/base/resource/resource_bundle.cc.orig 2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/resource/resource_bundle.cc.orig 2024-07-24 02:45:10.288040900 +0000
+++ ui/base/resource/resource_bundle.cc
-@@ -841,7 +841,7 @@ void ResourceBundle::ReloadFonts() {
+@@ -926,7 +926,7 @@ void ResourceBundle::ReloadFonts() {
}
- ScaleFactor ResourceBundle::GetMaxScaleFactor() const {
--#if defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
+ ResourceScaleFactor ResourceBundle::GetMaxResourceScaleFactor() const {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
return max_scale_factor_;
#else
- return GetSupportedScaleFactors().back();
-@@ -894,7 +894,7 @@ void ResourceBundle::InitSharedInstance(
- // On platforms other than iOS, 100P is always a supported scale factor.
- // For Windows we have a separate case in this function.
- supported_scale_factors.push_back(SCALE_FACTOR_100P);
--#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_WIN)
-+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_WIN) || defined(OS_BSD)
- supported_scale_factors.push_back(SCALE_FACTOR_200P);
- #endif
- #endif
+ return GetMaxSupportedResourceScaleFactor();
diff --git a/chromium/patches/patch-ui_base_resource_resource__bundle__netbsd.cc b/chromium/patches/patch-ui_base_resource_resource__bundle__netbsd.cc
deleted file mode 100644
index ff4b1df51b..0000000000
--- a/chromium/patches/patch-ui_base_resource_resource__bundle__netbsd.cc
+++ /dev/null
@@ -1,26 +0,0 @@
-$NetBSD$
-
---- ui/base/resource/resource_bundle_netbsd.cc.orig 2020-07-18 12:14:11.789023668 +0000
-+++ ui/base/resource/resource_bundle_netbsd.cc
-@@ -0,0 +1,21 @@
-+// Copyright 2017 The Chromium Authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+#include "ui/base/resource/resource_bundle.h"
-+
-+#include "base/logging.h"
-+#include "base/macros.h"
-+#include "ui/gfx/image/image.h"
-+
-+namespace ui {
-+
-+void ResourceBundle::LoadCommonResources() {
-+ LoadChromeResources();
-+}
-+
-+gfx::Image& ResourceBundle::GetNativeImageNamed(int resource_id) {
-+ return GetImageNamed(resource_id);
-+}
-+
-+} // namespace ui
diff --git a/chromium/patches/patch-ui_base_test_skia__gold__pixel__diff.cc b/chromium/patches/patch-ui_base_test_skia__gold__pixel__diff.cc
new file mode 100644
index 0000000000..533199048b
--- /dev/null
+++ b/chromium/patches/patch-ui_base_test_skia__gold__pixel__diff.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/test/skia_gold_pixel_diff.cc.orig 2024-07-24 02:45:10.296041700 +0000
++++ ui/base/test/skia_gold_pixel_diff.cc
+@@ -115,7 +115,7 @@ const char* GetPlatformName() {
+ return "macOS";
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return "linux";
+ #elif BUILDFLAG(IS_CHROMEOS_LACROS)
+ return "lacros";
diff --git a/chromium/patches/patch-ui_base_test_ui__controls.h b/chromium/patches/patch-ui_base_test_ui__controls.h
new file mode 100644
index 0000000000..40c57092e3
--- /dev/null
+++ b/chromium/patches/patch-ui_base_test_ui__controls.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/test/ui_controls.h.orig 2024-07-24 02:45:10.296041700 +0000
++++ ui/base/test/ui_controls.h
+@@ -186,7 +186,7 @@ bool SendTouchEventsNotifyWhenDone(int a
+ base::OnceClosure task);
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Forces the platform implementation to use screen coordinates, even if they're
+ // not really available, the next time that ui_controls::SendMouseMove() or
+ // ui_controls::SendMouseMoveNotifyWhenDone() is called, or some other method
diff --git a/chromium/patches/patch-ui_base_ui__base__features.cc b/chromium/patches/patch-ui_base_ui__base__features.cc
index 1c5ce13a37..772ac4183d 100644
--- a/chromium/patches/patch-ui_base_ui__base__features.cc
+++ b/chromium/patches/patch-ui_base_ui__base__features.cc
@@ -1,31 +1,26 @@
$NetBSD$
---- ui/base/ui_base_features.cc.orig 2020-07-15 18:56:33.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/ui_base_features.cc.orig 2024-07-24 02:45:10.296041700 +0000
+++ ui/base/ui_base_features.cc
-@@ -98,7 +98,7 @@ const base::Feature kCompositorThreadedS
- // native apps on Windows.
- const base::Feature kExperimentalFlingAnimation {
- "ExperimentalFlingAnimation",
--#if defined(OS_WIN) || (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+#if defined(OS_WIN) || ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
- base::FEATURE_ENABLED_BY_DEFAULT
- #else
- base::FEATURE_DISABLED_BY_DEFAULT
-@@ -130,7 +130,7 @@ const base::Feature kPrecisionTouchpadLo
- "PrecisionTouchpadLogging", base::FEATURE_DISABLED_BY_DEFAULT};
- #endif // defined(OS_WIN)
-
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
- // Enables stylus appearing as touch when in contact with digitizer.
- const base::Feature kDirectManipulationStylus = {
- "DirectManipulationStylus",
-@@ -179,7 +179,7 @@ bool IsCSSColorSchemeUARenderingEnabled(
- // Mac launch bug.
- const base::Feature kFormControlsRefresh = {"FormControlsRefresh",
- #if defined(OS_WIN) || defined(OS_CHROMEOS) || defined(OS_LINUX) || \
-- defined(OS_MACOSX)
-+ defined(OS_MACOSX) || defined(OS_BSD)
- base::FEATURE_ENABLED_BY_DEFAULT
+@@ -245,7 +245,7 @@ BASE_FEATURE(kExperimentalFlingAnimation
+ "ExperimentalFlingAnimation",
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_WIN) || \
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) || \
+ (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_ASH) && \
+ !BUILDFLAG(IS_CHROMEOS_LACROS))
+ base::FEATURE_ENABLED_BY_DEFAULT
+@@ -339,7 +339,7 @@ bool IsForcedColorsEnabled() {
+ BASE_FEATURE(kEyeDropper,
+ "EyeDropper",
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ base::FEATURE_ENABLED_BY_DEFAULT
#else
- base::FEATURE_DISABLED_BY_DEFAULT
+ base::FEATURE_DISABLED_BY_DEFAULT
diff --git a/chromium/patches/patch-ui_base_ui__base__features.h b/chromium/patches/patch-ui_base_ui__base__features.h
deleted file mode 100644
index 7705ae5d13..0000000000
--- a/chromium/patches/patch-ui_base_ui__base__features.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/base/ui_base_features.h.orig 2020-07-15 18:56:33.000000000 +0000
-+++ ui/base/ui_base_features.h
-@@ -60,7 +60,7 @@ COMPONENT_EXPORT(UI_BASE_FEATURES) exter
- COMPONENT_EXPORT(UI_BASE_FEATURES) bool IsUsingWMPointerForTouch();
- #endif // defined(OS_WIN)
-
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
- COMPONENT_EXPORT(UI_BASE_FEATURES)
- extern const base::Feature kDirectManipulationStylus;
- #endif // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
diff --git a/chromium/patches/patch-ui_base_ui__base__switches.cc b/chromium/patches/patch-ui_base_ui__base__switches.cc
new file mode 100644
index 0000000000..103633e6e1
--- /dev/null
+++ b/chromium/patches/patch-ui_base_ui__base__switches.cc
@@ -0,0 +1,24 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/ui_base_switches.cc.orig 2024-07-24 02:45:10.296041700 +0000
++++ ui/base/ui_base_switches.cc
+@@ -31,13 +31,13 @@ const char kShowMacOverlayBorders[] = "s
+ const char kEnableResourcesFileSharing[] = "enable-resources-file-sharing";
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Specifies system font family name. Improves determenism when rendering
+ // pages in headless mode.
+ const char kSystemFontFamily[] = "system-font-family";
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Specify the toolkit used to construct the Linux GUI.
+ const char kUiToolkitFlag[] = "ui-toolkit";
+ #endif
diff --git a/chromium/patches/patch-ui_base_ui__base__switches.h b/chromium/patches/patch-ui_base_ui__base__switches.h
new file mode 100644
index 0000000000..89caa06650
--- /dev/null
+++ b/chromium/patches/patch-ui_base_ui__base__switches.h
@@ -0,0 +1,22 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/ui_base_switches.h.orig 2024-07-24 02:45:10.296041700 +0000
++++ ui/base/ui_base_switches.h
+@@ -27,11 +27,11 @@ COMPONENT_EXPORT(UI_BASE) extern const c
+ COMPONENT_EXPORT(UI_BASE) extern const char kEnableResourcesFileSharing[];
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(UI_BASE) extern const char kSystemFontFamily[];
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(UI_BASE) extern const char kUiToolkitFlag[];
+ #endif
+
diff --git a/chromium/patches/patch-ui_base_ui__features.gni b/chromium/patches/patch-ui_base_ui__features.gni
deleted file mode 100644
index 2bbdce5eb8..0000000000
--- a/chromium/patches/patch-ui_base_ui__features.gni
+++ /dev/null
@@ -1,21 +0,0 @@
-$NetBSD$
-
---- ui/base/ui_features.gni.orig 2020-07-15 18:56:33.000000000 +0000
-+++ ui/base/ui_features.gni
-@@ -6,13 +6,13 @@ import("//build/config/ui.gni")
-
- declare_args() {
- # Optional system library.
-- use_xkbcommon = use_ozone && is_linux && !is_chromecast
-+ use_xkbcommon = use_ozone && (is_linux || is_bsd) && !is_chromecast
-
- # Whether the platform provides a native accessibility toolkit.
- has_native_accessibility = use_atk || is_win || is_mac
-
- # Whether the message center should be included for displaying notifications.
-- enable_message_center = is_win || is_mac || is_linux || is_fuchsia
-+ enable_message_center = is_win || is_mac || is_linux || is_fuchsia || is_bsd
- }
-
--enable_hidpi = is_mac || is_win || is_linux || is_ios
-+enable_hidpi = is_mac || is_win || is_linux || is_ios || is_bsd
diff --git a/chromium/patches/patch-ui_base_webui_web__ui__util.cc b/chromium/patches/patch-ui_base_webui_web__ui__util.cc
index 9e6cea4c24..1d7df22074 100644
--- a/chromium/patches/patch-ui_base_webui_web__ui__util.cc
+++ b/chromium/patches/patch-ui_base_webui_web__ui__util.cc
@@ -1,13 +1,26 @@
$NetBSD$
---- ui/base/webui/web_ui_util.cc.orig 2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/webui/web_ui_util.cc.orig 2024-07-24 02:45:10.300042200 +0000
+++ ui/base/webui/web_ui_util.cc
-@@ -228,7 +228,7 @@ std::string GetFontFamily() {
+@@ -39,7 +39,7 @@ namespace {
+ constexpr float kMaxScaleFactor = 1000.0f;
+
+ std::string GetFontFamilyMd() {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return "Roboto, " + GetFontFamily();
+ #else
+ return GetFontFamily();
+@@ -216,7 +216,7 @@ std::string GetFontFamily() {
- // TODO(dnicoara) Remove Ozone check when PlatformFont support is introduced
- // into Ozone: crbug.com/320050
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(USE_OZONE)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS) && !defined(USE_OZONE)
- font_family = ui::ResourceBundle::GetSharedInstance().GetFont(
- ui::ResourceBundle::BaseFont).GetFontName() + ", " + font_family;
- #endif
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ std::string font_name = ui::ResourceBundle::GetSharedInstance()
+ .GetFont(ui::ResourceBundle::BaseFont)
+ .GetFontName();
diff --git a/chromium/patches/patch-ui_base_x_x11__cursor__factory.cc b/chromium/patches/patch-ui_base_x_x11__cursor__factory.cc
new file mode 100644
index 0000000000..91d7ceaabe
--- /dev/null
+++ b/chromium/patches/patch-ui_base_x_x11__cursor__factory.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/x/x11_cursor_factory.cc.orig 2024-07-24 02:45:10.304042600 +0000
++++ ui/base/x/x11_cursor_factory.cc
+@@ -13,7 +13,7 @@
+ #include "ui/gfx/geometry/point.h"
+ #include "ui/gfx/x/connection.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/linux/linux_ui.h"
+ #endif
+
+@@ -70,7 +70,7 @@ scoped_refptr<PlatformCursor> X11CursorF
+ }
+
+ void X11CursorFactory::ObserveThemeChanges() {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ auto* linux_ui = LinuxUi::instance();
+ DCHECK(linux_ui);
+ cursor_theme_observation_.Observe(linux_ui);
diff --git a/chromium/patches/patch-ui_base_x_x11__cursor__factory.h b/chromium/patches/patch-ui_base_x_x11__cursor__factory.h
new file mode 100644
index 0000000000..78911be605
--- /dev/null
+++ b/chromium/patches/patch-ui_base_x_x11__cursor__factory.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/x/x11_cursor_factory.h.orig 2024-07-24 02:45:10.304042600 +0000
++++ ui/base/x/x11_cursor_factory.h
+@@ -20,7 +20,7 @@ namespace ui {
+ class X11Cursor;
+ class XCursorLoader;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ class LinuxUi;
+ #endif
+
+@@ -62,7 +62,7 @@ class COMPONENT_EXPORT(UI_BASE_X) X11Cur
+ // initializing `cursor_loader_` will modify `default_cursors_`.
+ std::unique_ptr<XCursorLoader> cursor_loader_;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ base::ScopedObservation<LinuxUi, CursorThemeManagerObserver>
+ cursor_theme_observation_{this};
+ #endif
diff --git a/chromium/patches/patch-ui_base_x_x11__cursor__loader.cc b/chromium/patches/patch-ui_base_x_x11__cursor__loader.cc
new file mode 100644
index 0000000000..178d82fe10
--- /dev/null
+++ b/chromium/patches/patch-ui_base_x_x11__cursor__loader.cc
@@ -0,0 +1,47 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/x/x11_cursor_loader.cc.orig 2024-07-24 02:45:10.304042600 +0000
++++ ui/base/x/x11_cursor_loader.cc
+@@ -33,7 +33,7 @@
+ #include "ui/gfx/x/connection.h"
+ #include "ui/gfx/x/xproto.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/linux/linux_ui.h"
+ #endif
+
+@@ -139,7 +139,11 @@ std::string CursorPathFromLibXcursor() {
+ void operator()(void* ptr) const { dlclose(ptr); }
+ };
+
++#if BUILDFLAG(IS_BSD)
++ std::unique_ptr<void, DlCloser> lib(dlopen("libXcursor.so", RTLD_LAZY));
++#else
+ std::unique_ptr<void, DlCloser> lib(dlopen("libXcursor.so.1", RTLD_LAZY));
++#endif
+ if (!lib)
+ return "";
+
+@@ -250,7 +254,7 @@ scoped_refptr<base::RefCountedMemory> Re
+ const std::string& rm_xcursor_theme) {
+ constexpr const char kDefaultTheme[] = "default";
+ std::string themes[] = {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // The toolkit theme has the highest priority.
+ LinuxUi::instance() ? LinuxUi::instance()->GetCursorThemeName()
+ : std::string(),
+@@ -442,7 +446,7 @@ uint32_t XCursorLoader::GetPreferredCurs
+ return size;
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Let the toolkit have the next say.
+ auto* linux_ui = LinuxUi::instance();
+ size = linux_ui ? linux_ui->GetCursorThemeSize() : 0;
diff --git a/chromium/patches/patch-ui_base_x_x11__display__manager.cc b/chromium/patches/patch-ui_base_x_x11__display__manager.cc
new file mode 100644
index 0000000000..886602bd0d
--- /dev/null
+++ b/chromium/patches/patch-ui_base_x_x11__display__manager.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/x/x11_display_manager.cc.orig 2024-07-24 02:45:10.304042600 +0000
++++ ui/base/x/x11_display_manager.cc
+@@ -16,7 +16,7 @@
+ #include "ui/gfx/x/randr.h"
+ #include "ui/gfx/x/xproto.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/linux/linux_ui.h"
+ #endif
+
+@@ -92,7 +92,7 @@ void XDisplayManager::FetchDisplayList()
+ ? display::Display::GetForcedDeviceScaleFactor()
+ : 1.0f};
+ const auto* display_config = &empty_display_config;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (const auto* linux_ui = ui::LinuxUi::instance()) {
+ display_config = &linux_ui->display_config();
+ }
diff --git a/chromium/patches/patch-ui_base_x_x11__display__util.cc b/chromium/patches/patch-ui_base_x_x11__display__util.cc
new file mode 100644
index 0000000000..ee213b2ac3
--- /dev/null
+++ b/chromium/patches/patch-ui_base_x_x11__display__util.cc
@@ -0,0 +1,371 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/x/x11_display_util.cc.orig 2024-07-24 02:45:10.304042600 +0000
++++ ui/base/x/x11_display_util.cc
+@@ -14,7 +14,6 @@
+
+ #include "base/bits.h"
+ #include "base/command_line.h"
+-#include "base/containers/flat_map.h"
+ #include "base/logging.h"
+ #include "base/numerics/clamped_math.h"
+ #include "base/ranges/algorithm.h"
+@@ -28,7 +27,6 @@
+ #include "ui/gfx/geometry/rect.h"
+ #include "ui/gfx/geometry/rect_conversions.h"
+ #include "ui/gfx/geometry/rect_f.h"
+-#include "ui/gfx/switches.h"
+ #include "ui/gfx/x/atom_cache.h"
+ #include "ui/gfx/x/connection.h"
+ #include "ui/gfx/x/randr.h"
+@@ -43,89 +41,42 @@ constexpr std::pair<uint32_t, uint32_t>
+
+ constexpr const char kRandrEdidProperty[] = "EDID";
+
+-std::map<x11::RandR::Output, size_t> GetMonitors(
+- const x11::Response<x11::RandR::GetMonitorsReply>& reply) {
+- std::map<x11::RandR::Output, size_t> output_to_monitor;
+- if (!reply) {
+- return output_to_monitor;
+- }
+- for (size_t monitor = 0; monitor < reply->monitors.size(); monitor++) {
+- for (x11::RandR::Output output : reply->monitors[monitor].outputs) {
+- output_to_monitor[output] = monitor;
++std::map<x11::RandR::Output, int> GetMonitors(
++ std::pair<uint32_t, uint32_t> version,
++ x11::RandR* randr,
++ x11::Window window) {
++ std::map<x11::RandR::Output, int> output_to_monitor;
++ if (version >= std::pair<uint32_t, uint32_t>{1, 5}) {
++ if (auto reply = randr->GetMonitors({window}).Sync()) {
++ for (size_t monitor = 0; monitor < reply->monitors.size(); monitor++) {
++ for (x11::RandR::Output output : reply->monitors[monitor].outputs) {
++ output_to_monitor[output] = monitor;
++ }
++ }
+ }
+ }
+ return output_to_monitor;
+ }
+
+-x11::Future<x11::GetPropertyReply> GetWorkAreaFuture(
+- x11::Connection* connection) {
+- return connection->GetProperty({
+- .window = connection->default_root(),
+- .property = connection->GetAtom("_NET_WORKAREA"),
+- .long_length = 4,
+- });
+-}
+-
+-gfx::Rect GetWorkAreaSync(x11::Future<x11::GetPropertyReply> future) {
+- auto response = future.Sync();
+- if (!response || response->format != 32 || response->value_len != 4) {
+- return gfx::Rect();
+- }
+- const uint32_t* value = response->value->cast_to<uint32_t>();
+- return gfx::Rect(value[0], value[1], value[2], value[3]);
+-}
+-
+-x11::Future<x11::GetPropertyReply> GetIccProfileFuture(
+- x11::Connection* connection,
+- size_t monitor) {
+- std::string atom_name = monitor == 0
+- ? "_ICC_PROFILE"
+- : base::StringPrintf("_ICC_PROFILE_%zu", monitor);
+- auto future = connection->GetProperty({
+- .window = connection->default_root(),
+- .property = x11::GetAtom(atom_name.c_str()),
+- .long_length = std::numeric_limits<uint32_t>::max(),
+- });
+- future.IgnoreError();
+- return future;
+-}
+-
+-gfx::ICCProfile GetIccProfileSync(x11::Future<x11::GetPropertyReply> future) {
+- auto response = future.Sync();
+- if (!response || !response->value_len) {
+- return gfx::ICCProfile();
+- }
+- return gfx::ICCProfile::FromData(response->value->bytes(),
+- response->value_len * response->format / 8u);
+-}
+-
+-x11::Future<x11::RandR::GetOutputPropertyReply> GetEdidFuture(
+- x11::Connection* connection,
+- x11::RandR::Output output) {
+- auto future = connection->randr().GetOutputProperty({
+- .output = output,
+- .property = x11::GetAtom(kRandrEdidProperty),
+- .long_length = 128,
+- });
+- future.IgnoreError();
+- return future;
+-}
+-
+ // Sets the work area on a list of displays. The work area for each display
+ // must already be initialized to the display bounds. At most one display out
+ // of |displays| will be affected.
+ void ClipWorkArea(std::vector<display::Display>* displays,
+- size_t primary_display_index,
+- const gfx::Rect& net_workarea) {
+- if (net_workarea.IsEmpty()) {
++ size_t primary_display_index) {
++ x11::Window x_root_window = ui::GetX11RootWindow();
++
++ std::vector<int32_t> value;
++ if (!x11::Connection::Get()->GetArrayProperty(
++ x_root_window, x11::GetAtom("_NET_WORKAREA"), &value) ||
++ value.size() < 4) {
+ return;
+ }
+-
+ auto get_work_area = [&](const display::Display& display) {
+ float scale = display::Display::HasForceDeviceScaleFactor()
+ ? display::Display::GetForcedDeviceScaleFactor()
+ : display.device_scale_factor();
+- return gfx::ScaleToEnclosingRect(net_workarea, 1.0f / scale);
++ return gfx::ScaleToEnclosingRect(
++ gfx::Rect(value[0], value[1], value[2], value[3]), 1.0f / scale);
+ };
+
+ // If the work area entirely contains exactly one display, assume it's meant
+@@ -207,9 +158,14 @@ int DefaultBitsPerComponent() {
+ return visual.bits_per_rgb_value;
+ }
+
+-// Get the EDID data from the `output` and stores to `edid`.
+-std::vector<uint8_t> GetEdidProperty(
+- x11::Response<x11::RandR::GetOutputPropertyReply> response) {
++// Get the EDID data from the |output| and stores to |edid|.
++std::vector<uint8_t> GetEDIDProperty(x11::RandR* randr,
++ x11::RandR::Output output) {
++ auto future = randr->GetOutputProperty(x11::RandR::GetOutputPropertyRequest{
++ .output = output,
++ .property = x11::GetAtom(kRandrEdidProperty),
++ .long_length = 128});
++ auto response = future.Sync();
+ std::vector<uint8_t> edid;
+ if (response && response->format == 8 && response->type != x11::Atom::None) {
+ edid = std::move(response->data);
+@@ -261,8 +217,7 @@ gfx::PointF DisplayOriginPxToDip(const d
+ std::vector<display::Display> GetFallbackDisplayList(
+ float scale,
+ size_t* primary_display_index_out) {
+- auto* connection = x11::Connection::Get();
+- const auto& screen = connection->default_screen();
++ const auto& screen = x11::Connection::Get()->default_screen();
+ gfx::Size physical_size(screen.width_in_millimeters,
+ screen.height_in_millimeters);
+
+@@ -289,9 +244,7 @@ std::vector<display::Display> GetFallbac
+ std::vector<display::Display> displays{gfx_display};
+ *primary_display_index_out = 0;
+
+- ClipWorkArea(&displays, *primary_display_index_out,
+- GetWorkAreaSync(GetWorkAreaFuture(connection)));
+-
++ ClipWorkArea(&displays, *primary_display_index_out);
+ return displays;
+ }
+
+@@ -307,16 +260,7 @@ std::vector<display::Display> BuildDispl
+ auto x_root_window = ui::GetX11RootWindow();
+ std::vector<display::Display> displays;
+
+- auto resources_future = randr.GetScreenResourcesCurrent({x_root_window});
+- auto output_primary_future = randr.GetOutputPrimary({x_root_window});
+- x11::Future<x11::RandR::GetMonitorsReply> monitors_future;
+- if (connection->randr_version() >= std::pair<uint32_t, uint32_t>{1, 5}) {
+- monitors_future = randr.GetMonitors(x_root_window);
+- }
+- auto work_area_future = GetWorkAreaFuture(connection);
+- connection->Flush();
+-
+- auto resources = resources_future.Sync();
++ auto resources = randr.GetScreenResourcesCurrent({x_root_window}).Sync();
+ if (!resources) {
+ LOG(ERROR) << "XRandR returned no displays; falling back to root window";
+ return GetFallbackDisplayList(primary_scale, primary_display_index_out);
+@@ -325,65 +269,21 @@ std::vector<display::Display> BuildDispl
+ const int depth = connection->default_screen().root_depth;
+ const int bits_per_component = DefaultBitsPerComponent();
+
+- auto output_primary = output_primary_future.Sync();
++ std::map<x11::RandR::Output, int> output_to_monitor =
++ GetMonitors(connection->randr_version(), &randr, x_root_window);
++ auto output_primary = randr.GetOutputPrimary({x_root_window}).Sync();
+ if (!output_primary) {
+ return GetFallbackDisplayList(primary_scale, primary_display_index_out);
+ }
+ x11::RandR::Output primary_display_id = output_primary->output;
+
+- const auto monitors_reply = monitors_future.Sync();
+- const auto output_to_monitor = GetMonitors(monitors_reply);
+- const size_t n_iccs =
+- monitors_reply ? std::max<size_t>(1, monitors_reply->monitors.size()) : 1;
+-
+ int explicit_primary_display_index = -1;
+ int monitor_order_primary_display_index = -1;
+
+- std::vector<x11::Future<x11::RandR::GetCrtcInfoReply>> crtc_futures{};
+- crtc_futures.reserve(resources->crtcs.size());
+- for (auto crtc : resources->crtcs) {
+- crtc_futures.push_back(
+- randr.GetCrtcInfo({crtc, resources->config_timestamp}));
+- }
+- connection->Flush();
+-
+- std::vector<x11::Future<x11::GetPropertyReply>> icc_futures{n_iccs};
+- if (!base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kHeadless)) {
+- for (size_t monitor = 0; monitor < n_iccs; ++monitor) {
+- icc_futures[monitor] = GetIccProfileFuture(connection, monitor);
+- }
+- connection->Flush();
+- }
+-
+- std::vector<x11::Future<x11::RandR::GetOutputInfoReply>> output_futures{};
+- output_futures.reserve(resources->outputs.size());
+- for (auto output : resources->outputs) {
+- output_futures.push_back(
+- randr.GetOutputInfo({output, resources->config_timestamp}));
+- }
+- connection->Flush();
+-
+- std::vector<x11::Future<x11::RandR::GetOutputPropertyReply>> edid_futures{};
+- edid_futures.reserve(resources->outputs.size());
+- for (auto output : resources->outputs) {
+- edid_futures.push_back(GetEdidFuture(connection, output));
+- }
+- connection->Flush();
+-
+- base::flat_map<x11::RandR::Crtc, x11::RandR::GetCrtcInfoResponse> crtcs;
+- for (size_t i = 0; i < resources->crtcs.size(); ++i) {
+- crtcs.emplace(resources->crtcs[i], crtc_futures[i].Sync());
+- }
+-
+- std::vector<gfx::ICCProfile> iccs;
+- iccs.reserve(n_iccs);
+- for (auto& future : icc_futures) {
+- iccs.push_back(GetIccProfileSync(std::move(future)));
+- }
+-
+ for (size_t i = 0; i < resources->outputs.size(); i++) {
+ x11::RandR::Output output_id = resources->outputs[i];
+- auto output_info = output_futures[i].Sync();
++ auto output_info =
++ randr.GetOutputInfo({output_id, resources->config_timestamp}).Sync();
+ if (!output_info) {
+ continue;
+ }
+@@ -398,16 +298,15 @@ std::vector<display::Display> BuildDispl
+ continue;
+ }
+
+- auto crtc_it = crtcs.find(output_info->crtc);
+- if (crtc_it == crtcs.end()) {
+- continue;
+- }
+- const auto& crtc = crtc_it->second;
++ auto crtc =
++ randr.GetCrtcInfo({output_info->crtc, resources->config_timestamp})
++ .Sync();
+ if (!crtc) {
+ continue;
+ }
+
+- display::EdidParser edid_parser(GetEdidProperty(edid_futures[i].Sync()));
++ display::EdidParser edid_parser(
++ GetEDIDProperty(&randr, static_cast<x11::RandR::Output>(output_id)));
+ auto output_32 = static_cast<uint32_t>(output_id);
+ int64_t display_id =
+ output_32 > 0xff ? 0 : edid_parser.GetIndexBasedDisplayId(output_32);
+@@ -462,9 +361,8 @@ std::vector<display::Display> BuildDispl
+ }
+
+ if (!display::HasForceDisplayColorProfile()) {
+- const size_t monitor =
+- monitor_iter == output_to_monitor.end() ? 0 : monitor_iter->second;
+- const auto& icc_profile = iccs[monitor < iccs.size() ? monitor : 0];
++ gfx::ICCProfile icc_profile = ui::GetICCProfileForMonitor(
++ monitor_iter == output_to_monitor.end() ? 0 : monitor_iter->second);
+ gfx::ColorSpace color_space = icc_profile.GetPrimariesOnlyColorSpace();
+
+ // Most folks do not have an ICC profile set up, but we still want to
+@@ -509,24 +407,63 @@ std::vector<display::Display> BuildDispl
+ ConvertDisplayBoundsToDips(&displays, *primary_display_index_out);
+ }
+
+- ClipWorkArea(&displays, *primary_display_index_out,
+- GetWorkAreaSync(std::move(work_area_future)));
++ ClipWorkArea(&displays, *primary_display_index_out);
+ return displays;
+ }
+
+ base::TimeDelta GetPrimaryDisplayRefreshIntervalFromXrandr() {
+ constexpr base::TimeDelta kDefaultInterval = base::Seconds(1. / 60);
+-
+- size_t primary_display_index = 0;
+- auto displays = BuildDisplaysFromXRandRInfo(display::DisplayConfig(),
+- &primary_display_index);
+- CHECK_LT(primary_display_index, displays.size());
+-
++ x11::RandR randr = x11::Connection::Get()->randr();
++ auto root = ui::GetX11RootWindow();
++ auto resources = randr.GetScreenResourcesCurrent({root}).Sync();
++ if (!resources) {
++ return kDefaultInterval;
++ }
+ // TODO(crbug.com/41321728): It might make sense here to pick the output that
+ // the window is on. On the other hand, if compositing is enabled, all drawing
+ // might be synced to the primary output anyway. Needs investigation.
+- auto frequency = displays[primary_display_index].display_frequency();
+- return frequency > 0 ? base::Seconds(1. / frequency) : kDefaultInterval;
++ auto output_primary = randr.GetOutputPrimary({root}).Sync();
++ if (!output_primary) {
++ return kDefaultInterval;
++ }
++ x11::RandR::Output primary_output = output_primary->output;
++ bool disconnected_primary = false;
++ for (size_t i = 0; i < resources->outputs.size(); i++) {
++ if (!disconnected_primary && resources->outputs[i] != primary_output) {
++ continue;
++ }
++
++ auto output_info =
++ randr.GetOutputInfo({primary_output, resources->config_timestamp})
++ .Sync();
++ if (!output_info) {
++ continue;
++ }
++
++ if (output_info->connection != x11::RandR::RandRConnection::Connected) {
++ // If the primary monitor is disconnected, then start over and choose the
++ // first connected monitor instead.
++ if (!disconnected_primary) {
++ disconnected_primary = true;
++ i = -1;
++ }
++ continue;
++ }
++ auto crtc =
++ randr.GetCrtcInfo({output_info->crtc, resources->config_timestamp})
++ .Sync();
++ if (!crtc) {
++ continue;
++ }
++ float refresh_rate =
++ GetRefreshRateFromXRRModeInfo(resources->modes, crtc->mode);
++ if (refresh_rate == 0) {
++ continue;
++ }
++
++ return base::Seconds(1. / refresh_rate);
++ }
++ return kDefaultInterval;
+ }
+
+ int RangeDistance(int min1, int max1, int min2, int max2) {
diff --git a/chromium/patches/patch-ui_base_x_x11__shm__image__pool.cc b/chromium/patches/patch-ui_base_x_x11__shm__image__pool.cc
index 71fd77929f..946851ee8e 100644
--- a/chromium/patches/patch-ui_base_x_x11__shm__image__pool.cc
+++ b/chromium/patches/patch-ui_base_x_x11__shm__image__pool.cc
@@ -1,20 +1,24 @@
$NetBSD$
---- ui/base/x/x11_shm_image_pool.cc.orig 2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/x/x11_shm_image_pool.cc.orig 2024-07-24 02:45:10.308042800 +0000
+++ ui/base/x/x11_shm_image_pool.cc
@@ -16,6 +16,7 @@
- #include "base/environment.h"
+ #include "base/functional/callback.h"
#include "base/location.h"
#include "base/strings/string_util.h"
+#include "base/system/sys_info.h"
- #include "base/threading/thread_task_runner_handle.h"
#include "build/build_config.h"
+ #include "build/chromeos_buildflags.h"
#include "net/base/url_util.h"
-@@ -44,10 +45,14 @@ constexpr float kShmResizeShrinkThreshol
+@@ -45,10 +46,14 @@ constexpr float kShmResizeShrinkThreshol
1.0f / (kShmResizeThreshold * kShmResizeThreshold);
std::size_t MaxShmSegmentSizeImpl() {
-+#if defined(OS_BSD)
++#if BUILDFLAG(IS_BSD)
+ return base::SysInfo::MaxSharedMemorySize();
+#else
struct shminfo info;
@@ -25,21 +29,49 @@ $NetBSD$
}
std::size_t MaxShmSegmentSize() {
-@@ -201,7 +206,7 @@ bool XShmImagePool::Resize(const gfx::Si
- shmctl(state.shminfo_.shmid, IPC_RMID, nullptr);
+@@ -57,14 +62,19 @@ std::size_t MaxShmSegmentSize() {
+ }
+
+ #if !BUILDFLAG(IS_CHROMEOS_ASH)
++#if !BUILDFLAG(IS_BSD)
+ bool IsRemoteHost(const std::string& name) {
+ if (name.empty())
+ return false;
+
+ return !net::HostStringIsLocalhost(name);
+ }
++#endif
+
+ bool ShouldUseMitShm(x11::Connection* connection) {
++#if BUILDFLAG(IS_BSD)
++ return false;
++#else
+ // MIT-SHM may be available on remote connetions, but it will be unusable. Do
+ // a best-effort check to see if the host is remote to disable the SHM
+ // codepath. It may be possible in contrived cases for there to be a
+@@ -93,6 +103,7 @@ bool ShouldUseMitShm(x11::Connection* co
+ return false;
+
+ return true;
++#endif
+ }
+ #endif
+
+@@ -183,7 +194,7 @@ bool XShmImagePool::Resize(const gfx::Si
+ shmctl(state.shmid, IPC_RMID, nullptr);
return false;
}
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// On Linux, a shmid can still be attached after IPC_RMID if otherwise
// kept alive. Detach before XShmAttach to prevent a memory leak in case
// the process dies.
-@@ -211,7 +216,7 @@ bool XShmImagePool::Resize(const gfx::Si
- if (!XShmAttach(display_, &state.shminfo_))
+@@ -202,7 +213,7 @@ bool XShmImagePool::Resize(const gfx::Si
return false;
- state.shmem_attached_to_server_ = true;
--#if !defined(OS_LINUX)
-+#if !defined(OS_LINUX) && !defined(OS_BSD)
+ state.shmseg = shmseg;
+ state.shmem_attached_to_server = true;
+-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD)
// The Linux-specific shmctl behavior above may not be portable, so we're
// forced to do IPC_RMID after the server has attached to the segment.
- // XShmAttach is asynchronous, so we must also sync.
+ shmctl(state.shmid, IPC_RMID, nullptr);
diff --git a/chromium/patches/patch-ui_base_x_x11__util.cc b/chromium/patches/patch-ui_base_x_x11__util.cc
new file mode 100644
index 0000000000..5d486190c8
--- /dev/null
+++ b/chromium/patches/patch-ui_base_x_x11__util.cc
@@ -0,0 +1,29 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/x/x11_util.cc.orig 2024-07-24 02:45:10.308042800 +0000
++++ ui/base/x/x11_util.cc
+@@ -703,4 +703,20 @@ gfx::ImageSkia GetNativeWindowIcon(intpt
+ return gfx::ImageSkia::CreateFrom1xBitmap(result);
+ }
+
++gfx::ICCProfile GetICCProfileForMonitor(int monitor) {
++ gfx::ICCProfile icc_profile;
++ if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kHeadless)) {
++ return icc_profile;
++ }
++ std::string atom_name = monitor == 0
++ ? "_ICC_PROFILE"
++ : base::StringPrintf("_ICC_PROFILE_%d", monitor);
++ scoped_refptr<base::RefCountedMemory> data;
++ if (GetRawBytesOfProperty(GetX11RootWindow(), x11::GetAtom(atom_name.c_str()),
++ &data, nullptr)) {
++ icc_profile = gfx::ICCProfile::FromData(data->data(), data->size());
++ }
++ return icc_profile;
++}
++
+ } // namespace ui
diff --git a/chromium/patches/patch-ui_base_x_x11__util.h b/chromium/patches/patch-ui_base_x_x11__util.h
new file mode 100644
index 0000000000..ac2c4214c5
--- /dev/null
+++ b/chromium/patches/patch-ui_base_x_x11__util.h
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/x/x11_util.h.orig 2024-07-24 02:45:10.308042800 +0000
++++ ui/base/x/x11_util.h
+@@ -256,6 +256,10 @@ COMPONENT_EXPORT(UI_BASE_X) bool IsVulka
+ COMPONENT_EXPORT(UI_BASE_X)
+ gfx::ImageSkia GetNativeWindowIcon(intptr_t target_window_id);
+
++// Returns the ICCProfile corresponding to |monitor| using XGetWindowProperty.
++COMPONENT_EXPORT(UI_BASE_X)
++gfx::ICCProfile GetICCProfileForMonitor(int monitor);
++
+ } // namespace ui
+
+ #endif // UI_BASE_X_X11_UTIL_H_
diff --git a/chromium/patches/patch-ui_color_BUILD.gn b/chromium/patches/patch-ui_color_BUILD.gn
deleted file mode 100644
index e1bf671314..0000000000
--- a/chromium/patches/patch-ui_color_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/color/BUILD.gn.orig 2020-07-15 18:56:49.000000000 +0000
-+++ ui/color/BUILD.gn
-@@ -87,7 +87,7 @@ jumbo_component("mixers") {
- sources += [ "cros/native_color_mixers.cc" ]
- } else if (is_fuchsia) {
- sources += [ "fuchsia/native_color_mixers.cc" ]
-- } else if (is_linux) {
-+ } else if (is_linux || is_bsd) {
- sources += [ "linux/native_color_mixers.cc" ]
- } else if (is_mac) {
- libs = [ "AppKit.framework" ]
diff --git a/chromium/patches/patch-ui_color_color__id.h b/chromium/patches/patch-ui_color_color__id.h
new file mode 100644
index 0000000000..b0f7f00129
--- /dev/null
+++ b/chromium/patches/patch-ui_color_color__id.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/color/color_id.h.orig 2024-07-24 02:45:10.408052700 +0000
++++ ui/color/color_id.h
+@@ -624,7 +624,7 @@
+ \
+ E_CPONLY(kColorCrosSysPositive) \
+ E_CPONLY(kColorCrosSysComplementVariant)
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #define PLATFORM_SPECIFIC_COLOR_IDS \
+ E_CPONLY(kColorNativeButtonBorder)\
+ E_CPONLY(kColorNativeHeaderButtonBorderActive) \
diff --git a/chromium/patches/patch-ui_color_color__provider__utils.cc b/chromium/patches/patch-ui_color_color__provider__utils.cc
new file mode 100644
index 0000000000..7d44b3be32
--- /dev/null
+++ b/chromium/patches/patch-ui_color_color__provider__utils.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/color/color_provider_utils.cc.orig 2024-07-24 02:45:10.412052900 +0000
++++ ui/color/color_provider_utils.cc
+@@ -186,7 +186,7 @@ std::string_view SystemThemeName(ui::Sys
+ switch (system_theme) {
+ case ui::SystemTheme::kDefault:
+ return "kDefault";
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ case ui::SystemTheme::kGtk:
+ return "kGtk";
+ case ui::SystemTheme::kQt:
diff --git a/chromium/patches/patch-ui_color_system__theme.h b/chromium/patches/patch-ui_color_system__theme.h
new file mode 100644
index 0000000000..20b124e834
--- /dev/null
+++ b/chromium/patches/patch-ui_color_system__theme.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/color/system_theme.h.orig 2024-07-24 02:45:10.412052900 +0000
++++ ui/color/system_theme.h
+@@ -15,7 +15,7 @@ namespace ui {
+ enum class SystemTheme {
+ // Classic theme, used in the default or users' chosen theme.
+ kDefault = 0,
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ kGtk = 1,
+ kQt = 2,
+ kMaxValue = kQt,
diff --git a/chromium/patches/patch-ui_compositor_BUILD.gn b/chromium/patches/patch-ui_compositor_BUILD.gn
deleted file mode 100644
index b0802ed74f..0000000000
--- a/chromium/patches/patch-ui_compositor_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/compositor/BUILD.gn.orig 2020-07-15 18:56:34.000000000 +0000
-+++ ui/compositor/BUILD.gn
-@@ -258,7 +258,7 @@ test("compositor_unittests") {
- "//ui/resources",
- ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- deps += [ "//third_party/mesa_headers" ]
- }
- }
diff --git a/chromium/patches/patch-ui_compositor_compositor.cc b/chromium/patches/patch-ui_compositor_compositor.cc
index 6695ba757c..45f090f9d2 100644
--- a/chromium/patches/patch-ui_compositor_compositor.cc
+++ b/chromium/patches/patch-ui_compositor_compositor.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- ui/compositor/compositor.cc.orig 2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/compositor/compositor.cc.orig 2024-07-24 02:45:10.416053300 +0000
+++ ui/compositor/compositor.cc
-@@ -731,7 +731,7 @@ void Compositor::CancelThroughtputTracke
- throughput_tracker_map_.erase(tracker_id);
+@@ -922,7 +922,7 @@ void Compositor::OnResume() {
+ obs.ResetIfActive();
}
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11)
void Compositor::OnCompleteSwapWithNewSize(const gfx::Size& size) {
for (auto& observer : observer_list_)
observer.OnCompositingCompleteSwapWithNewSize(this, size);
diff --git a/chromium/patches/patch-ui_compositor_compositor.h b/chromium/patches/patch-ui_compositor_compositor.h
index 4fb36729eb..4179210b88 100644
--- a/chromium/patches/patch-ui_compositor_compositor.h
+++ b/chromium/patches/patch-ui_compositor_compositor.h
@@ -1,13 +1,17 @@
$NetBSD$
---- ui/compositor/compositor.h.orig 2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/compositor/compositor.h.orig 2024-07-24 02:45:10.416053300 +0000
+++ ui/compositor/compositor.h
-@@ -370,7 +370,7 @@ class COMPOSITOR_EXPORT Compositor : pub
- void StopThroughtputTracker(TrackerId tracker_id) override;
- void CancelThroughtputTracker(TrackerId tracker_id) override;
+@@ -456,7 +456,7 @@ class COMPOSITOR_EXPORT Compositor : pub
+ // base::PowerSuspendObserver:
+ void OnResume() override;
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11)
void OnCompleteSwapWithNewSize(const gfx::Size& size);
- #endif
+ #endif // BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
diff --git a/chromium/patches/patch-ui_compositor_compositor__observer.h b/chromium/patches/patch-ui_compositor_compositor__observer.h
index 1da9495f0c..6ad3a0c4b7 100644
--- a/chromium/patches/patch-ui_compositor_compositor__observer.h
+++ b/chromium/patches/patch-ui_compositor_compositor__observer.h
@@ -1,13 +1,17 @@
$NetBSD$
---- ui/compositor/compositor_observer.h.orig 2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/compositor/compositor_observer.h.orig 2024-07-24 02:45:10.416053300 +0000
+++ ui/compositor/compositor_observer.h
-@@ -42,7 +42,7 @@ class COMPOSITOR_EXPORT CompositorObserv
+@@ -52,7 +52,7 @@ class COMPOSITOR_EXPORT CompositorObserv
// Called when a child of the compositor is resizing.
virtual void OnCompositingChildResizing(Compositor* compositor) {}
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11)
// Called when a swap with new size is completed.
virtual void OnCompositingCompleteSwapWithNewSize(ui::Compositor* compositor,
const gfx::Size& size) {}
diff --git a/chromium/patches/patch-ui_display_screen.cc b/chromium/patches/patch-ui_display_screen.cc
new file mode 100644
index 0000000000..a3f3fa5dc8
--- /dev/null
+++ b/chromium/patches/patch-ui_display_screen.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/display/screen.cc.orig 2024-07-24 02:45:10.444056000 +0000
++++ ui/display/screen.cc
+@@ -86,7 +86,7 @@ void Screen::SetDisplayForNewWindows(int
+ display_id_for_new_windows_ = display_id;
+ }
+
+-#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ Screen::ScreenSaverSuspender::~ScreenSaverSuspender() = default;
+
+ std::unique_ptr<Screen::ScreenSaverSuspender> Screen::SuspendScreenSaver() {
diff --git a/chromium/patches/patch-ui_display_screen.h b/chromium/patches/patch-ui_display_screen.h
new file mode 100644
index 0000000000..b408311f87
--- /dev/null
+++ b/chromium/patches/patch-ui_display_screen.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/display/screen.h.orig 2024-07-24 02:45:10.444056000 +0000
++++ ui/display/screen.h
+@@ -140,7 +140,7 @@ class DISPLAY_EXPORT Screen {
+ // (both of which may or may not be `nearest_id`).
+ display::ScreenInfos GetScreenInfosNearestDisplay(int64_t nearest_id) const;
+
+-#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Object which suspends the platform-specific screensaver for the duration of
+ // its existence.
+ class ScreenSaverSuspender {
+@@ -248,7 +248,7 @@ class DISPLAY_EXPORT Screen {
+ int64_t display_id_for_new_windows_;
+ int64_t scoped_display_id_for_new_windows_ = display::kInvalidDisplayId;
+
+-#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ uint32_t screen_saver_suspension_count_ = 0;
+ #endif // BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
+ };
diff --git a/chromium/patches/patch-ui_events_devices_BUILD.gn b/chromium/patches/patch-ui_events_devices_BUILD.gn
deleted file mode 100644
index 9c5208b870..0000000000
--- a/chromium/patches/patch-ui_events_devices_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/events/devices/BUILD.gn.orig 2020-07-15 18:56:34.000000000 +0000
-+++ ui/events/devices/BUILD.gn
-@@ -33,7 +33,7 @@ jumbo_component("devices") {
- "touchscreen_device.h",
- ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "device_util_linux.cc",
- "device_util_linux.h",
diff --git a/chromium/patches/patch-ui_events_devices_x11_device__data__manager__x11.cc b/chromium/patches/patch-ui_events_devices_x11_device__data__manager__x11.cc
index 19f7dbdc1d..4a2807c7ae 100644
--- a/chromium/patches/patch-ui_events_devices_x11_device__data__manager__x11.cc
+++ b/chromium/patches/patch-ui_events_devices_x11_device__data__manager__x11.cc
@@ -1,22 +1,16 @@
$NetBSD$
---- ui/events/devices/x11/device_data_manager_x11.cc.orig 2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/events/devices/x11/device_data_manager_x11.cc.orig 2024-07-24 02:45:10.460057500 +0000
+++ ui/events/devices/x11/device_data_manager_x11.cc
-@@ -875,6 +875,7 @@ void DeviceDataManagerX11::SetDisabledKe
+@@ -844,6 +844,7 @@ void DeviceDataManagerX11::SetDisabledKe
}
- void DeviceDataManagerX11::DisableDevice(int deviceid) {
-+#if !defined(OS_BSD)
- blocked_devices_.set(deviceid, true);
- // TODO(rsadam@): Support blocking touchscreen devices.
- std::vector<InputDevice> keyboards = GetKeyboardDevices();
-@@ -885,6 +886,9 @@ void DeviceDataManagerX11::DisableDevice
- keyboards.erase(it);
- DeviceDataManager::OnKeyboardDevicesUpdated(keyboards);
- }
-+#else
+ void DeviceDataManagerX11::DisableDevice(x11::Input::DeviceId deviceid) {
+ NOTIMPLEMENTED();
-+#endif
- }
-
- void DeviceDataManagerX11::EnableDevice(int deviceid) {
+ blocked_devices_.set(static_cast<uint32_t>(deviceid), true);
+ // TODO(rsadam@): Support blocking touchscreen devices.
+ std::vector<KeyboardDevice> keyboards = GetKeyboardDevices();
diff --git a/chromium/patches/patch-ui_events_event.cc b/chromium/patches/patch-ui_events_event.cc
new file mode 100644
index 0000000000..07dc749859
--- /dev/null
+++ b/chromium/patches/patch-ui_events_event.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/events/event.cc.orig 2024-07-24 02:45:10.460057500 +0000
++++ ui/events/event.cc
+@@ -438,7 +438,7 @@ std::string LocatedEvent::ToString() con
+ MouseEvent::MouseEvent(const PlatformEvent& native_event)
+ : LocatedEvent(native_event),
+ changed_button_flags_(GetChangedMouseButtonFlagsFromNative(native_event)),
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ movement_(GetMouseMovementFromNative(native_event)),
+ #endif
+ pointer_details_(GetMousePointerDetailsFromNative(native_event)) {
+@@ -688,7 +688,7 @@ std::unique_ptr<Event> MouseWheelEvent::
+ return std::make_unique<MouseWheelEvent>(*this);
+ }
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // This value matches Windows, Fuchsia WHEEL_DELTA, and (roughly) Firefox on
+ // Linux.
+ // static
+@@ -948,7 +948,7 @@ void KeyEvent::InitializeNative() {
+ if (synthesize_key_repeat_enabled_ && IsRepeated(GetLastKeyEvent()))
+ SetFlags(flags() | EF_IS_REPEAT);
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ NormalizeFlags();
+ #elif BUILDFLAG(IS_WIN)
+ // Only Windows has native character events.
diff --git a/chromium/patches/patch-ui_events_event__switches.cc b/chromium/patches/patch-ui_events_event__switches.cc
index f485e27886..f2b095ecda 100644
--- a/chromium/patches/patch-ui_events_event__switches.cc
+++ b/chromium/patches/patch-ui_events_event__switches.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- ui/events/event_switches.cc.orig 2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/events/event_switches.cc.orig 2024-07-24 02:45:10.464058000 +0000
+++ ui/events/event_switches.cc
-@@ -14,7 +14,7 @@ namespace switches {
- const char kCompensateForUnstablePinchZoom[] =
- "compensate-for-unstable-pinch-zoom";
+@@ -21,7 +21,7 @@ const char kCompensateForUnstablePinchZo
+ // value is a floating point number that is interpreted as a distance in pixels.
+ const char kTouchSlopDistance[] = "touch-slop-distance";
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// Tells chrome to interpret events from these devices as touch events. Only
// available with XInput 2 (i.e. X server 1.8 or above). The id's of the
// devices can be retrieved from 'xinput list'.
diff --git a/chromium/patches/patch-ui_events_event__switches.h b/chromium/patches/patch-ui_events_event__switches.h
index 9aaf8abd90..5e582b4376 100644
--- a/chromium/patches/patch-ui_events_event__switches.h
+++ b/chromium/patches/patch-ui_events_event__switches.h
@@ -1,13 +1,17 @@
$NetBSD$
---- ui/events/event_switches.h.orig 2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/events/event_switches.h.orig 2024-07-24 02:45:10.464058000 +0000
+++ ui/events/event_switches.h
@@ -13,7 +13,7 @@ namespace switches {
-
EVENTS_BASE_EXPORT extern const char kCompensateForUnstablePinchZoom[];
+ EVENTS_BASE_EXPORT extern const char kTouchSlopDistance[];
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
EVENTS_BASE_EXPORT extern const char kTouchDevices[];
EVENTS_BASE_EXPORT extern const char kPenDevices[];
#endif
diff --git a/chromium/patches/patch-ui_events_keycodes_dom_keycode__converter.cc b/chromium/patches/patch-ui_events_keycodes_dom_keycode__converter.cc
index 284b88cf54..f22a513110 100644
--- a/chromium/patches/patch-ui_events_keycodes_dom_keycode__converter.cc
+++ b/chromium/patches/patch-ui_events_keycodes_dom_keycode__converter.cc
@@ -1,13 +1,44 @@
$NetBSD$
---- ui/events/keycodes/dom/keycode_converter.cc.orig 2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/events/keycodes/dom/keycode_converter.cc.orig 2024-07-24 02:45:10.476059200 +0000
+++ ui/events/keycodes/dom/keycode_converter.cc
-@@ -20,7 +20,7 @@ namespace {
- #if defined(OS_WIN)
+@@ -13,7 +13,7 @@
+ #include "ui/events/keycodes/dom/dom_code.h"
+ #include "ui/events/keycodes/dom/dom_key.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FREEBSD)
+ #include <linux/input.h>
+ #endif
+
+@@ -26,7 +26,7 @@ namespace {
+ #if BUILDFLAG(IS_WIN)
#define DOM_CODE(usb, evdev, xkb, win, mac, code, id) \
{ usb, win, code }
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#define DOM_CODE(usb, evdev, xkb, win, mac, code, id) \
{ usb, xkb, code }
- #elif defined(OS_MACOSX)
+ #elif BUILDFLAG(IS_APPLE)
+@@ -65,7 +65,7 @@ struct DomKeyMapEntry {
+ #undef DOM_KEY_UNI
+ #undef DOM_KEY_MAP_DECLARATION_END
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FREEBSD)
+
+ // The offset between XKB Keycode and evdev code.
+ constexpr int kXkbKeycodeOffset = 8;
+@@ -186,7 +186,7 @@ int KeycodeConverter::DomCodeToNativeKey
+ return UsbKeycodeToNativeKeycode(static_cast<uint32_t>(code));
+ }
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FREEBSD)
+ // static
+ DomCode KeycodeConverter::XkbKeycodeToDomCode(uint32_t xkb_keycode) {
+ // Currently XKB keycode is the native keycode.
diff --git a/chromium/patches/patch-ui_events_keycodes_dom_keycode__converter.h b/chromium/patches/patch-ui_events_keycodes_dom_keycode__converter.h
new file mode 100644
index 0000000000..eada6386af
--- /dev/null
+++ b/chromium/patches/patch-ui_events_keycodes_dom_keycode__converter.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/events/keycodes/dom/keycode_converter.h.orig 2024-07-24 02:45:10.476059200 +0000
++++ ui/events/keycodes/dom/keycode_converter.h
+@@ -64,7 +64,7 @@ class KeycodeConverter {
+ // Convert a DomCode into a native keycode.
+ static int DomCodeToNativeKeycode(DomCode code);
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FREEBSD)
+ // Convert a XKB keycode into a DomCode.
+ static DomCode XkbKeycodeToDomCode(uint32_t xkb_keycode);
+
diff --git a/chromium/patches/patch-ui_events_ozone_BUILD.gn b/chromium/patches/patch-ui_events_ozone_BUILD.gn
deleted file mode 100644
index 1dfdc117eb..0000000000
--- a/chromium/patches/patch-ui_events_ozone_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/events/ozone/BUILD.gn.orig 2020-07-15 18:56:34.000000000 +0000
-+++ ui/events/ozone/BUILD.gn
-@@ -70,7 +70,7 @@ source_set("unittests") {
- sources += [ "chromeos/cursor_controller_unittest.cc" ]
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- deps += [ "//ui/events/ozone/evdev:unittests" ]
- }
- }
diff --git a/chromium/patches/patch-ui_gfx_BUILD.gn b/chromium/patches/patch-ui_gfx_BUILD.gn
index 0ba68e800f..6b97308dcc 100644
--- a/chromium/patches/patch-ui_gfx_BUILD.gn
+++ b/chromium/patches/patch-ui_gfx_BUILD.gn
@@ -1,67 +1,17 @@
$NetBSD$
---- ui/gfx/BUILD.gn.orig 2020-06-25 09:32:23.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/BUILD.gn.orig 2024-07-24 02:45:10.580069300 +0000
+++ ui/gfx/BUILD.gn
-@@ -150,7 +150,7 @@ jumbo_component("gfx") {
- "android/view_configuration.h",
- ]
- }
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "font_fallback_linux.cc",
- "font_fallback_linux.h",
-@@ -386,7 +386,7 @@ jumbo_component("gfx") {
- }
-
- # Linux.
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- deps += [ "//third_party/fontconfig" ]
- }
-
-@@ -566,7 +566,7 @@ jumbo_source_set("memory_buffer_sources"
- "//ui/gfx/geometry",
- ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "linux/client_native_pixmap_dmabuf.cc",
- "linux/client_native_pixmap_dmabuf.h",
-@@ -596,7 +596,7 @@ jumbo_source_set("memory_buffer_sources"
- public_deps += [ "//ipc:message_support" ]
- }
-
-- if ((is_linux || use_ozone) && !is_nacl) {
-+ if ((is_linux || use_ozone || is_bsd) && !is_nacl) {
- sources += [
- "native_pixmap_handle.cc",
- "native_pixmap_handle.h",
-@@ -672,7 +672,7 @@ test("gfx_unittests") {
- "text_elider_unittest.cc",
- "text_utils_unittest.cc",
- ]
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "font_fallback_linux_unittest.cc",
- "font_render_params_linux_unittest.cc",
-@@ -763,7 +763,7 @@ test("gfx_unittests") {
- sources += [ "system_fonts_win_unittest.cc" ]
- }
-
-- if (is_linux || is_android || is_fuchsia || is_win) {
-+ if (is_linux || is_android || is_fuchsia || is_win || is_bsd) {
- sources += [ "platform_font_skia_unittest.cc" ]
+@@ -663,7 +663,7 @@ source_set("memory_buffer_sources") {
+ deps += [ "//build/config/linux/libdrm" ]
}
-@@ -855,7 +855,7 @@ test("gfx_unittests") {
- ]
+- if (is_linux || is_chromeos || is_android) {
++ if ((is_linux || is_chromeos || is_android) && !is_bsd) {
+ deps += [ "//third_party/libsync" ]
}
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "linux/fontconfig_util_unittest.cc",
- "linux/native_pixmap_dmabuf_unittest.cc",
diff --git a/chromium/patches/patch-ui_gfx_canvas__skia.cc b/chromium/patches/patch-ui_gfx_canvas__skia.cc
index 7ee506dd6b..2101da4c60 100644
--- a/chromium/patches/patch-ui_gfx_canvas__skia.cc
+++ b/chromium/patches/patch-ui_gfx_canvas__skia.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- ui/gfx/canvas_skia.cc.orig 2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/canvas_skia.cc.orig 2024-07-24 02:45:10.588070000 +0000
+++ ui/gfx/canvas_skia.cc
-@@ -206,7 +206,7 @@ void Canvas::DrawStringRectWithFlags(con
+@@ -213,7 +213,7 @@ void Canvas::DrawStringRectWithFlags(con
Range range = StripAcceleratorChars(flags, &adjusted_text);
bool elide_text = ((flags & NO_ELLIPSIS) == 0);
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// On Linux, eliding really means fading the end of the string. But only
// for LTR text. RTL text is still elided (on the left) with "...".
if (elide_text) {
diff --git a/chromium/patches/patch-ui_gfx_codec_jpeg__codec.cc b/chromium/patches/patch-ui_gfx_codec_jpeg__codec.cc
deleted file mode 100644
index cecba29adf..0000000000
--- a/chromium/patches/patch-ui_gfx_codec_jpeg__codec.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- ui/gfx/codec/jpeg_codec.cc.orig 2020-07-15 18:56:34.000000000 +0000
-+++ ui/gfx/codec/jpeg_codec.cc
-@@ -208,6 +208,7 @@ bool JPEGCodec::Decode(const unsigned ch
- case JCS_GRAYSCALE:
- case JCS_RGB:
- case JCS_YCbCr:
-+#if defined(JCS_EXTENSIONS)
- // Choose an output colorspace and return if it is an unsupported one.
- // Same as JPEGCodec::Encode(), libjpeg-turbo supports all input formats
- // used by Chromium (i.e. RGBA and BGRA) and we just map the input
-@@ -224,6 +225,9 @@ bool JPEGCodec::Decode(const unsigned ch
- NOTREACHED() << "Invalid pixel format";
- return false;
- }
-+#else
-+ cinfo.out_color_space = JCS_RGB;
-+#endif
- break;
- case JCS_CMYK:
- case JCS_YCCK:
diff --git a/chromium/patches/patch-ui_gfx_font__fallback__linux.cc b/chromium/patches/patch-ui_gfx_font__fallback__linux.cc
index 856a081b2a..edc18bc445 100644
--- a/chromium/patches/patch-ui_gfx_font__fallback__linux.cc
+++ b/chromium/patches/patch-ui_gfx_font__fallback__linux.cc
@@ -1,14 +1,16 @@
$NetBSD$
---- ui/gfx/font_fallback_linux.cc.orig 2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/font_fallback_linux.cc.orig 2024-07-24 02:45:10.596070800 +0000
+++ ui/gfx/font_fallback_linux.cc
-@@ -24,6 +24,10 @@
+@@ -27,6 +27,8 @@
#include "ui/gfx/linux/fontconfig_util.h"
#include "ui/gfx/platform_font.h"
-+#if defined(OS_BSD)
+#include <unistd.h>
-+#endif
+
namespace gfx {
diff --git a/chromium/patches/patch-ui_gfx_font__list.cc b/chromium/patches/patch-ui_gfx_font__list.cc
deleted file mode 100644
index a6056e1f2a..0000000000
--- a/chromium/patches/patch-ui_gfx_font__list.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/gfx/font_list.cc.orig 2020-07-15 18:56:34.000000000 +0000
-+++ ui/gfx/font_list.cc
-@@ -24,7 +24,7 @@ base::LazyInstance<scoped_refptr<gfx::Fo
- bool g_default_impl_initialized = false;
-
- bool IsFontFamilyAvailable(const std::string& family, SkFontMgr* fontManager) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- return !!fontManager->legacyMakeTypeface(family.c_str(), SkFontStyle());
- #else
- sk_sp<SkFontStyleSet> set(fontManager->matchFamily(family.c_str()));
diff --git a/chromium/patches/patch-ui_gfx_font__names__testing.cc b/chromium/patches/patch-ui_gfx_font__names__testing.cc
deleted file mode 100644
index 88c8a54aff..0000000000
--- a/chromium/patches/patch-ui_gfx_font__names__testing.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- ui/gfx/font_names_testing.cc.orig 2020-07-15 18:56:34.000000000 +0000
-+++ ui/gfx/font_names_testing.cc
-@@ -22,7 +22,7 @@ Note that we have to support the full ra
- dessert.
- */
-
--#if defined(OS_LINUX) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_FUCHSIA) || defined(OS_BSD)
- const char kTestFontName[] = "Arimo";
- #elif defined(OS_ANDROID)
- const char kTestFontName[] = "sans-serif";
-@@ -30,7 +30,7 @@ const char kTestFontName[] = "sans-serif
- const char kTestFontName[] = "Arial";
- #endif
-
--#if defined(OS_LINUX) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_FUCHSIA) || defined(OS_BSD)
- const char kSymbolFontName[] = "DejaVu Sans";
- #elif defined(OS_ANDROID)
- const char kSymbolFontName[] = "monospace";
-@@ -40,7 +40,7 @@ const char kSymbolFontName[] = "Segoe UI
- const char kSymbolFontName[] = "Symbol";
- #endif
-
--#if defined(OS_LINUX) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_FUCHSIA) || defined(OS_BSD)
- const char kCJKFontName[] = "Noto Sans CJK JP";
- #elif defined(OS_ANDROID)
- const char kCJKFontName[] = "serif";
diff --git a/chromium/patches/patch-ui_gfx_font__render__params.h b/chromium/patches/patch-ui_gfx_font__render__params.h
index d81b6f9c6b..4a7e094cfd 100644
--- a/chromium/patches/patch-ui_gfx_font__render__params.h
+++ b/chromium/patches/patch-ui_gfx_font__render__params.h
@@ -1,22 +1,26 @@
$NetBSD$
---- ui/gfx/font_render_params.h.orig 2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/font_render_params.h.orig 2024-07-24 02:45:10.596070800 +0000
+++ ui/gfx/font_render_params.h
-@@ -111,7 +111,7 @@ GFX_EXPORT FontRenderParams GetFontRende
+@@ -115,7 +115,7 @@ GFX_EXPORT FontRenderParams GetFontRende
const FontRenderParamsQuery& query,
std::string* family_out);
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
// Clears GetFontRenderParams()'s cache. Intended to be called by tests that are
// changing Fontconfig's configuration.
GFX_EXPORT void ClearFontRenderParamsCacheForTest();
-@@ -121,7 +121,7 @@ GFX_EXPORT void ClearFontRenderParamsCac
+@@ -125,7 +125,7 @@ GFX_EXPORT void ClearFontRenderParamsCac
GFX_EXPORT float GetFontRenderParamsDeviceScaleFactor();
- #if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_ANDROID) || \
-- defined(OS_FUCHSIA)
-+ defined(OS_FUCHSIA) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
// Sets the device scale factor for FontRenderParams to decide
// if it should enable subpixel positioning.
GFX_EXPORT void SetFontRenderParamsDeviceScaleFactor(
diff --git a/chromium/patches/patch-ui_gfx_font__render__params__linux.cc b/chromium/patches/patch-ui_gfx_font__render__params__linux.cc
new file mode 100644
index 0000000000..43581c3131
--- /dev/null
+++ b/chromium/patches/patch-ui_gfx_font__render__params__linux.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/font_render_params_linux.cc.orig 2024-07-24 02:45:10.596070800 +0000
++++ ui/gfx/font_render_params_linux.cc
+@@ -25,7 +25,7 @@
+ #include "ui/gfx/linux/fontconfig_util.h"
+ #include "ui/gfx/switches.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/linux/linux_ui.h"
+ #endif
+
+@@ -212,7 +212,7 @@ FontRenderParams GetFontRenderParams(con
+
+ // Start with the delegate's settings, but let Fontconfig have the final say.
+ FontRenderParams params;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (auto* linux_ui = ui::LinuxUi::instance()) {
+ params = linux_ui->GetDefaultFontRenderParams();
+ }
diff --git a/chromium/patches/patch-ui_gfx_font__util.cc b/chromium/patches/patch-ui_gfx_font__util.cc
index 85ffe6a401..30d43ab96c 100644
--- a/chromium/patches/patch-ui_gfx_font__util.cc
+++ b/chromium/patches/patch-ui_gfx_font__util.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- ui/gfx/font_util.cc.orig 2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/font_util.cc.orig 2024-07-24 02:45:10.596070800 +0000
+++ ui/gfx/font_util.cc
@@ -6,7 +6,7 @@
#include "build/build_config.h"
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include <fontconfig/fontconfig.h>
#include "ui/gfx/linux/fontconfig_util.h"
#endif
@@ -15,8 +19,8 @@ $NetBSD$
// background (resources have not yet been granted to cast) since it prevents
// the long delay the user would have seen on first rendering.
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // Ensures the config is created on this thread.
- FcConfig* config = GetGlobalFontConfig();
- DCHECK(config);
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Early initialize FontConfig.
+ InitializeGlobalFontConfigAsync();
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
diff --git a/chromium/patches/patch-ui_gfx_gpu__memory__buffer.cc b/chromium/patches/patch-ui_gfx_gpu__memory__buffer.cc
index 1cb58a18ec..f694343fd9 100644
--- a/chromium/patches/patch-ui_gfx_gpu__memory__buffer.cc
+++ b/chromium/patches/patch-ui_gfx_gpu__memory__buffer.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- ui/gfx/gpu_memory_buffer.cc.orig 2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/gpu_memory_buffer.cc.orig 2024-07-24 02:45:10.608072000 +0000
+++ ui/gfx/gpu_memory_buffer.cc
-@@ -34,7 +34,7 @@ GpuMemoryBufferHandle GpuMemoryBufferHan
+@@ -55,7 +55,7 @@ GpuMemoryBufferHandle GpuMemoryBufferHan
handle.region = region.Duplicate();
handle.offset = offset;
handle.stride = stride;
--#if defined(OS_LINUX) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_FUCHSIA) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
handle.native_pixmap_handle = CloneHandleForIPC(native_pixmap_handle);
- #elif defined(OS_MACOSX) && !defined(OS_IOS)
- NOTIMPLEMENTED();
+ #elif BUILDFLAG(IS_APPLE)
+ handle.io_surface = io_surface;
diff --git a/chromium/patches/patch-ui_gfx_gpu__memory__buffer.h b/chromium/patches/patch-ui_gfx_gpu__memory__buffer.h
index 04abaa6687..269f2348f8 100644
--- a/chromium/patches/patch-ui_gfx_gpu__memory__buffer.h
+++ b/chromium/patches/patch-ui_gfx_gpu__memory__buffer.h
@@ -1,22 +1,26 @@
$NetBSD$
---- ui/gfx/gpu_memory_buffer.h.orig 2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/gpu_memory_buffer.h.orig 2024-07-24 02:45:10.612072200 +0000
+++ ui/gfx/gpu_memory_buffer.h
@@ -15,7 +15,7 @@
#include "ui/gfx/geometry/rect.h"
#include "ui/gfx/gfx_export.h"
--#if defined(USE_OZONE) || defined(OS_LINUX)
-+#if defined(USE_OZONE) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "ui/gfx/native_pixmap_handle.h"
- #elif defined(OS_MACOSX) && !defined(OS_IOS)
+ #elif BUILDFLAG(IS_APPLE)
#include "ui/gfx/mac/io_surface.h"
-@@ -69,7 +69,7 @@ struct GFX_EXPORT GpuMemoryBufferHandle
+@@ -76,7 +76,7 @@ struct GFX_EXPORT GpuMemoryBufferHandle
base::UnsafeSharedMemoryRegion region;
uint32_t offset = 0;
- int32_t stride = 0;
--#if defined(OS_LINUX) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_FUCHSIA) || defined(OS_BSD)
+ uint32_t stride = 0;
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
NativePixmapHandle native_pixmap_handle;
- #elif defined(OS_MACOSX) && !defined(OS_IOS)
- ScopedRefCountedIOSurfaceMachPort mach_port;
+ #elif BUILDFLAG(IS_APPLE)
+ ScopedIOSurface io_surface;
diff --git a/chromium/patches/patch-ui_gfx_ipc_gfx__param__traits__macros.h b/chromium/patches/patch-ui_gfx_ipc_gfx__param__traits__macros.h
deleted file mode 100644
index 3bcf172bb5..0000000000
--- a/chromium/patches/patch-ui_gfx_ipc_gfx__param__traits__macros.h
+++ /dev/null
@@ -1,46 +0,0 @@
-$NetBSD$
-
---- ui/gfx/ipc/gfx_param_traits_macros.h.orig 2020-07-15 18:56:34.000000000 +0000
-+++ ui/gfx/ipc/gfx_param_traits_macros.h
-@@ -18,7 +18,7 @@
- #include "ui/gfx/selection_bound.h"
- #include "ui/gfx/swap_result.h"
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "ui/gfx/native_pixmap_handle.h"
- #endif
-
-@@ -51,7 +51,7 @@ IPC_STRUCT_TRAITS_BEGIN(gfx::GpuMemoryBu
- IPC_STRUCT_TRAITS_MEMBER(region)
- IPC_STRUCT_TRAITS_MEMBER(offset)
- IPC_STRUCT_TRAITS_MEMBER(stride)
--#if defined(OS_LINUX) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_FUCHSIA) || defined(OS_BSD)
- IPC_STRUCT_TRAITS_MEMBER(native_pixmap_handle)
- #elif defined(OS_MACOSX)
- IPC_STRUCT_TRAITS_MEMBER(mach_port)
-@@ -66,12 +66,12 @@ IPC_STRUCT_TRAITS_BEGIN(gfx::GpuMemoryBu
- IPC_STRUCT_TRAITS_MEMBER(id)
- IPC_STRUCT_TRAITS_END()
-
--#if defined(OS_LINUX) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_FUCHSIA) || defined(OS_BSD)
- IPC_STRUCT_TRAITS_BEGIN(gfx::NativePixmapPlane)
- IPC_STRUCT_TRAITS_MEMBER(stride)
- IPC_STRUCT_TRAITS_MEMBER(offset)
- IPC_STRUCT_TRAITS_MEMBER(size)
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- IPC_STRUCT_TRAITS_MEMBER(fd)
- #elif defined(OS_FUCHSIA)
- IPC_STRUCT_TRAITS_MEMBER(vmo)
-@@ -80,7 +80,7 @@ IPC_STRUCT_TRAITS_END()
-
- IPC_STRUCT_TRAITS_BEGIN(gfx::NativePixmapHandle)
- IPC_STRUCT_TRAITS_MEMBER(planes)
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- IPC_STRUCT_TRAITS_MEMBER(modifier)
- #endif
- #if defined(OS_FUCHSIA)
diff --git a/chromium/patches/patch-ui_gfx_linux_client__native__pixmap__dmabuf.cc b/chromium/patches/patch-ui_gfx_linux_client__native__pixmap__dmabuf.cc
deleted file mode 100644
index fc38bd43b1..0000000000
--- a/chromium/patches/patch-ui_gfx_linux_client__native__pixmap__dmabuf.cc
+++ /dev/null
@@ -1,48 +0,0 @@
-$NetBSD$
-
---- ui/gfx/linux/client_native_pixmap_dmabuf.cc.orig 2020-07-15 18:56:34.000000000 +0000
-+++ ui/gfx/linux/client_native_pixmap_dmabuf.cc
-@@ -4,8 +4,12 @@
-
- #include "ui/gfx/linux/client_native_pixmap_dmabuf.h"
-
-+#include "build/build_config.h"
-+
- #include <fcntl.h>
-+#if defined(OS_LINUX)
- #include <linux/version.h>
-+#endif
- #include <stddef.h>
- #include <sys/ioctl.h>
- #include <sys/mman.h>
-@@ -27,6 +31,8 @@
- #include "ui/gfx/buffer_format_util.h"
- #include "ui/gfx/switches.h"
-
-+#if defined(OS_LINUX)
-+#if defined(OS_LINUX)
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
- #include <linux/dma-buf.h>
- #else
-@@ -45,6 +51,21 @@ struct dma_buf_sync {
- #define DMA_BUF_BASE 'b'
- #define DMA_BUF_IOCTL_SYNC _IOW(DMA_BUF_BASE, 0, struct dma_buf_sync)
- #endif
-+#endif
-+#elif (OS_BSD)
-+struct dma_buf_sync {
-+ __u64 flags;
-+};
-+
-+#define DMA_BUF_SYNC_READ (1 << 0)
-+#define DMA_BUF_SYNC_WRITE (2 << 0)
-+#define DMA_BUF_SYNC_RW (DMA_BUF_SYNC_READ | DMA_BUF_SYNC_WRITE)
-+#define DMA_BUF_SYNC_START (0 << 2)
-+#define DMA_BUF_SYNC_END (1 << 2)
-+
-+#define DMA_BUF_BASE 'b'
-+#define DMA_BUF_IOCTL_SYNC _IOW(DMA_BUF_BASE, 0, struct dma_buf_sync)
-+#endif
-
- namespace gfx {
-
diff --git a/chromium/patches/patch-ui_gfx_linux_dmabuf__uapi.h b/chromium/patches/patch-ui_gfx_linux_dmabuf__uapi.h
new file mode 100644
index 0000000000..874a5ca19e
--- /dev/null
+++ b/chromium/patches/patch-ui_gfx_linux_dmabuf__uapi.h
@@ -0,0 +1,42 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/linux/dmabuf_uapi.h.orig 2024-07-24 02:45:10.620073000 +0000
++++ ui/gfx/linux/dmabuf_uapi.h
+@@ -5,12 +5,11 @@
+ #ifndef UI_GFX_LINUX_DMABUF_UAPI_H_
+ #define UI_GFX_LINUX_DMABUF_UAPI_H_
+
+-#include <linux/version.h>
++#include <sys/types.h>
+
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+-#include <linux/dma-buf.h>
+-#else
+-#include <linux/types.h>
++typedef int32_t __s32;
++typedef uint32_t __u32;
++typedef uint64_t __u64;
+
+ struct dma_buf_sync {
+ __u64 flags;
+@@ -26,9 +25,7 @@ constexpr __u64 DMA_BUF_SYNC_END = 1 <<
+ constexpr char DMA_BUF_BASE = 'b';
+ constexpr unsigned long DMA_BUF_IOCTL_SYNC =
+ _IOW(DMA_BUF_BASE, 0, struct dma_buf_sync);
+-#endif
+
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0)
+ struct dma_buf_export_sync_file {
+ __u32 flags;
+ __s32 fd;
+@@ -43,6 +40,5 @@ constexpr unsigned long DMA_BUF_IOCTL_EX
+ _IOWR(DMA_BUF_BASE, 2, struct dma_buf_export_sync_file);
+ constexpr unsigned long DMA_BUF_IOCTL_IMPORT_SYNC_FILE =
+ _IOW(DMA_BUF_BASE, 3, struct dma_buf_import_sync_file);
+-#endif
+
+ #endif // UI_GFX_LINUX_DMABUF_UAPI_H_
diff --git a/chromium/patches/patch-ui_gfx_linux_gbm__wrapper.cc b/chromium/patches/patch-ui_gfx_linux_gbm__wrapper.cc
new file mode 100644
index 0000000000..ebce0b0bc1
--- /dev/null
+++ b/chromium/patches/patch-ui_gfx_linux_gbm__wrapper.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/linux/gbm_wrapper.cc.orig 2024-07-24 02:45:10.624073500 +0000
++++ ui/gfx/linux/gbm_wrapper.cc
+@@ -314,7 +314,7 @@ class Device final : public ui::GbmDevic
+ // of 1x1 BOs which are destroyed before creating the final BO creation used
+ // to instantiate the returned GbmBuffer.
+ gfx::Size size_for_verification =
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ gfx::Size(1, 1);
+ #else
+ requested_size;
diff --git a/chromium/patches/patch-ui_gfx_mojom_BUILD.gn b/chromium/patches/patch-ui_gfx_mojom_BUILD.gn
deleted file mode 100644
index 806351713d..0000000000
--- a/chromium/patches/patch-ui_gfx_mojom_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/gfx/mojom/BUILD.gn.orig 2020-07-15 18:56:34.000000000 +0000
-+++ ui/gfx/mojom/BUILD.gn
-@@ -212,7 +212,7 @@ mojom("mojom") {
-
- mojom("native_handle_types") {
- sources = [ "native_handle_types.mojom" ]
-- if (is_linux || use_ozone) {
-+ if (is_linux || use_ozone || is_bsd) {
- enabled_features = [ "supports_native_pixmap" ]
- }
- public_deps = [ "//mojo/public/mojom/base" ]
diff --git a/chromium/patches/patch-ui_gfx_mojom_buffer__types__mojom__traits.cc b/chromium/patches/patch-ui_gfx_mojom_buffer__types__mojom__traits.cc
index 32ae7d0bc2..01f4ecd99e 100644
--- a/chromium/patches/patch-ui_gfx_mojom_buffer__types__mojom__traits.cc
+++ b/chromium/patches/patch-ui_gfx_mojom_buffer__types__mojom__traits.cc
@@ -1,22 +1,26 @@
$NetBSD$
---- ui/gfx/mojom/buffer_types_mojom_traits.cc.orig 2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/mojom/buffer_types_mojom_traits.cc.orig 2024-07-24 02:45:10.624073500 +0000
+++ ui/gfx/mojom/buffer_types_mojom_traits.cc
@@ -33,7 +33,7 @@ gfx::mojom::GpuMemoryBufferPlatformHandl
return gfx::mojom::GpuMemoryBufferPlatformHandle::NewSharedMemoryHandle(
std::move(handle.region));
case gfx::NATIVE_PIXMAP:
--#if defined(OS_LINUX) || defined(USE_OZONE)
-+#if defined(OS_LINUX) || defined(USE_OZONE) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_BSD)
return gfx::mojom::GpuMemoryBufferPlatformHandle::NewNativePixmapHandle(
std::move(handle.native_pixmap_handle));
#else
-@@ -109,7 +109,7 @@ bool StructTraits<gfx::mojom::GpuMemoryB
+@@ -115,7 +115,7 @@ bool StructTraits<gfx::mojom::GpuMemoryB
out->type = gfx::SHARED_MEMORY_BUFFER;
out->region = std::move(platform_handle->get_shared_memory_handle());
return true;
--#if defined(OS_LINUX) || defined(USE_OZONE)
-+#if defined(OS_LINUX) || defined(USE_OZONE) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_BSD)
case gfx::mojom::GpuMemoryBufferPlatformHandleDataView::Tag::
- NATIVE_PIXMAP_HANDLE:
+ kNativePixmapHandle:
out->type = gfx::NATIVE_PIXMAP;
diff --git a/chromium/patches/patch-ui_gfx_mojom_native__handle__types.mojom b/chromium/patches/patch-ui_gfx_mojom_native__handle__types.mojom
deleted file mode 100644
index 9a54375975..0000000000
--- a/chromium/patches/patch-ui_gfx_mojom_native__handle__types.mojom
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/gfx/mojom/native_handle_types.mojom.orig 2020-07-15 18:56:34.000000000 +0000
-+++ ui/gfx/mojom/native_handle_types.mojom
-@@ -25,6 +25,8 @@ struct NativePixmapHandle {
-
- [EnableIf=is_linux]
- uint64 modifier;
-+ [EnableIf=is_bsd]
-+ uint64 modifier;
- [EnableIf=is_chromeos]
- uint64 modifier;
-
diff --git a/chromium/patches/patch-ui_gfx_mojom_native__handle__types__mojom__traits.cc b/chromium/patches/patch-ui_gfx_mojom_native__handle__types__mojom__traits.cc
index 18e80d5f77..454ac67020 100644
--- a/chromium/patches/patch-ui_gfx_mojom_native__handle__types__mojom__traits.cc
+++ b/chromium/patches/patch-ui_gfx_mojom_native__handle__types__mojom__traits.cc
@@ -1,36 +1,40 @@
$NetBSD$
---- ui/gfx/mojom/native_handle_types_mojom_traits.cc.orig 2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/mojom/native_handle_types_mojom_traits.cc.orig 2024-07-24 02:45:10.628074000 +0000
+++ ui/gfx/mojom/native_handle_types_mojom_traits.cc
@@ -8,11 +8,11 @@
namespace mojo {
--#if defined(OS_LINUX) || defined(USE_OZONE)
-+#if defined(OS_LINUX) || defined(USE_OZONE) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_BSD)
mojo::PlatformHandle StructTraits<
gfx::mojom::NativePixmapPlaneDataView,
gfx::NativePixmapPlane>::buffer_handle(gfx::NativePixmapPlane& plane) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
return mojo::PlatformHandle(std::move(plane.fd));
- #elif defined(OS_FUCHSIA)
+ #elif BUILDFLAG(IS_FUCHSIA)
return mojo::PlatformHandle(std::move(plane.vmo));
@@ -28,7 +28,7 @@ bool StructTraits<
out->size = data.size();
mojo::PlatformHandle handle = data.TakeBufferHandle();
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
if (!handle.is_fd())
return false;
out->fd = handle.TakeFD();
-@@ -45,7 +45,7 @@ bool StructTraits<
+@@ -54,7 +54,7 @@ bool StructTraits<
gfx::mojom::NativePixmapHandleDataView,
gfx::NativePixmapHandle>::Read(gfx::mojom::NativePixmapHandleDataView data,
gfx::NativePixmapHandle* out) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
out->modifier = data.modifier();
- #endif
-
+ out->supports_zero_copy_webgpu_import =
+ data.supports_zero_copy_webgpu_import();
diff --git a/chromium/patches/patch-ui_gfx_mojom_native__handle__types__mojom__traits.h b/chromium/patches/patch-ui_gfx_mojom_native__handle__types__mojom__traits.h
index ee8b9e81f0..fb7342b829 100644
--- a/chromium/patches/patch-ui_gfx_mojom_native__handle__types__mojom__traits.h
+++ b/chromium/patches/patch-ui_gfx_mojom_native__handle__types__mojom__traits.h
@@ -1,29 +1,42 @@
$NetBSD$
---- ui/gfx/mojom/native_handle_types_mojom_traits.h.orig 2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/mojom/native_handle_types_mojom_traits.h.orig 2024-07-24 02:45:10.628074000 +0000
+++ ui/gfx/mojom/native_handle_types_mojom_traits.h
-@@ -14,13 +14,13 @@
+@@ -16,7 +16,7 @@
#include "mojo/public/cpp/system/platform_handle.h"
#include "ui/gfx/mojom/native_handle_types.mojom-shared.h"
--#if defined(OS_LINUX) || defined(USE_OZONE)
-+#if defined(OS_LINUX) || defined(USE_OZONE) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_BSD)
#include "ui/gfx/native_pixmap_handle.h"
#endif
+@@ -26,7 +26,7 @@
+
namespace mojo {
--#if defined(OS_LINUX) || defined(USE_OZONE)
-+#if defined(OS_LINUX) || defined(USE_OZONE) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_BSD)
template <>
struct COMPONENT_EXPORT(GFX_NATIVE_HANDLE_TYPES_SHARED_MOJOM_TRAITS)
StructTraits<gfx::mojom::NativePixmapPlaneDataView,
-@@ -48,7 +48,7 @@ struct COMPONENT_EXPORT(GFX_NATIVE_HANDL
+@@ -54,13 +54,13 @@ struct COMPONENT_EXPORT(GFX_NATIVE_HANDL
return pixmap_handle.planes;
}
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
static uint64_t modifier(const gfx::NativePixmapHandle& pixmap_handle) {
return pixmap_handle.modifier;
}
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ static bool supports_zero_copy_webgpu_import(
+ const gfx::NativePixmapHandle& pixmap_handle) {
+ return pixmap_handle.supports_zero_copy_webgpu_import;
diff --git a/chromium/patches/patch-ui_gfx_native__pixmap__handle.cc b/chromium/patches/patch-ui_gfx_native__pixmap__handle.cc
index ad03827147..a59a1c5ac3 100644
--- a/chromium/patches/patch-ui_gfx_native__pixmap__handle.cc
+++ b/chromium/patches/patch-ui_gfx_native__pixmap__handle.cc
@@ -1,66 +1,68 @@
$NetBSD$
---- ui/gfx/native_pixmap_handle.cc.orig 2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/native_pixmap_handle.cc.orig 2024-07-24 02:45:10.628074000 +0000
+++ ui/gfx/native_pixmap_handle.cc
-@@ -9,11 +9,15 @@
- #include "base/logging.h"
- #include "build/build_config.h"
+@@ -11,7 +11,7 @@
+ #include "ui/gfx/buffer_format_util.h"
+ #include "ui/gfx/geometry/size.h"
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include <drm_fourcc.h>
- #include "base/posix/eintr_wrapper.h"
+ #include <unistd.h>
+
+@@ -23,9 +23,13 @@
+ #include "base/fuchsia/fuchsia_logging.h"
#endif
-+#if defined(OS_BSD)
++#if BUILDFLAG(IS_BSD)
+#include <unistd.h>
+#endif
+
- #if defined(OS_FUCHSIA)
- #include <lib/zx/vmo.h>
- #include "base/fuchsia/fuchsia_logging.h"
-@@ -21,7 +25,7 @@
-
namespace gfx {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
static_assert(NativePixmapHandle::kNoModifier == DRM_FORMAT_MOD_INVALID,
"gfx::NativePixmapHandle::kNoModifier should be an alias for"
"DRM_FORMAT_MOD_INVALID");
-@@ -32,7 +36,7 @@ NativePixmapPlane::NativePixmapPlane() :
+@@ -36,7 +40,7 @@ NativePixmapPlane::NativePixmapPlane() :
NativePixmapPlane::NativePixmapPlane(int stride,
int offset,
uint64_t size
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
,
base::ScopedFD fd
- #elif defined(OS_FUCHSIA)
-@@ -43,7 +47,7 @@ NativePixmapPlane::NativePixmapPlane(int
+ #elif BUILDFLAG(IS_FUCHSIA)
+@@ -47,7 +51,7 @@ NativePixmapPlane::NativePixmapPlane(int
: stride(stride),
offset(offset),
size(size)
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
,
fd(std::move(fd))
- #elif defined(OS_FUCHSIA)
-@@ -71,7 +75,7 @@ NativePixmapHandle& NativePixmapHandle::
+ #elif BUILDFLAG(IS_FUCHSIA)
+@@ -75,7 +79,7 @@ NativePixmapHandle& NativePixmapHandle::
NativePixmapHandle CloneHandleForIPC(const NativePixmapHandle& handle) {
NativePixmapHandle clone;
for (auto& plane : handle.planes) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
DCHECK(plane.fd.is_valid());
- base::ScopedFD fd_dup(HANDLE_EINTR(dup(plane.fd.get())));
- if (!fd_dup.is_valid()) {
-@@ -97,7 +101,7 @@ NativePixmapHandle CloneHandleForIPC(con
+ // Combining the HANDLE_EINTR and ScopedFD's constructor causes the compiler
+ // to emit some very strange assembly that tends to cause FD ownership
+@@ -113,7 +117,7 @@ NativePixmapHandle CloneHandleForIPC(con
#endif
}
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
clone.modifier = handle.modifier;
- #endif
-
+ clone.supports_zero_copy_webgpu_import =
+ handle.supports_zero_copy_webgpu_import;
diff --git a/chromium/patches/patch-ui_gfx_native__pixmap__handle.h b/chromium/patches/patch-ui_gfx_native__pixmap__handle.h
index 7f8974e2c6..2341be77f5 100644
--- a/chromium/patches/patch-ui_gfx_native__pixmap__handle.h
+++ b/chromium/patches/patch-ui_gfx_native__pixmap__handle.h
@@ -1,40 +1,44 @@
$NetBSD$
---- ui/gfx/native_pixmap_handle.h.orig 2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/native_pixmap_handle.h.orig 2024-07-24 02:45:10.628074000 +0000
+++ ui/gfx/native_pixmap_handle.h
-@@ -15,7 +15,7 @@
- #include "build/build_config.h"
+@@ -14,7 +14,7 @@
+ #include "ui/gfx/buffer_types.h"
#include "ui/gfx/gfx_export.h"
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "base/files/scoped_file.h"
#endif
-@@ -32,7 +32,7 @@ struct GFX_EXPORT NativePixmapPlane {
+@@ -34,7 +34,7 @@ struct GFX_EXPORT NativePixmapPlane {
NativePixmapPlane(int stride,
int offset,
uint64_t size
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
,
base::ScopedFD fd
- #elif defined(OS_FUCHSIA)
-@@ -53,7 +53,7 @@ struct GFX_EXPORT NativePixmapPlane {
+ #elif BUILDFLAG(IS_FUCHSIA)
+@@ -55,7 +55,7 @@ struct GFX_EXPORT NativePixmapPlane {
// This is necessary to map the buffers.
uint64_t size;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// File descriptor for the underlying memory object (usually dmabuf).
base::ScopedFD fd;
- #elif defined(OS_FUCHSIA)
-@@ -82,7 +82,7 @@ struct GFX_EXPORT NativePixmapHandle {
+ #elif BUILDFLAG(IS_FUCHSIA)
+@@ -78,7 +78,7 @@ struct GFX_EXPORT NativePixmapHandle {
std::vector<NativePixmapPlane> planes;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// The modifier is retrieved from GBM library and passed to EGL driver.
// Generally it's platform specific, and we don't need to modify it in
// Chromium code. Also one per plane per entry.
diff --git a/chromium/patches/patch-ui_gfx_native__widget__types.h b/chromium/patches/patch-ui_gfx_native__widget__types.h
index 30780b25a7..c272213182 100644
--- a/chromium/patches/patch-ui_gfx_native__widget__types.h
+++ b/chromium/patches/patch-ui_gfx_native__widget__types.h
@@ -1,22 +1,26 @@
$NetBSD$
---- ui/gfx/native_widget_types.h.orig 2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/native_widget_types.h.orig 2024-07-24 02:45:10.628074000 +0000
+++ ui/gfx/native_widget_types.h
-@@ -103,7 +103,7 @@ class ViewAndroid;
- #endif
- class SkBitmap;
+@@ -104,7 +104,7 @@ class SkBitmap;
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
extern "C" {
struct _AtkObject;
- typedef struct _AtkObject AtkObject;
-@@ -210,7 +210,7 @@ typedef id NativeViewAccessible;
- #elif defined(OS_MACOSX)
- typedef NSFont* NativeFont;
- typedef id NativeViewAccessible;
--#elif defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#elif (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ using AtkObject = struct _AtkObject;
+@@ -220,7 +220,7 @@ using NativeViewAccessible = struct objc
+ #endif
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
// Linux doesn't have a native font type.
- typedef AtkObject* NativeViewAccessible;
+ using NativeViewAccessible = AtkObject*;
#else
diff --git a/chromium/patches/patch-ui_gfx_platform__font__skia.cc b/chromium/patches/patch-ui_gfx_platform__font__skia.cc
new file mode 100644
index 0000000000..65655a821a
--- /dev/null
+++ b/chromium/patches/patch-ui_gfx_platform__font__skia.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/platform_font_skia.cc.orig 2024-07-24 02:45:10.632074400 +0000
++++ ui/gfx/platform_font_skia.cc
+@@ -30,7 +30,7 @@
+ #include "ui/gfx/system_fonts_win.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/linux/linux_ui.h"
+ #endif
+
+@@ -168,7 +168,7 @@ void PlatformFontSkia::EnsuresDefaultFon
+ weight = system_font.GetWeight();
+ #endif // BUILDFLAG(IS_WIN)
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // On Linux, LinuxUi is used to query the native toolkit (e.g.
+ // GTK) for the default UI font.
+ if (auto* linux_ui = ui::LinuxUi::instance()) {
diff --git a/chromium/patches/patch-ui_gfx_render__text__api__fuzzer.cc b/chromium/patches/patch-ui_gfx_render__text__api__fuzzer.cc
new file mode 100644
index 0000000000..04ebe0fbff
--- /dev/null
+++ b/chromium/patches/patch-ui_gfx_render__text__api__fuzzer.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/render_text_api_fuzzer.cc.orig 2024-07-24 02:45:10.632074400 +0000
++++ ui/gfx/render_text_api_fuzzer.cc
+@@ -20,7 +20,7 @@
+ #include "ui/gfx/font_util.h"
+ #include "ui/gfx/render_text.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "third_party/test_fonts/fontconfig/fontconfig_util_linux.h"
+ #endif
+
+@@ -47,7 +47,7 @@ struct Environment {
+
+ CHECK(base::i18n::InitializeICU());
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ test_fonts::SetUpFontconfig();
+ #endif
+ gfx::InitializeFonts();
diff --git a/chromium/patches/patch-ui_gfx_render__text__fuzzer.cc b/chromium/patches/patch-ui_gfx_render__text__fuzzer.cc
new file mode 100644
index 0000000000..e3695063ec
--- /dev/null
+++ b/chromium/patches/patch-ui_gfx_render__text__fuzzer.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/render_text_fuzzer.cc.orig 2024-07-24 02:45:10.632074400 +0000
++++ ui/gfx/render_text_fuzzer.cc
+@@ -17,7 +17,7 @@
+ #include "ui/gfx/canvas.h"
+ #include "ui/gfx/font_util.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "third_party/test_fonts/fontconfig/fontconfig_util_linux.h"
+ #endif
+
+@@ -40,7 +40,7 @@ struct Environment {
+
+ CHECK(base::i18n::InitializeICU());
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ test_fonts::SetUpFontconfig();
+ #endif
+ gfx::InitializeFonts();
diff --git a/chromium/patches/patch-ui_gfx_switches.cc b/chromium/patches/patch-ui_gfx_switches.cc
new file mode 100644
index 0000000000..eaf5e9a04e
--- /dev/null
+++ b/chromium/patches/patch-ui_gfx_switches.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/switches.cc.orig 2024-07-24 02:45:10.640075000 +0000
++++ ui/gfx/switches.cc
+@@ -32,7 +32,7 @@ const char kForcePrefersNoReducedMotion[
+ // Run in headless mode, i.e., without a UI or display server dependencies.
+ const char kHeadless[] = "headless";
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Which X11 display to connect to. Emulates the GTK+ "--display=" command line
+ // argument. In use only with Ozone/X11.
+ const char kX11Display[] = "display";
diff --git a/chromium/patches/patch-ui_gfx_switches.h b/chromium/patches/patch-ui_gfx_switches.h
new file mode 100644
index 0000000000..f8648793be
--- /dev/null
+++ b/chromium/patches/patch-ui_gfx_switches.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/switches.h.orig 2024-07-24 02:45:10.640075000 +0000
++++ ui/gfx/switches.h
+@@ -19,7 +19,7 @@ GFX_SWITCHES_EXPORT extern const char kF
+ GFX_SWITCHES_EXPORT extern const char kForcePrefersNoReducedMotion[];
+ GFX_SWITCHES_EXPORT extern const char kHeadless[];
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ GFX_SWITCHES_EXPORT extern const char kX11Display[];
+ GFX_SWITCHES_EXPORT extern const char kNoXshm[];
+ #endif
diff --git a/chromium/patches/patch-ui_gfx_x_generated__protos_dri3.cc b/chromium/patches/patch-ui_gfx_x_generated__protos_dri3.cc
new file mode 100644
index 0000000000..16cf2f92ba
--- /dev/null
+++ b/chromium/patches/patch-ui_gfx_x_generated__protos_dri3.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/x/generated_protos/dri3.cc.orig 2024-07-24 02:45:10.648075800 +0000
++++ ui/gfx/x/generated_protos/dri3.cc
+@@ -27,6 +27,8 @@
+ #include <xcb/xcb.h>
+ #include <xcb/xcbext.h>
+
++#include <unistd.h>
++
+ #include "base/logging.h"
+ #include "base/posix/eintr_wrapper.h"
+ #include "ui/gfx/x/connection.h"
diff --git a/chromium/patches/patch-ui_gfx_x_generated__protos_shm.cc b/chromium/patches/patch-ui_gfx_x_generated__protos_shm.cc
new file mode 100644
index 0000000000..e2d0cd2b4e
--- /dev/null
+++ b/chromium/patches/patch-ui_gfx_x_generated__protos_shm.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/x/generated_protos/shm.cc.orig 2024-07-24 02:45:10.652076200 +0000
++++ ui/gfx/x/generated_protos/shm.cc
+@@ -27,6 +27,8 @@
+ #include <xcb/xcb.h>
+ #include <xcb/xcbext.h>
+
++#include <unistd.h>
++
+ #include "base/logging.h"
+ #include "base/posix/eintr_wrapper.h"
+ #include "ui/gfx/x/connection.h"
diff --git a/chromium/patches/patch-ui_gfx_x_xlib__support.cc b/chromium/patches/patch-ui_gfx_x_xlib__support.cc
new file mode 100644
index 0000000000..010d22327a
--- /dev/null
+++ b/chromium/patches/patch-ui_gfx_x_xlib__support.cc
@@ -0,0 +1,27 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/x/xlib_support.cc.orig 2024-07-24 02:45:10.660077000 +0000
++++ ui/gfx/x/xlib_support.cc
+@@ -39,10 +39,18 @@ void InitXlib() {
+ return;
+ }
+
++#if BUILDFLAG(IS_BSD)
++ CHECK(xlib_loader->Load("libX11.so"));
++#else
+ CHECK(xlib_loader->Load("libX11.so.6"));
++#endif
+
+ auto* xlib_xcb_loader = GetXlibXcbLoader();
++#if BUILDFLAG(IS_BSD)
++ CHECK(xlib_xcb_loader->Load("libX11-xcb.so"));
++#else
+ CHECK(xlib_xcb_loader->Load("libX11-xcb.so.1"));
++#endif
+
+ CHECK(xlib_loader->XInitThreads());
+
diff --git a/chromium/patches/patch-ui_gl_BUILD.gn b/chromium/patches/patch-ui_gl_BUILD.gn
index a0442a2aee..7ef0778526 100644
--- a/chromium/patches/patch-ui_gl_BUILD.gn
+++ b/chromium/patches/patch-ui_gl_BUILD.gn
@@ -1,31 +1,41 @@
$NetBSD$
---- ui/gl/BUILD.gn.orig 2020-06-25 09:32:24.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/gl/BUILD.gn.orig 2024-07-24 02:45:10.660077000 +0000
+++ ui/gl/BUILD.gn
-@@ -214,7 +214,7 @@ jumbo_component("gl") {
- "shared_gl_fence_egl.h",
- ]
+@@ -153,8 +153,6 @@ component("gl") {
+ defines += [ "GPU_ENABLE_SERVICE_LOGGING" ]
+ }
-- if (is_linux || use_ozone) {
-+ if (is_linux || use_ozone || is_bsd) {
- sources += [
- "gl_image_native_pixmap.cc",
- "gl_image_native_pixmap.h",
-@@ -230,7 +230,7 @@ jumbo_component("gl") {
- ]
- }
+- include_dirs = [ "//third_party/mesa_headers" ]
+-
+ all_dependent_configs = [ ":gl_config" ]
-- if (is_posix && !is_fuchsia && !is_mac) {
-+ if (is_posix && !is_fuchsia && !is_mac && !is_bsd) {
- # Windows has USE_EGL but doesn't support base::FileDescriptor.
- # libsync isn't supported or needed on MacOSX.
- # Fuchsia is excluded due to a libsync dependency and because it's
-@@ -499,7 +499,7 @@ jumbo_static_library("test_support") {
- "//ui/base",
+ public_configs = [ "//third_party/khronos:khronos_headers" ]
+@@ -171,7 +169,6 @@ component("gl") {
]
+ public_deps = [
+ "//base",
+- "//third_party/mesa_headers",
+ "//ui/events/platform",
+ "//ui/gfx",
+ "//ui/gfx/geometry",
+@@ -374,7 +371,6 @@ component("gl") {
+ data_deps += [
+ "//third_party/angle:libEGL",
+ "//third_party/angle:libGLESv2",
+- "//third_party/mesa_headers",
+ ]
+ if (enable_swiftshader) {
+ data_deps += [
+@@ -573,7 +569,6 @@ test("gl_unittests") {
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- deps += [ "//ui/platform_window/common" ]
- }
+ data_deps = [
+ "//testing/buildbot/filters:gl_unittests_filters",
+- "//third_party/mesa_headers",
+ ]
+ if (is_win) {
diff --git a/chromium/patches/patch-ui_gl_features.gni b/chromium/patches/patch-ui_gl_features.gni
deleted file mode 100644
index 49f509e111..0000000000
--- a/chromium/patches/patch-ui_gl_features.gni
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/gl/features.gni.orig 2020-06-25 09:32:24.000000000 +0000
-+++ ui/gl/features.gni
-@@ -9,7 +9,7 @@ declare_args() {
-
- # Should EGL support be compiled?
- # Can be overriden to test during bring up of EGL support on other platforms.
-- use_egl = is_win || is_android || is_linux || is_fuchsia || is_mac
-+ use_egl = is_win || is_android || is_linux || is_fuchsia || is_mac || is_bsd
-
- # Should Dawn support be compiled to back the WebGPU implementation?
- # Also controls linking Dawn depedencies in such as SPIRV-Tools/SPIRV-Cross.
diff --git a/chromium/patches/patch-ui_gl_gl__bindings.h b/chromium/patches/patch-ui_gl_gl__bindings.h
new file mode 100644
index 0000000000..e2f6a06a1e
--- /dev/null
+++ b/chromium/patches/patch-ui_gl_gl__bindings.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/gl/gl_bindings.h.orig 2024-07-24 02:45:10.668077700 +0000
++++ ui/gl/gl_bindings.h
+@@ -36,7 +36,7 @@
+ #include <GL/wglext.h>
+ #elif BUILDFLAG(IS_MAC)
+ #include <OpenGL/OpenGL.h>
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ using Display = struct _XDisplay;
+ using Bool = int;
+ using Status = int;
diff --git a/chromium/patches/patch-ui_gl_gl__context.cc b/chromium/patches/patch-ui_gl_gl__context.cc
new file mode 100644
index 0000000000..82762cc166
--- /dev/null
+++ b/chromium/patches/patch-ui_gl_gl__context.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/gl/gl_context.cc.orig 2024-07-24 02:45:10.676078600 +0000
++++ ui/gl/gl_context.cc
+@@ -472,7 +472,7 @@ bool GLContext::MakeVirtuallyCurrent(
+ DCHECK(virtual_context->IsCurrent(surface));
+
+ if (switched_real_contexts || virtual_context != current_virtual_context_) {
+-#if DCHECK_IS_ON()
++#if DCHECK_IS_ON() && !BUILDFLAG(IS_BSD)
+ GLenum error = glGetError();
+ // Accepting a context loss error here enables using debug mode to work on
+ // context loss handling in virtual context mode.
diff --git a/chromium/patches/patch-ui_gl_gl__fence.cc b/chromium/patches/patch-ui_gl_gl__fence.cc
index 45e8dbcc5f..d4279f6ca5 100644
--- a/chromium/patches/patch-ui_gl_gl__fence.cc
+++ b/chromium/patches/patch-ui_gl_gl__fence.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- ui/gl/gl_fence.cc.orig 2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/gl/gl_fence.cc.orig 2024-07-24 02:45:10.680079000 +0000
+++ ui/gl/gl_fence.cc
-@@ -18,7 +18,7 @@
- #include "ui/gl/gl_fence_apple.h"
+@@ -20,7 +20,7 @@
#endif
--#if defined(USE_EGL) && defined(OS_POSIX) && !defined(OS_MACOSX)
-+#if defined(USE_EGL) && defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD)
+ #if defined(USE_EGL)
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
#define USE_GL_FENCE_ANDROID_NATIVE_FENCE_SYNC
#include "ui/gl/gl_fence_android_native_fence_sync.h"
- #include "ui/gl/gl_surface_egl.h"
+ #endif
diff --git a/chromium/patches/patch-ui_gl_gl__implementation.cc b/chromium/patches/patch-ui_gl_gl__implementation.cc
new file mode 100644
index 0000000000..6cf1932366
--- /dev/null
+++ b/chromium/patches/patch-ui_gl_gl__implementation.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/gl/gl_implementation.cc.orig 2024-07-24 02:45:10.680079000 +0000
++++ ui/gl/gl_implementation.cc
+@@ -272,7 +272,7 @@ GetRequestedGLImplementationFromCommandL
+ *fallback_to_software_gl = false;
+ bool overrideUseSoftwareGL =
+ command_line->HasSwitch(switches::kOverrideUseSoftwareGLForTests);
+-#if BUILDFLAG(IS_LINUX) || \
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || \
+ (BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_CHROMEOS_DEVICE))
+ if (std::getenv("RUNNING_UNDER_RR")) {
+ // https://rr-project.org/ is a Linux-only record-and-replay debugger that
diff --git a/chromium/patches/patch-ui_gl_gl__switches.cc b/chromium/patches/patch-ui_gl_gl__switches.cc
new file mode 100644
index 0000000000..eeb549ee5e
--- /dev/null
+++ b/chromium/patches/patch-ui_gl_gl__switches.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/gl/gl_switches.cc.orig 2024-07-24 02:45:10.684079400 +0000
++++ ui/gl/gl_switches.cc
+@@ -11,7 +11,7 @@
+ #include "base/android/build_info.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include <vulkan/vulkan_core.h>
+ #include "third_party/angle/src/gpu_info_util/SystemInfo.h" // nogncheck
+ #endif
+@@ -299,7 +299,7 @@ bool IsDefaultANGLEVulkan() {
+ base::android::SDK_VERSION_Q)
+ return false;
+ #endif // BUILDFLAG(IS_ANDROID)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ angle::SystemInfo system_info;
+ if (!angle::GetSystemInfoVulkan(&system_info))
+ return false;
+@@ -311,7 +311,7 @@ bool IsDefaultANGLEVulkan() {
+
+ const auto& active_gpu = system_info.gpus[system_info.activeGPUIndex];
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Vulkan 1.1 is required.
+ if (active_gpu.driverApiVersion < VK_VERSION_1_1)
+ return false;
diff --git a/chromium/patches/patch-ui_gl_sync__control__vsync__provider.cc b/chromium/patches/patch-ui_gl_sync__control__vsync__provider.cc
index c86e5118a8..b9f88b119f 100644
--- a/chromium/patches/patch-ui_gl_sync__control__vsync__provider.cc
+++ b/chromium/patches/patch-ui_gl_sync__control__vsync__provider.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- ui/gl/sync_control_vsync_provider.cc.orig 2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/gl/sync_control_vsync_provider.cc.orig 2024-07-24 02:45:10.692080000 +0000
+++ ui/gl/sync_control_vsync_provider.cc
@@ -11,7 +11,7 @@
#include "base/trace_event/trace_event.h"
#include "build/build_config.h"
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// These constants define a reasonable range for a calculated refresh interval.
// Calculating refreshes out of this range will be considered a fatal error.
const int64_t kMinVsyncIntervalUs = base::Time::kMicrosecondsPerSecond / 400;
@@ -15,8 +19,8 @@ $NetBSD$
namespace gl {
SyncControlVSyncProvider::SyncControlVSyncProvider() : gfx::VSyncProvider() {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// On platforms where we can't get an accurate reading on the refresh
// rate we fall back to the assumption that we're displaying 60 frames
// per second.
@@ -24,17 +28,17 @@ $NetBSD$
base::TimeTicks* timebase_out,
base::TimeDelta* interval_out) {
TRACE_EVENT0("gpu", "SyncControlVSyncProvider::GetVSyncParameters");
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // The actual clock used for the system time returned by glXGetSyncValuesOML
- // is unspecified. In practice, the clock used is likely to be either
- // CLOCK_REALTIME or CLOCK_MONOTONIC, so we compare the returned time to the
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // The actual clock used for the system time returned by
+ // eglGetSyncValuesCHROMIUM is unspecified. In practice, the clock used is
+ // likely to be either CLOCK_REALTIME or CLOCK_MONOTONIC, so we compare the
@@ -160,7 +160,7 @@ bool SyncControlVSyncProvider::GetVSyncP
}
bool SyncControlVSyncProvider::SupportGetVSyncParametersIfAvailable() const {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
return true;
#else
return false;
diff --git a/chromium/patches/patch-ui_gl_sync__control__vsync__provider.h b/chromium/patches/patch-ui_gl_sync__control__vsync__provider.h
index d83d3c38d2..5eba7c0fb7 100644
--- a/chromium/patches/patch-ui_gl_sync__control__vsync__provider.h
+++ b/chromium/patches/patch-ui_gl_sync__control__vsync__provider.h
@@ -1,22 +1,26 @@
$NetBSD$
---- ui/gl/sync_control_vsync_provider.h.orig 2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/gl/sync_control_vsync_provider.h.orig 2024-07-24 02:45:10.692080000 +0000
+++ ui/gl/sync_control_vsync_provider.h
-@@ -26,7 +26,7 @@ class SyncControlVSyncProvider : public
+@@ -31,7 +31,7 @@ class SyncControlVSyncProvider : public
bool SupportGetVSyncParametersIfAvailable() const override;
static constexpr bool IsSupported() {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
return true;
#else
return false;
-@@ -41,7 +41,7 @@ class SyncControlVSyncProvider : public
+@@ -46,7 +46,7 @@ class SyncControlVSyncProvider : public
virtual bool GetMscRate(int32_t* numerator, int32_t* denominator) = 0;
private:
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
base::TimeTicks last_timebase_;
uint64_t last_media_stream_counter_ = 0;
base::TimeDelta last_good_interval_;
diff --git a/chromium/patches/patch-ui_gtk_BUILD.gn b/chromium/patches/patch-ui_gtk_BUILD.gn
deleted file mode 100644
index cfa41d9a1e..0000000000
--- a/chromium/patches/patch-ui_gtk_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/gtk/BUILD.gn.orig 2020-06-25 09:32:24.000000000 +0000
-+++ ui/gtk/BUILD.gn
-@@ -2,7 +2,7 @@
- # Use of this source code is governed by a BSD-style license that can be
- # found in the LICENSE file.
-
--assert(is_linux, "This file should only be referenced on Linux")
-+assert(is_linux || is_bsd, "This file should only be referenced on Linux")
-
- import("//build/config/features.gni")
- import("//build/config/jumbo.gni")
diff --git a/chromium/patches/patch-ui_gtk_gtk__compat.cc b/chromium/patches/patch-ui_gtk_gtk__compat.cc
new file mode 100644
index 0000000000..6db49d54a5
--- /dev/null
+++ b/chromium/patches/patch-ui_gtk_gtk__compat.cc
@@ -0,0 +1,56 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/gtk/gtk_compat.cc.orig 2024-07-24 02:45:10.692080000 +0000
++++ ui/gtk/gtk_compat.cc
+@@ -62,27 +62,47 @@ auto DlCast(void* symbol) {
+ }
+
+ void* GetLibGio() {
++#if BUILDFLAG(IS_BSD)
++ static void* libgio = DlOpen("libgio-2.0.so");
++#else
+ static void* libgio = DlOpen("libgio-2.0.so.0");
++#endif
+ return libgio;
+ }
+
+ void* GetLibGdkPixbuf() {
++#if BUILDFLAG(IS_BSD)
++ static void* libgdk_pixbuf = DlOpen("libgdk_pixbuf-2.0.so");
++#else
+ static void* libgdk_pixbuf = DlOpen("libgdk_pixbuf-2.0.so.0");
++#endif
+ return libgdk_pixbuf;
+ }
+
+ void* GetLibGdk3() {
++#if BUILDFLAG(IS_BSD)
++ static void* libgdk3 = DlOpen("libgdk-3.so");
++#else
+ static void* libgdk3 = DlOpen("libgdk-3.so.0");
++#endif
+ return libgdk3;
+ }
+
+ void* GetLibGtk3(bool check = true) {
++#if BUILDFLAG(IS_BSD)
++ static void* libgtk3 = DlOpen("libgtk-3.so", check);
++#else
+ static void* libgtk3 = DlOpen("libgtk-3.so.0", check);
++#endif
+ return libgtk3;
+ }
+
+ void* GetLibGtk4(bool check = true) {
++#if BUILDFLAG(IS_BSD)
++ static void* libgtk4 = DlOpen("libgtk-4.so", check);
++#else
+ static void* libgtk4 = DlOpen("libgtk-4.so.1", check);
++#endif
+ return libgtk4;
+ }
+
diff --git a/chromium/patches/patch-ui_gtk_printing_print__dialog__gtk.cc b/chromium/patches/patch-ui_gtk_printing_print__dialog__gtk.cc
index dd084ade1f..db3776f369 100644
--- a/chromium/patches/patch-ui_gtk_printing_print__dialog__gtk.cc
+++ b/chromium/patches/patch-ui_gtk_printing_print__dialog__gtk.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- ui/gtk/printing/print_dialog_gtk.cc.orig 2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/gtk/printing/print_dialog_gtk.cc.orig 2024-07-24 02:45:10.696080400 +0000
+++ ui/gtk/printing/print_dialog_gtk.cc
-@@ -352,7 +352,7 @@ void PrintDialogGtk::ShowDialog(
- // Since we only generate PDF, only show printers that support PDF.
- // TODO(thestig) Add more capabilities to support?
+@@ -434,7 +434,7 @@ void PrintDialogGtk::ShowDialog(
GtkPrintCapabilities cap = static_cast<GtkPrintCapabilities>(
-- GTK_PRINT_CAPABILITY_GENERATE_PDF | GTK_PRINT_CAPABILITY_PAGE_SET |
-+ GTK_PRINT_CAPABILITY_GENERATE_PS | GTK_PRINT_CAPABILITY_GENERATE_PDF | GTK_PRINT_CAPABILITY_PAGE_SET |
+ GTK_PRINT_CAPABILITY_GENERATE_PDF | GTK_PRINT_CAPABILITY_PAGE_SET |
GTK_PRINT_CAPABILITY_COPIES | GTK_PRINT_CAPABILITY_COLLATE |
- GTK_PRINT_CAPABILITY_REVERSE);
+- GTK_PRINT_CAPABILITY_REVERSE);
++ GTK_PRINT_CAPABILITY_REVERSE | GTK_PRINT_CAPABILITY_GENERATE_PS);
gtk_print_unix_dialog_set_manual_capabilities(GTK_PRINT_UNIX_DIALOG(dialog_),
+ cap);
+ gtk_print_unix_dialog_set_embed_page_setup(GTK_PRINT_UNIX_DIALOG(dialog_),
diff --git a/chromium/patches/patch-ui_message__center_views_message__popup__view.cc b/chromium/patches/patch-ui_message__center_views_message__popup__view.cc
index 1aa53c3eda..b9d15deb2d 100644
--- a/chromium/patches/patch-ui_message__center_views_message__popup__view.cc
+++ b/chromium/patches/patch-ui_message__center_views_message__popup__view.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- ui/message_center/views/message_popup_view.cc.orig 2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/message_center/views/message_popup_view.cc.orig 2024-07-24 02:45:10.708081700 +0000
+++ ui/message_center/views/message_popup_view.cc
-@@ -101,7 +101,7 @@ void MessagePopupView::AutoCollapse() {
- void MessagePopupView::Show() {
- views::Widget::InitParams params(views::Widget::InitParams::TYPE_POPUP);
+@@ -137,7 +137,7 @@ void MessagePopupView::Show() {
params.z_order = ui::ZOrderLevel::kFloatingWindow;
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
// Make the widget explicitly activatable as TYPE_POPUP is not activatable by
// default but we need focus for the inline reply textarea.
- params.activatable = views::Widget::InitParams::ACTIVATABLE_YES;
+ params.activatable = views::Widget::InitParams::Activatable::kYes;
diff --git a/chromium/patches/patch-ui_native__theme_native__theme.h b/chromium/patches/patch-ui_native__theme_native__theme.h
index f71900bc44..77676ded47 100644
--- a/chromium/patches/patch-ui_native__theme_native__theme.h
+++ b/chromium/patches/patch-ui_native__theme_native__theme.h
@@ -1,13 +1,17 @@
$NetBSD$
---- ui/native_theme/native_theme.h.orig 2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/native_theme/native_theme.h.orig 2024-07-24 02:45:10.712082000 +0000
+++ ui/native_theme/native_theme.h
-@@ -51,7 +51,7 @@ class NATIVE_THEME_EXPORT NativeTheme {
- // The part to be painted / sized.
- enum Part {
+@@ -62,7 +62,7 @@ class NATIVE_THEME_EXPORT NativeTheme {
kCheckbox,
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
kFrameTopArea,
#endif
kInnerSpinButton,
diff --git a/chromium/patches/patch-ui_native__theme_native__theme__base.cc b/chromium/patches/patch-ui_native__theme_native__theme__base.cc
index 2e78ef3f21..b3f7a823f4 100644
--- a/chromium/patches/patch-ui_native__theme_native__theme__base.cc
+++ b/chromium/patches/patch-ui_native__theme_native__theme__base.cc
@@ -1,22 +1,17 @@
$NetBSD$
---- ui/native_theme/native_theme_base.cc.orig 2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/native_theme/native_theme_base.cc.orig 2024-07-24 02:45:10.712082000 +0000
+++ ui/native_theme/native_theme_base.cc
-@@ -255,7 +255,7 @@ void NativeThemeBase::Paint(cc::PaintCan
- case kCheckbox:
- PaintCheckbox(canvas, state, rect, extra.button, color_scheme);
+@@ -236,7 +236,7 @@ void NativeThemeBase::Paint(cc::PaintCan
break;
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
case kFrameTopArea:
- PaintFrameTopArea(canvas, state, rect, extra.frame_top_area,
- color_scheme);
-@@ -1483,7 +1483,7 @@ SkColor NativeThemeBase::OutlineColor(Sk
- SkScalar min_diff =
- base::ClampToRange((hsv1[1] + hsv2[1]) * 1.2f, 0.28f, 0.5f);
- SkScalar diff =
-- base::ClampToRange(fabs(hsv1[2] - hsv2[2]) / 2, min_diff, 0.5f);
-+ base::ClampToRange(fabsf(hsv1[2] - hsv2[2]) / 2, min_diff, 0.5f);
-
- if (hsv1[2] + hsv2[2] > 1.0)
- diff = -diff;
+ PaintFrameTopArea(canvas, state, rect,
+ absl::get<FrameTopAreaExtraParams>(extra),
diff --git a/chromium/patches/patch-ui_native__theme_native__theme__features.cc b/chromium/patches/patch-ui_native__theme_native__theme__features.cc
new file mode 100644
index 0000000000..606fe06d52
--- /dev/null
+++ b/chromium/patches/patch-ui_native__theme_native__theme__features.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/native_theme/native_theme_features.cc.orig 2024-07-24 02:45:10.716082300 +0000
++++ ui/native_theme/native_theme_features.cc
+@@ -54,7 +54,7 @@ bool IsOverlayScrollbarEnabled() {
+
+ bool IsFluentScrollbarEnabled() {
+ // Fluent scrollbars are only used for some OSes due to UI design guidelines.
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return base::FeatureList::IsEnabled(features::kFluentScrollbar) ||
+ IsFluentOverlayScrollbarEnabled();
+ #else
+@@ -63,7 +63,7 @@ bool IsFluentScrollbarEnabled() {
+ }
+ bool IsFluentOverlayScrollbarEnabled() {
+ // Fluent scrollbars are only used for some OSes due to UI design guidelines.
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return base::FeatureList::IsEnabled(features::kFluentOverlayScrollbar);
+ #else
+ return false;
diff --git a/chromium/patches/patch-ui_ozone_common_egl__util.cc b/chromium/patches/patch-ui_ozone_common_egl__util.cc
new file mode 100644
index 0000000000..745177c75e
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_common_egl__util.cc
@@ -0,0 +1,20 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/common/egl_util.cc.orig 2024-07-24 02:45:10.716082300 +0000
++++ ui/ozone/common/egl_util.cc
+@@ -26,9 +26,9 @@ const base::FilePath::CharType kDefaultG
+ FILE_PATH_LITERAL("libGLESv2.so");
+ #else // BUILDFLAG(IS_FUCHSIA)
+ const base::FilePath::CharType kDefaultEglSoname[] =
+- FILE_PATH_LITERAL("libEGL.so.1");
++ FILE_PATH_LITERAL("libEGL.so");
+ const base::FilePath::CharType kDefaultGlesSoname[] =
+- FILE_PATH_LITERAL("libGLESv2.so.2");
++ FILE_PATH_LITERAL("libGLESv2.so");
+ #endif
+ const base::FilePath::CharType kAngleEglSoname[] =
+ FILE_PATH_LITERAL("libEGL.so");
diff --git a/chromium/patches/patch-ui_ozone_common_features.cc b/chromium/patches/patch-ui_ozone_common_features.cc
new file mode 100644
index 0000000000..1799d63663
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_common_features.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/common/features.cc.orig 2024-07-24 02:45:10.716082300 +0000
++++ ui/ozone/common/features.cc
+@@ -30,7 +30,7 @@ BASE_FEATURE(kWaylandSurfaceSubmissionIn
+ // enabled.
+ BASE_FEATURE(kWaylandFractionalScaleV1,
+ "WaylandFractionalScaleV1",
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+ base::FEATURE_DISABLED_BY_DEFAULT
diff --git a/chromium/patches/patch-ui_ozone_platform_headless_headless__surface__factory.cc b/chromium/patches/patch-ui_ozone_platform_headless_headless__surface__factory.cc
new file mode 100644
index 0000000000..43496c492c
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_headless_headless__surface__factory.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/headless/headless_surface_factory.cc.orig 2024-07-24 02:45:10.740084600 +0000
++++ ui/ozone/platform/headless/headless_surface_factory.cc
+@@ -34,7 +34,7 @@
+ #include "ui/ozone/platform/headless/headless_window_manager.h"
+ #include "ui/ozone/public/surface_ozone_canvas.h"
+
+-#if BUILDFLAG(ENABLE_VULKAN) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA))
++#if BUILDFLAG(ENABLE_VULKAN) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD))
+ #include "ui/ozone/platform/headless/vulkan_implementation_headless.h"
+ #endif
+
+@@ -281,7 +281,7 @@ std::unique_ptr<gpu::VulkanImplementatio
+ HeadlessSurfaceFactory::CreateVulkanImplementation(
+ bool use_swiftshader,
+ bool allow_protected_memory) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ return std::make_unique<VulkanImplementationHeadless>(use_swiftshader);
+ #else
+ return nullptr;
diff --git a/chromium/patches/patch-ui_ozone_platform_headless_ozone__platform__headless.cc b/chromium/patches/patch-ui_ozone_platform_headless_ozone__platform__headless.cc
new file mode 100644
index 0000000000..d13794c315
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_headless_ozone__platform__headless.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/headless/ozone_platform_headless.cc.orig 2024-07-24 02:45:10.740084600 +0000
++++ ui/ozone/platform/headless/ozone_platform_headless.cc
+@@ -103,7 +103,7 @@ class OzonePlatformHeadless : public Ozo
+ }
+
+ // Desktop Linux, not CastOS.
+-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && !BUILDFLAG(IS_CASTOS)
+ const PlatformProperties& GetPlatformProperties() override {
+ static base::NoDestructor<OzonePlatform::PlatformProperties> properties;
+ static bool initialized = false;
diff --git a/chromium/patches/patch-ui_ozone_platform_headless_vulkan__implementation__headless.cc b/chromium/patches/patch-ui_ozone_platform_headless_vulkan__implementation__headless.cc
new file mode 100644
index 0000000000..314fa2343c
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_headless_vulkan__implementation__headless.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/headless/vulkan_implementation_headless.cc.orig 2024-07-24 02:45:10.740084600 +0000
++++ ui/ozone/platform/headless/vulkan_implementation_headless.cc
+@@ -118,7 +118,7 @@ VulkanImplementationHeadless::ExportVkFe
+
+ VkExternalSemaphoreHandleTypeFlagBits
+ VulkanImplementationHeadless::GetExternalSemaphoreHandleType() {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT;
+ #else
+ return VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT;
+@@ -128,7 +128,7 @@ VulkanImplementationHeadless::GetExterna
+ bool VulkanImplementationHeadless::CanImportGpuMemoryBuffer(
+ gpu::VulkanDeviceQueue* device_queue,
+ gfx::GpuMemoryBufferType memory_buffer_type) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const auto& enabled_extensions = device_queue->enabled_extensions();
+ return gfx::HasExtension(enabled_extensions,
+ VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME) &&
+@@ -151,7 +151,7 @@ VulkanImplementationHeadless::CreateImag
+ VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT |
+ VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT;
+ auto tiling = VK_IMAGE_TILING_OPTIMAL;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (gmb_handle.native_pixmap_handle.modifier !=
+ gfx::NativePixmapHandle::kNoModifier) {
+ tiling = VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT;
diff --git a/chromium/patches/patch-ui_ozone_platform_wayland_BUILD.gn b/chromium/patches/patch-ui_ozone_platform_wayland_BUILD.gn
deleted file mode 100644
index 8e017a4924..0000000000
--- a/chromium/patches/patch-ui_ozone_platform_wayland_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/ozone/platform/wayland/BUILD.gn.orig 2020-07-15 18:56:49.000000000 +0000
-+++ ui/ozone/platform/wayland/BUILD.gn
-@@ -173,7 +173,7 @@ source_set("wayland") {
- "//ui/platform_window/platform_window_handler",
- ]
-
-- if (is_linux && !is_chromeos) {
-+ if ((is_linux || is_bsd) && !is_chromeos) {
- deps += [ "//ui/base/ime/linux" ]
- }
-
diff --git a/chromium/patches/patch-ui_ozone_platform_wayland_common_wayland__util.cc b/chromium/patches/patch-ui_ozone_platform_wayland_common_wayland__util.cc
new file mode 100644
index 0000000000..739d06c766
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_wayland_common_wayland__util.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/wayland/common/wayland_util.cc.orig 2024-07-24 02:45:10.744085000 +0000
++++ ui/ozone/platform/wayland/common/wayland_util.cc
+@@ -336,7 +336,7 @@ void TransformToWlArray(
+ }
+
+ base::TimeTicks EventMillisecondsToTimeTicks(uint32_t milliseconds) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // TODO(crbug.com/40287874): `milliseconds` comes from Weston that
+ // uses timestamp from libinput, which is different from TimeTicks.
+ // Use EventTimeForNow(), for now.
diff --git a/chromium/patches/patch-ui_ozone_platform_wayland_emulate_wayland__input__emulate.cc b/chromium/patches/patch-ui_ozone_platform_wayland_emulate_wayland__input__emulate.cc
new file mode 100644
index 0000000000..36558f78dd
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_wayland_emulate_wayland__input__emulate.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/wayland/emulate/wayland_input_emulate.cc.orig 2024-07-24 02:45:10.744085000 +0000
++++ ui/ozone/platform/wayland/emulate/wayland_input_emulate.cc
+@@ -284,7 +284,7 @@ void WaylandInputEmulate::EmulateUpdateD
+ }
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void WaylandInputEmulate::ForceUseScreenCoordinatesOnce() {
+ force_use_screen_coordinates_once_ = true;
+ }
diff --git a/chromium/patches/patch-ui_ozone_platform_wayland_emulate_wayland__input__emulate.h b/chromium/patches/patch-ui_ozone_platform_wayland_emulate_wayland__input__emulate.h
new file mode 100644
index 0000000000..336e04cdd1
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_wayland_emulate_wayland__input__emulate.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/wayland/emulate/wayland_input_emulate.h.orig 2024-07-24 02:45:10.744085000 +0000
++++ ui/ozone/platform/wayland/emulate/wayland_input_emulate.h
+@@ -68,7 +68,7 @@ class WaylandInputEmulate : public wl::W
+ uint32_t request_id);
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void ForceUseScreenCoordinatesOnce();
+ #endif
+
diff --git a/chromium/patches/patch-ui_ozone_platform_wayland_gpu_vulkan__implementation__wayland.cc b/chromium/patches/patch-ui_ozone_platform_wayland_gpu_vulkan__implementation__wayland.cc
new file mode 100644
index 0000000000..53989381ec
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_wayland_gpu_vulkan__implementation__wayland.cc
@@ -0,0 +1,20 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/wayland/gpu/vulkan_implementation_wayland.cc.orig 2024-07-24 02:45:10.744085000 +0000
++++ ui/ozone/platform/wayland/gpu/vulkan_implementation_wayland.cc
+@@ -38,7 +38,11 @@ bool VulkanImplementationWayland::Initia
+
+ path = path.Append("libvk_swiftshader.so");
+ } else {
++#if BUILDFLAG(IS_BSD)
++ path = base::FilePath("libvulkan.so");
++#else
+ path = base::FilePath("libvulkan.so.1");
++#endif
+ }
+
+ return vulkan_instance_.Initialize(path, required_extensions, {});
diff --git a/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__connection.cc b/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__connection.cc
new file mode 100644
index 0000000000..106adf2c0b
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__connection.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/wayland/host/wayland_connection.cc.orig 2024-07-24 02:45:10.752086000 +0000
++++ ui/ozone/platform/wayland/host/wayland_connection.cc
+@@ -532,7 +532,7 @@ bool WaylandConnection::ShouldUseOverlay
+ // isn't present on any non-exo Wayland compositors.
+ bool should_use_overlay_delegation =
+ IsWaylandOverlayDelegationEnabled() && !fractional_scale_manager_v1();
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Overlay delegation also requires a single-pixel-buffer protocol, which
+ // allows creation of non-backed solid color buffers. Even though only video
+ // overlays can be supported on Linux, these color buffers are still needed
diff --git a/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__input__method__context.cc b/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__input__method__context.cc
new file mode 100644
index 0000000000..e05b613b59
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__input__method__context.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/wayland/host/wayland_input_method_context.cc.orig 2024-07-24 02:45:10.756086300 +0000
++++ ui/ozone/platform/wayland/host/wayland_input_method_context.cc
+@@ -55,7 +55,7 @@ namespace {
+ // Only enable the preedit string for sequence mode (i.e. when using dead keys
+ // or the Compose key) on Linux ozone/wayland (see b/220370007).
+ constexpr CharacterComposer::PreeditStringMode kPreeditStringMode =
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ CharacterComposer::PreeditStringMode::kAlwaysEnabled;
+ #else
+ CharacterComposer::PreeditStringMode::kHexModeOnly;
diff --git a/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__popup.cc b/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__popup.cc
new file mode 100644
index 0000000000..49f4796311
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__popup.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/wayland/host/wayland_popup.cc.orig 2024-07-24 02:45:10.756086300 +0000
++++ ui/ozone/platform/wayland/host/wayland_popup.cc
+@@ -34,7 +34,7 @@ WaylandPopup::WaylandPopup(PlatformWindo
+ WaylandWindow* parent)
+ : WaylandWindow(delegate, connection) {
+ set_parent_window(parent);
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // TODO(crbug.com/330384470): Whether the popup appear depends on whether
+ // anchor point is outside of the parent xdg_surface. On Mutter the popup will
+ // not show when outside.
diff --git a/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__toplevel__window.cc b/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__toplevel__window.cc
new file mode 100644
index 0000000000..39687357d8
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__toplevel__window.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/wayland/host/wayland_toplevel_window.cc.orig 2024-07-24 02:45:10.760086800 +0000
++++ ui/ozone/platform/wayland/host/wayland_toplevel_window.cc
+@@ -604,7 +604,7 @@ void WaylandToplevelWindow::HandleAuraTo
+ const bool did_active_change = is_active_ != window_states.is_activated;
+ is_active_ = window_states.is_activated;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // The tiled state affects the window geometry, so apply it here.
+ if (window_states.tiled_edges != tiled_state_) {
+ // This configure changes the decoration insets. We should adjust the
diff --git a/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__toplevel__window.h b/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__toplevel__window.h
new file mode 100644
index 0000000000..fcdae580be
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__toplevel__window.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/wayland/host/wayland_toplevel_window.h.orig 2024-07-24 02:45:10.760086800 +0000
++++ ui/ozone/platform/wayland/host/wayland_toplevel_window.h
+@@ -258,7 +258,7 @@ class WaylandToplevelWindow : public Way
+ // The display ID to switch to in case the state is `kFullscreen`.
+ int64_t fullscreen_display_id_ = display::kInvalidDisplayId;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Contains the current state of the tiled edges.
+ WindowTiledEdges tiled_state_;
+ #endif
diff --git a/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__window.cc b/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__window.cc
new file mode 100644
index 0000000000..c76f60c85a
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__window.cc
@@ -0,0 +1,50 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/wayland/host/wayland_window.cc.orig 2024-07-24 02:45:10.760086800 +0000
++++ ui/ozone/platform/wayland/host/wayland_window.cc
+@@ -295,7 +295,7 @@ void WaylandWindow::OnPointerFocusChange
+ // Whenever the window gets the pointer focus back, the cursor shape must be
+ // updated. Otherwise, it is invalidated upon wl_pointer::leave and is not
+ // restored by the Wayland compositor.
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (focused && async_cursor_) {
+ async_cursor_->AddCursorLoadedCallback(
+ base::BindOnce(&WaylandWindow::OnCursorLoaded,
+@@ -554,7 +554,7 @@ bool WaylandWindow::ShouldUseNativeFrame
+ void WaylandWindow::SetCursor(scoped_refptr<PlatformCursor> platform_cursor) {
+ DCHECK(platform_cursor);
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ auto async_cursor = WaylandAsyncCursor::FromPlatformCursor(platform_cursor);
+
+ if (async_cursor_ == async_cursor) {
+@@ -766,7 +766,7 @@ std::string WaylandWindow::WindowStates:
+ } else {
+ base::TrimString(states, " ", &states);
+ }
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ states += "; tiled_edges: ";
+ std::string tiled = "";
+ if (tiled_edges.left) {
+@@ -1256,12 +1256,12 @@ void WaylandWindow::UpdateCursorShape(sc
+ cursor->bitmaps(), hotspot_in_dips,
+ std::ceil(cursor->cursor_image_scale_factor()));
+ }
+-#if !BUILDFLAG(IS_LINUX)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD)
+ cursor_ = cursor;
+ #endif
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void WaylandWindow::OnCursorLoaded(scoped_refptr<WaylandAsyncCursor> cursor,
+ scoped_refptr<BitmapCursor> bitmap_cursor) {
+ if (HasPointerFocus() && async_cursor_ == cursor && bitmap_cursor) {
diff --git a/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__window.h b/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__window.h
new file mode 100644
index 0000000000..4e2dbe71ff
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__window.h
@@ -0,0 +1,44 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/wayland/host/wayland_window.h.orig 2024-07-24 02:45:10.760086800 +0000
++++ ui/ozone/platform/wayland/host/wayland_window.h
+@@ -41,7 +41,7 @@
+ #include "ui/platform_window/platform_window_init_properties.h"
+ #include "ui/platform_window/wm/wm_drag_handler.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/ozone/platform/wayland/host/wayland_async_cursor.h"
+ #endif
+
+@@ -269,7 +269,7 @@ class WaylandWindow : public PlatformWin
+ bool is_snapped_secondary = false;
+ bool is_floated = false;
+ bool is_pip = false;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ WindowTiledEdges tiled_edges;
+ #endif
+
+@@ -551,7 +551,7 @@ class WaylandWindow : public PlatformWin
+
+ void UpdateCursorShape(scoped_refptr<BitmapCursor> cursor);
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void OnCursorLoaded(scoped_refptr<WaylandAsyncCursor> cursor,
+ scoped_refptr<BitmapCursor> bitmap_cursor);
+ #endif
+@@ -620,7 +620,7 @@ class WaylandWindow : public PlatformWin
+
+ wl::Object<zaura_surface> aura_surface_;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // The current asynchronously loaded cursor (Linux specific).
+ scoped_refptr<WaylandAsyncCursor> async_cursor_;
+ #else
diff --git a/chromium/patches/patch-ui_ozone_platform_wayland_host_xdg__toplevel__wrapper__impl.cc b/chromium/patches/patch-ui_ozone_platform_wayland_host_xdg__toplevel__wrapper__impl.cc
new file mode 100644
index 0000000000..6d3fdf389c
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_wayland_host_xdg__toplevel__wrapper__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/wayland/host/xdg_toplevel_wrapper_impl.cc.orig 2024-07-24 02:45:10.768087400 +0000
++++ ui/ozone/platform/wayland/host/xdg_toplevel_wrapper_impl.cc
+@@ -316,7 +316,7 @@ void XDGToplevelWrapperImpl::OnToplevelC
+ window_states.is_activated =
+ CheckIfWlArrayHasValue(states, XDG_TOPLEVEL_STATE_ACTIVATED);
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (xdg_toplevel_get_version(toplevel) >=
+ XDG_TOPLEVEL_STATE_TILED_LEFT_SINCE_VERSION) {
+ // All four tiled states have the same since version, so it is enough to
diff --git a/chromium/patches/patch-ui_ozone_platform_wayland_host_zwp__text__input__wrapper__v1.cc b/chromium/patches/patch-ui_ozone_platform_wayland_host_zwp__text__input__wrapper__v1.cc
new file mode 100644
index 0000000000..eda53c1d54
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_wayland_host_zwp__text__input__wrapper__v1.cc
@@ -0,0 +1,27 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v1.cc.orig 2024-07-24 02:45:10.768087400 +0000
++++ ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v1.cc
+@@ -226,6 +226,10 @@ void ZWPTextInputWrapperV1::SetSurroundi
+ // so if it exceeds 16 bits, it may be broken.
+ static constexpr size_t kSizeLimit = 60000;
+ if (HasAdvancedSurroundingTextSupport() && text.length() > kSizeLimit) {
++#if defined(__FreeBSD_version) && __FreeBSD_version < 1300048
++ PLOG(ERROR) << "memfd is not supported";
++ return;
++#else
+ base::ScopedFD memfd(memfd_create("surrounding_text", MFD_CLOEXEC));
+ if (!memfd.get()) {
+ PLOG(ERROR) << "Failed to create memfd";
+@@ -238,6 +242,7 @@ void ZWPTextInputWrapperV1::SetSurroundi
+ zcr_extended_text_input_v1_set_large_surrounding_text(
+ extended_obj_.get(), memfd.get(), text.length(),
+ selection_range.start(), selection_range.end());
++#endif
+ } else {
+ zwp_text_input_v1_set_surrounding_text(obj_.get(), text.c_str(),
+ selection_range.start(),
diff --git a/chromium/patches/patch-ui_ozone_platform_wayland_ozone__platform__wayland.cc b/chromium/patches/patch-ui_ozone_platform_wayland_ozone__platform__wayland.cc
new file mode 100644
index 0000000000..cab669b28b
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_wayland_ozone__platform__wayland.cc
@@ -0,0 +1,60 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/wayland/ozone_platform_wayland.cc.orig 2024-07-24 02:45:10.768087400 +0000
++++ ui/ozone/platform/wayland/ozone_platform_wayland.cc
+@@ -66,13 +66,13 @@
+ #include "ui/events/ozone/layout/stub/stub_keyboard_layout_engine.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/ozone/platform/wayland/host/wayland_cursor_factory.h"
+ #else
+ #include "ui/ozone/common/bitmap_cursor_factory.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/ozone/platform/wayland/host/linux_ui_delegate_wayland.h"
+ #endif
+
+@@ -267,7 +267,7 @@ class OzonePlatformWayland : public Ozon
+
+ buffer_manager_connector_ = std::make_unique<WaylandBufferManagerConnector>(
+ connection_->buffer_manager_host());
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ cursor_factory_ = std::make_unique<WaylandCursorFactory>(connection_.get());
+ #else
+ cursor_factory_ = std::make_unique<BitmapCursorFactory>();
+@@ -277,7 +277,7 @@ class OzonePlatformWayland : public Ozon
+
+ supported_buffer_formats_ =
+ connection_->buffer_manager_host()->GetSupportedBufferFormats();
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ linux_ui_delegate_ =
+ std::make_unique<LinuxUiDelegateWayland>(connection_.get());
+ #endif
+@@ -343,7 +343,7 @@ class OzonePlatformWayland : public Ozon
+ properties->supports_global_screen_coordinates =
+ kDefaultScreenCoordinateEnabled;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // TODO(crbug.com/40800718): Revisit (and maybe remove) once proper
+ // support, probably backed by org.freedesktop.portal.Screenshot.PickColor
+ // API is implemented. Note: this is restricted to Linux Desktop as Lacros
+@@ -536,7 +536,7 @@ class OzonePlatformWayland : public Ozon
+ DrmRenderNodePathFinder path_finder_;
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ std::unique_ptr<LinuxUiDelegateWayland> linux_ui_delegate_;
+ #endif
+ };
diff --git a/chromium/patches/patch-ui_ozone_platform_x11_vulkan__implementation__x11.cc b/chromium/patches/patch-ui_ozone_platform_x11_vulkan__implementation__x11.cc
new file mode 100644
index 0000000000..5f2db27462
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_x11_vulkan__implementation__x11.cc
@@ -0,0 +1,20 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/x11/vulkan_implementation_x11.cc.orig 2024-07-24 02:45:10.780088700 +0000
++++ ui/ozone/platform/x11/vulkan_implementation_x11.cc
+@@ -59,7 +59,11 @@ bool VulkanImplementationX11::Initialize
+
+ path = path.Append("libvk_swiftshader.so");
+ } else {
++#if BUILDFLAG(IS_BSD)
++ path = base::FilePath("libvulkan.so");
++#else
+ path = base::FilePath("libvulkan.so.1");
++#endif
+ }
+
+ return vulkan_instance_.Initialize(path, required_extensions, {});
diff --git a/chromium/patches/patch-ui_ozone_platform_x11_x11__screen__ozone.cc b/chromium/patches/patch-ui_ozone_platform_x11_x11__screen__ozone.cc
new file mode 100644
index 0000000000..23b07c04a5
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_x11_x11__screen__ozone.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/x11/x11_screen_ozone.cc.orig 2024-07-24 02:45:10.780088700 +0000
++++ ui/ozone/platform/x11/x11_screen_ozone.cc
+@@ -22,7 +22,7 @@
+ #include "ui/ozone/platform/x11/x11_window.h"
+ #include "ui/ozone/platform/x11/x11_window_manager.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/linux/linux_ui.h"
+ #endif
+
+@@ -97,7 +97,7 @@ X11ScreenOzone::X11ScreenOzone()
+ window_manager_(X11WindowManager::GetInstance()),
+ x11_display_manager_(std::make_unique<XDisplayManager>(this)) {
+ DCHECK(window_manager_);
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (auto* linux_ui = ui::LinuxUi::instance()) {
+ display_scale_factor_observer_.Observe(linux_ui);
+ }
+@@ -260,7 +260,7 @@ void X11ScreenOzone::OnEvent(const x11::
+ x11_display_manager_->OnEvent(xev);
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void X11ScreenOzone::OnDeviceScaleFactorChanged() {
+ x11_display_manager_->DispatchDelayedDisplayListUpdate();
+ }
diff --git a/chromium/patches/patch-ui_ozone_platform_x11_x11__screen__ozone.h b/chromium/patches/patch-ui_ozone_platform_x11_x11__screen__ozone.h
new file mode 100644
index 0000000000..78d4fa6378
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_x11_x11__screen__ozone.h
@@ -0,0 +1,44 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/x11/x11_screen_ozone.h.orig 2024-07-24 02:45:10.780088700 +0000
++++ ui/ozone/platform/x11/x11_screen_ozone.h
+@@ -16,7 +16,7 @@
+ #include "ui/gfx/x/event.h"
+ #include "ui/ozone/public/platform_screen.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/linux/device_scale_factor_observer.h"
+ #include "ui/linux/linux_ui.h"
+ #endif
+@@ -29,7 +29,7 @@ class X11WindowManager;
+ class X11ScreenOzone : public PlatformScreen,
+ public x11::EventObserver,
+ public XDisplayManager::Delegate
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ ,
+ public DeviceScaleFactorObserver
+ #endif
+@@ -97,7 +97,7 @@ class X11ScreenOzone : public PlatformSc
+ // ui::XDisplayManager::Delegate:
+ void OnXDisplayListUpdated() override;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // DeviceScaleFactorObserver:
+ void OnDeviceScaleFactorChanged() override;
+ #endif
+@@ -109,7 +109,7 @@ class X11ScreenOzone : public PlatformSc
+ // Indicates that |this| is initialized.
+ bool initialized_ = false;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ base::ScopedObservation<ui::LinuxUi, DeviceScaleFactorObserver>
+ display_scale_factor_observer_{this};
+ #endif
diff --git a/chromium/patches/patch-ui_ozone_platform_x11_x11__window.cc b/chromium/patches/patch-ui_ozone_platform_x11_x11__window.cc
new file mode 100644
index 0000000000..0c870b9134
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_x11_x11__window.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/x11/x11_window.cc.orig 2024-07-24 02:45:10.784089000 +0000
++++ ui/ozone/platform/x11/x11_window.cc
+@@ -1497,7 +1497,7 @@ void X11Window::OnXWindowStateChanged()
+ WindowTiledEdges tiled_state = GetTiledState();
+ if (tiled_state != tiled_state_) {
+ tiled_state_ = tiled_state;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ platform_window_delegate_->OnWindowTiledStateChanged(tiled_state);
+ UpdateDecorationInsets();
+ #endif
diff --git a/chromium/patches/patch-ui_ozone_test_mock__platform__window__delegate.h b/chromium/patches/patch-ui_ozone_test_mock__platform__window__delegate.h
new file mode 100644
index 0000000000..b136791417
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_test_mock__platform__window__delegate.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/test/mock_platform_window_delegate.h.orig 2024-07-24 02:45:10.788089300 +0000
++++ ui/ozone/test/mock_platform_window_delegate.h
+@@ -35,7 +35,7 @@ class MockPlatformWindowDelegate : publi
+ MOCK_METHOD2(OnWindowStateChanged,
+ void(PlatformWindowState old_state,
+ PlatformWindowState new_state));
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ MOCK_METHOD1(OnWindowTiledStateChanged,
+ void(WindowTiledEdges new_tiled_edges));
+ #endif
diff --git a/chromium/patches/patch-ui_platform__window_common_BUILD.gn b/chromium/patches/patch-ui_platform__window_common_BUILD.gn
deleted file mode 100644
index 38227b6619..0000000000
--- a/chromium/patches/patch-ui_platform__window_common_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/platform_window/common/BUILD.gn.orig 2020-06-25 09:32:24.000000000 +0000
-+++ ui/platform_window/common/BUILD.gn
-@@ -4,7 +4,7 @@
-
- import("//build/config/ui.gni")
-
--assert(is_linux)
-+assert(is_linux || is_bsd)
-
- component("common") {
- output_name = "platform_window_common"
diff --git a/chromium/patches/patch-ui_platform__window_extensions_BUILD.gn b/chromium/patches/patch-ui_platform__window_extensions_BUILD.gn
deleted file mode 100644
index e9060855cc..0000000000
--- a/chromium/patches/patch-ui_platform__window_extensions_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/platform_window/extensions/BUILD.gn.orig 2020-07-15 18:56:34.000000000 +0000
-+++ ui/platform_window/extensions/BUILD.gn
-@@ -19,7 +19,7 @@ source_set("extensions") {
- "//ui/platform_window",
- ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "x11_extension.cc",
- "x11_extension.h",
diff --git a/chromium/patches/patch-ui_platform__window_platform__window__delegate.cc b/chromium/patches/patch-ui_platform__window_platform__window__delegate.cc
new file mode 100644
index 0000000000..ed549b528e
--- /dev/null
+++ b/chromium/patches/patch-ui_platform__window_platform__window__delegate.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/platform_window/platform_window_delegate.cc.orig 2024-07-24 02:45:10.788089300 +0000
++++ ui/platform_window/platform_window_delegate.cc
+@@ -61,7 +61,7 @@ gfx::Insets PlatformWindowDelegate::Calc
+ return gfx::Insets();
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void PlatformWindowDelegate::OnWindowTiledStateChanged(
+ WindowTiledEdges new_tiled_edges) {}
+ #endif
diff --git a/chromium/patches/patch-ui_platform__window_platform__window__delegate.h b/chromium/patches/patch-ui_platform__window_platform__window__delegate.h
new file mode 100644
index 0000000000..ba43fcb0ce
--- /dev/null
+++ b/chromium/patches/patch-ui_platform__window_platform__window__delegate.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/platform_window/platform_window_delegate.h.orig 2024-07-24 02:45:10.788089300 +0000
++++ ui/platform_window/platform_window_delegate.h
+@@ -181,7 +181,7 @@ class COMPONENT_EXPORT(PLATFORM_WINDOW)
+ virtual void OnWindowStateChanged(PlatformWindowState old_state,
+ PlatformWindowState new_state) = 0;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Notifies the delegate that the tiled state of the window edges has changed.
+ virtual void OnWindowTiledStateChanged(WindowTiledEdges new_tiled_edges);
+ #endif
diff --git a/chromium/patches/patch-ui_platform__window_platform__window__init__properties.h b/chromium/patches/patch-ui_platform__window_platform__window__init__properties.h
index e2976bc26f..38fc0d3c4d 100644
--- a/chromium/patches/patch-ui_platform__window_platform__window__init__properties.h
+++ b/chromium/patches/patch-ui_platform__window_platform__window__init__properties.h
@@ -1,22 +1,26 @@
$NetBSD$
---- ui/platform_window/platform_window_init_properties.h.orig 2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/platform_window/platform_window_init_properties.h.orig 2024-07-24 02:45:10.788089300 +0000
+++ ui/platform_window/platform_window_init_properties.h
-@@ -41,7 +41,7 @@ enum class PlatformWindowOpacity {
-
- class WorkspaceExtensionDelegate;
+@@ -56,7 +56,7 @@ class WorkspaceExtensionDelegate;
+ class ScenicWindowDelegate;
+ #endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
class X11ExtensionDelegate;
#endif
-@@ -82,7 +82,7 @@ struct COMPONENT_EXPORT(PLATFORM_WINDOW)
+@@ -121,7 +121,7 @@ struct COMPONENT_EXPORT(PLATFORM_WINDOW)
- WorkspaceExtensionDelegate* workspace_extension_delegate = nullptr;
+ PlatformWindowShadowType shadow_type = PlatformWindowShadowType::kDefault;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
bool prefer_dark_theme = false;
- gfx::ImageSkia* icon = nullptr;
- base::Optional<int> background_color;
+ raw_ptr<gfx::ImageSkia> icon = nullptr;
+ std::optional<SkColor> background_color;
diff --git a/chromium/patches/patch-ui_qt_BUILD.gn b/chromium/patches/patch-ui_qt_BUILD.gn
new file mode 100644
index 0000000000..e038a94582
--- /dev/null
+++ b/chromium/patches/patch-ui_qt_BUILD.gn
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/qt/BUILD.gn.orig 2024-07-24 02:45:10.792089700 +0000
++++ ui/qt/BUILD.gn
+@@ -20,7 +20,7 @@ config("qt_internal_config") {
+
+ # It's OK to depend on the system libstdc++ since it's a dependency of QT, so
+ # it will get loaded into the process anyway.
+- libs = [ "stdc++" ]
++ # libs = [ "stdc++" ]
+
+ configs = [
+ "//build/config/linux:runtime_library",
diff --git a/chromium/patches/patch-ui_qt_qt.gni b/chromium/patches/patch-ui_qt_qt.gni
new file mode 100644
index 0000000000..71b17cebde
--- /dev/null
+++ b/chromium/patches/patch-ui_qt_qt.gni
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/qt/qt.gni.orig 2024-07-24 02:45:10.792089700 +0000
++++ ui/qt/qt.gni
+@@ -14,7 +14,7 @@ declare_args() {
+
+ declare_args() {
+ if (!use_sysroot && use_qt) {
+- moc_qt5_path = ""
++ moc_qt5_path = "@QTDIR@/bin"
+ }
+ }
+
diff --git a/chromium/patches/patch-ui_shell__dialogs_BUILD.gn b/chromium/patches/patch-ui_shell__dialogs_BUILD.gn
deleted file mode 100644
index 152594f208..0000000000
--- a/chromium/patches/patch-ui_shell__dialogs_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/shell_dialogs/BUILD.gn.orig 2020-07-15 18:56:49.000000000 +0000
-+++ ui/shell_dialogs/BUILD.gn
-@@ -34,7 +34,7 @@ jumbo_component("shell_dialogs") {
- "shell_dialogs_export.h",
- ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "shell_dialog_linux.cc",
- "shell_dialog_linux.h",
diff --git a/chromium/patches/patch-ui_strings_app__locale__settings.grd b/chromium/patches/patch-ui_strings_app__locale__settings.grd
deleted file mode 100644
index 10964d9f80..0000000000
--- a/chromium/patches/patch-ui_strings_app__locale__settings.grd
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/strings/app_locale_settings.grd.orig 2020-07-15 18:56:34.000000000 +0000
-+++ ui/strings/app_locale_settings.grd
-@@ -217,7 +217,7 @@
- 75%
- </message>
- </if>
-- <if expr="(is_linux or is_android or is_bsd) and not chromeos">
-+ <if expr="is_posix and not chromeos">
- <!-- The font used in Web UI (e.g. History). Note that these are only
- backups. We try to use the system font if possible. -->
- <message name="IDS_WEB_FONT_FAMILY" use_name_for_id="true">
diff --git a/chromium/patches/patch-ui_strings_translations_app__locale__settings__bn.xtb b/chromium/patches/patch-ui_strings_translations_app__locale__settings__bn.xtb
new file mode 100644
index 0000000000..993cdcc9b2
--- /dev/null
+++ b/chromium/patches/patch-ui_strings_translations_app__locale__settings__bn.xtb
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/strings/translations/app_locale_settings_bn.xtb.orig 2024-07-24 02:45:10.808091400 +0000
++++ ui/strings/translations/app_locale_settings_bn.xtb
+@@ -10,7 +10,7 @@
+ <translation id="IDS_WEB_FONT_FAMILY">Vrinda</translation>
+ <translation id="IDS_WEB_FONT_FAMILY_XP">Vrinda</translation>
+ </if>
+-<if expr="is_linux">
++<if expr="is_posix">
+ <translation id="IDS_WEB_FONT_FAMILY">Lohit Bengali</translation>
+ </if>
+ <if expr="is_chromeos">
diff --git a/chromium/patches/patch-ui_strings_translations_app__locale__settings__ja.xtb b/chromium/patches/patch-ui_strings_translations_app__locale__settings__ja.xtb
new file mode 100644
index 0000000000..12f675b055
--- /dev/null
+++ b/chromium/patches/patch-ui_strings_translations_app__locale__settings__ja.xtb
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/strings/translations/app_locale_settings_ja.xtb.orig 2024-07-24 02:45:10.812091600 +0000
++++ ui/strings/translations/app_locale_settings_ja.xtb
+@@ -12,7 +12,7 @@
+ <if expr="is_ios">
+ <translation id="IDS_WEB_FONT_FAMILY">Helvetica,Hiragino Kaku Gothic ProN,sans-serif</translation>
+ </if>
+-<if expr="is_linux">
++<if expr="is_posix">
+ <translation id="IDS_WEB_FONT_FAMILY">VL PGothic,Sazanami Gothic,Kochi Gothic,sans-serif</translation>
+ </if>
+ <if expr="is_chromeos">
diff --git a/chromium/patches/patch-ui_strings_translations_app__locale__settings__ko.xtb b/chromium/patches/patch-ui_strings_translations_app__locale__settings__ko.xtb
new file mode 100644
index 0000000000..7d986eb763
--- /dev/null
+++ b/chromium/patches/patch-ui_strings_translations_app__locale__settings__ko.xtb
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/strings/translations/app_locale_settings_ko.xtb.orig 2024-07-24 02:45:10.812091600 +0000
++++ ui/strings/translations/app_locale_settings_ko.xtb
+@@ -12,7 +12,7 @@
+ <if expr="is_ios">
+ <translation id="IDS_WEB_FONT_FAMILY">Helvetica,Apple SD Gothic Neo,AppleGothic,sans-serif</translation>
+ </if>
+-<if expr="is_linux">
++<if expr="is_posix">
+ <translation id="IDS_WEB_FONT_FAMILY">Noto Sans CJK KR,NanumGothic,UnDotum,Baekmuk Gulim,sans-serif</translation>
+ </if>
+ <if expr="is_chromeos">
diff --git a/chromium/patches/patch-ui_strings_translations_app__locale__settings__ml.xtb b/chromium/patches/patch-ui_strings_translations_app__locale__settings__ml.xtb
new file mode 100644
index 0000000000..5c45022fbc
--- /dev/null
+++ b/chromium/patches/patch-ui_strings_translations_app__locale__settings__ml.xtb
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/strings/translations/app_locale_settings_ml.xtb.orig 2024-07-24 02:45:10.812091600 +0000
++++ ui/strings/translations/app_locale_settings_ml.xtb
+@@ -9,7 +9,7 @@
+ <translation id="IDS_WEB_FONT_FAMILY">'Segoe UI',Arial,AnjaliOldLipi,Rachana,Kartika</translation>
+ <translation id="IDS_WEB_FONT_FAMILY_XP">Arial,AnjaliOldLipi,Rachana,Kartika</translation>
+ </if>
+-<if expr="is_linux">
++<if expr="is_posix">
+ <translation id="IDS_WEB_FONT_FAMILY">Arial,AnjaliOldLipi,Rachana,Kartika,sans-serif</translation>
+ </if>
+ <if expr="is_chromeos">
diff --git a/chromium/patches/patch-ui_strings_translations_app__locale__settings__th.xtb b/chromium/patches/patch-ui_strings_translations_app__locale__settings__th.xtb
new file mode 100644
index 0000000000..14199e4595
--- /dev/null
+++ b/chromium/patches/patch-ui_strings_translations_app__locale__settings__th.xtb
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/strings/translations/app_locale_settings_th.xtb.orig 2024-07-24 02:45:10.812091600 +0000
++++ ui/strings/translations/app_locale_settings_th.xtb
+@@ -6,7 +6,7 @@
+ <translation id="IDS_WEB_FONT_FAMILY">Tahoma,sans-serif</translation>
+ <translation id="IDS_WEB_FONT_FAMILY_XP">Tahoma,sans-serif</translation>
+ </if>
+-<if expr="is_linux">
++<if expr="is_posix">
+ <translation id="IDS_WEB_FONT_FAMILY">Norasi,Waree,Garuda,Loma,sans-serif</translation>
+ </if>
+ <if expr="is_chromeos">
diff --git a/chromium/patches/patch-ui_strings_translations_app__locale__settings__zh-CN.xtb b/chromium/patches/patch-ui_strings_translations_app__locale__settings__zh-CN.xtb
new file mode 100644
index 0000000000..1f7d10c0fe
--- /dev/null
+++ b/chromium/patches/patch-ui_strings_translations_app__locale__settings__zh-CN.xtb
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/strings/translations/app_locale_settings_zh-CN.xtb.orig 2024-07-24 02:45:10.812091600 +0000
++++ ui/strings/translations/app_locale_settings_zh-CN.xtb
+@@ -12,7 +12,7 @@
+ <if expr="is_ios">
+ <translation id="IDS_WEB_FONT_FAMILY">Helvetica,PingFang SC,STHeiti,sans-serif</translation>
+ </if>
+-<if expr="is_linux">
++<if expr="is_posix">
+ <translation id="IDS_WEB_FONT_FAMILY">Noto Sans CJK SC, WenQuanYi Zen Hei, sans-serif</translation>
+ </if>
+ <if expr="is_chromeos">
diff --git a/chromium/patches/patch-ui_strings_translations_app__locale__settings__zh-TW.xtb b/chromium/patches/patch-ui_strings_translations_app__locale__settings__zh-TW.xtb
new file mode 100644
index 0000000000..3a75d18b21
--- /dev/null
+++ b/chromium/patches/patch-ui_strings_translations_app__locale__settings__zh-TW.xtb
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/strings/translations/app_locale_settings_zh-TW.xtb.orig 2024-07-24 02:45:10.812091600 +0000
++++ ui/strings/translations/app_locale_settings_zh-TW.xtb
+@@ -12,7 +12,7 @@
+ <if expr="is_ios">
+ <translation id="IDS_WEB_FONT_FAMILY">Helvetica,PingFang TC,Heiti TC,sans-serif</translation>
+ </if>
+-<if expr="is_linux">
++<if expr="is_posix">
+ <translation id="IDS_WEB_FONT_FAMILY">Noto Sans CJK TC, WenQuanYi Zen Hei, sans-serif</translation>
+ </if>
+ <if expr="is_chromeos">
diff --git a/chromium/patches/patch-ui_views_BUILD.gn b/chromium/patches/patch-ui_views_BUILD.gn
deleted file mode 100644
index 5acebc4f13..0000000000
--- a/chromium/patches/patch-ui_views_BUILD.gn
+++ /dev/null
@@ -1,60 +0,0 @@
-$NetBSD$
-
---- ui/views/BUILD.gn.orig 2020-07-15 18:56:49.000000000 +0000
-+++ ui/views/BUILD.gn
-@@ -521,12 +521,12 @@ jumbo_component("views") {
- deps += [ "//ui/display/util" ]
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- public += [ "color_chooser/color_chooser_view.h" ]
- sources += [ "color_chooser/color_chooser_view.cc" ]
- }
-
-- if (is_linux && !is_chromeos) {
-+ if ((is_linux || is_bsd) && !is_chromeos) {
- sources -= [ "window/window_button_order_provider.cc" ]
- public_deps += [ "//ui/base/cursor:theme_manager" ]
- deps += [
-@@ -791,7 +791,7 @@ jumbo_component("views") {
- "widget/desktop_aura/desktop_screen_ozone.cc",
- ]
- }
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- public += [ "widget/desktop_aura/desktop_window_tree_host_linux.h" ]
- sources += [
- "style/platform_style_linux.cc",
-@@ -805,7 +805,7 @@ jumbo_component("views") {
- "//ui/platform_window/extensions",
- ]
- }
-- if (is_linux || is_fuchsia) {
-+ if (is_linux || is_fuchsia || is_bsd) {
- public += [
- "widget/desktop_aura/desktop_window_tree_host_platform.h",
- "widget/desktop_aura/window_move_client_platform.h",
-@@ -1190,7 +1190,7 @@ test("views_unittests") {
- ]
- }
-
-- if (is_linux && !is_chromeos) {
-+ if ((is_linux || is_bsd) && !is_chromeos) {
- deps += [ "//ui/base/ime/linux" ]
- }
-
-@@ -1282,11 +1282,11 @@ test("views_unittests") {
- ]
- deps += [ "//ui/base/x:test_support" ]
- }
-- if (is_linux || is_fuchsia) {
-+ if (is_linux || is_fuchsia || is_bsd) {
- sources += [
- "widget/desktop_aura/desktop_window_tree_host_platform_unittest.cc",
- ]
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- sources += [
- "widget/desktop_aura/desktop_window_tree_host_linux_unittest.cc",
- ]
diff --git a/chromium/patches/patch-ui_views_bubble_bubble__dialog__delegate__view.cc b/chromium/patches/patch-ui_views_bubble_bubble__dialog__delegate__view.cc
deleted file mode 100644
index 33a71ce3c7..0000000000
--- a/chromium/patches/patch-ui_views_bubble_bubble__dialog__delegate__view.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/views/bubble/bubble_dialog_delegate_view.cc.orig 2020-07-15 18:56:49.000000000 +0000
-+++ ui/views/bubble/bubble_dialog_delegate_view.cc
-@@ -283,7 +283,7 @@ Widget* BubbleDialogDelegate::CreateBubb
- bubble_delegate->SetAnchorView(bubble_delegate->GetAnchorView());
- Widget* bubble_widget = CreateBubbleWidget(bubble_delegate);
-
--#if (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_MACOSX)
-+#if ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)) || defined(OS_MACOSX)
- // Linux clips bubble windows that extend outside their parent window bounds.
- // Mac never adjusts.
- bubble_delegate->set_adjust_if_offscreen(false);
diff --git a/chromium/patches/patch-ui_views_controls_label.cc b/chromium/patches/patch-ui_views_controls_label.cc
deleted file mode 100644
index cae25cf470..0000000000
--- a/chromium/patches/patch-ui_views_controls_label.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- ui/views/controls/label.cc.orig 2020-07-15 18:56:49.000000000 +0000
-+++ ui/views/controls/label.cc
-@@ -710,7 +710,7 @@ bool Label::OnMousePressed(const ui::Mou
- GetFocusManager()->SetFocusedView(this);
- }
-
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- if (event.IsOnlyMiddleMouseButton() && GetFocusManager() && !had_focus)
- GetFocusManager()->SetFocusedView(this);
- #endif
-@@ -896,7 +896,7 @@ bool Label::PasteSelectionClipboard() {
- }
-
- void Label::UpdateSelectionClipboard() {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- if (!GetObscured()) {
- ui::ScopedClipboardWriter(ui::ClipboardBuffer::kSelection)
- .WriteText(GetSelectedText());
diff --git a/chromium/patches/patch-ui_views_controls_prefix__selector.cc b/chromium/patches/patch-ui_views_controls_prefix__selector.cc
new file mode 100644
index 0000000000..62460a0d6a
--- /dev/null
+++ b/chromium/patches/patch-ui_views_controls_prefix__selector.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/controls/prefix_selector.cc.orig 2024-07-24 02:45:10.900100200 +0000
++++ ui/views/controls/prefix_selector.cc
+@@ -174,7 +174,7 @@ bool PrefixSelector::ShouldDoLearning()
+ return false;
+ }
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ bool PrefixSelector::SetCompositionFromExistingText(
+ const gfx::Range& range,
+ const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) {
diff --git a/chromium/patches/patch-ui_views_controls_prefix__selector.h b/chromium/patches/patch-ui_views_controls_prefix__selector.h
new file mode 100644
index 0000000000..fddff3d8f2
--- /dev/null
+++ b/chromium/patches/patch-ui_views_controls_prefix__selector.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/controls/prefix_selector.h.orig 2024-07-24 02:45:10.900100200 +0000
++++ ui/views/controls/prefix_selector.h
+@@ -83,7 +83,7 @@ class VIEWS_EXPORT PrefixSelector : publ
+ ukm::SourceId GetClientSourceForMetrics() const override;
+ bool ShouldDoLearning() override;
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ bool SetCompositionFromExistingText(
+ const gfx::Range& range,
+ const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) override;
diff --git a/chromium/patches/patch-ui_views_controls_textfield_textfield.cc b/chromium/patches/patch-ui_views_controls_textfield_textfield.cc
index 00bff20812..16ac28b886 100644
--- a/chromium/patches/patch-ui_views_controls_textfield_textfield.cc
+++ b/chromium/patches/patch-ui_views_controls_textfield_textfield.cc
@@ -1,75 +1,70 @@
$NetBSD$
---- ui/views/controls/textfield/textfield.cc.orig 2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/controls/textfield/textfield.cc.orig 2024-07-24 02:45:10.908101000 +0000
+++ ui/views/controls/textfield/textfield.cc
-@@ -64,7 +64,7 @@
+@@ -91,7 +91,7 @@
#include "base/win/win_util.h"
#endif
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- #include "ui/base/ime/linux/text_edit_command_auralinux.h" // nogncheck
- #include "ui/base/ime/linux/text_edit_key_bindings_delegate_auralinux.h" // nogncheck
- #endif
-@@ -185,14 +185,14 @@ ui::TextEditCommand GetCommandForKeyEven
- #endif
- return ui::TextEditCommand::DELETE_BACKWARD;
- }
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // Only erase by line break on Linux and ChromeOS.
- if (shift)
- return ui::TextEditCommand::DELETE_TO_BEGINNING_OF_LINE;
- #endif
- return ui::TextEditCommand::DELETE_WORD_BACKWARD;
- case ui::VKEY_DELETE:
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // Only erase by line break on Linux and ChromeOS.
- if (shift && control)
- return ui::TextEditCommand::DELETE_TO_END_OF_LINE;
-@@ -260,7 +260,7 @@ bool IsControlKeyModifier(int flags) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/base/ime/linux/text_edit_command_auralinux.h"
+ #include "ui/base/ime/text_input_flags.h"
+ #include "ui/linux/linux_ui.h"
+@@ -189,7 +189,7 @@ bool IsControlKeyModifier(int flags) {
// Control-modified key combination, but we cannot extend it to other platforms
// as Control has different meanings and behaviors.
// https://crrev.com/2580483002/#msg46
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
return flags & ui::EF_CONTROL_DOWN;
#else
return false;
-@@ -711,7 +711,7 @@ bool Textfield::OnMousePressed(const ui:
- #endif
- }
-
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- if (!handled && !had_focus && event.IsOnlyMiddleMouseButton())
- RequestFocusWithPointer(ui::EventPointerType::kMouse);
- #endif
-@@ -757,7 +757,7 @@ bool Textfield::OnKeyPressed(const ui::K
+@@ -747,7 +747,7 @@ bool Textfield::OnKeyPressed(const ui::K
if (!textfield)
return handled;
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- ui::TextEditKeyBindingsDelegateAuraLinux* delegate =
- ui::GetTextEditKeyBindingsDelegate();
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ auto* linux_ui = ui::LinuxUi::instance();
std::vector<ui::TextEditCommandAuraLinux> commands;
-@@ -909,7 +909,7 @@ void Textfield::AboutToRequestFocusFromT
+ if (!handled && linux_ui &&
+@@ -930,7 +930,7 @@ void Textfield::AboutToRequestFocusFromT
}
bool Textfield::SkipDefaultKeyEventProcessing(const ui::KeyEvent& event) {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
// Skip any accelerator handling that conflicts with custom keybindings.
- ui::TextEditKeyBindingsDelegateAuraLinux* delegate =
- ui::GetTextEditKeyBindingsDelegate();
-@@ -2195,7 +2195,7 @@ bool Textfield::PasteSelectionClipboard(
+ auto* linux_ui = ui::LinuxUi::instance();
+ std::vector<ui::TextEditCommandAuraLinux> commands;
+@@ -1997,7 +1997,7 @@ bool Textfield::ShouldDoLearning() {
+ return false;
}
- void Textfield::UpdateSelectionClipboard() {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- if (text_input_type_ != ui::TEXT_INPUT_TYPE_PASSWORD) {
- ui::ScopedClipboardWriter(ui::ClipboardBuffer::kSelection)
- .WriteText(GetSelectedText());
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // TODO(crbug.com/41452689): Implement this method to support Korean IME
+ // reconversion feature on native text fields (e.g. find bar).
+ bool Textfield::SetCompositionFromExistingText(
+@@ -2501,14 +2501,14 @@ ui::TextEditCommand Textfield::GetComman
+ #endif
+ return ui::TextEditCommand::DELETE_BACKWARD;
+ }
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Only erase by line break on Linux and ChromeOS.
+ if (shift)
+ return ui::TextEditCommand::DELETE_TO_BEGINNING_OF_LINE;
+ #endif
+ return ui::TextEditCommand::DELETE_WORD_BACKWARD;
+ case ui::VKEY_DELETE:
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Only erase by line break on Linux and ChromeOS.
+ if (shift && control)
+ return ui::TextEditCommand::DELETE_TO_END_OF_LINE;
diff --git a/chromium/patches/patch-ui_views_controls_textfield_textfield.h b/chromium/patches/patch-ui_views_controls_textfield_textfield.h
new file mode 100644
index 0000000000..8a9310f01c
--- /dev/null
+++ b/chromium/patches/patch-ui_views_controls_textfield_textfield.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/controls/textfield/textfield.h.orig 2024-07-24 02:45:10.908101000 +0000
++++ ui/views/controls/textfield/textfield.h
+@@ -47,7 +47,7 @@
+ #include "ui/views/view_observer.h"
+ #include "ui/views/word_lookup_client.h"
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include <vector>
+ #endif
+
+@@ -462,7 +462,7 @@ class VIEWS_EXPORT Textfield : public Vi
+ // Set whether the text should be used to improve typing suggestions.
+ void SetShouldDoLearning(bool value) { should_do_learning_ = value; }
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ bool SetCompositionFromExistingText(
+ const gfx::Range& range,
+ const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) override;
diff --git a/chromium/patches/patch-ui_views_controls_webview_BUILD.gn b/chromium/patches/patch-ui_views_controls_webview_BUILD.gn
deleted file mode 100644
index c20441cabd..0000000000
--- a/chromium/patches/patch-ui_views_controls_webview_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/views/controls/webview/BUILD.gn.orig 2020-07-15 18:56:49.000000000 +0000
-+++ ui/views/controls/webview/BUILD.gn
-@@ -59,7 +59,7 @@ jumbo_component("webview") {
- "//ui/views",
- ]
-
-- if (is_linux || is_android || is_fuchsia) {
-+ if (is_linux || is_android || is_fuchsia || is_bsd) {
- sources += [ "unhandled_keyboard_event_handler_default.cc" ]
- }
- }
diff --git a/chromium/patches/patch-ui_views_corewm_tooltip__aura.cc b/chromium/patches/patch-ui_views_corewm_tooltip__aura.cc
index 9650aaa147..d563ff76e0 100644
--- a/chromium/patches/patch-ui_views_corewm_tooltip__aura.cc
+++ b/chromium/patches/patch-ui_views_corewm_tooltip__aura.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- ui/views/corewm/tooltip_aura.cc.orig 2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/corewm/tooltip_aura.cc.orig 2024-07-24 02:45:10.916101700 +0000
+++ ui/views/corewm/tooltip_aura.cc
-@@ -46,7 +46,7 @@ constexpr int kVerticalPaddingBottom = 5
-
- // TODO(varkha): Update if native widget can be transparent on Linux.
+@@ -36,7 +36,7 @@ namespace {
bool CanUseTranslucentTooltipWidget() {
--#if (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_WIN)
-+#if ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)) || defined(OS_WIN)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_WIN)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
return false;
#else
return true;
diff --git a/chromium/patches/patch-ui_views_examples_BUILD.gn b/chromium/patches/patch-ui_views_examples_BUILD.gn
deleted file mode 100644
index 1d2614b87f..0000000000
--- a/chromium/patches/patch-ui_views_examples_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/views/examples/BUILD.gn.orig 2020-07-15 18:56:34.000000000 +0000
-+++ ui/views/examples/BUILD.gn
-@@ -145,7 +145,7 @@ source_set("views_examples_proc") {
- "//ui/views:test_support",
- ]
-
-- if (is_win || is_mac || (is_linux && !is_chromeos)) {
-+ if (is_win || is_mac || ((is_linux || is_bsd) && !is_chromeos)) {
- sources += [
- "examples_skia_gold_pixel_diff.cc",
- "examples_skia_gold_pixel_diff.h",
diff --git a/chromium/patches/patch-ui_views_examples_widget__example.cc b/chromium/patches/patch-ui_views_examples_widget__example.cc
index 3efcb02eee..a74b39bf13 100644
--- a/chromium/patches/patch-ui_views_examples_widget__example.cc
+++ b/chromium/patches/patch-ui_views_examples_widget__example.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- ui/views/examples/widget_example.cc.orig 2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/examples/widget_example.cc.orig 2024-07-24 02:45:10.928103000 +0000
+++ ui/views/examples/widget_example.cc
-@@ -79,7 +79,7 @@ void WidgetExample::CreateExampleView(Vi
- DIALOG);
- BuildButton(container, GetStringUTF16(IDS_WIDGET_MODAL_BUTTON_LABEL),
- MODAL_DIALOG);
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+@@ -49,7 +49,7 @@ void WidgetExample::CreateExampleView(Vi
+ modal_button->SetCallback(
+ base::BindRepeating(&WidgetExample::CreateDialogWidget,
+ base::Unretained(this), modal_button, true));
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// Windows does not support TYPE_CONTROL top-level widgets.
- BuildButton(container, GetStringUTF16(IDS_WIDGET_CHILD_WIDGET_BUTTON_LABEL),
- CHILD);
+ LabelButton* control_button = BuildButton(
+ container, GetStringUTF16(IDS_WIDGET_CHILD_WIDGET_BUTTON_LABEL));
diff --git a/chromium/patches/patch-ui_views_focus_focus__manager.cc b/chromium/patches/patch-ui_views_focus_focus__manager.cc
new file mode 100644
index 0000000000..06f7d45f73
--- /dev/null
+++ b/chromium/patches/patch-ui_views_focus_focus__manager.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/focus/focus_manager.cc.orig 2024-07-24 02:45:10.928103000 +0000
++++ ui/views/focus/focus_manager.cc
+@@ -582,7 +582,7 @@ bool FocusManager::RedirectAcceleratorTo
+
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ // Processing an accelerator can delete things. Because we
+ // need these objects afterwards on Linux, save widget_ as weak pointer and
+ // save the close_on_deactivate property value of widget_delegate in a
+@@ -599,7 +599,7 @@ bool FocusManager::RedirectAcceleratorTo
+
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ // Need to manually close the bubble widget on Linux. On Linux when the
+ // bubble is shown, the main widget remains active. Because of that when
+ // focus is set to the main widget to process accelerator, the main widget
diff --git a/chromium/patches/patch-ui_views_selection__controller.cc b/chromium/patches/patch-ui_views_selection__controller.cc
deleted file mode 100644
index 1f0ee00797..0000000000
--- a/chromium/patches/patch-ui_views_selection__controller.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/views/selection_controller.cc.orig 2020-07-15 18:56:34.000000000 +0000
-+++ ui/views/selection_controller.cc
-@@ -23,7 +23,7 @@ SelectionController::SelectionController
- delegate_(delegate),
- handles_selection_clipboard_(false) {
- // On Linux, update the selection clipboard on a text selection.
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- set_handles_selection_clipboard(true);
- #endif
-
diff --git a/chromium/patches/patch-ui_views_style_platform__style.cc b/chromium/patches/patch-ui_views_style_platform__style.cc
index c43b9fe113..c40c1efaab 100644
--- a/chromium/patches/patch-ui_views_style_platform__style.cc
+++ b/chromium/patches/patch-ui_views_style_platform__style.cc
@@ -1,13 +1,35 @@
$NetBSD$
---- ui/views/style/platform_style.cc.orig 2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/style/platform_style.cc.orig 2024-07-24 02:45:10.944104400 +0000
+++ ui/views/style/platform_style.cc
-@@ -74,7 +74,7 @@ gfx::Range PlatformStyle::RangeToDeleteB
+@@ -17,7 +17,7 @@
+ #include "ui/views/controls/focusable_border.h"
+ #include "ui/views/controls/scrollbar/scroll_bar_views.h"
- #endif // OS_MACOSX
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/views/controls/scrollbar/overlay_scroll_bar.h"
+ #endif
--#if !BUILDFLAG(ENABLE_DESKTOP_AURA) || !defined(OS_LINUX)
-+#if !BUILDFLAG(ENABLE_DESKTOP_AURA) || (!defined(OS_LINUX) && !defined(OS_BSD))
+@@ -50,7 +50,7 @@ const View::FocusBehavior PlatformStyle:
+ // Linux clips bubble windows that extend outside their parent window
+ // bounds.
+ const bool PlatformStyle::kAdjustBubbleIfOffscreen =
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ false;
+ #else
+ true;
+@@ -59,7 +59,7 @@ const bool PlatformStyle::kAdjustBubbleI
// static
- std::unique_ptr<Border> PlatformStyle::CreateThemedLabelButtonBorder(
- LabelButton* button) {
+ std::unique_ptr<ScrollBar> PlatformStyle::CreateScrollBar(
+ ScrollBar::Orientation orientation) {
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return std::make_unique<OverlayScrollBar>(orientation);
+ #else
+ return std::make_unique<ScrollBarViews>(orientation);
diff --git a/chromium/patches/patch-ui_views_test_ui__controls__factory__desktop__aura__ozone.cc b/chromium/patches/patch-ui_views_test_ui__controls__factory__desktop__aura__ozone.cc
new file mode 100644
index 0000000000..c4e19cd50e
--- /dev/null
+++ b/chromium/patches/patch-ui_views_test_ui__controls__factory__desktop__aura__ozone.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/test/ui_controls_factory_desktop_aura_ozone.cc.orig 2024-07-24 02:45:10.948104900 +0000
++++ ui/views/test/ui_controls_factory_desktop_aura_ozone.cc
+@@ -296,7 +296,7 @@ void UpdateDisplaySync(const std::string
+ }
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // static
+ void ForceUseScreenCoordinatesOnce() {
+ g_ozone_ui_controls_test_helper->ForceUseScreenCoordinatesOnce();
diff --git a/chromium/patches/patch-ui_views_views__delegate.cc b/chromium/patches/patch-ui_views_views__delegate.cc
index a94426831b..619bab40a5 100644
--- a/chromium/patches/patch-ui_views_views__delegate.cc
+++ b/chromium/patches/patch-ui_views_views__delegate.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- ui/views/views_delegate.cc.orig 2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/views_delegate.cc.orig 2024-07-24 02:45:10.960106100 +0000
+++ ui/views/views_delegate.cc
-@@ -85,7 +85,7 @@ HICON ViewsDelegate::GetSmallWindowIcon(
- bool ViewsDelegate::IsWindowInMetro(gfx::NativeWindow window) const {
+@@ -95,7 +95,7 @@ bool ViewsDelegate::IsWindowInMetro(gfx:
return false;
}
--#elif defined(OS_LINUX) && BUILDFLAG(ENABLE_DESKTOP_AURA)
-+#elif (defined(OS_LINUX) || defined(OS_BSD)) && BUILDFLAG(ENABLE_DESKTOP_AURA)
+ #elif BUILDFLAG(ENABLE_DESKTOP_AURA) && \
+- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD))
gfx::ImageSkia* ViewsDelegate::GetDefaultWindowIcon() const {
return nullptr;
}
diff --git a/chromium/patches/patch-ui_views_views__delegate.h b/chromium/patches/patch-ui_views_views__delegate.h
index 68940e4e83..97c645a995 100644
--- a/chromium/patches/patch-ui_views_views__delegate.h
+++ b/chromium/patches/patch-ui_views_views__delegate.h
@@ -1,13 +1,17 @@
$NetBSD$
---- ui/views/views_delegate.h.orig 2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/views_delegate.h.orig 2024-07-24 02:45:10.960106100 +0000
+++ ui/views/views_delegate.h
-@@ -133,7 +133,7 @@ class VIEWS_EXPORT ViewsDelegate {
- // Returns true if the window passed in is in the Windows 8 metro
+@@ -146,7 +146,7 @@ class VIEWS_EXPORT ViewsDelegate {
// environment.
virtual bool IsWindowInMetro(gfx::NativeWindow window) const;
--#elif defined(OS_LINUX) && BUILDFLAG(ENABLE_DESKTOP_AURA)
-+#elif (defined(OS_LINUX) || defined(OS_BSD)) && BUILDFLAG(ENABLE_DESKTOP_AURA)
+ #elif BUILDFLAG(ENABLE_DESKTOP_AURA) && \
+- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD))
virtual gfx::ImageSkia* GetDefaultWindowIcon() const;
#endif
diff --git a/chromium/patches/patch-ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.cc b/chromium/patches/patch-ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.cc
new file mode 100644
index 0000000000..d5203e0863
--- /dev/null
+++ b/chromium/patches/patch-ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/widget/desktop_aura/desktop_drag_drop_client_ozone.cc.orig 2024-07-24 02:45:10.960106100 +0000
++++ ui/views/widget/desktop_aura/desktop_drag_drop_client_ozone.cc
+@@ -205,7 +205,7 @@ DragOperation DesktopDragDropClientOzone
+ return selected_operation_;
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void DesktopDragDropClientOzone::UpdateDragImage(const gfx::ImageSkia& image,
+ const gfx::Vector2d& offset) {
+ DCHECK(drag_handler_);
diff --git a/chromium/patches/patch-ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.h b/chromium/patches/patch-ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.h
new file mode 100644
index 0000000000..bbe68d69d1
--- /dev/null
+++ b/chromium/patches/patch-ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/widget/desktop_aura/desktop_drag_drop_client_ozone.h.orig 2024-07-24 02:45:10.960106100 +0000
++++ ui/views/widget/desktop_aura/desktop_drag_drop_client_ozone.h
+@@ -65,7 +65,7 @@ class VIEWS_EXPORT DesktopDragDropClient
+ // The offset of |drag_widget_| relative to the mouse position.
+ gfx::Vector2d offset;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // The last received drag location. The drag widget is moved asynchronously
+ // so its position is updated when the UI thread has time for that. When
+ // the first change to the location happens, a call to UpdateDragWidget()
+@@ -86,7 +86,7 @@ class VIEWS_EXPORT DesktopDragDropClient
+ const gfx::Point& root_location,
+ int allowed_operations,
+ ui::mojom::DragEventSource source) override;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void UpdateDragImage(const gfx::ImageSkia& image,
+ const gfx::Vector2d& offset) override;
+ #endif
diff --git a/chromium/patches/patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform.cc b/chromium/patches/patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform.cc
index dfdf36fdf6..f089c2cec7 100644
--- a/chromium/patches/patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform.cc
+++ b/chromium/patches/patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform.cc
@@ -1,13 +1,35 @@
$NetBSD$
---- ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc.orig 2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc.orig 2024-07-24 02:45:10.964106300 +0000
+++ ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
-@@ -787,7 +787,7 @@ void DesktopWindowTreeHostPlatform::AddA
+@@ -48,7 +48,7 @@
+ #include "ui/wm/core/window_util.h"
+ #include "ui/wm/public/window_move_client.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/views/widget/desktop_aura/desktop_drag_drop_client_ozone_linux.h"
+ #endif
+
+@@ -358,7 +358,7 @@ std::unique_ptr<aura::client::DragDropCl
+ DesktopWindowTreeHostPlatform::CreateDragDropClient() {
+ ui::WmDragHandler* drag_handler = ui::GetWmDragHandler(*(platform_window()));
+ std::unique_ptr<DesktopDragDropClientOzone> drag_drop_client =
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ std::make_unique<DesktopDragDropClientOzoneLinux>(window(), drag_handler);
+ #else
+ std::make_unique<DesktopDragDropClientOzone>(window(), drag_handler);
+@@ -1162,7 +1162,7 @@ bool DesktopWindowTreeHostPlatform::Rota
// DesktopWindowTreeHost:
// Linux subclasses this host and adds some Linux specific bits.
--#if !defined(OS_LINUX)
-+#if !defined(OS_LINUX) && !defined(OS_BSD)
+-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD)
// static
DesktopWindowTreeHost* DesktopWindowTreeHost::Create(
internal::NativeWidgetDelegate* native_widget_delegate,
diff --git a/chromium/patches/patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform__impl__interactive__uitest.cc b/chromium/patches/patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform__impl__interactive__uitest.cc
new file mode 100644
index 0000000000..6861c59774
--- /dev/null
+++ b/chromium/patches/patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform__impl__interactive__uitest.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/widget/desktop_aura/desktop_window_tree_host_platform_impl_interactive_uitest.cc.orig 2024-07-24 02:45:10.964106300 +0000
++++ ui/views/widget/desktop_aura/desktop_window_tree_host_platform_impl_interactive_uitest.cc
+@@ -23,7 +23,7 @@
+ #include "ui/views/widget/widget_delegate.h"
+ #include "ui/views/window/native_frame_view.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/views/widget/desktop_aura/desktop_window_tree_host_linux.h"
+ #include "ui/views/widget/desktop_aura/window_event_filter_linux.h"
+ using DesktopWindowTreeHostPlatformImpl = views::DesktopWindowTreeHostLinux;
diff --git a/chromium/patches/patch-ui_views_widget_native__widget__aura.cc b/chromium/patches/patch-ui_views_widget_native__widget__aura.cc
deleted file mode 100644
index 7c52aa07f5..0000000000
--- a/chromium/patches/patch-ui_views_widget_native__widget__aura.cc
+++ /dev/null
@@ -1,38 +0,0 @@
-$NetBSD$
-
---- ui/views/widget/native_widget_aura.cc.orig 2020-07-15 18:56:49.000000000 +0000
-+++ ui/views/widget/native_widget_aura.cc
-@@ -64,7 +64,7 @@
- #include "ui/views/widget/desktop_aura/desktop_window_tree_host_win.h"
- #endif
-
--#if BUILDFLAG(ENABLE_DESKTOP_AURA) && defined(OS_LINUX)
-+#if BUILDFLAG(ENABLE_DESKTOP_AURA) && (defined(OS_LINUX) || defined(OS_BSD))
- #include "ui/views/linux_ui/linux_ui.h"
- #include "ui/views/widget/desktop_aura/desktop_window_tree_host_linux.h"
- #endif
-@@ -1072,7 +1072,7 @@ void NativeWidgetAura::SetInitialFocus(u
- // Widget, public:
-
- namespace {
--#if BUILDFLAG(ENABLE_DESKTOP_AURA) && (defined(OS_WIN) || defined(OS_LINUX))
-+#if BUILDFLAG(ENABLE_DESKTOP_AURA) && (defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD))
- void CloseWindow(aura::Window* window) {
- if (window) {
- Widget* widget = Widget::GetWidgetForNativeView(window);
-@@ -1102,13 +1102,13 @@ void Widget::CloseAllSecondaryWidgets()
- EnumThreadWindows(GetCurrentThreadId(), WindowCallbackProc, 0);
- #endif
-
--#if BUILDFLAG(ENABLE_DESKTOP_AURA) && defined(OS_LINUX)
-+#if BUILDFLAG(ENABLE_DESKTOP_AURA) && (defined(OS_LINUX) || defined(OS_BSD))
- DesktopWindowTreeHostLinux::CleanUpWindowList(CloseWindow);
- #endif
- }
-
- const ui::NativeTheme* Widget::GetNativeTheme() const {
--#if BUILDFLAG(ENABLE_DESKTOP_AURA) && defined(OS_LINUX)
-+#if BUILDFLAG(ENABLE_DESKTOP_AURA) && (defined(OS_LINUX) || defined(OS_BSD))
- const LinuxUI* linux_ui = LinuxUI::instance();
- if (linux_ui) {
- ui::NativeTheme* native_theme =
diff --git a/chromium/patches/patch-ui_views_widget_root__view.cc b/chromium/patches/patch-ui_views_widget_root__view.cc
new file mode 100644
index 0000000000..a20da906fc
--- /dev/null
+++ b/chromium/patches/patch-ui_views_widget_root__view.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/widget/root_view.cc.orig 2024-07-24 02:45:10.968106700 +0000
++++ ui/views/widget/root_view.cc
+@@ -128,7 +128,7 @@ class AnnounceTextView : public View {
+ #if BUILDFLAG(IS_CHROMEOS)
+ // On ChromeOS, kAlert role can invoke an unnecessary event on reparenting.
+ node_data->role = ax::mojom::Role::kStaticText;
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // TODO(crbug.com/40658933): Use live regions (do not use alerts).
+ // May require setting kLiveStatus, kContainerLiveStatus to "polite".
+ node_data->role = ax::mojom::Role::kAlert;
diff --git a/chromium/patches/patch-ui_views_widget_widget.cc b/chromium/patches/patch-ui_views_widget_widget.cc
new file mode 100644
index 0000000000..4c2fdb9e30
--- /dev/null
+++ b/chromium/patches/patch-ui_views_widget_widget.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/widget/widget.cc.orig 2024-07-24 02:45:10.972107200 +0000
++++ ui/views/widget/widget.cc
+@@ -57,7 +57,7 @@
+ #include "ui/views/window/custom_frame_view.h"
+ #include "ui/views/window/dialog_delegate.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/linux/linux_ui.h"
+ #endif
+
+@@ -2172,7 +2172,7 @@ const ui::NativeTheme* Widget::GetNative
+ if (parent_)
+ return parent_->GetNativeTheme();
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (auto* linux_ui_theme = ui::LinuxUiTheme::GetForWindow(GetNativeWindow()))
+ return linux_ui_theme->GetNativeTheme();
+ #endif
diff --git a/chromium/patches/patch-ui_views_window_custom__frame__view.cc b/chromium/patches/patch-ui_views_window_custom__frame__view.cc
index b3b8fdab87..2329eb4ae4 100644
--- a/chromium/patches/patch-ui_views_window_custom__frame__view.cc
+++ b/chromium/patches/patch-ui_views_window_custom__frame__view.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- ui/views/window/custom_frame_view.cc.orig 2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/window/custom_frame_view.cc.orig 2024-07-24 02:45:10.980108000 +0000
+++ ui/views/window/custom_frame_view.cc
-@@ -283,7 +283,7 @@ int CustomFrameView::NonClientTopBorderH
- int CustomFrameView::CaptionButtonY() const {
- // Maximized buttons start at window top so that even if their images aren't
+@@ -267,7 +267,7 @@ int CustomFrameView::CaptionButtonY() co
// drawn flush with the screen edge, they still obey Fitts' Law.
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
return FrameBorderThickness();
#else
return frame_->IsMaximized() ? FrameBorderThickness() : kFrameShadowThickness;
diff --git a/chromium/patches/patch-ui_views_window_dialog__delegate.cc b/chromium/patches/patch-ui_views_window_dialog__delegate.cc
index c821f43de4..cad483f655 100644
--- a/chromium/patches/patch-ui_views_window_dialog__delegate.cc
+++ b/chromium/patches/patch-ui_views_window_dialog__delegate.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- ui/views/window/dialog_delegate.cc.orig 2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/window/dialog_delegate.cc.orig 2024-07-24 02:45:10.980108000 +0000
+++ ui/views/window/dialog_delegate.cc
-@@ -62,7 +62,7 @@ Widget* DialogDelegate::CreateDialogWidg
+@@ -109,7 +109,7 @@ Widget* DialogDelegate::CreateDialogWidg
// static
bool DialogDelegate::CanSupportCustomFrame(gfx::NativeView parent) {
--#if defined(OS_LINUX) && BUILDFLAG(ENABLE_DESKTOP_AURA)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && BUILDFLAG(ENABLE_DESKTOP_AURA)
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && \
+ BUILDFLAG(ENABLE_DESKTOP_AURA)
// The new style doesn't support unparented dialogs on Linux desktop.
return parent != nullptr;
- #else
diff --git a/chromium/patches/patch-ui_views_window_frame__background.cc b/chromium/patches/patch-ui_views_window_frame__background.cc
index 16d22a180e..01c9ff8d97 100644
--- a/chromium/patches/patch-ui_views_window_frame__background.cc
+++ b/chromium/patches/patch-ui_views_window_frame__background.cc
@@ -1,13 +1,17 @@
$NetBSD$
---- ui/views/window/frame_background.cc.orig 2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/window/frame_background.cc.orig 2024-07-24 02:45:10.980108000 +0000
+++ ui/views/window/frame_background.cc
-@@ -99,7 +99,7 @@ void FrameBackground::PaintMaximized(gfx
- const View* view) const {
+@@ -110,7 +110,7 @@ void FrameBackground::PaintMaximized(gfx
+ int width) const {
// Fill the top with the frame color first so we have a constant background
// for areas not covered by the theme image.
--#if defined(OS_LINUX) && BUILDFLAG(ENABLE_DESKTOP_AURA)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && BUILDFLAG(ENABLE_DESKTOP_AURA)
- auto* native_theme = view->GetNativeTheme();
- ui::NativeTheme::ExtraParams params;
- params.frame_top_area.use_custom_frame = use_custom_frame_;
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && \
+ BUILDFLAG(ENABLE_DESKTOP_AURA)
+ ui::NativeTheme::FrameTopAreaExtraParams frame_top_area;
+ frame_top_area.use_custom_frame = use_custom_frame_;
diff --git a/chromium/patches/patch-ui_webui_resources_js_cr.js b/chromium/patches/patch-ui_webui_resources_js_cr.js
deleted file mode 100644
index 2ee7d95bc4..0000000000
--- a/chromium/patches/patch-ui_webui_resources_js_cr.js
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD$
-
---- ui/webui/resources/js/cr.js.orig 2020-07-15 18:56:34.000000000 +0000
-+++ ui/webui/resources/js/cr.js
-@@ -431,6 +431,11 @@ var cr = cr || function(global) {
- return /Mac/.test(navigator.platform);
- },
-
-+ /** Whether this is on *BSD. */
-+ get isBSD() {
-+ return /BSD/.test(navigator.platform);
-+ },
-+
- /** Whether this is on the Windows platform or not. */
- get isWindows() {
- return /Win/.test(navigator.platform);
diff --git a/chromium/patches/patch-ui_webui_resources_js_icon.js b/chromium/patches/patch-ui_webui_resources_js_icon.js
deleted file mode 100644
index 06f3fcb330..0000000000
--- a/chromium/patches/patch-ui_webui_resources_js_icon.js
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/webui/resources/js/icon.js.orig 2020-07-15 18:56:34.000000000 +0000
-+++ ui/webui/resources/js/icon.js
-@@ -16,7 +16,7 @@ cr.define('cr.icon', function() {
- // supports SCALE_FACTOR_100P on all non-iOS platforms.
- supportedScaleFactors.push(1);
- }
-- if (cr.isMac || cr.isChromeOS || cr.isWindows || cr.isLinux) {
-+ if (cr.isMac || cr.isChromeOS || cr.isWindows || cr.isLinux || cr.isBSD) {
- // All desktop platforms support zooming which also updates the renderer's
- // device scale factors (a.k.a devicePixelRatio), and these platforms have
- // high DPI assets for 2x. Let the renderer pick the closest image for
diff --git a/chromium/patches/patch-ui_webui_webui__features.gni b/chromium/patches/patch-ui_webui_webui__features.gni
deleted file mode 100644
index 6667f79fee..0000000000
--- a/chromium/patches/patch-ui_webui_webui__features.gni
+++ /dev/null
@@ -1,11 +0,0 @@
-$NetBSD$
-
---- ui/webui/webui_features.gni.orig 2020-07-15 18:56:49.000000000 +0000
-+++ ui/webui/webui_features.gni
-@@ -9,5 +9,5 @@ declare_args() {
- optimize_webui = !is_debug
-
- # Enable the WebUI version of the browser's tab strip.
-- enable_webui_tab_strip = is_chromeos || is_linux || is_win
-+ enable_webui_tab_strip = is_chromeos || is_linux || is_win || is_bsd
- }
diff --git a/chromium/patches/patch-v8_BUILD.gn b/chromium/patches/patch-v8_BUILD.gn
index e55c4e534b..a4f31dad74 100644
--- a/chromium/patches/patch-v8_BUILD.gn
+++ b/chromium/patches/patch-v8_BUILD.gn
@@ -1,50 +1,139 @@
$NetBSD$
---- v8/BUILD.gn.orig 2020-06-25 09:34:52.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- v8/BUILD.gn.orig 2024-07-24 02:47:45.455070700 +0000
+++ v8/BUILD.gn
-@@ -3336,7 +3336,7 @@ v8_source_set("v8_base_without_compiler"
+@@ -876,6 +876,9 @@ external_v8_defines = [
+ "V8_TARGET_OS_MACOS",
+ "V8_TARGET_OS_WIN",
+ "V8_TARGET_OS_CHROMEOS",
++ "V8_TARGET_OS_OPENBSD",
++ "V8_TARGET_OS_FREEBSD",
++ "V8_TARGET_OS_NETBSD",
+ ]
+
+ enabled_external_v8_defines = []
+@@ -948,6 +951,15 @@ if (target_os == "android") {
+ } else if (target_os == "chromeos") {
+ enabled_external_v8_defines += [ "V8_HAVE_TARGET_OS" ]
+ enabled_external_v8_defines += [ "V8_TARGET_OS_CHROMEOS" ]
++} else if (target_os == "openbsd") {
++ enabled_external_v8_defines += [ "V8_HAVE_TARGET_OS" ]
++ enabled_external_v8_defines += [ "V8_TARGET_OS_OPENBSD" ]
++} else if (target_os == "freebsd") {
++ enabled_external_v8_defines += [ "V8_HAVE_TARGET_OS" ]
++ enabled_external_v8_defines += [ "V8_TARGET_OS_FREEBSD" ]
++} else if (target_os == "netbsd") {
++ enabled_external_v8_defines += [ "V8_HAVE_TARGET_OS" ]
++ enabled_external_v8_defines += [ "V8_TARGET_OS_NETBSD" ]
+ }
+
+ disabled_external_v8_defines = external_v8_defines - enabled_external_v8_defines
+@@ -2367,6 +2379,23 @@ action("generate_bytecode_builtins_list"
+ ]
+ }
+
++action("run_paxctl_mksnapshot") {
++ deps = [ ":mksnapshot($v8_snapshot_toolchain)" ]
++
++ script = "tools/run-paxctl.py"
++ stamp = "$target_gen_dir/paxctl_stamp"
++ outputs = [ stamp ]
++
++ sources = []
++ data = []
++
++ args = [
++ rebase_path(stamp, root_build_dir), "/usr/sbin/paxctl", "+m", "./" + rebase_path(get_label_info(":mksnapshot($v8_snapshot_toolchain)",
++ "root_out_dir") + "/mksnapshot",
++ root_build_dir),
++ ]
++}
++
+ # Template to generate different V8 snapshots based on different runtime flags.
+ # Can be invoked with run_mksnapshot(<name>). The target will resolve to
+ # run_mksnapshot_<name>. If <name> is "default", no file suffixes will be used.
+@@ -2385,7 +2414,11 @@ template("run_mksnapshot") {
+ suffix = "_$name"
+ }
+ action("run_mksnapshot_" + name) {
+- deps = [ ":mksnapshot($v8_snapshot_toolchain)" ]
++ if (target_os == "netbsd") {
++ deps = [ ":mksnapshot($v8_snapshot_toolchain)", ":run_paxctl_mksnapshot" ]
++ } else {
++ deps = [ ":mksnapshot($v8_snapshot_toolchain)" ]
++ }
+
+ script = "tools/run.py"
+
+@@ -2442,6 +2475,12 @@ template("run_mksnapshot") {
+ if (!v8_enable_builtins_profiling && v8_enable_builtins_reordering) {
+ args += [ "--reorder-builtins" ]
+ }
++
++ if (v8_current_cpu == "x86") {
++ args -= [
++ "--abort-on-bad-builtin-profile-data",
++ ]
++ }
+ }
- # iOS Xcode simulator builds run on an x64 target. iOS and macOS are both
- # based on Darwin and thus POSIX-compliant to a similar degree.
-- if (is_linux || is_mac || is_ios || target_os == "freebsd") {
-+ if (is_linux || is_mac || is_ios || target_os == "freebsd" || is_bsd) {
- sources += [
- "src/trap-handler/handler-inside-posix.cc",
- "src/trap-handler/handler-inside-posix.h",
-@@ -3677,7 +3677,7 @@ v8_source_set("v8_base_without_compiler"
- libs += [ "atomic" ]
+ # This is needed to distinguish between generating code for the simulator
+@@ -4475,7 +4514,7 @@ v8_header_set("v8_internal_headers") {
+ # iOS Xcode simulator builds run on an x64 target. iOS and macOS are both
+ # based on Darwin and thus POSIX-compliant to a similar degree.
+ if (is_linux || is_chromeos || is_mac || is_ios ||
+- target_os == "freebsd") {
++ target_os == "freebsd" || target_os == "netbsd") {
+ sources += [ "src/trap-handler/handler-inside-posix.h" ]
+ } else if (is_win) {
+ sources += [ "src/trap-handler/handler-inside-win.h" ]
+@@ -5863,7 +5902,7 @@ v8_source_set("v8_base_without_compiler"
+ # iOS Xcode simulator builds run on an x64 target. iOS and macOS are both
+ # based on Darwin and thus POSIX-compliant to a similar degree.
+ if (is_linux || is_chromeos || is_mac || is_ios ||
+- target_os == "freebsd") {
++ target_os == "freebsd" || target_os == "netbsd") {
+ sources += [
+ "src/trap-handler/handler-inside-posix.cc",
+ "src/trap-handler/handler-outside-posix.cc",
+@@ -6490,7 +6529,7 @@ v8_component("v8_libbase") {
+ }
}
-- if (v8_enable_vtunetracemark && (is_linux || is_win)) {
-+ if (v8_enable_vtunetracemark && (is_linux || is_win || is_bsd)) {
+- if (is_linux || is_chromeos) {
++ if ((is_linux || is_chromeos) && !is_bsd) {
sources += [
- "src/extensions/vtunedomain-support-extension.cc",
- "src/extensions/vtunedomain-support-extension.h",
-@@ -3932,6 +3932,16 @@ v8_component("v8_libbase") {
+ "src/base/debug/stack_trace_posix.cc",
+ "src/base/platform/platform-linux.cc",
+@@ -6501,6 +6540,27 @@ v8_component("v8_libbase") {
"dl",
"rt",
]
++ } else if (is_openbsd) {
++ sources += [
++ "src/base/debug/stack_trace_posix.cc",
++ "src/base/platform/platform-openbsd.cc",
++ ]
++ libs = [ "execinfo" ]
+ } else if (is_netbsd) {
+ sources += [
+ "src/base/debug/stack_trace_posix.cc",
+ "src/base/platform/platform-openbsd.cc",
+ ]
-+
+ libs = [
+ "rt",
+ "execinfo",
+ ]
++ } else if (is_freebsd) {
++ sources += [
++ "src/base/debug/stack_trace_posix.cc",
++ "src/base/platform/platform-freebsd.cc",
++ ]
++ libs = [ "execinfo" ]
} else if (current_os == "aix") {
sources += [
"src/base/debug/stack_trace_posix.cc",
-@@ -4354,6 +4364,10 @@ if (current_toolchain == v8_snapshot_too
- "src/snapshot/snapshot-empty.cc",
- ]
-
-+ if (is_bsd) {
-+ libs = ["execinfo"]
-+ }
-+
- configs = [ ":internal_config" ]
-
- deps = [
diff --git a/chromium/patches/patch-v8_gni_v8.gni b/chromium/patches/patch-v8_gni_v8.gni
deleted file mode 100644
index c689c406e2..0000000000
--- a/chromium/patches/patch-v8_gni_v8.gni
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- v8/gni/v8.gni.orig 2020-07-15 19:01:43.000000000 +0000
-+++ v8/gni/v8.gni
-@@ -215,7 +215,7 @@ template("v8_executable") {
- configs -= invoker.remove_configs
- }
- configs += invoker.configs
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- # For enabling ASLR.
- ldflags = [ "-pie" ]
- }
diff --git a/chromium/patches/patch-v8_include_v8-internal.h b/chromium/patches/patch-v8_include_v8-internal.h
new file mode 100644
index 0000000000..0a575779f1
--- /dev/null
+++ b/chromium/patches/patch-v8_include_v8-internal.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- v8/include/v8-internal.h.orig 2024-07-24 02:47:45.467072000 +0000
++++ v8/include/v8-internal.h
+@@ -213,7 +213,7 @@ using SandboxedPointer_t = Address;
+ #ifdef V8_ENABLE_SANDBOX
+
+ // Size of the sandbox, excluding the guard regions surrounding it.
+-#if defined(V8_TARGET_OS_ANDROID)
++#if (defined(V8_TARGET_OS_ANDROID) || defined(V8_TARGET_OS_OPENBSD))
+ // On Android, most 64-bit devices seem to be configured with only 39 bits of
+ // virtual address space for userspace. As such, limit the sandbox to 128GB (a
+ // quarter of the total available address space).
diff --git a/chromium/patches/patch-v8_include_v8config.h b/chromium/patches/patch-v8_include_v8config.h
new file mode 100644
index 0000000000..7249c6d255
--- /dev/null
+++ b/chromium/patches/patch-v8_include_v8config.h
@@ -0,0 +1,50 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- v8/include/v8config.h.orig 2024-07-24 02:47:45.475072600 +0000
++++ v8/include/v8config.h
+@@ -193,6 +193,9 @@ path. Add it with -I<path> to the comman
+ && !defined(V8_TARGET_OS_FUCHSIA) \
+ && !defined(V8_TARGET_OS_IOS) \
+ && !defined(V8_TARGET_OS_LINUX) \
++ && !defined(V8_TARGET_OS_OPENBSD) \
++ && !defined(V8_TARGET_OS_FREEBSD) \
++ && !defined(V8_TARGET_OS_NETBSD) \
+ && !defined(V8_TARGET_OS_MACOS) \
+ && !defined(V8_TARGET_OS_WIN) \
+ && !defined(V8_TARGET_OS_CHROMEOS)
+@@ -205,6 +208,9 @@ path. Add it with -I<path> to the comman
+ || defined(V8_TARGET_OS_FUCHSIA) \
+ || defined(V8_TARGET_OS_IOS) \
+ || defined(V8_TARGET_OS_LINUX) \
++ || defined(V8_TARGET_OS_OPENBSD) \
++ || defined(V8_TARGET_OS_FREEBSD) \
++ || defined(V8_TARGET_OS_NETBSD) \
+ || defined(V8_TARGET_OS_MACOS) \
+ || defined(V8_TARGET_OS_WIN) \
+ || defined(V8_TARGET_OS_CHROMEOS)
+@@ -228,6 +234,21 @@ path. Add it with -I<path> to the comman
+ # define V8_TARGET_OS_LINUX
+ #endif
+
++#ifdef V8_OS_OPENBSD
++# define V8_TARGET_OS_OPENBSD
++# define V8_TARGET_OS_BSD
++#endif
++
++#ifdef V8_OS_FREEBSD
++# define V8_TARGET_OS_OPENBSD
++# define V8_TARGET_OS_BSD
++#endif
++
++#ifdef V8_OS_NETBSD
++# define V8_TARGET_OS_NETBSD
++# define V8_TARGET_OS_BSD
++#endif
++
+ #ifdef V8_OS_MACOS
+ # define V8_TARGET_OS_MACOS
+ #endif
diff --git a/chromium/patches/patch-v8_src_api_api.cc b/chromium/patches/patch-v8_src_api_api.cc
index e24f9b033b..7636518fc6 100644
--- a/chromium/patches/patch-v8_src_api_api.cc
+++ b/chromium/patches/patch-v8_src_api_api.cc
@@ -1,22 +1,26 @@
$NetBSD$
---- v8/src/api/api.cc.orig 2020-07-15 19:01:43.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/api/api.cc.orig 2024-07-24 02:47:45.479073000 +0000
+++ v8/src/api/api.cc
-@@ -113,7 +113,7 @@
- #include "src/wasm/wasm-result.h"
+@@ -145,7 +145,7 @@
#include "src/wasm/wasm-serialization.h"
+ #endif // V8_ENABLE_WEBASSEMBLY
--#if V8_OS_LINUX || V8_OS_MACOSX || V8_OS_FREEBSD
-+#if V8_OS_LINUX || V8_OS_MACOSX || V8_OS_FREEBSD || V8_OS_NETBSD
+-#if V8_OS_LINUX || V8_OS_DARWIN || V8_OS_FREEBSD
++#if V8_OS_LINUX || V8_OS_DARWIN || V8_OS_FREEBSD || V8_OS_OPENBSD || V8_OS_NETBSD
#include <signal.h>
- #include "include/v8-wasm-trap-handler-posix.h"
- #include "src/trap-handler/handler-inside-posix.h"
-@@ -5674,7 +5674,7 @@ bool v8::V8::Initialize(const int build_
+ #include <unistd.h>
+
+@@ -6452,7 +6452,7 @@ bool v8::V8::Initialize(const int build_
return true;
}
--#if V8_OS_LINUX || V8_OS_MACOSX
-+#if V8_OS_LINUX || V8_OS_MACOSX || V8_OS_FREEBSD || V8_OS_OPENBSD || V8_OS_NETBSD
+-#if V8_OS_LINUX || V8_OS_DARWIN
++#if V8_OS_LINUX || V8_OS_DARWIN || V8_OS_FREEBSD || V8_OS_OPENBSD|| V8_OS_NETBSD
bool TryHandleWebAssemblyTrapPosix(int sig_code, siginfo_t* info,
void* context) {
- #if V8_TARGET_ARCH_X64 && !V8_OS_ANDROID
+ #if V8_ENABLE_WEBASSEMBLY && V8_TRAP_HANDLER_SUPPORTED
diff --git a/chromium/patches/patch-v8_src_base_atomicops.h b/chromium/patches/patch-v8_src_base_atomicops.h
new file mode 100644
index 0000000000..fa3112bdf2
--- /dev/null
+++ b/chromium/patches/patch-v8_src_base_atomicops.h
@@ -0,0 +1,30 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/base/atomicops.h.orig 2024-07-24 02:47:45.491074300 +0000
++++ v8/src/base/atomicops.h
+@@ -57,10 +57,10 @@ using Atomic64 = SbAtomic64;
+ using Atomic8 = char;
+ using Atomic16 = int16_t;
+ using Atomic32 = int32_t;
+-#if defined(V8_HOST_ARCH_64_BIT)
++#if defined(V8_HOST_ARCH_64_BIT) || defined(V8_OS_OPENBSD)
+ // We need to be able to go between Atomic64 and AtomicWord implicitly. This
+ // means Atomic64 and AtomicWord should be the same type on 64-bit.
+-#if defined(__ILP32__)
++#if defined(__ILP32__) && !defined(V8_OS_OPENBSD)
+ using Atomic64 = int64_t;
+ #else
+ using Atomic64 = intptr_t;
+@@ -266,7 +266,7 @@ inline Atomic32 SeqCst_Load(volatile con
+ std::memory_order_seq_cst);
+ }
+
+-#if defined(V8_HOST_ARCH_64_BIT)
++#if defined(V8_HOST_ARCH_64_BIT) || defined(V8_OS_OPENBSD)
+
+ inline Atomic64 Relaxed_CompareAndSwap(volatile Atomic64* ptr,
+ Atomic64 old_value, Atomic64 new_value) {
diff --git a/chromium/patches/patch-v8_src_base_cpu.cc b/chromium/patches/patch-v8_src_base_cpu.cc
deleted file mode 100644
index 355383c4a1..0000000000
--- a/chromium/patches/patch-v8_src_base_cpu.cc
+++ /dev/null
@@ -1,20 +0,0 @@
-$NetBSD$
-
---- v8/src/base/cpu.cc.orig 2020-07-15 19:01:43.000000000 +0000
-+++ v8/src/base/cpu.cc
-@@ -475,6 +475,7 @@ CPU::CPU()
-
- #if V8_OS_LINUX
-
-+#if V8_OS_LINUX
- CPUInfo cpu_info;
-
- // Extract implementor from the "CPU implementer" field.
-@@ -497,6 +498,7 @@ CPU::CPU()
- }
- delete[] variant;
- }
-+#endif
-
- // Extract part number from the "CPU part" field.
- char* part = cpu_info.ExtractField("CPU part");
diff --git a/chromium/patches/patch-v8_src_base_platform_memory.h b/chromium/patches/patch-v8_src_base_platform_memory.h
new file mode 100644
index 0000000000..4052a72e91
--- /dev/null
+++ b/chromium/patches/patch-v8_src_base_platform_memory.h
@@ -0,0 +1,22 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/base/platform/memory.h.orig 2024-07-24 02:47:45.499075000 +0000
++++ v8/src/base/platform/memory.h
+@@ -19,11 +19,11 @@
+
+ #if V8_OS_DARWIN
+ #include <malloc/malloc.h>
+-#else // !V8_OS_DARWIN
++#elif !V8_OS_BSD
+ #include <malloc.h>
+ #endif // !V8_OS_DARWIN
+
+-#if (V8_OS_POSIX && !V8_OS_AIX && !V8_OS_SOLARIS) || V8_OS_WIN
++#if (V8_OS_POSIX && !V8_OS_AIX && !V8_OS_SOLARIS && !V8_OS_BSD) || V8_OS_WIN
+ #define V8_HAS_MALLOC_USABLE_SIZE 1
+ #endif // (V8_OS_POSIX && !V8_OS_AIX && !V8_OS_SOLARIS) || V8_OS_WIN
+
diff --git a/chromium/patches/patch-v8_src_base_platform_platform-freebsd.cc b/chromium/patches/patch-v8_src_base_platform_platform-freebsd.cc
new file mode 100644
index 0000000000..e6ca234f5c
--- /dev/null
+++ b/chromium/patches/patch-v8_src_base_platform_platform-freebsd.cc
@@ -0,0 +1,38 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/base/platform/platform-freebsd.cc.orig 2024-07-24 02:47:45.499075000 +0000
++++ v8/src/base/platform/platform-freebsd.cc
+@@ -43,14 +43,10 @@ TimezoneCache* OS::CreateTimezoneCache()
+ return new PosixDefaultTimezoneCache();
+ }
+
+-static unsigned StringToLong(char* buffer) {
+- return static_cast<unsigned>(strtol(buffer, nullptr, 16));
+-}
+-
+ std::vector<OS::SharedLibraryAddress> OS::GetSharedLibraryAddresses() {
+ std::vector<SharedLibraryAddress> result;
+ int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_VMMAP, getpid()};
+- size_t miblen = sizeof(mib) / sizeof(mib[0]);
++ unsigned int miblen = sizeof(mib) / sizeof(mib[0]);
+ size_t buffer_size;
+ if (sysctl(mib, miblen, nullptr, &buffer_size, nullptr, 0) == 0) {
+ // Overallocate the buffer by 1/3 to account for concurrent
+@@ -82,8 +78,13 @@ std::vector<OS::SharedLibraryAddress> OS
+ lib_name = std::string(path);
+ }
+ result.push_back(SharedLibraryAddress(
++#if defined(__i386__) || defined(OS_FREEBSD)
++ lib_name, static_cast<uintptr_t>(map->kve_start),
++ static_cast<uintptr_t>(map->kve_end)));
++#else
+ lib_name, reinterpret_cast<uintptr_t>(map->kve_start),
+ reinterpret_cast<uintptr_t>(map->kve_end)));
++#endif
+ }
+
+ start += ssize;
diff --git a/chromium/patches/patch-v8_src_base_platform_platform-openbsd.cc b/chromium/patches/patch-v8_src_base_platform_platform-openbsd.cc
new file mode 100644
index 0000000000..f84ca87c74
--- /dev/null
+++ b/chromium/patches/patch-v8_src_base_platform_platform-openbsd.cc
@@ -0,0 +1,53 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/base/platform/platform-openbsd.cc.orig 2024-07-24 02:47:45.503075400 +0000
++++ v8/src/base/platform/platform-openbsd.cc
+@@ -6,6 +6,9 @@
+ // POSIX-compatible parts, the implementation is in platform-posix.cc.
+
+ #include <pthread.h>
++#if !defined(__NetBSD__)
++#include <pthread_np.h>
++#endif
+ #include <semaphore.h>
+ #include <signal.h>
+ #include <stdlib.h>
+@@ -122,6 +125,34 @@ void OS::SignalCodeMovingGC() {
+
+ void OS::AdjustSchedulingParams() {}
+
++// static
++Stack::StackSlot Stack::ObtainCurrentThreadStackStart() {
++#if defined(__NetBSD__)
++ pthread_attr_t attr;
++ int error;
++ pthread_attr_init(&attr);
++ error = pthread_attr_get_np(pthread_self(), &attr);
++ if (!error) {
++ void* base;
++ size_t size;
++ error = pthread_attr_getstack(&attr, &base, &size);
++ CHECK(!error);
++ pthread_attr_destroy(&attr);
++ return reinterpret_cast<uint8_t*>(base) + size;
++ }
++ pthread_attr_destroy(&attr);
++ return nullptr;
++#else
++ stack_t ss;
++ void *base;
++ if (pthread_stackseg_np(pthread_self(), &ss) != 0)
++ return nullptr;
++
++ base = (void*)((size_t) ss.ss_sp - ss.ss_size);
++ return reinterpret_cast<uint8_t*>(base) + ss.ss_size;
++#endif
++}
++
+ std::optional<OS::MemoryRange> OS::GetFirstFreeMemoryRangeWithin(
+ OS::Address boundary_start, OS::Address boundary_end, size_t minimum_size,
+ size_t alignment) {
diff --git a/chromium/patches/patch-v8_src_base_platform_platform-posix.cc b/chromium/patches/patch-v8_src_base_platform_platform-posix.cc
index febcba8fbd..7e7f1b1759 100644
--- a/chromium/patches/patch-v8_src_base_platform_platform-posix.cc
+++ b/chromium/patches/patch-v8_src_base_platform_platform-posix.cc
@@ -1,10 +1,14 @@
$NetBSD$
---- v8/src/base/platform/platform-posix.cc.orig 2020-07-15 19:01:43.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/base/platform/platform-posix.cc.orig 2024-07-24 02:47:45.503075400 +0000
+++ v8/src/base/platform/platform-posix.cc
-@@ -25,6 +25,9 @@
+@@ -27,6 +27,9 @@
defined(__NetBSD__) || defined(__OpenBSD__)
- #include <sys/sysctl.h> // NOLINT, for sysctl
+ #include <sys/sysctl.h> // for sysctl
#endif
+#if defined(__NetBSD__)
+#include <lwp.h>
@@ -12,48 +16,95 @@ $NetBSD$
#if defined(ANDROID) && !defined(V8_ANDROID_LOG_STDOUT)
#define LOG_TAG "v8"
-@@ -433,7 +436,7 @@ bool OS::DiscardSystemPages(void* addres
+@@ -54,7 +57,7 @@
+ #if V8_OS_DARWIN
+ #include <mach/mach.h>
+ #include <malloc/malloc.h>
+-#else
++#elif !V8_OS_BSD
+ #include <malloc.h>
+ #endif
+
+@@ -72,9 +75,11 @@
+ #include <sys/syscall.h>
+ #endif
+
+-#if V8_OS_FREEBSD || V8_OS_DARWIN || V8_OS_OPENBSD || V8_OS_SOLARIS
++#if V8_OS_FREEBSD || V8_OS_DARWIN || V8_OS_BSD || V8_OS_SOLARIS
++#ifndef MAP_ANONYMOUS
+ #define MAP_ANONYMOUS MAP_ANON
+ #endif
++#endif
+
+ #if defined(V8_OS_SOLARIS)
+ #if (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE > 2) || defined(__EXTENSIONS__)
+@@ -305,6 +310,13 @@ void OS::SetRandomMmapSeed(int64_t seed)
+ }
+ }
+
++#if V8_OS_OPENBSD
++// Allow OpenBSD's mmap to select a random address on OpenBSD
++// static
++void* OS::GetRandomMmapAddr() {
++ return nullptr;
++}
++#else
+ // static
+ void* OS::GetRandomMmapAddr() {
+ uintptr_t raw_addr;
+@@ -401,6 +413,7 @@ void* OS::GetRandomMmapAddr() {
+ #endif
+ return reinterpret_cast<void*>(raw_addr);
+ }
++#endif
+
+ // TODO(bbudge) Move Cygwin and Fuchsia stuff into platform-specific files.
+ #if !V8_OS_CYGWIN && !V8_OS_FUCHSIA
+@@ -672,7 +685,7 @@ void OS::DestroySharedMemoryHandle(Platf
// static
bool OS::HasLazyCommits() {
--#if V8_OS_AIX || V8_OS_LINUX || V8_OS_MACOSX
-+#if V8_OS_AIX || V8_OS_LINUX || V8_OS_MACOSX || V8_OS_FREEBSD || V8_OS_NETBSD
+-#if V8_OS_AIX || V8_OS_LINUX || V8_OS_DARWIN
++#if V8_OS_AIX || V8_OS_LINUX || V8_OS_DARWIN || V8_OS_BSD
return true;
#else
// TODO(bbudge) Return true for all POSIX platforms.
-@@ -568,6 +571,10 @@ int OS::GetCurrentThreadId() {
+@@ -824,6 +837,8 @@ int OS::GetCurrentThreadId() {
return static_cast<int>(thread_self());
#elif V8_OS_FUCHSIA
return static_cast<int>(zx_thread_self());
-+#elif V8_OS_FREEBSD
-+ return static_cast<int>(pthread_getthreadid_np());
+#elif V8_OS_NETBSD
+ return static_cast<int>(_lwp_self());
#elif V8_OS_SOLARIS
return static_cast<int>(pthread_self());
#else
-@@ -756,9 +763,15 @@ Thread::Thread(const Options& options)
- : data_(new PlatformData),
+@@ -1116,7 +1131,11 @@ Thread::Thread(const Options& options)
stack_size_(options.stack_size()),
+ priority_(options.priority()),
start_semaphore_(nullptr) {
+#if !defined(V8_OS_NETBSD)
- if (stack_size_ > 0 && static_cast<size_t>(stack_size_) < PTHREAD_STACK_MIN) {
- stack_size_ = PTHREAD_STACK_MIN;
- }
+ const int min_stack_size = static_cast<int>(PTHREAD_STACK_MIN);
+#else
-+ if (stack_size_ > 0 && static_cast<size_t>(stack_size_) < static_cast<size_t>(sysconf(_SC_THREAD_STACK_MIN))) {
-+ stack_size_ = sysconf(_SC_THREAD_STACK_MIN);
-+ }
++ const int min_stack_size = static_cast<int>(sysconf(_SC_THREAD_STACK_MIN));
+#endif
+ if (stack_size_ > 0) stack_size_ = std::max(stack_size_, min_stack_size);
set_name(options.name());
}
-
-@@ -773,7 +786,7 @@ static void SetThreadName(const char* na
+@@ -1131,7 +1150,7 @@ static void SetThreadName(const char* na
pthread_set_name_np(pthread_self(), name);
#elif V8_OS_NETBSD
- STATIC_ASSERT(Thread::kMaxThreadNameLength <= PTHREAD_MAX_NAMELEN_NP);
+ static_assert(Thread::kMaxThreadNameLength <= PTHREAD_MAX_NAMELEN_NP);
- pthread_setname_np(pthread_self(), "%s", name);
+ pthread_setname_np(pthread_self(), "%s", (void *)name);
- #elif V8_OS_MACOSX
+ #elif V8_OS_DARWIN
// pthread_setname_np is only available in 10.6 or later, so test
// for it at runtime.
+@@ -1306,7 +1325,7 @@ void Thread::SetThreadLocal(LocalStorage
+ // keep this version in POSIX as most Linux-compatible derivatives will
+ // support it. MacOS and FreeBSD are different here.
+ #if !defined(V8_OS_FREEBSD) && !defined(V8_OS_DARWIN) && !defined(_AIX) && \
+- !defined(V8_OS_SOLARIS)
++ !defined(V8_OS_SOLARIS) && !defined(V8_OS_OPENBSD) && !defined(V8_OS_NETBSD)
+
+ namespace {
+ #if DEBUG
diff --git a/chromium/patches/patch-v8_src_base_small-vector.h b/chromium/patches/patch-v8_src_base_small-vector.h
new file mode 100644
index 0000000000..3500d872dc
--- /dev/null
+++ b/chromium/patches/patch-v8_src_base_small-vector.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/base/small-vector.h.orig 2024-07-24 02:47:45.507075800 +0000
++++ v8/src/base/small-vector.h
+@@ -22,7 +22,7 @@ template <typename T, size_t kSize, type
+ class SmallVector {
+ // Currently only support trivially copyable and trivially destructible data
+ // types, as it uses memcpy to copy elements and never calls destructors.
+- ASSERT_TRIVIALLY_COPYABLE(T);
++ // XXX FREEBSD ASSERT_TRIVIALLY_COPYABLE(T);
+ static_assert(std::is_trivially_destructible<T>::value);
+
+ public:
diff --git a/chromium/patches/patch-v8_src_base_strings.h b/chromium/patches/patch-v8_src_base_strings.h
new file mode 100644
index 0000000000..be95d301f3
--- /dev/null
+++ b/chromium/patches/patch-v8_src_base_strings.h
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/base/strings.h.orig 2024-07-24 02:47:45.507075800 +0000
++++ v8/src/base/strings.h
+@@ -8,6 +8,9 @@
+ #include "src/base/base-export.h"
+ #include "src/base/macros.h"
+ #include "src/base/vector.h"
++#if defined(__NetBSD__)
++#include <stdarg.h>
++#endif
+
+ namespace v8 {
+ namespace base {
diff --git a/chromium/patches/patch-v8_src_base_sys-info.cc b/chromium/patches/patch-v8_src_base_sys-info.cc
new file mode 100644
index 0000000000..470d5eae06
--- /dev/null
+++ b/chromium/patches/patch-v8_src_base_sys-info.cc
@@ -0,0 +1,21 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/base/sys-info.cc.orig 2024-07-24 02:47:45.507075800 +0000
++++ v8/src/base/sys-info.cc
+@@ -37,8 +37,12 @@ namespace base {
+
+ // static
+ int SysInfo::NumberOfProcessors() {
++#if V8_OS_OPENBSD || V8_OS_NETBSD
+ #if V8_OS_OPENBSD
++ int mib[2] = {CTL_HW, HW_NCPUONLINE};
++#else
+ int mib[2] = {CTL_HW, HW_NCPU};
++#endif
+ int ncpu = 0;
+ size_t len = sizeof(ncpu);
+ if (sysctl(mib, arraysize(mib), &ncpu, &len, nullptr, 0) != 0) {
diff --git a/chromium/patches/patch-v8_src_base_utils_random-number-generator.cc b/chromium/patches/patch-v8_src_base_utils_random-number-generator.cc
new file mode 100644
index 0000000000..85397f3702
--- /dev/null
+++ b/chromium/patches/patch-v8_src_base_utils_random-number-generator.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/base/utils/random-number-generator.cc.orig 2024-07-24 02:47:45.507075800 +0000
++++ v8/src/base/utils/random-number-generator.cc
+@@ -56,7 +56,7 @@ RandomNumberGenerator::RandomNumberGener
+ DCHECK_EQ(0, result);
+ USE(result);
+ SetSeed((static_cast<int64_t>(first_half) << 32) + second_half);
+-#elif V8_OS_DARWIN || V8_OS_FREEBSD || V8_OS_OPENBSD
++#elif V8_OS_DARWIN || V8_OS_FREEBSD || V8_OS_OPENBSD || V8_OS_NETBSD
+ // Despite its prefix suggests it is not RC4 algorithm anymore.
+ // It always succeeds while having decent performance and
+ // no file descriptor involved.
diff --git a/chromium/patches/patch-v8_src_diagnostics_perf-jit.cc b/chromium/patches/patch-v8_src_diagnostics_perf-jit.cc
new file mode 100644
index 0000000000..74bb717813
--- /dev/null
+++ b/chromium/patches/patch-v8_src_diagnostics_perf-jit.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/diagnostics/perf-jit.cc.orig 2024-07-24 02:47:46.027126000 +0000
++++ v8/src/diagnostics/perf-jit.cc
+@@ -31,7 +31,7 @@
+ #include "src/flags/flags.h"
+
+ // Only compile the {LinuxPerfJitLogger} on Linux.
+-#if V8_OS_LINUX
++#if defined(V8_OS_LINUX) || defined(V8_OS_BSD)
+
+ #include <fcntl.h>
+ #include <sys/mman.h>
diff --git a/chromium/patches/patch-v8_src_diagnostics_perf-jit.h b/chromium/patches/patch-v8_src_diagnostics_perf-jit.h
new file mode 100644
index 0000000000..f77169d7d2
--- /dev/null
+++ b/chromium/patches/patch-v8_src_diagnostics_perf-jit.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/diagnostics/perf-jit.h.orig 2024-07-24 02:47:46.027126000 +0000
++++ v8/src/diagnostics/perf-jit.h
+@@ -31,7 +31,7 @@
+ #include "include/v8config.h"
+
+ // {LinuxPerfJitLogger} is only implemented on Linux.
+-#if V8_OS_LINUX
++#if defined(V8_OS_LINUX) || defined(V8_OS_BSD)
+
+ #include "src/logging/log.h"
+
diff --git a/chromium/patches/patch-v8_src_execution_isolate.cc b/chromium/patches/patch-v8_src_execution_isolate.cc
new file mode 100644
index 0000000000..5b78522b7f
--- /dev/null
+++ b/chromium/patches/patch-v8_src_execution_isolate.cc
@@ -0,0 +1,33 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/execution/isolate.cc.orig 2024-07-24 02:47:46.043127800 +0000
++++ v8/src/execution/isolate.cc
+@@ -157,6 +157,10 @@
+ #include "src/execution/simulator-base.h"
+ #endif
+
++#if defined(V8_OS_OPENBSD)
++#include <sys/mman.h>
++#endif
++
+ extern "C" const uint8_t v8_Default_embedded_blob_code_[];
+ extern "C" uint32_t v8_Default_embedded_blob_code_size_;
+ extern "C" const uint8_t v8_Default_embedded_blob_data_[];
+@@ -4541,6 +4545,13 @@ void Isolate::InitializeDefaultEmbeddedB
+ const uint8_t* data = DefaultEmbeddedBlobData();
+ uint32_t data_size = DefaultEmbeddedBlobDataSize();
+
++#if defined(V8_OS_OPENBSD) && !defined(V8_TARGET_ARCH_IA32)
++ if (code_size > 0) {
++ mprotect(reinterpret_cast<void *>(const_cast<uint8_t *>(code)),
++ code_size, PROT_READ | PROT_EXEC);
++ }
++#endif
++
+ if (StickyEmbeddedBlobCode() != nullptr) {
+ base::MutexGuard guard(current_embedded_blob_refcount_mutex_.Pointer());
+ // Check again now that we hold the lock.
diff --git a/chromium/patches/patch-v8_src_flags_flags.cc b/chromium/patches/patch-v8_src_flags_flags.cc
new file mode 100644
index 0000000000..d85658f745
--- /dev/null
+++ b/chromium/patches/patch-v8_src_flags_flags.cc
@@ -0,0 +1,42 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/flags/flags.cc.orig 2024-07-24 02:47:46.063129700 +0000
++++ v8/src/flags/flags.cc
+@@ -15,6 +15,10 @@
+ #include <set>
+ #include <sstream>
+
++#if V8_OS_OPENBSD
++#include <sys/mman.h>
++#endif
++
+ #include "src/base/functional.h"
+ #include "src/base/lazy-instance.h"
+ #include "src/base/platform/platform.h"
+@@ -34,7 +38,11 @@
+ namespace v8::internal {
+
+ // Define {v8_flags}, declared in flags.h.
++#if V8_OS_OPENBSD
++FlagValues v8_flags __attribute__((section(".openbsd.mutable")));
++#else
+ FlagValues v8_flags;
++#endif
+
+ // {v8_flags} needs to be aligned to a memory page, and the size needs to be a
+ // multiple of a page size. This is required for memory-protection of the memory
+@@ -806,6 +814,10 @@ void FlagList::FreezeFlags() {
+ // Note that for string flags we only protect the pointer itself, but not the
+ // string storage. TODO(12887): Fix this.
+ base::OS::SetDataReadOnly(&v8_flags, sizeof(v8_flags));
++#if V8_OS_OPENBSD
++ if (mimmutable(&v8_flags, sizeof(v8_flags)) == -1)
++ FATAL("unable to set immutability of v8_flags");
++#endif
+ }
+
+ // static
diff --git a/chromium/patches/patch-v8_src_sandbox_sandbox.cc b/chromium/patches/patch-v8_src_sandbox_sandbox.cc
new file mode 100644
index 0000000000..0b262ac58d
--- /dev/null
+++ b/chromium/patches/patch-v8_src_sandbox_sandbox.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/sandbox/sandbox.cc.orig 2024-07-24 02:47:46.331155500 +0000
++++ v8/src/sandbox/sandbox.cc
+@@ -47,7 +47,7 @@ static Address DetermineAddressSpaceLimi
+ }
+ #endif // V8_TARGET_ARCH_X64
+
+-#if defined(V8_TARGET_ARCH_ARM64) && defined(V8_TARGET_OS_ANDROID)
++#if defined(V8_TARGET_ARCH_ARM64) && (defined(V8_TARGET_OS_ANDROID) || defined(V8_TARGET_OS_OPENBSD))
+ // On Arm64 Android assume a 40-bit virtual address space (39 bits for
+ // userspace and kernel each) as that appears to be the most common
+ // configuration and there seems to be no easy way to retrieve the actual
diff --git a/chromium/patches/patch-v8_src_snapshot_embedded_platform-embedded-file-writer-base.cc b/chromium/patches/patch-v8_src_snapshot_embedded_platform-embedded-file-writer-base.cc
new file mode 100644
index 0000000000..0ac27bb91e
--- /dev/null
+++ b/chromium/patches/patch-v8_src_snapshot_embedded_platform-embedded-file-writer-base.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/snapshot/embedded/platform-embedded-file-writer-base.cc.orig 2024-07-24 02:47:46.335156000 +0000
++++ v8/src/snapshot/embedded/platform-embedded-file-writer-base.cc
+@@ -143,6 +143,8 @@ EmbeddedTargetOs ToEmbeddedTargetOs(cons
+ return EmbeddedTargetOs::kWin;
+ } else if (string == "starboard") {
+ return EmbeddedTargetOs::kStarboard;
++ } else if (string == "openbsd") {
++ return EmbeddedTargetOs::kOpenBSD;
+ } else {
+ return EmbeddedTargetOs::kGeneric;
+ }
diff --git a/chromium/patches/patch-v8_src_snapshot_embedded_platform-embedded-file-writer-base.h b/chromium/patches/patch-v8_src_snapshot_embedded_platform-embedded-file-writer-base.h
new file mode 100644
index 0000000000..a87675faff
--- /dev/null
+++ b/chromium/patches/patch-v8_src_snapshot_embedded_platform-embedded-file-writer-base.h
@@ -0,0 +1,16 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/snapshot/embedded/platform-embedded-file-writer-base.h.orig 2024-07-24 02:47:46.335156000 +0000
++++ v8/src/snapshot/embedded/platform-embedded-file-writer-base.h
+@@ -31,6 +31,7 @@ enum class EmbeddedTargetOs {
+ kMac,
+ kWin,
+ kStarboard,
++ kOpenBSD,
+ kGeneric, // Everything not covered above falls in here.
+ };
+
diff --git a/chromium/patches/patch-v8_src_snapshot_embedded_platform-embedded-file-writer-generic.cc b/chromium/patches/patch-v8_src_snapshot_embedded_platform-embedded-file-writer-generic.cc
new file mode 100644
index 0000000000..5ab34dd84e
--- /dev/null
+++ b/chromium/patches/patch-v8_src_snapshot_embedded_platform-embedded-file-writer-generic.cc
@@ -0,0 +1,48 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/snapshot/embedded/platform-embedded-file-writer-generic.cc.orig 2024-07-24 02:47:46.335156000 +0000
++++ v8/src/snapshot/embedded/platform-embedded-file-writer-generic.cc
+@@ -9,6 +9,10 @@
+
+ #include "src/objects/instruction-stream.h"
+
++#if V8_OS_OPENBSD
++#include <sys/param.h>
++#endif
++
+ namespace v8 {
+ namespace internal {
+
+@@ -35,6 +39,10 @@ const char* DirectiveAsString(DataDirect
+ void PlatformEmbeddedFileWriterGeneric::SectionText() {
+ if (target_os_ == EmbeddedTargetOs::kChromeOS) {
+ fprintf(fp_, ".section .text.hot.embedded\n");
++#if !defined(V8_TARGET_ARCH_IA32)
++ } else if (target_os_ == EmbeddedTargetOs::kOpenBSD) {
++ fprintf(fp_, ".section .openbsd.mutable,\"a\"\n");
++#endif
+ } else {
+ fprintf(fp_, ".section .text\n");
+ }
+@@ -66,6 +74,8 @@ void PlatformEmbeddedFileWriterGeneric::
+ // On these architectures and platforms, we remap the builtins, so need these
+ // to be aligned on a page boundary.
+ fprintf(fp_, ".balign 4096\n");
++#elif defined(V8_OS_OPENBSD) && !defined(V8_TARGET_ARCH_IA32)
++ fprintf(fp_, ".balign %d\n", PAGE_SIZE);
+ #elif V8_TARGET_ARCH_X64
+ // On x64 use 64-bytes code alignment to allow 64-bytes loop header alignment.
+ static_assert(64 >= kCodeAlignment);
+@@ -86,6 +96,8 @@ void PlatformEmbeddedFileWriterGeneric::
+ (V8_TARGET_ARCH_X64 || V8_TARGET_ARCH_ARM64)
+ // Since the builtins are remapped, need to pad until the next page boundary.
+ fprintf(fp_, ".balign 4096\n");
++#elif defined(V8_OS_OPENBSD) && !defined(V8_TARGET_ARCH_IA32)
++ fprintf(fp_, ".balign %d\n", PAGE_SIZE);
+ #endif
+ }
+
diff --git a/chromium/patches/patch-v8_src_trap-handler_handler-inside-posix.cc b/chromium/patches/patch-v8_src_trap-handler_handler-inside-posix.cc
index 0e6a65205e..c530cb2ab4 100644
--- a/chromium/patches/patch-v8_src_trap-handler_handler-inside-posix.cc
+++ b/chromium/patches/patch-v8_src_trap-handler_handler-inside-posix.cc
@@ -1,6 +1,10 @@
$NetBSD$
---- v8/src/trap-handler/handler-inside-posix.cc.orig 2020-07-15 19:01:44.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/trap-handler/handler-inside-posix.cc.orig 2024-07-24 02:47:46.359158300 +0000
+++ v8/src/trap-handler/handler-inside-posix.cc
@@ -27,7 +27,7 @@
@@ -9,14 +13,31 @@ $NetBSD$
-#if defined(V8_OS_LINUX) || defined(V8_OS_FREEBSD)
+#if defined(V8_OS_LINUX) || defined(V8_OS_FREEBSD) || defined(V8_OS_NETBSD)
#include <ucontext.h>
- #elif V8_OS_MACOSX
+ #elif V8_OS_DARWIN
#include <sys/ucontext.h>
-@@ -114,6 +114,8 @@ bool TryHandleSignal(int signum, siginfo
- auto* context_rip = &uc->uc_mcontext->__ss.__rip;
+@@ -61,6 +61,10 @@ namespace trap_handler {
+ #define CONTEXT_REG(reg, REG) &uc->uc_mcontext->__ss.__##reg
#elif V8_OS_FREEBSD
- auto* context_rip = &uc->uc_mcontext.mc_rip;
+ #define CONTEXT_REG(reg, REG) &uc->uc_mcontext.mc_##reg
++#elif V8_OS_OPENBSD
++#define CONTEXT_REG(reg, REG) &uc->sc_##reg
+#elif V8_OS_NETBSD
-+ auto* context_rip = &_UC_MACHINE_PC(uc);
++#define CONTEXT_REG(reg, REG) &uc->uc_mcontext.__gregs[_REG_##REG]
#else
- #error Unsupported platform
+ #error "Unsupported platform."
#endif
+@@ -80,8 +84,12 @@ bool IsKernelGeneratedSignal(siginfo_t*
+ // si_code at its default of 0 for signals that don’t originate in hardware.
+ // The other conditions are only relevant for Linux.
+ return info->si_code > 0 && info->si_code != SI_USER &&
+- info->si_code != SI_QUEUE && info->si_code != SI_TIMER &&
+- info->si_code != SI_ASYNCIO && info->si_code != SI_MESGQ;
++ info->si_code != SI_QUEUE && info->si_code != SI_TIMER
++#ifdef V8_OS_OPENBSD
++ ;
++#else
++ && info->si_code != SI_ASYNCIO && info->si_code != SI_MESGQ;
++#endif
+ }
+
+ class UnmaskOobSignalScope {
diff --git a/chromium/patches/patch-v8_src_trap-handler_handler-inside-posix.h b/chromium/patches/patch-v8_src_trap-handler_handler-inside-posix.h
index 9ca8728583..3056a96c35 100644
--- a/chromium/patches/patch-v8_src_trap-handler_handler-inside-posix.h
+++ b/chromium/patches/patch-v8_src_trap-handler_handler-inside-posix.h
@@ -1,13 +1,17 @@
$NetBSD$
---- v8/src/trap-handler/handler-inside-posix.h.orig 2020-07-15 19:01:44.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/trap-handler/handler-inside-posix.h.orig 2024-07-24 02:47:46.359158300 +0000
+++ v8/src/trap-handler/handler-inside-posix.h
-@@ -12,7 +12,7 @@ namespace v8 {
+@@ -13,7 +13,7 @@ namespace v8 {
namespace internal {
namespace trap_handler {
-#if V8_OS_LINUX || V8_OS_FREEBSD
-+#if V8_OS_LINUX || V8_OS_FREEBSD || V8_OS_NETBSD
++#if V8_OS_LINUX || V8_OS_FREEBSD || V8_OS_OPENBSD || V8_OS_NETBSD
constexpr int kOobSignal = SIGSEGV;
- #elif V8_OS_MACOSX
+ #elif V8_OS_DARWIN
constexpr int kOobSignal = SIGBUS;
diff --git a/chromium/patches/patch-v8_src_trap-handler_trap-handler.h b/chromium/patches/patch-v8_src_trap-handler_trap-handler.h
new file mode 100644
index 0000000000..d35c3b9f45
--- /dev/null
+++ b/chromium/patches/patch-v8_src_trap-handler_trap-handler.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/trap-handler/trap-handler.h.orig 2024-07-24 02:47:46.359158300 +0000
++++ v8/src/trap-handler/trap-handler.h
+@@ -20,7 +20,7 @@ namespace trap_handler {
+ // X64 on Linux, Windows, MacOS, FreeBSD.
+ #if V8_HOST_ARCH_X64 && V8_TARGET_ARCH_X64 && \
+ ((V8_OS_LINUX && !V8_OS_ANDROID) || V8_OS_WIN || V8_OS_DARWIN || \
+- V8_OS_FREEBSD)
++ V8_OS_FREEBSD || V8_OS_OPENBSD || V8_OS_NETBSD)
+ #define V8_TRAP_HANDLER_SUPPORTED true
+ // Arm64 (non-simulator) on Mac and Linux.
+ #elif V8_TARGET_ARCH_ARM64 && V8_HOST_ARCH_ARM64 && \
diff --git a/chromium/patches/patch-v8_src_wasm_baseline_ia32_liftoff-assembler-ia32-inl.h b/chromium/patches/patch-v8_src_wasm_baseline_ia32_liftoff-assembler-ia32-inl.h
new file mode 100644
index 0000000000..2762a7f740
--- /dev/null
+++ b/chromium/patches/patch-v8_src_wasm_baseline_ia32_liftoff-assembler-ia32-inl.h
@@ -0,0 +1,134 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/wasm/baseline/ia32/liftoff-assembler-ia32-inl.h.orig 2024-07-24 02:47:46.367159100 +0000
++++ v8/src/wasm/baseline/ia32/liftoff-assembler-ia32-inl.h
+@@ -492,7 +492,7 @@ void LiftoffAssembler::StoreTaggedPointe
+ }
+
+ void LiftoffAssembler::Load(LiftoffRegister dst, Register src_addr,
+- Register offset_reg, uint32_t offset_imm,
++ Register offset_reg, uintptr_t offset_imm,
+ LoadType type, uint32_t* protected_load_pc,
+ bool /* is_load_mem */, bool /* i64_offset */,
+ bool needs_shift) {
+@@ -569,7 +569,7 @@ void LiftoffAssembler::Load(LiftoffRegis
+ }
+
+ void LiftoffAssembler::Store(Register dst_addr, Register offset_reg,
+- uint32_t offset_imm, LiftoffRegister src,
++ uintptr_t offset_imm, LiftoffRegister src,
+ StoreType type, LiftoffRegList pinned,
+ uint32_t* protected_store_pc,
+ bool /* is_store_mem */, bool /* i64_offset */) {
+@@ -645,7 +645,7 @@ void LiftoffAssembler::Store(Register ds
+ }
+
+ void LiftoffAssembler::AtomicLoad(LiftoffRegister dst, Register src_addr,
+- Register offset_reg, uint32_t offset_imm,
++ Register offset_reg, uintptr_t offset_imm,
+ LoadType type, LiftoffRegList /* pinned */,
+ bool /* i64_offset */) {
+ if (type.value() != LoadType::kI64Load) {
+@@ -663,7 +663,7 @@ void LiftoffAssembler::AtomicLoad(Liftof
+ }
+
+ void LiftoffAssembler::AtomicStore(Register dst_addr, Register offset_reg,
+- uint32_t offset_imm, LiftoffRegister src,
++ uintptr_t offset_imm, LiftoffRegister src,
+ StoreType type, LiftoffRegList pinned,
+ bool /* i64_offset */) {
+ DCHECK_LE(offset_imm, std::numeric_limits<int32_t>::max());
+@@ -733,7 +733,7 @@ enum Binop { kAdd, kSub, kAnd, kOr, kXor
+
+ inline void AtomicAddOrSubOrExchange32(LiftoffAssembler* lasm, Binop binop,
+ Register dst_addr, Register offset_reg,
+- uint32_t offset_imm,
++ uintptr_t offset_imm,
+ LiftoffRegister value,
+ LiftoffRegister result, StoreType type) {
+ DCHECK_EQ(value, result);
+@@ -801,7 +801,7 @@ inline void AtomicAddOrSubOrExchange32(L
+ }
+
+ inline void AtomicBinop32(LiftoffAssembler* lasm, Binop op, Register dst_addr,
+- Register offset_reg, uint32_t offset_imm,
++ Register offset_reg, uintptr_t offset_imm,
+ LiftoffRegister value, LiftoffRegister result,
+ StoreType type) {
+ DCHECK_EQ(value, result);
+@@ -916,7 +916,7 @@ inline void AtomicBinop32(LiftoffAssembl
+ }
+
+ inline void AtomicBinop64(LiftoffAssembler* lasm, Binop op, Register dst_addr,
+- Register offset_reg, uint32_t offset_imm,
++ Register offset_reg, uintptr_t offset_imm,
+ LiftoffRegister value, LiftoffRegister result) {
+ // We need {ebx} here, which is the root register. As the root register it
+ // needs special treatment. As we use {ebx} directly in the code below, we
+@@ -1012,7 +1012,7 @@ inline void AtomicBinop64(LiftoffAssembl
+ } // namespace liftoff
+
+ void LiftoffAssembler::AtomicAdd(Register dst_addr, Register offset_reg,
+- uint32_t offset_imm, LiftoffRegister value,
++ uintptr_t offset_imm, LiftoffRegister value,
+ LiftoffRegister result, StoreType type,
+ bool /* i64_offset */) {
+ if (type.value() == StoreType::kI64Store) {
+@@ -1026,7 +1026,7 @@ void LiftoffAssembler::AtomicAdd(Registe
+ }
+
+ void LiftoffAssembler::AtomicSub(Register dst_addr, Register offset_reg,
+- uint32_t offset_imm, LiftoffRegister value,
++ uintptr_t offset_imm, LiftoffRegister value,
+ LiftoffRegister result, StoreType type,
+ bool /* i64_offset */) {
+ if (type.value() == StoreType::kI64Store) {
+@@ -1039,7 +1039,7 @@ void LiftoffAssembler::AtomicSub(Registe
+ }
+
+ void LiftoffAssembler::AtomicAnd(Register dst_addr, Register offset_reg,
+- uint32_t offset_imm, LiftoffRegister value,
++ uintptr_t offset_imm, LiftoffRegister value,
+ LiftoffRegister result, StoreType type,
+ bool /* i64_offset */) {
+ if (type.value() == StoreType::kI64Store) {
+@@ -1053,7 +1053,7 @@ void LiftoffAssembler::AtomicAnd(Registe
+ }
+
+ void LiftoffAssembler::AtomicOr(Register dst_addr, Register offset_reg,
+- uint32_t offset_imm, LiftoffRegister value,
++ uintptr_t offset_imm, LiftoffRegister value,
+ LiftoffRegister result, StoreType type,
+ bool /* i64_offset */) {
+ if (type.value() == StoreType::kI64Store) {
+@@ -1067,7 +1067,7 @@ void LiftoffAssembler::AtomicOr(Register
+ }
+
+ void LiftoffAssembler::AtomicXor(Register dst_addr, Register offset_reg,
+- uint32_t offset_imm, LiftoffRegister value,
++ uintptr_t offset_imm, LiftoffRegister value,
+ LiftoffRegister result, StoreType type,
+ bool /* i64_offset */) {
+ if (type.value() == StoreType::kI64Store) {
+@@ -1081,7 +1081,7 @@ void LiftoffAssembler::AtomicXor(Registe
+ }
+
+ void LiftoffAssembler::AtomicExchange(Register dst_addr, Register offset_reg,
+- uint32_t offset_imm,
++ uintptr_t offset_imm,
+ LiftoffRegister value,
+ LiftoffRegister result, StoreType type,
+ bool /* i64_offset */) {
+@@ -1096,7 +1096,7 @@ void LiftoffAssembler::AtomicExchange(Re
+ }
+
+ void LiftoffAssembler::AtomicCompareExchange(
+- Register dst_addr, Register offset_reg, uint32_t offset_imm,
++ Register dst_addr, Register offset_reg, uintptr_t offset_imm,
+ LiftoffRegister expected, LiftoffRegister new_value, LiftoffRegister result,
+ StoreType type, bool /* i64_offset */) {
+ // We expect that the offset has already been added to {dst_addr}, and no
diff --git a/chromium/patches/patch-v8_tools_run-paxctl.py b/chromium/patches/patch-v8_tools_run-paxctl.py
new file mode 100644
index 0000000000..256a943542
--- /dev/null
+++ b/chromium/patches/patch-v8_tools_run-paxctl.py
@@ -0,0 +1,25 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- v8/tools/run-paxctl.py.orig 2024-08-01 14:09:02.160198653 +0000
++++ v8/tools/run-paxctl.py
+@@ -0,0 +1,16 @@
++#!@PYTHONBIN@
++# Copyright 2014 the V8 project authors. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++"""This program wraps an arbitrary command since gn currently can only execute
++scripts."""
++
++import subprocess
++import sys
++import os
++
++with open(sys.argv[1], 'w'):
++ os.utime(sys.argv[1], None)
++
++sys.exit(subprocess.call(sys.argv[2:]))
diff --git a/chromium/patches/patch-v8_tools_run.py b/chromium/patches/patch-v8_tools_run.py
new file mode 100644
index 0000000000..1d73f678bb
--- /dev/null
+++ b/chromium/patches/patch-v8_tools_run.py
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+ pkgsrc's qt5-qtwebengine patches
+
+--- v8/tools/run.py.orig 2024-07-24 02:47:47.827300500 +0000
++++ v8/tools/run.py
+@@ -9,7 +9,7 @@ scripts."""
+ import subprocess
+ import sys
+
+-result = subprocess.call(sys.argv[1:])
++sys.exit(subprocess.call(sys.argv[1:], env={"LD_LIBRARY_PATH":"${WRKSRC}/out/Release"}))
+ if result != 0:
+ # Windows error codes such as 0xC0000005 and 0xC0000409 are much easier
+ # to recognize and differentiate in hex.
diff --git a/chromium/patches/patch-weblayer_BUILD.gn b/chromium/patches/patch-weblayer_BUILD.gn
deleted file mode 100644
index 706f86c31f..0000000000
--- a/chromium/patches/patch-weblayer_BUILD.gn
+++ /dev/null
@@ -1,27 +0,0 @@
-$NetBSD$
-
---- weblayer/BUILD.gn.orig 2020-07-15 18:56:49.000000000 +0000
-+++ weblayer/BUILD.gn
-@@ -586,13 +586,21 @@ source_set("weblayer_lib_base") {
- }
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- deps += [
- "//build/config/freetype",
- "//third_party/fontconfig",
- ]
- }
-
-+ if (is_bsd) {
-+ deps -= [
-+ "//components/crash/content/browser",
-+ "//components/crash/core/app",
-+ "//components/crash/core/common",
-+ ]
-+ }
-+
- if (toolkit_views) {
- deps += [ "//ui/views" ]
- }
diff --git a/chromium/patches/patch-weblayer_app_content__main__delegate__impl.cc b/chromium/patches/patch-weblayer_app_content__main__delegate__impl.cc
deleted file mode 100644
index f26b8f6837..0000000000
--- a/chromium/patches/patch-weblayer_app_content__main__delegate__impl.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- weblayer/app/content_main_delegate_impl.cc.orig 2020-07-15 18:56:34.000000000 +0000
-+++ weblayer/app/content_main_delegate_impl.cc
-@@ -219,7 +219,7 @@ bool ContentMainDelegateImpl::ShouldCrea
- }
-
- void ContentMainDelegateImpl::PreSandboxStartup() {
--#if defined(ARCH_CPU_ARM_FAMILY) && (defined(OS_ANDROID) || defined(OS_LINUX))
-+#if defined(ARCH_CPU_ARM_FAMILY) && (defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD))
- // Create an instance of the CPU class to parse /proc/cpuinfo and cache
- // cpu_brand info.
- base::CPU cpu_info;
diff --git a/chromium/patches/patch-weblayer_browser_browser__main__parts__impl.cc b/chromium/patches/patch-weblayer_browser_browser__main__parts__impl.cc
deleted file mode 100644
index 832bcb8f86..0000000000
--- a/chromium/patches/patch-weblayer_browser_browser__main__parts__impl.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- weblayer/browser/browser_main_parts_impl.cc.orig 2020-07-15 18:56:34.000000000 +0000
-+++ weblayer/browser/browser_main_parts_impl.cc
-@@ -56,7 +56,7 @@
- #if defined(USE_AURA) && defined(USE_X11)
- #include "ui/events/devices/x11/touch_factory_x11.h" // nogncheck
- #endif
--#if !defined(OS_CHROMEOS) && defined(USE_AURA) && defined(OS_LINUX)
-+#if !defined(OS_CHROMEOS) && defined(USE_AURA) && (defined(OS_LINUX) || defined(OS_BSD))
- #include "ui/base/ime/init/input_method_initializer.h"
- #endif
-
-@@ -140,7 +140,7 @@ int BrowserMainPartsImpl::PreEarlyInitia
- #if defined(USE_X11)
- ui::SetDefaultX11ErrorHandlers();
- #endif
--#if defined(USE_AURA) && defined(OS_LINUX)
-+#if defined(USE_AURA) && (defined(OS_LINUX) || defined(OS_BSD))
- ui::InitializeInputMethodForTesting();
- #endif
- #if defined(OS_ANDROID)
diff --git a/chromium/patches/patch-weblayer_browser_content__browser__client__impl.cc b/chromium/patches/patch-weblayer_browser_content__browser__client__impl.cc
deleted file mode 100644
index 7f4d9b89a7..0000000000
--- a/chromium/patches/patch-weblayer_browser_content__browser__client__impl.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- weblayer/browser/content_browser_client_impl.cc.orig 2020-07-15 18:56:49.000000000 +0000
-+++ weblayer/browser/content_browser_client_impl.cc
-@@ -120,7 +120,7 @@
- #include "weblayer/browser/safe_browsing/safe_browsing_service.h"
- #endif
-
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
- #include "content/public/common/content_descriptors.h"
- #endif
-
-@@ -355,7 +355,7 @@ void ContentBrowserClientImpl::Configure
-
- void ContentBrowserClientImpl::OnNetworkServiceCreated(
- network::mojom::NetworkService* network_service) {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- network::mojom::CryptConfigPtr config = network::mojom::CryptConfig::New();
- content::GetNetworkService()->SetCryptConfig(std::move(config));
- #endif
-@@ -708,7 +708,7 @@ SafeBrowsingService* ContentBrowserClien
- }
- #endif
-
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
- void ContentBrowserClientImpl::GetAdditionalMappedFilesForChildProcess(
- const base::CommandLine& command_line,
- int child_process_id,
diff --git a/chromium/patches/patch-weblayer_browser_content__browser__client__impl.h b/chromium/patches/patch-weblayer_browser_content__browser__client__impl.h
deleted file mode 100644
index 263de80940..0000000000
--- a/chromium/patches/patch-weblayer_browser_content__browser__client__impl.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- weblayer/browser/content_browser_client_impl.h.orig 2020-07-15 18:56:49.000000000 +0000
-+++ weblayer/browser/content_browser_client_impl.h
-@@ -111,7 +111,7 @@ class ContentBrowserClientImpl : public
- void RenderProcessWillLaunch(content::RenderProcessHost* host) override;
- scoped_refptr<content::QuotaPermissionContext> CreateQuotaPermissionContext()
- override;
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
- void GetAdditionalMappedFilesForChildProcess(
- const base::CommandLine& command_line,
- int child_process_id,
diff --git a/chromium/patches/patch-weblayer_browser_system__network__context__manager.cc b/chromium/patches/patch-weblayer_browser_system__network__context__manager.cc
deleted file mode 100644
index b9a0bf0cb4..0000000000
--- a/chromium/patches/patch-weblayer_browser_system__network__context__manager.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- weblayer/browser/system_network_context_manager.cc.orig 2020-07-15 18:56:34.000000000 +0000
-+++ weblayer/browser/system_network_context_manager.cc
-@@ -64,7 +64,7 @@ void SystemNetworkContextManager::Config
- network::mojom::NetworkContextParams* network_context_params,
- const std::string& user_agent) {
- network_context_params->user_agent = user_agent;
--#if defined(OS_LINUX) || defined(OS_WIN)
-+#if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_BSD)
- // We're not configuring the cookie encryption on these platforms yet.
- network_context_params->enable_encrypted_cookies = false;
- #endif
diff --git a/chromium/patches/patch-weblayer_common_weblayer__paths.cc b/chromium/patches/patch-weblayer_common_weblayer__paths.cc
deleted file mode 100644
index 505d36f9f2..0000000000
--- a/chromium/patches/patch-weblayer_common_weblayer__paths.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- weblayer/common/weblayer_paths.cc.orig 2020-07-15 18:56:34.000000000 +0000
-+++ weblayer/common/weblayer_paths.cc
-@@ -17,7 +17,7 @@
-
- #if defined(OS_WIN)
- #include "base/base_paths_win.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- #include "base/nix/xdg_util.h"
- #endif
-
-@@ -35,7 +35,7 @@ bool GetDefaultUserDataDirectory(base::F
- return false;
- *result = result->AppendASCII("weblayer");
- return true;
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- std::unique_ptr<base::Environment> env(base::Environment::Create());
- base::FilePath config_dir(base::nix::GetXDGDirectory(
- env.get(), base::nix::kXdgConfigHomeEnvVar, base::nix::kDotConfigDir));
diff --git a/chromium/patches/patch-weblayer_shell_BUILD.gn b/chromium/patches/patch-weblayer_shell_BUILD.gn
deleted file mode 100644
index 4b209a373b..0000000000
--- a/chromium/patches/patch-weblayer_shell_BUILD.gn
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- weblayer/shell/BUILD.gn.orig 2020-07-15 18:56:34.000000000 +0000
-+++ weblayer/shell/BUILD.gn
-@@ -61,7 +61,7 @@ static_library("weblayer_shell_lib") {
- "//weblayer:resources",
- ]
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- deps += [
- "//third_party/fontconfig",
- "//ui/gfx:test_support",
-@@ -103,7 +103,7 @@ static_library("weblayer_shell_lib") {
- }
- }
-
-- if (is_linux) {
-+ if (is_linux || is_bsd) {
- deps += [ "//build/config/freetype" ]
- }
- }
-@@ -259,7 +259,7 @@ if (is_android) {
- [ "//third_party/crashpad/crashpad/handler:crashpad_handler" ]
- }
-
-- if (is_linux && !is_component_build) {
-+ if ((is_linux || is_bsd) && !is_component_build) {
- # Set rpath to find our own libfreetype even in a non-component build.
- configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
- }
diff --git a/chromium/tests.mk b/chromium/tests.mk
new file mode 100644
index 0000000000..c156b76414
--- /dev/null
+++ b/chromium/tests.mk
@@ -0,0 +1,62 @@
+# $NetBSD$
+
+REGRESS_DISTFILE= chromium-${VERSION}-testdata${EXTRACT_SUFX}
+FONTS_DISTFILE= test_fonts-336e775eec536b2d785cc80eff6ac39051931286.tar.gz
+SITES.${FONTS_DISTFILE}= http://nerd.hu/distfiles/
+DISTFILES+= ${REGRESS_DISTFILE}
+DISTFILES+= ${FONTS_DISTFILE}
+EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} ${PROFILE_DISTFILE}
+
+USE_TOOLS+= xzcat gzip tar
+
+#TEST_ENV+= FONTCONFIG_SYSROOT=${WRKSRC}/third_party/test_fonts
+
+TEST_TARGET= base_unittests
+TEST_TARGET+= blink_unittests
+TEST_TARGET+= chromedriver_unittests
+
+# third_party/crashpad/crashpad/handler/handler_main.cc: error:
+# use of undeclared identifier 'ReinstallCrashHandler'
+# use of undeclared identifier 'InstallCrashHandler'
+# use of undeclared identifier 'CrashReportExceptionHandler'
+# use of undeclared identifier 'exception_handler_server'
+#TEST_TARGET+= components_unittests
+
+TEST_TARGET+= content_unittests
+TEST_TARGET+= crypto_unittests
+TEST_TARGET+= gl_tests
+TEST_TARGET+= gpu_unittests
+TEST_TARGET+= headless_unittests
+TEST_TARGET+= media_unittests
+
+# third_party/ipcz/src/reference_drivers/wrapped_file_descriptor.h:
+# no member named 'kFileDescriptor' in 'ipcz::reference_drivers::Object'
+#TEST_TARGET+= mojo_unittests
+
+TEST_TARGET+= net_unittests
+TEST_TARGET+= pdf_unittests
+
+# printing/mojom/printing_context_mojom_traits_unittest.cc:88:2:
+# error: "System print dialog support not implemented for this platform."
+#TEST_TARGET+= printing_unittests
+
+TEST_TARGET+= skia_unittests
+TEST_TARGET+= url_unittests
+TEST_TARGET+= wm_unittests
+
+pre-test:
+ @${ECHO_MSG} "=> Extracting ${REGRESS_DISTFILE}"
+ ${XZCAT} ${DISTDIR}/${REGRESS_DISTFILE} | ${TAR} -C ${WRKDIR} -xf -
+ @${ECHO_MSG} "=> Extracting ${FONTS_DISTFILE}"
+ ${GZIP_CMD} -dc ${DISTDIR}/${FONTS_DISTFILE} | ${TAR} -C ${WRKSRC}/third_party/test_fonts -xf -
+ ${MKDIR} ${WRKSRC}/third_party/llvm-build/Release+Asserts/bin
+ ${LN} -sf ${PREFIX}/bin/clang++ ${WRKSRC}/third_party/llvm-build/Release+Asserts/bin/clang++
+ ${LN} -sf ${PREFIX}/bin/clang ${WRKSRC}/third_party/llvm-build/Release+Asserts/bin/clang
+ ${LN} -sf ${PREFIX}/bin/llvm-ar ${WRKSRC}/third_party/llvm-build/Release+Asserts/bin/llvm-ar
+
+do-test:
+.for t in ${TEST_TARGET}
+ @${ECHO_MSG} "=> Test target: ${t}"
+ cd ${WRKSRC} && \
+ ${SETENV} ${TEST_ENV} ${PREFIX}/bin/ninja -j ${MAKE_JOBS:U1} -C out/${BUILDTYPE} ${t}
+.endfor
Home |
Main Index |
Thread Index |
Old Index